diff --git a/.changeset/update-uuid-version.md b/.changeset/update-uuid-version.md new file mode 100644 index 0000000000..adb3d102e9 --- /dev/null +++ b/.changeset/update-uuid-version.md @@ -0,0 +1,6 @@ +--- +"@tiptap/extension-unique-id": patch +"@tiptap/extension-table-of-contents": patch +--- + +Update uuid dependency to version `14.0.0` diff --git a/demos/package.json b/demos/package.json index 60d2d264d4..20fdadaef3 100644 --- a/demos/package.json +++ b/demos/package.json @@ -49,7 +49,6 @@ "devDependencies": { "@sveltejs/vite-plugin-svelte": "3.1.2", "@types/node": "22.10.3", - "@types/uuid": "^8.3.4", "@vitejs/plugin-react": "^1.3.2", "@vitejs/plugin-vue": "^5.2.1", "autoprefixer": "^10.4.20", @@ -59,11 +58,11 @@ "postcss-import": "^15.1.0", "react": "^19.0.0", "react-dom": "^19.0.0", - "sass": "^1.83.0", + "sass-embedded": "^1.99.0", "svelte": "^4.2.19", "tailwindcss": "^3.4.17", "typescript": "^5.7.2", - "uuid": "^8.3.2", + "uuid": "^14.0.0", "vite": "^5.4.20", "vite-plugin-checker": "^0.6.4", "vue": "^3.5.13", diff --git a/demos/vite.config.ts b/demos/vite.config.ts index 45a588df76..7ffa832f86 100644 --- a/demos/vite.config.ts +++ b/demos/vite.config.ts @@ -69,6 +69,14 @@ const dedupeDeps = fs .filter(value => value) export default defineConfig({ + css: { + preprocessorOptions: { + scss: { + api: 'modern-compiler', + }, + }, + }, + server: { port: 3000, }, diff --git a/package.json b/package.json index a762506cad..af4524e728 100644 --- a/package.json +++ b/package.json @@ -90,6 +90,7 @@ "@rollup/pluginutils": "^5.1.4", "@rollup/pluginutils>picomatch": "2.3.2", "@octokit/action>undici": "6.24.1", + "@cypress/request>uuid": "14.0.0", "anymatch>picomatch": "2.3.2", "glob": "^10.5.0", "micromatch>picomatch": "2.3.2", @@ -119,6 +120,7 @@ "overrides": { "@rollup/pluginutils>picomatch": "2.3.2", "@octokit/action>undici": "6.24.1", + "@cypress/request>uuid": "14.0.0", "anymatch>picomatch": "2.3.2", "glob": "^10.5.0", "micromatch>picomatch": "2.3.2", diff --git a/packages/extension-table-of-contents/package.json b/packages/extension-table-of-contents/package.json index 92ffa411a6..921f7ca5b6 100644 --- a/packages/extension-table-of-contents/package.json +++ b/packages/extension-table-of-contents/package.json @@ -36,12 +36,11 @@ "dist" ], "dependencies": { - "uuid": "^10.0.0" + "uuid": "^14.0.0" }, "devDependencies": { "@tiptap/core": "workspace:^", - "@tiptap/pm": "workspace:^", - "@types/uuid": "^10.0.0" + "@tiptap/pm": "workspace:^" }, "peerDependencies": { "@tiptap/core": "workspace:*", diff --git a/packages/extension-unique-id/package.json b/packages/extension-unique-id/package.json index d18d313873..4fd89b0d90 100644 --- a/packages/extension-unique-id/package.json +++ b/packages/extension-unique-id/package.json @@ -35,12 +35,11 @@ "@tiptap/pm": "workspace:*" }, "dependencies": { - "uuid": "^10.0.0" + "uuid": "^14.0.0" }, "devDependencies": { "@tiptap/core": "workspace:^", - "@tiptap/pm": "workspace:^", - "@types/uuid": "^10.0.0" + "@tiptap/pm": "workspace:^" }, "repository": { "type": "git", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 10c2687489..deea57599d 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,6 +7,7 @@ settings: overrides: '@rollup/pluginutils>picomatch': 2.3.2 '@octokit/action>undici': 6.24.1 + '@cypress/request>uuid': 14.0.0 anymatch>picomatch: 2.3.2 glob: ^10.5.0 micromatch>picomatch: 2.3.2 @@ -163,7 +164,7 @@ importers: version: 5.7.3 vitest: specifier: ^4.1.2 - version: 4.1.2(@types/node@25.5.0)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0)) + version: 4.1.2(@types/node@25.5.0)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0)) webpack: specifier: ^5.97.1 version: 5.97.1(esbuild@0.27.2) @@ -281,19 +282,16 @@ importers: devDependencies: '@sveltejs/vite-plugin-svelte': specifier: 3.1.2 - version: 3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)) + version: 3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)) '@types/node': specifier: 22.10.3 version: 22.10.3 - '@types/uuid': - specifier: ^8.3.4 - version: 8.3.4 '@vitejs/plugin-react': specifier: ^1.3.2 version: 1.3.2 '@vitejs/plugin-vue': specifier: ^5.2.1 - version: 5.2.1(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0))(vue@3.5.13(typescript@5.7.3)) + version: 5.2.1(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0))(vue@3.5.13(typescript@5.7.3)) autoprefixer: specifier: ^10.4.20 version: 10.4.20(postcss@8.5.1) @@ -315,9 +313,9 @@ importers: react-dom: specifier: ^19.0.0 version: 19.1.0(react@19.1.0) - sass: - specifier: ^1.83.0 - version: 1.83.4 + sass-embedded: + specifier: ^1.99.0 + version: 1.99.0 svelte: specifier: ^4.2.19 version: 4.2.19 @@ -328,14 +326,14 @@ importers: specifier: ^5.7.2 version: 5.7.3 uuid: - specifier: ^8.3.2 - version: 8.3.2 + specifier: ^14.0.0 + version: 14.0.0 vite: specifier: ^5.4.20 - version: 5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0) + version: 5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0) vite-plugin-checker: specifier: ^0.6.4 - version: 0.6.4(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)) + version: 0.6.4(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)) vue: specifier: ^3.5.13 version: 3.5.13(typescript@5.7.3) @@ -875,8 +873,8 @@ importers: packages/extension-table-of-contents: dependencies: uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^14.0.0 + version: 14.0.0 devDependencies: '@tiptap/core': specifier: workspace:^ @@ -884,9 +882,6 @@ importers: '@tiptap/pm': specifier: workspace:^ version: link:../pm - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 packages/extension-text: devDependencies: @@ -927,8 +922,8 @@ importers: packages/extension-unique-id: dependencies: uuid: - specifier: ^10.0.0 - version: 10.0.0 + specifier: ^14.0.0 + version: 14.0.0 devDependencies: '@tiptap/core': specifier: workspace:^ @@ -936,9 +931,6 @@ importers: '@tiptap/pm': specifier: workspace:^ version: link:../pm - '@types/uuid': - specifier: ^10.0.0 - version: 10.0.0 packages/extension-youtube: devDependencies: @@ -1806,6 +1798,9 @@ packages: resolution: {integrity: sha512-L6mZmwFDK6Cjh1nRCLXpa6no13ZIioJDz7mdkzHv399pThrTa/k0nUlNaenOeh2kWu/iaOQYElEpKPUswUa9Vg==} engines: {node: '>=6.9.0'} + '@bufbuild/protobuf@2.12.0': + resolution: {integrity: sha512-B/XlCaFIP8LOwzo+bz5uFzATYokcwCKQcghqnlfwSmM5eX/qTkvDBnDPs+gXtX/RyjxJ4DRikECcPJbyALA8FA==} + '@changesets/apply-release-plan@7.0.7': resolution: {integrity: sha512-qnPOcmmmnD0MfMg9DjU1/onORFyRpDXkMMl2IJg9mECY6RnxL3wN0TCCc92b2sXt1jt8DgjAUUsZYGUGTdYIXA==} @@ -3215,12 +3210,6 @@ packages: '@types/use-sync-external-store@0.0.6': resolution: {integrity: sha512-zFDAD+tlpf2r4asuHEj0XH6pY6i0g5NeAHPn+15wk3BV6JA69eERFXC1gyGThDkVa1zCyKr5jox1+2LbV/AMLg==} - '@types/uuid@10.0.0': - resolution: {integrity: sha512-7gqG38EyHgyP1S+7+xomFtL+ZNHcKv6DwNaCZmJmo1vgMugyF3TCnXVg4t1uk89mLNwnLtnY3TpOpCOyp1/xHQ==} - - '@types/uuid@8.3.4': - resolution: {integrity: sha512-c/I8ZRb51j+pYGAu5CrFMRxqZ2ke4y2grEBO5AUjgSkSk+qT2Ea+OdWElz/OiMf5MNpn2b17kuVBwZLQJXzihw==} - '@types/whatwg-mimetype@3.0.2': resolution: {integrity: sha512-c2AKvDT8ToxLIOUlN51gTiHXflsfIFisS4pO7pDPoKouJCESkhZnEy623gwP9laCy5lnLDAw1vAzu2vM2YLOrA==} @@ -3854,6 +3843,9 @@ packages: colorette@2.0.20: resolution: {integrity: sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w==} + colorjs.io@0.5.2: + resolution: {integrity: sha512-twmVoizEW7ylZSN32OgKdXRmo1qg+wT5/6C3xu5b9QsWzSFAhHLn2xd8ro0diCsKfCj1RdaTP/nrcW+vAoQPIw==} + colors@1.4.0: resolution: {integrity: sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==} engines: {node: '>=0.1.90'} @@ -6370,8 +6362,117 @@ packages: safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} - sass@1.83.4: - resolution: {integrity: sha512-B1bozCeNQiOgDcLd33e2Cs2U60wZwjUUXzh900ZyQF5qUasvMdDZYbQ566LJu7cqR+sAHlAfO6RMkaID5s6qpA==} + sass-embedded-all-unknown@1.99.0: + resolution: {integrity: sha512-qPIRG8Uhjo6/OKyAKixTnwMliTz+t9K6Duk0mx5z+K7n0Ts38NSJz2sjDnc7cA/8V9Lb3q09H38dZ1CLwD+ssw==} + cpu: ['!arm', '!arm64', '!riscv64', '!x64'] + + sass-embedded-android-arm64@1.99.0: + resolution: {integrity: sha512-fNHhdnP23yqqieCbAdym4N47AleSwjbNt6OYIYx4DdACGdtERjQB4iOX/TaKsW034MupfF7SjnAAK8w7Ptldtg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [android] + + sass-embedded-android-arm@1.99.0: + resolution: {integrity: sha512-EHvJ0C7/VuP78Qr6f8gIUVUmCqIorEQpw2yp3cs3SMg02ZuumlhjXvkTcFBxHmFdFR23vTNk1WnhY6QSeV1nFQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [android] + + sass-embedded-android-riscv64@1.99.0: + resolution: {integrity: sha512-4zqDFRvgGDTL5vTHuIhRxUpXFoh0Cy7Gm5Ywk19ASd8Settmd14YdPRZPmMxfgS1GH292PofV1fq1ifiSEJWBw==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [android] + + sass-embedded-android-x64@1.99.0: + resolution: {integrity: sha512-Uk53k/dGYt04RjOL4gFjZ0Z9DH9DKh8IA8WsXUkNqsxerAygoy3zqRBS2zngfE9K2jiOM87q+1R1p87ory9oQQ==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [android] + + sass-embedded-darwin-arm64@1.99.0: + resolution: {integrity: sha512-u61/7U3IGLqoO6gL+AHeiAtlTPFwJK1+964U8gp45ZN0hzh1yrARf5O1mivXv8NnNgJvbG2wWJbiNZP0lG/lTg==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [darwin] + + sass-embedded-darwin-x64@1.99.0: + resolution: {integrity: sha512-j/kkk/NcXdIameLezSfXjgCiBkVcA+G60AXrX768/3g0miK1g7M9dj7xOhCb1i7/wQeiEI3rw2LLuO63xRIn4A==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [darwin] + + sass-embedded-linux-arm64@1.99.0: + resolution: {integrity: sha512-btNcFpItcB56L40n8hDeL7sRSMLDXQ56nB5h2deddJx1n60rpKSElJmkaDGHtpkrY+CTtDRV0FZDjHeTJddYew==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-arm@1.99.0: + resolution: {integrity: sha512-d4IjJZrX2+AwB2YCy1JySwdptJECNP/WfAQLUl8txI3ka8/d3TUI155GtelnoZUkio211PwIeFvvAeZ9RXPQnw==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-arm64@1.99.0: + resolution: {integrity: sha512-Hi2bt/IrM5P4FBKz6EcHAlniwfpoz9mnTdvSd58y+avA3SANM76upIkAdSayA8ZGwyL3gZokru1AKDPF9lJDNw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [linux] + + sass-embedded-linux-musl-arm@1.99.0: + resolution: {integrity: sha512-2gvHOupgIw3ytatXT4nFUow71LFbuOZPEwG+HUzcNQDH8ue4Ez8cr03vsv5MDv3lIjOKcXwDvWD980t18MwkoQ==} + engines: {node: '>=14.0.0'} + cpu: [arm] + os: [linux] + + sass-embedded-linux-musl-riscv64@1.99.0: + resolution: {integrity: sha512-mKqGvVaJ9rHMqyZsF0kikQe4NO0f4osb67+X6nLhBiVDKvyazQHJ3zJQreNefIE36yL2sjHIclSB//MprzaQDg==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-musl-x64@1.99.0: + resolution: {integrity: sha512-huhgOMmOc30r7CH7qbRbT9LerSEGSnWuS4CYNOskr9BvNeQp4dIneFufNRGZ7hkOAxUM8DglxIZJN/cyAT95Ew==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-linux-riscv64@1.99.0: + resolution: {integrity: sha512-mevFPIFAVhrH90THifxLfOntFmHtcEKOcdWnep2gJ0X4DVva4AiVIRlQe/7w9JFx5+gnDRE1oaJJkzuFUuYZsA==} + engines: {node: '>=14.0.0'} + cpu: [riscv64] + os: [linux] + + sass-embedded-linux-x64@1.99.0: + resolution: {integrity: sha512-9k7IkULqIZdCIVt4Mboryt6vN8Mjmm3EhI1P3mClU5y5i3wLK5ExC3cbVWk047KsID/fvB1RLslqghXJx5BoxA==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [linux] + + sass-embedded-unknown-all@1.99.0: + resolution: {integrity: sha512-P7MxiUtL/XzGo3PX0CaB8lNNEFLQWKikPA8pbKytx9ZCLZSDkt2NJcdAbblB/sqMs4AV3EK2NadV8rI/diq3xg==} + os: ['!android', '!darwin', '!linux', '!win32'] + + sass-embedded-win32-arm64@1.99.0: + resolution: {integrity: sha512-8whpsW7S+uO8QApKfQuc36m3P9EISzbVZOgC79goob4qGy09u8Gz/rYvw8h1prJDSjltpHGhOzBE6LDz7WvzVw==} + engines: {node: '>=14.0.0'} + cpu: [arm64] + os: [win32] + + sass-embedded-win32-x64@1.99.0: + resolution: {integrity: sha512-ipuOv1R2K4MHeuCEAZGpuUbAgma4gb0sdacyrTjJtMOy/OY9UvWfVlwErdB09KIkp4fPDpQJDJfvYN6bC8jeNg==} + engines: {node: '>=14.0.0'} + cpu: [x64] + os: [win32] + + sass-embedded@1.99.0: + resolution: {integrity: sha512-gF/juR1aX02lZHkvwxdF80SapkQeg2fetoDF6gIQkNbSw5YEUFspMkyGTjPjgZSgIHuZpy+Wz4PlebKnLXMjdg==} + engines: {node: '>=16.0.0'} + hasBin: true + + sass@1.99.0: + resolution: {integrity: sha512-kgW13M54DUB7IsIRM5LvJkNlpH+WhMpooUcaWGFARkF1Tc82v9mIWkCbCYf+MBvpIUBSeSOTilpZjEPr2VYE6Q==} engines: {node: '>=14.0.0'} hasBin: true @@ -6622,6 +6723,14 @@ packages: resolution: {integrity: sha512-IY1rnGr6izd10B0A8LqsBfmlT5OILVuZ7XsI0vdGPEvuonFV7NYEUK4dAkm9Zg2q0Um92kYjTpS1CAP3Nh/KWw==} engines: {node: '>=16'} + sync-child-process@1.0.2: + resolution: {integrity: sha512-8lD+t2KrrScJ/7KXCSyfhT3/hRq78rC0wBFqNJXv3mZyn6hW2ypM05JmlSvtqRbeq6jqA94oHbxAr2vYsJ8vDA==} + engines: {node: '>=16.0.0'} + + sync-message-port@1.2.0: + resolution: {integrity: sha512-gAQ9qrUN/UCypHtGFbbe7Rc/f9bzO88IwrG8TDo/aMKAApKyD6E3W4Cm0EfhfBb6Z6SKt59tTCTfD+n1xmAvMg==} + engines: {node: '>=16.0.0'} + systeminformation@5.31.5: resolution: {integrity: sha512-5SyLdip4/3alxD4Kh+63bUQTJmu7YMfYQTC+koZy7X73HgNqZSD2P4wOZQWtUncvPvcEmnfIjCoygN4MRoEejQ==} engines: {node: '>=8.0.0'} @@ -6979,18 +7088,17 @@ packages: util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} - uuid@10.0.0: - resolution: {integrity: sha512-8XkAphELsDnEGrDxUOHB3RGvXz6TeuYSGEZBOjtTtPm2lwhGBjLgOzLHB63IUWfBpNucQjND6d3AOudO+H3RWQ==} - hasBin: true - - uuid@8.3.2: - resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} + uuid@14.0.0: + resolution: {integrity: sha512-Qo+uWgilfSmAhXCMav1uYFynlQO7fMFiMVZsQqZRMIXp0O7rR7qjkj+cPvBHLgBqi960QCoo/PH2/6ZtVqKvrg==} hasBin: true validate-npm-package-name@5.0.1: resolution: {integrity: sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} + varint@6.0.0: + resolution: {integrity: sha512-cXEIW6cfr15lFv563k4GuVuW/fiwjknytD37jIOLSdSWuOI6WnO/oKwmP2FQTU2l01LP8/M5TSAJpzUaGe3uWg==} + verror@1.10.0: resolution: {integrity: sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw==} engines: {'0': node >=0.6.0} @@ -8148,6 +8256,8 @@ snapshots: '@babel/helper-string-parser': 7.25.9 '@babel/helper-validator-identifier': 7.25.9 + '@bufbuild/protobuf@2.12.0': {} + '@changesets/apply-release-plan@7.0.7': dependencies: '@changesets/config': 3.0.5 @@ -8497,7 +8607,7 @@ snapshots: safe-buffer: 5.2.1 tough-cookie: 5.1.0 tunnel-agent: 0.6.0 - uuid: 8.3.2 + uuid: 14.0.0 '@cypress/webpack-preprocessor@6.0.2(@babel/core@7.26.0)(@babel/preset-env@7.26.0(@babel/core@7.26.0))(babel-loader@9.2.1(@babel/core@7.26.0)(webpack@5.97.1(esbuild@0.27.2)))(webpack@5.97.1(esbuild@0.27.2))': dependencies: @@ -9344,26 +9454,26 @@ snapshots: '@standard-schema/spec@1.1.0': {} - '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)))(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0))': + '@sveltejs/vite-plugin-svelte-inspector@2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)))(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0))': dependencies: - '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)) + '@sveltejs/vite-plugin-svelte': 3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)) debug: 4.4.0 svelte: 4.2.19 - vite: 5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0) + vite: 5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0) transitivePeerDependencies: - supports-color - '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0))': + '@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0))': dependencies: - '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)))(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)) + '@sveltejs/vite-plugin-svelte-inspector': 2.1.0(@sveltejs/vite-plugin-svelte@3.1.2(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)))(svelte@4.2.19)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)) debug: 4.4.0 deepmerge: 4.3.1 kleur: 4.1.5 magic-string: 0.30.17 svelte: 4.2.19 svelte-hmr: 0.16.0(svelte@4.2.19) - vite: 5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0) - vitefu: 0.2.5(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)) + vite: 5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0) + vitefu: 0.2.5(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)) transitivePeerDependencies: - supports-color @@ -9625,10 +9735,6 @@ snapshots: '@types/use-sync-external-store@0.0.6': {} - '@types/uuid@10.0.0': {} - - '@types/uuid@8.3.4': {} - '@types/whatwg-mimetype@3.0.2': {} '@types/ws@8.18.1': @@ -9746,9 +9852,9 @@ snapshots: transitivePeerDependencies: - supports-color - '@vitejs/plugin-vue@5.2.1(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0))(vue@3.5.13(typescript@5.7.3))': + '@vitejs/plugin-vue@5.2.1(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0))(vue@3.5.13(typescript@5.7.3))': dependencies: - vite: 5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0) + vite: 5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0) vue: 3.5.13(typescript@5.7.3) '@vitest/expect@4.1.2': @@ -9760,13 +9866,13 @@ snapshots: chai: 6.2.2 tinyrainbow: 3.1.0 - '@vitest/mocker@4.1.2(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0))': + '@vitest/mocker@4.1.2(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0))': dependencies: '@vitest/spy': 4.1.2 estree-walker: 3.0.3 magic-string: 0.30.21 optionalDependencies: - vite: 7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0) + vite: 7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0) '@vitest/pretty-format@4.1.2': dependencies: @@ -9795,7 +9901,7 @@ snapshots: sirv: 3.0.2 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vitest: 4.1.2(@types/node@25.5.0)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0)) + vitest: 4.1.2(@types/node@25.5.0)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0)) '@vitest/utils@4.1.2': dependencies: @@ -10376,6 +10482,8 @@ snapshots: colorette@2.0.20: {} + colorjs.io@0.5.2: {} + colors@1.4.0: optional: true @@ -13109,13 +13217,101 @@ snapshots: safer-buffer@2.1.2: {} - sass@1.83.4: + sass-embedded-all-unknown@1.99.0: + dependencies: + sass: 1.99.0 + optional: true + + sass-embedded-android-arm64@1.99.0: + optional: true + + sass-embedded-android-arm@1.99.0: + optional: true + + sass-embedded-android-riscv64@1.99.0: + optional: true + + sass-embedded-android-x64@1.99.0: + optional: true + + sass-embedded-darwin-arm64@1.99.0: + optional: true + + sass-embedded-darwin-x64@1.99.0: + optional: true + + sass-embedded-linux-arm64@1.99.0: + optional: true + + sass-embedded-linux-arm@1.99.0: + optional: true + + sass-embedded-linux-musl-arm64@1.99.0: + optional: true + + sass-embedded-linux-musl-arm@1.99.0: + optional: true + + sass-embedded-linux-musl-riscv64@1.99.0: + optional: true + + sass-embedded-linux-musl-x64@1.99.0: + optional: true + + sass-embedded-linux-riscv64@1.99.0: + optional: true + + sass-embedded-linux-x64@1.99.0: + optional: true + + sass-embedded-unknown-all@1.99.0: + dependencies: + sass: 1.99.0 + optional: true + + sass-embedded-win32-arm64@1.99.0: + optional: true + + sass-embedded-win32-x64@1.99.0: + optional: true + + sass-embedded@1.99.0: + dependencies: + '@bufbuild/protobuf': 2.12.0 + colorjs.io: 0.5.2 + immutable: 5.1.5 + rxjs: 7.8.1 + supports-color: 8.1.1 + sync-child-process: 1.0.2 + varint: 6.0.0 + optionalDependencies: + sass-embedded-all-unknown: 1.99.0 + sass-embedded-android-arm: 1.99.0 + sass-embedded-android-arm64: 1.99.0 + sass-embedded-android-riscv64: 1.99.0 + sass-embedded-android-x64: 1.99.0 + sass-embedded-darwin-arm64: 1.99.0 + sass-embedded-darwin-x64: 1.99.0 + sass-embedded-linux-arm: 1.99.0 + sass-embedded-linux-arm64: 1.99.0 + sass-embedded-linux-musl-arm: 1.99.0 + sass-embedded-linux-musl-arm64: 1.99.0 + sass-embedded-linux-musl-riscv64: 1.99.0 + sass-embedded-linux-musl-x64: 1.99.0 + sass-embedded-linux-riscv64: 1.99.0 + sass-embedded-linux-x64: 1.99.0 + sass-embedded-unknown-all: 1.99.0 + sass-embedded-win32-arm64: 1.99.0 + sass-embedded-win32-x64: 1.99.0 + + sass@1.99.0: dependencies: chokidar: 4.0.3 immutable: 5.1.5 source-map-js: 1.2.1 optionalDependencies: '@parcel/watcher': 2.5.0 + optional: true scheduler@0.23.2: dependencies: @@ -13416,6 +13612,12 @@ snapshots: magic-string: 0.30.17 periscopic: 3.1.0 + sync-child-process@1.0.2: + dependencies: + sync-message-port: 1.2.0 + + sync-message-port@1.2.0: {} + systeminformation@5.31.5: {} tabbable@6.2.0: {} @@ -13758,12 +13960,12 @@ snapshots: util-deprecate@1.0.2: {} - uuid@10.0.0: {} - - uuid@8.3.2: {} + uuid@14.0.0: {} validate-npm-package-name@5.0.1: {} + varint@6.0.0: {} + verror@1.10.0: dependencies: assert-plus: 1.0.0 @@ -13780,7 +13982,7 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.2 - vite-plugin-checker@0.6.4(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)): + vite-plugin-checker@0.6.4(eslint@8.57.1)(optionator@0.9.4)(typescript@5.7.3)(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)): dependencies: '@babel/code-frame': 7.26.2 ansi-escapes: 4.3.2 @@ -13793,7 +13995,7 @@ snapshots: semver: 7.6.3 strip-ansi: 6.0.1 tiny-invariant: 1.3.3 - vite: 5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0) + vite: 5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0) vscode-languageclient: 7.0.0 vscode-languageserver: 7.0.0 vscode-languageserver-textdocument: 1.0.12 @@ -13803,7 +14005,7 @@ snapshots: optionator: 0.9.4 typescript: 5.7.3 - vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0): + vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0): dependencies: esbuild: 0.21.5 postcss: 8.5.6 @@ -13811,10 +14013,11 @@ snapshots: optionalDependencies: '@types/node': 22.10.3 fsevents: 2.3.3 - sass: 1.83.4 + sass: 1.99.0 + sass-embedded: 1.99.0 terser: 5.37.0 - vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0): + vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0): dependencies: esbuild: 0.25.0 fdir: 6.5.0(picomatch@4.0.4) @@ -13826,18 +14029,19 @@ snapshots: '@types/node': 25.5.0 fsevents: 2.3.3 jiti: 2.4.2 - sass: 1.83.4 + sass: 1.99.0 + sass-embedded: 1.99.0 terser: 5.37.0 yaml: 2.7.0 - vitefu@0.2.5(vite@5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0)): + vitefu@0.2.5(vite@5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)): optionalDependencies: - vite: 5.4.20(@types/node@22.10.3)(sass@1.83.4)(terser@5.37.0) + vite: 5.4.20(@types/node@22.10.3)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0) - vitest@4.1.2(@types/node@25.5.0)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0)): + vitest@4.1.2(@types/node@25.5.0)(@vitest/ui@4.1.2)(happy-dom@20.8.9)(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0)): dependencies: '@vitest/expect': 4.1.2 - '@vitest/mocker': 4.1.2(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0)) + '@vitest/mocker': 4.1.2(vite@7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0)) '@vitest/pretty-format': 4.1.2 '@vitest/runner': 4.1.2 '@vitest/snapshot': 4.1.2 @@ -13854,7 +14058,7 @@ snapshots: tinyexec: 1.0.4 tinyglobby: 0.2.15 tinyrainbow: 3.1.0 - vite: 7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass@1.83.4)(terser@5.37.0)(yaml@2.7.0) + vite: 7.2.1(@types/node@25.5.0)(jiti@2.4.2)(sass-embedded@1.99.0)(sass@1.99.0)(terser@5.37.0)(yaml@2.7.0) why-is-node-running: 2.3.0 optionalDependencies: '@types/node': 25.5.0 diff --git a/skills/tiptap/SKILL.md b/skills/tiptap/SKILL.md index 073b96f830..fdada38d7f 100644 --- a/skills/tiptap/SKILL.md +++ b/skills/tiptap/SKILL.md @@ -9,9 +9,16 @@ metadata: # Tiptap Integration Skill -Instructions for coding agents integrating the Tiptap rich text editor +This skill contains instructions for integrating the Tiptap rich text editor into an app and +developing new features with it. -## Reference Repositories +This is not the Tiptap editor you know. Before you implement any feature with Tiptap, reference +the Tiptap code and documentation to make sure you implement it correctly. Make sure any decision +you make is in accordance to the "Best Practices" section and is grounded in the tiptap documentation +and source code. Do not guess or invent patterns, make sure the code you write matches the library +source code and the documentation. + +## Initial setup Clone the tiptap and tiptap-docs repositories so you can search the source code and documentation. @@ -22,7 +29,12 @@ If the workspace already has a reference folder with other repositories, clone t Otherwise, clone the repositories in a new `.reference` folder. The reference folder should be git-ignored. -Before you start a task, make sure the repositories are updated to the latest version. +## Referencing the Tiptap documentation + +Before doing any task that involves the Tiptap editor: + +1. Pull the latest changes of the `main` branch in the local tiptap and tiptap-docs repositories +2. Research the documentation and source code to see how to implement it ## Best Practices @@ -41,17 +53,79 @@ Before you start a task, make sure the repositories are updated to the latest ve When the user asks you to implement one of these features, read the corresponding section in tiptap-docs for guidance. -- **Real-time collaboration** — Multiple users editing a document simultaneously. See `tiptap-docs/src/content/collaboration/`. -- **Comments** — Thread-based inline and document comments. See `tiptap-docs/src/content/comments/`. -- **Tracked changes** — Track, accept, and reject document edits. See `tiptap-docs/src/content/tracked-changes/`. -- **Import/Export** — Convert documents to and from DOCX, PDF, Markdown, and other formats. See `tiptap-docs/src/content/conversion/`. -- **AI content generation** — Generate text content into the document using AI. See `tiptap-docs/src/content/content-ai/capabilities/ai-toolkit/workflows/insert-content.mdx`. -- **AI agent document editing** — Give an AI agent the ability to edit Tiptap documents. See `tiptap-docs/src/content/content-ai/capabilities/ai-toolkit/`. -- **AI review and proofreading** — Review, proofread, and suggest style improvements. See `tiptap-docs/src/content/content-ai/capabilities/ai-toolkit/workflows/proofreader.mdx`. -- **AI server-side processing** — Run AI workflows that edit rich text documents on the server. See `tiptap-docs/src/content/content-ai/capabilities/server-ai-toolkit/`. -- **Version history** — Save and restore document snapshots. See `tiptap-docs/src/content/collaboration/documents/snapshot.mdx`. -- **Snapshot compare** — Highlight differences between document versions. See `tiptap-docs/src/content/collaboration/documents/snapshot-compare.mdx`. -- **Pages** — Print-ready page layout with headers, footers, and page breaks. See `tiptap-docs/src/content/pages/`. +### Real-time collaboration + +Multiple users editing a document simultaneously. See `tiptap-docs/src/content/collaboration/`. + +Use Tiptap Cloud to implement real-time collaboration. Use the Collaboration extension: + +``` +const doc = new Y.Doc() + +const editor = new Editor({ + extensions: [ + Collaboration.configure({ + document: doc, + }), + ], +}) +``` + +Use the TiptapCollabProvider: + +``` +const provider = new TiptapCollabProvider({ + name: 'unique_document_name', + appId: 'APP_ID', // Your document server ID from the Cloud dashboard + token: 'JWT_TOKEN', // Your JWT token + document: doc, +}) +``` + +If it's the first time setting up collaboration and the Tiptap Cloud account is not set up, explain +to the user how to set up a Tiptap Cloud account and obtain the environment variables. + +### Comments + +Implement comments with the Comments extension. + +Thread-based inline and document comments. See `tiptap-docs/src/content/comments/`. + +### Tracked changes + +Track, accept, and reject document edits. See `tiptap-docs/src/content/tracked-changes/`. + +### Import/Export + +Convert documents to and from DOCX, PDF, Markdown, and other formats. See `tiptap-docs/src/content/conversion/`. + +### AI content generation + +Generate text content into the document using AI. See `tiptap-docs/src/content/content-ai/capabilities/ai-toolkit/workflows/insert-content.mdx`. + +### AI agent document editing + +Give an AI agent the ability to edit Tiptap documents. See `tiptap-docs/src/content/content-ai/capabilities/ai-toolkit/`. + +### AI review and proofreading + +Review, proofread, and suggest style improvements. See `tiptap-docs/src/content/content-ai/capabilities/ai-toolkit/workflows/proofreader.mdx`. + +### AI server-side processing + +Run AI workflows that edit rich text documents on the server. See `tiptap-docs/src/content/content-ai/capabilities/server-ai-toolkit/`. + +### Version history + +Save and restore document snapshots. See `tiptap-docs/src/content/collaboration/documents/snapshot.mdx`. + +### Snapshot compare + +Highlight differences between document versions. See `tiptap-docs/src/content/collaboration/documents/snapshot-compare.mdx`. + +### Pages + +Print-ready page layout with headers, footers, and page breaks. See `tiptap-docs/src/content/pages/`. ## Pro Extensions