diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 5243799af..847182be1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -36,6 +36,9 @@ jobs: - name: Validate CJS bundle with Node ${{ env.NODE_VERSION }} run: yarn validate-cjs + - name: Validate ESM bundle with Node ${{ env.NODE_VERSION }} + run: yarn validate-esm + - name: Validate translations run: yarn validate-translations diff --git a/.yarnrc.yml b/.yarnrc.yml index 0ad84f513..edc09fdc3 100644 --- a/.yarnrc.yml +++ b/.yarnrc.yml @@ -1,7 +1,5 @@ enableGlobalCache: true -enableHardenedMode: true - enableScripts: false enableTelemetry: false @@ -12,10 +10,11 @@ nmMode: hardlinks-global nodeLinker: node-modules -npmMinimalAgeGate: 3d +npmMinimalAgeGate: 1d npmPreapprovedPackages: - stream-chat + - vite npmPublishProvenance: true diff --git a/examples/tutorial/package.json b/examples/tutorial/package.json index 7a799514d..101fca5e7 100644 --- a/examples/tutorial/package.json +++ b/examples/tutorial/package.json @@ -22,8 +22,8 @@ "devDependencies": { "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.2", + "@vitejs/plugin-react": "^6.0.3", "typescript": "^6.0.3", - "vite": "^8.0.14" + "vite": "^8.1.3" } } diff --git a/examples/vite/package.json b/examples/vite/package.json index 37ea3cf56..7289bf3ba 100644 --- a/examples/vite/package.json +++ b/examples/vite/package.json @@ -24,12 +24,12 @@ "@playwright/test": "^1.60.0", "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", - "@vitejs/plugin-react": "^6.0.2", + "@vitejs/plugin-react": "^6.0.3", "@vitejs/plugin-react-swc": "^4.3.1", "babel-plugin-react-compiler": "^1.0.0", "sass": "^1.100.0", "typescript": "^6.0.3", - "vite": "^8.0.14", + "vite": "^8.1.3", "vite-plugin-babel": "^1.7.3" } } diff --git a/package.json b/package.json index ce2e0b998..8a518a855 100644 --- a/package.json +++ b/package.json @@ -160,8 +160,8 @@ "@types/react": "^19.2.15", "@types/react-dom": "^19.2.3", "@types/use-sync-external-store": "^1.5.0", - "@vitest/coverage-v8": "^4.1.7", - "@vitest/eslint-plugin": "^1.6.18", + "@vitest/coverage-v8": "^4.1.9", + "@vitest/eslint-plugin": "^1.6.20", "concurrently": "^9.2.1", "conventional-changelog-conventionalcommits": "^9.3.1", "emoji-mart": "^5.6.0", @@ -184,8 +184,8 @@ "stream-chat": "^9.49.0", "typescript": "^6.0.3", "typescript-eslint": "^8.59.4", - "vite": "^8.0.14", - "vitest": "^4.1.7", + "vite": "^8.1.3", + "vitest": "^4.1.9", "vitest-axe": "^0.1.0" }, "scripts": { @@ -212,6 +212,7 @@ "types:tests": "tsc --project tsconfig.test.json --noEmit", "validate-translations": "node scripts/validate-translations.js", "validate-cjs": "concurrently 'node scripts/validate-cjs-node-bundle.cjs' 'node scripts/validate-cjs-browser-bundle.cjs'", + "validate-esm": "node scripts/validate-esm-node-bundle.mjs", "semantic-release": "semantic-release", "prepack": "yarn build", "examples:build": "yarn workspaces foreach -A --include '@stream-io/stream-chat-react-*' run build", diff --git a/scripts/validate-esm-node-bundle.mjs b/scripts/validate-esm-node-bundle.mjs new file mode 100644 index 000000000..f2fab770e --- /dev/null +++ b/scripts/validate-esm-node-bundle.mjs @@ -0,0 +1,11 @@ +// ESM counterpart to validate-cjs-node-bundle.cjs. +// +// Node's native ESM loader is stricter than any bundler: it requires file +// extensions on subpath imports of dependencies that ship no "exports" map +// (e.g. `dayjs/plugin/calendar` must be written as `dayjs/plugin/calendar.js`). +// Such specifiers resolve fine through Turbopack/Webpack/Vite but throw +// ERR_MODULE_NOT_FOUND under Node — the same path Next.js takes when it loads +// this package as a server external. Importing the built ESM bundle here catches +// that class of breakage before it ships. + +import '../dist/es/index.mjs'; diff --git a/src/context/TranslationContext.tsx b/src/context/TranslationContext.tsx index 6d98eba37..33bf09c00 100644 --- a/src/context/TranslationContext.tsx +++ b/src/context/TranslationContext.tsx @@ -1,7 +1,7 @@ import React, { useContext } from 'react'; import Dayjs from 'dayjs'; -import calendar from 'dayjs/plugin/calendar'; -import localizedFormat from 'dayjs/plugin/localizedFormat'; +import calendar from 'dayjs/plugin/calendar.js'; +import localizedFormat from 'dayjs/plugin/localizedFormat.js'; import type { PropsWithChildren } from 'react'; import type { TFunction } from 'i18next'; import type { TranslationLanguages } from 'stream-chat'; diff --git a/src/i18n/Streami18n.ts b/src/i18n/Streami18n.ts index 911713693..516181a58 100644 --- a/src/i18n/Streami18n.ts +++ b/src/i18n/Streami18n.ts @@ -1,13 +1,13 @@ import i18n from 'i18next'; import Dayjs from 'dayjs'; -import calendar from 'dayjs/plugin/calendar'; -import updateLocale from 'dayjs/plugin/updateLocale'; -import LocalizedFormat from 'dayjs/plugin/localizedFormat'; -import localeData from 'dayjs/plugin/localeData'; -import relativeTime from 'dayjs/plugin/relativeTime'; -import duration from 'dayjs/plugin/duration'; -import utc from 'dayjs/plugin/utc'; -import timezone from 'dayjs/plugin/timezone'; +import calendar from 'dayjs/plugin/calendar.js'; +import updateLocale from 'dayjs/plugin/updateLocale.js'; +import LocalizedFormat from 'dayjs/plugin/localizedFormat.js'; +import localeData from 'dayjs/plugin/localeData.js'; +import relativeTime from 'dayjs/plugin/relativeTime.js'; +import duration from 'dayjs/plugin/duration.js'; +import utc from 'dayjs/plugin/utc.js'; +import timezone from 'dayjs/plugin/timezone.js'; import { NotificationTranslationTopic, TranslationBuilder } from './TranslationBuilder'; import { defaultTranslatorFunction, predefinedFormatters } from './utils'; @@ -34,21 +34,21 @@ import { trTranslations, } from './translations'; -import 'dayjs/locale/de'; -import 'dayjs/locale/es'; -import 'dayjs/locale/fr'; -import 'dayjs/locale/hi'; -import 'dayjs/locale/it'; -import 'dayjs/locale/ja'; -import 'dayjs/locale/ko'; -import 'dayjs/locale/nl'; -import 'dayjs/locale/pt'; -import 'dayjs/locale/ru'; -import 'dayjs/locale/tr'; +import 'dayjs/locale/de.js'; +import 'dayjs/locale/es.js'; +import 'dayjs/locale/fr.js'; +import 'dayjs/locale/hi.js'; +import 'dayjs/locale/it.js'; +import 'dayjs/locale/ja.js'; +import 'dayjs/locale/ko.js'; +import 'dayjs/locale/nl.js'; +import 'dayjs/locale/pt.js'; +import 'dayjs/locale/ru.js'; +import 'dayjs/locale/tr.js'; // These locale imports also set these locale globally. // So As a last step I am going to import english locale // to make sure I don't mess up language at other places in app. -import 'dayjs/locale/en'; +import 'dayjs/locale/en.js'; const defaultNS = 'translation'; const defaultLng = 'en'; @@ -407,10 +407,8 @@ export type Streami18nOptions = { * ```js * import Dayjs from 'dayjs' * - * import 'dayjs/locale/nl'; - * import 'dayjs/locale/it'; - * // or if you want to include all locales - * import 'dayjs/min/locales'; + * import 'dayjs/locale/nl.js'; + * import 'dayjs/locale/it.js'; * * const i18n = new Streami18n({ * language: 'nl', @@ -745,7 +743,7 @@ export class Streami18n { this.logger( `Streami18n: registerTranslation(language, translation, customDayjsLocale) - ` + `Locale config for ${language} does not exist in Dayjs.` + - `Please import the locale file using "import 'dayjs/locale/${language}';" in your app or ` + + `Please import the locale file using "import 'dayjs/locale/${language}.js';" in your app or ` + `register the locale config with Streami18n using registerTranslation(language, translation, customDayjsLocale)`, ); } diff --git a/src/i18n/types.ts b/src/i18n/types.ts index df2c2db5b..ca8a70c96 100644 --- a/src/i18n/types.ts +++ b/src/i18n/types.ts @@ -50,7 +50,7 @@ export type TimestampFormatterOptions = { /** * import dayjs from 'dayjs'; - * import duration from 'dayjs/plugin/duration'; + * import duration from 'dayjs/plugin/duration.js'; * * dayjs.extend(duration); * diff --git a/src/i18n/utils.ts b/src/i18n/utils.ts index 73615f002..dd9f48b1a 100644 --- a/src/i18n/utils.ts +++ b/src/i18n/utils.ts @@ -1,5 +1,5 @@ import Dayjs from 'dayjs'; -import type { Duration as DayjsDuration } from 'dayjs/plugin/duration'; +import type { Duration as DayjsDuration } from 'dayjs/plugin/duration.js'; import type { TFunction } from 'i18next'; import type { Moment } from 'moment-timezone'; diff --git a/yarn.lock b/yarn.lock index 1848a9f82..36919d7bb 100644 --- a/yarn.lock +++ b/yarn.lock @@ -586,31 +586,31 @@ __metadata: languageName: node linkType: hard -"@emnapi/core@npm:1.10.0": - version: 1.10.0 - resolution: "@emnapi/core@npm:1.10.0" +"@emnapi/core@npm:1.11.1": + version: 1.11.1 + resolution: "@emnapi/core@npm:1.11.1" dependencies: - "@emnapi/wasi-threads": "npm:1.2.1" + "@emnapi/wasi-threads": "npm:1.2.2" tslib: "npm:^2.4.0" - checksum: 10c0/f51d08227857b60632de7714d708124f0e100a1462dde6df8221760939aa3204a73193830371830fac0716f3ccd2129f2cac1b17cd7d7958bc4da9018a296edb + checksum: 10c0/2c6defdac2d1d26090384655d7d6c9614fa553853b1760597686749e9375dc2aa0dae80a2615b81c254600f5d531d07d8466cde0d331a8caae64b93f3ca5937e languageName: node linkType: hard -"@emnapi/runtime@npm:1.10.0": - version: 1.10.0 - resolution: "@emnapi/runtime@npm:1.10.0" +"@emnapi/runtime@npm:1.11.1": + version: 1.11.1 + resolution: "@emnapi/runtime@npm:1.11.1" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/953f14991d1aefb92ee6f8eb27dea725e484791a53a0cb5f47d9e0087b9a2c929ff2e92adf95af15d6ad456db6300c6b761ebf72b50a875b874a83520b3ba093 + checksum: 10c0/04332fb62076afc440aa23316c04bec42f584ca8b074e5507d08e2b33a47cbe0493b1aadb8f3c1057b64ae1e17f5bde1a7bc37f7facc9d0bc25c18197cbd366f languageName: node linkType: hard -"@emnapi/wasi-threads@npm:1.2.1": - version: 1.2.1 - resolution: "@emnapi/wasi-threads@npm:1.2.1" +"@emnapi/wasi-threads@npm:1.2.2": + version: 1.2.2 + resolution: "@emnapi/wasi-threads@npm:1.2.2" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/32fcfa81ab396533b2ec1f4082b1ff779a05d9c836bbbd3f4398405b0e6814c0d9503b7993130e37bc6941dbc1ded49f55e9700ae9ca4e803bab2b5bc5deb331 + checksum: 10c0/f0dc8269d6b20ae5a7c7b36e7a6a333452009d461038ef4febb29da2f3f78c1e2b1576d7e8970a5c5789ed3caedc1f80f5b0c2a5373bdaf8d03b20432bb55747 languageName: node linkType: hard @@ -1159,15 +1159,15 @@ __metadata: languageName: node linkType: hard -"@napi-rs/wasm-runtime@npm:^1.1.4": - version: 1.1.4 - resolution: "@napi-rs/wasm-runtime@npm:1.1.4" +"@napi-rs/wasm-runtime@npm:^1.1.6": + version: 1.1.6 + resolution: "@napi-rs/wasm-runtime@npm:1.1.6" dependencies: - "@tybys/wasm-util": "npm:^0.10.1" + "@tybys/wasm-util": "npm:^0.10.3" peerDependencies: "@emnapi/core": ^1.7.1 "@emnapi/runtime": ^1.7.1 - checksum: 10c0/2e88e1955258949ccf2d18c79975821ad38071b465ef126a5e14110977b97868867b016c1ad046e963cccc42c0bd9db6c8ff5fd1ebb61b87bb3487f339041658 + checksum: 10c0/344518bf3ef65051dda4c00969f293aa4a21ab7dc7822b3f48519b17cd5eaa3f0bc34898d115d50ba59b1817a0cb905d46f7a7223c8249239cd14c28db388e10 languageName: node linkType: hard @@ -1491,10 +1491,10 @@ __metadata: languageName: node linkType: hard -"@oxc-project/types@npm:=0.132.0": - version: 0.132.0 - resolution: "@oxc-project/types@npm:0.132.0" - checksum: 10c0/d0ca5e98be0b873d69e4f0f743eb35026833603dac11db9d55f2b5438251b381b886dc556fe3175a17b673f8e2073c49bde88d7e6e702aa09298c22b8b5504e1 +"@oxc-project/types@npm:=0.137.0": + version: 0.137.0 + resolution: "@oxc-project/types@npm:0.137.0" + checksum: 10c0/5a6a50174e5ac79aebf38a120fe57be7a84c8bb0c77117f30de15183aa5ab0161e78364d2d3725397090e362e5c5f6eda754b53057b0b63983e3ee604f888aca languageName: node linkType: hard @@ -1702,116 +1702,116 @@ __metadata: languageName: node linkType: hard -"@rolldown/binding-android-arm64@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-android-arm64@npm:1.0.2" +"@rolldown/binding-android-arm64@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-android-arm64@npm:1.1.3" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-arm64@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-darwin-arm64@npm:1.0.2" +"@rolldown/binding-darwin-arm64@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-darwin-arm64@npm:1.1.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-darwin-x64@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-darwin-x64@npm:1.0.2" +"@rolldown/binding-darwin-x64@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-darwin-x64@npm:1.1.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-freebsd-x64@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-freebsd-x64@npm:1.0.2" +"@rolldown/binding-freebsd-x64@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-freebsd-x64@npm:1.1.3" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@rolldown/binding-linux-arm-gnueabihf@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.0.2" +"@rolldown/binding-linux-arm-gnueabihf@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-arm-gnueabihf@npm:1.1.3" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@rolldown/binding-linux-arm64-gnu@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.0.2" +"@rolldown/binding-linux-arm64-gnu@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-arm64-gnu@npm:1.1.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-arm64-musl@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-arm64-musl@npm:1.0.2" +"@rolldown/binding-linux-arm64-musl@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-arm64-musl@npm:1.1.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-linux-ppc64-gnu@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.0.2" +"@rolldown/binding-linux-ppc64-gnu@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-ppc64-gnu@npm:1.1.3" conditions: os=linux & cpu=ppc64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-s390x-gnu@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.0.2" +"@rolldown/binding-linux-s390x-gnu@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-s390x-gnu@npm:1.1.3" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-gnu@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-x64-gnu@npm:1.0.2" +"@rolldown/binding-linux-x64-gnu@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-x64-gnu@npm:1.1.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@rolldown/binding-linux-x64-musl@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-linux-x64-musl@npm:1.0.2" +"@rolldown/binding-linux-x64-musl@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-linux-x64-musl@npm:1.1.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@rolldown/binding-openharmony-arm64@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-openharmony-arm64@npm:1.0.2" +"@rolldown/binding-openharmony-arm64@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-openharmony-arm64@npm:1.1.3" conditions: os=openharmony & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-wasm32-wasi@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-wasm32-wasi@npm:1.0.2" +"@rolldown/binding-wasm32-wasi@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-wasm32-wasi@npm:1.1.3" dependencies: - "@emnapi/core": "npm:1.10.0" - "@emnapi/runtime": "npm:1.10.0" - "@napi-rs/wasm-runtime": "npm:^1.1.4" + "@emnapi/core": "npm:1.11.1" + "@emnapi/runtime": "npm:1.11.1" + "@napi-rs/wasm-runtime": "npm:^1.1.6" conditions: cpu=wasm32 languageName: node linkType: hard -"@rolldown/binding-win32-arm64-msvc@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.0.2" +"@rolldown/binding-win32-arm64-msvc@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-win32-arm64-msvc@npm:1.1.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@rolldown/binding-win32-x64-msvc@npm:1.0.2": - version: 1.0.2 - resolution: "@rolldown/binding-win32-x64-msvc@npm:1.0.2" +"@rolldown/binding-win32-x64-msvc@npm:1.1.3": + version: 1.1.3 + resolution: "@rolldown/binding-win32-x64-msvc@npm:1.1.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@rolldown/pluginutils@npm:^1.0.0": +"@rolldown/pluginutils@npm:^1.0.0, @rolldown/pluginutils@npm:^1.0.1": version: 1.0.1 resolution: "@rolldown/pluginutils@npm:1.0.1" checksum: 10c0/99d9b06d90196823e4d8c841f258db7a16e5dbba5824a2962b05d907b79f1ba929d56f22dd744fd530936e568c865ee56a719dc31e57e13bc0a8eb4764a8d8dd @@ -2075,14 +2075,14 @@ __metadata: "@emoji-mart/data": "npm:^1.2.1" "@types/react": "npm:^19.2.15" "@types/react-dom": "npm:^19.2.3" - "@vitejs/plugin-react": "npm:^6.0.2" + "@vitejs/plugin-react": "npm:^6.0.3" emoji-mart: "npm:^5.6.0" react: "npm:^19.2.6" react-dom: "npm:^19.2.6" stream-chat: "npm:^9.49.0" stream-chat-react: "workspace:^" typescript: "npm:^6.0.3" - vite: "npm:^8.0.14" + vite: "npm:^8.1.3" languageName: unknown linkType: soft @@ -2095,7 +2095,7 @@ __metadata: "@playwright/test": "npm:^1.60.0" "@types/react": "npm:^19.2.15" "@types/react-dom": "npm:^19.2.3" - "@vitejs/plugin-react": "npm:^6.0.2" + "@vitejs/plugin-react": "npm:^6.0.3" "@vitejs/plugin-react-swc": "npm:^4.3.1" babel-plugin-react-compiler: "npm:^1.0.0" clsx: "npm:^2.1.1" @@ -2108,7 +2108,7 @@ __metadata: stream-chat: "npm:^9.49.0" stream-chat-react: "workspace:^" typescript: "npm:^6.0.3" - vite: "npm:^8.0.14" + vite: "npm:^8.1.3" vite-plugin-babel: "npm:^1.7.3" languageName: unknown linkType: soft @@ -2358,12 +2358,12 @@ __metadata: languageName: node linkType: hard -"@tybys/wasm-util@npm:^0.10.1": - version: 0.10.2 - resolution: "@tybys/wasm-util@npm:0.10.2" +"@tybys/wasm-util@npm:^0.10.3": + version: 0.10.3 + resolution: "@tybys/wasm-util@npm:0.10.3" dependencies: tslib: "npm:^2.4.0" - checksum: 10c0/26165bcd1fd7269f42d7fbe3de318f854a8968de8397e89fc9a423bb3e2da35a52150f382e6323b3367595beb16d9800a6f35971a5599daf76da1742ec3afc25 + checksum: 10c0/fd2bd2a79c6cd8c79ed1cf7a0fa375c64589264c88a27acaf9756d556b453ea222b62a4f68dd2fbb8b3a78b6bab3b1f4fb2431b6afc6aeda8344b53a521a1cd3 languageName: node linkType: hard @@ -2765,11 +2765,11 @@ __metadata: languageName: node linkType: hard -"@vitejs/plugin-react@npm:^6.0.2": - version: 6.0.2 - resolution: "@vitejs/plugin-react@npm:6.0.2" +"@vitejs/plugin-react@npm:^6.0.3": + version: 6.0.3 + resolution: "@vitejs/plugin-react@npm:6.0.3" dependencies: - "@rolldown/pluginutils": "npm:^1.0.0" + "@rolldown/pluginutils": "npm:^1.0.1" peerDependencies: "@rolldown/plugin-babel": ^0.1.7 || ^0.2.0 babel-plugin-react-compiler: ^1.0.0 @@ -2779,16 +2779,16 @@ __metadata: optional: true babel-plugin-react-compiler: optional: true - checksum: 10c0/6e2d90974e05f2a9aefafad1d137b75c3b3b4bf3f2affdbfe77c6b11b24832cff22dd8852430c6341e2fb5b00a4513fb00db306a6abdbec6f0f5841e93bbcfba + checksum: 10c0/592a93178c0eec420759d529a2c964a7103860808f549f72993b96a38c287c929a0d371cacbd932c37ee2118b830348db752cc01a31d688c71d19d74567251fa languageName: node linkType: hard -"@vitest/coverage-v8@npm:^4.1.7": - version: 4.1.7 - resolution: "@vitest/coverage-v8@npm:4.1.7" +"@vitest/coverage-v8@npm:^4.1.9": + version: 4.1.9 + resolution: "@vitest/coverage-v8@npm:4.1.9" dependencies: "@bcoe/v8-coverage": "npm:^1.0.2" - "@vitest/utils": "npm:4.1.7" + "@vitest/utils": "npm:4.1.9" ast-v8-to-istanbul: "npm:^1.0.0" istanbul-lib-coverage: "npm:^3.2.2" istanbul-lib-report: "npm:^3.0.1" @@ -2798,18 +2798,18 @@ __metadata: std-env: "npm:^4.0.0-rc.1" tinyrainbow: "npm:^3.1.0" peerDependencies: - "@vitest/browser": 4.1.7 - vitest: 4.1.7 + "@vitest/browser": 4.1.9 + vitest: 4.1.9 peerDependenciesMeta: "@vitest/browser": optional: true - checksum: 10c0/288fa77cfec00d84528154be90727ee0a868b91a32847b57e078fa4f3061711a53036a68d78bb4ea15e5c65b4644af6d2b7ad28b68b9301e9145426cdc27c0cd + checksum: 10c0/02bc408d5d8d5188bb569ae1df1f56903e9e19a6a19ddeff07140e1b344b82662f0669c7ee87b6f4f82c9d1d63a0296fe40c023f923a500a707463c8c05ec133 languageName: node linkType: hard -"@vitest/eslint-plugin@npm:^1.6.18": - version: 1.6.18 - resolution: "@vitest/eslint-plugin@npm:1.6.18" +"@vitest/eslint-plugin@npm:^1.6.20": + version: 1.6.20 + resolution: "@vitest/eslint-plugin@npm:1.6.20" dependencies: "@typescript-eslint/scope-manager": "npm:^8.58.0" "@typescript-eslint/utils": "npm:^8.58.0" @@ -2825,29 +2825,29 @@ __metadata: optional: true vitest: optional: true - checksum: 10c0/c15be87d90eb6e68cced1550967af597fd3a15adaab1d031c5cb211964a6faa029af4c2d7587ab42d851106acf38d2503a37d7003fcd146548e78cff0f046ef0 + checksum: 10c0/9c1b3697fec30304aea3c28efe0077b74f6b9423d0bed51c63e11ef7287a13cf3d3a4ce0a6ba853a91781da80820bd9b43cbf02766b6abe4ae054c93046ee36e languageName: node linkType: hard -"@vitest/expect@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/expect@npm:4.1.7" +"@vitest/expect@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/expect@npm:4.1.9" dependencies: "@standard-schema/spec": "npm:^1.1.0" "@types/chai": "npm:^5.2.2" - "@vitest/spy": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" + "@vitest/spy": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" chai: "npm:^6.2.2" tinyrainbow: "npm:^3.1.0" - checksum: 10c0/1a72387c6d3cac1e12cd4df382e666d96560b38001ea0133f1e0a22825f71ccf1640ccce13244296b0054c15cf04442f3adbd67dfc57fe542bd35a46cd805487 + checksum: 10c0/243bacaed2cba5e0ea4ec7465662fcec465a358a0e06381e337fac49426aa67a73b104fbb9d65d8bccadfba8f70e27f57ffb897aacfa140f579a556367357875 languageName: node linkType: hard -"@vitest/mocker@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/mocker@npm:4.1.7" +"@vitest/mocker@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/mocker@npm:4.1.9" dependencies: - "@vitest/spy": "npm:4.1.7" + "@vitest/spy": "npm:4.1.9" estree-walker: "npm:^3.0.3" magic-string: "npm:^0.30.21" peerDependencies: @@ -2858,56 +2858,56 @@ __metadata: optional: true vite: optional: true - checksum: 10c0/e03dbbba435543e3cfa5e034ba8ade371de5e398255f75366ebc370ff8dd78d45f7d7cc9daa76eb1d399b31e659e47d3cbb710566e64ceeeba3f99b418e4b955 + checksum: 10c0/707353b7435bbfd441cc754e4ee7bc5921b70d07b051c6e414b6bbe4ca369154702b0ddeb603389469fe87ca1983e002eb2d55044582661f54a1945dd27e5c82 languageName: node linkType: hard -"@vitest/pretty-format@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/pretty-format@npm:4.1.7" +"@vitest/pretty-format@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/pretty-format@npm:4.1.9" dependencies: tinyrainbow: "npm:^3.1.0" - checksum: 10c0/49ef801171708e3a92214e8720efbedbd6e0e6baf17971aaf4feb7422e5c9eba82262c24a9e6dd4d41a31fae77bd31d5b37cf140d13e0ac4ce29a7457bdc692f + checksum: 10c0/5b96295f25ab885616230ad1355fc82f490bebb39cc707688d7c8969c08270d7e076ed8a10af4e762ed57145193c6061a1f549f136f0ded344f8db0c2b3fb3de languageName: node linkType: hard -"@vitest/runner@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/runner@npm:4.1.7" +"@vitest/runner@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/runner@npm:4.1.9" dependencies: - "@vitest/utils": "npm:4.1.7" + "@vitest/utils": "npm:4.1.9" pathe: "npm:^2.0.3" - checksum: 10c0/63474c6fc088d75b5d7fe735195504f923c694b83a22eb9caa53d6486c923974304c2e3ef4d5bcd808d88082174f38434be320fc4fe649a8cf33f0459a0576e3 + checksum: 10c0/d206b4891a64b1f55c346f832b0a7b489108094d8ae34438d3b53e78be7b45b139fa95ffa027c98c357bd532268ee573168de1943235b7eed32a9236ed5978bb languageName: node linkType: hard -"@vitest/snapshot@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/snapshot@npm:4.1.7" +"@vitest/snapshot@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/snapshot@npm:4.1.9" dependencies: - "@vitest/pretty-format": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" + "@vitest/pretty-format": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" magic-string: "npm:^0.30.21" pathe: "npm:^2.0.3" - checksum: 10c0/6fa49c4242a4acc0557ee6a20552db41f4f4c9d2d4c05993181c3f5f19e66579e08f63d34f792b79400547ab791ef500a9955b77390c381e45c3bb8e33717793 + checksum: 10c0/c3099df12ad1f9c1e180441856c9eb82f1990f87ff16aafedd6fa19978eaff20bc59220b692a99fcc822daef86eab256ba3dadb49544b7bd625b57c49cd9d995 languageName: node linkType: hard -"@vitest/spy@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/spy@npm:4.1.7" - checksum: 10c0/be2a95d5c5c438b57c9b33cef1289fb02659214754b5e946cb4b8183e2b5089e49e3fda6ca05981f3ea9872b207595db109e25072668c0a671203f69fddbbe99 +"@vitest/spy@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/spy@npm:4.1.9" + checksum: 10c0/e51f328f55b76e8ba66e5e18f183484a8dc0a092685b101112d3e9fb8e989ddca162c98ddf00254476502c25bc05c4ec1e277fd6ad8bfc702464c08f6b5dd115 languageName: node linkType: hard -"@vitest/utils@npm:4.1.7": - version: 4.1.7 - resolution: "@vitest/utils@npm:4.1.7" +"@vitest/utils@npm:4.1.9": + version: 4.1.9 + resolution: "@vitest/utils@npm:4.1.9" dependencies: - "@vitest/pretty-format": "npm:4.1.7" + "@vitest/pretty-format": "npm:4.1.9" convert-source-map: "npm:^2.0.0" tinyrainbow: "npm:^3.1.0" - checksum: 10c0/aa0079d8923506300527dc23ff68cf090ffcb2c6a9549e598ae22ba0eb8a6bb4448b10724b38bc6b077f9957333302a857d791ad2f7abd807bb6263c9a218833 + checksum: 10c0/d55506c077fd72c091eb66f02926f0abf72801c87a085f565698289562f47befa114ae2c680ab8736dfe46abab0cfd6b8031f2ac519bafeb37578aa6e5ad03c5 languageName: node linkType: hard @@ -8888,14 +8888,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.5.15": - version: 8.5.15 - resolution: "postcss@npm:8.5.15" +"postcss@npm:^8.5.16": + version: 8.5.16 + resolution: "postcss@npm:8.5.16" dependencies: nanoid: "npm:^3.3.12" picocolors: "npm:^1.1.1" source-map-js: "npm:^1.2.1" - checksum: 10c0/7f2e63ae22fbe43aace1bf652bd99da4e90737c64194d49e51ddc9cd0f9e51ff2861a7d734379b494deffa03a880a5c65eec70bc29ee9ebaa7136dde3eee8f31 + checksum: 10c0/625de7a02f662f3a340964d14b487bd5097adf16f5f171e257d19005ba37aea8768ee446557500e88e91ca46b4d14d6cb4a0bf033c6ec0c8c0b660d85719f1ef languageName: node linkType: hard @@ -9476,26 +9476,26 @@ __metadata: languageName: node linkType: hard -"rolldown@npm:1.0.2": - version: 1.0.2 - resolution: "rolldown@npm:1.0.2" - dependencies: - "@oxc-project/types": "npm:=0.132.0" - "@rolldown/binding-android-arm64": "npm:1.0.2" - "@rolldown/binding-darwin-arm64": "npm:1.0.2" - "@rolldown/binding-darwin-x64": "npm:1.0.2" - "@rolldown/binding-freebsd-x64": "npm:1.0.2" - "@rolldown/binding-linux-arm-gnueabihf": "npm:1.0.2" - "@rolldown/binding-linux-arm64-gnu": "npm:1.0.2" - "@rolldown/binding-linux-arm64-musl": "npm:1.0.2" - "@rolldown/binding-linux-ppc64-gnu": "npm:1.0.2" - "@rolldown/binding-linux-s390x-gnu": "npm:1.0.2" - "@rolldown/binding-linux-x64-gnu": "npm:1.0.2" - "@rolldown/binding-linux-x64-musl": "npm:1.0.2" - "@rolldown/binding-openharmony-arm64": "npm:1.0.2" - "@rolldown/binding-wasm32-wasi": "npm:1.0.2" - "@rolldown/binding-win32-arm64-msvc": "npm:1.0.2" - "@rolldown/binding-win32-x64-msvc": "npm:1.0.2" +"rolldown@npm:~1.1.3": + version: 1.1.3 + resolution: "rolldown@npm:1.1.3" + dependencies: + "@oxc-project/types": "npm:=0.137.0" + "@rolldown/binding-android-arm64": "npm:1.1.3" + "@rolldown/binding-darwin-arm64": "npm:1.1.3" + "@rolldown/binding-darwin-x64": "npm:1.1.3" + "@rolldown/binding-freebsd-x64": "npm:1.1.3" + "@rolldown/binding-linux-arm-gnueabihf": "npm:1.1.3" + "@rolldown/binding-linux-arm64-gnu": "npm:1.1.3" + "@rolldown/binding-linux-arm64-musl": "npm:1.1.3" + "@rolldown/binding-linux-ppc64-gnu": "npm:1.1.3" + "@rolldown/binding-linux-s390x-gnu": "npm:1.1.3" + "@rolldown/binding-linux-x64-gnu": "npm:1.1.3" + "@rolldown/binding-linux-x64-musl": "npm:1.1.3" + "@rolldown/binding-openharmony-arm64": "npm:1.1.3" + "@rolldown/binding-wasm32-wasi": "npm:1.1.3" + "@rolldown/binding-win32-arm64-msvc": "npm:1.1.3" + "@rolldown/binding-win32-x64-msvc": "npm:1.1.3" "@rolldown/pluginutils": "npm:^1.0.0" dependenciesMeta: "@rolldown/binding-android-arm64": @@ -9530,7 +9530,7 @@ __metadata: optional: true bin: rolldown: ./bin/cli.mjs - checksum: 10c0/628327a6e3122c0b62880f1c87d54095394e5138a6af2e6e7b2f67ef4c4b11f1421db68c9a5bb4e1be161465a863ab4f68f15076ce895cd4bb3d0ba18a3b20b1 + checksum: 10c0/6dae11bee45c56d000d5d2608ac78b2c7125b7f10337e0b0bbdee7290c352104f1f76072f8c0e6ccad331f51f1a131fc37faa179d9c4a10cc16abc87f85f6e86 languageName: node linkType: hard @@ -10064,8 +10064,8 @@ __metadata: "@types/react": "npm:^19.2.15" "@types/react-dom": "npm:^19.2.3" "@types/use-sync-external-store": "npm:^1.5.0" - "@vitest/coverage-v8": "npm:^4.1.7" - "@vitest/eslint-plugin": "npm:^1.6.18" + "@vitest/coverage-v8": "npm:^4.1.9" + "@vitest/eslint-plugin": "npm:^1.6.20" clsx: "npm:^2.1.1" concurrently: "npm:^9.2.1" conventional-changelog-conventionalcommits: "npm:^9.3.1" @@ -10110,8 +10110,8 @@ __metadata: unist-builder: "npm:^4.0.0" unist-util-visit: "npm:^5.1.0" use-sync-external-store: "npm:^1.6.0" - vite: "npm:^8.0.14" - vitest: "npm:^4.1.7" + vite: "npm:^8.1.3" + vitest: "npm:^4.1.9" vitest-axe: "npm:^0.1.0" peerDependencies: "@breezystack/lamejs": ^1.2.7 @@ -10573,13 +10573,13 @@ __metadata: languageName: node linkType: hard -"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.16": - version: 0.2.16 - resolution: "tinyglobby@npm:0.2.16" +"tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.14, tinyglobby@npm:^0.2.15, tinyglobby@npm:^0.2.17": + version: 0.2.17 + resolution: "tinyglobby@npm:0.2.17" dependencies: fdir: "npm:^6.5.0" picomatch: "npm:^4.0.4" - checksum: 10c0/f2e09fd93dd95c41e522113b686ff6f7c13020962f8698a864a257f3d7737599afc47722b7ab726e12f8a813f779906187911ff8ee6701ede65072671a7e934b + checksum: 10c0/7f7bb0f197c88bc4b20c231e0deca4240ca3bf313a88f5a7fee93a872b84966a4d50220947c0455ad07a60b3b360961c5b7fd979222aeb716a9f99b412002e4c languageName: node linkType: hard @@ -11148,19 +11148,19 @@ __metadata: languageName: node linkType: hard -"vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0, vite@npm:^8.0.14": - version: 8.0.14 - resolution: "vite@npm:8.0.14" +"vite@npm:^6.0.0 || ^7.0.0 || ^8.0.0, vite@npm:^8.1.3": + version: 8.1.3 + resolution: "vite@npm:8.1.3" dependencies: fsevents: "npm:~2.3.3" lightningcss: "npm:^1.32.0" picomatch: "npm:^4.0.4" - postcss: "npm:^8.5.15" - rolldown: "npm:1.0.2" - tinyglobby: "npm:^0.2.16" + postcss: "npm:^8.5.16" + rolldown: "npm:~1.1.3" + tinyglobby: "npm:^0.2.17" peerDependencies: "@types/node": ^20.19.0 || >=22.12.0 - "@vitejs/devtools": ^0.1.18 + "@vitejs/devtools": ^0.3.0 esbuild: ^0.27.0 || ^0.28.0 jiti: ">=1.21.0" less: ^4.0.0 @@ -11201,7 +11201,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/1ff99b4daadc64aed5f9e40387ecf39fd3bca45c1a5c4fa4aa82197de901930f0507af8d75c54715e2744c99575913947efb625653a78ef6df3997c5613970bd + checksum: 10c0/e3c95e95f9c19b36be3c9d1c4de7f57d24d5af71613a221cfa22f1fd1568adebdb640e30ef9a7f2361fbb15478883955c9d8932e4fa5566280dd7a16bffa64f9 languageName: node linkType: hard @@ -11221,17 +11221,17 @@ __metadata: languageName: node linkType: hard -"vitest@npm:^4.1.7": - version: 4.1.7 - resolution: "vitest@npm:4.1.7" - dependencies: - "@vitest/expect": "npm:4.1.7" - "@vitest/mocker": "npm:4.1.7" - "@vitest/pretty-format": "npm:4.1.7" - "@vitest/runner": "npm:4.1.7" - "@vitest/snapshot": "npm:4.1.7" - "@vitest/spy": "npm:4.1.7" - "@vitest/utils": "npm:4.1.7" +"vitest@npm:^4.1.9": + version: 4.1.9 + resolution: "vitest@npm:4.1.9" + dependencies: + "@vitest/expect": "npm:4.1.9" + "@vitest/mocker": "npm:4.1.9" + "@vitest/pretty-format": "npm:4.1.9" + "@vitest/runner": "npm:4.1.9" + "@vitest/snapshot": "npm:4.1.9" + "@vitest/spy": "npm:4.1.9" + "@vitest/utils": "npm:4.1.9" es-module-lexer: "npm:^2.0.0" expect-type: "npm:^1.3.0" magic-string: "npm:^0.30.21" @@ -11249,12 +11249,12 @@ __metadata: "@edge-runtime/vm": "*" "@opentelemetry/api": ^1.9.0 "@types/node": ^20.0.0 || ^22.0.0 || >=24.0.0 - "@vitest/browser-playwright": 4.1.7 - "@vitest/browser-preview": 4.1.7 - "@vitest/browser-webdriverio": 4.1.7 - "@vitest/coverage-istanbul": 4.1.7 - "@vitest/coverage-v8": 4.1.7 - "@vitest/ui": 4.1.7 + "@vitest/browser-playwright": 4.1.9 + "@vitest/browser-preview": 4.1.9 + "@vitest/browser-webdriverio": 4.1.9 + "@vitest/coverage-istanbul": 4.1.9 + "@vitest/coverage-v8": 4.1.9 + "@vitest/ui": 4.1.9 happy-dom: "*" jsdom: "*" vite: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -11284,8 +11284,8 @@ __metadata: vite: optional: false bin: - vitest: vitest.mjs - checksum: 10c0/5328eab211161bdb854159154b02d7b2beab0cf1e26a1c13f6a64b0f1402029d41f19987cf60684051c09a6925030285195ecbe57271c2033e1d4f7a666590d0 + vitest: ./vitest.mjs + checksum: 10c0/1ac80ef4991be82822a52aea48415f1bc64ddf8fd88ee24c172ec368f1d480fefacbde622c3c951982f7961a1d07313e18deaafc774d29e42ad6f6ffa63334a7 languageName: node linkType: hard