fix: replace y-websocket with @hocuspocus /provider for protocol compatibility
Browse filesThe frontend was using y-websocket's WebsocketProvider while the backend
uses @hocuspocus /server v3, causing ERR_ENCODING_INVALID_ENCODED_DATA
errors on every WebSocket message and resulting in an empty Y.Doc
server-side (blank published articles).
Switch to @hocuspocus /provider which speaks the native Hocuspocus
protocol and sends the auth token through the WebSocket connection.
Made-with: Cursor
- frontend/package-lock.json +53 -462
- frontend/package.json +1 -1
- frontend/src/editor/Editor.tsx +10 -4
frontend/package-lock.json
CHANGED
|
@@ -12,6 +12,7 @@
|
|
| 12 |
"@emotion/react": "^11.14.0",
|
| 13 |
"@emotion/styled": "^11.14.1",
|
| 14 |
"@floating-ui/dom": "^1.7.6",
|
|
|
|
| 15 |
"@mui/icons-material": "^9.0.0",
|
| 16 |
"@mui/material": "^9.0.0",
|
| 17 |
"@tiptap/core": "^3.22.3",
|
|
@@ -38,7 +39,6 @@
|
|
| 38 |
"react": "^18.3.0",
|
| 39 |
"react-dom": "^18.3.0",
|
| 40 |
"tippy.js": "^6.3.7",
|
| 41 |
-
"y-websocket": "^2.0.0",
|
| 42 |
"yjs": "^13.6.0",
|
| 43 |
"zod": "^4.3.6"
|
| 44 |
},
|
|
@@ -1018,6 +1018,52 @@
|
|
| 1018 |
"integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
|
| 1019 |
"license": "MIT"
|
| 1020 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1021 |
"node_modules/@jridgewell/gen-mapping": {
|
| 1022 |
"version": "0.3.13",
|
| 1023 |
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
|
|
@@ -1064,6 +1110,12 @@
|
|
| 1064 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 1065 |
}
|
| 1066 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1067 |
"node_modules/@mui/core-downloads-tracker": {
|
| 1068 |
"version": "9.0.0",
|
| 1069 |
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-9.0.0.tgz",
|
|
@@ -2461,24 +2513,6 @@
|
|
| 2461 |
"vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
|
| 2462 |
}
|
| 2463 |
},
|
| 2464 |
-
"node_modules/abstract-leveldown": {
|
| 2465 |
-
"version": "6.2.3",
|
| 2466 |
-
"resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-6.2.3.tgz",
|
| 2467 |
-
"integrity": "sha512-BsLm5vFMRUrrLeCcRc+G0t2qOaTzpoJQLOubq2XM72eNpjF5UdU5o/5NvlNhx95XHcAvcl8OMXr4mlg/fRgUXQ==",
|
| 2468 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 2469 |
-
"license": "MIT",
|
| 2470 |
-
"optional": true,
|
| 2471 |
-
"dependencies": {
|
| 2472 |
-
"buffer": "^5.5.0",
|
| 2473 |
-
"immediate": "^3.2.3",
|
| 2474 |
-
"level-concat-iterator": "~2.0.0",
|
| 2475 |
-
"level-supports": "~1.0.0",
|
| 2476 |
-
"xtend": "~4.0.0"
|
| 2477 |
-
},
|
| 2478 |
-
"engines": {
|
| 2479 |
-
"node": ">=6"
|
| 2480 |
-
}
|
| 2481 |
-
},
|
| 2482 |
"node_modules/ai": {
|
| 2483 |
"version": "6.0.158",
|
| 2484 |
"resolved": "https://registry.npmjs.org/ai/-/ai-6.0.158.tgz",
|
|
@@ -2503,13 +2537,6 @@
|
|
| 2503 |
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
| 2504 |
"license": "Python-2.0"
|
| 2505 |
},
|
| 2506 |
-
"node_modules/async-limiter": {
|
| 2507 |
-
"version": "1.0.1",
|
| 2508 |
-
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
|
| 2509 |
-
"integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==",
|
| 2510 |
-
"license": "MIT",
|
| 2511 |
-
"optional": true
|
| 2512 |
-
},
|
| 2513 |
"node_modules/babel-plugin-macros": {
|
| 2514 |
"version": "3.1.0",
|
| 2515 |
"resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
|
|
@@ -2525,27 +2552,6 @@
|
|
| 2525 |
"npm": ">=6"
|
| 2526 |
}
|
| 2527 |
},
|
| 2528 |
-
"node_modules/base64-js": {
|
| 2529 |
-
"version": "1.5.1",
|
| 2530 |
-
"resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
|
| 2531 |
-
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
|
| 2532 |
-
"funding": [
|
| 2533 |
-
{
|
| 2534 |
-
"type": "github",
|
| 2535 |
-
"url": "https://github.com/sponsors/feross"
|
| 2536 |
-
},
|
| 2537 |
-
{
|
| 2538 |
-
"type": "patreon",
|
| 2539 |
-
"url": "https://www.patreon.com/feross"
|
| 2540 |
-
},
|
| 2541 |
-
{
|
| 2542 |
-
"type": "consulting",
|
| 2543 |
-
"url": "https://feross.org/support"
|
| 2544 |
-
}
|
| 2545 |
-
],
|
| 2546 |
-
"license": "MIT",
|
| 2547 |
-
"optional": true
|
| 2548 |
-
},
|
| 2549 |
"node_modules/baseline-browser-mapping": {
|
| 2550 |
"version": "2.10.18",
|
| 2551 |
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.18.tgz",
|
|
@@ -2594,31 +2600,6 @@
|
|
| 2594 |
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
| 2595 |
}
|
| 2596 |
},
|
| 2597 |
-
"node_modules/buffer": {
|
| 2598 |
-
"version": "5.7.1",
|
| 2599 |
-
"resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz",
|
| 2600 |
-
"integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==",
|
| 2601 |
-
"funding": [
|
| 2602 |
-
{
|
| 2603 |
-
"type": "github",
|
| 2604 |
-
"url": "https://github.com/sponsors/feross"
|
| 2605 |
-
},
|
| 2606 |
-
{
|
| 2607 |
-
"type": "patreon",
|
| 2608 |
-
"url": "https://www.patreon.com/feross"
|
| 2609 |
-
},
|
| 2610 |
-
{
|
| 2611 |
-
"type": "consulting",
|
| 2612 |
-
"url": "https://feross.org/support"
|
| 2613 |
-
}
|
| 2614 |
-
],
|
| 2615 |
-
"license": "MIT",
|
| 2616 |
-
"optional": true,
|
| 2617 |
-
"dependencies": {
|
| 2618 |
-
"base64-js": "^1.3.1",
|
| 2619 |
-
"ieee754": "^1.1.13"
|
| 2620 |
-
}
|
| 2621 |
-
},
|
| 2622 |
"node_modules/callsites": {
|
| 2623 |
"version": "3.1.0",
|
| 2624 |
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
|
@@ -2727,21 +2708,6 @@
|
|
| 2727 |
}
|
| 2728 |
}
|
| 2729 |
},
|
| 2730 |
-
"node_modules/deferred-leveldown": {
|
| 2731 |
-
"version": "5.3.0",
|
| 2732 |
-
"resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-5.3.0.tgz",
|
| 2733 |
-
"integrity": "sha512-a59VOT+oDy7vtAbLRCZwWgxu2BaCfd5Hk7wxJd48ei7I+nsg8Orlb9CLG0PMZienk9BSUKgeAqkO2+Lw+1+Ukw==",
|
| 2734 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 2735 |
-
"license": "MIT",
|
| 2736 |
-
"optional": true,
|
| 2737 |
-
"dependencies": {
|
| 2738 |
-
"abstract-leveldown": "~6.2.1",
|
| 2739 |
-
"inherits": "^2.0.3"
|
| 2740 |
-
},
|
| 2741 |
-
"engines": {
|
| 2742 |
-
"node": ">=6"
|
| 2743 |
-
}
|
| 2744 |
-
},
|
| 2745 |
"node_modules/dequal": {
|
| 2746 |
"version": "2.0.3",
|
| 2747 |
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
|
@@ -2781,23 +2747,6 @@
|
|
| 2781 |
"dev": true,
|
| 2782 |
"license": "ISC"
|
| 2783 |
},
|
| 2784 |
-
"node_modules/encoding-down": {
|
| 2785 |
-
"version": "6.3.0",
|
| 2786 |
-
"resolved": "https://registry.npmjs.org/encoding-down/-/encoding-down-6.3.0.tgz",
|
| 2787 |
-
"integrity": "sha512-QKrV0iKR6MZVJV08QY0wp1e7vF6QbhnbQhb07bwpEyuz4uZiZgPlEGdkCROuFkUwdxlFaiPIhjyarH1ee/3vhw==",
|
| 2788 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 2789 |
-
"license": "MIT",
|
| 2790 |
-
"optional": true,
|
| 2791 |
-
"dependencies": {
|
| 2792 |
-
"abstract-leveldown": "^6.2.1",
|
| 2793 |
-
"inherits": "^2.0.3",
|
| 2794 |
-
"level-codec": "^9.0.0",
|
| 2795 |
-
"level-errors": "^2.0.0"
|
| 2796 |
-
},
|
| 2797 |
-
"engines": {
|
| 2798 |
-
"node": ">=6"
|
| 2799 |
-
}
|
| 2800 |
-
},
|
| 2801 |
"node_modules/entities": {
|
| 2802 |
"version": "4.5.0",
|
| 2803 |
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
|
@@ -2810,19 +2759,6 @@
|
|
| 2810 |
"url": "https://github.com/fb55/entities?sponsor=1"
|
| 2811 |
}
|
| 2812 |
},
|
| 2813 |
-
"node_modules/errno": {
|
| 2814 |
-
"version": "0.1.8",
|
| 2815 |
-
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz",
|
| 2816 |
-
"integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==",
|
| 2817 |
-
"license": "MIT",
|
| 2818 |
-
"optional": true,
|
| 2819 |
-
"dependencies": {
|
| 2820 |
-
"prr": "~1.0.1"
|
| 2821 |
-
},
|
| 2822 |
-
"bin": {
|
| 2823 |
-
"errno": "cli.js"
|
| 2824 |
-
}
|
| 2825 |
-
},
|
| 2826 |
"node_modules/error-ex": {
|
| 2827 |
"version": "1.3.4",
|
| 2828 |
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
|
|
@@ -3018,34 +2954,6 @@
|
|
| 3018 |
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
| 3019 |
"license": "MIT"
|
| 3020 |
},
|
| 3021 |
-
"node_modules/ieee754": {
|
| 3022 |
-
"version": "1.2.1",
|
| 3023 |
-
"resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
|
| 3024 |
-
"integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
|
| 3025 |
-
"funding": [
|
| 3026 |
-
{
|
| 3027 |
-
"type": "github",
|
| 3028 |
-
"url": "https://github.com/sponsors/feross"
|
| 3029 |
-
},
|
| 3030 |
-
{
|
| 3031 |
-
"type": "patreon",
|
| 3032 |
-
"url": "https://www.patreon.com/feross"
|
| 3033 |
-
},
|
| 3034 |
-
{
|
| 3035 |
-
"type": "consulting",
|
| 3036 |
-
"url": "https://feross.org/support"
|
| 3037 |
-
}
|
| 3038 |
-
],
|
| 3039 |
-
"license": "BSD-3-Clause",
|
| 3040 |
-
"optional": true
|
| 3041 |
-
},
|
| 3042 |
-
"node_modules/immediate": {
|
| 3043 |
-
"version": "3.3.0",
|
| 3044 |
-
"resolved": "https://registry.npmjs.org/immediate/-/immediate-3.3.0.tgz",
|
| 3045 |
-
"integrity": "sha512-HR7EVodfFUdQCTIeySw+WDRFJlPcLOJbXfwwZ7Oom6tjsvZ3bOkCDJHehQC3nxJrv7+f9XecwazynjU8e4Vw3Q==",
|
| 3046 |
-
"license": "MIT",
|
| 3047 |
-
"optional": true
|
| 3048 |
-
},
|
| 3049 |
"node_modules/import-fresh": {
|
| 3050 |
"version": "3.3.1",
|
| 3051 |
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
|
|
@@ -3062,13 +2970,6 @@
|
|
| 3062 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 3063 |
}
|
| 3064 |
},
|
| 3065 |
-
"node_modules/inherits": {
|
| 3066 |
-
"version": "2.0.4",
|
| 3067 |
-
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
|
| 3068 |
-
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
|
| 3069 |
-
"license": "ISC",
|
| 3070 |
-
"optional": true
|
| 3071 |
-
},
|
| 3072 |
"node_modules/is-arrayish": {
|
| 3073 |
"version": "0.2.1",
|
| 3074 |
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
|
@@ -3160,156 +3061,6 @@
|
|
| 3160 |
"katex": "cli.js"
|
| 3161 |
}
|
| 3162 |
},
|
| 3163 |
-
"node_modules/level": {
|
| 3164 |
-
"version": "6.0.1",
|
| 3165 |
-
"resolved": "https://registry.npmjs.org/level/-/level-6.0.1.tgz",
|
| 3166 |
-
"integrity": "sha512-psRSqJZCsC/irNhfHzrVZbmPYXDcEYhA5TVNwr+V92jF44rbf86hqGp8fiT702FyiArScYIlPSBTDUASCVNSpw==",
|
| 3167 |
-
"license": "MIT",
|
| 3168 |
-
"optional": true,
|
| 3169 |
-
"dependencies": {
|
| 3170 |
-
"level-js": "^5.0.0",
|
| 3171 |
-
"level-packager": "^5.1.0",
|
| 3172 |
-
"leveldown": "^5.4.0"
|
| 3173 |
-
},
|
| 3174 |
-
"engines": {
|
| 3175 |
-
"node": ">=8.6.0"
|
| 3176 |
-
},
|
| 3177 |
-
"funding": {
|
| 3178 |
-
"type": "opencollective",
|
| 3179 |
-
"url": "https://opencollective.com/level"
|
| 3180 |
-
}
|
| 3181 |
-
},
|
| 3182 |
-
"node_modules/level-codec": {
|
| 3183 |
-
"version": "9.0.2",
|
| 3184 |
-
"resolved": "https://registry.npmjs.org/level-codec/-/level-codec-9.0.2.tgz",
|
| 3185 |
-
"integrity": "sha512-UyIwNb1lJBChJnGfjmO0OR+ezh2iVu1Kas3nvBS/BzGnx79dv6g7unpKIDNPMhfdTEGoc7mC8uAu51XEtX+FHQ==",
|
| 3186 |
-
"deprecated": "Superseded by level-transcoder (https://github.com/Level/community#faq)",
|
| 3187 |
-
"license": "MIT",
|
| 3188 |
-
"optional": true,
|
| 3189 |
-
"dependencies": {
|
| 3190 |
-
"buffer": "^5.6.0"
|
| 3191 |
-
},
|
| 3192 |
-
"engines": {
|
| 3193 |
-
"node": ">=6"
|
| 3194 |
-
}
|
| 3195 |
-
},
|
| 3196 |
-
"node_modules/level-concat-iterator": {
|
| 3197 |
-
"version": "2.0.1",
|
| 3198 |
-
"resolved": "https://registry.npmjs.org/level-concat-iterator/-/level-concat-iterator-2.0.1.tgz",
|
| 3199 |
-
"integrity": "sha512-OTKKOqeav2QWcERMJR7IS9CUo1sHnke2C0gkSmcR7QuEtFNLLzHQAvnMw8ykvEcv0Qtkg0p7FOwP1v9e5Smdcw==",
|
| 3200 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 3201 |
-
"license": "MIT",
|
| 3202 |
-
"optional": true,
|
| 3203 |
-
"engines": {
|
| 3204 |
-
"node": ">=6"
|
| 3205 |
-
}
|
| 3206 |
-
},
|
| 3207 |
-
"node_modules/level-errors": {
|
| 3208 |
-
"version": "2.0.1",
|
| 3209 |
-
"resolved": "https://registry.npmjs.org/level-errors/-/level-errors-2.0.1.tgz",
|
| 3210 |
-
"integrity": "sha512-UVprBJXite4gPS+3VznfgDSU8PTRuVX0NXwoWW50KLxd2yw4Y1t2JUR5In1itQnudZqRMT9DlAM3Q//9NCjCFw==",
|
| 3211 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 3212 |
-
"license": "MIT",
|
| 3213 |
-
"optional": true,
|
| 3214 |
-
"dependencies": {
|
| 3215 |
-
"errno": "~0.1.1"
|
| 3216 |
-
},
|
| 3217 |
-
"engines": {
|
| 3218 |
-
"node": ">=6"
|
| 3219 |
-
}
|
| 3220 |
-
},
|
| 3221 |
-
"node_modules/level-iterator-stream": {
|
| 3222 |
-
"version": "4.0.2",
|
| 3223 |
-
"resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-4.0.2.tgz",
|
| 3224 |
-
"integrity": "sha512-ZSthfEqzGSOMWoUGhTXdX9jv26d32XJuHz/5YnuHZzH6wldfWMOVwI9TBtKcya4BKTyTt3XVA0A3cF3q5CY30Q==",
|
| 3225 |
-
"license": "MIT",
|
| 3226 |
-
"optional": true,
|
| 3227 |
-
"dependencies": {
|
| 3228 |
-
"inherits": "^2.0.4",
|
| 3229 |
-
"readable-stream": "^3.4.0",
|
| 3230 |
-
"xtend": "^4.0.2"
|
| 3231 |
-
},
|
| 3232 |
-
"engines": {
|
| 3233 |
-
"node": ">=6"
|
| 3234 |
-
}
|
| 3235 |
-
},
|
| 3236 |
-
"node_modules/level-js": {
|
| 3237 |
-
"version": "5.0.2",
|
| 3238 |
-
"resolved": "https://registry.npmjs.org/level-js/-/level-js-5.0.2.tgz",
|
| 3239 |
-
"integrity": "sha512-SnBIDo2pdO5VXh02ZmtAyPP6/+6YTJg2ibLtl9C34pWvmtMEmRTWpra+qO/hifkUtBTOtfx6S9vLDjBsBK4gRg==",
|
| 3240 |
-
"deprecated": "Superseded by browser-level (https://github.com/Level/community#faq)",
|
| 3241 |
-
"license": "MIT",
|
| 3242 |
-
"optional": true,
|
| 3243 |
-
"dependencies": {
|
| 3244 |
-
"abstract-leveldown": "~6.2.3",
|
| 3245 |
-
"buffer": "^5.5.0",
|
| 3246 |
-
"inherits": "^2.0.3",
|
| 3247 |
-
"ltgt": "^2.1.2"
|
| 3248 |
-
}
|
| 3249 |
-
},
|
| 3250 |
-
"node_modules/level-packager": {
|
| 3251 |
-
"version": "5.1.1",
|
| 3252 |
-
"resolved": "https://registry.npmjs.org/level-packager/-/level-packager-5.1.1.tgz",
|
| 3253 |
-
"integrity": "sha512-HMwMaQPlTC1IlcwT3+swhqf/NUO+ZhXVz6TY1zZIIZlIR0YSn8GtAAWmIvKjNY16ZkEg/JcpAuQskxsXqC0yOQ==",
|
| 3254 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 3255 |
-
"license": "MIT",
|
| 3256 |
-
"optional": true,
|
| 3257 |
-
"dependencies": {
|
| 3258 |
-
"encoding-down": "^6.3.0",
|
| 3259 |
-
"levelup": "^4.3.2"
|
| 3260 |
-
},
|
| 3261 |
-
"engines": {
|
| 3262 |
-
"node": ">=6"
|
| 3263 |
-
}
|
| 3264 |
-
},
|
| 3265 |
-
"node_modules/level-supports": {
|
| 3266 |
-
"version": "1.0.1",
|
| 3267 |
-
"resolved": "https://registry.npmjs.org/level-supports/-/level-supports-1.0.1.tgz",
|
| 3268 |
-
"integrity": "sha512-rXM7GYnW8gsl1vedTJIbzOrRv85c/2uCMpiiCzO2fndd06U/kUXEEU9evYn4zFggBOg36IsBW8LzqIpETwwQzg==",
|
| 3269 |
-
"license": "MIT",
|
| 3270 |
-
"optional": true,
|
| 3271 |
-
"dependencies": {
|
| 3272 |
-
"xtend": "^4.0.2"
|
| 3273 |
-
},
|
| 3274 |
-
"engines": {
|
| 3275 |
-
"node": ">=6"
|
| 3276 |
-
}
|
| 3277 |
-
},
|
| 3278 |
-
"node_modules/leveldown": {
|
| 3279 |
-
"version": "5.6.0",
|
| 3280 |
-
"resolved": "https://registry.npmjs.org/leveldown/-/leveldown-5.6.0.tgz",
|
| 3281 |
-
"integrity": "sha512-iB8O/7Db9lPaITU1aA2txU/cBEXAt4vWwKQRrrWuS6XDgbP4QZGj9BL2aNbwb002atoQ/lIotJkfyzz+ygQnUQ==",
|
| 3282 |
-
"deprecated": "Superseded by classic-level (https://github.com/Level/community#faq)",
|
| 3283 |
-
"hasInstallScript": true,
|
| 3284 |
-
"license": "MIT",
|
| 3285 |
-
"optional": true,
|
| 3286 |
-
"dependencies": {
|
| 3287 |
-
"abstract-leveldown": "~6.2.1",
|
| 3288 |
-
"napi-macros": "~2.0.0",
|
| 3289 |
-
"node-gyp-build": "~4.1.0"
|
| 3290 |
-
},
|
| 3291 |
-
"engines": {
|
| 3292 |
-
"node": ">=8.6.0"
|
| 3293 |
-
}
|
| 3294 |
-
},
|
| 3295 |
-
"node_modules/levelup": {
|
| 3296 |
-
"version": "4.4.0",
|
| 3297 |
-
"resolved": "https://registry.npmjs.org/levelup/-/levelup-4.4.0.tgz",
|
| 3298 |
-
"integrity": "sha512-94++VFO3qN95cM/d6eBXvd894oJE0w3cInq9USsyQzzoJxmiYzPAocNcuGCPGGjoXqDVJcr3C1jzt1TSjyaiLQ==",
|
| 3299 |
-
"deprecated": "Superseded by abstract-level (https://github.com/Level/community#faq)",
|
| 3300 |
-
"license": "MIT",
|
| 3301 |
-
"optional": true,
|
| 3302 |
-
"dependencies": {
|
| 3303 |
-
"deferred-leveldown": "~5.3.0",
|
| 3304 |
-
"level-errors": "~2.0.0",
|
| 3305 |
-
"level-iterator-stream": "~4.0.0",
|
| 3306 |
-
"level-supports": "~1.0.0",
|
| 3307 |
-
"xtend": "~4.0.0"
|
| 3308 |
-
},
|
| 3309 |
-
"engines": {
|
| 3310 |
-
"node": ">=6"
|
| 3311 |
-
}
|
| 3312 |
-
},
|
| 3313 |
"node_modules/lib0": {
|
| 3314 |
"version": "0.2.117",
|
| 3315 |
"resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.117.tgz",
|
|
@@ -3352,12 +3103,6 @@
|
|
| 3352 |
"integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==",
|
| 3353 |
"license": "MIT"
|
| 3354 |
},
|
| 3355 |
-
"node_modules/lodash.debounce": {
|
| 3356 |
-
"version": "4.0.8",
|
| 3357 |
-
"resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz",
|
| 3358 |
-
"integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==",
|
| 3359 |
-
"license": "MIT"
|
| 3360 |
-
},
|
| 3361 |
"node_modules/loose-envify": {
|
| 3362 |
"version": "1.4.0",
|
| 3363 |
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
|
@@ -3396,13 +3141,6 @@
|
|
| 3396 |
"yallist": "^3.0.2"
|
| 3397 |
}
|
| 3398 |
},
|
| 3399 |
-
"node_modules/ltgt": {
|
| 3400 |
-
"version": "2.2.1",
|
| 3401 |
-
"resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.1.tgz",
|
| 3402 |
-
"integrity": "sha512-AI2r85+4MquTw9ZYqabu4nMwy9Oftlfa/e/52t9IjtfG+mGBbTNdAoZ3RQKLHR6r0wQnwZnPIEh/Ya6XTWAKNA==",
|
| 3403 |
-
"license": "MIT",
|
| 3404 |
-
"optional": true
|
| 3405 |
-
},
|
| 3406 |
"node_modules/markdown-it": {
|
| 3407 |
"version": "14.1.1",
|
| 3408 |
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz",
|
|
@@ -3451,25 +3189,6 @@
|
|
| 3451 |
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
| 3452 |
}
|
| 3453 |
},
|
| 3454 |
-
"node_modules/napi-macros": {
|
| 3455 |
-
"version": "2.0.0",
|
| 3456 |
-
"resolved": "https://registry.npmjs.org/napi-macros/-/napi-macros-2.0.0.tgz",
|
| 3457 |
-
"integrity": "sha512-A0xLykHtARfueITVDernsAWdtIMbOJgKgcluwENp3AlsKN/PloyO10HtmoqnFAQAcxPkgZN7wdfPfEd0zNGxbg==",
|
| 3458 |
-
"license": "MIT",
|
| 3459 |
-
"optional": true
|
| 3460 |
-
},
|
| 3461 |
-
"node_modules/node-gyp-build": {
|
| 3462 |
-
"version": "4.1.1",
|
| 3463 |
-
"resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.1.1.tgz",
|
| 3464 |
-
"integrity": "sha512-dSq1xmcPDKPZ2EED2S6zw/b9NKsqzXRE6dVr8TVQnI3FJOTteUMuqF3Qqs6LZg+mLGYJWqQzMbIjMtJqTv87nQ==",
|
| 3465 |
-
"license": "MIT",
|
| 3466 |
-
"optional": true,
|
| 3467 |
-
"bin": {
|
| 3468 |
-
"node-gyp-build": "bin.js",
|
| 3469 |
-
"node-gyp-build-optional": "optional.js",
|
| 3470 |
-
"node-gyp-build-test": "build-test.js"
|
| 3471 |
-
}
|
| 3472 |
-
},
|
| 3473 |
"node_modules/node-releases": {
|
| 3474 |
"version": "2.0.37",
|
| 3475 |
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz",
|
|
@@ -3801,13 +3520,6 @@
|
|
| 3801 |
"prosemirror-transform": "^1.1.0"
|
| 3802 |
}
|
| 3803 |
},
|
| 3804 |
-
"node_modules/prr": {
|
| 3805 |
-
"version": "1.0.1",
|
| 3806 |
-
"resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz",
|
| 3807 |
-
"integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==",
|
| 3808 |
-
"license": "MIT",
|
| 3809 |
-
"optional": true
|
| 3810 |
-
},
|
| 3811 |
"node_modules/punycode.js": {
|
| 3812 |
"version": "2.3.1",
|
| 3813 |
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
|
|
@@ -3876,21 +3588,6 @@
|
|
| 3876 |
"react-dom": ">=16.6.0"
|
| 3877 |
}
|
| 3878 |
},
|
| 3879 |
-
"node_modules/readable-stream": {
|
| 3880 |
-
"version": "3.6.2",
|
| 3881 |
-
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
|
| 3882 |
-
"integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
|
| 3883 |
-
"license": "MIT",
|
| 3884 |
-
"optional": true,
|
| 3885 |
-
"dependencies": {
|
| 3886 |
-
"inherits": "^2.0.3",
|
| 3887 |
-
"string_decoder": "^1.1.1",
|
| 3888 |
-
"util-deprecate": "^1.0.1"
|
| 3889 |
-
},
|
| 3890 |
-
"engines": {
|
| 3891 |
-
"node": ">= 6"
|
| 3892 |
-
}
|
| 3893 |
-
},
|
| 3894 |
"node_modules/resolve": {
|
| 3895 |
"version": "1.22.12",
|
| 3896 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
|
|
@@ -3972,27 +3669,6 @@
|
|
| 3972 |
"integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==",
|
| 3973 |
"license": "MIT"
|
| 3974 |
},
|
| 3975 |
-
"node_modules/safe-buffer": {
|
| 3976 |
-
"version": "5.2.1",
|
| 3977 |
-
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
|
| 3978 |
-
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
|
| 3979 |
-
"funding": [
|
| 3980 |
-
{
|
| 3981 |
-
"type": "github",
|
| 3982 |
-
"url": "https://github.com/sponsors/feross"
|
| 3983 |
-
},
|
| 3984 |
-
{
|
| 3985 |
-
"type": "patreon",
|
| 3986 |
-
"url": "https://www.patreon.com/feross"
|
| 3987 |
-
},
|
| 3988 |
-
{
|
| 3989 |
-
"type": "consulting",
|
| 3990 |
-
"url": "https://feross.org/support"
|
| 3991 |
-
}
|
| 3992 |
-
],
|
| 3993 |
-
"license": "MIT",
|
| 3994 |
-
"optional": true
|
| 3995 |
-
},
|
| 3996 |
"node_modules/scheduler": {
|
| 3997 |
"version": "0.23.2",
|
| 3998 |
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
|
|
@@ -4031,16 +3707,6 @@
|
|
| 4031 |
"node": ">=0.10.0"
|
| 4032 |
}
|
| 4033 |
},
|
| 4034 |
-
"node_modules/string_decoder": {
|
| 4035 |
-
"version": "1.3.0",
|
| 4036 |
-
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
|
| 4037 |
-
"integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
|
| 4038 |
-
"license": "MIT",
|
| 4039 |
-
"optional": true,
|
| 4040 |
-
"dependencies": {
|
| 4041 |
-
"safe-buffer": "~5.2.0"
|
| 4042 |
-
}
|
| 4043 |
-
},
|
| 4044 |
"node_modules/stylis": {
|
| 4045 |
"version": "4.2.0",
|
| 4046 |
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
|
|
@@ -4156,13 +3822,6 @@
|
|
| 4156 |
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 4157 |
}
|
| 4158 |
},
|
| 4159 |
-
"node_modules/util-deprecate": {
|
| 4160 |
-
"version": "1.0.2",
|
| 4161 |
-
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
| 4162 |
-
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
| 4163 |
-
"license": "MIT",
|
| 4164 |
-
"optional": true
|
| 4165 |
-
},
|
| 4166 |
"node_modules/vite": {
|
| 4167 |
"version": "6.4.2",
|
| 4168 |
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz",
|
|
@@ -4245,44 +3904,6 @@
|
|
| 4245 |
"integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
|
| 4246 |
"license": "MIT"
|
| 4247 |
},
|
| 4248 |
-
"node_modules/ws": {
|
| 4249 |
-
"version": "6.2.3",
|
| 4250 |
-
"resolved": "https://registry.npmjs.org/ws/-/ws-6.2.3.tgz",
|
| 4251 |
-
"integrity": "sha512-jmTjYU0j60B+vHey6TfR3Z7RD61z/hmxBS3VMSGIrroOWXQEneK1zNuotOUrGyBHQj0yrpsLHPWtigEFd13ndA==",
|
| 4252 |
-
"license": "MIT",
|
| 4253 |
-
"optional": true,
|
| 4254 |
-
"dependencies": {
|
| 4255 |
-
"async-limiter": "~1.0.0"
|
| 4256 |
-
}
|
| 4257 |
-
},
|
| 4258 |
-
"node_modules/xtend": {
|
| 4259 |
-
"version": "4.0.2",
|
| 4260 |
-
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
|
| 4261 |
-
"integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
|
| 4262 |
-
"license": "MIT",
|
| 4263 |
-
"optional": true,
|
| 4264 |
-
"engines": {
|
| 4265 |
-
"node": ">=0.4"
|
| 4266 |
-
}
|
| 4267 |
-
},
|
| 4268 |
-
"node_modules/y-leveldb": {
|
| 4269 |
-
"version": "0.1.2",
|
| 4270 |
-
"resolved": "https://registry.npmjs.org/y-leveldb/-/y-leveldb-0.1.2.tgz",
|
| 4271 |
-
"integrity": "sha512-6ulEn5AXfXJYi89rXPEg2mMHAyyw8+ZfeMMdOtBbV8FJpQ1NOrcgi6DTAcXof0dap84NjHPT2+9d0rb6cFsjEg==",
|
| 4272 |
-
"license": "MIT",
|
| 4273 |
-
"optional": true,
|
| 4274 |
-
"dependencies": {
|
| 4275 |
-
"level": "^6.0.1",
|
| 4276 |
-
"lib0": "^0.2.31"
|
| 4277 |
-
},
|
| 4278 |
-
"funding": {
|
| 4279 |
-
"type": "GitHub Sponsors ❤",
|
| 4280 |
-
"url": "https://github.com/sponsors/dmonad"
|
| 4281 |
-
},
|
| 4282 |
-
"peerDependencies": {
|
| 4283 |
-
"yjs": "^13.0.0"
|
| 4284 |
-
}
|
| 4285 |
-
},
|
| 4286 |
"node_modules/y-protocols": {
|
| 4287 |
"version": "1.0.7",
|
| 4288 |
"resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.7.tgz",
|
|
@@ -4304,36 +3925,6 @@
|
|
| 4304 |
"yjs": "^13.0.0"
|
| 4305 |
}
|
| 4306 |
},
|
| 4307 |
-
"node_modules/y-websocket": {
|
| 4308 |
-
"version": "2.1.0",
|
| 4309 |
-
"resolved": "https://registry.npmjs.org/y-websocket/-/y-websocket-2.1.0.tgz",
|
| 4310 |
-
"integrity": "sha512-WHYDRqomaGkkaujtowCDwL8KYk+t1zQCGIgKyvxvchhjTQlMgWXRHJK+FDEcWmHA7I7o/4fy0eniOrtmz0e4mA==",
|
| 4311 |
-
"license": "MIT",
|
| 4312 |
-
"dependencies": {
|
| 4313 |
-
"lib0": "^0.2.52",
|
| 4314 |
-
"lodash.debounce": "^4.0.8",
|
| 4315 |
-
"y-protocols": "^1.0.5"
|
| 4316 |
-
},
|
| 4317 |
-
"bin": {
|
| 4318 |
-
"y-websocket": "bin/server.cjs",
|
| 4319 |
-
"y-websocket-server": "bin/server.cjs"
|
| 4320 |
-
},
|
| 4321 |
-
"engines": {
|
| 4322 |
-
"node": ">=16.0.0",
|
| 4323 |
-
"npm": ">=8.0.0"
|
| 4324 |
-
},
|
| 4325 |
-
"funding": {
|
| 4326 |
-
"type": "GitHub Sponsors ❤",
|
| 4327 |
-
"url": "https://github.com/sponsors/dmonad"
|
| 4328 |
-
},
|
| 4329 |
-
"optionalDependencies": {
|
| 4330 |
-
"ws": "^6.2.1",
|
| 4331 |
-
"y-leveldb": "^0.1.0"
|
| 4332 |
-
},
|
| 4333 |
-
"peerDependencies": {
|
| 4334 |
-
"yjs": "^13.5.6"
|
| 4335 |
-
}
|
| 4336 |
-
},
|
| 4337 |
"node_modules/yallist": {
|
| 4338 |
"version": "3.1.1",
|
| 4339 |
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
|
|
|
| 12 |
"@emotion/react": "^11.14.0",
|
| 13 |
"@emotion/styled": "^11.14.1",
|
| 14 |
"@floating-ui/dom": "^1.7.6",
|
| 15 |
+
"@hocuspocus/provider": "^3.4.4",
|
| 16 |
"@mui/icons-material": "^9.0.0",
|
| 17 |
"@mui/material": "^9.0.0",
|
| 18 |
"@tiptap/core": "^3.22.3",
|
|
|
|
| 39 |
"react": "^18.3.0",
|
| 40 |
"react-dom": "^18.3.0",
|
| 41 |
"tippy.js": "^6.3.7",
|
|
|
|
| 42 |
"yjs": "^13.6.0",
|
| 43 |
"zod": "^4.3.6"
|
| 44 |
},
|
|
|
|
| 1018 |
"integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==",
|
| 1019 |
"license": "MIT"
|
| 1020 |
},
|
| 1021 |
+
"node_modules/@hocuspocus/common": {
|
| 1022 |
+
"version": "3.4.4",
|
| 1023 |
+
"resolved": "https://registry.npmjs.org/@hocuspocus/common/-/common-3.4.4.tgz",
|
| 1024 |
+
"integrity": "sha512-RykIJ0tsHHMP4Xk+4UCbc7SO5LgGxGUSTdbh6anJEsaALAyqinf1Nn5HYuMjLPolAmsar1v++m9zufR09NLpXA==",
|
| 1025 |
+
"license": "MIT",
|
| 1026 |
+
"dependencies": {
|
| 1027 |
+
"lib0": "^0.2.87"
|
| 1028 |
+
}
|
| 1029 |
+
},
|
| 1030 |
+
"node_modules/@hocuspocus/provider": {
|
| 1031 |
+
"version": "3.4.4",
|
| 1032 |
+
"resolved": "https://registry.npmjs.org/@hocuspocus/provider/-/provider-3.4.4.tgz",
|
| 1033 |
+
"integrity": "sha512-KbsMAfdYcIJD8eMU/5QnpXcSOvIWAcCNI33FSRSaKCIpYBFtAwkYIwWnZJmPZ8a1BMAtqQc+uvy9+UQf7GHnGQ==",
|
| 1034 |
+
"license": "MIT",
|
| 1035 |
+
"dependencies": {
|
| 1036 |
+
"@hocuspocus/common": "^3.4.4",
|
| 1037 |
+
"@lifeomic/attempt": "^3.0.2",
|
| 1038 |
+
"lib0": "^0.2.87",
|
| 1039 |
+
"ws": "^8.17.1"
|
| 1040 |
+
},
|
| 1041 |
+
"peerDependencies": {
|
| 1042 |
+
"y-protocols": "^1.0.6",
|
| 1043 |
+
"yjs": "^13.6.8"
|
| 1044 |
+
}
|
| 1045 |
+
},
|
| 1046 |
+
"node_modules/@hocuspocus/provider/node_modules/ws": {
|
| 1047 |
+
"version": "8.20.0",
|
| 1048 |
+
"resolved": "https://registry.npmjs.org/ws/-/ws-8.20.0.tgz",
|
| 1049 |
+
"integrity": "sha512-sAt8BhgNbzCtgGbt2OxmpuryO63ZoDk/sqaB/znQm94T4fCEsy/yV+7CdC1kJhOU9lboAEU7R3kquuycDoibVA==",
|
| 1050 |
+
"license": "MIT",
|
| 1051 |
+
"engines": {
|
| 1052 |
+
"node": ">=10.0.0"
|
| 1053 |
+
},
|
| 1054 |
+
"peerDependencies": {
|
| 1055 |
+
"bufferutil": "^4.0.1",
|
| 1056 |
+
"utf-8-validate": ">=5.0.2"
|
| 1057 |
+
},
|
| 1058 |
+
"peerDependenciesMeta": {
|
| 1059 |
+
"bufferutil": {
|
| 1060 |
+
"optional": true
|
| 1061 |
+
},
|
| 1062 |
+
"utf-8-validate": {
|
| 1063 |
+
"optional": true
|
| 1064 |
+
}
|
| 1065 |
+
}
|
| 1066 |
+
},
|
| 1067 |
"node_modules/@jridgewell/gen-mapping": {
|
| 1068 |
"version": "0.3.13",
|
| 1069 |
"resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
|
|
|
|
| 1110 |
"@jridgewell/sourcemap-codec": "^1.4.14"
|
| 1111 |
}
|
| 1112 |
},
|
| 1113 |
+
"node_modules/@lifeomic/attempt": {
|
| 1114 |
+
"version": "3.1.0",
|
| 1115 |
+
"resolved": "https://registry.npmjs.org/@lifeomic/attempt/-/attempt-3.1.0.tgz",
|
| 1116 |
+
"integrity": "sha512-QZqem4QuAnAyzfz+Gj5/+SLxqwCAw2qmt7732ZXodr6VDWGeYLG6w1i/vYLa55JQM9wRuBKLmXmiZ2P0LtE5rw==",
|
| 1117 |
+
"license": "MIT"
|
| 1118 |
+
},
|
| 1119 |
"node_modules/@mui/core-downloads-tracker": {
|
| 1120 |
"version": "9.0.0",
|
| 1121 |
"resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-9.0.0.tgz",
|
|
|
|
| 2513 |
"vite": "^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0"
|
| 2514 |
}
|
| 2515 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2516 |
"node_modules/ai": {
|
| 2517 |
"version": "6.0.158",
|
| 2518 |
"resolved": "https://registry.npmjs.org/ai/-/ai-6.0.158.tgz",
|
|
|
|
| 2537 |
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
|
| 2538 |
"license": "Python-2.0"
|
| 2539 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2540 |
"node_modules/babel-plugin-macros": {
|
| 2541 |
"version": "3.1.0",
|
| 2542 |
"resolved": "https://registry.npmjs.org/babel-plugin-macros/-/babel-plugin-macros-3.1.0.tgz",
|
|
|
|
| 2552 |
"npm": ">=6"
|
| 2553 |
}
|
| 2554 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2555 |
"node_modules/baseline-browser-mapping": {
|
| 2556 |
"version": "2.10.18",
|
| 2557 |
"resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.10.18.tgz",
|
|
|
|
| 2600 |
"node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
|
| 2601 |
}
|
| 2602 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2603 |
"node_modules/callsites": {
|
| 2604 |
"version": "3.1.0",
|
| 2605 |
"resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
|
|
|
|
| 2708 |
}
|
| 2709 |
}
|
| 2710 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2711 |
"node_modules/dequal": {
|
| 2712 |
"version": "2.0.3",
|
| 2713 |
"resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.3.tgz",
|
|
|
|
| 2747 |
"dev": true,
|
| 2748 |
"license": "ISC"
|
| 2749 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2750 |
"node_modules/entities": {
|
| 2751 |
"version": "4.5.0",
|
| 2752 |
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
|
|
|
|
| 2759 |
"url": "https://github.com/fb55/entities?sponsor=1"
|
| 2760 |
}
|
| 2761 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2762 |
"node_modules/error-ex": {
|
| 2763 |
"version": "1.3.4",
|
| 2764 |
"resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
|
|
|
|
| 2954 |
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==",
|
| 2955 |
"license": "MIT"
|
| 2956 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2957 |
"node_modules/import-fresh": {
|
| 2958 |
"version": "3.3.1",
|
| 2959 |
"resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
|
|
|
|
| 2970 |
"url": "https://github.com/sponsors/sindresorhus"
|
| 2971 |
}
|
| 2972 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2973 |
"node_modules/is-arrayish": {
|
| 2974 |
"version": "0.2.1",
|
| 2975 |
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
|
|
|
|
| 3061 |
"katex": "cli.js"
|
| 3062 |
}
|
| 3063 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3064 |
"node_modules/lib0": {
|
| 3065 |
"version": "0.2.117",
|
| 3066 |
"resolved": "https://registry.npmjs.org/lib0/-/lib0-0.2.117.tgz",
|
|
|
|
| 3103 |
"integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==",
|
| 3104 |
"license": "MIT"
|
| 3105 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3106 |
"node_modules/loose-envify": {
|
| 3107 |
"version": "1.4.0",
|
| 3108 |
"resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
|
|
|
|
| 3141 |
"yallist": "^3.0.2"
|
| 3142 |
}
|
| 3143 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3144 |
"node_modules/markdown-it": {
|
| 3145 |
"version": "14.1.1",
|
| 3146 |
"resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.1.1.tgz",
|
|
|
|
| 3189 |
"node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
|
| 3190 |
}
|
| 3191 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3192 |
"node_modules/node-releases": {
|
| 3193 |
"version": "2.0.37",
|
| 3194 |
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.37.tgz",
|
|
|
|
| 3520 |
"prosemirror-transform": "^1.1.0"
|
| 3521 |
}
|
| 3522 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3523 |
"node_modules/punycode.js": {
|
| 3524 |
"version": "2.3.1",
|
| 3525 |
"resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz",
|
|
|
|
| 3588 |
"react-dom": ">=16.6.0"
|
| 3589 |
}
|
| 3590 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3591 |
"node_modules/resolve": {
|
| 3592 |
"version": "1.22.12",
|
| 3593 |
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.12.tgz",
|
|
|
|
| 3669 |
"integrity": "sha512-UT5EDe2cu2E/6O4igUr5PSFs23nvvukicWHx6GnOPlHAiiYbzNuCRQCuiUdHJQcqKalLKlrYJnjY0ySGsXNQXQ==",
|
| 3670 |
"license": "MIT"
|
| 3671 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3672 |
"node_modules/scheduler": {
|
| 3673 |
"version": "0.23.2",
|
| 3674 |
"resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz",
|
|
|
|
| 3707 |
"node": ">=0.10.0"
|
| 3708 |
}
|
| 3709 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3710 |
"node_modules/stylis": {
|
| 3711 |
"version": "4.2.0",
|
| 3712 |
"resolved": "https://registry.npmjs.org/stylis/-/stylis-4.2.0.tgz",
|
|
|
|
| 3822 |
"react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0"
|
| 3823 |
}
|
| 3824 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3825 |
"node_modules/vite": {
|
| 3826 |
"version": "6.4.2",
|
| 3827 |
"resolved": "https://registry.npmjs.org/vite/-/vite-6.4.2.tgz",
|
|
|
|
| 3904 |
"integrity": "sha512-dpojBhNsCNN7T82Tm7k26A6G9ML3NkhDsnw9n/eoxSRlVBB4CEtIQ/KTCLI2Fwf3ataSXRhYFkQi3SlnFwPvPQ==",
|
| 3905 |
"license": "MIT"
|
| 3906 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3907 |
"node_modules/y-protocols": {
|
| 3908 |
"version": "1.0.7",
|
| 3909 |
"resolved": "https://registry.npmjs.org/y-protocols/-/y-protocols-1.0.7.tgz",
|
|
|
|
| 3925 |
"yjs": "^13.0.0"
|
| 3926 |
}
|
| 3927 |
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3928 |
"node_modules/yallist": {
|
| 3929 |
"version": "3.1.1",
|
| 3930 |
"resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
|
frontend/package.json
CHANGED
|
@@ -13,6 +13,7 @@
|
|
| 13 |
"@emotion/react": "^11.14.0",
|
| 14 |
"@emotion/styled": "^11.14.1",
|
| 15 |
"@floating-ui/dom": "^1.7.6",
|
|
|
|
| 16 |
"@mui/icons-material": "^9.0.0",
|
| 17 |
"@mui/material": "^9.0.0",
|
| 18 |
"@tiptap/core": "^3.22.3",
|
|
@@ -39,7 +40,6 @@
|
|
| 39 |
"react": "^18.3.0",
|
| 40 |
"react-dom": "^18.3.0",
|
| 41 |
"tippy.js": "^6.3.7",
|
| 42 |
-
"y-websocket": "^2.0.0",
|
| 43 |
"yjs": "^13.6.0",
|
| 44 |
"zod": "^4.3.6"
|
| 45 |
},
|
|
|
|
| 13 |
"@emotion/react": "^11.14.0",
|
| 14 |
"@emotion/styled": "^11.14.1",
|
| 15 |
"@floating-ui/dom": "^1.7.6",
|
| 16 |
+
"@hocuspocus/provider": "^3.4.4",
|
| 17 |
"@mui/icons-material": "^9.0.0",
|
| 18 |
"@mui/material": "^9.0.0",
|
| 19 |
"@tiptap/core": "^3.22.3",
|
|
|
|
| 40 |
"react": "^18.3.0",
|
| 41 |
"react-dom": "^18.3.0",
|
| 42 |
"tippy.js": "^6.3.7",
|
|
|
|
| 43 |
"yjs": "^13.6.0",
|
| 44 |
"zod": "^4.3.6"
|
| 45 |
},
|
frontend/src/editor/Editor.tsx
CHANGED
|
@@ -11,7 +11,7 @@ import "katex/dist/katex.min.css";
|
|
| 11 |
import { all, createLowlight } from "lowlight";
|
| 12 |
import * as Y from "yjs";
|
| 13 |
import { UndoManager } from "yjs";
|
| 14 |
-
import {
|
| 15 |
import { useEffect, useMemo, useRef, useState, MutableRefObject } from "react";
|
| 16 |
import { BubbleToolbar } from "./BubbleToolbar";
|
| 17 |
import { BlockHandle } from "./BlockHandle";
|
|
@@ -75,7 +75,15 @@ export function Editor({
|
|
| 75 |
? `wss://${window.location.host}/collab`
|
| 76 |
: `ws://${window.location.host}/collab`;
|
| 77 |
|
| 78 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 79 |
}, [docName, ydoc]);
|
| 80 |
|
| 81 |
const citationsMap = useMemo(() => ydoc.getMap("citations"), [ydoc]);
|
|
@@ -219,11 +227,9 @@ export function Editor({
|
|
| 219 |
const timer = setTimeout(seed, 800);
|
| 220 |
|
| 221 |
const onSync = () => setTimeout(seed, 100);
|
| 222 |
-
provider.on("sync", onSync);
|
| 223 |
provider.on("synced", onSync);
|
| 224 |
|
| 225 |
return () => {
|
| 226 |
-
provider.off("sync", onSync);
|
| 227 |
provider.off("synced", onSync);
|
| 228 |
clearTimeout(timer);
|
| 229 |
};
|
|
|
|
| 11 |
import { all, createLowlight } from "lowlight";
|
| 12 |
import * as Y from "yjs";
|
| 13 |
import { UndoManager } from "yjs";
|
| 14 |
+
import { HocuspocusProvider } from "@hocuspocus/provider";
|
| 15 |
import { useEffect, useMemo, useRef, useState, MutableRefObject } from "react";
|
| 16 |
import { BubbleToolbar } from "./BubbleToolbar";
|
| 17 |
import { BlockHandle } from "./BlockHandle";
|
|
|
|
| 75 |
? `wss://${window.location.host}/collab`
|
| 76 |
: `ws://${window.location.host}/collab`;
|
| 77 |
|
| 78 |
+
const tokenMatch = document.cookie.match(/(?:^|;\s*)hf_access_token=([^;]*)/);
|
| 79 |
+
const token = tokenMatch ? decodeURIComponent(tokenMatch[1]) : undefined;
|
| 80 |
+
|
| 81 |
+
return new HocuspocusProvider({
|
| 82 |
+
url: wsUrl,
|
| 83 |
+
name: docName,
|
| 84 |
+
document: ydoc,
|
| 85 |
+
token: token || "",
|
| 86 |
+
});
|
| 87 |
}, [docName, ydoc]);
|
| 88 |
|
| 89 |
const citationsMap = useMemo(() => ydoc.getMap("citations"), [ydoc]);
|
|
|
|
| 227 |
const timer = setTimeout(seed, 800);
|
| 228 |
|
| 229 |
const onSync = () => setTimeout(seed, 100);
|
|
|
|
| 230 |
provider.on("synced", onSync);
|
| 231 |
|
| 232 |
return () => {
|
|
|
|
| 233 |
provider.off("synced", onSync);
|
| 234 |
clearTimeout(timer);
|
| 235 |
};
|