diff --git a/.changeset/hot-bugs-battle.md b/.changeset/hot-bugs-battle.md new file mode 100644 index 00000000..9796db89 --- /dev/null +++ b/.changeset/hot-bugs-battle.md @@ -0,0 +1,10 @@ +--- +"y-partyserver": minor +"partyserver": minor +"partysync": minor +"partywhen": minor +"partysub": minor +"partyfn": minor +--- + +change Env types to default to Cloudflare.Env diff --git a/.changeset/jolly-parents-win.md b/.changeset/jolly-parents-win.md new file mode 100644 index 00000000..3bcd2cde --- /dev/null +++ b/.changeset/jolly-parents-win.md @@ -0,0 +1,5 @@ +--- +"y-partyserver": minor +--- + +remove chunking since cloudflare now supports much larger message sizes diff --git a/.github/workflows/pullrequest.yml b/.github/workflows/pullrequest.yml index 5878f402..0dddd8dd 100644 --- a/.github/workflows/pullrequest.yml +++ b/.github/workflows/pullrequest.yml @@ -20,6 +20,6 @@ jobs: - uses: actions/setup-node@v4 - - run: npm install + - run: npm ci - run: npm run build - run: npm run check diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 24f2dc60..50559121 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -26,7 +26,7 @@ jobs: node-version: 24 cache: "npm" - - run: npm install + - run: npm ci - run: npm run build - id: changesets diff --git a/docs/guides/configuration.md b/docs/guides/configuration.md index 3eb03d1a..7219d3a7 100644 --- a/docs/guides/configuration.md +++ b/docs/guides/configuration.md @@ -1 +1 @@ -about wrangler.toml, migrations, etc +about wrangler.jsonc, migrations, etc diff --git a/fixtures/chat/CHANGELOG.md b/fixtures/chat/CHANGELOG.md deleted file mode 100644 index 800cb52b..00000000 --- a/fixtures/chat/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# @partyserver/fixture-chat - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - partyserver@0.0.75 - - partysocket@1.1.6 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`537714c`](https://github.com/cloudflare/partykit/commit/537714c8a6d70abcac13710e357ce9a953c7d0d3)]: - - partyserver@0.0.74 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`3014f9f`](https://github.com/cloudflare/partykit/commit/3014f9fdb00bcfa6b27f61aa18630c5ba7b3932c)]: - - partyserver@0.0.73 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`a462739`](https://github.com/cloudflare/partykit/commit/a4627392628058702dcbb8c5d5acbea35b95be09)]: - - partyserver@0.0.72 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - partyserver@0.0.71 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`3f900b5`](https://github.com/cloudflare/partykit/commit/3f900b5f631ea3f8b8a70197890d1d551be3951d)]: - - partyserver@0.0.70 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`b0bc59c`](https://github.com/cloudflare/partykit/commit/b0bc59c017484c02b4d9cb9313c92fb66b36941f), [`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partyserver@0.0.69 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`a5d2dde`](https://github.com/threepointone/partyserver/commit/a5d2dde164bd9d38e1bac87b2d32d24c06742d2f)]: - - partyserver@0.0.68 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`b1baf6c`](https://github.com/threepointone/partyserver/commit/b1baf6cdda4c7684a4663a1281070ab1762670fd)]: - - partyserver@0.0.67 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`c41057b`](https://github.com/threepointone/partyserver/commit/c41057ba5c738496bc7e2a4968357f1f5b65707b), [`b3701a5`](https://github.com/threepointone/partyserver/commit/b3701a5f5eee278c96587d9e29e42992806733ac)]: - - partyserver@0.0.66 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - partyserver@0.0.65 diff --git a/fixtures/chat/env.d.ts b/fixtures/chat/env.d.ts new file mode 100644 index 00000000..f60b3a64 --- /dev/null +++ b/fixtures/chat/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 4be7c89dd974cd4ea4cbcfd4e801b52e) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "Chat"; + } + interface Env { + Chat: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/chat/index.html b/fixtures/chat/index.html index 8473ad72..64dc6576 100644 --- a/fixtures/chat/index.html +++ b/fixtures/chat/index.html @@ -5,6 +5,6 @@
- + diff --git a/fixtures/chat/package.json b/fixtures/chat/package.json index 77c203f0..e69b74a0 100644 --- a/fixtures/chat/package.json +++ b/fixtures/chat/package.json @@ -4,20 +4,20 @@ "private": true, "type": "module", "scripts": { - "start": "vite dev" + "start": "vite dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { - "@tailwindcss/vite": "^4.1.18", "nanoid": "^5.1.6", "partyserver": "^0.0.78", "partysocket": "^1.1.9", "react": "^19.2.3", - "react-dom": "^19.2.3", - "tailwindcss": "^4.1.18", - "valibot": "^1.2.0" + "react-dom": "^19.2.3" }, "devDependencies": { + "@tailwindcss/vite": "^4.1.18", "@types/react": "^19.2.7", - "@types/react-dom": "^19.2.3" + "@types/react-dom": "^19.2.3", + "tailwindcss": "^4.1.18" } } diff --git a/fixtures/chat/src/client/index.tsx b/fixtures/chat/src/client.tsx similarity index 97% rename from fixtures/chat/src/client/index.tsx rename to fixtures/chat/src/client.tsx index d303fefb..de379260 100644 --- a/fixtures/chat/src/client/index.tsx +++ b/fixtures/chat/src/client.tsx @@ -3,7 +3,7 @@ import { createRoot } from "react-dom/client"; import { nanoid } from "nanoid"; import { usePartySocket } from "partysocket/react"; -import type { ChatMessage } from "../types"; +import type { ChatMessage } from "./types"; import "./styles.css"; diff --git a/fixtures/chat/src/client/tsconfig.json b/fixtures/chat/src/client/tsconfig.json deleted file mode 100644 index 4e540af9..00000000 --- a/fixtures/chat/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM", "ESNext"] - } -} diff --git a/fixtures/chat/src/server/index.ts b/fixtures/chat/src/server.ts similarity index 81% rename from fixtures/chat/src/server/index.ts rename to fixtures/chat/src/server.ts index 17b8a0b7..9424e3c5 100644 --- a/fixtures/chat/src/server/index.ts +++ b/fixtures/chat/src/server.ts @@ -1,8 +1,6 @@ import { routePartykitRequest, Server } from "partyserver"; - import type { Connection, WSMessage } from "partyserver"; - -type Env = { Chat: DurableObjectNamespace }; +import { env } from "cloudflare:workers"; export class Chat extends Server { static options = { hibernate: true }; @@ -14,7 +12,7 @@ export class Chat extends Server { } export default { - async fetch(request: Request, env: Env): Promise { + async fetch(request: Request): Promise { return ( (await routePartykitRequest(request, env)) || new Response("Not Found", { status: 404 }) diff --git a/fixtures/chat/src/server/tsconfig.json b/fixtures/chat/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/chat/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/chat/src/client/styles.css b/fixtures/chat/src/styles.css similarity index 100% rename from fixtures/chat/src/client/styles.css rename to fixtures/chat/src/styles.css diff --git a/fixtures/chat/src/types.ts b/fixtures/chat/src/types.ts index 25391b73..5c6bd088 100644 --- a/fixtures/chat/src/types.ts +++ b/fixtures/chat/src/types.ts @@ -1,12 +1,6 @@ -import { literal, object, string } from "valibot"; - -import type { InferInput } from "valibot"; - -export const chatMessage = object({ - type: literal("chat-message"), - id: string(), - content: string(), - sender: string() -}); - -export type ChatMessage = InferInput; +export type ChatMessage = { + type: "chat-message"; + id: string; + content: string; + sender: string; +}; diff --git a/fixtures/chat/tsconfig.json b/fixtures/chat/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/chat/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/chat/vite.config.ts b/fixtures/chat/vite.config.ts index 540ea26b..6120c7d5 100644 --- a/fixtures/chat/vite.config.ts +++ b/fixtures/chat/vite.config.ts @@ -2,7 +2,8 @@ import { cloudflare } from "@cloudflare/vite-plugin"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; +import devtoolsJson from "vite-plugin-devtools-json"; export default defineConfig({ - plugins: [cloudflare(), react(), tailwindcss()] + plugins: [cloudflare(), react(), tailwindcss(), devtoolsJson()] }); diff --git a/fixtures/chat/wrangler.json b/fixtures/chat/wrangler.json deleted file mode 100644 index bf21882a..00000000 --- a/fixtures/chat/wrangler.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "partyserver-fixture-chat", - "main": "src/server/index.ts", - "compatibility_date": "2024-04-19", - "assets": { "directory": "./public" }, - "durable_objects": { "bindings": [{ "name": "Chat", "class_name": "Chat" }] }, - "migrations": [{ "tag": "v1", "new_sqlite_classes": ["Chat"] }] -} diff --git a/fixtures/chat/wrangler.jsonc b/fixtures/chat/wrangler.jsonc new file mode 100644 index 00000000..47bb9e77 --- /dev/null +++ b/fixtures/chat/wrangler.jsonc @@ -0,0 +1,20 @@ +{ + "name": "partyserver-fixture-chat", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { "directory": "./public" }, + "durable_objects": { + "bindings": [ + { + "name": "Chat", + "class_name": "Chat" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_sqlite_classes": ["Chat"] + } + ] +} diff --git a/fixtures/globe/CHANGELOG.md b/fixtures/globe/CHANGELOG.md deleted file mode 100644 index eb6dbe3d..00000000 --- a/fixtures/globe/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# @partyserver/fixture-globe - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - partyserver@0.0.75 - - partysocket@1.1.6 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`537714c`](https://github.com/cloudflare/partykit/commit/537714c8a6d70abcac13710e357ce9a953c7d0d3)]: - - partyserver@0.0.74 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`3014f9f`](https://github.com/cloudflare/partykit/commit/3014f9fdb00bcfa6b27f61aa18630c5ba7b3932c)]: - - partyserver@0.0.73 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`a462739`](https://github.com/cloudflare/partykit/commit/a4627392628058702dcbb8c5d5acbea35b95be09)]: - - partyserver@0.0.72 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - partyserver@0.0.71 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`3f900b5`](https://github.com/cloudflare/partykit/commit/3f900b5f631ea3f8b8a70197890d1d551be3951d)]: - - partyserver@0.0.70 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`b0bc59c`](https://github.com/cloudflare/partykit/commit/b0bc59c017484c02b4d9cb9313c92fb66b36941f), [`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partyserver@0.0.69 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`a5d2dde`](https://github.com/threepointone/partyserver/commit/a5d2dde164bd9d38e1bac87b2d32d24c06742d2f)]: - - partyserver@0.0.68 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`b1baf6c`](https://github.com/threepointone/partyserver/commit/b1baf6cdda4c7684a4663a1281070ab1762670fd)]: - - partyserver@0.0.67 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`c41057b`](https://github.com/threepointone/partyserver/commit/c41057ba5c738496bc7e2a4968357f1f5b65707b), [`b3701a5`](https://github.com/threepointone/partyserver/commit/b3701a5f5eee278c96587d9e29e42992806733ac)]: - - partyserver@0.0.66 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - partyserver@0.0.65 diff --git a/fixtures/globe/env.d.ts b/fixtures/globe/env.d.ts new file mode 100644 index 00000000..10028a2d --- /dev/null +++ b/fixtures/globe/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 8a9158374e5524d9d8082ee8c55b47aa) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "Globe"; + } + interface Env { + Globe: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/globe/index.html b/fixtures/globe/index.html index 772c7744..ade5063b 100644 --- a/fixtures/globe/index.html +++ b/fixtures/globe/index.html @@ -21,6 +21,6 @@
Loading...
- + diff --git a/fixtures/globe/package.json b/fixtures/globe/package.json index 0137b599..61ee5910 100644 --- a/fixtures/globe/package.json +++ b/fixtures/globe/package.json @@ -4,7 +4,8 @@ "version": "0.0.11", "type": "module", "scripts": { - "start": "vite dev" + "start": "vite dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "cobe": "^0.6.5", diff --git a/fixtures/globe/src/client/index.tsx b/fixtures/globe/src/client.tsx similarity index 98% rename from fixtures/globe/src/client/index.tsx rename to fixtures/globe/src/client.tsx index 69e6feea..05c30b70 100644 --- a/fixtures/globe/src/client/index.tsx +++ b/fixtures/globe/src/client.tsx @@ -6,7 +6,7 @@ import createGlobe from "cobe"; import usePartySocket from "partysocket/react"; // The type of messages we'll be receiving from the server -import type { OutgoingMessage } from "../types"; +import type { OutgoingMessage } from "./types"; import type { LegacyRef } from "react"; function App() { diff --git a/fixtures/globe/src/client/tsconfig.json b/fixtures/globe/src/client/tsconfig.json deleted file mode 100644 index 4e540af9..00000000 --- a/fixtures/globe/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM", "ESNext"] - } -} diff --git a/fixtures/globe/src/server/index.ts b/fixtures/globe/src/server.ts similarity index 93% rename from fixtures/globe/src/server/index.ts rename to fixtures/globe/src/server.ts index 5b63cdc6..4a87586f 100644 --- a/fixtures/globe/src/server/index.ts +++ b/fixtures/globe/src/server.ts @@ -1,9 +1,7 @@ import { routePartykitRequest, Server } from "partyserver"; - -import type { OutgoingMessage, Position } from "../types"; +import type { OutgoingMessage, Position } from "./types"; import type { Connection, ConnectionContext } from "partyserver"; - -type Env = { Globe: DurableObjectNamespace }; +import { env } from "cloudflare:workers"; // This is the state that we'll store on each connection type ConnectionState = { position: Position }; @@ -74,7 +72,7 @@ export class Globe extends Server { } export default { - async fetch(request: Request, env: Env): Promise { + async fetch(request: Request): Promise { return ( (await routePartykitRequest(request, env)) || new Response("Not Found", { status: 404 }) diff --git a/fixtures/globe/src/server/tsconfig.json b/fixtures/globe/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/globe/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/globe/src/client/styles.css b/fixtures/globe/src/styles.css similarity index 100% rename from fixtures/globe/src/client/styles.css rename to fixtures/globe/src/styles.css diff --git a/fixtures/globe/tsconfig.json b/fixtures/globe/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/globe/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/globe/vite.config.ts b/fixtures/globe/vite.config.ts index c5d0b527..09f6e455 100644 --- a/fixtures/globe/vite.config.ts +++ b/fixtures/globe/vite.config.ts @@ -1,5 +1,8 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { cloudflare } from "@cloudflare/vite-plugin"; +import devtoolsJson from "vite-plugin-devtools-json"; -export default defineConfig({ plugins: [cloudflare(), react()] }); +export default defineConfig({ + plugins: [cloudflare(), react(), devtoolsJson()] +}); diff --git a/fixtures/globe/wrangler.jsonc b/fixtures/globe/wrangler.jsonc new file mode 100644 index 00000000..b356c096 --- /dev/null +++ b/fixtures/globe/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-globe", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "durable_objects": { + "bindings": [ + { + "name": "Globe", + "class_name": "Globe" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_classes": ["Globe"] + } + ] +} diff --git a/fixtures/globe/wrangler.toml b/fixtures/globe/wrangler.toml deleted file mode 100644 index 247cf1b8..00000000 --- a/fixtures/globe/wrangler.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "partyserver-fixture-globe" -main = "src/server/index.ts" -compatibility_date = "2024-04-19" - -assets = {directory = "./public"} - - -[[durable_objects.bindings]] -name = "Globe" -class_name = "Globe" - -[[migrations]] -tag = "v1" # Should be unique for each entry -new_classes = ["Globe"] diff --git a/fixtures/hono/CHANGELOG.md b/fixtures/hono/CHANGELOG.md deleted file mode 100644 index 57700513..00000000 --- a/fixtures/hono/CHANGELOG.md +++ /dev/null @@ -1,97 +0,0 @@ -# @partyserver/fixture-hono - -## 0.0.12 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - partyserver@0.0.75 - - partysocket@1.1.6 - - hono-party@0.0.17 - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`537714c`](https://github.com/cloudflare/partykit/commit/537714c8a6d70abcac13710e357ce9a953c7d0d3)]: - - partyserver@0.0.74 - - hono-party@0.0.16 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`3014f9f`](https://github.com/cloudflare/partykit/commit/3014f9fdb00bcfa6b27f61aa18630c5ba7b3932c)]: - - partyserver@0.0.73 - - hono-party@0.0.15 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`034051c`](https://github.com/cloudflare/partykit/commit/034051cd2851aa8690a87c925558aa11c88ed385)]: - - hono-party@0.0.14 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`a462739`](https://github.com/cloudflare/partykit/commit/a4627392628058702dcbb8c5d5acbea35b95be09)]: - - partyserver@0.0.72 - - hono-party@0.0.13 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - partyserver@0.0.71 - - hono-party@0.0.12 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`3f900b5`](https://github.com/cloudflare/partykit/commit/3f900b5f631ea3f8b8a70197890d1d551be3951d)]: - - partyserver@0.0.70 - - hono-party@0.0.11 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`b0bc59c`](https://github.com/cloudflare/partykit/commit/b0bc59c017484c02b4d9cb9313c92fb66b36941f), [`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partyserver@0.0.69 - - hono-party@0.0.10 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`a5d2dde`](https://github.com/threepointone/partyserver/commit/a5d2dde164bd9d38e1bac87b2d32d24c06742d2f)]: - - partyserver@0.0.68 - - hono-party@0.0.9 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`b1baf6c`](https://github.com/threepointone/partyserver/commit/b1baf6cdda4c7684a4663a1281070ab1762670fd)]: - - partyserver@0.0.67 - - hono-party@0.0.8 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`c41057b`](https://github.com/threepointone/partyserver/commit/c41057ba5c738496bc7e2a4968357f1f5b65707b), [`b3701a5`](https://github.com/threepointone/partyserver/commit/b3701a5f5eee278c96587d9e29e42992806733ac)]: - - partyserver@0.0.66 - - hono-party@0.0.7 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - partyserver@0.0.65 - - hono-party@0.0.6 diff --git a/fixtures/hono/env.d.ts b/fixtures/hono/env.d.ts new file mode 100644 index 00000000..f60b3a64 --- /dev/null +++ b/fixtures/hono/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 4be7c89dd974cd4ea4cbcfd4e801b52e) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "Chat"; + } + interface Env { + Chat: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/hono/package.json b/fixtures/hono/package.json index ea43d799..a33abb3f 100644 --- a/fixtures/hono/package.json +++ b/fixtures/hono/package.json @@ -4,7 +4,8 @@ "private": true, "type": "module", "scripts": { - "start": "vite dev" + "start": "vite dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "hono": "^4.11.1", diff --git a/fixtures/hono/tsconfig.json b/fixtures/hono/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/hono/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/hono/vite.config.ts b/fixtures/hono/vite.config.ts index c5d0b527..09f6e455 100644 --- a/fixtures/hono/vite.config.ts +++ b/fixtures/hono/vite.config.ts @@ -1,5 +1,8 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { cloudflare } from "@cloudflare/vite-plugin"; +import devtoolsJson from "vite-plugin-devtools-json"; -export default defineConfig({ plugins: [cloudflare(), react()] }); +export default defineConfig({ + plugins: [cloudflare(), react(), devtoolsJson()] +}); diff --git a/fixtures/hono/wrangler.jsonc b/fixtures/hono/wrangler.jsonc new file mode 100644 index 00000000..f48aa137 --- /dev/null +++ b/fixtures/hono/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-hono", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "durable_objects": { + "bindings": [ + { + "name": "Chat", + "class_name": "Chat" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_classes": ["Chat"] + } + ] +} diff --git a/fixtures/hono/wrangler.toml b/fixtures/hono/wrangler.toml deleted file mode 100644 index b585792e..00000000 --- a/fixtures/hono/wrangler.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "partyserver-fixture-hono" -main = "src/server.ts" -compatibility_date = "2024-04-19" - -assets = {directory = "./public"} - -[[durable_objects.bindings]] -name = "Chat" -class_name = "Chat" - -[[migrations]] -tag = "v1" # Should be unique for each entry -new_classes = ["Chat"] diff --git a/fixtures/lexical-yjs/env.d.ts b/fixtures/lexical-yjs/env.d.ts new file mode 100644 index 00000000..f99ec22a --- /dev/null +++ b/fixtures/lexical-yjs/env.d.ts @@ -0,0 +1,14 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 72fd07fb916987802dc1e04855905d6f) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "LexicalDocument"; + } + interface Env { + LexicalDocument: DurableObjectNamespace< + import("./src/server").LexicalDocument + >; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/lexical-yjs/index.html b/fixtures/lexical-yjs/index.html index abc9c6da..a605e0d3 100644 --- a/fixtures/lexical-yjs/index.html +++ b/fixtures/lexical-yjs/index.html @@ -9,6 +9,6 @@
- + diff --git a/fixtures/lexical-yjs/package.json b/fixtures/lexical-yjs/package.json index 3f8fed31..6fb6e589 100644 --- a/fixtures/lexical-yjs/package.json +++ b/fixtures/lexical-yjs/package.json @@ -5,7 +5,8 @@ "type": "module", "scripts": { "start": "vite dev", - "deploy": "wrangler deploy" + "deploy": "vite build && wrangler deploy", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "@lexical/react": "^0.39.0", diff --git a/fixtures/lexical-yjs/src/client/index.tsx b/fixtures/lexical-yjs/src/client.tsx similarity index 53% rename from fixtures/lexical-yjs/src/client/index.tsx rename to fixtures/lexical-yjs/src/client.tsx index 96c575d2..8b63d559 100644 --- a/fixtures/lexical-yjs/src/client/index.tsx +++ b/fixtures/lexical-yjs/src/client.tsx @@ -1,4 +1,5 @@ import { createRoot } from "react-dom/client"; +import { LexicalCollaboration } from "@lexical/react/LexicalCollaborationContext"; import { CollaborationPlugin } from "@lexical/react/LexicalCollaborationPlugin"; import { LexicalComposer } from "@lexical/react/LexicalComposer"; import { ContentEditable } from "@lexical/react/LexicalContentEditable"; @@ -24,23 +25,25 @@ function Editor() { }); return ( - - } - placeholder={
Enter some text...
} - ErrorBoundary={LexicalErrorBoundary} - /> - { - yjsDocMap.set(id, yProvider.doc); - return yProvider; - }} - shouldBootstrap={true} - /> -
+ + + } + placeholder={
Enter some text...
} + ErrorBoundary={LexicalErrorBoundary} + /> + { + yjsDocMap.set(id, yProvider.doc); + return yProvider; + }} + shouldBootstrap={true} + /> +
+
); } diff --git a/fixtures/lexical-yjs/src/client/tsconfig.json b/fixtures/lexical-yjs/src/client/tsconfig.json deleted file mode 100644 index c382b56f..00000000 --- a/fixtures/lexical-yjs/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM"] - } -} diff --git a/fixtures/lexical-yjs/src/server/index.ts b/fixtures/lexical-yjs/src/server.ts similarity index 66% rename from fixtures/lexical-yjs/src/server/index.ts rename to fixtures/lexical-yjs/src/server.ts index 2758fe12..5ddd817a 100644 --- a/fixtures/lexical-yjs/src/server/index.ts +++ b/fixtures/lexical-yjs/src/server.ts @@ -1,16 +1,11 @@ import { routePartykitRequest } from "partyserver"; import { YServer } from "y-partyserver"; - -// import * as Y from "yjs"; - -type Env = { - Document: DurableObjectNamespace; -}; +import { env } from "cloudflare:workers"; export { YServer as LexicalDocument }; export default { - async fetch(request: Request, env: Env): Promise { + async fetch(request: Request): Promise { return ( (await routePartykitRequest(request, env)) || new Response("Not Found", { status: 404 }) diff --git a/fixtures/lexical-yjs/src/server/tsconfig.json b/fixtures/lexical-yjs/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/lexical-yjs/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/lexical-yjs/tsconfig.json b/fixtures/lexical-yjs/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/lexical-yjs/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/lexical-yjs/vite.config.ts b/fixtures/lexical-yjs/vite.config.ts index 540ea26b..6120c7d5 100644 --- a/fixtures/lexical-yjs/vite.config.ts +++ b/fixtures/lexical-yjs/vite.config.ts @@ -2,7 +2,8 @@ import { cloudflare } from "@cloudflare/vite-plugin"; import tailwindcss from "@tailwindcss/vite"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; +import devtoolsJson from "vite-plugin-devtools-json"; export default defineConfig({ - plugins: [cloudflare(), react(), tailwindcss()] + plugins: [cloudflare(), react(), tailwindcss(), devtoolsJson()] }); diff --git a/fixtures/lexical-yjs/wrangler.jsonc b/fixtures/lexical-yjs/wrangler.jsonc new file mode 100644 index 00000000..0bfa6c33 --- /dev/null +++ b/fixtures/lexical-yjs/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-lexical-yjs", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "durable_objects": { + "bindings": [ + { + "name": "LexicalDocument", + "class_name": "LexicalDocument" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["LexicalDocument"] + } + ] +} diff --git a/fixtures/lexical-yjs/wrangler.toml b/fixtures/lexical-yjs/wrangler.toml deleted file mode 100644 index bff46f77..00000000 --- a/fixtures/lexical-yjs/wrangler.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = 'partyserver-fixture-lexical-yjs' -main = 'src/server/index.ts' -compatibility_date = "2024-07-25" - -assets = {directory = "./public"} - -[[durable_objects.bindings]] -name = "LexicalDocument" -class_name = "LexicalDocument" - -[[migrations]] -tag = "v1" -new_classes = ["LexicalDocument"] diff --git a/fixtures/monaco-yjs/wrangler.jsonc b/fixtures/monaco-yjs/wrangler.jsonc new file mode 100644 index 00000000..9a4770d7 --- /dev/null +++ b/fixtures/monaco-yjs/wrangler.jsonc @@ -0,0 +1,25 @@ +{ + "name": "partyserver-fixture-monaco-yjs", + "main": "src/server/index.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "build": { + "command": "npx tsx scripts/build.ts" + }, + "durable_objects": { + "bindings": [ + { + "name": "Monaco", + "class_name": "MonacoServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["MonacoServer"] + } + ] +} diff --git a/fixtures/monaco-yjs/wrangler.toml b/fixtures/monaco-yjs/wrangler.toml deleted file mode 100644 index 5583dd41..00000000 --- a/fixtures/monaco-yjs/wrangler.toml +++ /dev/null @@ -1,16 +0,0 @@ -name = 'partyserver-fixture-monaco-yjs' -main = 'src/server/index.ts' -compatibility_date = "2024-07-25" - -assets = {directory = "./public"} - -[build] -command = "npx tsx scripts/build.ts" - -[[durable_objects.bindings]] -name = "Monaco" -class_name = "MonacoServer" - -[[migrations]] -tag = "v1" -new_classes = ["MonacoServer"] diff --git a/fixtures/node/env.d.ts b/fixtures/node/env.d.ts new file mode 100644 index 00000000..12ae3b78 --- /dev/null +++ b/fixtures/node/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: b44315135ddf33ad204297605c17acb5) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "MyServer"; + } + interface Env { + MyServer: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/node/package.json b/fixtures/node/package.json index de63ec82..25e1d36a 100644 --- a/fixtures/node/package.json +++ b/fixtures/node/package.json @@ -3,7 +3,8 @@ "private": true, "version": "0.0.0", "scripts": { - "start": "wrangler dev" + "start": "wrangler dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "partysocket": "^1.1.9" diff --git a/fixtures/node/src/server.ts b/fixtures/node/src/server.ts index cf4576bc..8ee47bbd 100644 --- a/fixtures/node/src/server.ts +++ b/fixtures/node/src/server.ts @@ -1,11 +1,7 @@ import { routePartykitRequest, Server } from "partyserver"; - +import { env } from "cloudflare:workers"; import type { Connection, ConnectionContext } from "partyserver"; -type Env = { - MyServer: DurableObjectNamespace; -}; - export class MyServer extends Server { onConnect(conn: Connection, ctx: ConnectionContext) { // A websocket just connected! @@ -33,7 +29,7 @@ export class MyServer extends Server { } export default { - async fetch(request: Request, env: Env) { + async fetch(request: Request): Promise { return ( (await routePartykitRequest(request, env)) || new Response("Not Found", { status: 404 }) diff --git a/fixtures/node/wrangler.jsonc b/fixtures/node/wrangler.jsonc new file mode 100644 index 00000000..9e2ef0bf --- /dev/null +++ b/fixtures/node/wrangler.jsonc @@ -0,0 +1,19 @@ +{ + "name": "partyserver-fixture-node", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "durable_objects": { + "bindings": [ + { + "name": "MyServer", + "class_name": "MyServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["MyServer"] + } + ] +} diff --git a/fixtures/node/wrangler.toml b/fixtures/node/wrangler.toml deleted file mode 100644 index 0d2fdb7c..00000000 --- a/fixtures/node/wrangler.toml +++ /dev/null @@ -1,12 +0,0 @@ -name = "partyserver-fixture-node" -main = 'src/server.ts' -compatibility_date = "2024-07-25" - - -[[durable_objects.bindings]] -name = "MyServer" -class_name = "MyServer" - -[[migrations]] -tag = "v1" -new_classes = ["MyServer"] diff --git a/fixtures/partytracks/CHANGELOG.md b/fixtures/partytracks/CHANGELOG.md deleted file mode 100644 index 21162178..00000000 --- a/fixtures/partytracks/CHANGELOG.md +++ /dev/null @@ -1,200 +0,0 @@ -# @partyserver/fixture-partytracks - -## 0.0.28 - -### Patch Changes - -- Updated dependencies [[`692da7f`](https://github.com/cloudflare/partykit/commit/692da7f855757501efec5e4a97ae812272dcce5f)]: - - partytracks@0.0.54 - -## 0.0.27 - -### Patch Changes - -- Updated dependencies [[`9a62501`](https://github.com/cloudflare/partykit/commit/9a625016f51ba3f016e002f546a2a31e139a20db)]: - - partytracks@0.0.53 - -## 0.0.26 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - partytracks@0.0.52 - -## 0.0.25 - -### Patch Changes - -- Updated dependencies [[`93b466e`](https://github.com/cloudflare/partykit/commit/93b466e92380ff22cb67f2a231e2d2622e59f8f9), [`73d5c05`](https://github.com/cloudflare/partykit/commit/73d5c056d46b510289c9169f00ad23c36b8da3ab)]: - - partytracks@0.0.51 - -## 0.0.24 - -### Patch Changes - -- Updated dependencies [[`a821fad`](https://github.com/cloudflare/partykit/commit/a821fada93bc874558546f773f1b739a72259dc4)]: - - partytracks@0.0.50 - -## 0.0.23 - -### Patch Changes - -- Updated dependencies [[`60d9aae`](https://github.com/cloudflare/partykit/commit/60d9aae9d8f0a351ab9960fe06d1cbf0ead6e49a)]: - - partytracks@0.0.49 - -## 0.0.22 - -### Patch Changes - -- Updated dependencies [[`bec21c8`](https://github.com/cloudflare/partykit/commit/bec21c81c4985787f9311df8912e0bd6b10e698e)]: - - partytracks@0.0.48 - -## 0.0.21 - -### Patch Changes - -- Updated dependencies [[`c714bc8`](https://github.com/cloudflare/partykit/commit/c714bc88a12a216bb9c588f08d0a7a0db877eae2)]: - - partytracks@0.0.47 - -## 0.0.20 - -### Patch Changes - -- Updated dependencies [[`8ad157e`](https://github.com/cloudflare/partykit/commit/8ad157e3c06cfb230d2f6198c268d9fed8fd08d6)]: - - partytracks@0.0.46 - -## 0.0.19 - -### Patch Changes - -- Updated dependencies [[`187371d`](https://github.com/cloudflare/partykit/commit/187371d44baf227a420d8168568efdda1265a958)]: - - partytracks@0.0.45 - -## 0.0.18 - -### Patch Changes - -- Updated dependencies [[`df0a3c9`](https://github.com/cloudflare/partykit/commit/df0a3c91a3c073e11ade106d38e26324c6965aa7), [`4d138b6`](https://github.com/cloudflare/partykit/commit/4d138b63da10416b0125f55eaf343da1ab69d88a), [`ef36ae2`](https://github.com/cloudflare/partykit/commit/ef36ae2aac1971ce4822748b4fb8bc815a576280)]: - - partytracks@0.0.44 - -## 0.0.17 - -### Patch Changes - -- Updated dependencies [[`a9ce9bd`](https://github.com/cloudflare/partykit/commit/a9ce9bd8e9439d96dfafe51329dcfe623a6ca444)]: - - partytracks@0.0.43 - -## 0.0.16 - -### Patch Changes - -- Updated dependencies [[`81d1053`](https://github.com/cloudflare/partykit/commit/81d105369685c13a1fd2de928e8ccc13f95bc990)]: - - partytracks@0.0.42 - -## 0.0.15 - -### Patch Changes - -- Updated dependencies [[`960716b`](https://github.com/cloudflare/partykit/commit/960716b2f78fded0f702149dfefffec228be7f33), [`ae55a28`](https://github.com/cloudflare/partykit/commit/ae55a28e09fb8118e34b050ff6f9068944105ac8)]: - - partytracks@0.0.41 - -## 0.0.14 - -### Patch Changes - -- Updated dependencies [[`9eec05e`](https://github.com/cloudflare/partykit/commit/9eec05eee9e80c57bf9799a5234ec513d35b389b), [`4d441ac`](https://github.com/cloudflare/partykit/commit/4d441aceae8bc52a65ed6fce61129dcc77d47443)]: - - partytracks@0.0.40 - -## 0.0.13 - -### Patch Changes - -- [#216](https://github.com/cloudflare/partykit/pull/216) [`fb6adc2`](https://github.com/cloudflare/partykit/commit/fb6adc2af78b3d1027e3c145f41c9ab916b92013) Thanks [@third774](https://github.com/third774)! - - Add getMic, getCamera, and createAudioSink utils. - - Lock sessions to their initiator via a cookie w/ JWT. - - Fixed a bug where toggling a device off and on rapidly could leave it in a "stuck on" state. -- Updated dependencies [[`964a1c4`](https://github.com/cloudflare/partykit/commit/964a1c491b3206bf82dcd63f12a328477baa9896), [`fb6adc2`](https://github.com/cloudflare/partykit/commit/fb6adc2af78b3d1027e3c145f41c9ab916b92013), [`9c9d9df`](https://github.com/cloudflare/partykit/commit/9c9d9dfcbac565e017852a1773dbbe79117b924d)]: - - partytracks@0.0.39 - -## 0.0.12 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - partytracks@0.0.38 - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partytracks@0.0.37 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`2e6f3ca`](https://github.com/threepointone/partyserver/commit/2e6f3ca2b94ba01a73a96132f01af0bfdf04d91d)]: - - partytracks@0.0.36 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`416abdc`](https://github.com/threepointone/partyserver/commit/416abdc9e643561246e75275407f431c154e4fb4)]: - - partytracks@0.0.35 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`cc542ea`](https://github.com/threepointone/partyserver/commit/cc542ea2a1f23523b34beea48a70a9c1b17a9d12), [`c82b772`](https://github.com/threepointone/partyserver/commit/c82b772f68507967402f8e5d8cfcd235262b5617)]: - - partytracks@0.0.34 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`4c164b6`](https://github.com/threepointone/partyserver/commit/4c164b6c69aa5fa0dfe70d935d2002e8b766d132)]: - - partytracks@0.0.33 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`e895f0b`](https://github.com/threepointone/partyserver/commit/e895f0bd13a3bef35bffd4e2f4ba0b7ac451c60c)]: - - partytracks@0.0.32 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`947e166`](https://github.com/threepointone/partyserver/commit/947e1666c7d8486a990ff5b3a94981a36aafba73), [`2b190cb`](https://github.com/threepointone/partyserver/commit/2b190cb5b5ccfe0be88bc7905b85552d70a6825d)]: - - partytracks@0.0.31 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`08286bd`](https://github.com/threepointone/partyserver/commit/08286bd96acd93a4e30683cd6d91bd77a98c2453)]: - - partytracks@0.0.30 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`bdfcdce`](https://github.com/threepointone/partyserver/commit/bdfcdce562f84a94ceb4bc03be133a82d8969839), [`e5045fd`](https://github.com/threepointone/partyserver/commit/e5045fd052bdb8369b6cfaf54d4c619d3ac32a81)]: - - partytracks@0.0.29 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`3bcd1d9`](https://github.com/threepointone/partyserver/commit/3bcd1d9d9f9f1819ec2a292d8fd605319aa15c9b)]: - - partytracks@0.0.28 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - partytracks@0.0.27 diff --git a/fixtures/partytracks/index.html b/fixtures/partytracks/index.html index 6e705e5d..dd16b0d5 100644 --- a/fixtures/partytracks/index.html +++ b/fixtures/partytracks/index.html @@ -35,6 +35,6 @@ - + diff --git a/fixtures/partytracks/src/client/index.tsx b/fixtures/partytracks/src/client.tsx similarity index 100% rename from fixtures/partytracks/src/client/index.tsx rename to fixtures/partytracks/src/client.tsx diff --git a/fixtures/partytracks/src/client/tsconfig.json b/fixtures/partytracks/src/client/tsconfig.json deleted file mode 100644 index 4e540af9..00000000 --- a/fixtures/partytracks/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM", "ESNext"] - } -} diff --git a/fixtures/partytracks/src/server/index.ts b/fixtures/partytracks/src/server.ts similarity index 100% rename from fixtures/partytracks/src/server/index.ts rename to fixtures/partytracks/src/server.ts diff --git a/fixtures/partytracks/src/server/tsconfig.json b/fixtures/partytracks/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/partytracks/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/partytracks/src/client/styles.css b/fixtures/partytracks/src/styles.css similarity index 100% rename from fixtures/partytracks/src/client/styles.css rename to fixtures/partytracks/src/styles.css diff --git a/fixtures/partytracks/tsconfig.json b/fixtures/partytracks/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/partytracks/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/partytracks/vite.config.ts b/fixtures/partytracks/vite.config.ts index bb64eeeb..da64156b 100644 --- a/fixtures/partytracks/vite.config.ts +++ b/fixtures/partytracks/vite.config.ts @@ -1,5 +1,8 @@ import { cloudflare } from "@cloudflare/vite-plugin"; import react from "@vitejs/plugin-react"; import { defineConfig } from "vite"; +import devtoolsJson from "vite-plugin-devtools-json"; -export default defineConfig({ plugins: [cloudflare(), react()] }); +export default defineConfig({ + plugins: [cloudflare(), react(), devtoolsJson()] +}); diff --git a/fixtures/partytracks/wrangler.jsonc b/fixtures/partytracks/wrangler.jsonc new file mode 100644 index 00000000..645879d5 --- /dev/null +++ b/fixtures/partytracks/wrangler.jsonc @@ -0,0 +1,8 @@ +{ + "name": "partyserver-fixture-partytracks", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + } +} diff --git a/fixtures/partytracks/wrangler.toml b/fixtures/partytracks/wrangler.toml deleted file mode 100644 index 9932081a..00000000 --- a/fixtures/partytracks/wrangler.toml +++ /dev/null @@ -1,5 +0,0 @@ -name = "partyserver-fixture-partytracks" -main = "src/server/index.ts" -compatibility_date = "2024-04-19" - -assets = {directory = "./public"} diff --git a/fixtures/pubsub/env.d.ts b/fixtures/pubsub/env.d.ts new file mode 100644 index 00000000..82552d2d --- /dev/null +++ b/fixtures/pubsub/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 194bbb19cd4962e4d85187798e7d8c28) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "PubSubServer"; + } + interface Env { + PubSub: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/pubsub/index.html b/fixtures/pubsub/index.html index 7a6329e0..4a3ed314 100644 --- a/fixtures/pubsub/index.html +++ b/fixtures/pubsub/index.html @@ -6,6 +6,6 @@

