diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..9370c09 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,128 @@ +# Nitro_Render_V3 — Claude project context + +Pure-TypeScript renderer library for the Nitro retro Habbo client. +Wraps **PixiJS v8** for room/avatar rendering and provides the WebSocket ++ event-bus infrastructure that the React client (`../Nitro-V3`) sits on +top of. + +## Stack + +- **TypeScript 6.0** (root) + **tsgo** (`@typescript/native-preview`, + TS 7 preview compiler — used by `yarn compile:fast`, ~7× faster on + this codebase) +- **PixiJS v8** (`pixi.js@8.18`) +- **Vite 8** for build + bundling +- **Vitest 4** for unit tests +- **Yarn 1.22 workspaces** (`packages/*`) — note: yarn 1, NOT yarn 4 like + the client. The two repos use different package managers on purpose. +- **No React** — this is a pure TS library; React lives in `../Nitro-V3`. + +## Workspace layout + +Twelve internal packages under `packages/*/src/`, each pinning +`typescript: ^6.0.3` in its own `devDependencies`: + +``` +packages/ + api public interfaces (IEventDispatcher, ISessionDataManager, ...) + assets asset loading + caching + avatar avatar rendering / figure resolution + camera in-room camera widget + communication WebSocket + composer/parser pipeline + configuration runtime config loader + events EventDispatcher + NitroEventType + per-domain events + localization LocalizationManager + room RoomEngine + RoomVisualization + session SessionDataManager + RoomSessionManager + handlers + sound SoundManager (howler-based) + utils shared utilities (BinaryReader, Logger, …) +``` + +Root `index.ts` re-exports everything from `@nitrots/*` so the React +client gets a flat `import { … } from '@nitrots/nitro-renderer'`. + +## React-friendly API additions (v2.1.0) + +Three additions matter for the React client integration. Keep these +backwards-compatible: + +### `EventDispatcher.subscribe(type, callback): () => void` + +Signature matches what `useSyncExternalStore` expects — returns an +unsubscriber, no need to juggle callback identity. Implemented in +`packages/events/src/EventDispatcher.ts`. The legacy +`addEventListener` / `removeEventListener` still work. + +### `CommunicationManager.subscribeMessage(eventCtor, handler): () => void` + +Equivalent for packet streams. Implemented in +`packages/communication/src/CommunicationManager.ts`. + +### Snapshot getters on `SessionDataManager` + `RoomSessionManager` + +```ts +getUserDataSnapshot(): Readonly +getActiveRoomSessionSnapshot(): Readonly | null +``` + +Returns **referentially-stable** values: the same object reference is +returned across reads until invalidated. Invalidation happens via the +new event types `NitroEventType.SESSION_DATA_UPDATED` and +`NitroEventType.ROOM_SESSION_UPDATED`. + +When you mutate any field that the snapshot exposes, call the private +`invalidateUserDataSnapshot()` / `invalidateRoomSessionSnapshot()` — +that drops the cached snapshot and dispatches the invalidation event. +The React side rebuilds via `useSyncExternalStore`. + +The interface contracts live in: +- `packages/api/src/nitro/session/IUserDataSnapshot.ts` +- `packages/api/src/nitro/session/IRoomSessionSnapshot.ts` + +## Scripts + +``` +yarn build # vite build +yarn compile # tsc --project ./tsconfig.json --noEmit false +yarn compile:fast # tsgo (~7× faster, TS 7 preview) +yarn eslint # lint src + packages/*/src +yarn test # vitest run +yarn test:watch # vitest watch +yarn test:coverage # vitest with v8 coverage +``` + +## Consumed by + +`../Nitro-V3` consumes this library via `link:../Nitro_Render_V3` +(yarn 4 node-modules linker). DO NOT use `yarn link` — it confuses +vite's asset resolution. The client's `vite.config.js` then maps each +`@nitrots/*` package directly to its source `index.ts` so there's no +build step needed for development. + +When making changes to renderer APIs the React client uses, the +client's `feat/react19-*` branches contain consumers — check +`Nitro-V3/src/hooks/events/` and `Nitro-V3/src/hooks/{session,rooms}/` +for the React-side bridge code. + +## Gotchas + +- **`SessionDataManager.getUserData(id)` does NOT exist.** Some legacy + code in the React client used it under a `getUserData ?` truthy guard; + the branch was always dead. Only `getUserDataSnapshot()` exists. +- `IRoomSession.sendChatMessage` / `sendShoutMessage` require **3 args** + (text, styleId, chatColour). The React client's chat-input legacy + passes 2 — known pre-existing gap, do not "fix" the client without + also threading chatColour through the chat composer pipeline. +- The renderer is **synchronous**: `EventDispatcher.dispatchEvent` is a + synchronous loop over listeners. Don't add `await` inside the + `processEvent` loop — it would change ordering guarantees that + consumers rely on. +- Workspace package devDeps pin TS at `^6.0.3` so `yarn compile` inside + any single package keeps working. The root TS 6 is the source of + truth. + +## Sister projects in the same DEV folder + +- `../Nitro-V3` — React 19 client (consumes this lib via link) +- `../Arcturus-Morningstar-Extended` — Java emulator (server side) +- `../NitroV3-Housekeeping` — Next.js + Prisma admin CMS diff --git a/package.json b/package.json index bdec0b0..e007a89 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,7 @@ }, "main": "./index", "dependencies": { - "@thumbmarkjs/thumbmarkjs": "^1.8.1", + "@thumbmarkjs/thumbmarkjs": "^1.9.0", "gifuct-js": "^2.1.2", "howler": "^2.2.4", "pako": "^2.1.0", diff --git a/packages/api/package.json b/packages/api/package.json index ac5ffdb..db9f80d 100644 --- a/packages/api/package.json +++ b/packages/api/package.json @@ -15,6 +15,6 @@ "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/assets/package.json b/packages/assets/package.json index 00a013b..3fe5a7a 100644 --- a/packages/assets/package.json +++ b/packages/assets/package.json @@ -14,10 +14,10 @@ "dependencies": { "@nitrots/api": "1.0.0", "@nitrots/utils": "1.0.0", - "@pixi/gif": "^3.0.1", - "pixi.js": "^8.8.1" + "@pixi/gif": "^3.0.1", + "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/avatar/package.json b/packages/avatar/package.json index 3f70573..ee629be 100644 --- a/packages/avatar/package.json +++ b/packages/avatar/package.json @@ -15,6 +15,6 @@ "@nitrots/utils": "1.0.0" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/camera/package.json b/packages/camera/package.json index d189993..cb6cc73 100644 --- a/packages/camera/package.json +++ b/packages/camera/package.json @@ -17,6 +17,6 @@ "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/communication/package.json b/packages/communication/package.json index 7d05ed6..fc402e8 100644 --- a/packages/communication/package.json +++ b/packages/communication/package.json @@ -12,9 +12,9 @@ "@nitrots/api": "1.0.0", "@nitrots/events": "1.0.0", "@nitrots/utils": "1.0.0", - "@thumbmarkjs/thumbmarkjs": "^1.8.1" + "@thumbmarkjs/thumbmarkjs": "^1.9.0" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/configuration/package.json b/packages/configuration/package.json index 337c839..24d9f30 100644 --- a/packages/configuration/package.json +++ b/packages/configuration/package.json @@ -13,6 +13,6 @@ "@nitrots/utils": "1.0.0" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/events/package.json b/packages/events/package.json index 85c4b86..3b445e6 100644 --- a/packages/events/package.json +++ b/packages/events/package.json @@ -13,6 +13,6 @@ "@nitrots/utils": "1.0.0" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/localization/package.json b/packages/localization/package.json index 3dcfc43..c275ef3 100644 --- a/packages/localization/package.json +++ b/packages/localization/package.json @@ -16,6 +16,6 @@ "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/room/package.json b/packages/room/package.json index 71e36d4..095815a 100644 --- a/packages/room/package.json +++ b/packages/room/package.json @@ -19,6 +19,6 @@ "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/session/package.json b/packages/session/package.json index 699adc4..d6edb8e 100644 --- a/packages/session/package.json +++ b/packages/session/package.json @@ -18,6 +18,6 @@ "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.8.2" + "typescript": "^6.0.3" } } diff --git a/packages/sound/package.json b/packages/sound/package.json index 53bbf1b..f3b0661 100644 --- a/packages/sound/package.json +++ b/packages/sound/package.json @@ -14,6 +14,6 @@ "pixi.js": "^8.8.1" }, "devDependencies": { - "typescript": "~5.5.4" + "typescript": "^6.0.3" } } diff --git a/packages/utils/package.json b/packages/utils/package.json index 4c99424..ebd3ad0 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -15,6 +15,6 @@ }, "devDependencies": { "@types/pako": "^2.0.3", - "typescript": "~5.5.4" + "typescript": "^6.0.3" } } diff --git a/yarn.lock b/yarn.lock index 00446ba..257b9cd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -248,10 +248,10 @@ dependencies: "@tybys/wasm-util" "^0.10.1" -"@oxc-project/types@=0.127.0": - version "0.127.0" - resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.127.0.tgz#8374fcdfb4a641861218daa5700c447c00b66663" - integrity sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ== +"@oxc-project/types@=0.128.0": + version "0.128.0" + resolved "https://registry.yarnpkg.com/@oxc-project/types/-/types-0.128.0.tgz#efc7524f948ff9e8ab1404ecad1823849c6fe149" + integrity sha512-huv1Y/LzBJkBVHt3OlC7u0zHBW9qXf1FdD7sGmc1rXc2P1mTwHssYv7jyGx5KAACSCH+9B3Bhn6Z9luHRvf7pQ== "@pixi/colord@^2.9.6": version "2.9.6" @@ -263,89 +263,89 @@ resolved "https://registry.yarnpkg.com/@pixi/gif/-/gif-3.0.1.tgz#2709d6559d316161cde1821b0f29cc2c05f88794" integrity sha512-oGl0nkbFAe1vaRLyIvGbJc3fcIrS8vF1E00cwjiV+9f1pYe072D+yijJxHsgYnXs6jdzERh+D0MqSrEag0jRzg== -"@rolldown/binding-android-arm64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.17.tgz#0a502a88c39d0ffa81aa30b561dade6f6217dcc5" - integrity sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ== +"@rolldown/binding-android-arm64@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-android-arm64/-/binding-android-arm64-1.0.0-rc.18.tgz#3af8b2242086125934a85c1915b76e0a6a2054c1" + integrity sha512-lIDyUAfD7U3+BWKzdxMbJcsYHuqXqmGz40aeRqvuAm3y5TkJSYTBW2RDrn65DJFPQqVjUAUqq5uz8urzQ8aBdQ== -"@rolldown/binding-darwin-arm64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.17.tgz#8b7f05ac9000ab19161a79a0346b1b64a1bc7ba3" - integrity sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw== +"@rolldown/binding-darwin-arm64@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-arm64/-/binding-darwin-arm64-1.0.0-rc.18.tgz#ae0b4467d24ecd6c6589f03d4d4699616ee9649c" + integrity sha512-apJq2ktnGp27nSInMR5Vcj8kY6xJzDAvfdIFlpDcAK/w4cDO58qVoi1YQsES/SKiFNge/6e4CUzgjfHduYqWpQ== -"@rolldown/binding-darwin-x64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.17.tgz#f8b465b3a4e992053890b162f1ae19e4f1719a6a" - integrity sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw== +"@rolldown/binding-darwin-x64@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-darwin-x64/-/binding-darwin-x64-1.0.0-rc.18.tgz#23cf24b0a7b96c8990bbdd8a91e7fd3ba82b00e7" + integrity sha512-5Ofot8xbs+pxRHJqm9/9N/4sTQOvdrwEsmPE9pdLEEoAbdZtG6F2LMDfO1sp6ZAtXJuJV/21ew2srq3W8NXB5g== -"@rolldown/binding-freebsd-x64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.17.tgz#a8281e14fa9c243fe22dc2d0e54900e66b31935e" - integrity sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw== +"@rolldown/binding-freebsd-x64@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-freebsd-x64/-/binding-freebsd-x64-1.0.0-rc.18.tgz#a047a770f94dc451c062b729e5d1cf82e5c6f9c4" + integrity sha512-7h8eeOTT1eyqJyx64BFCnWZpNm486hGWt2sqeLLgDxA0xI1oGZ9H7gK1S85uNGmBhkdPwa/6reTxfFFKvIsebw== -"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.17.tgz#cd29cf869ddd4fac8d6929abf94b91ddb0494650" - integrity sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ== +"@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm-gnueabihf/-/binding-linux-arm-gnueabihf-1.0.0-rc.18.tgz#c0b7f346cbf50301cea669a4632bc63aabe6a72c" + integrity sha512-eRcm/HVt9U/JFu5RKAEKwGQYtDCKWLiaH6wOnsSEp6NMBb/3Os8LgHZlNyzMpFVNmiiMFlfb2zEnebfzJrHFmg== -"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.17.tgz#91c331236ec3728366218d61a62f0bd226546c6c" - integrity sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q== +"@rolldown/binding-linux-arm64-gnu@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.0.0-rc.18.tgz#af56373c7996ebe6379207cd699c9f7f705e235d" + integrity sha512-SOrT/cT4ukTmgnrEz/Hg3m7LBnuCLW9psDeMKrimRWY4I8DmnO7Lco8W2vtqPmMkbVu8iJ+g4GFLVLLOVjJ9DQ== -"@rolldown/binding-linux-arm64-musl@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.17.tgz#80108957db752e7826836e22240e56b8140e9684" - integrity sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg== +"@rolldown/binding-linux-arm64-musl@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.0.0-rc.18.tgz#a8f5acd21fcffc8991aa84710e3ae603c4240ea4" + integrity sha512-QWjdxN1HJCpBTAcZ5N5F7wju3gVPzRzSpmGzx7na0c/1qpN9CFil+xt+l9lV/1M6/gqHSNXCiqPfwhVJPeLnug== -"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.17.tgz#1dce51148cbc6bab3c3f9157b5323d2a31aac924" - integrity sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA== +"@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-ppc64-gnu/-/binding-linux-ppc64-gnu-1.0.0-rc.18.tgz#1d4a89e040ff82141fc46e717cfab80b05f7c13f" + integrity sha512-ugCOyj7a4d9h3q9B+wXmf6g3a68UsjGh6dob5DHevHGMwDUbhsYNbSPxJsENcIttJZ9jv7qGM2UesLw5jqIhdg== -"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.17.tgz#d4a0d2e01d8d441e4ac3af3fa68eec17a7d0e9cd" - integrity sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA== +"@rolldown/binding-linux-s390x-gnu@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-s390x-gnu/-/binding-linux-s390x-gnu-1.0.0-rc.18.tgz#97c21feeb2ed87d07820f0b2dcc5dd663e7a7f3b" + integrity sha512-kKWRhbsotpXkGbcd5dllUWg5gEXcDAa8u5YnP9AV5DYNbvJHGzzuwv7dpmhc8NqKMJldl0a+x76IHbspEpEmdA== -"@rolldown/binding-linux-x64-gnu@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.17.tgz#0ac8b3139cefeea798ad147f30ea70572b133af1" - integrity sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA== +"@rolldown/binding-linux-x64-gnu@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.0.0-rc.18.tgz#06310d40fe139ccc3c433b361120d337c66ebec2" + integrity sha512-uCo8ElcCIAMyYAZyuIZ81oFkhTSIllNvUCHCAlbhlN4ji3uC28h7IIdlXyIvGO7HsuqnV9p3rD/bpH7XhIyhRw== -"@rolldown/binding-linux-x64-musl@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.17.tgz#2af61bee087571728f58f1c47734bbbd41dd7050" - integrity sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw== +"@rolldown/binding-linux-x64-musl@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-linux-x64-musl/-/binding-linux-x64-musl-1.0.0-rc.18.tgz#6a711258841f42609b238050cfcd5db13ac136d0" + integrity sha512-XNOQZtuE6yUIvx4rwGemwh8kpL1xvU41FXy/s9K7T/3JVcqGzo3NfKM2HrbrGgfPYGFW42f07Wk++aOC6B9NWA== -"@rolldown/binding-openharmony-arm64@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.17.tgz#56c1afbf6c592819abf47b4a983987dc288b30c1" - integrity sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA== +"@rolldown/binding-openharmony-arm64@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-openharmony-arm64/-/binding-openharmony-arm64-1.0.0-rc.18.tgz#15cb644beeafdbec930d79ed45c2a7c2573eac70" + integrity sha512-tSn/kzrfa7tNOXr7sEacDBN4YsIqTyLqh45IO0nHDwtpKIDNDJr+VFojt+4klSpChxB29JLyduSsE0MKEwa65A== -"@rolldown/binding-wasm32-wasi@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.17.tgz#5d112ff4dd0d268a60fb4e0eb3077e3ea2531f0d" - integrity sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA== +"@rolldown/binding-wasm32-wasi@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-wasm32-wasi/-/binding-wasm32-wasi-1.0.0-rc.18.tgz#ca3a56d11dfd533d743711141b3bb4c1ec10110e" + integrity sha512-+J9YGmc+czgqlhYmwun3S3O0FIZhsH8ep2456xwjAdIOmuJxM7xz4P4PtrxU+Bz17a/5bqPA8o3HAAoX0teUdg== dependencies: "@emnapi/core" "1.10.0" "@emnapi/runtime" "1.10.0" "@napi-rs/wasm-runtime" "^1.1.4" -"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.17.tgz#5125a85222d64a543201d28e16a395cc45bf4d17" - integrity sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA== +"@rolldown/binding-win32-arm64-msvc@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.0.0-rc.18.tgz#8c2117d68331d7de59d24631146d538fc203d27c" + integrity sha512-zsu47DgU0FQzSwi6sU9dZoEdUv7pc1AptSEz/Z8HBg54sV0Pbs3N0+CrIbTsgiu6EyoaNN9CHboqbLaz9lhOyQ== -"@rolldown/binding-win32-x64-msvc@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.17.tgz#fc6b78e759a0bb2054b5c0a3489da12b2cae54b4" - integrity sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg== +"@rolldown/binding-win32-x64-msvc@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.0.0-rc.18.tgz#bb5c28df3095046778cc1b020ef52fc5ee7b7e70" + integrity sha512-7H+3yqGgmnlDTRRhw/xpYY9J1kf4GC681nVc4GqKhExZTDrVVrV2tsOR9kso0fvgBdcTCcQShx4SLLoHgaLwhg== -"@rolldown/pluginutils@1.0.0-rc.17": - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.17.tgz#a89b30833fb628bc834fe2e89fea93a2da9fa69a" - integrity sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg== +"@rolldown/pluginutils@1.0.0-rc.18": + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/@rolldown/pluginutils/-/pluginutils-1.0.0-rc.18.tgz#51cf2589596a179ebe8cbf313f1358c7b51a2fdc" + integrity sha512-CUY5Mnhe64xQBGZEEXQ5WyZwsc1JU3vAZLIxtrsBt3LO6UOb+C8GunVKqe9sT8NeWb4lqSaoJtp2xo6GxT1MNw== "@rollup/plugin-typescript@^11.1.6": version "11.1.6" @@ -369,10 +369,10 @@ resolved "https://registry.yarnpkg.com/@standard-schema/spec/-/spec-1.1.0.tgz#a79b55dbaf8604812f52d140b2c9ab41bc150bb8" integrity sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w== -"@thumbmarkjs/thumbmarkjs@^1.8.1": - version "1.8.1" - resolved "https://registry.yarnpkg.com/@thumbmarkjs/thumbmarkjs/-/thumbmarkjs-1.8.1.tgz#93f9725e9bc0ba2d6bffdfda27fb23c11da421bb" - integrity sha512-9cX/mC9gC0a4Kr2ZSPO9MR9azangLiD0ANQmvQ/YCqBuinT56phyYg5u97+f5IYx9/4BH9qOXj0oyAnoxrJorA== +"@thumbmarkjs/thumbmarkjs@^1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@thumbmarkjs/thumbmarkjs/-/thumbmarkjs-1.9.0.tgz#a6444ac1f924f061cfc1507a21dcaf83ee705cab" + integrity sha512-6LooyYk8i5L2zEZgDMLE6m2sGDcIHHBiZfxdFp0A16Q4ZXafEmhHmt+zCqQEBMiQHi+08e/v5q77IY2KhvAJwg== "@tybys/wasm-util@^0.10.1": version "0.10.2" @@ -400,9 +400,9 @@ integrity sha512-k/9fOUGO39yd2sCjrbAJvGDEQvRwRnQIZlBz43roGwUZo5SHAmyVvSFyaVVZkicRVCaDXPKlbxrUcBuJoSWunQ== "@types/estree@^1.0.0", "@types/estree@^1.0.6": - version "1.0.8" - resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.8.tgz#958b91c991b1867ced318bedea0e215ee050726e" - integrity sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w== + version "1.0.9" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.9.tgz#cf3f0e876d7bee15a93ab925b82bf570a3904a24" + integrity sha512-GhdPgy1el4/ImP05X05Uw4cw2/M93BCUmnEvWZNStlCzEKME4Fkk+YpoA5OiHNQmoS7Cafb8Xa3Pya8m1Qrzeg== "@types/gradient-parser@^0.1.2": version "0.1.5" @@ -420,9 +420,9 @@ integrity sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA== "@types/node@^20.14.12": - version "20.19.39" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.39.tgz#e98a3b575574070cd34b784bd173767269f95e99" - integrity sha512-orrrD74MBUyK8jOAD/r0+lfa1I2MO6I+vAkmAWzMYbCcgrN4lCrmK52gRFQq/JRxfYPfonkr4b0jcY7Olqdqbw== + version "20.19.40" + resolved "https://registry.yarnpkg.com/@types/node/-/node-20.19.40.tgz#80a4a7236e27817636777836ceedb889adf6da2f" + integrity sha512-xxx6M2IpSTnnKcR0cMvIiohkiCx20/oRPtWGbenFygKCGl3zqUzdNjQ/1V4solq1LU+dgv0nQzeGOuqkqZGg0Q== dependencies: undici-types "~6.21.0" @@ -738,9 +738,9 @@ brace-expansion@^1.1.7: concat-map "0.0.1" brace-expansion@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.5.tgz#dcc3a37116b79f3e1b46db994ced5d570e930fdb" - integrity sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ== + version "5.0.6" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-5.0.6.tgz#ec68fe0a641a29d8711579caf641d05bae1f2285" + integrity sha512-kLpxurY4Z4r9sgMsyG0Z9uzsBlgiU/EFKhj/h91/8yHu0edo7XuixOIH3VcJ8kkxs6/jPzoI6U9Vj3WqbMQ94g== dependencies: balanced-match "^4.0.2" @@ -1514,7 +1514,7 @@ pixi.js@^8.18.1, pixi.js@^8.8.1: parse-svg-path "^0.1.2" tiny-lru "^11.4.7" -postcss@^8.5.10: +postcss@^8.5.14: version "8.5.14" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.14.tgz#a66c2d7808fadf69ebb5b84a03f8bafd76c4919c" integrity sha512-SoSL4+OSEtR99LHFZQiJLkT59C5B1amGO1NzTwj7TT1qCUgUO6hxOvzkOYxD+vMrXBM3XJIKzokoERdqQq/Zmg== @@ -1553,29 +1553,29 @@ resolve@^1.22.1: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -rolldown@1.0.0-rc.17: - version "1.0.0-rc.17" - resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.17.tgz#c524fc22f6bb37b5588aec862ab1ee11382610f3" - integrity sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA== +rolldown@1.0.0-rc.18: + version "1.0.0-rc.18" + resolved "https://registry.yarnpkg.com/rolldown/-/rolldown-1.0.0-rc.18.tgz#c597f89a4ce12e6fc918fa91e4f892b340aa92f0" + integrity sha512-phmyKBpuBdRYDf4hgyynGAYn/rDDe+iZXKVJ7WX5b1zQzpLkP5oJRPGsfJuHdzPMlyyEO/4sPW6yfSx2gf7lVg== dependencies: - "@oxc-project/types" "=0.127.0" - "@rolldown/pluginutils" "1.0.0-rc.17" + "@oxc-project/types" "=0.128.0" + "@rolldown/pluginutils" "1.0.0-rc.18" optionalDependencies: - "@rolldown/binding-android-arm64" "1.0.0-rc.17" - "@rolldown/binding-darwin-arm64" "1.0.0-rc.17" - "@rolldown/binding-darwin-x64" "1.0.0-rc.17" - "@rolldown/binding-freebsd-x64" "1.0.0-rc.17" - "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.17" - "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.17" - "@rolldown/binding-linux-ppc64-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-s390x-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.17" - "@rolldown/binding-linux-x64-musl" "1.0.0-rc.17" - "@rolldown/binding-openharmony-arm64" "1.0.0-rc.17" - "@rolldown/binding-wasm32-wasi" "1.0.0-rc.17" - "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.17" - "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.17" + "@rolldown/binding-android-arm64" "1.0.0-rc.18" + "@rolldown/binding-darwin-arm64" "1.0.0-rc.18" + "@rolldown/binding-darwin-x64" "1.0.0-rc.18" + "@rolldown/binding-freebsd-x64" "1.0.0-rc.18" + "@rolldown/binding-linux-arm-gnueabihf" "1.0.0-rc.18" + "@rolldown/binding-linux-arm64-gnu" "1.0.0-rc.18" + "@rolldown/binding-linux-arm64-musl" "1.0.0-rc.18" + "@rolldown/binding-linux-ppc64-gnu" "1.0.0-rc.18" + "@rolldown/binding-linux-s390x-gnu" "1.0.0-rc.18" + "@rolldown/binding-linux-x64-gnu" "1.0.0-rc.18" + "@rolldown/binding-linux-x64-musl" "1.0.0-rc.18" + "@rolldown/binding-openharmony-arm64" "1.0.0-rc.18" + "@rolldown/binding-wasm32-wasi" "1.0.0-rc.18" + "@rolldown/binding-win32-arm64-msvc" "1.0.0-rc.18" + "@rolldown/binding-win32-x64-msvc" "1.0.0-rc.18" saxes@^6.0.0: version "6.0.0" @@ -1585,9 +1585,9 @@ saxes@^6.0.0: xmlchars "^2.2.0" semver@^7.5.3, semver@^7.7.3: - version "7.7.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.4.tgz#28464e36060e991fa7a11d0279d2d3f3b57a7e8a" - integrity sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA== + version "7.8.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.8.0.tgz#ed0661039fcbcda2ce71f01fa6adbefaa77040df" + integrity sha512-AcM7dV/5ul4EekoQ29Agm5vri8JNqRyj39o0qpX6vDF2GZrtutZl5RwgD1XnZjiTAfncsJhMI48QQH3sN87YNA== shebang-command@^2.0.0: version "2.0.0" @@ -1729,16 +1729,6 @@ typescript@^6.0.3: resolved "https://registry.yarnpkg.com/typescript/-/typescript-6.0.3.tgz#90251dc007916e972786cb94d74d15b185577d21" integrity sha512-y2TvuxSZPDyQakkFRPZHKFm+KKVqIisdg9/CZwm9ftvKXLP8NRWj38/ODjNbr43SsoXqNuAisEf1GdCxqWcdBw== -typescript@~5.5.4: - version "5.5.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.5.4.tgz#d9852d6c82bad2d2eda4fd74a5762a8f5909e9ba" - integrity sha512-Mtq29sKDAEYP7aljRgtPOpTvOfbwRWlS6dPRzwjdE+C0R4brX/GUyhHSecbHMFLNBLcJIPt9nl9yG5TZ1weH+Q== - -typescript@~5.8.2: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== - undici-types@~6.21.0: version "6.21.0" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb" @@ -1752,14 +1742,14 @@ uri-js@^4.2.2: punycode "^2.1.0" "vite@^6.0.0 || ^7.0.0 || ^8.0.0", vite@^8.0.10: - version "8.0.10" - resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.10.tgz#fb31868526ec874101fac084172a2cdc6776319b" - integrity sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw== + version "8.0.11" + resolved "https://registry.yarnpkg.com/vite/-/vite-8.0.11.tgz#d128fe82a0dd24da5127d20560735f1cd7ade0a6" + integrity sha512-Jz1mxtUBR5xTT65VOdJZUUeoyLtqljmFkiUXhPTLZka3RDc9vpi/xXkyrnsdRcm2lIi3l3GPMnAidTsEGIj3Ow== dependencies: lightningcss "^1.32.0" picomatch "^4.0.4" - postcss "^8.5.10" - rolldown "1.0.0-rc.17" + postcss "^8.5.14" + rolldown "1.0.0-rc.18" tinyglobby "^0.2.16" optionalDependencies: fsevents "~2.3.3"