PubSub

- + diff --git a/fixtures/pubsub/package.json b/fixtures/pubsub/package.json index 7ebce83b..ec1d88ff 100644 --- a/fixtures/pubsub/package.json +++ b/fixtures/pubsub/package.json @@ -4,7 +4,8 @@ "version": "0.0.0", "type": "module", "scripts": { - "start": "vite dev" + "start": "vite dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "nanoid": "^5.1.6", diff --git a/fixtures/pubsub/src/client/index.tsx b/fixtures/pubsub/src/client.tsx similarity index 100% rename from fixtures/pubsub/src/client/index.tsx rename to fixtures/pubsub/src/client.tsx diff --git a/fixtures/pubsub/src/client/tsconfig.json b/fixtures/pubsub/src/client/tsconfig.json deleted file mode 100644 index 4e540af9..00000000 --- a/fixtures/pubsub/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM", "ESNext"] - } -} diff --git a/fixtures/pubsub/src/server/index.ts b/fixtures/pubsub/src/server.ts similarity index 59% rename from fixtures/pubsub/src/server/index.ts rename to fixtures/pubsub/src/server.ts index 95d1e8a2..58bae2b0 100644 --- a/fixtures/pubsub/src/server/index.ts +++ b/fixtures/pubsub/src/server.ts @@ -1,9 +1,5 @@ import { createPubSubServer } from "partysub/server"; -type Env = { - PubSub: typeof PubSubServer; -}; - const { PubSubServer, routePubSubRequest } = createPubSubServer({ binding: "PubSub", nodes: 100 @@ -13,7 +9,9 @@ export { PubSubServer }; export default { async fetch(req, env) { - const pubsubResponse = await routePubSubRequest(req, env); - return pubsubResponse || new Response("Not found", { status: 404 }); + return ( + (await routePubSubRequest(req, env)) || + new Response("Not found", { status: 404 }) + ); } } satisfies ExportedHandler; diff --git a/fixtures/pubsub/src/server/tsconfig.json b/fixtures/pubsub/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/pubsub/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/pubsub/tsconfig.json b/fixtures/pubsub/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/pubsub/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/pubsub/vite.config.ts b/fixtures/pubsub/vite.config.ts index 5588df1e..c561763f 100644 --- a/fixtures/pubsub/vite.config.ts +++ b/fixtures/pubsub/vite.config.ts @@ -2,7 +2,8 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import { cloudflare } from "@cloudflare/vite-plugin"; import tailwindcss from "@tailwindcss/vite"; +import devtoolsJson from "vite-plugin-devtools-json"; export default defineConfig({ - plugins: [cloudflare(), react(), tailwindcss()] + plugins: [cloudflare(), react(), tailwindcss(), devtoolsJson()] }); diff --git a/fixtures/pubsub/wrangler.jsonc b/fixtures/pubsub/wrangler.jsonc new file mode 100644 index 00000000..9851fe79 --- /dev/null +++ b/fixtures/pubsub/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-pubsub", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "durable_objects": { + "bindings": [ + { + "name": "PubSub", + "class_name": "PubSubServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["PubSubServer"] + } + ] +} diff --git a/fixtures/pubsub/wrangler.toml b/fixtures/pubsub/wrangler.toml deleted file mode 100644 index 78ab6dfa..00000000 --- a/fixtures/pubsub/wrangler.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "partyserver-fixture-node" -main = 'src/server/index.ts' -compatibility_date = "2024-07-25" - -assets = {directory = "./public"} - - -[[durable_objects.bindings]] -name = "PubSub" -class_name = "PubSubServer" - -[[migrations]] -tag = "v1" -new_classes = ["PubSubServer"] diff --git a/fixtures/rpc-sanity/env.d.ts b/fixtures/rpc-sanity/env.d.ts new file mode 100644 index 00000000..e07b8bac --- /dev/null +++ b/fixtures/rpc-sanity/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 1ce144f2a62336e462f1668db705bd5f) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/index"); + durableNamespaces: "MyServer"; + } + interface Env { + MyServer: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/rpc-sanity/package.json b/fixtures/rpc-sanity/package.json index e92ef7ac..225fa1a3 100644 --- a/fixtures/rpc-sanity/package.json +++ b/fixtures/rpc-sanity/package.json @@ -3,6 +3,7 @@ "private": true, "version": "0.0.0", "scripts": { - "start": "wrangler dev" + "start": "wrangler dev", + "types": "wrangler types env.d.ts --include-runtime false" } } diff --git a/fixtures/rpc-sanity/src/index.ts b/fixtures/rpc-sanity/src/index.ts index 776fd9b6..daecb133 100644 --- a/fixtures/rpc-sanity/src/index.ts +++ b/fixtures/rpc-sanity/src/index.ts @@ -1,10 +1,7 @@ import { getServerByName, Server } from "partyserver"; +import { env } from "cloudflare:workers"; -type Env = { - MyServer: DurableObjectNamespace; -}; - -export class MyServer extends Server { +export class MyServer extends Server { async testMethod() { return this.name; } @@ -20,7 +17,7 @@ export class MyServer extends Server { const SESSION_ID = "session-id"; export default { - async fetch(request: Request, env: Env, _ctx: ExecutionContext) { + async fetch(request: Request) { const url = new URL(request.url); const stub = await getServerByName(env.MyServer, SESSION_ID); diff --git a/fixtures/rpc-sanity/src/tsconfig.json b/fixtures/rpc-sanity/tsconfig.json similarity index 62% rename from fixtures/rpc-sanity/src/tsconfig.json rename to fixtures/rpc-sanity/tsconfig.json index a6903eeb..21fcf1c4 100644 --- a/fixtures/rpc-sanity/src/tsconfig.json +++ b/fixtures/rpc-sanity/tsconfig.json @@ -1,5 +1,5 @@ { - "extends": "../../../tsconfig.base.json", + "extends": "../../tsconfig.base.json", "compilerOptions": { "types": ["@cloudflare/workers-types"] } diff --git a/fixtures/rpc-sanity/wrangler.jsonc b/fixtures/rpc-sanity/wrangler.jsonc new file mode 100644 index 00000000..db25dd9b --- /dev/null +++ b/fixtures/rpc-sanity/wrangler.jsonc @@ -0,0 +1,19 @@ +{ + "name": "partyserver-fixture-rpc-sanity", + "main": "src/index.ts", + "compatibility_date": "2025-12-17", + "durable_objects": { + "bindings": [ + { + "name": "MyServer", + "class_name": "MyServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["MyServer"] + } + ] +} diff --git a/fixtures/rpc-sanity/wrangler.toml b/fixtures/rpc-sanity/wrangler.toml deleted file mode 100644 index 4eeb5309..00000000 --- a/fixtures/rpc-sanity/wrangler.toml +++ /dev/null @@ -1,12 +0,0 @@ -name = "partyserver-fixture-rpc-sanity" -main = 'src/index.ts' -compatibility_date = "2024-07-25" - - -[[durable_objects.bindings]] -name = "MyServer" -class_name = "MyServer" - -[[migrations]] -tag = "v1" -new_classes = ["MyServer"] diff --git a/fixtures/tiptap-yjs/CHANGELOG.md b/fixtures/tiptap-yjs/CHANGELOG.md deleted file mode 100644 index ee53c9aa..00000000 --- a/fixtures/tiptap-yjs/CHANGELOG.md +++ /dev/null @@ -1,117 +0,0 @@ -# @partyserver/fixture-tiptap-yjs - -## 0.0.15 - -### Patch Changes - -- Updated dependencies [[`10e36c2`](https://github.com/cloudflare/partykit/commit/10e36c21d9bd691891468f25500785bee444f18c)]: - - y-partyserver@0.0.51 - -## 0.0.14 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - y-partyserver@0.0.50 - - partyserver@0.0.75 - -## 0.0.13 - -### Patch Changes - -- Updated dependencies [[`537714c`](https://github.com/cloudflare/partykit/commit/537714c8a6d70abcac13710e357ce9a953c7d0d3)]: - - partyserver@0.0.74 - - y-partyserver@0.0.49 - -## 0.0.12 - -### Patch Changes - -- Updated dependencies [[`22c26fa`](https://github.com/cloudflare/partykit/commit/22c26fa94a4719458ee7389df5b7484709bb3faf)]: - - y-partyserver@0.0.48 - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`3014f9f`](https://github.com/cloudflare/partykit/commit/3014f9fdb00bcfa6b27f61aa18630c5ba7b3932c)]: - - partyserver@0.0.73 - - y-partyserver@0.0.47 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`dac5836`](https://github.com/cloudflare/partykit/commit/dac583681bf020dc5415ae088ee744baca96f24a)]: - - y-partyserver@0.0.46 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`a462739`](https://github.com/cloudflare/partykit/commit/a4627392628058702dcbb8c5d5acbea35b95be09)]: - - partyserver@0.0.72 - - y-partyserver@0.0.45 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`d2335e8`](https://github.com/cloudflare/partykit/commit/d2335e80e96f15717ec0705cf768c2181081527c)]: - - y-partyserver@0.0.44 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e), [`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - y-partyserver@0.0.43 - - partyserver@0.0.71 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`3f900b5`](https://github.com/cloudflare/partykit/commit/3f900b5f631ea3f8b8a70197890d1d551be3951d)]: - - partyserver@0.0.70 - - y-partyserver@0.0.42 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`b0bc59c`](https://github.com/cloudflare/partykit/commit/b0bc59c017484c02b4d9cb9313c92fb66b36941f), [`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partyserver@0.0.69 - - y-partyserver@0.0.41 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`a5d2dde`](https://github.com/threepointone/partyserver/commit/a5d2dde164bd9d38e1bac87b2d32d24c06742d2f)]: - - partyserver@0.0.68 - - y-partyserver@0.0.40 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`b1baf6c`](https://github.com/threepointone/partyserver/commit/b1baf6cdda4c7684a4663a1281070ab1762670fd)]: - - y-partyserver@0.0.39 - - partyserver@0.0.67 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`c41057b`](https://github.com/threepointone/partyserver/commit/c41057ba5c738496bc7e2a4968357f1f5b65707b), [`b3701a5`](https://github.com/threepointone/partyserver/commit/b3701a5f5eee278c96587d9e29e42992806733ac)]: - - partyserver@0.0.66 - - y-partyserver@0.0.38 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - y-partyserver@0.0.37 - - partyserver@0.0.65 diff --git a/fixtures/tiptap-yjs/env.d.ts b/fixtures/tiptap-yjs/env.d.ts new file mode 100644 index 00000000..5d62505a --- /dev/null +++ b/fixtures/tiptap-yjs/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 441b8bb0ef5bb12cd951148e37197291) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "Document"; + } + interface Env { + Document: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/tiptap-yjs/index.html b/fixtures/tiptap-yjs/index.html index 9590f569..1758f244 100644 --- a/fixtures/tiptap-yjs/index.html +++ b/fixtures/tiptap-yjs/index.html @@ -5,6 +5,6 @@
- + diff --git a/fixtures/tiptap-yjs/package.json b/fixtures/tiptap-yjs/package.json index 8c2d0032..34b760cc 100644 --- a/fixtures/tiptap-yjs/package.json +++ b/fixtures/tiptap-yjs/package.json @@ -4,7 +4,8 @@ "private": true, "type": "module", "scripts": { - "start": "vite dev" + "start": "vite dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "@tiptap/extension-collaboration": "^3.14.0", diff --git a/fixtures/tiptap-yjs/src/client/index.tsx b/fixtures/tiptap-yjs/src/client.tsx similarity index 100% rename from fixtures/tiptap-yjs/src/client/index.tsx rename to fixtures/tiptap-yjs/src/client.tsx diff --git a/fixtures/tiptap-yjs/src/client/tsconfig.json b/fixtures/tiptap-yjs/src/client/tsconfig.json deleted file mode 100644 index c382b56f..00000000 --- a/fixtures/tiptap-yjs/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM"] - } -} diff --git a/fixtures/tiptap-yjs/src/server/index.ts b/fixtures/tiptap-yjs/src/server.ts similarity index 92% rename from fixtures/tiptap-yjs/src/server/index.ts rename to fixtures/tiptap-yjs/src/server.ts index 413cec8e..e3da4e8f 100644 --- a/fixtures/tiptap-yjs/src/server/index.ts +++ b/fixtures/tiptap-yjs/src/server.ts @@ -2,14 +2,11 @@ import { routePartykitRequest } from "partyserver"; import type { Connection } from "partyserver"; import { YServer } from "y-partyserver"; import * as Y from "yjs"; +import { env } from "cloudflare:workers"; import type { CallbackOptions } from "y-partyserver"; -type Env = { - Document: DurableObjectNamespace; -}; - -export class Document extends YServer { +export class Document extends YServer { // This is optional, but it allows you to configure the callback options static callbackOptions: CallbackOptions = { debounceWait: 1000, @@ -59,6 +56,7 @@ export class Document extends YServer { // Handle custom messages - example ping/pong onCustomMessage(connection: Connection, message: string): void { + console.log("onCustomMessage", message); try { const data = JSON.parse(message); @@ -82,7 +80,7 @@ export class Document extends YServer { } export default { - async fetch(request: Request, env: Env): Promise { + async fetch(request: Request): Promise { return ( (await routePartykitRequest(request, env)) || new Response("Not Found", { status: 404 }) diff --git a/fixtures/tiptap-yjs/src/server/tsconfig.json b/fixtures/tiptap-yjs/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/tiptap-yjs/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/tiptap-yjs/src/client/styles.css b/fixtures/tiptap-yjs/src/styles.css similarity index 100% rename from fixtures/tiptap-yjs/src/client/styles.css rename to fixtures/tiptap-yjs/src/styles.css diff --git a/fixtures/tiptap-yjs/tsconfig.json b/fixtures/tiptap-yjs/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/tiptap-yjs/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/tiptap-yjs/wrangler.jsonc b/fixtures/tiptap-yjs/wrangler.jsonc new file mode 100644 index 00000000..34839f54 --- /dev/null +++ b/fixtures/tiptap-yjs/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-tiptap-yjs", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "public" + }, + "durable_objects": { + "bindings": [ + { + "name": "Document", + "class_name": "Document" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_sqlite_classes": ["Document"] + } + ] +} diff --git a/fixtures/tiptap-yjs/wrangler.toml b/fixtures/tiptap-yjs/wrangler.toml deleted file mode 100644 index 8edf234e..00000000 --- a/fixtures/tiptap-yjs/wrangler.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "partyserver-fixture-tiptap-yjs" -main = "src/server/index.ts" -compatibility_date = "2024-04-19" - -assets = { directory = "public" } - - -[[durable_objects.bindings]] -name = "Document" -class_name = "Document" - -[[migrations]] -tag = "v1" # Should be unique for each entry -new_sqlite_classes = ["Document"] diff --git a/fixtures/tldraw/CHANGELOG.md b/fixtures/tldraw/CHANGELOG.md deleted file mode 100644 index f196b8bc..00000000 --- a/fixtures/tldraw/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# @partyserver/fixture-tldraw - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - partyserver@0.0.75 - - partysocket@1.1.6 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`537714c`](https://github.com/cloudflare/partykit/commit/537714c8a6d70abcac13710e357ce9a953c7d0d3)]: - - partyserver@0.0.74 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`3014f9f`](https://github.com/cloudflare/partykit/commit/3014f9fdb00bcfa6b27f61aa18630c5ba7b3932c)]: - - partyserver@0.0.73 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`a462739`](https://github.com/cloudflare/partykit/commit/a4627392628058702dcbb8c5d5acbea35b95be09)]: - - partyserver@0.0.72 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - partyserver@0.0.71 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`3f900b5`](https://github.com/cloudflare/partykit/commit/3f900b5f631ea3f8b8a70197890d1d551be3951d)]: - - partyserver@0.0.70 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`b0bc59c`](https://github.com/cloudflare/partykit/commit/b0bc59c017484c02b4d9cb9313c92fb66b36941f), [`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partyserver@0.0.69 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`a5d2dde`](https://github.com/threepointone/partyserver/commit/a5d2dde164bd9d38e1bac87b2d32d24c06742d2f)]: - - partyserver@0.0.68 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`b1baf6c`](https://github.com/threepointone/partyserver/commit/b1baf6cdda4c7684a4663a1281070ab1762670fd)]: - - partyserver@0.0.67 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`c41057b`](https://github.com/threepointone/partyserver/commit/c41057ba5c738496bc7e2a4968357f1f5b65707b), [`b3701a5`](https://github.com/threepointone/partyserver/commit/b3701a5f5eee278c96587d9e29e42992806733ac)]: - - partyserver@0.0.66 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - partyserver@0.0.65 diff --git a/fixtures/tldraw/tsconfig.json b/fixtures/tldraw/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/tldraw/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/tldraw/wrangler.jsonc b/fixtures/tldraw/wrangler.jsonc new file mode 100644 index 00000000..44318787 --- /dev/null +++ b/fixtures/tldraw/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-tldraw", + "main": "src/index.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "durable_objects": { + "bindings": [ + { + "name": "Tldraw", + "class_name": "Tldraw" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_classes": ["Tldraw"] + } + ] +} diff --git a/fixtures/tldraw/wrangler.toml b/fixtures/tldraw/wrangler.toml deleted file mode 100644 index 3fec433d..00000000 --- a/fixtures/tldraw/wrangler.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "partyserver-fixture-tldraw" -main = "src/index.ts" -compatibility_date = "2024-04-19" - -assets = {directory = "./public"} - -[[durable_objects.bindings]] -name = "Tldraw" -class_name = "Tldraw" - -[[migrations]] -tag = "v1" # Should be unique for each entry -new_classes = ["Tldraw"] diff --git a/fixtures/todo-sync/CHANGELOG.md b/fixtures/todo-sync/CHANGELOG.md deleted file mode 100644 index cdc0d9f3..00000000 --- a/fixtures/todo-sync/CHANGELOG.md +++ /dev/null @@ -1,79 +0,0 @@ -# @partyserver/fixture-todo-sync - -## 0.0.11 - -### Patch Changes - -- Updated dependencies [[`501370d`](https://github.com/cloudflare/partykit/commit/501370d4ed5976a073aa96f9eaeea23224053093)]: - - partyserver@0.0.75 - - partysocket@1.1.6 - -## 0.0.10 - -### Patch Changes - -- Updated dependencies [[`537714c`](https://github.com/cloudflare/partykit/commit/537714c8a6d70abcac13710e357ce9a953c7d0d3)]: - - partyserver@0.0.74 - -## 0.0.9 - -### Patch Changes - -- Updated dependencies [[`3014f9f`](https://github.com/cloudflare/partykit/commit/3014f9fdb00bcfa6b27f61aa18630c5ba7b3932c)]: - - partyserver@0.0.73 - -## 0.0.8 - -### Patch Changes - -- Updated dependencies [[`a462739`](https://github.com/cloudflare/partykit/commit/a4627392628058702dcbb8c5d5acbea35b95be09)]: - - partyserver@0.0.72 - -## 0.0.7 - -### Patch Changes - -- Updated dependencies [[`20a68a8`](https://github.com/cloudflare/partykit/commit/20a68a841ef67464a41b55d500114cec6a8c6a6e)]: - - partyserver@0.0.71 - -## 0.0.6 - -### Patch Changes - -- Updated dependencies [[`3f900b5`](https://github.com/cloudflare/partykit/commit/3f900b5f631ea3f8b8a70197890d1d551be3951d)]: - - partyserver@0.0.70 - -## 0.0.5 - -### Patch Changes - -- Updated dependencies [[`b0bc59c`](https://github.com/cloudflare/partykit/commit/b0bc59c017484c02b4d9cb9313c92fb66b36941f), [`7ec1568`](https://github.com/cloudflare/partykit/commit/7ec15680fd1dcb257263d52d2c9cd5088e2f7c0a)]: - - partyserver@0.0.69 - -## 0.0.4 - -### Patch Changes - -- Updated dependencies [[`a5d2dde`](https://github.com/threepointone/partyserver/commit/a5d2dde164bd9d38e1bac87b2d32d24c06742d2f)]: - - partyserver@0.0.68 - -## 0.0.3 - -### Patch Changes - -- Updated dependencies [[`b1baf6c`](https://github.com/threepointone/partyserver/commit/b1baf6cdda4c7684a4663a1281070ab1762670fd)]: - - partyserver@0.0.67 - -## 0.0.2 - -### Patch Changes - -- Updated dependencies [[`c41057b`](https://github.com/threepointone/partyserver/commit/c41057ba5c738496bc7e2a4968357f1f5b65707b), [`b3701a5`](https://github.com/threepointone/partyserver/commit/b3701a5f5eee278c96587d9e29e42992806733ac)]: - - partyserver@0.0.66 - -## 0.0.1 - -### Patch Changes - -- Updated dependencies [[`3e56cce`](https://github.com/threepointone/partyserver/commit/3e56cceca2c253d7b4368299e018b73af6deb42b)]: - - partyserver@0.0.65 diff --git a/fixtures/todo-sync/env.d.ts b/fixtures/todo-sync/env.d.ts new file mode 100644 index 00000000..9479b819 --- /dev/null +++ b/fixtures/todo-sync/env.d.ts @@ -0,0 +1,12 @@ +/* eslint-disable */ +// Generated by Wrangler by running `wrangler types env.d.ts --include-runtime false` (hash: 236b87f0a4aff8945acc2b38f55ab6ee) +declare namespace Cloudflare { + interface GlobalProps { + mainModule: typeof import("./src/server"); + durableNamespaces: "ToDos"; + } + interface Env { + Todos: DurableObjectNamespace; + } +} +interface Env extends Cloudflare.Env {} diff --git a/fixtures/todo-sync/index.html b/fixtures/todo-sync/index.html index 476cd88d..e350426b 100644 --- a/fixtures/todo-sync/index.html +++ b/fixtures/todo-sync/index.html @@ -21,6 +21,6 @@
Loading...
- + diff --git a/fixtures/todo-sync/package.json b/fixtures/todo-sync/package.json index c2707da7..f71864d4 100644 --- a/fixtures/todo-sync/package.json +++ b/fixtures/todo-sync/package.json @@ -4,7 +4,8 @@ "version": "0.0.11", "type": "module", "scripts": { - "start": "vite dev" + "start": "vite dev", + "types": "wrangler types env.d.ts --include-runtime false" }, "dependencies": { "nanoid": "^5.1.6", diff --git a/fixtures/todo-sync/src/client/index.tsx b/fixtures/todo-sync/src/client.tsx similarity index 98% rename from fixtures/todo-sync/src/client/index.tsx rename to fixtures/todo-sync/src/client.tsx index 840e0997..5964c952 100644 --- a/fixtures/todo-sync/src/client/index.tsx +++ b/fixtures/todo-sync/src/client.tsx @@ -6,7 +6,7 @@ import { nanoid } from "nanoid"; import { usePartySocket } from "partysocket/react"; import { useSync } from "partysync/react"; -import type { TodoAction, TodoRecord } from "../shared"; +import type { TodoAction, TodoRecord } from "./shared"; // let's use a WeakSet to track which records are being updated optimistically diff --git a/fixtures/todo-sync/src/client/tsconfig.json b/fixtures/todo-sync/src/client/tsconfig.json deleted file mode 100644 index 4e540af9..00000000 --- a/fixtures/todo-sync/src/client/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "lib": ["DOM", "ESNext"] - } -} diff --git a/fixtures/todo-sync/src/server/index.ts b/fixtures/todo-sync/src/server.ts similarity index 96% rename from fixtures/todo-sync/src/server/index.ts rename to fixtures/todo-sync/src/server.ts index 61c23d4d..a803ce3a 100644 --- a/fixtures/todo-sync/src/server/index.ts +++ b/fixtures/todo-sync/src/server.ts @@ -1,11 +1,7 @@ import { routePartykitRequest } from "partyserver"; import { SyncServer } from "partysync/server"; -import type { TodoAction, TodoRecord } from "../shared"; - -type Env = { - ToDos: DurableObjectNamespace; -}; +import type { TodoAction, TodoRecord } from "./shared"; function sleep(ms: number) { return new Promise((resolve) => setTimeout(resolve, ms)); diff --git a/fixtures/todo-sync/src/server/tsconfig.json b/fixtures/todo-sync/src/server/tsconfig.json deleted file mode 100644 index b9b9d198..00000000 --- a/fixtures/todo-sync/src/server/tsconfig.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json", - "compilerOptions": { - "types": ["@cloudflare/workers-types"] - } -} diff --git a/fixtures/todo-sync/src/client/styles.css b/fixtures/todo-sync/src/styles.css similarity index 100% rename from fixtures/todo-sync/src/client/styles.css rename to fixtures/todo-sync/src/styles.css diff --git a/fixtures/todo-sync/tsconfig.json b/fixtures/todo-sync/tsconfig.json new file mode 100644 index 00000000..a936f403 --- /dev/null +++ b/fixtures/todo-sync/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../../tsconfig.base.json", + "compilerOptions": { + "types": ["@cloudflare/workers-types"], + "lib": ["DOM", "DOM.Iterable", "ESNext"] + } +} diff --git a/fixtures/todo-sync/wrangler.jsonc b/fixtures/todo-sync/wrangler.jsonc new file mode 100644 index 00000000..eb576522 --- /dev/null +++ b/fixtures/todo-sync/wrangler.jsonc @@ -0,0 +1,22 @@ +{ + "name": "partyserver-fixture-todo-sync", + "main": "src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + }, + "durable_objects": { + "bindings": [ + { + "name": "Todos", + "class_name": "ToDos" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_sqlite_classes": ["ToDos"] + } + ] +} diff --git a/fixtures/todo-sync/wrangler.toml b/fixtures/todo-sync/wrangler.toml deleted file mode 100644 index b6c8e3d8..00000000 --- a/fixtures/todo-sync/wrangler.toml +++ /dev/null @@ -1,14 +0,0 @@ -name = "partyserver-fixture-globe" -main = "src/server/index.ts" -compatibility_date = "2024-04-19" - -assets = {directory = "./public"} - - -[[durable_objects.bindings]] -name = "Todos" -class_name = "ToDos" - -[[migrations]] -tag = "v1" # Should be unique for each entry -new_sqlite_classes = ["ToDos"] diff --git a/fixtures/video-echo/index.html b/fixtures/video-echo/index.html index 9fdea105..62a13b90 100644 --- a/fixtures/video-echo/index.html +++ b/fixtures/video-echo/index.html @@ -6,6 +6,7 @@ Video Echo - +
+ diff --git a/fixtures/video-echo/wrangler.jsonc b/fixtures/video-echo/wrangler.jsonc new file mode 100644 index 00000000..cf91803a --- /dev/null +++ b/fixtures/video-echo/wrangler.jsonc @@ -0,0 +1,8 @@ +{ + "name": "partyserver-fixture-video-echo", + "main": "./src/server.ts", + "compatibility_date": "2025-12-17", + "assets": { + "directory": "./public" + } +} diff --git a/fixtures/video-echo/wrangler.toml b/fixtures/video-echo/wrangler.toml deleted file mode 100644 index fbb827cf..00000000 --- a/fixtures/video-echo/wrangler.toml +++ /dev/null @@ -1,6 +0,0 @@ -name = "partyserver-fixture-video-echo" -main = "./dist/index.js" -compatibility_date = "2024-05-30" - -assets = {directory = "./public"} - diff --git a/package-lock.json b/package-lock.json index 2edb61b1..2bcb4ea6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -33,40 +33,26 @@ "tsx": "^4.21.0", "typescript": "^5.9.3", "vite": "^7.3.0", + "vite-plugin-devtools-json": "^1.0.0", "vitest": "3.2.4", "wrangler": "^4.56.0" } }, - "fixtures/blocknote-yjs": { - "name": "@partyserver/fixture-blocknote-yjs", - "version": "0.0.0", - "extraneous": true, - "dependencies": { - "@blocknote/mantine": "^0.25.1", - "@blocknote/react": "^0.25.1", - "@tiptap/core": "^2.11.5", - "@types/react": "^19.0.10", - "@types/react-dom": "^19.0.4", - "react": "^19.0.0", - "react-dom": "^19.0.0" - } - }, "fixtures/chat": { "name": "@partyserver/fixture-chat", "version": "0.0.11", "dependencies": { - "@tailwindcss/vite": "^4.1.18", "nanoid": "^5.1.6", "partyserver": "^0.0.78", "partysocket": "^1.1.9", "react": "^19.2.3", - "react-dom": "^19.2.3", - "tailwindcss": "^4.1.18", - "valibot": "^1.2.0" + "react-dom": "^19.2.3" }, "devDependencies": { + "@tailwindcss/vite": "^4.1.18", "@types/react": "^19.2.7", - "@types/react-dom": "^19.2.3" + "@types/react-dom": "^19.2.3", + "tailwindcss": "^4.1.18" } }, "fixtures/globe": { @@ -164,467 +150,13 @@ "@tiptap/starter-kit": "^3.14.0", "partyserver": "^0.0.78", "react": "^19.2.3", - "react-dom": "^19.2.3", - "tailwindcss": "^4.1.18", - "y-partyserver": "^0.0.54" - }, - "devDependencies": { - "@types/react": "^19.2.7", - "@types/react-dom": "^19.2.3" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/core": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.14.0.tgz", - "integrity": "sha512-nm0VWVA1Vq/jaKY3wyRXViL/kf78yMdH7qETpv4qZXDQLU+pdWV3IGoRTQTKESc7d8L1wL/2uCeByLNUJfrSIw==", - "license": "MIT", - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-blockquote": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.14.0.tgz", - "integrity": "sha512-I7aOqcVLHBgCeRtMaMHA+ILSS8Sli46fjFq8477stOpQ79TPiBd6e4SDuFCAu58M94mVLMvlPKF2Eh5IvbIMyQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-bold": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.14.0.tgz", - "integrity": "sha512-T4ma6VLoHm9JupglidD3CfZXm89A3HMv99gLplXNizvy1mlr4R3uC3aBqKw6lAP+NoqCqbIgjwc4YYsqZClNwA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-bubble-menu": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.14.0.tgz", - "integrity": "sha512-nraHy+5jumT67J7hWrCuVwVTS2vNj4FpV5kO8epVySBmgEBr/7Pyi4w7mQA1VRVOMdjeN9iypbgQ2rKhpfaoTw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-bullet-list": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.14.0.tgz", - "integrity": "sha512-luqPX4u52hiOAHJ95mYsNE+x+9dZxsM461Xny9d/eTXLjAcnwS7MghjrnpljvyYsSXNiwQtxUyEr4uEZZJ5gIQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-code": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.14.0.tgz", - "integrity": "sha512-Sx9yLorzS+oqNmXID4jt0G5tDnsEgU0HtEXPLD3KNt/ltVxWJU0AXwCsp1/Dg0HIDL868vWpJ2jC1t/4oaf9kA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-code-block": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.14.0.tgz", - "integrity": "sha512-hRSdIhhm3Q9JBMQdKaifRVFnAa4sG+M7l1QcTKR3VSYVy2/oR0U+aiOifi5OvMRBUwhaR71Ro+cMT9FH9s26Kg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-collaboration": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-collaboration/-/extension-collaboration-3.14.0.tgz", - "integrity": "sha512-6DgquRiAw/Mf8Y5KqQ+O9muZAmAWU9RaK5tZHrd8+OLkiGBxH891cZ2WA5jNaCl4T9hSJrpcMNJ3lxmBbxLGPg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0", - "@tiptap/y-tiptap": "^3.0.0", - "yjs": "^13" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-document": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.14.0.tgz", - "integrity": "sha512-O3D7/GPB3XrWGy0y/b4LMHiY0eTd+dyIbSdiFtmUnbC/E9lqQLw43GiqvD9Gm6AyKhBA+Z45dKMbaOe1c6eTwQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-dropcursor": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.14.0.tgz", - "integrity": "sha512-IwHyiZKLjV9WSBlQFS+afMjucIML8wFAKkG8UKCu+CVOe/Qd1ImDGyv6rzPlCmefJkDHIUWS+c2STapJlUD1VQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extensions": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-floating-menu": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.14.0.tgz", - "integrity": "sha512-+ErwDF74NzX4JV0nXMSIUT9V8FDdo85r0SaBZ8lb2NLmElaA3LDklcNV7SsoKlRcwsAXtFkqQbDwXLNGQLYSPQ==", - "license": "MIT", - "optional": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@floating-ui/dom": "^1.0.0", - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-gapcursor": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.14.0.tgz", - "integrity": "sha512-hMg2U59+c9FreYtTvzxx5GWKejdZLRITMLEu4OTfrgQok6uF4qkzGEEqmYqPiHk08TBqAg18Y5bbpyqTsuit9A==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extensions": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-hard-break": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.14.0.tgz", - "integrity": "sha512-XKxr8usQp+kFevhDK6Ccmnq1CIkLmPClhKwbt7AClGLKLBtEVAS1qUgcmKudkw8cD8Q2/69twI37LXa23sfuLA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-heading": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.14.0.tgz", - "integrity": "sha512-4xpahSo3b1dN2nwA0XKXLQVz9nZ/vE443a/Y5QLWeXiu3v9wkcMs/5kQ5ysFeDZRBTfVUWBqhngI7zhvDUx2zQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-horizontal-rule": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.14.0.tgz", - "integrity": "sha512-65O4T9vPKLUKO1fLowh5jqtfQlH5eaIL7qb/uj5sXMMg8O7TCvBIRkwNuYsFTkJmTk4vBy+fjZ0uwSY3DFkO1g==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-italic": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.14.0.tgz", - "integrity": "sha512-Arl5EaG4wdyipwvKjsI7Krlk3OkmqvLfF0YfGwsd5AVDxTiYuiDGgz7RF8J2kttbBeiUTqwME5xpkryQK3F+fg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-link": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.14.0.tgz", - "integrity": "sha512-xaeJIktD42rJ4t9fbQpKe+yYNZ+YFIK96cp1Kdm0hZHv/8MPMNRiF85TRY+9U1aoyh5uRcspgCj7EKQb2Hs7qg==", - "license": "MIT", - "dependencies": { - "linkifyjs": "^4.3.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-list": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.14.0.tgz", - "integrity": "sha512-rsjFH0Vd/4UbDsjwMLay7oz72VVu1r35t8ofAzy5587jn5JAjflaZs05XbRRMD2imUTK41dyajVSh8CqSnDEJw==", - "license": "MIT", - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-list-item": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.14.0.tgz", - "integrity": "sha512-19Dcp8HCFdhINmRy0KQLFfz9ZEuVwFWGAAjYG7BvMvkd9k4sJ5vCv5fej59G99rhsc+tCmik77w+SLksOcxwKQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-list-keymap": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.14.0.tgz", - "integrity": "sha512-1oPbvNnQjeOxkHZcUbWPx/IY9o4fT3QGk/9A9cIjFrJRD2AHzbYfPDHNHINtg7Bj0jWz74cHvAHcaxP+M27jkA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-ordered-list": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.14.0.tgz", - "integrity": "sha512-/fXjVL4JajkJQoc213iiput0bCXC4ztUPUpvNuI62VcgFKHcTvX4eYxED1VflotCx0OdkyY9yYD8PtvyO5lkmA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/extension-list": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-paragraph": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.14.0.tgz", - "integrity": "sha512-NFxk2yNo3Cvh9g8evea+yTLNV48se7MbMcVizTnVhobqtBKv793qsb5FM5Hu30Y72FQPNfH+LRoap4XZyBPfVw==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-strike": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.14.0.tgz", - "integrity": "sha512-R8BbAhnWpisBml6okMKl98hY4tJjedTTgyTkx8tPabIJ92nS9IURKEk3foWB9uHxdTOBUqTvVT+2ScDf9r6QHg==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-text": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.14.0.tgz", - "integrity": "sha512-XlpnD87LQ7lLcDcBenHgzxv3uivQzPdVHM16CY4lXR4aKDIp2mxjPZr4twHT+cOnRQHc8VYpRgkEo6LLX6VylA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extension-underline": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.14.0.tgz", - "integrity": "sha512-zmnWlsi2g/tMlThHby0Je9O+v24j4d+qcXF3nuzLUUaDsGCEtOyC9RzwITft59ViK+Nc2PD2W/J14rsB0j+qoQ==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/extensions": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.14.0.tgz", - "integrity": "sha512-qQBVKqzU4ZVjRn8W0UbdfE4LaaIgcIWHOMrNnJ+PutrRzQ6ZzhmD/kRONvRWBfG9z3DU7pSKGwVYSR2hztsGuQ==", - "license": "MIT", - "peer": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/pm": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.14.0.tgz", - "integrity": "sha512-xrZmqI5jl4yMeAsu8p8gVP9S3An5h2MBi8BQHNnZmpyzkUrlpd40vlT6u13SWIqVi5ZWhBZ6U3rL7mkVLZuRKg==", - "license": "MIT", - "peer": true, - "dependencies": { - "prosemirror-changeset": "^2.3.0", - "prosemirror-collab": "^1.3.1", - "prosemirror-commands": "^1.6.2", - "prosemirror-dropcursor": "^1.8.1", - "prosemirror-gapcursor": "^1.3.2", - "prosemirror-history": "^1.4.1", - "prosemirror-inputrules": "^1.4.0", - "prosemirror-keymap": "^1.2.2", - "prosemirror-markdown": "^1.13.1", - "prosemirror-menu": "^1.2.4", - "prosemirror-model": "^1.24.1", - "prosemirror-schema-basic": "^1.2.3", - "prosemirror-schema-list": "^1.5.0", - "prosemirror-state": "^1.4.3", - "prosemirror-tables": "^1.6.4", - "prosemirror-trailing-node": "^3.0.0", - "prosemirror-transform": "^1.10.2", - "prosemirror-view": "^1.38.1" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/react": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-3.14.0.tgz", - "integrity": "sha512-Eo/nLyKxHvnLIF4gI2WFhGJiVrqfA6XL9kismVG9NwBNF/NblMDmZZu6Z2SH/ONJQz2Egn7UBPNp3BMq/qZDcg==", - "license": "MIT", - "dependencies": { - "@types/use-sync-external-store": "^0.0.6", - "fast-equals": "^5.3.3", - "use-sync-external-store": "^1.4.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "optionalDependencies": { - "@tiptap/extension-bubble-menu": "^3.14.0", - "@tiptap/extension-floating-menu": "^3.14.0" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0", - "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "@types/react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react": "^17.0.0 || ^18.0.0 || ^19.0.0", - "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" - } - }, - "fixtures/tiptap-yjs/node_modules/@tiptap/starter-kit": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.14.0.tgz", - "integrity": "sha512-fHsC4oDVzvMU9btg+IUmu/eqPquapjJ341qaNI7cCeSCKjjE6XJEN6WcONLAVId2OZUwML0IX1Jgl+6gJxU9Jw==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/extension-blockquote": "^3.14.0", - "@tiptap/extension-bold": "^3.14.0", - "@tiptap/extension-bullet-list": "^3.14.0", - "@tiptap/extension-code": "^3.14.0", - "@tiptap/extension-code-block": "^3.14.0", - "@tiptap/extension-document": "^3.14.0", - "@tiptap/extension-dropcursor": "^3.14.0", - "@tiptap/extension-gapcursor": "^3.14.0", - "@tiptap/extension-hard-break": "^3.14.0", - "@tiptap/extension-heading": "^3.14.0", - "@tiptap/extension-horizontal-rule": "^3.14.0", - "@tiptap/extension-italic": "^3.14.0", - "@tiptap/extension-link": "^3.14.0", - "@tiptap/extension-list": "^3.14.0", - "@tiptap/extension-list-item": "^3.14.0", - "@tiptap/extension-list-keymap": "^3.14.0", - "@tiptap/extension-ordered-list": "^3.14.0", - "@tiptap/extension-paragraph": "^3.14.0", - "@tiptap/extension-strike": "^3.14.0", - "@tiptap/extension-text": "^3.14.0", - "@tiptap/extension-underline": "^3.14.0", - "@tiptap/extensions": "^3.14.0", - "@tiptap/pm": "^3.14.0" + "react-dom": "^19.2.3", + "tailwindcss": "^4.1.18", + "y-partyserver": "^0.0.54" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" + "devDependencies": { + "@types/react": "^19.2.7", + "@types/react-dom": "^19.2.3" } }, "fixtures/tldraw": { @@ -682,60 +214,6 @@ "dev": true, "license": "MIT" }, - "node_modules/@andrewbranch/untar.js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@andrewbranch/untar.js/-/untar.js-1.0.3.tgz", - "integrity": "sha512-Jh15/qVmrLGhkKJBdXlK1+9tY4lZruYjsgkDFj08ZmDiWVBLJcqkok7Z0/R0In+i1rScBpJlSvrTS2Lm41Pbnw==", - "dev": true, - "optional": true - }, - "node_modules/@arethetypeswrong/core": { - "version": "0.18.2", - "resolved": "https://registry.npmjs.org/@arethetypeswrong/core/-/core-0.18.2.tgz", - "integrity": "sha512-GiwTmBFOU1/+UVNqqCGzFJYfBXEytUkiI+iRZ6Qx7KmUVtLm00sYySkfe203C9QtPG11yOz1ZaMek8dT/xnlgg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@andrewbranch/untar.js": "^1.0.3", - "@loaderkit/resolve": "^1.0.2", - "cjs-module-lexer": "^1.2.3", - "fflate": "^0.8.2", - "lru-cache": "^11.0.1", - "semver": "^7.5.4", - "typescript": "5.6.1-rc", - "validate-npm-package-name": "^5.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/@arethetypeswrong/core/node_modules/lru-cache": { - "version": "11.2.2", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz", - "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==", - "dev": true, - "license": "ISC", - "optional": true, - "engines": { - "node": "20 || >=22" - } - }, - "node_modules/@arethetypeswrong/core/node_modules/typescript": { - "version": "5.6.1-rc", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.6.1-rc.tgz", - "integrity": "sha512-E3b2+1zEFu84jB0YQi9BORDjz9+jGbwwy1Zi3G0LUNw7a7cePUrHMRNy8aPh53nXpkFGVHSxIZo5vKTfYaFiBQ==", - "dev": true, - "license": "Apache-2.0", - "optional": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, "node_modules/@asamuzakjp/css-color": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/@asamuzakjp/css-color/-/css-color-4.1.1.tgz", @@ -807,9 +285,9 @@ } }, "node_modules/@babel/compat-data": { - "version": "7.28.4", - "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz", - "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==", + "version": "7.28.5", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.5.tgz", + "integrity": "sha512-6uFXyCayocRbqhZOB+6XcuZbkMNimwfVGFji8CTZnCzOHVGvDqzvitu1re2AU5LROliz7eQPhB8CpAMvnx9EjA==", "dev": true, "license": "MIT", "engines": { @@ -1047,13 +525,10 @@ } }, "node_modules/@babel/runtime": { - "version": "7.26.9", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz", - "integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==", + "version": "7.28.4", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.28.4.tgz", + "integrity": "sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==", "license": "MIT", - "dependencies": { - "regenerator-runtime": "^0.14.0" - }, "engines": { "node": ">=6.9.0" } @@ -1269,14 +744,6 @@ "node": ">=14.21.3" } }, - "node_modules/@braidai/lang": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@braidai/lang/-/lang-1.1.2.tgz", - "integrity": "sha512-qBcknbBufNHlui137Hft8xauQMTZDKdophmLFv05r2eNmdIv/MlPuP4TdUknHG68UdWLgVZwgxVe735HzJNIwA==", - "dev": true, - "license": "ISC", - "optional": true - }, "node_modules/@changesets/apply-release-plan": { "version": "7.0.14", "resolved": "https://registry.npmjs.org/@changesets/apply-release-plan/-/apply-release-plan-7.0.14.tgz", @@ -1627,19 +1094,6 @@ "wrangler": "^4.56.0" } }, - "node_modules/@cloudflare/vite-plugin/node_modules/get-port": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", - "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/@cloudflare/vitest-pool-workers": { "version": "0.10.15", "resolved": "https://registry.npmjs.org/@cloudflare/vitest-pool-workers/-/vitest-pool-workers-0.10.15.tgz", @@ -2052,9 +1506,9 @@ } }, "node_modules/@csstools/css-syntax-patches-for-csstree": { - "version": "1.0.21", - "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.21.tgz", - "integrity": "sha512-plP8N8zKfEZ26figX4Nvajx8DuzfuRpLTqglQ5d0chfnt35Qt3X+m6ASZ+rG0D0kxe/upDVNwSIVJP5n4FuNfw==", + "version": "1.0.22", + "resolved": "https://registry.npmjs.org/@csstools/css-syntax-patches-for-csstree/-/css-syntax-patches-for-csstree-1.0.22.tgz", + "integrity": "sha512-qBcx6zYlhleiFfdtzkRgwNC7VVoAwfK76Vmsw5t+PbvtdknO9StgRk7ROvq9so1iqbdW4uLIDAsXRsTfUrIoOw==", "dev": true, "funding": [ { @@ -2096,6 +1550,7 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.7.1.tgz", "integrity": "sha512-o1uhUASyo921r2XtHYOHy7gdkGLge8ghBEQHMWmyJFoXlpU58kIrhhN3w26lpQb6dspetweapMn2CSNwQ8I4wg==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2107,6 +1562,7 @@ "version": "1.7.1", "resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.7.1.tgz", "integrity": "sha512-PVtJr5CmLwYAU9PZDMITZoR5iAOShYREoR45EyyLrbntV50mdePTgUn4AmOw90Ifcj+x2kRjdzr1HP3RrNiHGA==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2117,6 +1573,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz", "integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -2137,6 +1594,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2153,6 +1611,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2169,6 +1628,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2185,6 +1645,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2201,6 +1662,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2217,6 +1679,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2233,6 +1696,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2249,6 +1713,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2265,6 +1730,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2281,6 +1747,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2297,6 +1764,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2313,6 +1781,7 @@ "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2329,6 +1798,7 @@ "cpu": [ "mips64el" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2345,6 +1815,7 @@ "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2361,6 +1832,7 @@ "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2377,6 +1849,7 @@ "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2393,6 +1866,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2409,6 +1883,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2425,6 +1900,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2441,6 +1917,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2457,6 +1934,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2473,6 +1951,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2489,6 +1968,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2505,6 +1985,7 @@ "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -2521,6 +2002,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -3000,13 +2482,13 @@ } }, "node_modules/@inquirer/external-editor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.2.tgz", - "integrity": "sha512-yy9cOoBnx58TlsPrIxauKIFQTiyH+0MK4e97y4sV9ERbI+zDxw7i2hxHLCIEGIE/8PPvDxGhgzIOTSOWcs6/MQ==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@inquirer/external-editor/-/external-editor-1.0.3.tgz", + "integrity": "sha512-RWbSrDiYmO4LbejWY7ttpxczuwQyZLBUyygsA9Nsv95hpzUWwnNTVQmAq3xuh7vNwCp07UTmE5i11XAEExx4RA==", "dev": true, "license": "MIT", "dependencies": { - "chardet": "^2.1.0", + "chardet": "^2.1.1", "iconv-lite": "^0.7.0" }, "engines": { @@ -3021,27 +2503,11 @@ } } }, - "node_modules/@inquirer/external-editor/node_modules/iconv-lite": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.0.tgz", - "integrity": "sha512-cf6L2Ds3h57VVmkZe+Pn+5APsT7FpqJtEhhieDCvrE2MK5Qk9MyffgQyuxQTm6BChfeZNtcOLHp9IcWRVcIcBQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/express" - } - }, "node_modules/@jridgewell/gen-mapping": { "version": "0.3.13", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz", "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/sourcemap-codec": "^1.5.0", @@ -3052,6 +2518,7 @@ "version": "2.3.5", "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz", "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/gen-mapping": "^0.3.5", @@ -3062,6 +2529,7 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, "license": "MIT", "engines": { "node": ">=6.0.0" @@ -3071,12 +2539,14 @@ "version": "1.5.5", "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz", "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==", + "dev": true, "license": "MIT" }, "node_modules/@jridgewell/trace-mapping": { "version": "0.3.31", "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz", "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/resolve-uri": "^3.1.0", @@ -3358,17 +2828,6 @@ "yjs": ">=13.5.22" } }, - "node_modules/@loaderkit/resolve": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@loaderkit/resolve/-/resolve-1.0.4.tgz", - "integrity": "sha512-rJzYKVcV4dxJv+vW6jlvagF8zvGxHJ2+HTr1e2qOejfmGhAApgJHl8Aog4mMszxceTRiKTTbnpgmTO1bEZHV/A==", - "dev": true, - "license": "ISC", - "optional": true, - "dependencies": { - "@braidai/lang": "^1.0.0" - } - }, "node_modules/@manypkg/find-root": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@manypkg/find-root/-/find-root-1.1.0.tgz", @@ -3438,6 +2897,7 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.1.0.tgz", "integrity": "sha512-Fq6DJW+Bb5jaWE69/qOE0D1TUN9+6uWhCeZpdnSBk14pjLcCWR7Q8n49PTSPHazM37JqrsdpEthXy2xn6jWWiA==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -3568,19 +3028,6 @@ "supports-color": "^10.0.0" } }, - "node_modules/@poppinss/dumper/node_modules/@sindresorhus/is": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.1.1.tgz", - "integrity": "sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sindresorhus/is?sponsor=1" - } - }, "node_modules/@poppinss/dumper/node_modules/supports-color": { "version": "10.2.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-10.2.2.tgz", @@ -5381,12 +4828,13 @@ "license": "MIT" }, "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.2.tgz", - "integrity": "sha512-o3pcKzJgSGt4d74lSZ+OCnHwkKBeAbFDmbEm5gg70eA8VkyCuC/zV9TwBnmw6VjDlRdF4Pshfb+WE9E6XY1PoQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.54.0.tgz", + "integrity": "sha512-OywsdRHrFvCdvsewAInDKCNyR3laPA2mc9bRYJ6LBp5IyvF3fvXbbNR0bSzHlZVFtn6E0xw2oZlyjg4rKCVcng==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5394,12 +4842,13 @@ ] }, "node_modules/@rollup/rollup-android-arm64": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.2.tgz", - "integrity": "sha512-cqFSWO5tX2vhC9hJTK8WAiPIm4Q8q/cU8j2HQA0L3E1uXvBYbOZMhE2oFL8n2pKB5sOCHY6bBuHaRwG7TkfJyw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.54.0.tgz", + "integrity": "sha512-Skx39Uv+u7H224Af+bDgNinitlmHyQX1K/atIA32JP3JQw6hVODX5tkbi2zof/E69M1qH2UoN3Xdxgs90mmNYw==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5407,12 +4856,13 @@ ] }, "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.2.tgz", - "integrity": "sha512-vngduywkkv8Fkh3wIZf5nFPXzWsNsVu1kvtLETWxTFf/5opZmflgVSeLgdHR56RQh71xhPhWoOkEBvbehwTlVA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.54.0.tgz", + "integrity": "sha512-k43D4qta/+6Fq+nCDhhv9yP2HdeKeP56QrUUTW7E6PhZP1US6NDqpJj4MY0jBHlJivVJD5P8NxrjuobZBJTCRw==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5420,12 +4870,13 @@ ] }, "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.2.tgz", - "integrity": "sha512-h11KikYrUCYTrDj6h939hhMNlqU2fo/X4NB0OZcys3fya49o1hmFaczAiJWVAFgrM1NCP6RrO7lQKeVYSKBPSQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.54.0.tgz", + "integrity": "sha512-cOo7biqwkpawslEfox5Vs8/qj83M/aZCSSNIWpVzfU2CYHa2G3P1UN5WF01RdTHSgCkri7XOlTdtk17BezlV3A==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5433,12 +4884,13 @@ ] }, "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.2.tgz", - "integrity": "sha512-/eg4CI61ZUkLXxMHyVlmlGrSQZ34xqWlZNW43IAU4RmdzWEx0mQJ2mN/Cx4IHLVZFL6UBGAh+/GXhgvGb+nVxw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.54.0.tgz", + "integrity": "sha512-miSvuFkmvFbgJ1BevMa4CPCFt5MPGw094knM64W9I0giUIMMmRYcGW/JWZDriaw/k1kOBtsWh1z6nIFV1vPNtA==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5446,12 +4898,13 @@ ] }, "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.2.tgz", - "integrity": "sha512-QOWgFH5X9+p+S1NAfOqc0z8qEpJIoUHf7OWjNUGOeW18Mx22lAUOiA9b6r2/vpzLdfxi/f+VWsYjUOMCcYh0Ng==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.54.0.tgz", + "integrity": "sha512-KGXIs55+b/ZfZsq9aR026tmr/+7tq6VG6MsnrvF4H8VhwflTIuYh+LFUlIsRdQSgrgmtM3fVATzEAj4hBQlaqQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5459,12 +4912,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.2.tgz", - "integrity": "sha512-kDWSPafToDd8LcBYd1t5jw7bD5Ojcu12S3uT372e5HKPzQt532vW+rGFFOaiR0opxePyUkHrwz8iWYEyH1IIQA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.54.0.tgz", + "integrity": "sha512-EHMUcDwhtdRGlXZsGSIuXSYwD5kOT9NVnx9sqzYiwAc91wfYOE1g1djOEDseZJKKqtHAHGwnGPQu3kytmfaXLQ==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5472,12 +4926,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.2.tgz", - "integrity": "sha512-gKm7Mk9wCv6/rkzwCiUC4KnevYhlf8ztBrDRT9g/u//1fZLapSRc+eDZj2Eu2wpJ+0RzUKgtNijnVIB4ZxyL+w==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.54.0.tgz", + "integrity": "sha512-+pBrqEjaakN2ySv5RVrj/qLytYhPKEUwk+e3SFU5jTLHIcAtqh2rLrd/OkbNuHJpsBgxsD8ccJt5ga/SeG0JmA==", "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5485,12 +4940,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.2.tgz", - "integrity": "sha512-66lA8vnj5mB/rtDNwPgrrKUOtCLVQypkyDa2gMfOefXK6rcZAxKLO9Fy3GkW8VkPnENv9hBkNOFfGLf6rNKGUg==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.54.0.tgz", + "integrity": "sha512-NSqc7rE9wuUaRBsBp5ckQ5CVz5aIRKCwsoa6WMF7G01sX3/qHUw/z4pv+D+ahL1EIKy6Enpcnz1RY8pf7bjwng==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5498,12 +4954,13 @@ ] }, "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.2.tgz", - "integrity": "sha512-s+OPucLNdJHvuZHuIz2WwncJ+SfWHFEmlC5nKMUgAelUeBUnlB4wt7rXWiyG4Zn07uY2Dd+SGyVa9oyLkVGOjA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.54.0.tgz", + "integrity": "sha512-gr5vDbg3Bakga5kbdpqx81m2n9IX8M6gIMlQQIXiLTNeQW6CucvuInJ91EuCJ/JYvc+rcLLsDFcfAD1K7fMofg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5511,12 +4968,13 @@ ] }, "node_modules/@rollup/rollup-linux-loong64-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.2.tgz", - "integrity": "sha512-8wTRM3+gVMDLLDdaT6tKmOE3lJyRy9NpJUS/ZRWmLCmOPIJhVyXwjBo+XbrrwtV33Em1/eCTd5TuGJm4+DmYjw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.54.0.tgz", + "integrity": "sha512-gsrtB1NA3ZYj2vq0Rzkylo9ylCtW/PhpLEivlgWe0bpgtX5+9j9EZa0wtZiCjgu6zmSeZWyI/e2YRX1URozpIw==", "cpu": [ "loong64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5524,12 +4982,13 @@ ] }, "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.2.tgz", - "integrity": "sha512-6yqEfgJ1anIeuP2P/zhtfBlDpXUb80t8DpbYwXQ3bQd95JMvUaqiX+fKqYqUwZXqdJDd8xdilNtsHM2N0cFm6A==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.54.0.tgz", + "integrity": "sha512-y3qNOfTBStmFNq+t4s7Tmc9hW2ENtPg8FeUD/VShI7rKxNW7O4fFeaYbMsd3tpFlIg1Q8IapFgy7Q9i2BqeBvA==", "cpu": [ "ppc64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5537,12 +4996,13 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.2.tgz", - "integrity": "sha512-sshYUiYVSEI2B6dp4jMncwxbrUqRdNApF2c3bhtLAU0qA8Lrri0p0NauOsTWh3yCCCDyBOjESHMExonp7Nzc0w==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.54.0.tgz", + "integrity": "sha512-89sepv7h2lIVPsFma8iwmccN7Yjjtgz0Rj/Ou6fEqg3HDhpCa+Et+YSufy27i6b0Wav69Qv4WBNl3Rs6pwhebQ==", "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5550,12 +5010,13 @@ ] }, "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.2.tgz", - "integrity": "sha512-duBLgd+3pqC4MMwBrKkFxaZerUxZcYApQVC5SdbF5/e/589GwVvlRUnyqMFbM8iUSb1BaoX/3fRL7hB9m2Pj8Q==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.54.0.tgz", + "integrity": "sha512-ZcU77ieh0M2Q8Ur7D5X7KvK+UxbXeDHwiOt/CPSBTI1fBmeDMivW0dPkdqkT4rOgDjrDDBUed9x4EgraIKoR2A==", "cpu": [ "riscv64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5563,12 +5024,13 @@ ] }, "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.2.tgz", - "integrity": "sha512-tzhYJJidDUVGMgVyE+PmxENPHlvvqm1KILjjZhB8/xHYqAGeizh3GBGf9u6WdJpZrz1aCpIIHG0LgJgH9rVjHQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.54.0.tgz", + "integrity": "sha512-2AdWy5RdDF5+4YfG/YesGDDtbyJlC9LHmL6rZw6FurBJ5n4vFGupsOBGfwMRjBYH7qRQowT8D/U4LoSvVwOhSQ==", "cpu": [ "s390x" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5576,12 +5038,13 @@ ] }, "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.2.tgz", - "integrity": "sha512-opH8GSUuVcCSSyHHcl5hELrmnk4waZoVpgn/4FDao9iyE4WpQhyWJ5ryl5M3ocp4qkRuHfyXnGqg8M9oKCEKRA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.54.0.tgz", + "integrity": "sha512-WGt5J8Ij/rvyqpFexxk3ffKqqbLf9AqrTBbWDk7ApGUzaIs6V+s2s84kAxklFwmMF/vBNGrVdYgbblCOFFezMQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5589,12 +5052,13 @@ ] }, "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.2.tgz", - "integrity": "sha512-LSeBHnGli1pPKVJ79ZVJgeZWWZXkEe/5o8kcn23M8eMKCUANejchJbF/JqzM4RRjOJfNRhKJk8FuqL1GKjF5oQ==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.54.0.tgz", + "integrity": "sha512-JzQmb38ATzHjxlPHuTH6tE7ojnMKM2kYNzt44LO/jJi8BpceEC8QuXYA908n8r3CNuG/B3BV8VR3Hi1rYtmPiw==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5602,12 +5066,13 @@ ] }, "node_modules/@rollup/rollup-openharmony-arm64": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.2.tgz", - "integrity": "sha512-uPj7MQ6/s+/GOpolavm6BPo+6CbhbKYyZHUDvZ/SmJM7pfDBgdGisFX3bY/CBDMg2ZO4utfhlApkSfZ92yXw7Q==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.54.0.tgz", + "integrity": "sha512-huT3fd0iC7jigGh7n3q/+lfPcXxBi+om/Rs3yiFxjvSxbSB6aohDFXbWvlspaqjeOh+hx7DDHS+5Es5qRkWkZg==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5615,12 +5080,13 @@ ] }, "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.2.tgz", - "integrity": "sha512-Z9MUCrSgIaUeeHAiNkm3cQyst2UhzjPraR3gYYfOjAuZI7tcFRTOD+4cHLPoS/3qinchth+V56vtqz1Tv+6KPA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.54.0.tgz", + "integrity": "sha512-c2V0W1bsKIKfbLMBu/WGBz6Yci8nJ/ZJdheE0EwB73N3MvHYKiKGs3mVilX4Gs70eGeDaMqEob25Tw2Gb9Nqyw==", "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5628,12 +5094,13 @@ ] }, "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.2.tgz", - "integrity": "sha512-+GnYBmpjldD3XQd+HMejo+0gJGwYIOfFeoBQv32xF/RUIvccUz20/V6Otdv+57NE70D5pa8W/jVGDoGq0oON4A==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.54.0.tgz", + "integrity": "sha512-woEHgqQqDCkAzrDhvDipnSirm5vxUXtSKDYTVpZG3nUdW/VVB5VdCYA2iReSj/u3yCZzXID4kuKG7OynPnB3WQ==", "cpu": [ "ia32" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5641,12 +5108,13 @@ ] }, "node_modules/@rollup/rollup-win32-x64-gnu": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.2.tgz", - "integrity": "sha512-ApXFKluSB6kDQkAqZOKXBjiaqdF1BlKi+/eqnYe9Ee7U2K3pUDKsIyr8EYm/QDHTJIM+4X+lI0gJc3TTRhd+dA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.54.0.tgz", + "integrity": "sha512-dzAc53LOuFvHwbCEOS0rPbXp6SIhAf2txMP5p6mGyOXXw5mWY8NGGbPMPrs4P1WItkfApDathBj/NzMLUZ9rtQ==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5654,18 +5122,32 @@ ] }, "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.2.tgz", - "integrity": "sha512-ARz+Bs8kY6FtitYM96PqPEVvPXqEZmPZsSkXvyX19YzDqkCaIlhCieLLMI5hxO9SRZ2XtCtm8wxhy0iJ2jxNfw==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.54.0.tgz", + "integrity": "sha512-hYT5d3YNdSh3mbCU1gwQyPgQd3T2ne0A3KG8KSBdav5TiBg6eInVmV+TeR5uHufiIgSFg0XsOWGW5/RhNcSvPg==", "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ "win32" ] }, + "node_modules/@sindresorhus/is": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-7.1.1.tgz", + "integrity": "sha512-rO92VvpgMc3kfiTjGT52LEtJ8Yc5kCWhZjLQ3LwlA4pSgPpQO7bVpYXParOD8Jwf+cVQECJo3yP/4I8aZtUQTQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sindresorhus/is?sponsor=1" + } + }, "node_modules/@speed-highlight/core": { "version": "1.2.12", "resolved": "https://registry.npmjs.org/@speed-highlight/core/-/core-1.2.12.tgz", @@ -5677,6 +5159,7 @@ "version": "4.1.18", "resolved": "https://registry.npmjs.org/@tailwindcss/node/-/node-4.1.18.tgz", "integrity": "sha512-DoR7U1P7iYhw16qJ49fgXUlry1t4CpXeErJHnQ44JgTSKMaZUdf17cfn5mHchfJ4KRBZRFA/Coo+MUF5+gOaCQ==", + "dev": true, "license": "MIT", "dependencies": { "@jridgewell/remapping": "^2.3.4", @@ -5688,19 +5171,11 @@ "tailwindcss": "4.1.18" } }, - "node_modules/@tailwindcss/node/node_modules/magic-string": { - "version": "0.30.21", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", - "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", - "license": "MIT", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.5" - } - }, "node_modules/@tailwindcss/oxide": { "version": "4.1.18", "resolved": "https://registry.npmjs.org/@tailwindcss/oxide/-/oxide-4.1.18.tgz", "integrity": "sha512-EgCR5tTS5bUSKQgzeMClT6iCY3ToqE1y+ZB0AKldj809QXk1Y+3jB0upOYZrn9aGIzPtUsP7sX4QQ4XtjBB95A==", + "dev": true, "license": "MIT", "engines": { "node": ">= 10" @@ -5727,6 +5202,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5743,6 +5219,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5759,6 +5236,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5775,6 +5253,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5791,6 +5270,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5807,6 +5287,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5823,6 +5304,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5839,6 +5321,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5855,6 +5338,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5879,6 +5363,7 @@ "cpu": [ "wasm32" ], + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -5900,6 +5385,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5916,6 +5402,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MIT", "optional": true, "os": [ @@ -5923,59 +5410,24 @@ ], "engines": { "node": ">= 10" - } - }, - "node_modules/@tailwindcss/vite": { - "version": "4.1.18", - "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz", - "integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==", - "license": "MIT", - "dependencies": { - "@tailwindcss/node": "4.1.18", - "@tailwindcss/oxide": "4.1.18", - "tailwindcss": "4.1.18" - }, - "peerDependencies": { - "vite": "^5.2.0 || ^6 || ^7" - } - }, - "node_modules/@tiptap/starter-kit": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.6.2.tgz", - "integrity": "sha512-nPzraIx/f1cOUNqG1LSC0OTnEu3mudcN3jQVuyGh3dvdOnik7FUciJEVfHKnloAyeoijidEeiLpiGHInp2uREg==", - "license": "MIT", - "dependencies": { - "@tiptap/core": "^3.6.2", - "@tiptap/extension-blockquote": "^3.6.2", - "@tiptap/extension-bold": "^3.6.2", - "@tiptap/extension-bullet-list": "^3.6.2", - "@tiptap/extension-code": "^3.6.2", - "@tiptap/extension-code-block": "^3.6.2", - "@tiptap/extension-document": "^3.6.2", - "@tiptap/extension-dropcursor": "^3.6.2", - "@tiptap/extension-gapcursor": "^3.6.2", - "@tiptap/extension-hard-break": "^3.6.2", - "@tiptap/extension-heading": "^3.6.2", - "@tiptap/extension-horizontal-rule": "^3.6.2", - "@tiptap/extension-italic": "^3.6.2", - "@tiptap/extension-link": "^3.6.2", - "@tiptap/extension-list": "^3.6.2", - "@tiptap/extension-list-item": "^3.6.2", - "@tiptap/extension-list-keymap": "^3.6.2", - "@tiptap/extension-ordered-list": "^3.6.2", - "@tiptap/extension-paragraph": "^3.6.2", - "@tiptap/extension-strike": "^3.6.2", - "@tiptap/extension-text": "^3.6.2", - "@tiptap/extension-underline": "^3.6.2", - "@tiptap/extensions": "^3.6.2", - "@tiptap/pm": "^3.6.2" + } + }, + "node_modules/@tailwindcss/vite": { + "version": "4.1.18", + "resolved": "https://registry.npmjs.org/@tailwindcss/vite/-/vite-4.1.18.tgz", + "integrity": "sha512-jVA+/UpKL1vRLg6Hkao5jldawNmRo7mQYrZtNHMIVpLfLhDml5nMRUo/8MwoX2vNXvnaXNNMedrMfMugAVX1nA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@tailwindcss/node": "4.1.18", + "@tailwindcss/oxide": "4.1.18", + "tailwindcss": "4.1.18" }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" + "peerDependencies": { + "vite": "^5.2.0 || ^6 || ^7" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/core": { + "node_modules/@tiptap/core": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/core/-/core-3.14.0.tgz", "integrity": "sha512-nm0VWVA1Vq/jaKY3wyRXViL/kf78yMdH7qETpv4qZXDQLU+pdWV3IGoRTQTKESc7d8L1wL/2uCeByLNUJfrSIw==", @@ -5989,7 +5441,7 @@ "@tiptap/pm": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-blockquote": { + "node_modules/@tiptap/extension-blockquote": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-blockquote/-/extension-blockquote-3.14.0.tgz", "integrity": "sha512-I7aOqcVLHBgCeRtMaMHA+ILSS8Sli46fjFq8477stOpQ79TPiBd6e4SDuFCAu58M94mVLMvlPKF2Eh5IvbIMyQ==", @@ -6002,7 +5454,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-bold": { + "node_modules/@tiptap/extension-bold": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-bold/-/extension-bold-3.14.0.tgz", "integrity": "sha512-T4ma6VLoHm9JupglidD3CfZXm89A3HMv99gLplXNizvy1mlr4R3uC3aBqKw6lAP+NoqCqbIgjwc4YYsqZClNwA==", @@ -6015,7 +5467,25 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-bullet-list": { + "node_modules/@tiptap/extension-bubble-menu": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.14.0.tgz", + "integrity": "sha512-nraHy+5jumT67J7hWrCuVwVTS2vNj4FpV5kO8epVySBmgEBr/7Pyi4w7mQA1VRVOMdjeN9iypbgQ2rKhpfaoTw==", + "license": "MIT", + "optional": true, + "dependencies": { + "@floating-ui/dom": "^1.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.14.0", + "@tiptap/pm": "^3.14.0" + } + }, + "node_modules/@tiptap/extension-bullet-list": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-bullet-list/-/extension-bullet-list-3.14.0.tgz", "integrity": "sha512-luqPX4u52hiOAHJ95mYsNE+x+9dZxsM461Xny9d/eTXLjAcnwS7MghjrnpljvyYsSXNiwQtxUyEr4uEZZJ5gIQ==", @@ -6028,7 +5498,7 @@ "@tiptap/extension-list": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-code": { + "node_modules/@tiptap/extension-code": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-code/-/extension-code-3.14.0.tgz", "integrity": "sha512-Sx9yLorzS+oqNmXID4jt0G5tDnsEgU0HtEXPLD3KNt/ltVxWJU0AXwCsp1/Dg0HIDL868vWpJ2jC1t/4oaf9kA==", @@ -6041,7 +5511,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-code-block": { + "node_modules/@tiptap/extension-code-block": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-code-block/-/extension-code-block-3.14.0.tgz", "integrity": "sha512-hRSdIhhm3Q9JBMQdKaifRVFnAa4sG+M7l1QcTKR3VSYVy2/oR0U+aiOifi5OvMRBUwhaR71Ro+cMT9FH9s26Kg==", @@ -6055,7 +5525,23 @@ "@tiptap/pm": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-document": { + "node_modules/@tiptap/extension-collaboration": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-collaboration/-/extension-collaboration-3.14.0.tgz", + "integrity": "sha512-6DgquRiAw/Mf8Y5KqQ+O9muZAmAWU9RaK5tZHrd8+OLkiGBxH891cZ2WA5jNaCl4T9hSJrpcMNJ3lxmBbxLGPg==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.14.0", + "@tiptap/pm": "^3.14.0", + "@tiptap/y-tiptap": "^3.0.0", + "yjs": "^13" + } + }, + "node_modules/@tiptap/extension-document": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-document/-/extension-document-3.14.0.tgz", "integrity": "sha512-O3D7/GPB3XrWGy0y/b4LMHiY0eTd+dyIbSdiFtmUnbC/E9lqQLw43GiqvD9Gm6AyKhBA+Z45dKMbaOe1c6eTwQ==", @@ -6068,7 +5554,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-dropcursor": { + "node_modules/@tiptap/extension-dropcursor": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-dropcursor/-/extension-dropcursor-3.14.0.tgz", "integrity": "sha512-IwHyiZKLjV9WSBlQFS+afMjucIML8wFAKkG8UKCu+CVOe/Qd1ImDGyv6rzPlCmefJkDHIUWS+c2STapJlUD1VQ==", @@ -6081,7 +5567,23 @@ "@tiptap/extensions": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-gapcursor": { + "node_modules/@tiptap/extension-floating-menu": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.14.0.tgz", + "integrity": "sha512-+ErwDF74NzX4JV0nXMSIUT9V8FDdo85r0SaBZ8lb2NLmElaA3LDklcNV7SsoKlRcwsAXtFkqQbDwXLNGQLYSPQ==", + "license": "MIT", + "optional": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@floating-ui/dom": "^1.0.0", + "@tiptap/core": "^3.14.0", + "@tiptap/pm": "^3.14.0" + } + }, + "node_modules/@tiptap/extension-gapcursor": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-gapcursor/-/extension-gapcursor-3.14.0.tgz", "integrity": "sha512-hMg2U59+c9FreYtTvzxx5GWKejdZLRITMLEu4OTfrgQok6uF4qkzGEEqmYqPiHk08TBqAg18Y5bbpyqTsuit9A==", @@ -6094,7 +5596,7 @@ "@tiptap/extensions": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-hard-break": { + "node_modules/@tiptap/extension-hard-break": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-hard-break/-/extension-hard-break-3.14.0.tgz", "integrity": "sha512-XKxr8usQp+kFevhDK6Ccmnq1CIkLmPClhKwbt7AClGLKLBtEVAS1qUgcmKudkw8cD8Q2/69twI37LXa23sfuLA==", @@ -6107,7 +5609,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-heading": { + "node_modules/@tiptap/extension-heading": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-heading/-/extension-heading-3.14.0.tgz", "integrity": "sha512-4xpahSo3b1dN2nwA0XKXLQVz9nZ/vE443a/Y5QLWeXiu3v9wkcMs/5kQ5ysFeDZRBTfVUWBqhngI7zhvDUx2zQ==", @@ -6120,7 +5622,20 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-horizontal-rule": { + "node_modules/@tiptap/extension-highlight": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.6.2.tgz", + "integrity": "sha512-Q3eUVphUM1D86d4jQZ88nTbleKBokxMNjiEJc3N43+UXJPQWXWgDgqWUiaYmROSCdo3leuh9JpsDP/KYcclWUA==", + "license": "MIT", + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "peerDependencies": { + "@tiptap/core": "^3.6.2" + } + }, + "node_modules/@tiptap/extension-horizontal-rule": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-horizontal-rule/-/extension-horizontal-rule-3.14.0.tgz", "integrity": "sha512-65O4T9vPKLUKO1fLowh5jqtfQlH5eaIL7qb/uj5sXMMg8O7TCvBIRkwNuYsFTkJmTk4vBy+fjZ0uwSY3DFkO1g==", @@ -6134,7 +5649,7 @@ "@tiptap/pm": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-italic": { + "node_modules/@tiptap/extension-italic": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-italic/-/extension-italic-3.14.0.tgz", "integrity": "sha512-Arl5EaG4wdyipwvKjsI7Krlk3OkmqvLfF0YfGwsd5AVDxTiYuiDGgz7RF8J2kttbBeiUTqwME5xpkryQK3F+fg==", @@ -6147,7 +5662,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-link": { + "node_modules/@tiptap/extension-link": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-link/-/extension-link-3.14.0.tgz", "integrity": "sha512-xaeJIktD42rJ4t9fbQpKe+yYNZ+YFIK96cp1Kdm0hZHv/8MPMNRiF85TRY+9U1aoyh5uRcspgCj7EKQb2Hs7qg==", @@ -6164,7 +5679,7 @@ "@tiptap/pm": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-list": { + "node_modules/@tiptap/extension-list": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.14.0.tgz", "integrity": "sha512-rsjFH0Vd/4UbDsjwMLay7oz72VVu1r35t8ofAzy5587jn5JAjflaZs05XbRRMD2imUTK41dyajVSh8CqSnDEJw==", @@ -6179,7 +5694,7 @@ "@tiptap/pm": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-list-item": { + "node_modules/@tiptap/extension-list-item": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-list-item/-/extension-list-item-3.14.0.tgz", "integrity": "sha512-19Dcp8HCFdhINmRy0KQLFfz9ZEuVwFWGAAjYG7BvMvkd9k4sJ5vCv5fej59G99rhsc+tCmik77w+SLksOcxwKQ==", @@ -6192,7 +5707,7 @@ "@tiptap/extension-list": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-list-keymap": { + "node_modules/@tiptap/extension-list-keymap": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-list-keymap/-/extension-list-keymap-3.14.0.tgz", "integrity": "sha512-1oPbvNnQjeOxkHZcUbWPx/IY9o4fT3QGk/9A9cIjFrJRD2AHzbYfPDHNHINtg7Bj0jWz74cHvAHcaxP+M27jkA==", @@ -6205,7 +5720,7 @@ "@tiptap/extension-list": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-ordered-list": { + "node_modules/@tiptap/extension-ordered-list": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-ordered-list/-/extension-ordered-list-3.14.0.tgz", "integrity": "sha512-/fXjVL4JajkJQoc213iiput0bCXC4ztUPUpvNuI62VcgFKHcTvX4eYxED1VflotCx0OdkyY9yYD8PtvyO5lkmA==", @@ -6218,7 +5733,7 @@ "@tiptap/extension-list": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-paragraph": { + "node_modules/@tiptap/extension-paragraph": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-paragraph/-/extension-paragraph-3.14.0.tgz", "integrity": "sha512-NFxk2yNo3Cvh9g8evea+yTLNV48se7MbMcVizTnVhobqtBKv793qsb5FM5Hu30Y72FQPNfH+LRoap4XZyBPfVw==", @@ -6231,7 +5746,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-strike": { + "node_modules/@tiptap/extension-strike": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-strike/-/extension-strike-3.14.0.tgz", "integrity": "sha512-R8BbAhnWpisBml6okMKl98hY4tJjedTTgyTkx8tPabIJ92nS9IURKEk3foWB9uHxdTOBUqTvVT+2ScDf9r6QHg==", @@ -6244,7 +5759,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-text": { + "node_modules/@tiptap/extension-text": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-text/-/extension-text-3.14.0.tgz", "integrity": "sha512-XlpnD87LQ7lLcDcBenHgzxv3uivQzPdVHM16CY4lXR4aKDIp2mxjPZr4twHT+cOnRQHc8VYpRgkEo6LLX6VylA==", @@ -6257,7 +5772,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extension-underline": { + "node_modules/@tiptap/extension-underline": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extension-underline/-/extension-underline-3.14.0.tgz", "integrity": "sha512-zmnWlsi2g/tMlThHby0Je9O+v24j4d+qcXF3nuzLUUaDsGCEtOyC9RzwITft59ViK+Nc2PD2W/J14rsB0j+qoQ==", @@ -6270,7 +5785,7 @@ "@tiptap/core": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/extensions": { + "node_modules/@tiptap/extensions": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/extensions/-/extensions-3.14.0.tgz", "integrity": "sha512-qQBVKqzU4ZVjRn8W0UbdfE4LaaIgcIWHOMrNnJ+PutrRzQ6ZzhmD/kRONvRWBfG9z3DU7pSKGwVYSR2hztsGuQ==", @@ -6285,7 +5800,7 @@ "@tiptap/pm": "^3.14.0" } }, - "node_modules/@tiptap/starter-kit/node_modules/@tiptap/pm": { + "node_modules/@tiptap/pm": { "version": "3.14.0", "resolved": "https://registry.npmjs.org/@tiptap/pm/-/pm-3.14.0.tgz", "integrity": "sha512-xrZmqI5jl4yMeAsu8p8gVP9S3An5h2MBi8BQHNnZmpyzkUrlpd40vlT6u13SWIqVi5ZWhBZ6U3rL7mkVLZuRKg==", @@ -6316,6 +5831,69 @@ "url": "https://github.com/sponsors/ueberdosis" } }, + "node_modules/@tiptap/react": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tiptap/react/-/react-3.14.0.tgz", + "integrity": "sha512-Eo/nLyKxHvnLIF4gI2WFhGJiVrqfA6XL9kismVG9NwBNF/NblMDmZZu6Z2SH/ONJQz2Egn7UBPNp3BMq/qZDcg==", + "license": "MIT", + "dependencies": { + "@types/use-sync-external-store": "^0.0.6", + "fast-equals": "^5.3.3", + "use-sync-external-store": "^1.4.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + }, + "optionalDependencies": { + "@tiptap/extension-bubble-menu": "^3.14.0", + "@tiptap/extension-floating-menu": "^3.14.0" + }, + "peerDependencies": { + "@tiptap/core": "^3.14.0", + "@tiptap/pm": "^3.14.0", + "@types/react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "@types/react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react": "^17.0.0 || ^18.0.0 || ^19.0.0", + "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" + } + }, + "node_modules/@tiptap/starter-kit": { + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.14.0.tgz", + "integrity": "sha512-fHsC4oDVzvMU9btg+IUmu/eqPquapjJ341qaNI7cCeSCKjjE6XJEN6WcONLAVId2OZUwML0IX1Jgl+6gJxU9Jw==", + "license": "MIT", + "dependencies": { + "@tiptap/core": "^3.14.0", + "@tiptap/extension-blockquote": "^3.14.0", + "@tiptap/extension-bold": "^3.14.0", + "@tiptap/extension-bullet-list": "^3.14.0", + "@tiptap/extension-code": "^3.14.0", + "@tiptap/extension-code-block": "^3.14.0", + "@tiptap/extension-document": "^3.14.0", + "@tiptap/extension-dropcursor": "^3.14.0", + "@tiptap/extension-gapcursor": "^3.14.0", + "@tiptap/extension-hard-break": "^3.14.0", + "@tiptap/extension-heading": "^3.14.0", + "@tiptap/extension-horizontal-rule": "^3.14.0", + "@tiptap/extension-italic": "^3.14.0", + "@tiptap/extension-link": "^3.14.0", + "@tiptap/extension-list": "^3.14.0", + "@tiptap/extension-list-item": "^3.14.0", + "@tiptap/extension-list-keymap": "^3.14.0", + "@tiptap/extension-ordered-list": "^3.14.0", + "@tiptap/extension-paragraph": "^3.14.0", + "@tiptap/extension-strike": "^3.14.0", + "@tiptap/extension-text": "^3.14.0", + "@tiptap/extension-underline": "^3.14.0", + "@tiptap/extensions": "^3.14.0", + "@tiptap/pm": "^3.14.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/ueberdosis" + } + }, "node_modules/@tiptap/y-tiptap": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/@tiptap/y-tiptap/-/y-tiptap-3.0.1.tgz", @@ -6437,40 +6015,6 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/@tldraw/editor/node_modules/@tiptap/react/node_modules/@tiptap/extension-bubble-menu": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.14.0.tgz", - "integrity": "sha512-nraHy+5jumT67J7hWrCuVwVTS2vNj4FpV5kO8epVySBmgEBr/7Pyi4w7mQA1VRVOMdjeN9iypbgQ2rKhpfaoTw==", - "license": "MIT", - "optional": true, - "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "node_modules/@tldraw/editor/node_modules/@tiptap/react/node_modules/@tiptap/extension-floating-menu": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.14.0.tgz", - "integrity": "sha512-+ErwDF74NzX4JV0nXMSIUT9V8FDdo85r0SaBZ8lb2NLmElaA3LDklcNV7SsoKlRcwsAXtFkqQbDwXLNGQLYSPQ==", - "license": "MIT", - "optional": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@floating-ui/dom": "^1.0.0", - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, "node_modules/@tldraw/editor/node_modules/idb": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/idb/-/idb-7.1.1.tgz", @@ -6555,6 +6099,7 @@ "version": "0.10.1", "resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz", "integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==", + "dev": true, "license": "MIT", "optional": true, "dependencies": { @@ -6576,9 +6121,9 @@ } }, "node_modules/@types/babel__generator": { - "version": "7.6.8", - "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.8.tgz", - "integrity": "sha512-ASsj+tpEDsEiFr1arWrlN6V3mdfjRMZt6LtK/Vp/kreFLnr5QH5+DhvD5nINYZXzwJvXeGq+05iUXcAzVrqWtw==", + "version": "7.27.0", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz", + "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==", "dev": true, "license": "MIT", "dependencies": { @@ -6597,23 +6142,24 @@ } }, "node_modules/@types/babel__traverse": { - "version": "7.20.6", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.20.6.tgz", - "integrity": "sha512-r1bzfrm0tomOI8g1SzvCaQHo6Lcv6zu0EA+W2kHrt8dyrHQxGzBBL4kdkzIS+jBMV+EYcMAEAqXqYaLJq5rOZg==", + "version": "7.28.0", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz", + "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==", "dev": true, "license": "MIT", "dependencies": { - "@babel/types": "^7.20.7" + "@babel/types": "^7.28.2" } }, "node_modules/@types/chai": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.2.tgz", - "integrity": "sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==", + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-5.2.3.tgz", + "integrity": "sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==", "dev": true, "license": "MIT", "dependencies": { - "@types/deep-eql": "*" + "@types/deep-eql": "*", + "assertion-error": "^2.0.1" } }, "node_modules/@types/core-js": { @@ -6633,6 +6179,7 @@ "version": "1.0.8", "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", + "dev": true, "license": "MIT" }, "node_modules/@types/linkify-it": { @@ -6642,9 +6189,9 @@ "license": "MIT" }, "node_modules/@types/lodash": { - "version": "4.17.16", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.16.tgz", - "integrity": "sha512-HX7Em5NYQAXKW+1T+FiuG27NGwzJfCX3s1GjOa7ujxZa52kjJLOr4FUxT+giF6Tgxv1e+/czV/iTtBw27WTU9g==", + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-FOvQ0YPD5NOfPgMzJihoT+Za5pdkDJWcbpuj1DjaKZIr/gxodQjY/uWEFlTNqW2ugXHUiL8lRQgw63dzKHZdeQ==", "dev": true, "license": "MIT" }, @@ -6678,7 +6225,7 @@ "version": "25.0.3", "resolved": "https://registry.npmjs.org/@types/node/-/node-25.0.3.tgz", "integrity": "sha512-W609buLVRVmeW693xKfzHeIV6nJGGz98uCPfeXI1ELMLXVeKYZ9m15fAMSaUPBHYLGFsVRcMmSCksQOrZV9BYA==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "undici-types": "~7.16.0" @@ -6907,9 +6454,9 @@ } }, "node_modules/agent-base": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.3.tgz", - "integrity": "sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==", + "version": "7.1.4", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-7.1.4.tgz", + "integrity": "sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==", "dev": true, "license": "MIT", "engines": { @@ -7018,9 +6565,9 @@ } }, "node_modules/baseline-browser-mapping": { - "version": "2.8.6", - "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.6.tgz", - "integrity": "sha512-wrH5NNqren/QMtKUEEJf7z86YjfqW/2uw3IL3/xpqZUC95SSVIFXYQeeGjL6FT/X68IROu6RMehZQS5foy2BXw==", + "version": "2.9.11", + "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.9.11.tgz", + "integrity": "sha512-Sg0xJUNDU1sJNGdfGWhVHX0kkZ+HWcvmVymJbj6NSgZZmW/8S9Y2HQ5euytnIgakgxN6papOAWiwDo1ctFDcoQ==", "dev": true, "license": "Apache-2.0", "bin": { @@ -7081,9 +6628,9 @@ } }, "node_modules/browserslist": { - "version": "4.26.2", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.2.tgz", - "integrity": "sha512-ECFzp6uFOSB+dcZ5BK/IBaGWssbSYBHvuMeMt3MMFyhI0Z8SqGgEkBLARgpRH3hutIgPVsALcMwbDrJqPxQ65A==", + "version": "4.28.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.28.1.tgz", + "integrity": "sha512-ZC5Bd0LgJXgwGqUknZY/vkUQ04r8NXnJZ3yYi4vDmSiZmC/pdSN0NbNRPxZpbtO4uAfDUAFffO8IZoM3Gj8IkA==", "dev": true, "funding": [ { @@ -7102,11 +6649,11 @@ "license": "MIT", "peer": true, "dependencies": { - "baseline-browser-mapping": "^2.8.3", - "caniuse-lite": "^1.0.30001741", - "electron-to-chromium": "^1.5.218", - "node-releases": "^2.0.21", - "update-browserslist-db": "^1.1.3" + "baseline-browser-mapping": "^2.9.0", + "caniuse-lite": "^1.0.30001759", + "electron-to-chromium": "^1.5.263", + "node-releases": "^2.0.27", + "update-browserslist-db": "^1.2.0" }, "bin": { "browserslist": "cli.js" @@ -7126,9 +6673,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001745", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001745.tgz", - "integrity": "sha512-ywt6i8FzvdgrrrGbr1jZVObnVv6adj+0if2/omv9cmR2oiZs30zL4DIyaptKcbOrBdOIc74QTMoJvSE2QHh5UQ==", + "version": "1.0.30001761", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001761.tgz", + "integrity": "sha512-JF9ptu1vP2coz98+5051jZ4PwQgd2ni8A+gYSN7EA7dPKIMf0pDlSUxhdmVOaV3/fYK5uWBkgSXJaRLr4+3A6g==", "dev": true, "funding": [ { @@ -7194,9 +6741,9 @@ } }, "node_modules/chardet": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.0.tgz", - "integrity": "sha512-bNFETTG/pM5ryzQ9Ad0lJOTa6HWD/YsScAR3EnCPZRPlQh77JocYktSHOUHelyhm8IARL+o4c4F1bP5KVOjiRA==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-2.1.1.tgz", + "integrity": "sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==", "dev": true, "license": "MIT" }, @@ -7254,46 +6801,6 @@ "node": ">=12" } }, - "node_modules/cliui/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/cliui/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cliui/node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, "node_modules/cobe": { "version": "0.6.5", "resolved": "https://registry.npmjs.org/cobe/-/cobe-0.6.5.tgz", @@ -7479,63 +6986,26 @@ "@asamuzakjp/css-color": "^4.1.1", "@csstools/css-syntax-patches-for-csstree": "^1.0.21", "css-tree": "^3.1.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/csstype": { - "version": "3.2.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", - "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", - "license": "MIT" - }, - "node_modules/data-urls": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", - "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", - "dev": true, - "license": "MIT", - "dependencies": { - "whatwg-mimetype": "^4.0.0", - "whatwg-url": "^15.0.0" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/data-urls/node_modules/tr46": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/data-urls/node_modules/webidl-conversions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", - "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", - "dev": true, - "license": "BSD-2-Clause", + }, "engines": { "node": ">=20" } }, - "node_modules/data-urls/node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", + "node_modules/csstype": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.2.3.tgz", + "integrity": "sha512-z1HGKcYy2xA8AGQfwrn0PAy+PB7X/GSj3UVJW9qKyn43xWa+gl5nXmU4qqLMRzWVLFC8KusUX8T/0kCiOYpAIQ==", + "license": "MIT" + }, + "node_modules/data-urls": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-6.0.0.tgz", + "integrity": "sha512-BnBS08aLUM+DKamupXs3w2tJJoqU+AkaE/+6vQxi/G/DPmIZFJJp9Dkb1kM03AZx8ADehDUZgsNxju3mPXZYIA==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" + "whatwg-mimetype": "^4.0.0", + "whatwg-url": "^15.0.0" }, "engines": { "node": ">=20" @@ -7601,9 +7071,10 @@ } }, "node_modules/detect-libc": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.1.tgz", - "integrity": "sha512-ecqj/sy1jcK1uWrwpR67UhYrIFQ+5WlGxth34WquCbamhFA6hkkwiu37o6J5xCHdo1oixJRfVRw+ywV+Hq/0Aw==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz", + "integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==", + "dev": true, "license": "Apache-2.0", "engines": { "node": ">=8" @@ -7616,9 +7087,9 @@ "license": "MIT" }, "node_modules/devalue": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.3.2.tgz", - "integrity": "sha512-UDsjUbpQn9kvm68slnrs+mfxwFkIflOhkanmyabZ8zOYk8SMEIbJ3TK+88g70hSIeytu4y18f0z/hYHMTrXIWw==", + "version": "5.6.1", + "resolved": "https://registry.npmjs.org/devalue/-/devalue-5.6.1.tgz", + "integrity": "sha512-jDwizj+IlEZBunHcOuuFVBnIMPAEHvTsJj0BcIp94xYguLRVBcXO853px/MyIJvbVzWdsGvrRweIUWJw8hBP7A==", "dev": true, "license": "MIT" }, @@ -7676,12 +7147,19 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.5.223", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.223.tgz", - "integrity": "sha512-qKm55ic6nbEmagFlTFczML33rF90aU+WtrJ9MdTCThrcvDNdUHN4p6QfVN78U06ZmguqXIyMPyYhw2TrbDUwPQ==", + "version": "1.5.267", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.267.tgz", + "integrity": "sha512-0Drusm6MVRXSOJpGbaSVgcQsuB4hEkMpHXaVstcPmhu5LIedxs1xNK/nIxmQIU/RPC0+1/o0AVZfBTkTNJOdUw==", "dev": true, "license": "ISC" }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true, + "license": "MIT" + }, "node_modules/empathic": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/empathic/-/empathic-2.0.0.tgz", @@ -7693,9 +7171,9 @@ } }, "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "version": "1.4.5", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.5.tgz", + "integrity": "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==", "dev": true, "license": "MIT", "dependencies": { @@ -7706,6 +7184,7 @@ "version": "5.18.4", "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.18.4.tgz", "integrity": "sha512-LgQMM4WXU3QI+SYgEc2liRgznaD5ojbmY3sb8LxyguVkIg5FxdpTkvk72te2R38/TGKxH634oLxXRGY6d7AP+Q==", + "dev": true, "license": "MIT", "dependencies": { "graceful-fs": "^4.2.4", @@ -7730,9 +7209,10 @@ } }, "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", + "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", + "dev": true, "license": "BSD-2-Clause", "engines": { "node": ">=0.12" @@ -7762,6 +7242,7 @@ "version": "0.25.0", "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz", "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "bin": { @@ -7856,6 +7337,98 @@ "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "license": "MIT" }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dev": true, + "license": "MIT", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/execa/node_modules/cross-spawn": { + "version": "6.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", + "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", + "dev": true, + "license": "MIT", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/execa/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, + "node_modules/execa/node_modules/semver": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", + "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/execa/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/execa/node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dev": true, + "license": "ISC", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, "node_modules/exit-hook": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/exit-hook/-/exit-hook-2.2.1.tgz", @@ -7870,9 +7443,9 @@ } }, "node_modules/expect-type": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz", - "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.3.0.tgz", + "integrity": "sha512-knvyeauYhqjOYvQ66MznSMs83wmHrCycNEN6Ao+2AeYEfxUIkuiVxdEa1qlGEPK+We3n0THiDciYSsCcgW/DoA==", "dev": true, "license": "Apache-2.0", "engines": { @@ -7928,14 +7501,6 @@ "reusify": "^1.0.4" } }, - "node_modules/fflate": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/fflate/-/fflate-0.8.2.tgz", - "integrity": "sha512-cPJU47OaAoCbg0pBvzsgpTPhmhqI5eJjh/JIu8tPj5q+T7iLvW/JAYUqmE7KOB4R1ZyEhzBaIQpQpardBF5z8A==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/fill-range": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", @@ -7991,6 +7556,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", + "dev": true, "hasInstallScript": true, "license": "MIT", "optional": true, @@ -8040,11 +7606,37 @@ "node": ">=6" } }, + "node_modules/get-port": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/get-port/-/get-port-7.1.0.tgz", + "integrity": "sha512-QB9NKEeDg3xxVwCCwJQ9+xycaz6pBB6iQ76wiWMl1927n0Kir6alPiP+yuiICLLU4jpMe08dXfpebuQppFA2zw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dev": true, + "license": "MIT", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/get-tsconfig": { "version": "4.13.0", "resolved": "https://registry.npmjs.org/get-tsconfig/-/get-tsconfig-4.13.0.tgz", "integrity": "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ==", - "devOptional": true, + "dev": true, "license": "MIT", "dependencies": { "resolve-pkg-maps": "^1.0.0" @@ -8098,6 +7690,7 @@ "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", + "dev": true, "license": "ISC" }, "node_modules/has-flag": { @@ -8144,9 +7737,9 @@ "license": "MIT" }, "node_modules/hotkeys-js": { - "version": "3.13.9", - "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.9.tgz", - "integrity": "sha512-3TRCj9u9KUH6cKo25w4KIdBfdBfNRjfUwrljCLDC2XhmPDG0SjAZFcFZekpUZFmXzfYoGhFDcdx2gX/vUVtztQ==", + "version": "3.13.15", + "resolved": "https://registry.npmjs.org/hotkeys-js/-/hotkeys-js-3.13.15.tgz", + "integrity": "sha512-gHh8a/cPTCpanraePpjRxyIlxDFrIhYqjuh01UHWEwDpglJKCnvLW8kqSx5gQtOuSsJogNZXLhOdbSExpgUiqg==", "license": "MIT", "funding": { "url": "https://jaywcjlove.github.io/#/sponsor" @@ -8194,15 +7787,32 @@ } }, "node_modules/human-id": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.1.1.tgz", - "integrity": "sha512-3gKm/gCSUipeLsRYZbbdA1BD83lBoWUkZ7G9VFrhWPAU76KwYo5KR8V28bpoPm/ygy0x5/GCbpRQdY7VLYCoIg==", + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/human-id/-/human-id-4.1.3.tgz", + "integrity": "sha512-tsYlhAYpjCKa//8rXZ9DqKEawhPoSytweBC2eNvcaDK+57RZLHGqNs3PZTQO6yekLFSuvA6AlnAfrw1uBvtb+Q==", "dev": true, "license": "MIT", "bin": { "human-id": "dist/cli.js" } }, + "node_modules/iconv-lite": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.7.1.tgz", + "integrity": "sha512-2Tth85cXwGFHfvRgZWszZSvdo+0Xsqmw8k8ZwxScfcBneNUraK+dxRxRm24nszx80Y0TVio8kKLt5sLE7ZCLlw==", + "dev": true, + "license": "MIT", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + }, + "engines": { + "node": ">=0.10.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/express" + } + }, "node_modules/idb": { "version": "8.0.3", "resolved": "https://registry.npmjs.org/idb/-/idb-8.0.3.tgz", @@ -8324,6 +7934,16 @@ "dev": true, "license": "MIT" }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/is-subdir": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/is-subdir/-/is-subdir-1.2.0.tgz", @@ -8368,6 +7988,7 @@ "version": "2.6.1", "resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz", "integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==", + "dev": true, "license": "MIT", "bin": { "jiti": "lib/jiti-cli.mjs" @@ -8398,6 +8019,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "dev": true, "license": "MIT" }, "node_modules/js-yaml": { @@ -8453,43 +8075,6 @@ } } }, - "node_modules/jsdom/node_modules/tr46": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", - "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", - "dev": true, - "license": "MIT", - "dependencies": { - "punycode": "^2.3.1" - }, - "engines": { - "node": ">=20" - } - }, - "node_modules/jsdom/node_modules/webidl-conversions": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", - "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=20" - } - }, - "node_modules/jsdom/node_modules/whatwg-url": { - "version": "15.1.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", - "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", - "dev": true, - "license": "MIT", - "dependencies": { - "tr46": "^6.0.0", - "webidl-conversions": "^8.0.0" - }, - "engines": { - "node": ">=20" - } - }, "node_modules/jsdom/node_modules/ws": { "version": "8.18.3", "resolved": "https://registry.npmjs.org/ws/-/ws-8.18.3.tgz", @@ -8589,6 +8174,7 @@ "version": "1.30.2", "resolved": "https://registry.npmjs.org/lightningcss/-/lightningcss-1.30.2.tgz", "integrity": "sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==", + "dev": true, "license": "MPL-2.0", "dependencies": { "detect-libc": "^2.0.3" @@ -8621,6 +8207,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8641,6 +8228,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8661,6 +8249,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8681,6 +8270,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8701,6 +8291,7 @@ "cpu": [ "arm" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8721,6 +8312,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8741,6 +8333,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8761,6 +8354,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8781,6 +8375,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8801,6 +8396,7 @@ "cpu": [ "arm64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8821,6 +8417,7 @@ "cpu": [ "x64" ], + "dev": true, "license": "MPL-2.0", "optional": true, "os": [ @@ -8900,18 +8497,6 @@ "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", "license": "MIT" }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "license": "MIT", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, "node_modules/loupe": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz", @@ -8948,13 +8533,13 @@ } }, "node_modules/magic-string": { - "version": "0.30.17", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.17.tgz", - "integrity": "sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA==", + "version": "0.30.21", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.21.tgz", + "integrity": "sha512-vd2F4YUyEXKGcLHoq+TEyCjxueSeHnFxyyjNp80yg0XV4vUhnDer/lvvlqM/arB5bXQN5K2/3oinyCRyx8T2CQ==", "dev": true, "license": "MIT", "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" + "@jridgewell/sourcemap-codec": "^1.5.5" } }, "node_modules/markdown-it": { @@ -8971,7 +8556,31 @@ "uc.micro": "^2.1.0" }, "bin": { - "markdown-it": "bin/markdown-it.mjs" + "markdown-it": "bin/markdown-it.mjs" + } + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "license": "BSD-2-Clause", + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/marked": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", + "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", + "license": "MIT", + "bin": { + "marked": "bin/marked.js" + }, + "engines": { + "node": ">= 18" } }, "node_modules/mdn-data": { @@ -9076,23 +8685,12 @@ "resolved": "https://registry.npmjs.org/monaco-editor/-/monaco-editor-0.55.1.tgz", "integrity": "sha512-jz4x+TJNFHwHtwuV9vA9rMujcZRb0CEilTEwG2rRSpe/A7Jdkuj8xPKttCgOh+v/lkHy7HsZ64oj+q3xoAFl9A==", "license": "MIT", + "peer": true, "dependencies": { "dompurify": "3.2.7", "marked": "14.0.0" } }, - "node_modules/monaco-editor/node_modules/marked": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-14.0.0.tgz", - "integrity": "sha512-uIj4+faQ+MgHgwUW1l2PsPglZLOLOT1uErt06dAPtx2kjteLAkbsd/0FiYg/MGS+i7ZKLb7w2WClxHkzOOuryQ==", - "license": "MIT", - "bin": { - "marked": "bin/marked.js" - }, - "engines": { - "node": ">= 18" - } - }, "node_modules/mri": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", @@ -9156,13 +8754,61 @@ } } }, + "node_modules/node-fetch/node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "dev": true, + "license": "MIT" + }, + "node_modules/node-fetch/node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "dev": true, + "license": "BSD-2-Clause" + }, + "node_modules/node-fetch/node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dev": true, + "license": "MIT", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, "node_modules/node-releases": { - "version": "2.0.21", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.21.tgz", - "integrity": "sha512-5b0pgg78U3hwXkCM8Z9b2FJdPZlr9Psr9V2gQPESdGHqbntyFJKFW4r5TeWGFzafGY3hzs1JC62VEQMbl1JFkw==", + "version": "2.0.27", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.27.tgz", + "integrity": "sha512-nmh3lCkYZ3grZvqcCH+fjmQ7X+H0OeZgP40OierEaAptX4XofMh5kwNbWh7lBduUzCcV/8kZ+NDLCwm2iorIlA==", "dev": true, "license": "MIT" }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/npm-run-path/node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/obug": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/obug/-/obug-2.1.1.tgz", @@ -9292,19 +8938,6 @@ "url": "https://github.com/inikulin/parse5?sponsor=1" } }, - "node_modules/parse5/node_modules/entities": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-6.0.1.tgz", - "integrity": "sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/partyagent": { "resolved": "packages/partyagent", "link": true @@ -9428,6 +9061,7 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", + "dev": true, "license": "ISC" }, "node_modules/picomatch": { @@ -9457,6 +9091,7 @@ "version": "8.5.6", "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", + "dev": true, "funding": [ { "type": "opencollective", @@ -9485,6 +9120,7 @@ "version": "3.3.11", "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", + "dev": true, "funding": [ { "type": "github", @@ -9544,9 +9180,9 @@ } }, "node_modules/prosemirror-commands": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.0.tgz", - "integrity": "sha512-6toodS4R/Aah5pdsrIwnTYPEjW70SlO5a66oo5Kk+CIrgJz3ukOoS+FYDGqvQlAX5PxoGWDX1oD++tn5X3pyRA==", + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/prosemirror-commands/-/prosemirror-commands-1.7.1.tgz", + "integrity": "sha512-rT7qZnQtx5c0/y/KlYaGvtG411S97UaL6gdp6RIZ23DLHanMYLyfGBV5DtSnZdthQql7W+lEVbpSfwtO8T+L2w==", "license": "MIT", "dependencies": { "prosemirror-model": "^1.0.0", @@ -9555,9 +9191,9 @@ } }, "node_modules/prosemirror-dropcursor": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.1.tgz", - "integrity": "sha512-M30WJdJZLyXHi3N8vxN6Zh5O8ZBbQCz0gURTfPmTIBNQ5pxrdU7A58QkNqfa98YEjSAL1HUyyU34f6Pm5xBSGw==", + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/prosemirror-dropcursor/-/prosemirror-dropcursor-1.8.2.tgz", + "integrity": "sha512-CCk6Gyx9+Tt2sbYk5NK0nB1ukHi2ryaRgadV/LvyNuO3ena1payM2z6Cg0vO1ebK8cxbzo41ku2DE5Axj1Zuiw==", "license": "MIT", "dependencies": { "prosemirror-state": "^1.0.0", @@ -9566,9 +9202,9 @@ } }, "node_modules/prosemirror-gapcursor": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.3.2.tgz", - "integrity": "sha512-wtjswVBd2vaQRrnYZaBCbyDqr232Ed4p2QPtRIUK5FuqHYKGWkEwl08oQM4Tw7DOR0FsasARV5uJFvMZWxdNxQ==", + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/prosemirror-gapcursor/-/prosemirror-gapcursor-1.4.0.tgz", + "integrity": "sha512-z00qvurSdCEWUIulij/isHaqu4uLS8r/Fi61IbjdIPJEonQgggbJsLnstW7Lgdk4zQ68/yr6B6bf7sJXowIgdQ==", "license": "MIT", "dependencies": { "prosemirror-keymap": "^1.0.0", @@ -9578,9 +9214,9 @@ } }, "node_modules/prosemirror-history": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.4.1.tgz", - "integrity": "sha512-2JZD8z2JviJrboD9cPuX/Sv/1ChFng+xh2tChQ2X4bB2HeK+rra/bmJ3xGntCcjhOqIzSDG6Id7e8RJ9QPXLEQ==", + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/prosemirror-history/-/prosemirror-history-1.5.0.tgz", + "integrity": "sha512-zlzTiH01eKA55UAf1MEjtssJeHnGxO0j4K4Dpx+gnmX9n+SHNlDqI2oO1Kv1iPN5B1dm5fsljCfqKF9nFL6HRg==", "license": "MIT", "dependencies": { "prosemirror-state": "^1.2.2", @@ -9590,9 +9226,9 @@ } }, "node_modules/prosemirror-inputrules": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.4.0.tgz", - "integrity": "sha512-6ygpPRuTJ2lcOXs9JkefieMst63wVJBgHZGl5QOytN7oSZs3Co/BYbc3Yx9zm9H37Bxw8kVzCnDsihsVsL4yEg==", + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/prosemirror-inputrules/-/prosemirror-inputrules-1.5.1.tgz", + "integrity": "sha512-7wj4uMjKaXWAQ1CDgxNzNtR9AlsuwzHfdFH1ygEHA2KHF2DOEaXl1CJfNPAKCg9qNEh4rum975QLaCiQPyY6Fw==", "license": "MIT", "dependencies": { "prosemirror-state": "^1.0.0", @@ -9600,9 +9236,9 @@ } }, "node_modules/prosemirror-keymap": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.2.tgz", - "integrity": "sha512-EAlXoksqC6Vbocqc0GtzCruZEzYgrn+iiGnNjsJsH4mrnIGex4qbLdWWNza3AW5W36ZRrlBID0eM6bdKH4OStQ==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/prosemirror-keymap/-/prosemirror-keymap-1.2.3.tgz", + "integrity": "sha512-4HucRlpiLd1IPQQXNqeo81BGtkY8Ai5smHhKW9jjPKRc2wQIxksg7Hl1tTI2IfT2B/LgX6bfYvXxEpJl7aKYKw==", "license": "MIT", "dependencies": { "prosemirror-state": "^1.0.0", @@ -9610,20 +9246,20 @@ } }, "node_modules/prosemirror-markdown": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.1.tgz", - "integrity": "sha512-Sl+oMfMtAjWtlcZoj/5L/Q39MpEnVZ840Xo330WJWUvgyhNmLBLN7MsHn07s53nG/KImevWHSE6fEj4q/GihHw==", + "version": "1.13.2", + "resolved": "https://registry.npmjs.org/prosemirror-markdown/-/prosemirror-markdown-1.13.2.tgz", + "integrity": "sha512-FPD9rHPdA9fqzNmIIDhhnYQ6WgNoSWX9StUZ8LEKapaXU9i6XgykaHKhp6XMyXlOWetmaFgGDS/nu/w9/vUc5g==", "license": "MIT", "dependencies": { "@types/markdown-it": "^14.0.0", "markdown-it": "^14.0.0", - "prosemirror-model": "^1.20.0" + "prosemirror-model": "^1.25.0" } }, "node_modules/prosemirror-menu": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.4.tgz", - "integrity": "sha512-S/bXlc0ODQup6aiBbWVsX/eM+xJgCTAfMq/nLqaO5ID/am4wS0tTCIkzwytmao7ypEtjj39i7YbJjAgO20mIqA==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/prosemirror-menu/-/prosemirror-menu-1.2.5.tgz", + "integrity": "sha512-qwXzynnpBIeg1D7BAtjOusR+81xCp53j7iWu/IargiRZqRjGIlQuu1f3jFi+ehrHhWMLoyOQTSRx/IWZJqOYtQ==", "license": "MIT", "dependencies": { "crelt": "^1.0.0", @@ -9633,9 +9269,9 @@ } }, "node_modules/prosemirror-model": { - "version": "1.25.4", - "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.25.4.tgz", - "integrity": "sha512-PIM7E43PBxKce8OQeezAs9j4TP+5yDpZVbuurd1h5phUxEKIu+G2a+EUZzIC5nS1mJktDJWzbqS23n1tsAf5QA==", + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/prosemirror-model/-/prosemirror-model-1.22.2.tgz", + "integrity": "sha512-I4lS7HHIW47D0Xv/gWmi4iUWcQIDYaJKd8Hk4+lcSps+553FlQrhmxtItpEvTr75iAruhzVShVp6WUwsT6Boww==", "license": "MIT", "peer": true, "dependencies": { @@ -9643,12 +9279,12 @@ } }, "node_modules/prosemirror-schema-basic": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.3.tgz", - "integrity": "sha512-h+H0OQwZVqMon1PNn0AG9cTfx513zgIG2DY00eJ00Yvgb3UD+GQ/VlWW5rcaxacpCGT1Yx8nuhwXk4+QbXUfJA==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/prosemirror-schema-basic/-/prosemirror-schema-basic-1.2.4.tgz", + "integrity": "sha512-ELxP4TlX3yr2v5rM7Sb70SqStq5NvI15c0j9j/gjsrO5vaw+fnnpovCLEGIcpeGfifkuqJwl4fon6b+KdrODYQ==", "license": "MIT", "dependencies": { - "prosemirror-model": "^1.19.0" + "prosemirror-model": "^1.25.0" } }, "node_modules/prosemirror-schema-list": { @@ -9663,9 +9299,9 @@ } }, "node_modules/prosemirror-state": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.3.tgz", - "integrity": "sha512-goFKORVbvPuAQaXhpbemJFRKJ2aixr+AZMGiquiqKxaucC6hlpHNZHWgz5R7dS4roHiwq9vDctE//CZ++o0W1Q==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/prosemirror-state/-/prosemirror-state-1.4.4.tgz", + "integrity": "sha512-6jiYHH2CIGbCfnxdHbXZ12gySFY/fz/ulZE333G6bPqIZ4F+TXo9ifiR86nAHpWnfoNjOb3o5ESi7J8Uz1jXHw==", "license": "MIT", "peer": true, "dependencies": { @@ -9675,16 +9311,16 @@ } }, "node_modules/prosemirror-tables": { - "version": "1.6.4", - "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.6.4.tgz", - "integrity": "sha512-TkDY3Gw52gRFRfRn2f4wJv5WOgAOXLJA2CQJYIJ5+kdFbfj3acR4JUW6LX2e1hiEBiUwvEhzH5a3cZ5YSztpIA==", + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/prosemirror-tables/-/prosemirror-tables-1.8.3.tgz", + "integrity": "sha512-wbqCR/RlRPRe41a4LFtmhKElzBEfBTdtAYWNIGHM6X2e24NN/MTNUKyXjjphfAfdQce37Kh/5yf765mLPYDe7Q==", "license": "MIT", "dependencies": { - "prosemirror-keymap": "^1.2.2", - "prosemirror-model": "^1.24.1", - "prosemirror-state": "^1.4.3", - "prosemirror-transform": "^1.10.2", - "prosemirror-view": "^1.37.2" + "prosemirror-keymap": "^1.2.3", + "prosemirror-model": "^1.25.4", + "prosemirror-state": "^1.4.4", + "prosemirror-transform": "^1.10.5", + "prosemirror-view": "^1.41.4" } }, "node_modules/prosemirror-trailing-node": { @@ -9703,18 +9339,18 @@ } }, "node_modules/prosemirror-transform": { - "version": "1.10.3", - "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.3.tgz", - "integrity": "sha512-Nhh/+1kZGRINbEHmVu39oynhcap4hWTs/BlU7NnxWj3+l0qi8I1mu67v6mMdEe/ltD8hHvU4FV6PHiCw2VSpMw==", + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/prosemirror-transform/-/prosemirror-transform-1.10.5.tgz", + "integrity": "sha512-RPDQCxIDhIBb1o36xxwsaeAvivO8VLJcgBtzmOwQ64bMtsVFh5SSuJ6dWSxO1UsHTiTXPCgQm3PDJt7p6IOLbw==", "license": "MIT", "dependencies": { "prosemirror-model": "^1.21.0" } }, "node_modules/prosemirror-view": { - "version": "1.38.1", - "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.38.1.tgz", - "integrity": "sha512-4FH/uM1A4PNyrxXbD+RAbAsf0d/mM0D/wAKSVVWK7o0A9Q/oOXJBrw786mBf2Vnrs/Edly6dH6Z2gsb7zWwaUw==", + "version": "1.41.4", + "resolved": "https://registry.npmjs.org/prosemirror-view/-/prosemirror-view-1.41.4.tgz", + "integrity": "sha512-WkKgnyjNncri03Gjaz3IFWvCAE94XoiEgvtr0/r2Xw7R8/IjK3sKLSiDoCHWcsXSAinVaKlGRZDvMCsF1kbzjA==", "license": "MIT", "peer": true, "dependencies": { @@ -9723,6 +9359,17 @@ "prosemirror-transform": "^1.1.0" } }, + "node_modules/pump": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.3.tgz", + "integrity": "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==", + "dev": true, + "license": "MIT", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, "node_modules/punycode": { "version": "2.3.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", @@ -9743,9 +9390,9 @@ } }, "node_modules/quansync": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.8.tgz", - "integrity": "sha512-4+saucphJMazjt7iOM27mbFCk+D9dd/zmgMDCzRZ8MEoBfYp7lAvoN38et/phRQF6wOPMy/OROBGgoWeSKyluA==", + "version": "0.2.11", + "resolved": "https://registry.npmjs.org/quansync/-/quansync-0.2.11.tgz", + "integrity": "sha512-AifT7QEbW9Nri4tAwR5M/uzpBuqfZf+zwaEM/QkzEjj7NBuFD2rBuy0K3dE+8wltbezDV7JMA0WfnCPYRSYbXA==", "dev": true, "funding": [ { @@ -9858,39 +9505,26 @@ } }, "node_modules/react": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", - "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react/-/react-19.2.3.tgz", + "integrity": "sha512-Ku/hhYbVjOQnXDZFv2+RibmLFGwFdeeKHFcOTlrt7xplBnya5OGn/hIRDsqDiSUcfORsDC7MPxwork8jBwsIWA==", "license": "MIT", "peer": true, - "dependencies": { - "loose-envify": "^1.1.0" - }, "engines": { "node": ">=0.10.0" } }, "node_modules/react-dom": { - "version": "18.3.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", - "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "version": "19.2.3", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.2.3.tgz", + "integrity": "sha512-yELu4WmLPw5Mr/lmeEpox5rw3RETacE++JgHqQzd2dg+YbJuat3jH4ingc+WPZhxaoFzdv9y33G+F7Nl5O0GBg==", "license": "MIT", "peer": true, "dependencies": { - "loose-envify": "^1.1.0", - "scheduler": "^0.23.2" + "scheduler": "^0.27.0" }, "peerDependencies": { - "react": "^18.3.1" - } - }, - "node_modules/react-dom/node_modules/scheduler": { - "version": "0.23.2", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", - "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", - "license": "MIT", - "dependencies": { - "loose-envify": "^1.1.0" + "react": "^19.2.3" } }, "node_modules/react-error-boundary": { @@ -9916,9 +9550,9 @@ } }, "node_modules/react-remove-scroll": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.1.tgz", - "integrity": "sha512-HpMh8+oahmIdOuS5aFKKY6Pyog+FNaZV/XyJOq7b4YFwsFHe5yYfdbIalI4k3vU2nSDql7YskmUseHsRrJqIPA==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/react-remove-scroll/-/react-remove-scroll-2.7.2.tgz", + "integrity": "sha512-Iqb9NjCCTt6Hf+vOdNIZGdTiH1QSqr27H/Ek9sv/a97gfueI/5h1s3yRi1nngzMUaOOToin5dI1dXKdXiF+u0Q==", "license": "MIT", "dependencies": { "react-remove-scroll-bar": "^2.3.7", @@ -10036,12 +9670,6 @@ "node": ">= 0.10" } }, - "node_modules/regenerator-runtime": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz", - "integrity": "sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw==", - "license": "MIT" - }, "node_modules/require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", @@ -10063,13 +9691,13 @@ } }, "node_modules/resolve": { - "version": "1.22.10", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz", - "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==", + "version": "1.22.11", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.11.tgz", + "integrity": "sha512-RfqAvLnMl313r7c9oclB1HhUEAezcpLjz95wFH4LVuhk9JF/r22qmVP9AMmOU4vMX7Q8pN8jwNg/CSpdFnMjTQ==", "dev": true, "license": "MIT", "dependencies": { - "is-core-module": "^2.16.0", + "is-core-module": "^2.16.1", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -10097,7 +9725,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/resolve-pkg-maps/-/resolve-pkg-maps-1.0.0.tgz", "integrity": "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw==", - "devOptional": true, + "dev": true, "license": "MIT", "funding": { "url": "https://github.com/privatenumber/resolve-pkg-maps?sponsor=1" @@ -10209,9 +9837,10 @@ "license": "MIT" }, "node_modules/rollup": { - "version": "4.52.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.2.tgz", - "integrity": "sha512-I25/2QgoROE1vYV+NQ1En9T9UFB9Cmfm2CJ83zZOlaDpvz29wGQSZXWKw7MiNXau7wYgB/T9fVIdIuEQ+KbiiA==", + "version": "4.54.0", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.54.0.tgz", + "integrity": "sha512-3nk8Y3a9Ea8szgKhinMlGMhGMw89mqule3KWczxhIzqudyHdCIOHw8WJlj/r329fACjKLEh13ZSk7oE22kyeIw==", + "dev": true, "license": "MIT", "dependencies": { "@types/estree": "1.0.8" @@ -10224,28 +9853,28 @@ "npm": ">=8.0.0" }, "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.52.2", - "@rollup/rollup-android-arm64": "4.52.2", - "@rollup/rollup-darwin-arm64": "4.52.2", - "@rollup/rollup-darwin-x64": "4.52.2", - "@rollup/rollup-freebsd-arm64": "4.52.2", - "@rollup/rollup-freebsd-x64": "4.52.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.52.2", - "@rollup/rollup-linux-arm-musleabihf": "4.52.2", - "@rollup/rollup-linux-arm64-gnu": "4.52.2", - "@rollup/rollup-linux-arm64-musl": "4.52.2", - "@rollup/rollup-linux-loong64-gnu": "4.52.2", - "@rollup/rollup-linux-ppc64-gnu": "4.52.2", - "@rollup/rollup-linux-riscv64-gnu": "4.52.2", - "@rollup/rollup-linux-riscv64-musl": "4.52.2", - "@rollup/rollup-linux-s390x-gnu": "4.52.2", - "@rollup/rollup-linux-x64-gnu": "4.52.2", - "@rollup/rollup-linux-x64-musl": "4.52.2", - "@rollup/rollup-openharmony-arm64": "4.52.2", - "@rollup/rollup-win32-arm64-msvc": "4.52.2", - "@rollup/rollup-win32-ia32-msvc": "4.52.2", - "@rollup/rollup-win32-x64-gnu": "4.52.2", - "@rollup/rollup-win32-x64-msvc": "4.52.2", + "@rollup/rollup-android-arm-eabi": "4.54.0", + "@rollup/rollup-android-arm64": "4.54.0", + "@rollup/rollup-darwin-arm64": "4.54.0", + "@rollup/rollup-darwin-x64": "4.54.0", + "@rollup/rollup-freebsd-arm64": "4.54.0", + "@rollup/rollup-freebsd-x64": "4.54.0", + "@rollup/rollup-linux-arm-gnueabihf": "4.54.0", + "@rollup/rollup-linux-arm-musleabihf": "4.54.0", + "@rollup/rollup-linux-arm64-gnu": "4.54.0", + "@rollup/rollup-linux-arm64-musl": "4.54.0", + "@rollup/rollup-linux-loong64-gnu": "4.54.0", + "@rollup/rollup-linux-ppc64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-gnu": "4.54.0", + "@rollup/rollup-linux-riscv64-musl": "4.54.0", + "@rollup/rollup-linux-s390x-gnu": "4.54.0", + "@rollup/rollup-linux-x64-gnu": "4.54.0", + "@rollup/rollup-linux-x64-musl": "4.54.0", + "@rollup/rollup-openharmony-arm64": "4.54.0", + "@rollup/rollup-win32-arm64-msvc": "4.54.0", + "@rollup/rollup-win32-ia32-msvc": "4.54.0", + "@rollup/rollup-win32-x64-gnu": "4.54.0", + "@rollup/rollup-win32-x64-msvc": "4.54.0", "fsevents": "~2.3.2" } }, @@ -10308,6 +9937,12 @@ "node": ">=v12.22.7" } }, + "node_modules/scheduler": { + "version": "0.27.0", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.27.0.tgz", + "integrity": "sha512-eNv+WrVbKu1f3vbYJT/xtiF5syA5HPIMtf9IgY/nKg0sWqzAUEvqY/xm7OcZc/qafLx/iO9FgOmeSAp4v5ti/Q==", + "license": "MIT" + }, "node_modules/semver": { "version": "7.7.3", "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz", @@ -10407,159 +10042,13 @@ "execa": "^1.0.0", "fast-glob": "^3.3.2", "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=18" - } - }, - "node_modules/shelljs/node_modules/cross-spawn": { - "version": "6.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.6.tgz", - "integrity": "sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==", - "dev": true, - "license": "MIT", - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/shelljs/node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "license": "MIT", - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/shelljs/node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "license": "MIT", - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/shelljs/node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha512-uQPm8kcs47jx38atAcWTVxyltQYoPT68y9aWYdV6yWXSyW8mzSat0TL6CiWdZeCdF3KrAvpVtnHbTv4RN+rqdQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs/node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shelljs/node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/shelljs/node_modules/pump": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.2.tgz", - "integrity": "sha512-tUPXtzlGM8FE3P0ZL6DVs/3P58k9nk8/jZeQCurTJylQA8qFYzHFfhBJkuqyE0FifOsQ0uKWekiZ5g8wtr28cw==", - "dev": true, - "license": "MIT", - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/shelljs/node_modules/semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/shelljs/node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs/node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shelljs/node_modules/signal-exit": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", - "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", - "dev": true, - "license": "ISC" - }, - "node_modules/shelljs/node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" + "rechoir": "^0.6.2" }, "bin": { - "which": "bin/which" + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=18" } }, "node_modules/sherif": { @@ -10719,17 +10208,11 @@ "license": "ISC" }, "node_modules/signal-exit": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", - "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true, - "license": "ISC", - "engines": { - "node": ">=14" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } + "license": "ISC" }, "node_modules/simple-swizzle": { "version": "0.2.4", @@ -10755,6 +10238,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", + "dev": true, "license": "BSD-3-Clause", "engines": { "node": ">=0.10.0" @@ -10771,6 +10255,19 @@ "signal-exit": "^4.0.1" } }, + "node_modules/spawndamnit/node_modules/signal-exit": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz", + "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==", + "dev": true, + "license": "ISC", + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -10786,9 +10283,9 @@ "license": "MIT" }, "node_modules/std-env": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz", - "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==", + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.10.0.tgz", + "integrity": "sha512-5GS12FdOZNliM5mAOxFRg7Ir0pWz8MdpYm6AY6VPkGpbA7ZzmbzNcBJQ0GPvvyWgcY7QAhCgf9Uy89I03faLkg==", "dev": true, "license": "MIT" }, @@ -10803,6 +10300,21 @@ "npm": ">=6" } }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "license": "MIT", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/strip-ansi": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", @@ -10837,9 +10349,9 @@ } }, "node_modules/strip-literal": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.0.0.tgz", - "integrity": "sha512-TcccoMhJOM3OebGhSBEmp3UZ2SfDMZUEBdRA/9ynfLi8yYajyWX3JiXArcJt4Umh4vISpspkQIY8ZZoCqjbviA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/strip-literal/-/strip-literal-3.1.0.tgz", + "integrity": "sha512-8r3mkIM/2+PpjHoOtiAW8Rg3jJLHaV7xPwG+YRGrv6FP0wwk/toTpATxWYOW0BKdWwl82VT2tFYi5DlROa0Mxg==", "dev": true, "license": "MIT", "dependencies": { @@ -10893,9 +10405,9 @@ "license": "MIT" }, "node_modules/tabbable": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.2.0.tgz", - "integrity": "sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==", + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/tabbable/-/tabbable-6.3.0.tgz", + "integrity": "sha512-EIHvdY5bPLuWForiR/AN2Bxngzpuwn1is4asboytXtpTgsArc+WmSJKVLlhdh71u7jFcryDqB2A8lQvj78MkyQ==", "license": "MIT" }, "node_modules/tailwindcss": { @@ -10908,6 +10420,7 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.3.0.tgz", "integrity": "sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==", + "dev": true, "license": "MIT", "engines": { "node": ">=6" @@ -10944,16 +10457,20 @@ "license": "MIT" }, "node_modules/tinyexec": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", - "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", + "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", "dev": true, - "license": "MIT" + "license": "MIT", + "engines": { + "node": ">=18" + } }, "node_modules/tinyglobby": { "version": "0.2.15", "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", + "dev": true, "license": "MIT", "dependencies": { "fdir": "^6.5.0", @@ -10970,6 +10487,7 @@ "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -10987,6 +10505,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -11079,19 +10598,6 @@ "@tiptap/core": "^3.6.2" } }, - "node_modules/tldraw/node_modules/@tiptap/extension-highlight": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/@tiptap/extension-highlight/-/extension-highlight-3.6.2.tgz", - "integrity": "sha512-Q3eUVphUM1D86d4jQZ88nTbleKBokxMNjiEJc3N43+UXJPQWXWgDgqWUiaYmROSCdo3leuh9JpsDP/KYcclWUA==", - "license": "MIT", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@tiptap/core": "^3.6.2" - } - }, "node_modules/tldraw/node_modules/@tiptap/extension-list": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/@tiptap/extension-list/-/extension-list-3.6.2.tgz", @@ -11164,38 +10670,40 @@ "react-dom": "^17.0.0 || ^18.0.0 || ^19.0.0" } }, - "node_modules/tldraw/node_modules/@tiptap/react/node_modules/@tiptap/extension-bubble-menu": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-bubble-menu/-/extension-bubble-menu-3.14.0.tgz", - "integrity": "sha512-nraHy+5jumT67J7hWrCuVwVTS2vNj4FpV5kO8epVySBmgEBr/7Pyi4w7mQA1VRVOMdjeN9iypbgQ2rKhpfaoTw==", + "node_modules/tldraw/node_modules/@tiptap/starter-kit": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/@tiptap/starter-kit/-/starter-kit-3.6.2.tgz", + "integrity": "sha512-nPzraIx/f1cOUNqG1LSC0OTnEu3mudcN3jQVuyGh3dvdOnik7FUciJEVfHKnloAyeoijidEeiLpiGHInp2uREg==", "license": "MIT", - "optional": true, "dependencies": { - "@floating-ui/dom": "^1.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/ueberdosis" + "@tiptap/core": "^3.6.2", + "@tiptap/extension-blockquote": "^3.6.2", + "@tiptap/extension-bold": "^3.6.2", + "@tiptap/extension-bullet-list": "^3.6.2", + "@tiptap/extension-code": "^3.6.2", + "@tiptap/extension-code-block": "^3.6.2", + "@tiptap/extension-document": "^3.6.2", + "@tiptap/extension-dropcursor": "^3.6.2", + "@tiptap/extension-gapcursor": "^3.6.2", + "@tiptap/extension-hard-break": "^3.6.2", + "@tiptap/extension-heading": "^3.6.2", + "@tiptap/extension-horizontal-rule": "^3.6.2", + "@tiptap/extension-italic": "^3.6.2", + "@tiptap/extension-link": "^3.6.2", + "@tiptap/extension-list": "^3.6.2", + "@tiptap/extension-list-item": "^3.6.2", + "@tiptap/extension-list-keymap": "^3.6.2", + "@tiptap/extension-ordered-list": "^3.6.2", + "@tiptap/extension-paragraph": "^3.6.2", + "@tiptap/extension-strike": "^3.6.2", + "@tiptap/extension-text": "^3.6.2", + "@tiptap/extension-underline": "^3.6.2", + "@tiptap/extensions": "^3.6.2", + "@tiptap/pm": "^3.6.2" }, - "peerDependencies": { - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" - } - }, - "node_modules/tldraw/node_modules/@tiptap/react/node_modules/@tiptap/extension-floating-menu": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/@tiptap/extension-floating-menu/-/extension-floating-menu-3.14.0.tgz", - "integrity": "sha512-+ErwDF74NzX4JV0nXMSIUT9V8FDdo85r0SaBZ8lb2NLmElaA3LDklcNV7SsoKlRcwsAXtFkqQbDwXLNGQLYSPQ==", - "license": "MIT", - "optional": true, "funding": { "type": "github", "url": "https://github.com/sponsors/ueberdosis" - }, - "peerDependencies": { - "@floating-ui/dom": "^1.0.0", - "@tiptap/core": "^3.14.0", - "@tiptap/pm": "^3.14.0" } }, "node_modules/tldraw/node_modules/idb": { @@ -11205,22 +10713,22 @@ "license": "ISC" }, "node_modules/tldts": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.16.tgz", - "integrity": "sha512-5bdPHSwbKTeHmXrgecID4Ljff8rQjv7g8zKQPkCozRo2HWWni+p310FSn5ImI+9kWw9kK4lzOB5q/a6iv0IJsw==", + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts/-/tldts-7.0.19.tgz", + "integrity": "sha512-8PWx8tvC4jDB39BQw1m4x8y5MH1BcQ5xHeL2n7UVFulMPH/3Q0uiamahFJ3lXA0zO2SUyRXuVVbWSDmstlt9YA==", "dev": true, "license": "MIT", "dependencies": { - "tldts-core": "^7.0.16" + "tldts-core": "^7.0.19" }, "bin": { "tldts": "bin/cli.js" } }, "node_modules/tldts-core": { - "version": "7.0.16", - "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.16.tgz", - "integrity": "sha512-XHhPmHxphLi+LGbH0G/O7dmUH9V65OY20R7vH8gETHsp5AZCjBk9l8sqmRKLaGOxnETU7XNSDUPtewAy/K6jbA==", + "version": "7.0.19", + "resolved": "https://registry.npmjs.org/tldts-core/-/tldts-core-7.0.19.tgz", + "integrity": "sha512-lJX2dEWx0SGH4O6p+7FPwYmJ/bu1JbcGJ8RLaG9b7liIgZ85itUVEPbMtWRVrde/0fnDPEPHW10ZsKW3kVsE9A==", "dev": true, "license": "MIT" }, @@ -11251,11 +10759,17 @@ } }, "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-6.0.0.tgz", + "integrity": "sha512-bLVMLPtstlZ4iMQHpFHTR7GAGj2jxi8Dg0s2h2MafAE4uSWF98FC/3MomU51iQAMf8/qDUbKWf5GxuvvVcXEhw==", "dev": true, - "license": "MIT" + "license": "MIT", + "dependencies": { + "punycode": "^2.3.1" + }, + "engines": { + "node": ">=20" + } }, "node_modules/tree-kill": { "version": "1.2.2", @@ -11342,16 +10856,6 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, - "node_modules/tsdown/node_modules/tinyexec": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-1.0.2.tgz", - "integrity": "sha512-W/KYk+NFhkmsYpuHq5JykngiOCnxeVL8v8dFnqxSD8qEEdRfXk1SDM6JzNqcERbcGYj9tMrDQBYV9cjgnunFIg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - } - }, "node_modules/tslib": { "version": "2.8.1", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz", @@ -11362,7 +10866,7 @@ "version": "4.21.0", "resolved": "https://registry.npmjs.org/tsx/-/tsx-4.21.0.tgz", "integrity": "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw==", - "devOptional": true, + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -11445,7 +10949,7 @@ "version": "7.16.0", "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.16.0.tgz", "integrity": "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==", - "devOptional": true, + "dev": true, "license": "MIT" }, "node_modules/unenv": { @@ -11497,9 +11001,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz", - "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==", + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.2.3.tgz", + "integrity": "sha512-Js0m9cx+qOgDxo0eMiFGEueWztz+d4+M3rGlmKPT+T4IS/jP4ylw3Nwpu6cpTTP8R1MAC1kF4VbdLt3ARf209w==", "dev": true, "funding": [ { @@ -11571,14 +11075,28 @@ } }, "node_modules/use-sync-external-store": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.5.0.tgz", - "integrity": "sha512-Rb46I4cGGVBmjamjphe8L/UnvJD+uPPtTkNvX5mZgqdbavhI4EbgIWJiIHXJ8bc/i9EQGPRh4DwEURJ552Do0A==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/use-sync-external-store/-/use-sync-external-store-1.6.0.tgz", + "integrity": "sha512-Pp6GSwGP/NrPIrxVFAIkOQeyw8lFenOHijQWkUTrDvrF4ALqylP2C/KCkeS9dpUM3KvYRQhna5vt7IL95+ZQ9w==", "license": "MIT", "peerDependencies": { "react": "^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0" } }, + "node_modules/uuid": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-11.1.0.tgz", + "integrity": "sha512-0/A9rDy9P7cJ+8w1c9WD9V//9Wj15Ce2MPz8Ri6032usz+NfePxx5AcN3bN+r6ZL6jEo066/yNYB3tn4pQEx+A==", + "dev": true, + "funding": [ + "https://github.com/sponsors/broofa", + "https://github.com/sponsors/ctavan" + ], + "license": "MIT", + "bin": { + "uuid": "dist/esm/bin/uuid" + } + }, "node_modules/valibot": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/valibot/-/valibot-1.2.0.tgz", @@ -11593,21 +11111,11 @@ } } }, - "node_modules/validate-npm-package-name": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-5.0.1.tgz", - "integrity": "sha512-OljLrQ9SQdOUqTaQxqL5dEfZWrXExyyWsozYlAWFawPVNuD83igl7uJD2RTkNMbniIYgt8l81eCJGIdQF7avLQ==", - "dev": true, - "license": "ISC", - "optional": true, - "engines": { - "node": "^14.17.0 || ^16.13.0 || >=18.0.0" - } - }, "node_modules/vite": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/vite/-/vite-7.3.0.tgz", "integrity": "sha512-dZwN5L1VlUBewiP6H9s2+B3e3Jg96D0vzN+Ry73sOefebhYr9f94wwkMNN/9ouoU8pV1BqA1d1zGk8928cx0rg==", + "dev": true, "license": "MIT", "peer": true, "dependencies": { @@ -11702,10 +11210,24 @@ "url": "https://opencollective.com/vitest" } }, + "node_modules/vite-plugin-devtools-json": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/vite-plugin-devtools-json/-/vite-plugin-devtools-json-1.0.0.tgz", + "integrity": "sha512-MobvwqX76Vqt/O4AbnNMNWoXWGrKUqZbphCUle/J2KXH82yKQiunOeKnz/nqEPosPsoWWPP9FtNuPBSYpiiwkw==", + "dev": true, + "license": "MIT", + "dependencies": { + "uuid": "^11.1.0" + }, + "peerDependencies": { + "vite": "^5.0.0 || ^6.0.0 || ^7.0.0" + } + }, "node_modules/vite/node_modules/fdir": { "version": "6.5.0", "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.5.0.tgz", "integrity": "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg==", + "dev": true, "license": "MIT", "engines": { "node": ">=12.0.0" @@ -11723,6 +11245,7 @@ "version": "4.0.3", "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", + "dev": true, "license": "MIT", "peer": true, "engines": { @@ -11819,6 +11342,13 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/vitest/node_modules/tinyexec": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz", + "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==", + "dev": true, + "license": "MIT" + }, "node_modules/w3c-keyname": { "version": "2.2.8", "resolved": "https://registry.npmjs.org/w3c-keyname/-/w3c-keyname-2.2.8.tgz", @@ -11839,11 +11369,14 @@ } }, "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-8.0.0.tgz", + "integrity": "sha512-n4W4YFyz5JzOfQeA8oN7dUYpR+MBP3PIUsn2jLjWXwK5ASUzt0Jc/A5sAUZoCYFJRGF0FBKJ+1JjN43rNdsQzA==", "dev": true, - "license": "BSD-2-Clause" + "license": "BSD-2-Clause", + "engines": { + "node": ">=20" + } }, "node_modules/whatwg-encoding": { "version": "3.1.1", @@ -11882,14 +11415,17 @@ } }, "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "version": "15.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-15.1.0.tgz", + "integrity": "sha512-2ytDk0kiEj/yu90JOAp44PVPUkO9+jVhyf+SybKlRHSDlvOOZhdPIrr7xTH64l4WixO2cP+wQIcgujkGBPPz6g==", "dev": true, "license": "MIT", "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" + "tr46": "^6.0.0", + "webidl-conversions": "^8.0.0" + }, + "engines": { + "node": ">=20" } }, "node_modules/which": { @@ -11982,6 +11518,24 @@ } } }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -12116,28 +11670,6 @@ "node": ">=12" } }, - "node_modules/yargs/node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true, - "license": "MIT" - }, - "node_modules/yargs/node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "license": "MIT", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/yjs": { "version": "13.6.28", "resolved": "https://registry.npmjs.org/yjs/-/yjs-13.6.28.tgz", @@ -12212,7 +11744,7 @@ "license": "ISC", "dependencies": { "nanoid": "^5.1.6", - "partysocket": "^1.1.8" + "partysocket": "^1.1.9" } }, "packages/partyhard": { @@ -12279,12 +11811,12 @@ "devDependencies": { "@cloudflare/workers-types": "^4.20251218.0", "partyserver": "^0.0.78", - "partysocket": "^1.1.8" + "partysocket": "^1.1.9" }, "peerDependencies": { "@cloudflare/workers-types": "^4.20240729.0", "partyserver": "^0.0.78", - "partysocket": "^1.1.8" + "partysocket": "^1.1.9" } }, "packages/partysync": { diff --git a/package.json b/package.json index d82032d1..87df26ac 100644 --- a/package.json +++ b/package.json @@ -41,6 +41,7 @@ "tsx": "^4.21.0", "typescript": "^5.9.3", "vite": "^7.3.0", + "vite-plugin-devtools-json": "^1.0.0", "vitest": "3.2.4", "wrangler": "^4.56.0" }, diff --git a/packages/partyfn/package.json b/packages/partyfn/package.json index fb2fa190..c5b7e2f5 100644 --- a/packages/partyfn/package.json +++ b/packages/partyfn/package.json @@ -19,7 +19,7 @@ ], "dependencies": { "nanoid": "^5.1.6", - "partysocket": "^1.1.8" + "partysocket": "^1.1.9" }, "scripts": { "build": "tsx scripts/build.ts" diff --git a/packages/partyserver/README.md b/packages/partyserver/README.md index 529a066d..48af8884 100644 --- a/packages/partyserver/README.md +++ b/packages/partyserver/README.md @@ -21,7 +21,7 @@ PartyServer enhances Durable Objects with the following features: - Decouples the idea of a URL from the server name. This is useful when you want to associate a server with some other identifier like a session ID, etc. You can still use `routePartykitRequest()` to get PartyKit-style route matching. - Doesn't include bindings for other services like AI, static assets, etc. Instead, use wrangler's built-in support for those services. -- Doesn't have PartyKit's auto-inferred declaration for Durable Object bindings and migrations, so you have to manually specify these in `wrangler.toml`. We may add this in the future. +- Doesn't have PartyKit's auto-inferred declaration for Durable Object bindings and migrations, so you have to manually specify these in `wrangler.jsonc`. We may add this in the future. ## Usage @@ -58,19 +58,27 @@ export default { } satisfies ExportedHandler; ``` -And configure your `wrangler.toml`: - -```toml -name = "my-partyserver-app" -main = "index.ts" - -[[durable_objects.bindings]] -name = "MyServer" -class_name = "MyServer" - -[[migrations]] -tag = "v1" # Should be unique for each entry -new_classes = ["MyServer"] +And configure your `wrangler.jsonc`: + +```jsonc +{ + "name": "my-partyserver-app", + "main": "index.ts", + "durable_objects": { + "bindings": [ + { + "name": "MyServer", + "class_name": "MyServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_classes": ["MyServer"] + } + ] +} ``` You can connect to the server from a client (like a browser or a mobile app) using [`partysocket`](https://npmjs.com/package/partysocket) or any other WebSocket client. @@ -125,7 +133,7 @@ These methods can be optionally `async`: - `.ctx` - the context object for the Durable Object, containing references to [`storage`](https://developers.cloudflare.com/durable-objects/api/transactional-storage-api/) -- `.env` - the environment object for the Durable Object, defined by bindings and other configuration in your `wrangler.toml` configuration file. +- `.env` - the environment object for the Durable Object, defined by bindings and other configuration in your `wrangler.jsonc` configuration file. ### Durable Object methods diff --git a/packages/partyserver/src/index.ts b/packages/partyserver/src/index.ts index dae66bf0..b7fdcfa2 100644 --- a/packages/partyserver/src/index.ts +++ b/packages/partyserver/src/index.ts @@ -2,7 +2,7 @@ // rethink oBC/oBR // push for durable.setState (in addition to connection.setState) -import { DurableObject } from "cloudflare:workers"; +import { DurableObject, env as defaultEnv } from "cloudflare:workers"; import { nanoid } from "nanoid"; import { @@ -26,7 +26,7 @@ export type WSMessage = ArrayBuffer | ArrayBufferView | string; // Let's cache the server namespace map // so we don't call it on every request const serverMapCache = new WeakMap< - Record, + object, Record >(); @@ -34,8 +34,8 @@ const serverMapCache = new WeakMap< * For a given server namespace, create a server with a name. */ export async function getServerByName< - Env, - T extends Server, + Env extends Cloudflare.Env = Cloudflare.Env, + T extends Server = Server, Props extends Record = Record >( serverNamespace: DurableObjectNamespace, @@ -92,7 +92,11 @@ function camelCaseToKebabCase(str: string): string { // Convert any remaining underscores to hyphens and remove trailing -'s return kebabified.replace(/_/g, "-").replace(/-$/, ""); } -export interface PartyServerOptions> { +export interface PartyServerOptions< + // biome-ignore lint/correctness/noUnusedVariables: it's ok, we'll remove this in the next major + Env = Cloudflare.Env, + Props = Record +> { prefix?: string; jurisdiction?: DurableObjectJurisdiction; locationHint?: DurableObjectLocationHint; @@ -100,14 +104,14 @@ export interface PartyServerOptions> { onBeforeConnect?: ( req: Request, lobby: { - party: keyof Env; + party: string; name: string; } ) => Response | Request | void | Promise; onBeforeRequest?: ( req: Request, lobby: { - party: keyof Env; + party: string; name: string; } ) => @@ -120,13 +124,13 @@ export interface PartyServerOptions> { * A utility function for PartyKit style routing. */ export async function routePartykitRequest< - Env = unknown, + Env extends Cloudflare.Env = Cloudflare.Env, T extends Server = Server, Props extends Record = Record >( req: Request, - env: Record, - options?: PartyServerOptions + env: Env = defaultEnv as Env, + options?: PartyServerOptions ): Promise { if (!serverMapCache.has(env)) { serverMapCache.set( @@ -177,7 +181,7 @@ export async function routePartykitRequest< party: "${camelCaseToKebabCase(Object.keys(map)[0])}"`); } else { console.error(`The url ${req.url} does not match any server namespace. -Did you forget to add a durable object binding to the class in your wrangler.toml?`); +Did you forget to add a durable object binding to the class in your wrangler.jsonc?`); } } @@ -236,7 +240,7 @@ Did you forget to add a durable object binding to the class in your wrangler.tom } export class Server< - Env = unknown, + Env extends Cloudflare.Env = Cloudflare.Env, Props extends Record = Record > extends DurableObject { static options = { diff --git a/packages/partyserver/src/tests/vitest.config.ts b/packages/partyserver/src/tests/vitest.config.ts index 56f881f4..17c6a269 100644 --- a/packages/partyserver/src/tests/vitest.config.ts +++ b/packages/partyserver/src/tests/vitest.config.ts @@ -6,7 +6,7 @@ export default defineWorkersConfig({ workers: { isolatedStorage: false, wrangler: { - configPath: "./wrangler.toml" + configPath: "./wrangler.jsonc" } } } diff --git a/packages/partyserver/src/tests/worker.ts b/packages/partyserver/src/tests/worker.ts index 7bf7386d..46468f93 100644 --- a/packages/partyserver/src/tests/worker.ts +++ b/packages/partyserver/src/tests/worker.ts @@ -13,7 +13,7 @@ export type Env = { OnStartServer: DurableObjectNamespace; }; -export class Stateful extends Server { +export class Stateful extends Server { static options = { hibernate: true }; @@ -38,7 +38,7 @@ export class Stateful extends Server { } } -export class OnStartServer extends Server { +export class OnStartServer extends Server { counter = 0; async onStart() { // this stray assert is simply to make sure .name is available diff --git a/packages/partyserver/src/tests/wrangler.jsonc b/packages/partyserver/src/tests/wrangler.jsonc new file mode 100644 index 00000000..e1a268a0 --- /dev/null +++ b/packages/partyserver/src/tests/wrangler.jsonc @@ -0,0 +1,23 @@ +{ + "main": "/worker.ts", + "compatibility_date": "2024-05-12", + "compatibility_flags": ["nodejs_compat"], + "durable_objects": { + "bindings": [ + { + "name": "Stateful", + "class_name": "Stateful" + }, + { + "name": "OnStartServer", + "class_name": "OnStartServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", // Should be unique for each entry + "new_classes": ["Stateful", "OnStartServer"] + } + ] +} diff --git a/packages/partyserver/src/tests/wrangler.toml b/packages/partyserver/src/tests/wrangler.toml deleted file mode 100644 index 8ffd9dd5..00000000 --- a/packages/partyserver/src/tests/wrangler.toml +++ /dev/null @@ -1,15 +0,0 @@ -main = "/worker.ts" -compatibility_date = "2024-05-12" -compatibility_flags = ["nodejs_compat"] - -[[durable_objects.bindings]] -name = "Stateful" -class_name = "Stateful" - -[[durable_objects.bindings]] -name = "OnStartServer" -class_name = "OnStartServer" - - [[migrations]] -tag = "v1" # Should be unique for each entry -new_classes = ["Stateful", "OnStartServer"] diff --git a/packages/partysub/README.md b/packages/partysub/README.md index 97bec9e7..852b55f9 100644 --- a/packages/partysub/README.md +++ b/packages/partysub/README.md @@ -60,18 +60,26 @@ export default { }; ``` -And setup your wrangler.toml: - -```toml -# ... -[[durable_objects.bindings]] -name = "PubSub" # This MUST match the binding name in the PubSubServer config -class_name = "PubSubServer" - -[[migrations]] -tag = "v1" -new_classes = ["PubSubServer"] -# ... +And setup your wrangler.jsonc: + +```jsonc +{ + // ... + "durable_objects": { + "bindings": [ + { + "name": "PubSub", + "class_name": "PubSubServer" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["PubSubServer"] + } + ] +} ``` In your application, use PartySocket to connect to the server: diff --git a/packages/partysub/package.json b/packages/partysub/package.json index 87f64d95..ac129e1e 100644 --- a/packages/partysub/package.json +++ b/packages/partysub/package.json @@ -42,11 +42,11 @@ "peerDependencies": { "@cloudflare/workers-types": "^4.20240729.0", "partyserver": "^0.0.78", - "partysocket": "^1.1.8" + "partysocket": "^1.1.9" }, "devDependencies": { "@cloudflare/workers-types": "^4.20251218.0", "partyserver": "^0.0.78", - "partysocket": "^1.1.8" + "partysocket": "^1.1.9" } } diff --git a/packages/partysub/src/server/index.ts b/packages/partysub/src/server/index.ts index 7e984754..63726138 100644 --- a/packages/partysub/src/server/index.ts +++ b/packages/partysub/src/server/index.ts @@ -1,3 +1,5 @@ +import { env as defaultEnv } from "cloudflare:workers"; + import { routePartykitRequest, Server } from "partyserver"; import { @@ -21,7 +23,9 @@ function camelCaseToKebabCase(str: string): string { return kebabified.replace(/-$/, ""); } -export function createPubSubServer(options: { +export function createPubSubServer< + Env extends Cloudflare.Env = Cloudflare.Env +>(options: { binding: string; nodes?: number; locations?: Partial>; @@ -137,7 +141,10 @@ export function createPubSubServer(options: { } } - async function routePubSubRequest(request: Request, env: Env) { + async function routePubSubRequest( + request: Request, + env: Env = defaultEnv as Env + ) { // the request will come tp /parties/:party/:room // and we should rewrite it to /parties/:party/:room-${id} // where id = Math.floor(Math.random() * nodes) @@ -188,7 +195,6 @@ export function createPubSubServer(options: { const newPath = `/parties/${party}/${room}-${nodeIDs[foundLocation][id]}`; url.pathname = newPath; const newRequest = new Request(url.toString(), request); - // @ts-expect-error I don't know typescript return routePartykitRequest(newRequest, env, { locationHint: foundLocation }); diff --git a/packages/partysub/src/server/tests/vitest.config.ts b/packages/partysub/src/server/tests/vitest.config.ts index 56f881f4..17c6a269 100644 --- a/packages/partysub/src/server/tests/vitest.config.ts +++ b/packages/partysub/src/server/tests/vitest.config.ts @@ -6,7 +6,7 @@ export default defineWorkersConfig({ workers: { isolatedStorage: false, wrangler: { - configPath: "./wrangler.toml" + configPath: "./wrangler.jsonc" } } } diff --git a/packages/partysub/src/server/tests/wrangler.jsonc b/packages/partysub/src/server/tests/wrangler.jsonc new file mode 100644 index 00000000..206f9732 --- /dev/null +++ b/packages/partysub/src/server/tests/wrangler.jsonc @@ -0,0 +1,6 @@ +{ + "name": "partysub-tests", + "main": "./worker.ts", + "compatibility_date": "2024-07-25", + "compatibility_flags": ["nodejs_compat"] +} diff --git a/packages/partysub/src/server/tests/wrangler.toml b/packages/partysub/src/server/tests/wrangler.toml deleted file mode 100644 index 29c30a49..00000000 --- a/packages/partysub/src/server/tests/wrangler.toml +++ /dev/null @@ -1,4 +0,0 @@ -name = "partysub-tests" -main = "./worker.ts" -compatibility_date = "2024-07-25" -compatibility_flags = ["nodejs_compat"] diff --git a/packages/partysync/src/agent/index.ts b/packages/partysync/src/agent/index.ts index bb0062e4..483fbfb1 100644 --- a/packages/partysync/src/agent/index.ts +++ b/packages/partysync/src/agent/index.ts @@ -8,7 +8,7 @@ import type { RpcException, RpcResponse } from "partyfn"; import type { WebSocket as PSWebSocket } from "partysocket"; export class Agent< - Env extends Record, + Env extends Cloudflare.Env = Cloudflare.Env, Channels extends { [Channel: string]: { record: unknown[]; @@ -57,7 +57,7 @@ export class Agent< async connect(namespace: string, room: string) { const stub = await getServerByName( - this.env[namespace] as unknown as DurableObjectNamespace< + this.env[namespace as keyof Env] as DurableObjectNamespace< SyncServer >, room diff --git a/packages/partysync/src/server/index.ts b/packages/partysync/src/server/index.ts index 1c97e353..6717f07c 100644 --- a/packages/partysync/src/server/index.ts +++ b/packages/partysync/src/server/index.ts @@ -19,7 +19,7 @@ type Channels = { }; export class SyncServer< - Env, + Env extends Cloudflare.Env = Cloudflare.Env, TChannels extends Channels = Channels > extends Server { static options = { diff --git a/packages/partywhen/README.md b/packages/partywhen/README.md index 46a07487..3ec48a3c 100644 --- a/packages/partywhen/README.md +++ b/packages/partywhen/README.md @@ -13,12 +13,27 @@ The killer app: This will be particularly useful when wired up with an LLM agent import { Scheduler } from "partywhen"; export { Scheduler }; -// also setup wrangler.toml to create a durable object binding +// also setup wrangler.jsonc to create a durable object binding // let's say you've done it this way: - -// [[durable_objects.bindings]] -// name = "SCHEDULER" -// class_name = "Scheduler" +/** + { + // ... + "durable_objects": { + "bindings": [ + { + "name": "SCHEDULER", + "class_name": "Scheduler" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_classes": ["Scheduler"] + } + ] + } +*/ export default { fetch(request: Request, env: Env, ctx: ExecutionContext) { diff --git a/packages/partywhen/src/index.ts b/packages/partywhen/src/index.ts index ca2bcc92..e0997efe 100644 --- a/packages/partywhen/src/index.ts +++ b/packages/partywhen/src/index.ts @@ -76,7 +76,9 @@ type Callback = function: string; }; -export class Scheduler extends Server { +export class Scheduler< + Env extends Cloudflare.Env = Cloudflare.Env +> extends Server { constructor(state: DurableObjectState, env: Env) { super(state, env); void this.ctx.blockConcurrencyWhile(async () => { @@ -374,12 +376,12 @@ export class Scheduler extends Server { } else if (type === "durable-object") { //@ts-expect-error yeah whatever // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access - const id = this.env[task.callback.namespace].idFromName( + const id = this.env[task.callback.namespace as keyof Env].idFromName( task.callback.name ); //@ts-expect-error yeah whatever // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment, @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access - const stub = this.env[task.callback.namespace].get(id); + const stub = this.env[task.callback.namespace as keyof Env].get(id); // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access stub[task.callback.function](task).catch((e: unknown) => { @@ -388,7 +390,9 @@ export class Scheduler extends Server { } else if (type === "service") { //@ts-expect-error yeah whatever // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access - this.env[task.callback.service][task.callback.function](task); + this.env[task.callback.service as keyof Env][task.callback.function]( + task + ); } else if (type === "self") { //@ts-expect-error yeah whatever // eslint-disable-next-line @typescript-eslint/no-unsafe-call diff --git a/packages/partywhen/tests/vitest.config.ts b/packages/partywhen/tests/vitest.config.ts index 4d499336..a15cc4c2 100644 --- a/packages/partywhen/tests/vitest.config.ts +++ b/packages/partywhen/tests/vitest.config.ts @@ -4,7 +4,7 @@ export default defineWorkersConfig({ test: { poolOptions: { workers: { - wrangler: { configPath: "./wrangler.toml" } + wrangler: { configPath: "./wrangler.jsonc" } } } } diff --git a/packages/partywhen/tests/wrangler.jsonc b/packages/partywhen/tests/wrangler.jsonc new file mode 100644 index 00000000..4c7f62ed --- /dev/null +++ b/packages/partywhen/tests/wrangler.jsonc @@ -0,0 +1,20 @@ +{ + "name": "durable-scheduler-tests", + "compatibility_date": "2024-11-06", + "main": "./index.ts", + "compatibility_flags": ["nodejs_compat"], + "durable_objects": { + "bindings": [ + { + "name": "SCHEDULER", + "class_name": "Scheduler" + } + ] + }, + "migrations": [ + { + "tag": "v1", + "new_sqlite_classes": ["Scheduler"] + } + ] +} diff --git a/packages/partywhen/tests/wrangler.toml b/packages/partywhen/tests/wrangler.toml deleted file mode 100644 index 9f2e01bf..00000000 --- a/packages/partywhen/tests/wrangler.toml +++ /dev/null @@ -1,13 +0,0 @@ -name = "durable-scheduler-tests" -compatibility_date = "2024-11-06" -main = "./index.ts" -compatibility_flags = ["nodejs_compat"] - -[[durable_objects.bindings]] -name = "SCHEDULER" -class_name = "Scheduler" - - [[migrations]] -tag = "v1" -new_sqlite_classes = [ "Scheduler" ] - diff --git a/packages/y-partyserver/README.md b/packages/y-partyserver/README.md index f51c98b1..a8c45d57 100644 --- a/packages/y-partyserver/README.md +++ b/packages/y-partyserver/README.md @@ -16,7 +16,7 @@ Like PartyServer, `YServer` is a class that extends `DurableObject` (as well as ```ts export { YServer as MyYServer } from "y-partyserver"; -// then setup wrangler.toml and a default fetch handler +// then setup wrangler.jsonc and a default fetch handler // like you would for PartyServer. ``` diff --git a/packages/y-partyserver/src/provider/index.ts b/packages/y-partyserver/src/provider/index.ts index d6846686..735f8699 100644 --- a/packages/y-partyserver/src/provider/index.ts +++ b/packages/y-partyserver/src/provider/index.ts @@ -11,8 +11,6 @@ import * as awarenessProtocol from "y-protocols/awareness"; import * as syncProtocol from "y-protocols/sync"; import { Doc as YDoc } from "yjs"; -import { sendChunked } from "../shared/chunking"; - export const messageSync = 0; export const messageQueryAwareness = 3; export const messageAwareness = 1; @@ -153,7 +151,7 @@ function setupWS(provider: WebsocketProvider) { provider.wsLastMessageReceived = time.getUnixTime(); const encoder = readMessage(provider, new Uint8Array(event.data), true); if (encoding.length(encoder) > 1) { - sendChunked(encoding.toUint8Array(encoder), websocket); + websocket.send(encoding.toUint8Array(encoder)); } }); websocket.addEventListener("error", (event) => { @@ -207,7 +205,7 @@ function setupWS(provider: WebsocketProvider) { const encoder = encoding.createEncoder(); encoding.writeVarUint(encoder, messageSync); syncProtocol.writeSyncStep1(encoder, provider.doc); - sendChunked(encoding.toUint8Array(encoder), websocket); + websocket.send(encoding.toUint8Array(encoder)); // broadcast local awareness state if (provider.awareness.getLocalState() !== null) { const encoderAwarenessState = encoding.createEncoder(); @@ -218,7 +216,7 @@ function setupWS(provider: WebsocketProvider) { provider.doc.clientID ]) ); - sendChunked(encoding.toUint8Array(encoderAwarenessState), websocket); + websocket.send(encoding.toUint8Array(encoderAwarenessState)); } }); provider.emit("status", [ @@ -232,7 +230,7 @@ function setupWS(provider: WebsocketProvider) { function broadcastMessage(provider: WebsocketProvider, buf: Uint8Array) { const ws = provider.ws; if (provider.wsconnected && ws && ws.readyState === ws.OPEN) { - sendChunked(buf, ws); + ws.send(buf); } if (provider.bcconnected) { bc.publish(provider.bcChannel, buf, provider); @@ -346,7 +344,7 @@ export class WebsocketProvider extends Observable { const encoder = encoding.createEncoder(); encoding.writeVarUint(encoder, messageSync); syncProtocol.writeSyncStep1(encoder, doc); - sendChunked(encoding.toUint8Array(encoder), this.ws); + this.ws.send(encoding.toUint8Array(encoder)); } }, resyncInterval); } diff --git a/packages/y-partyserver/src/server/index.ts b/packages/y-partyserver/src/server/index.ts index 0fa5c85d..38e41f2b 100644 --- a/packages/y-partyserver/src/server/index.ts +++ b/packages/y-partyserver/src/server/index.ts @@ -16,8 +16,6 @@ import { XmlFragment } from "yjs"; -import { handleChunked } from "../shared/chunking"; - const snapshotOrigin = Symbol("snapshot-origin"); type YjsRootType = | "Text" @@ -176,7 +174,9 @@ export interface CallbackOptions { timeout?: number; } -export class YServer extends Server { +export class YServer< + Env extends Cloudflare.Env = Cloudflare.Env +> extends Server { static callbackOptions: CallbackOptions = {}; #ParentClass: typeof YServer = Object.getPrototypeOf(this).constructor; @@ -368,8 +368,18 @@ export class YServer extends Server { } try { const encoder = encoding.createEncoder(); - // TODO: this type seems odd - const decoder = decoding.createDecoder(message as unknown as Uint8Array); + // Convert ArrayBuffer to Uint8Array if needed (ArrayBufferView like Uint8Array can be used directly) + const uint8Array = + message instanceof Uint8Array + ? message + : message instanceof ArrayBuffer + ? new Uint8Array(message) + : new Uint8Array( + message.buffer, + message.byteOffset, + message.byteLength + ); + const decoder = decoding.createDecoder(uint8Array); const messageType = decoding.readVarUint(decoder); switch (messageType) { case messageSync: @@ -405,9 +415,9 @@ export class YServer extends Server { } } - onMessage = handleChunked((conn, message) => - this.handleMessage(conn, message) - ); + onMessage(conn: Connection, message: WSMessage) { + this.handleMessage(conn, message); + } onClose( connection: Connection, diff --git a/packages/y-partyserver/src/shared/chunking.ts b/packages/y-partyserver/src/shared/chunking.ts deleted file mode 100644 index 5e93c44f..00000000 --- a/packages/y-partyserver/src/shared/chunking.ts +++ /dev/null @@ -1,182 +0,0 @@ -// This file contains a shared implementation of chunking logic for binary -// WebSocket messages. Because the Workers platform limits individual -// WebSocket messages to 1MB, we need to split larger messages into chunks. - -import type { Connection, WSMessage } from "partyserver"; - -export const CHUNK_MAX_SIZE = 1_000_000; - -const BATCH_SENTINEL = "y-pk-batch"; -const TRACE_ENABLED = false; -const trace = (...args: unknown[]) => TRACE_ENABLED && console.log(...args); - -let warnedAboutLargeMessage = false; - -type MessageHandler = (conn: Connection, message: WSMessage) => void; -type Batch = { - id: string; - type: "start" | "end"; - size: number; - count: number; -}; - -/** - * Takes an ArrayBuffer and sends it in chunks to the provided send function, - * along with a start and end marker. - * - * 1. The sender splits the message into chunks of 1MB or less. - * 2. The sender sends a chunk start marker - * 3. The sender sends each chunk as a individual packet - * 4. The sender sends a chunk end marker - */ -export const sendChunked = (data: Uint8Array, ws: WebSocket) => { - if (data.byteLength <= CHUNK_MAX_SIZE) { - ws.send(data); - return; - } - - if (!warnedAboutLargeMessage) { - console.warn( - "[y-partyserver]", - "The Y.js update size exceeds 1MB, which is the maximum size for an individual update. The update will be split into chunks. This is an experimental feature.", - `Message size: ${(data.byteLength / 1000 / 1000).toFixed(1)}MB` - ); - warnedAboutLargeMessage = true; - } - - const id = (Date.now() + Math.random()).toString(36).substring(10); - const chunks = Math.ceil(data.byteLength / CHUNK_MAX_SIZE); - - ws.send( - serializeBatchMarker({ - id, - type: "start", - size: data.byteLength, - count: chunks - }) - ); - - let sentSize = 0; - let sentChunks = 0; - for (let i = 0; i < chunks; i++) { - const chunk = data.slice(CHUNK_MAX_SIZE * i, CHUNK_MAX_SIZE * (i + 1)); - ws.send(chunk); - sentChunks += 1; - sentSize += chunk.byteLength; - } - - ws.send( - serializeBatchMarker({ - id, - type: "end", - size: sentSize, - count: sentChunks - }) - ); -}; - -/** - * Creates a WebSocket message handler that can handle chunked messages. - * - * Reassembles the chunks into a single ArrayBuffer and pass it to the - * provided receive function. - * - * 1. The server receives a chunk start marker - * 2. The server pools each chunk until it receives a chunk end marker - * 3. The server validates that the received data matches the expected size - * 4. The server forwards the message to handlers - */ -export const handleChunked = ( - receive: (conn: Connection, data: WSMessage) => void -): MessageHandler => { - let batch: ArrayBuffer[] | undefined; - let start: Batch | undefined; - - return (connection, message) => { - if (typeof message === "string" && !isBatchSentinel(message)) { - return; - } - if (isBatchSentinel(message)) { - const marker = parseBatchMarker(message); - if (marker.type === "start") { - batch = []; - start = marker; - } - - if (marker.type === "end") { - if (batch) { - try { - // validate start and end markers match - assertEquality(start?.id, marker.id, "client id"); - assertEquality(start?.count, marker.count, "client counts"); - assertEquality(start?.size, marker.size, "client size"); - - // combine chunks into single buffer - const size = batch.reduce( - (sum, buffer) => sum + buffer.byteLength, - 0 - ); - const bytes = new Uint8Array(size); - let bytesWritten = 0; - for (const chunk of batch) { - bytes.set(new Uint8Array(chunk), bytesWritten); - bytesWritten += chunk.byteLength; - } - - // validate data as read matches expected - assertEquality(marker.count, batch.length, "received batch count"); - assertEquality(marker.size, bytesWritten, "client size"); - receive(connection, bytes); - } catch (e) { - console.error(e); - throw e; - } finally { - batch = undefined; - start = undefined; - } - } - } - } else if (batch) { - // @ts-expect-error typescript hell - batch.push(message); - } else { - // @ts-expect-error typescript hell - receive(connection, new Uint8Array(message)); - } - }; -}; - -function assertEquality(expected: unknown, actual: unknown, label: string) { - if (expected !== actual) { - throw new Error( - `Mismatching ${label}! Expected ${expected as string}, got ${actual as string}` - ); - } else { - trace(`Matching ${label}: ${expected as string}`); - } -} - -/** Checks whether a message is batch marker */ -function isBatchSentinel(msg: WSMessage): msg is string { - return typeof msg === "string" && msg.startsWith(BATCH_SENTINEL); -} - -/** Encodes a batch marker message so that it can be safely parsed */ -function serializeBatchMarker(batch: Batch): string { - return `${BATCH_SENTINEL}#${JSON.stringify(batch)}`; -} - -/** Parses a batch marker messages and throws if its invalid */ -export function parseBatchMarker(msg: string) { - const [sentinel, data] = msg.split("#", 2); - if (sentinel !== BATCH_SENTINEL) { - throw new Error(`Unexpected batch marker: ${msg}`); - } - - const batch = JSON.parse(data) as Batch; - if (batch.type !== "start" && batch.type !== "end") { - throw new Error(`Unexpected batch data: ${msg}`); - } - - return batch; -} diff --git a/packages/y-partyserver/src/shared/tsconfig.json b/packages/y-partyserver/src/shared/tsconfig.json deleted file mode 100644 index 52a27312..00000000 --- a/packages/y-partyserver/src/shared/tsconfig.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "extends": "../../../../tsconfig.base.json" -} diff --git a/packages/y-partyserver/src/shared/utils.ts b/packages/y-partyserver/src/shared/utils.ts deleted file mode 100644 index ae43ecf6..00000000 --- a/packages/y-partyserver/src/shared/utils.ts +++ /dev/null @@ -1,30 +0,0 @@ -// This file contains a shared implementation of base64 to uint8Array and uint8Array to base64. -// Because certain text documents may be quite large, we split them into chunks of 8192 bytes to encode/decode. - -export function base64ToUint8Array(base64: string): Uint8Array { - const binaryString = atob(base64); - const uint8Array = new Uint8Array(binaryString.length); - - const chunkSize = 8192; - - for (let i = 0; i < binaryString.length; i += chunkSize) { - const end = Math.min(i + chunkSize, binaryString.length); - for (let j = i; j < end; j++) { - uint8Array[j] = binaryString.charCodeAt(j); - } - } - - return uint8Array; -} - -export function uint8ArrayToBase64(uint8Array: Uint8Array): string { - let binaryString = ""; - const chunkSize = 8192; - - for (let i = 0; i < uint8Array.length; i += chunkSize) { - const chunk = uint8Array.slice(i, i + chunkSize); - binaryString += String.fromCharCode.apply(null, Array.from(chunk)); - } - - return btoa(binaryString); -} diff --git a/scripts/typecheck.ts b/scripts/typecheck.ts index 03410e6e..6f90969b 100644 --- a/scripts/typecheck.ts +++ b/scripts/typecheck.ts @@ -1,4 +1,4 @@ -import { execSync } from "node:child_process"; +import { type ExecException, execSync } from "node:child_process"; import fg from "fast-glob"; const tsconfigs: string[] = []; @@ -10,14 +10,40 @@ for await (const file of await fg.glob("**/tsconfig.json")) { console.log(`Typechecking ${tsconfigs.length} projects...`); -const failed = ( - await Promise.allSettled( - tsconfigs.map((tsconfig) => execSync(`tsc -p ${tsconfig}`)) - ) -).filter((r) => r.status === "rejected"); +type Result = { + tsconfig: string; + success: boolean; + output: string; +}; + +const results: Result[] = []; + +for (const tsconfig of tsconfigs) { + console.log(`Checking ${tsconfig}...`); + try { + const output = execSync(`tsc -p ${tsconfig}`, { + encoding: "utf-8", + stdio: ["pipe", "pipe", "pipe"] + }); + results.push({ tsconfig, success: true, output }); + console.log(`✅ ${tsconfig} - OK`); + } catch (rawError: unknown) { + const error = rawError as ExecException; + + const output = + error.stdout?.toString() || `${error.stderr?.toString()}` || ""; + results.push({ tsconfig, success: false, output }); + console.error(`❌ ${tsconfig} - Failed:`); + console.error(output); + } +} + +const failed = results.filter((r) => !r.success); if (failed.length > 0) { - console.error("Some projects failed to typecheck!"); + console.error( + `\n${failed.length} of ${tsconfigs.length} projects failed to typecheck!` + ); process.exit(1); }