= {}) => ({
player: null,
controlsModel: null,
setTitleMetadata: vi.fn(),
+ setHasGraphicsTrack: vi.fn(),
showPerfDiagnostics: false,
perfSummary: null,
showStatusMessage: vi.fn(),
@@ -84,6 +85,40 @@ describe('Framework demo hook edge cases', () => {
expect(controlsModel.setPitchSemitones).not.toHaveBeenCalled();
});
+ it('parses valid settings values even when no controls model is available', () => {
+ mockUseFrameworkDemoContext.mockReturnValue(
+ createContextValue({
+ controlsModel: null,
+ viewState: {
+ status: 'ready',
+ trackId: 'track',
+ currentTimeMs: 0,
+ durationMs: 120_000,
+ volume: 0.5,
+ playbackRate: 1,
+ pitchSemitones: 0,
+ isPlayable: true,
+ isPlaying: false,
+ progressPercent: 0,
+ },
+ }),
+ );
+
+ const { result } = renderHook(() => useSettingsPanelProps());
+
+ expect(() => {
+ result.current.handleSetVolume({
+ target: { value: '0.75' },
+ } as never);
+ result.current.handleSetTempo({
+ target: { value: '1.25' },
+ } as never);
+ result.current.handleSetPitchSemitones({
+ target: { value: '-4' },
+ } as never);
+ }).not.toThrow();
+ });
+
it('ignores transport actions when the model is missing or seek input is invalid', () => {
mockUseFrameworkDemoContext.mockReturnValue(
createContextValue({
@@ -137,6 +172,34 @@ describe('Framework demo hook edge cases', () => {
expect(controlsModel.seekPercent).not.toHaveBeenCalled();
});
+ it('parses valid seek input even when the controls model is missing', () => {
+ mockUseFrameworkDemoContext.mockReturnValue(
+ createContextValue({
+ controlsModel: null,
+ viewState: {
+ status: 'ready',
+ trackId: 'track',
+ currentTimeMs: 15_000,
+ durationMs: 60_000,
+ volume: 1,
+ playbackRate: 1,
+ pitchSemitones: 0,
+ isPlayable: true,
+ isPlaying: false,
+ progressPercent: 25,
+ },
+ }),
+ );
+
+ const { result } = renderHook(() => useTransportBarProps());
+
+ expect(() => {
+ result.current.handleSeekPercent({
+ target: { value: '42.5' },
+ } as never);
+ }).not.toThrow();
+ });
+
it('handles absent players and non-Error load failures in the file picker hook', async () => {
const showStatusMessage = vi.fn();
diff --git a/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/FilePickerRow.component.tsx b/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/FilePickerRow.component.tsx
index 6013625..151609e 100644
--- a/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/FilePickerRow.component.tsx
+++ b/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/FilePickerRow.component.tsx
@@ -2,7 +2,7 @@ import useFilePickerRowProps from './hooks/useFilePickerRowProps.memo';
import styles from './FilePickerRow.module.css';
/**
- * File input row for loading karaoke zip files and exporting diagnostics.
+ * File input row for loading browser-supported audio or karaoke zip files.
*/
function FilePickerRow() {
const {
@@ -15,11 +15,13 @@ function FilePickerRow() {
return (
// This row is intentionally simple: choose file + optional speed-report export.
- Select a karaoke zip (.zip)
+
+ Select audio or karaoke zip (audio/*, .zip)
+
{showPerfDiagnostics ? (
diff --git a/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/hooks/useFilePickerRowProps.memo.tsx b/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/hooks/useFilePickerRowProps.memo.tsx
index 25adfd4..dbeb0ec 100644
--- a/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/hooks/useFilePickerRowProps.memo.tsx
+++ b/apps/framework-demo/src/app/components/FrameworkDemo/components/FilePickerRow/hooks/useFilePickerRowProps.memo.tsx
@@ -19,6 +19,7 @@ function useFilePickerRowProps(): FilePickerRowResolvedProps {
const {
player,
setTitleMetadata,
+ setHasGraphicsTrack,
showPerfDiagnostics,
perfSummary,
showStatusMessage,
@@ -37,6 +38,7 @@ function useFilePickerRowProps(): FilePickerRowResolvedProps {
player.stop();
resetPlaybackStarted();
setTitleMetadata(null);
+ setHasGraphicsTrack(true);
showStatusMessage('Loading track...');
try {
@@ -57,6 +59,8 @@ function useFilePickerRowProps(): FilePickerRowResolvedProps {
});
}
+ setHasGraphicsTrack(loadedTrack?.hasGraphics ?? false);
+
showStatusMessage('Track loaded.');
} catch (errorValue: unknown) {
// Keep status user-friendly while preserving details through Error.message.
@@ -67,7 +71,13 @@ function useFilePickerRowProps(): FilePickerRowResolvedProps {
showStatusMessage(`Load failed: ${message}`);
}
},
- [player, resetPlaybackStarted, setTitleMetadata, showStatusMessage],
+ [
+ player,
+ resetPlaybackStarted,
+ setTitleMetadata,
+ setHasGraphicsTrack,
+ showStatusMessage,
+ ],
);
const handleTrackSelect = useCallback(
diff --git a/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.component.tsx b/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.component.tsx
index 5e8019e..db33711 100644
--- a/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.component.tsx
+++ b/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.component.tsx
@@ -22,6 +22,7 @@ function StageDisplay({ children }: StageDisplayProps) {
isStatusVisible,
viewState,
titleMetadata,
+ hasGraphicsTrack,
perfSummary,
hasTrack,
showTitle,
@@ -53,7 +54,12 @@ function StageDisplay({ children }: StageDisplayProps) {
) : null}
) : null}
-
+
diff --git a/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.module.css b/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.module.css
index 92122c2..94bfbb4 100644
--- a/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.module.css
+++ b/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/StageDisplay.module.css
@@ -1,4 +1,8 @@
@layer components {
+ /*
+ * These top-level selectors are state/marker classes consumed by TSX.
+ * Visual behavior is defined in nested rules below (for example &.hasTrack).
+ */
.hasTrack {
}
@@ -20,6 +24,10 @@
.compatibilityWarning {
}
+ /* Applied to canvas in audio-only mode; rule is scoped under .stage below. */
+ .canvasHidden {
+ }
+
.stageWrap {
--cdg-panel-opacity: 0;
--cdg-panel-visibility: hidden;
@@ -133,6 +141,10 @@
background: var(--cdg-color-stage);
image-rendering: pixelated;
}
+
+ .canvasHidden {
+ display: none;
+ }
}
.titleImage {
diff --git a/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/hooks/useStageDisplayProps.memo.tsx b/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/hooks/useStageDisplayProps.memo.tsx
index 890baff..97d370a 100644
--- a/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/hooks/useStageDisplayProps.memo.tsx
+++ b/apps/framework-demo/src/app/components/FrameworkDemo/components/StageDisplay/hooks/useStageDisplayProps.memo.tsx
@@ -14,6 +14,7 @@ export type StageDisplayResolvedProps = {
isStatusVisible: boolean;
viewState: ReturnType
['viewState'];
titleMetadata: ReturnType['titleMetadata'];
+ hasGraphicsTrack: boolean;
perfSummary: ReturnType['perfSummary'];
hasTrack: boolean;
showTitle: boolean;
@@ -34,6 +35,7 @@ function useStageDisplayProps(): StageDisplayResolvedProps {
controlsModel,
viewState,
titleMetadata,
+ hasGraphicsTrack,
perfSummary,
hasTrack,
showTitle,
@@ -57,6 +59,7 @@ function useStageDisplayProps(): StageDisplayResolvedProps {
isStatusVisible,
viewState,
titleMetadata,
+ hasGraphicsTrack,
perfSummary,
hasTrack,
showTitle,
diff --git a/apps/framework-demo/src/app/components/FrameworkDemo/hooks/useFrameworkDemo.context.tsx b/apps/framework-demo/src/app/components/FrameworkDemo/hooks/useFrameworkDemo.context.tsx
index 05eabf2..3031511 100644
--- a/apps/framework-demo/src/app/components/FrameworkDemo/hooks/useFrameworkDemo.context.tsx
+++ b/apps/framework-demo/src/app/components/FrameworkDemo/hooks/useFrameworkDemo.context.tsx
@@ -286,6 +286,8 @@ export type FrameworkDemoContextValue = {
setTitleMetadata: Dispatch<
SetStateAction<{ title: string; artist: string } | null>
>;
+ hasGraphicsTrack: boolean;
+ setHasGraphicsTrack: Dispatch>;
perfSummary: PerfSummary | null;
hasTrack: boolean;
showTitle: boolean;
@@ -329,6 +331,7 @@ export function FrameworkDemoProvider({ children }: PropsWithChildren) {
title: string;
artist: string;
} | null>(null);
+ const [hasGraphicsTrack, setHasGraphicsTrack] = useState(true);
const [perfSummary, setPerfSummary] = useState(null);
// Turn many raw timing samples into a tiny report we can read at a glance.
@@ -520,6 +523,8 @@ export function FrameworkDemoProvider({ children }: PropsWithChildren) {
viewState,
titleMetadata,
setTitleMetadata,
+ hasGraphicsTrack,
+ setHasGraphicsTrack,
perfSummary,
hasTrack,
showTitle,
@@ -536,6 +541,7 @@ export function FrameworkDemoProvider({ children }: PropsWithChildren) {
controlsModel,
viewState,
titleMetadata,
+ hasGraphicsTrack,
perfSummary,
hasTrack,
showTitle,
diff --git a/apps/storybook-hub/docs/architecture.mdx b/apps/storybook-hub/docs/architecture.mdx
index 1b06c6a..b0a8ef6 100644
--- a/apps/storybook-hub/docs/architecture.mdx
+++ b/apps/storybook-hub/docs/architecture.mdx
@@ -11,7 +11,7 @@ CDGPlayer is package-first. Think of the system as a pipeline:
Each package has a single responsibility:
- `@cxing/cdg-core`: parser, instructions, render context
-- `@cxing/cdg-loader`: zip/file/url loading + metadata (embedded audio tags first, filename fallback)
+- `@cxing/cdg-loader`: audio/zip/file/url loading + metadata (embedded audio tags first, filename fallback); normalized payload may include optional graphics
- `@cxing/cdg-player`: playback orchestration + render dispatch
- `@cxing/cdg-controls`: UI controls model and adapters
- `@cxing/logger`: scope-prefixed runtime logging with severity methods and debug gating
diff --git a/apps/storybook-hub/docs/contracts-loader.mdx b/apps/storybook-hub/docs/contracts-loader.mdx
index dbcb773..236932f 100644
--- a/apps/storybook-hub/docs/contracts-loader.mdx
+++ b/apps/storybook-hub/docs/contracts-loader.mdx
@@ -13,7 +13,7 @@ Metadata extraction behavior:
Use loader when:
-- you want to load karaoke content from user-selected zip files
+- you want to load browser-supported audio files and karaoke zip bundles
- you want a consistent parsed payload before passing to player
- you want metadata (`title`, `artist`, etc.) along with media bytes
@@ -32,7 +32,7 @@ import { createLoader } from '@cxing/cdg-loader';
const loader = createLoader();
const loadedTrack = await loader.load({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
options: { debug: true },
});
```
@@ -43,12 +43,14 @@ const loadedTrack = await loader.load({
// same shape for framework-agnostic and framework integrations
loadedTrack.metadata.title;
loadedTrack.audioBuffer;
+loadedTrack.audioMimeType;
+loadedTrack.hasGraphics;
loadedTrack.cdgBytes;
```
## Common Mistakes
-- Passing non-zip content to `kind: 'file'` without validating selection UX.
+- Treating `hasGraphics` as always true; audio-only tracks return `hasGraphics === false` with `cdgBytes === null`.
- Assuming metadata fields are always populated; handle empty strings safely because some files have no tags and no parseable filename pattern.
- Re-loading repeatedly without cancellation logic in your app flow.
diff --git a/apps/storybook-hub/docs/contracts-player.mdx b/apps/storybook-hub/docs/contracts-player.mdx
index 2c41a6e..e8de57d 100644
--- a/apps/storybook-hub/docs/contracts-player.mdx
+++ b/apps/storybook-hub/docs/contracts-player.mdx
@@ -6,8 +6,6 @@ import { Meta } from '@storybook/addon-docs/blocks';
`@cxing/cdg-player` is the runtime coordinator for playback, timeline sync, rendering, and audio.
-Phase status: Phase 4 complete.
-
Use player when:
- you need a stable playback state machine (`idle`, `loading`, `ready`, `playing`, `paused`, `error`)
@@ -28,7 +26,7 @@ const player = createPlayer({
});
await player.load({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
});
await player.play();
@@ -45,9 +43,11 @@ player.addEventListener('statechange', () => {
## Important Behavior Notes
- Tempo is the preferred singer-facing API via `setTempo`, with `setPlaybackRate` retained for compatibility.
+- Audio-only tracks are supported; when no graphics stream is present, playback still works while CDG render/sync paths are skipped.
- Player runtime does not emit built-in render performance metric events. Performance monitoring/reporting is local-development tooling concern.
- Debug trace logging is controlled by `options.debug`.
- Failure paths use `error()` severity and are not hidden behind debug gating.
+- `statechange` is the primary state event; load failures dispatch `error` with `detail.errorValue`.
## Common Mistakes
diff --git a/apps/storybook-hub/docs/getting-started.mdx b/apps/storybook-hub/docs/getting-started.mdx
index 045b0fb..8ccc80c 100644
--- a/apps/storybook-hub/docs/getting-started.mdx
+++ b/apps/storybook-hub/docs/getting-started.mdx
@@ -50,12 +50,14 @@ const player = createPlayer({
});
await player.load({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
});
await player.play();
```
+For file-picker UX, prefer `accept="audio/*,.zip,application/zip"` so users can load either browser-supported audio or karaoke zip bundles.
+
## Minimal Controls Setup
```ts
diff --git a/apps/storybook-hub/docs/migration-guide.mdx b/apps/storybook-hub/docs/migration-guide.mdx
index f7f35ef..e475e57 100644
--- a/apps/storybook-hub/docs/migration-guide.mdx
+++ b/apps/storybook-hub/docs/migration-guide.mdx
@@ -53,7 +53,7 @@ This guide helps teams migrate from the legacy monolithic packages (`CDGPlayer`,
@cxing/cdg-loader
- Zip/file/url loading with normalized payloads
+ Audio/zip/file/url loading with normalized payloads
N/A (standalone in legacy)
@@ -100,7 +100,7 @@ const player = createPlayer({
});
await player.load({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
});
```
@@ -132,6 +132,7 @@ createVolumeControl({
- Prefer `setTempo({ value })` for singer-facing speed adjustments.
- `setPlaybackRate({ value })` is still available as a compatibility alias.
- Continue using `setPitchSemitones({ value })` for key shift.
+- Loading no longer requires graphics; audio-only tracks are valid and remain fully playable.
- Keep the control label as `Key`, but use a vertical slider with datalist labels shown as half-step values (`.5`, `1`, `1.5`, etc.) while still writing integer semitone values to `setPitchSemitones`.
## 5. Lifecycle and Teardown
diff --git a/apps/storybook-react/stories/react-example.mdx b/apps/storybook-react/stories/react-example.mdx
index c7675af..f881518 100644
--- a/apps/storybook-react/stories/react-example.mdx
+++ b/apps/storybook-react/stories/react-example.mdx
@@ -88,6 +88,9 @@ const onFileSelected = async (file: File) => {
};
```
+For file-picker UX, set `accept="audio/*,.zip,application/zip"`.
+If a loaded track reports no graphics, keep transport controls enabled and hide only the canvas region.
+
## Step 3: Bind React Controls to Model Methods
```tsx
diff --git a/apps/storybook-web/stories/framework-agnostic-example.mdx b/apps/storybook-web/stories/framework-agnostic-example.mdx
index abcf557..059b94b 100644
--- a/apps/storybook-web/stories/framework-agnostic-example.mdx
+++ b/apps/storybook-web/stories/framework-agnostic-example.mdx
@@ -120,6 +120,9 @@ fileInput.addEventListener('change', () => {
});
```
+For picker UX, configure the file input as `accept="audio/*,.zip,application/zip"`.
+When `loadedTrack.hasGraphics` is `false`, keep transport controls active and hide the canvas region because the track is audio-only.
+
## Step 4: Optional Stage Click Toggle
```ts
diff --git a/package.json b/package.json
index ae0dc4a..4dec58b 100644
--- a/package.json
+++ b/package.json
@@ -47,55 +47,55 @@
"prepare": "husky"
},
"devDependencies": {
- "@commitlint/cli": "20.5.0",
+ "@commitlint/cli": "20.5.2",
"@commitlint/config-conventional": "20.5.0",
"@commitlint/format": "20.5.0",
"@eslint/js": "^10.0.1",
- "@nx/devkit": "22.6.5",
- "@nx/eslint": "22.6.5",
- "@nx/eslint-plugin": "22.6.5",
- "@nx/js": "22.6.5",
- "@nx/vite": "22.6.5",
- "@nx/vitest": "22.6.5",
- "@nx/workspace": "22.6.5",
+ "@nx/devkit": "22.7.0",
+ "@nx/eslint": "22.7.0",
+ "@nx/eslint-plugin": "22.7.0",
+ "@nx/js": "22.7.0",
+ "@nx/vite": "22.7.0",
+ "@nx/vitest": "22.7.0",
+ "@nx/workspace": "22.7.0",
"@remixicon/react": "^4.9.0",
"@storybook/addon-docs": "10.3.5",
"@storybook/addon-links": "^10.3.5",
"@storybook/react-vite": "^10.3.5",
"@storybook/web-components-vite": "^10.3.5",
"@swc-node/register": "~1.11.1",
- "@swc/core": "~1.15.24",
+ "@swc/core": "~1.15.32",
"@swc/helpers": "~0.5.21",
"@testing-library/react": "^16.3.2",
"@testing-library/user-event": "^14.6.1",
"@types/node": "25.6.0",
"@types/react": "^19.2.14",
"@types/react-dom": "^19.2.3",
- "@typescript-eslint/eslint-plugin": "^8.58.2",
- "@typescript-eslint/parser": "^8.58.2",
+ "@typescript-eslint/eslint-plugin": "^8.59.0",
+ "@typescript-eslint/parser": "^8.59.0",
"@vitejs/plugin-react": "^6.0.1",
- "@vitest/coverage-v8": "~4.1.4",
- "@vitest/ui": "~4.1.4",
- "eslint": "~10.2.0",
+ "@vitest/coverage-v8": "~4.1.5",
+ "@vitest/ui": "~4.1.5",
+ "eslint": "~10.2.1",
"husky": "^9.1.7",
- "jsdom": "^29.0.2",
+ "jsdom": "^29.1.0",
"jsonc-eslint-parser": "^3.1.0",
- "nx": "22.6.5",
- "prettier": "~3.8.2",
+ "nx": "22.7.0",
+ "prettier": "~3.8.3",
"react": "^19.2.5",
"react-dom": "^19.2.5",
"storybook": "^10.3.5",
"tslib": "^2.8.1",
"typescript": "~5.9.3",
- "typescript-eslint": "^8.58.2",
- "verdaccio": "^6.5.0",
- "vite": "^8.0.8",
+ "typescript-eslint": "^8.59.0",
+ "verdaccio": "^6.5.2",
+ "vite": "^8.0.10",
"vite-plugin-dts": "~4.5.4",
- "vitest": "~4.1.4"
+ "vitest": "~4.1.5"
},
"pnpm": {
"overrides": {
- "tar": ">=7.5.7"
+ "tar": "7.5.13"
}
},
"nx": {
diff --git a/packages/cdg-controls/package.json b/packages/cdg-controls/package.json
index 90d7b5c..f6a523c 100644
--- a/packages/cdg-controls/package.json
+++ b/packages/cdg-controls/package.json
@@ -42,6 +42,6 @@
],
"sideEffects": false,
"dependencies": {
- "lucide": "^1.8.0"
+ "lucide": "^1.11.0"
}
}
diff --git a/packages/cdg-loader/README.md b/packages/cdg-loader/README.md
index 45ce7bc..a8fa847 100644
--- a/packages/cdg-loader/README.md
+++ b/packages/cdg-loader/README.md
@@ -1,6 +1,6 @@
# @cxing/cdg-loader
-Loads karaoke inputs (zip/file/url/blob/arrayBuffer) into one normalized track payload.
+Loads browser-supported audio and karaoke inputs (zip/file/url/blob/arrayBuffer) into one normalized track payload.
Use this package when you want a stable pre-player loading contract and metadata extraction.
@@ -18,7 +18,7 @@ import { createLoader } from '@cxing/cdg-loader';
const loader = createLoader();
const loadedTrack = await loader.load({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
options: { debug: false },
});
@@ -41,7 +41,9 @@ console.log(loadedTrack.audioBuffer, loadedTrack.cdgBytes);
- `trackId`
- `sourceSummary`
- `audioBuffer` (`ArrayBuffer`)
-- `cdgBytes` (`Uint8Array`)
+- `audioMimeType` (`string`)
+- `hasGraphics` (`boolean`)
+- `cdgBytes` (`Uint8Array | null`)
- `metadata` (`title`, `artist`, `album`)
- `warnings`
@@ -51,10 +53,10 @@ Use `probe(...)` to preflight archive structure before full load:
```ts
const probe = await loader.probe({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
});
-console.log(probe.karaokeLikely, probe.discoveredEntries);
+console.log(probe.karaokeLikely, probe.audioLikely, probe.discoveredEntries);
```
## Worker Transport
diff --git a/packages/cdg-loader/src/lib/loader-core.spec.ts b/packages/cdg-loader/src/lib/loader-core.spec.ts
index 7625fad..9307035 100644
--- a/packages/cdg-loader/src/lib/loader-core.spec.ts
+++ b/packages/cdg-loader/src/lib/loader-core.spec.ts
@@ -58,7 +58,7 @@ describe('CdgLoader core behavior', () => {
options: { requestId: 'req-1' },
});
- expect(loaded.sourceSummary).toBe('track.zip');
+ expect(loaded.sourceSummary).toBe('track-input');
expect(loaded.metadata).toEqual({
album: 'Album',
artist: 'Artist',
@@ -66,7 +66,9 @@ describe('CdgLoader core behavior', () => {
});
expect(loaded.warnings).toEqual([]);
expect(loaded.audioBuffer.byteLength).toBeGreaterThan(0);
- expect(loaded.cdgBytes.byteLength).toBeGreaterThan(0);
+ expect(loaded.hasGraphics).toBe(true);
+ expect(loaded.cdgBytes).not.toBeNull();
+ expect(loaded.cdgBytes?.byteLength ?? 0).toBeGreaterThan(0);
});
it('prefers embedded metadata when tag parser succeeds', async () => {
@@ -177,6 +179,7 @@ describe('CdgLoader core behavior', () => {
});
expect(result.karaokeLikely).toBe(true);
+ expect(result.audioLikely).toBe(true);
expect(result.hasExtraEntries).toBe(true);
expect(result.extensionCaseIssues).toBe(true);
expect(result.discoveredEntries).toEqual(
@@ -304,9 +307,9 @@ describe('CdgLoader core behavior', () => {
},
});
- expect(loaded.sourceSummary).toBe('track.zip');
+ expect(loaded.sourceSummary).toBe('track-input');
expect(loaded.warnings).toEqual([
- 'Multiple mp3 files found; selected first match.',
+ 'Multiple supported audio files found; selected best match.',
]);
});
@@ -355,6 +358,178 @@ describe('CdgLoader core behavior', () => {
).rejects.toMatchObject({ code: 'KARAOKE_FILES_MISSING' });
});
+ it('loads an audio-only zip without graphics payload', async () => {
+ readMediaTagsMock.mockImplementation(
+ (
+ _blob: unknown,
+ callbacks: {
+ onSuccess?: (value: unknown) => void;
+ onError?: (value: unknown) => void;
+ },
+ ) => {
+ callbacks.onError?.(new Error('no tags'));
+ },
+ );
+
+ const archiveBuffer = await createZipArrayBuffer({
+ entries: [
+ {
+ name: 'Artist - Song.mp3',
+ content: new Uint8Array([1, 2, 3]),
+ },
+ ],
+ });
+
+ const loader = new CdgLoader();
+ const loaded = await loader.load({
+ input: { kind: 'arrayBuffer', arrayBuffer: archiveBuffer },
+ });
+
+ expect(loaded.hasGraphics).toBe(false);
+ expect(loaded.cdgBytes).toBeNull();
+ expect(loaded.audioMimeType).toBe('audio/mpeg');
+ expect(loaded.metadata.title).toBe('Song');
+ });
+
+ it('selects the audio entry whose stem matches the discovered graphics track', async () => {
+ readMediaTagsMock.mockImplementation(
+ (
+ _blob: unknown,
+ callbacks: {
+ onSuccess?: (value: unknown) => void;
+ onError?: (value: unknown) => void;
+ },
+ ) => {
+ callbacks.onError?.(new Error('no tags'));
+ },
+ );
+
+ const archiveBuffer = await createZipArrayBuffer({
+ entries: [
+ { name: 'aaa-intro.mp3', content: new Uint8Array([1]) },
+ { name: 'bbb-main.mp3', content: new Uint8Array([2]) },
+ { name: 'bbb-main.cdg', content: new Uint8Array([3]) },
+ ],
+ });
+
+ const loader = new CdgLoader();
+ const loaded = await loader.load({
+ input: { kind: 'arrayBuffer', arrayBuffer: archiveBuffer },
+ });
+
+ expect(loaded.metadata.title).toBe('bbb-main');
+ expect(loaded.hasGraphics).toBe(true);
+ });
+
+ it('keeps loading when multiple graphics tracks exist in non-strict mode', async () => {
+ readMediaTagsMock.mockImplementation(
+ (
+ _blob: unknown,
+ callbacks: {
+ onSuccess?: (value: unknown) => void;
+ onError?: (value: unknown) => void;
+ },
+ ) => {
+ callbacks.onError?.(new Error('no tags'));
+ },
+ );
+
+ const archiveBuffer = await createZipArrayBuffer({
+ entries: [
+ { name: 'song.mp3', content: new Uint8Array([1]) },
+ { name: 'song-a.cdg', content: new Uint8Array([2]) },
+ { name: 'song-b.cdg', content: new Uint8Array([3]) },
+ ],
+ });
+
+ const loader = new CdgLoader();
+ const loaded = await loader.load({
+ input: { kind: 'arrayBuffer', arrayBuffer: archiveBuffer },
+ });
+
+ expect(loaded.warnings).toEqual([
+ 'Multiple cdg files found; selected first match.',
+ ]);
+ expect(loaded.hasGraphics).toBe(true);
+ });
+
+ it('loads raw audio file input when zip parsing fails', async () => {
+ readMediaTagsMock.mockImplementation(
+ (
+ _blob: unknown,
+ callbacks: {
+ onSuccess?: (value: unknown) => void;
+ onError?: (value: unknown) => void;
+ },
+ ) => {
+ callbacks.onError?.(new Error('no tags'));
+ },
+ );
+
+ const file = new File(
+ [new Uint8Array([8, 7, 6])],
+ 'Demo - Artist - Song.mp3',
+ {
+ type: 'audio/mpeg',
+ },
+ );
+
+ const loader = new CdgLoader();
+ const loaded = await loader.load({
+ input: { kind: 'file', file },
+ });
+
+ expect(loaded.hasGraphics).toBe(false);
+ expect(loaded.cdgBytes).toBeNull();
+ expect(loaded.audioMimeType).toBe('audio/mpeg');
+ expect(loaded.sourceSummary).toBe('Demo - Artist - Song.mp3');
+ });
+
+ it('loads raw audio when support is inferred from file extension alone', async () => {
+ readMediaTagsMock.mockImplementation(
+ (
+ _blob: unknown,
+ callbacks: {
+ onSuccess?: (value: unknown) => void;
+ onError?: (value: unknown) => void;
+ },
+ ) => {
+ callbacks.onError?.(new Error('no tags'));
+ },
+ );
+
+ const file = new File([new Uint8Array([8, 7, 6])], 'Demo Track.wav', {
+ type: '',
+ });
+
+ const loader = new CdgLoader();
+ const loaded = await loader.load({
+ input: { kind: 'file', file },
+ });
+
+ expect(loaded.audioMimeType).toBe('audio/wav');
+ expect(loaded.hasGraphics).toBe(false);
+ });
+
+ it('probes raw audio blob inputs by mime type when zip parsing fails', async () => {
+ const loader = new CdgLoader();
+
+ await expect(
+ loader.probe({
+ input: {
+ kind: 'blob',
+ blob: new Blob([new Uint8Array([1, 2, 3])], { type: 'audio/ogg' }),
+ },
+ }),
+ ).resolves.toEqual({
+ karaokeLikely: false,
+ audioLikely: true,
+ discoveredEntries: [],
+ hasExtraEntries: false,
+ extensionCaseIssues: false,
+ });
+ });
+
it('throws FETCH_FAILED when url input returns non-ok response', async () => {
vi.stubGlobal(
'fetch',
@@ -417,14 +592,14 @@ describe('CdgLoader core behavior', () => {
expect(loaded.sourceSummary).toBe('song-bundle.zip');
});
- it('maps invalid zip payloads to ARCHIVE_INVALID and probe fallback shape', async () => {
+ it('maps invalid raw payloads to AUDIO_FORMAT_UNSUPPORTED and probe fallback shape', async () => {
const loader = new CdgLoader();
await expect(
loader.load({
input: { kind: 'arrayBuffer', arrayBuffer: new Uint8Array([1]).buffer },
}),
- ).rejects.toMatchObject({ code: 'ARCHIVE_INVALID' });
+ ).rejects.toMatchObject({ code: 'AUDIO_FORMAT_UNSUPPORTED' });
await expect(
loader.probe({
@@ -432,6 +607,7 @@ describe('CdgLoader core behavior', () => {
}),
).resolves.toEqual({
karaokeLikely: false,
+ audioLikely: false,
discoveredEntries: [],
hasExtraEntries: false,
extensionCaseIssues: false,
diff --git a/packages/cdg-loader/src/lib/loader-core.ts b/packages/cdg-loader/src/lib/loader-core.ts
index c2e54af..e213b37 100644
--- a/packages/cdg-loader/src/lib/loader-core.ts
+++ b/packages/cdg-loader/src/lib/loader-core.ts
@@ -10,6 +10,87 @@ import type {
LoaderProbeResult,
} from './types.js';
+const SUPPORTED_AUDIO_EXTENSIONS = new Set([
+ 'mp3',
+ 'aac',
+ 'm4a',
+ 'mp4',
+ 'ogg',
+ 'opus',
+ 'wav',
+ 'webm',
+ 'flac',
+]);
+
+const extensionFromName = ({ name }: { name: string }): string | null => {
+ const dotIndex = name.lastIndexOf('.');
+ if (dotIndex < 0 || dotIndex === name.length - 1) {
+ return null;
+ }
+
+ return name.slice(dotIndex + 1).toLowerCase();
+};
+
+const baseNameFromPath = ({ name }: { name: string }): string => {
+ const slashIndex = Math.max(name.lastIndexOf('/'), name.lastIndexOf('\\'));
+ return slashIndex >= 0 ? name.slice(slashIndex + 1) : name;
+};
+
+const stemFromName = ({ name }: { name: string }): string => {
+ const baseName = baseNameFromPath({ name });
+ const dotIndex = baseName.lastIndexOf('.');
+ return dotIndex > 0 ? baseName.slice(0, dotIndex) : baseName;
+};
+
+const inferMimeTypeFromExtension = ({
+ extension,
+}: {
+ extension: string | null;
+}): string => {
+ switch (extension) {
+ case 'mp3':
+ return 'audio/mpeg';
+ case 'aac':
+ return 'audio/aac';
+ case 'm4a':
+ return 'audio/mp4';
+ case 'mp4':
+ return 'audio/mp4';
+ case 'ogg':
+ return 'audio/ogg';
+ case 'opus':
+ return 'audio/ogg';
+ case 'wav':
+ return 'audio/wav';
+ case 'webm':
+ return 'audio/webm';
+ case 'flac':
+ return 'audio/flac';
+ default:
+ return 'audio/mpeg';
+ }
+};
+
+const isLikelySupportedAudio = ({
+ name,
+ mimeType,
+}: {
+ name: string;
+ mimeType?: string;
+}): boolean => {
+ const normalizedMime = (mimeType ?? '').trim().toLowerCase();
+ if (normalizedMime.startsWith('audio/')) {
+ return true;
+ }
+
+ const extension = extensionFromName({ name });
+ if (!extension) {
+ return false;
+ }
+
+ return SUPPORTED_AUDIO_EXTENSIONS.has(extension);
+};
+
const fileNameFromInput = ({ input }: { input: LoaderInput }): string => {
switch (input.kind) {
case 'url': {
@@ -19,16 +100,18 @@ const fileNameFromInput = ({ input }: { input: LoaderInput }): string => {
case 'file':
return input.file.name;
case 'blob':
- return 'track.zip';
+ return input.blob.type.startsWith('audio/')
+ ? 'track-audio'
+ : 'track-input';
case 'arrayBuffer':
- return 'track.zip';
+ return 'track-input';
default:
return 'track.zip';
}
};
const metadataFromName = ({ name }: { name: string }): LoaderMetadata => {
- const baseName = name.replace(/\.[^.]+$/u, '');
+ const baseName = stemFromName({ name });
const parts = baseName
.split(' - ')
.map((part) => part.trim())
@@ -51,11 +134,13 @@ const asTagValue = ({ value }: { value: unknown }): string | null => {
const readMetadataFromAudio = async ({
audioBuffer,
+ audioMimeType,
}: {
audioBuffer: ArrayBuffer;
+ audioMimeType: string;
}): Promise> => {
return new Promise((resolve) => {
- const audioBlob = new Blob([audioBuffer], { type: 'audio/mpeg' });
+ const audioBlob = new Blob([audioBuffer], { type: audioMimeType });
readMediaTags(audioBlob, {
onSuccess: (tagResult) => {
@@ -144,7 +229,7 @@ const asArrayBuffer = async ({
}
};
-const getKaraokeEntries = ({
+const getTrackEntries = ({
zip,
strictValidation,
}: {
@@ -152,22 +237,23 @@ const getKaraokeEntries = ({
strictValidation: boolean;
}): {
audio: JSZip.JSZipObject;
- graphics: JSZip.JSZipObject;
+ audioMimeType: string;
+ graphics?: JSZip.JSZipObject;
warnings: string[];
} => {
const allEntries = Object.values(zip.files).filter((entry) => !entry.dir);
const audioEntries = allEntries.filter((entry) =>
- /\.mp3$/iu.test(entry.name),
+ isLikelySupportedAudio({ name: entry.name }),
);
const graphicsEntries = allEntries.filter((entry) =>
/\.cdg$/iu.test(entry.name),
);
const warnings: string[] = [];
- if (!audioEntries.length || !graphicsEntries.length) {
+ if (!audioEntries.length) {
throw new LoaderError({
code: 'KARAOKE_FILES_MISSING',
- message: 'Expected both mp3 and cdg files in archive.',
+ message: 'Expected at least one supported audio file in archive.',
retriable: false,
});
}
@@ -176,11 +262,12 @@ const getKaraokeEntries = ({
if (strictValidation) {
throw new LoaderError({
code: 'MULTIPLE_AUDIO_TRACKS',
- message: 'Multiple mp3 files found and strict validation is enabled.',
+ message:
+ 'Multiple supported audio files found and strict validation is enabled.',
retriable: false,
});
}
- warnings.push('Multiple mp3 files found; selected first match.');
+ warnings.push('Multiple supported audio files found; selected best match.');
}
if (graphicsEntries.length > 1) {
@@ -194,20 +281,38 @@ const getKaraokeEntries = ({
warnings.push('Multiple cdg files found; selected first match.');
}
- const audio = audioEntries.at(0);
+ const sortedAudioEntries = [...audioEntries].sort((left, right) =>
+ left.name.localeCompare(right.name),
+ );
+
+ let audio = sortedAudioEntries.at(0);
const graphics = graphicsEntries.at(0);
- if (!audio || !graphics) {
+ if (graphics) {
+ const graphicsStem = stemFromName({ name: graphics.name });
+ const matchingAudio = sortedAudioEntries.find(
+ (entry) => stemFromName({ name: entry.name }) === graphicsStem,
+ );
+ if (matchingAudio) {
+ audio = matchingAudio;
+ }
+ }
+
+ if (!audio) {
throw new LoaderError({
- code: 'KARAOKE_FILES_MISSING',
- message: 'Expected both mp3 and cdg files in archive.',
+ code: 'AUDIO_UNREADABLE',
+ message: 'Unable to select supported audio payload from archive.',
retriable: false,
});
}
+ const extension = extensionFromName({ name: audio.name });
+ const audioMimeType = inferMimeTypeFromExtension({ extension });
+
return {
audio,
- graphics,
+ audioMimeType,
+ ...(graphics ? { graphics } : {}),
warnings,
};
};
@@ -261,58 +366,113 @@ export class CdgLoader {
}
try {
- const archiveBuffer = await asArrayBuffer({
+ const sourceSummary = fileNameFromInput({ input });
+ const sourceMimeType =
+ input.kind === 'file'
+ ? input.file.type
+ : input.kind === 'blob'
+ ? input.blob.type
+ : undefined;
+
+ const payloadBuffer = await asArrayBuffer({
input,
signal: controller.signal,
});
logger.debug({
- message: 'load:archive-read',
- bytes: archiveBuffer.byteLength,
+ message: 'load:payload-read',
+ bytes: payloadBuffer.byteLength,
});
- const zip = await JSZip.loadAsync(archiveBuffer).catch(
- (causeValue: unknown) => {
+
+ const zip = await JSZip.loadAsync(payloadBuffer).catch(() => null);
+
+ if (!zip) {
+ if (
+ !isLikelySupportedAudio({
+ name: sourceSummary,
+ ...(sourceMimeType ? { mimeType: sourceMimeType } : {}),
+ })
+ ) {
throw new LoaderError({
- code: 'ARCHIVE_INVALID',
- message: 'Unable to parse archive as zip data.',
+ code: 'AUDIO_FORMAT_UNSUPPORTED',
+ message:
+ 'Input is neither a valid zip archive nor a supported audio file.',
retriable: false,
- causeValue,
+ context: {
+ source: sourceSummary,
+ details: sourceMimeType ?? 'unknown-mime',
+ },
});
- },
- );
+ }
+
+ const audioMimeType = sourceMimeType?.startsWith('audio/')
+ ? sourceMimeType
+ : inferMimeTypeFromExtension({
+ extension: extensionFromName({ name: sourceSummary }),
+ });
+
+ const fallbackMetadata = metadataFromName({ name: sourceSummary });
+ const embeddedMetadata = await readMetadataFromAudio({
+ audioBuffer: payloadBuffer,
+ audioMimeType,
+ });
+
+ const metadata = mergeMetadata({
+ preferred: embeddedMetadata,
+ fallback: fallbackMetadata,
+ });
+
+ return {
+ trackId: `${Date.now()}-${Math.random().toString(36).slice(2, 10)}`,
+ sourceSummary,
+ audioBuffer: payloadBuffer,
+ audioMimeType,
+ hasGraphics: false,
+ cdgBytes: null,
+ metadata,
+ warnings: [],
+ };
+ }
- const selection = getKaraokeEntries({
+ const selection = getTrackEntries({
zip,
strictValidation: options.strictValidation ?? false,
});
logger.debug({
message: 'load:entries-selected',
audio: selection.audio.name,
- graphics: selection.graphics.name,
+ graphics: selection.graphics?.name ?? null,
warnings: selection.warnings,
});
- const [audioBuffer, cdgBytes] = await Promise.all([
- selection.audio.async('arraybuffer').catch((causeValue: unknown) => {
+ const audioBuffer = await selection.audio
+ .async('arraybuffer')
+ .catch((causeValue: unknown) => {
throw new LoaderError({
code: 'AUDIO_UNREADABLE',
- message: 'Unable to read mp3 payload from archive.',
+ message: 'Unable to read audio payload from archive.',
retriable: false,
causeValue,
});
- }),
- selection.graphics.async('uint8array').catch((causeValue: unknown) => {
- throw new LoaderError({
- code: 'GRAPHICS_UNREADABLE',
- message: 'Unable to read cdg payload from archive.',
- retriable: false,
- causeValue,
- });
- }),
- ]);
+ });
+
+ const cdgBytes = selection.graphics
+ ? await selection.graphics
+ .async('uint8array')
+ .catch((causeValue: unknown) => {
+ throw new LoaderError({
+ code: 'GRAPHICS_UNREADABLE',
+ message: 'Unable to read cdg payload from archive.',
+ retriable: false,
+ causeValue,
+ });
+ })
+ : null;
- const sourceSummary = fileNameFromInput({ input });
const fallbackMetadata = metadataFromName({ name: selection.audio.name });
- const embeddedMetadata = await readMetadataFromAudio({ audioBuffer });
+ const embeddedMetadata = await readMetadataFromAudio({
+ audioBuffer,
+ audioMimeType: selection.audioMimeType,
+ });
if (!hasAnyEmbeddedMetadata({ metadata: embeddedMetadata })) {
logger.info({
message: 'metadata:fallback-filename',
@@ -329,13 +489,15 @@ export class CdgLoader {
message: 'load:success',
sourceSummary,
audioBytes: audioBuffer.byteLength,
- cdgBytes: cdgBytes.byteLength,
+ cdgBytes: cdgBytes?.byteLength ?? 0,
metadata,
});
return {
trackId: `${Date.now()}-${Math.random().toString(36).slice(2, 10)}`,
sourceSummary,
audioBuffer,
+ audioMimeType: selection.audioMimeType,
+ hasGraphics: cdgBytes !== null,
cdgBytes,
metadata,
warnings: selection.warnings,
@@ -417,8 +579,20 @@ export class CdgLoader {
const zip = await JSZip.loadAsync(archiveBuffer).catch(() => null);
if (!zip) {
+ const inputName = fileNameFromInput({ input });
+ const inputMimeType =
+ input.kind === 'file'
+ ? input.file.type
+ : input.kind === 'blob'
+ ? input.blob.type
+ : undefined;
+
return {
karaokeLikely: false,
+ audioLikely: isLikelySupportedAudio({
+ name: inputName,
+ ...(inputMimeType ? { mimeType: inputMimeType } : {}),
+ }),
discoveredEntries: [],
hasExtraEntries: false,
extensionCaseIssues: false,
@@ -429,9 +603,14 @@ export class CdgLoader {
.filter((entry) => !entry.dir)
.map((entry) => entry.name);
- const karaokeEntries = names.filter((name) => /\.(mp3|cdg)$/iu.test(name));
- const lowerCasedMismatches = names.some(
- (name) => /\.(MP3|CDG)$/u.test(name) && !/\.(mp3|cdg)$/u.test(name),
+ const audioEntries = names.filter((name) =>
+ isLikelySupportedAudio({ name }),
+ );
+ const karaokeEntries = names.filter(
+ (name) => isLikelySupportedAudio({ name }) || /\.cdg$/iu.test(name),
+ );
+ const lowerCasedMismatches = names.some((name) =>
+ /\.(MP3|AAC|M4A|MP4|OGG|OPUS|WAV|WEBM|FLAC|CDG)$/u.test(name),
);
logger.debug({
@@ -443,6 +622,7 @@ export class CdgLoader {
return {
karaokeLikely: karaokeEntries.length >= 2,
+ audioLikely: audioEntries.length > 0,
discoveredEntries: names,
hasExtraEntries: names.length > karaokeEntries.length,
extensionCaseIssues: lowerCasedMismatches,
diff --git a/packages/cdg-loader/src/lib/loader.spec.ts b/packages/cdg-loader/src/lib/loader.spec.ts
index 8ee476f..a08719c 100644
--- a/packages/cdg-loader/src/lib/loader.spec.ts
+++ b/packages/cdg-loader/src/lib/loader.spec.ts
@@ -26,6 +26,8 @@ describe('createLoader', () => {
trackId: 'fallback',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -37,6 +39,7 @@ describe('createLoader', () => {
const probe = vi.fn(async () => ({
karaokeLikely: true,
+ audioLikely: true,
discoveredEntries: ['song.mp3', 'song.cdg'],
hasExtraEntries: false,
extensionCaseIssues: false,
@@ -142,6 +145,8 @@ describe('createLoader', () => {
trackId: 'worker-track',
sourceSummary: 'worker.zip',
audioBuffer: new ArrayBuffer(4),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(6),
metadata: {
title: 'Title',
@@ -161,6 +166,7 @@ describe('createLoader', () => {
ok: true,
result: {
karaokeLikely: true,
+ audioLikely: true,
discoveredEntries: ['song.mp3', 'song.cdg'],
hasExtraEntries: false,
extensionCaseIssues: false,
@@ -274,6 +280,8 @@ describe('createLoader', () => {
trackId: 'ignored',
sourceSummary: 'ignored.zip',
audioBuffer: new ArrayBuffer(1),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array([1]),
metadata: {
title: 'Ignored',
@@ -314,4 +322,171 @@ describe('createLoader', () => {
await expect(loadPromise).rejects.toMatchObject({ code: 'ABORTED' });
});
+
+ it('serializes worker-safe options and ignores unrelated worker messages', async () => {
+ type MessageListener = (event: MessageEvent) => void;
+
+ class MockWorker {
+ static instances: MockWorker[] = [];
+
+ private listeners: Record = {
+ message: [],
+ error: [],
+ };
+
+ constructor() {
+ MockWorker.instances.push(this);
+ }
+
+ postMessage = vi.fn((message: { type: string; requestId: string }) => {
+ if (message.type === 'load') {
+ this.emitMessage({
+ type: 'probe-result',
+ requestId: message.requestId,
+ ok: true,
+ result: {
+ karaokeLikely: true,
+ audioLikely: true,
+ discoveredEntries: ['ignored'],
+ hasExtraEntries: false,
+ extensionCaseIssues: false,
+ },
+ });
+ this.emitMessage({
+ type: 'load-result',
+ requestId: 'different-request',
+ ok: true,
+ result: {
+ trackId: 'ignored',
+ sourceSummary: 'ignored.zip',
+ audioBuffer: new ArrayBuffer(1),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: false,
+ cdgBytes: null,
+ metadata: {
+ title: 'Ignored',
+ artist: 'Ignored',
+ album: 'Ignored',
+ },
+ warnings: [],
+ },
+ });
+ this.emitMessage({
+ type: 'load-result',
+ requestId: message.requestId,
+ ok: true,
+ result: {
+ trackId: 'worker-track',
+ sourceSummary: 'worker.zip',
+ audioBuffer: new ArrayBuffer(4),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: false,
+ cdgBytes: null,
+ metadata: {
+ title: 'Title',
+ artist: 'Artist',
+ album: 'Album',
+ },
+ warnings: [],
+ },
+ });
+ }
+ });
+
+ addEventListener(type: string, listener: EventListener): void {
+ this.listeners[type] ??= [];
+ this.listeners[type]?.push(listener as MessageListener);
+ }
+
+ removeEventListener(type: string, listener: EventListener): void {
+ this.listeners[type] = (this.listeners[type] ?? []).filter(
+ (item) => item !== (listener as MessageListener),
+ );
+ }
+
+ terminate = vi.fn();
+
+ private emitMessage(data: unknown): void {
+ for (const listener of this.listeners['message'] ?? []) {
+ listener({ data } as MessageEvent);
+ }
+ }
+ }
+
+ vi.stubGlobal('Worker', MockWorker as unknown as typeof Worker);
+
+ const loaded = await loadInWorker({
+ input: { kind: 'arrayBuffer', arrayBuffer: new ArrayBuffer(8) },
+ options: {
+ requestId: 'serialized-options',
+ strictValidation: true,
+ debug: true,
+ },
+ });
+
+ expect(loaded.trackId).toBe('worker-track');
+ expect(MockWorker.instances[0]?.postMessage).toHaveBeenCalledWith({
+ type: 'load',
+ requestId: 'serialized-options',
+ input: { kind: 'arrayBuffer', arrayBuffer: expect.any(ArrayBuffer) },
+ options: {
+ requestId: 'serialized-options',
+ strictValidation: true,
+ debug: true,
+ },
+ });
+ });
+
+ it('surfaces worker error-result messages for probe requests', async () => {
+ type MessageListener = (event: MessageEvent) => void;
+
+ class MockWorker {
+ private listeners: Record = {
+ message: [],
+ error: [],
+ };
+
+ postMessage = vi.fn((message: { requestId: string; type: string }) => {
+ if (message.type === 'probe') {
+ for (const listener of this.listeners['message'] ?? []) {
+ listener({
+ data: {
+ type: 'probe-result',
+ requestId: message.requestId,
+ ok: false,
+ error: {
+ code: 'INTERNAL',
+ message: 'probe worker failed',
+ retriable: true,
+ context: { source: 'worker' },
+ },
+ },
+ } as MessageEvent);
+ }
+ }
+ });
+
+ addEventListener(type: string, listener: EventListener): void {
+ this.listeners[type] ??= [];
+ this.listeners[type]?.push(listener as MessageListener);
+ }
+
+ removeEventListener(type: string, listener: EventListener): void {
+ this.listeners[type] = (this.listeners[type] ?? []).filter(
+ (item) => item !== (listener as MessageListener),
+ );
+ }
+
+ terminate = vi.fn();
+ }
+
+ vi.stubGlobal('Worker', MockWorker as unknown as typeof Worker);
+
+ await expect(
+ probeInWorker({
+ input: { kind: 'arrayBuffer', arrayBuffer: new ArrayBuffer(2) },
+ options: { debug: true },
+ }),
+ ).rejects.toBeInstanceOf(LoaderError);
+ });
});
diff --git a/packages/cdg-loader/src/lib/loader.ts b/packages/cdg-loader/src/lib/loader.ts
index 73eb3d3..a428d14 100644
--- a/packages/cdg-loader/src/lib/loader.ts
+++ b/packages/cdg-loader/src/lib/loader.ts
@@ -62,6 +62,7 @@ type ProbeResultMessage =
ok: true;
result: {
karaokeLikely: boolean;
+ audioLikely: boolean;
discoveredEntries: readonly string[];
hasExtraEntries: boolean;
extensionCaseIssues: boolean;
@@ -308,6 +309,7 @@ export const probeInWorker = async ({
options?: LoaderOptions;
}): Promise<{
karaokeLikely: boolean;
+ audioLikely: boolean;
discoveredEntries: readonly string[];
hasExtraEntries: boolean;
extensionCaseIssues: boolean;
@@ -346,6 +348,7 @@ export const probeInWorker = async ({
return runWorkerRequest<{
karaokeLikely: boolean;
+ audioLikely: boolean;
discoveredEntries: readonly string[];
hasExtraEntries: boolean;
extensionCaseIssues: boolean;
diff --git a/packages/cdg-loader/src/lib/loader.worker.ts b/packages/cdg-loader/src/lib/loader.worker.ts
index ff67c32..5417dba 100644
--- a/packages/cdg-loader/src/lib/loader.worker.ts
+++ b/packages/cdg-loader/src/lib/loader.worker.ts
@@ -98,7 +98,7 @@ const createTransferables = ({
result: LoadedTrack;
}): Transferable[] => {
const transfers: Transferable[] = [result.audioBuffer];
- if (result.cdgBytes.buffer instanceof ArrayBuffer) {
+ if (result.cdgBytes && result.cdgBytes.buffer instanceof ArrayBuffer) {
transfers.push(result.cdgBytes.buffer);
}
return transfers;
@@ -228,6 +228,7 @@ workerScope.addEventListener(
message: 'probe:success',
requestId: message.requestId,
karaokeLikely: result.karaokeLikely,
+ audioLikely: result.audioLikely,
});
} catch (errorValue: unknown) {
postError({
diff --git a/packages/cdg-loader/src/lib/types.ts b/packages/cdg-loader/src/lib/types.ts
index 1c41681..8a1d37c 100644
--- a/packages/cdg-loader/src/lib/types.ts
+++ b/packages/cdg-loader/src/lib/types.ts
@@ -13,9 +13,15 @@ export interface LoaderOptions {
debug?: boolean;
}
-/** Lightweight probe output for archive preflight checks. */
+/**
+ * Lightweight probe output for preflight checks.
+ * `karaokeLikely` indicates a likely audio+graphics karaoke archive shape.
+ * `audioLikely` indicates the input likely contains browser-playable audio,
+ * including raw audio payloads that are not zip archives.
+ */
export interface LoaderProbeResult {
karaokeLikely: boolean;
+ audioLikely: boolean;
discoveredEntries: readonly string[];
hasExtraEntries: boolean;
extensionCaseIssues: boolean;
@@ -28,12 +34,19 @@ export interface LoaderMetadata {
album: string;
}
-/** Successful load payload consumed by player runtime. */
+/**
+ * Successful load payload consumed by player runtime.
+ * `audioMimeType` is used when binding the in-memory audio blob to .
+ * `hasGraphics` indicates whether a CDG graphics stream is available.
+ * `cdgBytes` is null for audio-only tracks.
+ */
export interface LoadedTrack {
trackId: string;
sourceSummary: string;
audioBuffer: ArrayBuffer;
- cdgBytes: Uint8Array;
+ audioMimeType: string;
+ hasGraphics: boolean;
+ cdgBytes: Uint8Array | null;
metadata: LoaderMetadata;
warnings: readonly string[];
}
@@ -46,6 +59,7 @@ export type LoaderErrorCode =
| 'KARAOKE_FILES_MISSING'
| 'MULTIPLE_AUDIO_TRACKS'
| 'MULTIPLE_GRAPHICS_TRACKS'
+ | 'AUDIO_FORMAT_UNSUPPORTED'
| 'AUDIO_UNREADABLE'
| 'GRAPHICS_UNREADABLE'
| 'ABORTED'
diff --git a/packages/cdg-player/README.md b/packages/cdg-player/README.md
index 7810d44..39f4f74 100644
--- a/packages/cdg-player/README.md
+++ b/packages/cdg-player/README.md
@@ -24,7 +24,7 @@ const player = createPlayer({
});
await player.load({
- input: { kind: 'file', file: selectedZip },
+ input: { kind: 'file', file: selectedFile },
});
await player.play();
@@ -63,6 +63,8 @@ player.setPitchSemitones({ value: -2 });
- `setTempo` is the preferred singer-facing speed API.
- `setPlaybackRate` remains available as a compatibility alias.
+- Audio-only tracks are supported; playback state and transport remain functional without a graphics stream.
+- CDG render and sync operations are conditional on graphics availability.
- Always call `dispose()` on teardown.
## Docs
diff --git a/packages/cdg-player/src/lib/player.spec.ts b/packages/cdg-player/src/lib/player.spec.ts
index 665b63c..51f7806 100644
--- a/packages/cdg-player/src/lib/player.spec.ts
+++ b/packages/cdg-player/src/lib/player.spec.ts
@@ -141,6 +141,8 @@ describe('player', () => {
trackId: 'track-id',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -189,6 +191,8 @@ describe('player', () => {
trackId: 'track-id',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -385,6 +389,8 @@ describe('player', () => {
trackId: 'track-id',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -451,6 +457,8 @@ describe('player', () => {
trackId: 'main-thread-track',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -548,6 +556,8 @@ describe('player', () => {
trackId: 'fallback-track',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -601,6 +611,8 @@ describe('player', () => {
trackId: 'track-id',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -713,6 +725,8 @@ describe('player', () => {
trackId: 'sync-track',
sourceSummary: 'sample.zip',
audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/mpeg',
+ hasGraphics: true,
cdgBytes: new Uint8Array(24),
metadata: {
title: 'Title',
@@ -764,4 +778,62 @@ describe('player', () => {
player.dispose();
});
+
+ it('loads and plays audio-only tracks without graphics bytes', async () => {
+ vi.spyOn(URL, 'createObjectURL').mockReturnValue('blob:mock-audio');
+ vi.spyOn(URL, 'revokeObjectURL').mockImplementation(() => {
+ return;
+ });
+
+ const mockLoader = {
+ load: vi.fn(async () => ({
+ trackId: 'audio-only-track',
+ sourceSummary: 'song.ogg',
+ audioBuffer: new ArrayBuffer(8),
+ audioMimeType: 'audio/ogg',
+ hasGraphics: false,
+ cdgBytes: null,
+ metadata: {
+ title: 'Song',
+ artist: 'Artist',
+ album: 'Album',
+ },
+ warnings: [],
+ })),
+ probe: vi.fn(),
+ cancel: vi.fn(),
+ dispose: vi.fn(),
+ } as unknown as loaderModule.CdgLoader;
+
+ const canvas = document.createElement('canvas');
+ const audio = document.createElement('audio');
+ vi.spyOn(audio, 'load').mockImplementation(() => {
+ return;
+ });
+
+ const player = createPlayer({
+ options: {
+ canvas,
+ audio,
+ loader: mockLoader,
+ },
+ });
+
+ await player.load({
+ input: {
+ kind: 'arrayBuffer',
+ arrayBuffer: new ArrayBuffer(16),
+ },
+ });
+
+ expect(player.getState().status).toBe('ready');
+
+ await player.play();
+ expect(player.getState().status).toBe('playing');
+
+ player.pause();
+ expect(player.getState().status).toBe('paused');
+
+ player.dispose();
+ });
});
diff --git a/packages/cdg-player/src/lib/player.ts b/packages/cdg-player/src/lib/player.ts
index 163693c..7cef5e3 100644
--- a/packages/cdg-player/src/lib/player.ts
+++ b/packages/cdg-player/src/lib/player.ts
@@ -59,7 +59,7 @@ export interface CdgPlayerOptions {
audioEngineMode?: PlayerAudioEngineMode;
}
-/** Event detail payload for statechange events. */
+/** Event detail payload for `statechange` events. */
export interface PlayerStateChangeDetail {
previous: PlayerState;
next: PlayerState;
@@ -93,7 +93,9 @@ const asMilliseconds = ({ seconds }: { seconds: number }): number =>
Number.isFinite(seconds) ? Math.max(0, Math.floor(seconds * 1000)) : 0;
/**
- * High-level karaoke player that orchestrates loading, audio, and CDG rendering.
+ * High-level karaoke player that orchestrates loading and audio playback.
+ * CDG rendering/synchronization are enabled only when the loaded track includes
+ * a graphics stream.
*/
export class CdgPlayer extends EventTarget {
private readonly canvas: HTMLCanvasElement;
@@ -110,6 +112,7 @@ export class CdgPlayer extends EventTarget {
private state: PlayerState = createInitialState();
private currentObjectUrl: string | null = null;
+ private hasGraphicsTrack = false;
/**
* Creates a player bound to canvas/audio elements and optional strategy overrides.
@@ -175,7 +178,8 @@ export class CdgPlayer extends EventTarget {
}
/**
- * Loads karaoke assets and prepares playback.
+ * Loads track assets and prepares playback for either karaoke (audio+graphics)
+ * or audio-only content.
*/
async load({
input,
@@ -269,20 +273,24 @@ export class CdgPlayer extends EventTarget {
}
/**
- * Starts playback and frame advancement.
+ * Starts audio playback and, when graphics exist, advances CDG frame playback.
*/
async play(): Promise {
await this.audioEngine.play();
- this.cdgPlayer.play();
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.play();
+ }
this.applyState({ status: 'playing' });
}
/**
- * Pauses playback and frame advancement.
+ * Pauses audio playback and, when graphics exist, pauses CDG frame playback.
*/
pause(): void {
this.audioEngine.pause();
- this.cdgPlayer.stop();
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.stop();
+ }
if (this.state.status !== 'error') {
this.applyState({ status: 'paused' });
@@ -295,7 +303,9 @@ export class CdgPlayer extends EventTarget {
stop(): void {
this.pause();
this.audioEngine.stop();
- this.cdgPlayer.reset().render();
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.reset().render();
+ }
this.applyState({
status: this.state.trackId ? 'ready' : 'idle',
currentTimeMs: 0,
@@ -303,7 +313,8 @@ export class CdgPlayer extends EventTarget {
}
/**
- * Seeks by percentage of track duration.
+ * Seeks by percentage of track duration and re-syncs CDG timing when graphics
+ * are present.
*/
seek({ percentage }: { percentage: number }): void {
if (!Number.isFinite(this.audio.duration) || this.audio.duration <= 0) {
@@ -313,7 +324,9 @@ export class CdgPlayer extends EventTarget {
const clampedPercentage = clamp({ value: percentage, min: 0, max: 100 });
const targetSeconds = (clampedPercentage / 100) * this.audio.duration;
this.audio.currentTime = targetSeconds;
- this.cdgPlayer.sync({ ms: asMilliseconds({ seconds: targetSeconds }) });
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.sync({ ms: asMilliseconds({ seconds: targetSeconds }) });
+ }
this.applyState({
currentTimeMs: asMilliseconds({ seconds: targetSeconds }),
});
@@ -381,23 +394,31 @@ export class CdgPlayer extends EventTarget {
this.logger.debug({
message: 'attach:start',
trackId: loadedTrack.trackId,
- cdgBytes: loadedTrack.cdgBytes.byteLength,
+ hasGraphics: loadedTrack.hasGraphics,
+ cdgBytes: loadedTrack.cdgBytes?.byteLength ?? 0,
audioBytes: loadedTrack.audioBuffer.byteLength,
});
- const corePlayer = this.cdgPlayer as CdgCorePlayerAsyncLoad;
- if (typeof corePlayer.loadAsync === 'function') {
- this.logger.debug({ message: 'attach:core-loadAsync' });
- await corePlayer.loadAsync({ data: loadedTrack.cdgBytes });
+ this.hasGraphicsTrack =
+ loadedTrack.hasGraphics && loadedTrack.cdgBytes !== null;
+
+ if (this.hasGraphicsTrack && loadedTrack.cdgBytes) {
+ const corePlayer = this.cdgPlayer as CdgCorePlayerAsyncLoad;
+ if (typeof corePlayer.loadAsync === 'function') {
+ this.logger.debug({ message: 'attach:core-loadAsync' });
+ await corePlayer.loadAsync({ data: loadedTrack.cdgBytes });
+ } else {
+ this.logger.debug({ message: 'attach:core-load-sync' });
+ this.cdgPlayer.load({ data: loadedTrack.cdgBytes });
+ }
+
+ this.cdgPlayer.reset().render();
} else {
- this.logger.debug({ message: 'attach:core-load-sync' });
- this.cdgPlayer.load({ data: loadedTrack.cdgBytes });
+ this.cdgPlayer.reset().render();
}
- this.cdgPlayer.reset().render();
-
const audioBlob = new Blob([loadedTrack.audioBuffer], {
- type: 'audio/mpeg',
+ type: loadedTrack.audioMimeType,
});
this.currentObjectUrl = URL.createObjectURL(audioBlob);
this.audio.src = this.currentObjectUrl;
@@ -455,6 +476,7 @@ export class CdgPlayer extends EventTarget {
const next = { ...previous, ...nextStatePatch };
this.state = next;
+ // `statechange` is the primary external state notification contract.
this.dispatchEvent(
new CustomEvent('statechange', {
detail: {
@@ -468,17 +490,24 @@ export class CdgPlayer extends EventTarget {
private handleTimeUpdate = (): void => {
const timeMs = asMilliseconds({ seconds: this.audio.currentTime });
const durationMs = asMilliseconds({ seconds: this.audio.duration });
- this.cdgPlayer.sync({ ms: timeMs });
+ // Audio timeline is always tracked; CDG sync is only needed when graphics exist.
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.sync({ ms: timeMs });
+ }
this.applyState({ currentTimeMs: timeMs, durationMs });
};
private handlePlay = (): void => {
- this.cdgPlayer.play();
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.play();
+ }
this.applyState({ status: 'playing' });
};
private handlePause = (): void => {
- this.cdgPlayer.stop();
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.stop();
+ }
if (this.state.status !== 'error' && this.state.status !== 'idle') {
this.applyState({ status: 'paused' });
@@ -486,7 +515,9 @@ export class CdgPlayer extends EventTarget {
};
private handleEnded = (): void => {
- this.cdgPlayer.stop();
+ if (this.hasGraphicsTrack) {
+ this.cdgPlayer.stop();
+ }
this.applyState({ status: 'ready', currentTimeMs: 0 });
};
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 1f5cb76..d039291 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -5,15 +5,15 @@ settings:
excludeLinksFromLockfile: false
overrides:
- tar: '>=7.5.7'
+ tar: 7.5.13
importers:
.:
devDependencies:
'@commitlint/cli':
- specifier: 20.5.0
- version: 20.5.0(@types/node@25.6.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)
+ specifier: 20.5.2
+ version: 20.5.2(@types/node@25.6.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)
'@commitlint/config-conventional':
specifier: 20.5.0
version: 20.5.0
@@ -22,49 +22,49 @@ importers:
version: 20.5.0
'@eslint/js':
specifier: ^10.0.1
- version: 10.0.1(eslint@10.2.0(jiti@2.6.1))
+ version: 10.0.1(eslint@10.2.1(jiti@2.6.1))
'@nx/devkit':
- specifier: 22.6.5
- version: 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
+ specifier: 22.7.0
+ version: 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
'@nx/eslint':
- specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))
+ specifier: 22.7.0
+ version: 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.1(jiti@2.6.1))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
'@nx/eslint-plugin':
- specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))
+ specifier: 22.7.0
+ version: 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.2(typanion@3.14.0))
'@nx/js':
- specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))
+ specifier: 22.7.0
+ version: 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
'@nx/vite':
- specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))(vitest@4.1.4)
+ specifier: 22.7.0
+ version: 22.7.0(ee5baf8c8ba0813aefa24b58b5bb4ce5)
'@nx/vitest':
- specifier: 22.6.5
- version: 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))(vitest@4.1.4)
+ specifier: 22.7.0
+ version: 22.7.0(ee5baf8c8ba0813aefa24b58b5bb4ce5)
'@nx/workspace':
- specifier: 22.6.5
- version: 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))
+ specifier: 22.7.0
+ version: 22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))
'@remixicon/react':
specifier: ^4.9.0
version: 4.9.0(react@19.2.5)
'@storybook/addon-docs':
specifier: 10.3.5
- version: 10.3.5(@types/react@19.2.14)(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ version: 10.3.5(@types/react@19.2.14)(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@storybook/addon-links':
specifier: ^10.3.5
- version: 10.3.5(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
+ version: 10.3.5(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
'@storybook/react-vite':
specifier: ^10.3.5
- version: 10.3.5(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ version: 10.3.5(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@storybook/web-components-vite':
specifier: ^10.3.5
- version: 10.3.5(esbuild@0.27.7)(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ version: 10.3.5(esbuild@0.27.7)(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@swc-node/register':
specifier: ~1.11.1
- version: 1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3)
+ version: 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3)
'@swc/core':
- specifier: ~1.15.24
- version: 1.15.24(@swc/helpers@0.5.21)
+ specifier: ~1.15.32
+ version: 1.15.32(@swc/helpers@0.5.21)
'@swc/helpers':
specifier: ~0.5.21
version: 0.5.21
@@ -84,38 +84,38 @@ importers:
specifier: ^19.2.3
version: 19.2.3(@types/react@19.2.14)
'@typescript-eslint/eslint-plugin':
- specifier: ^8.58.2
- version: 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
+ specifier: ^8.59.0
+ version: 8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
'@typescript-eslint/parser':
- specifier: ^8.58.2
- version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
+ specifier: ^8.59.0
+ version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
'@vitejs/plugin-react':
specifier: ^6.0.1
- version: 6.0.1(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ version: 6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@vitest/coverage-v8':
- specifier: ~4.1.4
- version: 4.1.4(vitest@4.1.4)
+ specifier: ~4.1.5
+ version: 4.1.5(vitest@4.1.5)
'@vitest/ui':
- specifier: ~4.1.4
- version: 4.1.4(vitest@4.1.4)
+ specifier: ~4.1.5
+ version: 4.1.5(vitest@4.1.5)
eslint:
- specifier: ~10.2.0
- version: 10.2.0(jiti@2.6.1)
+ specifier: ~10.2.1
+ version: 10.2.1(jiti@2.6.1)
husky:
specifier: ^9.1.7
version: 9.1.7
jsdom:
- specifier: ^29.0.2
- version: 29.0.2
+ specifier: ^29.1.0
+ version: 29.1.0
jsonc-eslint-parser:
specifier: ^3.1.0
version: 3.1.0
nx:
- specifier: 22.6.5
- version: 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))
+ specifier: 22.7.0
+ version: 22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))
prettier:
- specifier: ~3.8.2
- version: 3.8.2
+ specifier: ~3.8.3
+ version: 3.8.3
react:
specifier: ^19.2.5
version: 19.2.5
@@ -124,7 +124,7 @@ importers:
version: 19.2.5(react@19.2.5)
storybook:
specifier: ^10.3.5
- version: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ version: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
tslib:
specifier: ^2.8.1
version: 2.8.1
@@ -132,26 +132,26 @@ importers:
specifier: ~5.9.3
version: 5.9.3
typescript-eslint:
- specifier: ^8.58.2
- version: 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
+ specifier: ^8.59.0
+ version: 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
verdaccio:
- specifier: ^6.5.0
- version: 6.5.0(typanion@3.14.0)
+ specifier: ^6.5.2
+ version: 6.5.2(typanion@3.14.0)
vite:
- specifier: ^8.0.8
- version: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ specifier: ^8.0.10
+ version: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
vite-plugin-dts:
specifier: ~4.5.4
- version: 4.5.4(@types/node@25.6.0)(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ version: 4.5.4(@types/node@25.6.0)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
vitest:
- specifier: ~4.1.4
- version: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@29.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ specifier: ~4.1.5
+ version: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
packages/cdg-controls:
dependencies:
lucide:
- specifier: ^1.8.0
- version: 1.8.0
+ specifier: ^1.11.0
+ version: 1.11.0
packages/cdg-core:
dependencies:
@@ -193,12 +193,16 @@ packages:
'@adobe/css-tools@4.4.4':
resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==}
- '@asamuzakjp/css-color@5.1.10':
- resolution: {integrity: sha512-02OhhkKtgNRuicQ/nF3TRnGsxL9wp0r3Y7VlKWyOHHGmGyvXv03y+PnymU8FKFJMTjIr1Bk8U2g1HWSLrpAHww==}
+ '@asamuzakjp/css-color@5.1.11':
+ resolution: {integrity: sha512-KVw6qIiCTUQhByfTd78h2yD1/00waTmm9uy/R7Ck/ctUyAPj+AEDLkQIdJW0T8+qGgj3j5bpNKK7Q3G+LedJWg==}
+ engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
+
+ '@asamuzakjp/dom-selector@7.1.1':
+ resolution: {integrity: sha512-67RZDnYRc8H/8MLDgQCDE//zoqVFwajkepHZgmXrbwybzXOEwOWGPYGmALYl9J2DOLfFPPs6kKCqmbzV895hTQ==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
- '@asamuzakjp/dom-selector@7.0.9':
- resolution: {integrity: sha512-r3ElRr7y8ucyN2KdICwGsmj19RoN13CLCa/pvGydghWK6ZzeKQ+TcDjVdtEZz2ElpndM5jXw//B9CEee0mWnVg==}
+ '@asamuzakjp/generational-cache@1.0.1':
+ resolution: {integrity: sha512-wajfB8KqzMCN2KGNFdLkReeHncd0AslUSrvHVvvYWuU8ghncRJoA50kT3zP9MVL0+9g4/67H+cdvBskj9THPzg==}
engines: {node: ^20.19.0 || ^22.12.0 || >=24.0.0}
'@asamuzakjp/nwsapi@2.3.9':
@@ -749,8 +753,8 @@ packages:
resolution: {integrity: sha512-ctxtJ/eA+t+6q2++vj5j7FYX3nRu311q1wfYH3xjlLOsczhlhxAg2FWNUXhpGvAw3BWo1xBcvOV6/YLc2r5FJw==}
hasBin: true
- '@commitlint/cli@20.5.0':
- resolution: {integrity: sha512-yNkyN/tuKTJS3wdVfsZ2tXDM4G4Gi7z+jW54Cki8N8tZqwKBltbIvUUrSbT4hz1bhW/h0CdR+5sCSpXD+wMKaQ==}
+ '@commitlint/cli@20.5.2':
+ resolution: {integrity: sha512-IXr5xd3IX8SEG936P8gcpozRplkDeDSwJlt8UvoY1winwIy2udTbQ/cOCgbaaxcjdDqVoS29VUcz/wkwnSozbA==}
engines: {node: '>=v18'}
hasBin: true
@@ -782,8 +786,8 @@ packages:
resolution: {integrity: sha512-jiM3hNUdu04jFBf1VgPdjtIPvbuVfDTBAc6L98AWcoLjF5sYqkulBHBzlVWll4rMF1T5zeQFB6r//a+s+BBKlA==}
engines: {node: '>=v18'}
- '@commitlint/load@20.5.0':
- resolution: {integrity: sha512-sLhhYTL/KxeOTZjjabKDhwidGZan84XKK1+XFkwDYL/4883kIajcz/dZFAhBJmZPtL8+nBx6bnkzA95YxPeDPw==}
+ '@commitlint/load@20.5.2':
+ resolution: {integrity: sha512-zmr0RGDz7vThxW1I8ohb9yBjnGuH9mqwJpn21hInjGla+IlLOkS9ey0+dD5HlkzFlY0lX2NYdA2lDW6/0rO7Gw==}
engines: {node: '>=v18'}
'@commitlint/message@20.4.3':
@@ -798,8 +802,8 @@ packages:
resolution: {integrity: sha512-JDEIJ2+GnWpK8QqwfmW7O42h0aycJEWNqcdkJnyzLD11nf9dW2dWLTVEa8Wtlo4IZFGLPATjR5neA5QlOvIH1w==}
engines: {node: '>=v18'}
- '@commitlint/resolve-extends@20.5.0':
- resolution: {integrity: sha512-3SHPWUW2v0tyspCTcfSsYml0gses92l6TlogwzvM2cbxDgmhSRc+fldDjvGkCXJrjSM87BBaWYTPWwwyASZRrg==}
+ '@commitlint/resolve-extends@20.5.2':
+ resolution: {integrity: sha512-8EhSCU9eNos/5cI1yg64GW79UH1c64O69AfStCsj4zqy6An/qIphVEXj4/+2M6056T8coz00f+UXFn4WUUP1HQ==}
engines: {node: '>=v18'}
'@commitlint/rules@20.5.0':
@@ -870,12 +874,27 @@ packages:
resolution: {integrity: sha512-hauBrOdvu08vOsagkZ/Aju5XuiZx6ldsLfByg1htFeldhex+PeMrYauANzFsMJeAA0+dyPLbDoX2OYuvVoLDkQ==}
engines: {node: '>= 6'}
+ '@emnapi/core@1.10.0':
+ resolution: {integrity: sha512-yq6OkJ4p82CAfPl0u9mQebQHKPJkY7WrIuk205cTYnYe+k2Z8YBh11FrbRG/H6ihirqcacOgl2BIO8oyMQLeXw==}
+
+ '@emnapi/core@1.4.5':
+ resolution: {integrity: sha512-XsLw1dEOpkSX/WucdqUhPWP7hDxSvZiY+fsUC14h+FtQ2Ifni4znbBt8punRX+Uj2JG/uDb8nEHVKvrVlvdZ5Q==}
+
'@emnapi/core@1.9.2':
resolution: {integrity: sha512-UC+ZhH3XtczQYfOlu3lNEkdW/p4dsJ1r/bP7H8+rhao3TTTMO1ATq/4DdIi23XuGoFY+Cz0JmCbdVl0hz9jZcA==}
+ '@emnapi/runtime@1.10.0':
+ resolution: {integrity: sha512-ewvYlk86xUoGI0zQRNq/mC+16R1QeDlKQy21Ki3oSYXNgLb45GV1P6A0M+/s6nyCuNDqe5VpaY84BzXGwVbwFA==}
+
+ '@emnapi/runtime@1.4.5':
+ resolution: {integrity: sha512-++LApOtY0pEEz1zrd9vy1/zXVaVJJ/EbAF3u0fXIzPJEDtnITsBGbbK0EkM72amhl/R5b+5xx0Y/QhcVOpuulg==}
+
'@emnapi/runtime@1.9.2':
resolution: {integrity: sha512-3U4+MIWHImeyu1wnmVygh5WlgfYDtyf0k8AbLhMFxOipihf6nrWC4syIm/SwEeec0mNSafiiNnMJwbza/Is6Lw==}
+ '@emnapi/wasi-threads@1.0.4':
+ resolution: {integrity: sha512-PJR+bOmMOPH8AtcTGAyYNiuJ3/Fcoj2XN/gBEWzDIKh254XO+mM9XoXHk5GNEhodxeMznbg7BlRojVbKN+gC6g==}
+
'@emnapi/wasi-threads@1.2.1':
resolution: {integrity: sha512-uTII7OYF+/Mes/MrcIOYp5yOtSMLBWSIoLPpcgwipoiKbli6k322tcoFsxoIIxPDqW01SQGAgko4EzZi2BNv2w==}
@@ -1099,16 +1118,8 @@ packages:
resolution: {integrity: sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==}
engines: {node: '>=18.18'}
- '@jest/diff-sequences@30.3.0':
- resolution: {integrity: sha512-cG51MVnLq1ecVUaQ3fr6YuuAOitHK1S4WUJHnsPFE/quQr33ADUx1FfrTCpMCRxvy0Yr9BThKpDjSlcTi91tMA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/get-type@30.1.0':
- resolution: {integrity: sha512-eMbZE2hUnx1WV0pmURZY9XoXPkUYjpc55mb0CrhtdWLtzMQPFvu/rZkTLZFTsdaVQa+Tr4eWAteqcUzoawq/uA==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
- '@jest/schemas@30.0.5':
- resolution: {integrity: sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA==}
+ '@jest/diff-sequences@30.0.1':
+ resolution: {integrity: sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw==}
engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
'@joshwooding/vite-plugin-react-docgen-typescript@0.7.0':
@@ -1170,13 +1181,19 @@ packages:
'@emnapi/core': ^1.7.1
'@emnapi/runtime': ^1.7.1
- '@nx/devkit@22.6.5':
- resolution: {integrity: sha512-9kvAI+kk2pfEXLqS8OyjI9XvWmp+Gdn7jPfxDAz8BOqxMyPy3p5hYl+jc4TIsLOWunAFl8azqrcYsHzEpaWCIA==}
+ '@napi-rs/wasm-runtime@1.1.4':
+ resolution: {integrity: sha512-3NQNNgA1YSlJb/kMH1ildASP9HW7/7kYnRI2szWJaofaS1hWmbGI4H+d3+22aGzXXN9IJ+n+GiFVcGipJP18ow==}
+ peerDependencies:
+ '@emnapi/core': ^1.7.1
+ '@emnapi/runtime': ^1.7.1
+
+ '@nx/devkit@22.7.0':
+ resolution: {integrity: sha512-AI6t94k37lIv5XL/eesyYFBY4x2IzgseLmf0DiycHLGfAJWsvUlTzOD++t4vek/W80YQSBKRUbLg7r6wo56d0g==}
peerDependencies:
nx: '>= 21 <= 23 || ^22.0.0-0'
- '@nx/eslint-plugin@22.6.5':
- resolution: {integrity: sha512-G1DkvBMzBAqxxrJ7Zfky5HN4HQjrULKZQ5J5YCnTm5qZpah58U7xAP4g8D0aJzKMWMUJkgXAU1ojiLbeZUDJkw==}
+ '@nx/eslint-plugin@22.7.0':
+ resolution: {integrity: sha512-hoWUBtMMTR+/qqi2bQtlUt9UyE9mIEToYDKdKNC5UncKbQse+nbLTuj+13r1ljyhHMKa4h85RtJzSlKC49H/hw==}
peerDependencies:
'@typescript-eslint/parser': ^6.13.2 || ^7.0.0 || ^8.0.0
eslint-config-prettier: ^10.0.0
@@ -1184,99 +1201,105 @@ packages:
eslint-config-prettier:
optional: true
- '@nx/eslint@22.6.5':
- resolution: {integrity: sha512-rEV8CveVA3CCW8MHSKauUI+6XSpQ0nZ/z64fBvBulLUoUO10/mVpkbl3NpRyhCKXzOHYhW35wwuzq6YrfSi6gA==}
+ '@nx/eslint@22.7.0':
+ resolution: {integrity: sha512-KaGAkF8ZNdNZ6qu0Lq5aDRu6fQ6Zx4EM2Bf5b43LinPTN5l1x9U8LFLRETWoh03/kSwm6dfdGMEWOvSAuFgAdQ==}
peerDependencies:
+ '@nx/jest': 22.7.0
'@zkochan/js-yaml': 0.0.7
eslint: ^8.0.0 || ^9.0.0 || ^10.0.0
peerDependenciesMeta:
+ '@nx/jest':
+ optional: true
'@zkochan/js-yaml':
optional: true
- '@nx/js@22.6.5':
- resolution: {integrity: sha512-bmikz6qaBHfuAgsqPB/TfLIKfvI4g+EKIRAiU2FHnEtVWOKDAmSQXHFwE3rMS49jl2JLgxkdNjZHpg4g/OLy0g==}
+ '@nx/js@22.7.0':
+ resolution: {integrity: sha512-/ZreqwA1McpGn4kRLMnt9+UTIqCLlZp/OzVes1YOcIfzZ6LYQtL/aOVaYkpv/IB/9ojT0qHpAvLHnoHFzQtpCQ==}
peerDependencies:
verdaccio: ^6.0.5
peerDependenciesMeta:
verdaccio:
optional: true
- '@nx/nx-darwin-arm64@22.6.5':
- resolution: {integrity: sha512-qT77Omkg5xQuL2+pDbneX2tI+XW5ZeayMylu7UUgK8OhTrAkJLKjpuYRH4xT5XBipxbDtlxmO3aLS3Ib1pKzJQ==}
+ '@nx/nx-darwin-arm64@22.7.0':
+ resolution: {integrity: sha512-WczfOkv7bVSi0i4bLFmMLqdcRllJr+CLO0ibVapGHxdaOkNPCgSDxBVYC/0eg8yyMsPXQu8daaTvOlODNJw9GQ==}
cpu: [arm64]
os: [darwin]
- '@nx/nx-darwin-x64@22.6.5':
- resolution: {integrity: sha512-9jICxb7vfJ56y/7Yuh3b/n1QJqWxO9xnXKYEs6SO8xPoW/KomVckILGc1C6RQSs6/3ixVJC7k1Dh1wm5tKPFrg==}
+ '@nx/nx-darwin-x64@22.7.0':
+ resolution: {integrity: sha512-KGBq43lJbDjIpIAU5/sJFJQokGgCu/0KVe5pO2u9hMO2A9VaVtud5bGbDpkBiWoYBK9BLM3YpbG/RB74unxWxg==}
cpu: [x64]
os: [darwin]
- '@nx/nx-freebsd-x64@22.6.5':
- resolution: {integrity: sha512-6B1wEKpqz5dI3AGMqttAVnA6M3DB/besAtuGyQiymK9ROlta1iuWgCcIYwcCQyhLn2Rx7vqj447KKcgCa8HlVw==}
+ '@nx/nx-freebsd-x64@22.7.0':
+ resolution: {integrity: sha512-DKOHaFC7Ko4+nlin/us8FEfBBgnpifZie4LELgo2nI044GlazGHJArtRSdLq3qKfWXqtieOKO3R4YV09Ax37Rg==}
cpu: [x64]
os: [freebsd]
- '@nx/nx-linux-arm-gnueabihf@22.6.5':
- resolution: {integrity: sha512-xV50B8mnDPboct7JkAHftajI02s+8FszA8WTzhore+YGR+lEKHTLpucwGEaQuMlSdLplH7pQix4B4uK5pcMhZw==}
+ '@nx/nx-linux-arm-gnueabihf@22.7.0':
+ resolution: {integrity: sha512-LaZSE4FGk8KFyKF8grlhcoBWJabxkn7moO2QfULm3i1GY1AYu7bbxVZG42cAdGENqliCB8V2ARBWrMKq6mqW2g==}
cpu: [arm]
os: [linux]
- '@nx/nx-linux-arm64-gnu@22.6.5':
- resolution: {integrity: sha512-2JkWuMGj+HpW6oPAvU5VdAx1afTnEbiM10Y3YOrl3fipWV4BiP5VDx762QTrfCraP4hl6yqTgvTe7F9xaby+jQ==}
+ '@nx/nx-linux-arm64-gnu@22.7.0':
+ resolution: {integrity: sha512-g0GJ2avp0wuxHCQ2fjlMVjez4TWBtfj0jLCzO2I9M3B6ui0V+9Wh66DO5pLwyQFGbxODgwz9vwrEEZKlbDrchA==}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@nx/nx-linux-arm64-musl@22.6.5':
- resolution: {integrity: sha512-Z/zMqFClnEyqDXouJKEPoWVhMQIif5F0YuECWBYjd3ZLwQsXGTItoh+6Wm3XF/nGMA2uLOHyTq/X7iFXQY3RzA==}
+ '@nx/nx-linux-arm64-musl@22.7.0':
+ resolution: {integrity: sha512-xb72G+LrhZNrWXOAd6aoDQmhzO5GKq6dkAYqhtOTAklCwIo5/4dkvqvFEe5RIQ7pk6RzdD2cUZMTJTr99rSGTg==}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@nx/nx-linux-x64-gnu@22.6.5':
- resolution: {integrity: sha512-FlotSyqNnaXSn0K+yWw+hRdYBwusABrPgKLyixfJIYRzsy+xPKN6pON6vZfqGwzuWF/9mEGReRz+iM8PiW0XSg==}
+ '@nx/nx-linux-x64-gnu@22.7.0':
+ resolution: {integrity: sha512-win7DkwxThhGWJlJ0s9HLxPzam/wz5MbQhKTQmLehHz8mgFJOu6MqzrccDxuT1E93dODedtxJuAyW4c80mpp4A==}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@nx/nx-linux-x64-musl@22.6.5':
- resolution: {integrity: sha512-RVOe2qcwhoIx6mxQURPjUfAW5SEOmT2gdhewvdcvX9ICq1hj5B2VarmkhTg0qroO7xiyqOqwq26mCzoV2I3NgQ==}
+ '@nx/nx-linux-x64-musl@22.7.0':
+ resolution: {integrity: sha512-lU7yT+CsZFPCH3dZAVynhyJxa5w8rwCVtbDYbBa703DkNgb8/CQAthyE7NN2fjfzeQ0YpXoV3O/iX6sVY1sdjA==}
cpu: [x64]
os: [linux]
libc: [musl]
- '@nx/nx-win32-arm64-msvc@22.6.5':
- resolution: {integrity: sha512-ZqurqI8VuYnsr2Kn4K4t+Gx6j/BZdf6qz/6Tv4A7XQQ6oNYVQgTqoNEFj+CCkVaIe6aIdCWpousFLqs+ZgBqYQ==}
+ '@nx/nx-win32-arm64-msvc@22.7.0':
+ resolution: {integrity: sha512-e8P0ZSPJpaAjiIitcJAjdSCeCxAMjt5OqM6kZYUiwpHVnB31YAEe8feNvQcfvhyMjx/AXFQlBztHh8kANvdlLw==}
cpu: [arm64]
os: [win32]
- '@nx/nx-win32-x64-msvc@22.6.5':
- resolution: {integrity: sha512-i2QFBJIuaYg9BHxrrnBV4O7W9rVL2k0pSIdk/rRp3EYJEU93iUng+qbZiY9wh1xvmXuUCE2G7TRd+8/SG/RFKg==}
+ '@nx/nx-win32-x64-msvc@22.7.0':
+ resolution: {integrity: sha512-NWLezNDRoZpqs8DudLCGBj214fIIG3cDhkez7eKW/i+s27O3laVCO9QgaFi07P+RSnrnZVJPfOISkE0Ql7gdAw==}
cpu: [x64]
os: [win32]
- '@nx/vite@22.6.5':
- resolution: {integrity: sha512-uj8vcQYkuXjsVII2u9LNfHaR4QEpK4bcOtUQBmxKDhAZGe6cFEs2b4sxlOZs1Wx7O5nS/gwPvajOIZbxmEI63Q==}
+ '@nx/vite@22.7.0':
+ resolution: {integrity: sha512-JgH+sFeqDlQYpINPbXjLKfvYrg9oXX3+ZRzmcysluO8FXNywN+S/Wh06+3Qww2Ton6IxX++v6TYxnDSqxQ4xcg==}
peerDependencies:
vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
vitest: ^1.3.1 || ^2.0.0 || ^3.0.0 || ^4.0.0
- '@nx/vitest@22.6.5':
- resolution: {integrity: sha512-0f0MyDLrfOD6S0+aXoMX5/+vLiAAAKEaC5SKdcUsoPbVkK6MOw0fh0eNb5FhKLrb1GjRyx9nwo9elGiCXj7X7Q==}
+ '@nx/vitest@22.7.0':
+ resolution: {integrity: sha512-WOPlzB6+08XAq5kXyR6KxaDkxTIv4VzXAAY7hS2G62xuSlrzw/iEC+rh5ICziGF1o1G1ZaiQSE0NFdf+EHuyQg==}
peerDependencies:
+ '@nx/eslint': 22.7.0
vite: ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0
vitest: ^1.0.0 || ^2.0.0 || ^3.0.0 || ^4.0.0
peerDependenciesMeta:
+ '@nx/eslint':
+ optional: true
vite:
optional: true
vitest:
optional: true
- '@nx/workspace@22.6.5':
- resolution: {integrity: sha512-/CZtv1ESSfZ1MVqSlCsmnBWysU1z5VdNlwANlqL6BV2X6RUHKDPVj4YuNPvCK+0LsqyzfJdUt3pcnBYxnT5TIg==}
+ '@nx/workspace@22.7.0':
+ resolution: {integrity: sha512-ZhZYOlyPt1kJBvuC8MbTVTkDJSiEnr7Fu0luTGsbVLQO+2bHjIJml5HT1vCNpn39VH4Y4ZLgclHOt6P+KJH6/g==}
- '@oxc-project/types@0.124.0':
- resolution: {integrity: sha512-VBFWMTBvHxS11Z5Lvlr3IWgrwhMTXV+Md+EQF0Xf60+wAdsGFTBx7X7K/hP4pi8N7dcm1RvcHwDxZ16Qx8keUg==}
+ '@oxc-project/types@0.127.0':
+ resolution: {integrity: sha512-aIYXQBo4lCbO4z0R3FHeucQHpF46l2LbMdxRvqvuRuW2OxdnSkcng5B8+K12spgLDj93rtN3+J2Vac/TIO+ciQ==}
'@oxc-resolver/binding-android-arm-eabi@11.19.1':
resolution: {integrity: sha512-aUs47y+xyXHUKlbhqHUjBABjvycq6YSD7bpxSW7vplUmdzAlJ93yXY6ZR0c1o1x5A/QKbENCvs3+NlY8IpIVzg==}
@@ -1402,103 +1425,103 @@ packages:
peerDependencies:
react: '>=18.2.0'
- '@rolldown/binding-android-arm64@1.0.0-rc.15':
- resolution: {integrity: sha512-YYe6aWruPZDtHNpwu7+qAHEMbQ/yRl6atqb/AhznLTnD3UY99Q1jE7ihLSahNWkF4EqRPVC4SiR4O0UkLK02tA==}
+ '@rolldown/binding-android-arm64@1.0.0-rc.17':
+ resolution: {integrity: sha512-s70pVGhw4zqGeFnXWvAzJDlvxhlRollagdCCKRgOsgUOH3N1l0LIxf83AtGzmb5SiVM4Hjl5HyarMRfdfj3DaQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [android]
- '@rolldown/binding-darwin-arm64@1.0.0-rc.15':
- resolution: {integrity: sha512-oArR/ig8wNTPYsXL+Mzhs0oxhxfuHRfG7Ikw7jXsw8mYOtk71W0OkF2VEVh699pdmzjPQsTjlD1JIOoHkLP1Fg==}
+ '@rolldown/binding-darwin-arm64@1.0.0-rc.17':
+ resolution: {integrity: sha512-4ksWc9n0mhlZpZ9PMZgTGjeOPRu8MB1Z3Tz0Mo02eWfWCHMW1zN82Qz/pL/rC+yQa+8ZnutMF0JjJe7PjwasYw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [darwin]
- '@rolldown/binding-darwin-x64@1.0.0-rc.15':
- resolution: {integrity: sha512-YzeVqOqjPYvUbJSWJ4EDL8ahbmsIXQpgL3JVipmN+MX0XnXMeWomLN3Fb+nwCmP/jfyqte5I3XRSm7OfQrbyxw==}
+ '@rolldown/binding-darwin-x64@1.0.0-rc.17':
+ resolution: {integrity: sha512-SUSDOI6WwUVNcWxd02QEBjLdY1VPHvlEkw6T/8nYG322iYWCTxRb1vzk4E+mWWYehTp7ERibq54LSJGjmouOsw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [darwin]
- '@rolldown/binding-freebsd-x64@1.0.0-rc.15':
- resolution: {integrity: sha512-9Erhx956jeQ0nNTyif1+QWAXDRD38ZNjr//bSHrt6wDwB+QkAfl2q6Mn1k6OBPerznjRmbM10lgRb1Pli4xZPw==}
+ '@rolldown/binding-freebsd-x64@1.0.0-rc.17':
+ resolution: {integrity: sha512-hwnz3nw9dbJ05EDO/PvcjaaewqqDy7Y1rn1UO81l8iIK1GjenME75dl16ajbvSSMfv66WXSRCYKIqfgq2KCfxw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [freebsd]
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15':
- resolution: {integrity: sha512-cVwk0w8QbZJGTnP/AHQBs5yNwmpgGYStL88t4UIaqcvYJWBfS0s3oqVLZPwsPU6M0zlW4GqjP0Zq5MnAGwFeGA==}
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17':
+ resolution: {integrity: sha512-IS+W7epTcwANmFSQFrS1SivEXHtl1JtuQA9wlxrZTcNi6mx+FDOYrakGevvvTwgj2JvWiK8B29/qD9BELZPyXQ==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm]
os: [linux]
- '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15':
- resolution: {integrity: sha512-eBZ/u8iAK9SoHGanqe/jrPnY0JvBN6iXbVOsbO38mbz+ZJsaobExAm1Iu+rxa4S1l2FjG0qEZn4Rc6X8n+9M+w==}
+ '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17':
+ resolution: {integrity: sha512-e6usGaHKW5BMNZOymS1UcEYGowQMWcgZ71Z17Sl/h2+ZziNJ1a9n3Zvcz6LdRyIW5572wBCTH/Z+bKuZouGk9Q==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15':
- resolution: {integrity: sha512-ZvRYMGrAklV9PEkgt4LQM6MjQX2P58HPAuecwYObY2DhS2t35R0I810bKi0wmaYORt6m/2Sm+Z+nFgb0WhXNcQ==}
+ '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17':
+ resolution: {integrity: sha512-b/CgbwAJpmrRLp02RPfhbudf5tZnN9nsPWK82znefso832etkem8H7FSZwxrOI9djcdTP7U6YfNhbRnh7djErg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15':
- resolution: {integrity: sha512-VDpgGBzgfg5hLg+uBpCLoFG5kVvEyafmfxGUV0UHLcL5irxAK7PKNeC2MwClgk6ZAiNhmo9FLhRYgvMmedLtnQ==}
+ '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17':
+ resolution: {integrity: sha512-4EII1iNGRUN5WwGbF/kOh/EIkoDN9HsupgLQoXfY+D1oyJm7/F4t5PYU5n8SWZgG0FEwakyM8pGgwcBYruGTlA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15':
- resolution: {integrity: sha512-y1uXY3qQWCzcPgRJATPSOUP4tCemh4uBdY7e3EZbVwCJTY3gLJWnQABgeUetvED+bt1FQ01OeZwvhLS2bpNrAQ==}
+ '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17':
+ resolution: {integrity: sha512-AH8oq3XqQo4IibpVXvPeLDI5pzkpYn0WiZAfT05kFzoJ6tQNzwRdDYQ45M8I/gslbodRZwW8uxLhbSBbkv96rA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15':
- resolution: {integrity: sha512-023bTPBod7J3Y/4fzAN6QtpkSABR0rigtrwaP+qSEabUh5zf6ELr9Nc7GujaROuPY3uwdSIXWrvhn1KxOvurWA==}
+ '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17':
+ resolution: {integrity: sha512-cLnjV3xfo7KslbU41Z7z8BH/E1y5mzUYzAqih1d1MDaIGZRCMqTijqLv76/P7fyHuvUcfGsIpqCdddbxLLK9rA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@rolldown/binding-linux-x64-musl@1.0.0-rc.15':
- resolution: {integrity: sha512-witB2O0/hU4CgfOOKUoeFgQ4GktPi1eEbAhaLAIpgD6+ZnhcPkUtPsoKKHRzmOoWPZue46IThdSgdo4XneOLYw==}
+ '@rolldown/binding-linux-x64-musl@1.0.0-rc.17':
+ resolution: {integrity: sha512-0phclDw1spsL7dUB37sIARuis2tAgomCJXAHZlpt8PXZ4Ba0dRP1e+66lsRqrfhISeN9bEGNjQs+T/Fbd7oYGw==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [linux]
libc: [musl]
- '@rolldown/binding-openharmony-arm64@1.0.0-rc.15':
- resolution: {integrity: sha512-UCL68NJ0Ud5zRipXZE9dF5PmirzJE4E4BCIOOssEnM7wLDsxjc6Qb0sGDxTNRTP53I6MZpygyCpY8Aa8sPfKPg==}
+ '@rolldown/binding-openharmony-arm64@1.0.0-rc.17':
+ resolution: {integrity: sha512-0ag/hEgXOwgw4t8QyQvUCxvEg+V0KBcA6YuOx9g0r02MprutRF5dyljgm3EmR02O292UX7UeS6HzWHAl6KgyhA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [openharmony]
- '@rolldown/binding-wasm32-wasi@1.0.0-rc.15':
- resolution: {integrity: sha512-ApLruZq/ig+nhaE7OJm4lDjayUnOHVUa77zGeqnqZ9pn0ovdVbbNPerVibLXDmWeUZXjIYIT8V3xkT58Rm9u5Q==}
- engines: {node: '>=14.0.0'}
+ '@rolldown/binding-wasm32-wasi@1.0.0-rc.17':
+ resolution: {integrity: sha512-LEXei6vo0E5wTGwpkJ4KoT3OZJRnglwldt5ziLzOlc6qqb55z4tWNq2A+PFqCJuvWWdP53CVhG1Z9NtToDPJrA==}
+ engines: {node: ^20.19.0 || >=22.12.0}
cpu: [wasm32]
- '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15':
- resolution: {integrity: sha512-KmoUoU7HnN+Si5YWJigfTws1jz1bKBYDQKdbLspz0UaqjjFkddHsqorgiW1mxcAj88lYUE6NC/zJNwT+SloqtA==}
+ '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17':
+ resolution: {integrity: sha512-gUmyzBl3SPMa6hrqFUth9sVfcLBlYsbMzBx5PlexMroZStgzGqlZ26pYG89rBb45Mnia+oil6YAIFeEWGWhoZA==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [arm64]
os: [win32]
- '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15':
- resolution: {integrity: sha512-3P2A8L+x75qavWLe/Dll3EYBJLQmtkJN8rfh+U/eR3MqMgL/h98PhYI+JFfXuDPgPeCB7iZAKiqii5vqOvnA0g==}
+ '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
+ resolution: {integrity: sha512-3hkiolcUAvPB9FLb3UZdfjVVNWherN1f/skkGWJP/fgSQhYUZpSIRr0/I8ZK9TkF3F7kxvJAk0+IcKvPHk9qQg==}
engines: {node: ^20.19.0 || >=22.12.0}
cpu: [x64]
os: [win32]
- '@rolldown/pluginutils@1.0.0-rc.15':
- resolution: {integrity: sha512-UromN0peaE53IaBRe9W7CjrZgXl90fqGpK+mIZbA3qSTeYqg3pqpROBdIPvOG3F5ereDHNwoHBI2e50n1BDr1g==}
+ '@rolldown/pluginutils@1.0.0-rc.17':
+ resolution: {integrity: sha512-n8iosDOt6Ig1UhJ2AYqoIhHWh/isz0xpicHTzpKBeotdVsTEcxsSA/i3EVM7gQAj0rU27OLAxCjzlj15IWY7bg==}
'@rolldown/pluginutils@1.0.0-rc.7':
resolution: {integrity: sha512-qujRfC8sFVInYSPPMLQByRh7zhwkGFS4+tyMQ83srV1qrxL4g8E2tyxVVyxd0+8QeBM1mIk9KbWxkegRr76XzA==}
@@ -1550,9 +1573,6 @@ packages:
resolution: {integrity: sha512-KxXvfapcixpz6rVEB6HPjOUZT22yN6v0vI0urQSk1L8MlEWPDFCZkhw2xmkyoTGYeFw7tWTZd7e3lVzRZRN/EA==}
engines: {node: '>=18'}
- '@sinclair/typebox@0.34.49':
- resolution: {integrity: sha512-brySQQs7Jtn0joV8Xh9ZV/hZb9Ozb0pmazDIASBkYKCjXrXU3mpcFahmK/z4YDhGkQvP9mWJbVyahdtU5wQA+A==}
-
'@sindresorhus/is@4.6.0':
resolution: {integrity: sha512-t09vSN3MdfsyCHoFcTRCH/iUtG7OJ0CsjzB8cjAmKc/va/kIgeDI/TxsigdncE/4be734m0cvIYwNaV4i2XqAw==}
engines: {node: '>=10'}
@@ -1666,86 +1686,86 @@ packages:
'@swc-node/sourcemap-support@0.6.1':
resolution: {integrity: sha512-ovltDVH5QpdHXZkW138vG4+dgcNsxfwxHVoV6BtmTbz2KKl1A8ZSlbdtxzzfNjCjbpayda8Us9eMtcHobm38dA==}
- '@swc/core-darwin-arm64@1.15.24':
- resolution: {integrity: sha512-uM5ZGfFXjtvtJ+fe448PVBEbn/CSxS3UAyLj3O9xOqKIWy3S6hPTXSPbszxkSsGDYKi+YFhzAsR4r/eXLxEQ0g==}
+ '@swc/core-darwin-arm64@1.15.32':
+ resolution: {integrity: sha512-/YWMvJDPu+AAwuUsM2G+DNQ/7zhodURGzdQyewEqcvgklAdDHs3LwQmLLnyn6SJl8DT8UOxkbzK+D1PmPeelRg==}
engines: {node: '>=10'}
cpu: [arm64]
os: [darwin]
- '@swc/core-darwin-x64@1.15.24':
- resolution: {integrity: sha512-fMIb/Zfn929pw25VMBhV7Ji2Dl+lCWtUPNdYJQYOke+00E5fcQ9ynxtP8+qhUo/HZc+mYQb1gJxwHM9vty+lXg==}
+ '@swc/core-darwin-x64@1.15.32':
+ resolution: {integrity: sha512-KOTXJXdAhWL+hZ77MYP3z+4pcMFaQhQ74yqyN1uz093q0YnbxpqMtYpPISbYvMHzVRNNx5kN+9RZAXEaadhWVA==}
engines: {node: '>=10'}
cpu: [x64]
os: [darwin]
- '@swc/core-linux-arm-gnueabihf@1.15.24':
- resolution: {integrity: sha512-vOkjsyjjxnoYx3hMEWcGxQrMgnNrRm6WAegBXrN8foHtDAR+zpdhpGF5a4lj1bNPgXAvmysjui8cM1ov/Clkaw==}
+ '@swc/core-linux-arm-gnueabihf@1.15.32':
+ resolution: {integrity: sha512-oOoxLweljlc0A4X8ybsgxV7cVaYTwBOg2iMDJcFR3Sr48C+lsv9VzSmqdK/IVIXF4W4GjLc3VqTAdSMXlfVLuQ==}
engines: {node: '>=10'}
cpu: [arm]
os: [linux]
- '@swc/core-linux-arm64-gnu@1.15.24':
- resolution: {integrity: sha512-h/oNu+upkXJ6Cicnq7YGVj9PkdfarLCdQa8l/FlHYvfv8CEiMaeeTnpLU7gSBH/rGxosM6Qkfa/J9mThGF9CLA==}
+ '@swc/core-linux-arm64-gnu@1.15.32':
+ resolution: {integrity: sha512-oDzEkdl6D6BAWdMtU5KGO7y3HR5fJcvByNLyEk9+ugj8nP5Ovb7P4kBcStBXc4MPExFGQryehiINMlmY8HlclA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [glibc]
- '@swc/core-linux-arm64-musl@1.15.24':
- resolution: {integrity: sha512-ZpF/pRe1guk6sKzQI9D1jAORtjTdNlyeXn9GDz8ophof/w2WhojRblvSDJaGe7rJjcPN8AaOkhwdRUh7q8oYIg==}
+ '@swc/core-linux-arm64-musl@1.15.32':
+ resolution: {integrity: sha512-omcqjoZP/b8D8PuczVoRwJieC6ibj7qIxTftNYokz4/aSmKFHvsd7nIFfPk5ZvtzncbH4AY7+Dkr/Lp2gWxYeA==}
engines: {node: '>=10'}
cpu: [arm64]
os: [linux]
libc: [musl]
- '@swc/core-linux-ppc64-gnu@1.15.24':
- resolution: {integrity: sha512-QZEsZfisHTSJlmyChgDFNmKPb3W6Lhbfo/O76HhIngfEdnQNmukS38/VSe1feho+xkV5A5hETyCbx3sALBZKAQ==}
+ '@swc/core-linux-ppc64-gnu@1.15.32':
+ resolution: {integrity: sha512-KGkTMyz/Tbn3PBNu0AVZ4GTDFKnICrYcTiNPZq8DrvK42pnFsf3GNDrIG9E5AtQlTmC0YigkWKmu0eMcfTrmgA==}
engines: {node: '>=10'}
cpu: [ppc64]
os: [linux]
libc: [glibc]
- '@swc/core-linux-s390x-gnu@1.15.24':
- resolution: {integrity: sha512-DLdJKVsJgglqQrJBuoUYNmzm3leI7kUZhLbZGHv42onfKsGf6JDS3+bzCUQfte/XOqDjh/tmmn1DR/CF/tCJFw==}
+ '@swc/core-linux-s390x-gnu@1.15.32':
+ resolution: {integrity: sha512-G3Aa4tVS/3OGZBkoNIwUF9F6RAy+Osb4GOlo62SinLmDiErz/ykmM7KH0wkz6l9kM8jJq1HyAM6atJTUEbBk7g==}
engines: {node: '>=10'}
cpu: [s390x]
os: [linux]
libc: [glibc]
- '@swc/core-linux-x64-gnu@1.15.24':
- resolution: {integrity: sha512-IpLYfposPA/XLxYOKpRfeccl1p5dDa3+okZDHHTchBkXEaVCnq5MADPmIWwIYj1tudt7hORsEHccG5no6IUQRw==}
+ '@swc/core-linux-x64-gnu@1.15.32':
+ resolution: {integrity: sha512-ERsjfGcj6CBmj3vJnGDO8m8rTvw6RqMcWo1dogOtNx3/+/0+NNpJiXDobJrr1GwInI/BHAEkvSFIH6d2LqPcUQ==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [glibc]
- '@swc/core-linux-x64-musl@1.15.24':
- resolution: {integrity: sha512-JHy3fMSc0t/EPWgo74+OK5TGr51aElnzqfUPaiRf2qJ/BfX5CUCfMiWVBuhI7qmVMBnk1jTRnL/xZnOSHDPLYg==}
+ '@swc/core-linux-x64-musl@1.15.32':
+ resolution: {integrity: sha512-N4Ggahe/8SUbTX50P6EdhbW9YWcgbZVb52R4cq6MK+zsoMjRq7rGvV5ztA05QnbaCYqMYx8rTY7KAIA3Crdo4Q==}
engines: {node: '>=10'}
cpu: [x64]
os: [linux]
libc: [musl]
- '@swc/core-win32-arm64-msvc@1.15.24':
- resolution: {integrity: sha512-Txj+qUH1z2bUd1P3JvwByfjKFti3cptlAxhWgmunBUUxy/IW3CXLZ6l6Gk4liANadKkU71nIU1X30Z5vpMT3BA==}
+ '@swc/core-win32-arm64-msvc@1.15.32':
+ resolution: {integrity: sha512-01yN0o9jvo8xBTP12aPK2wW8b41jmOlGbDDlAnoynotc4pO6xA0zby9f1z6j++qXDpGBttLySq1omgVrlQKYcw==}
engines: {node: '>=10'}
cpu: [arm64]
os: [win32]
- '@swc/core-win32-ia32-msvc@1.15.24':
- resolution: {integrity: sha512-15D/nl3XwrhFpMv+MADFOiVwv3FvH9j8c6Rf8EXBT3Q5LoMh8YnDnSgPYqw1JzPnksvsBX6QPXLiPqmcR/Z4qQ==}
+ '@swc/core-win32-ia32-msvc@1.15.32':
+ resolution: {integrity: sha512-fLagI9XZYNpTcmlqAcp3KBtmj7E19WCmYD80Jxj1Kn5tGNa7yxNLd3NNdWxuZGUPl5iC0/KqZru7g08gF6Fsrw==}
engines: {node: '>=10'}
cpu: [ia32]
os: [win32]
- '@swc/core-win32-x64-msvc@1.15.24':
- resolution: {integrity: sha512-PR0PlTlPra2JbaDphrOAzm6s0v9rA0F17YzB+XbWD95B4g2cWcZY9LAeTa4xll70VLw9Jr7xBrlohqlQmelMFQ==}
+ '@swc/core-win32-x64-msvc@1.15.32':
+ resolution: {integrity: sha512-gbc2bQ/T2CiR+w0OvcVKwLOFAcPZBvmWmolbwpg1E8UrpeC03DGtyMUApOHNXNYWA3SHFrYXCQtosrcMza1YFg==}
engines: {node: '>=10'}
cpu: [x64]
os: [win32]
- '@swc/core@1.15.24':
- resolution: {integrity: sha512-5Hj8aNasue7yusUt8LGCUe/AjM7RMAce8ZoyDyiFwx7Al+GbYKL+yE7g4sJk8vEr1dKIkTRARkNIJENc4CjkBQ==}
+ '@swc/core@1.15.32':
+ resolution: {integrity: sha512-/eWL0n43D64QWEUHLtTE+jDqjkJhyidjkDhv6f0uJohOUAhywxQ9wXYp845DNNds0JpCdI4Uo0a9bl+vbXf+ew==}
engines: {node: '>=10'}
peerDependencies:
'@swc/helpers': '>=0.5.17'
@@ -1866,16 +1886,16 @@ packages:
'@types/trusted-types@2.0.7':
resolution: {integrity: sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw==}
- '@typescript-eslint/eslint-plugin@8.58.2':
- resolution: {integrity: sha512-aC2qc5thQahutKjP+cl8cgN9DWe3ZUqVko30CMSZHnFEHyhOYoZSzkGtAI2mcwZ38xeImDucI4dnqsHiOYuuCw==}
+ '@typescript-eslint/eslint-plugin@8.59.0':
+ resolution: {integrity: sha512-HyAZtpdkgZwpq8Sz3FSUvCR4c+ScbuWa9AksK2Jweub7w4M3yTz4O11AqVJzLYjy/B9ZWPyc81I+mOdJU/bDQw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
- '@typescript-eslint/parser': ^8.58.2
+ '@typescript-eslint/parser': ^8.59.0
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
- '@typescript-eslint/parser@8.58.2':
- resolution: {integrity: sha512-/Zb/xaIDfxeJnvishjGdcR4jmr7S+bda8PKNhRGdljDM+elXhlvN0FyPSsMnLmJUrVG9aPO6dof80wjMawsASg==}
+ '@typescript-eslint/parser@8.59.0':
+ resolution: {integrity: sha512-TI1XGwKbDpo9tRW8UDIXCOeLk55qe9ZFGs8MTKU6/M08HWTw52DD/IYhfQtOEhEdPhLMT26Ka/x7p70nd3dzDg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@@ -1887,16 +1907,32 @@ packages:
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
+ '@typescript-eslint/project-service@8.59.0':
+ resolution: {integrity: sha512-Lw5ITrR5s5TbC19YSvlr63ZfLaJoU6vtKTHyB0GQOpX0W7d5/Ir6vUahWi/8Sps/nOukZQ0IB3SmlxZnjaKVnw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.1.0'
+
'@typescript-eslint/scope-manager@8.58.2':
resolution: {integrity: sha512-SgmyvDPexWETQek+qzZnrG6844IaO02UVyOLhI4wpo82dpZJY9+6YZCKAMFzXb7qhx37mFK1QcPQ18tud+vo6Q==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@typescript-eslint/scope-manager@8.59.0':
+ resolution: {integrity: sha512-UzR16Ut8IpA3Mc4DbgAShlPPkVm8xXMWafXxB0BocaVRHs8ZGakAxGRskF7FId3sdk9lgGD73GSFaWmWFDE4dg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@typescript-eslint/tsconfig-utils@8.58.2':
resolution: {integrity: sha512-3SR+RukipDvkkKp/d0jP0dyzuls3DbGmwDpVEc5wqk5f38KFThakqAAO0XMirWAE+kT00oTauTbzMFGPoAzB0A==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
+ '@typescript-eslint/tsconfig-utils@8.59.0':
+ resolution: {integrity: sha512-91Sbl3s4Kb3SybliIY6muFBmHVv+pYXfybC4Oolp3dvk8BvIE3wOPc+403CWIT7mJNkfQRGtdqghzs2+Z91Tqg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.1.0'
+
'@typescript-eslint/type-utils@8.58.2':
resolution: {integrity: sha512-Z7EloNR/B389FvabdGeTo2XMs4W9TjtPiO9DAsmT0yom0bwlPyRjkJ1uCdW1DvrrrYP50AJZ9Xc3sByZA9+dcg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1904,16 +1940,33 @@ packages:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
+ '@typescript-eslint/type-utils@8.59.0':
+ resolution: {integrity: sha512-3TRiZaQSltGqGeNrJzzr1+8YcEobKH9rHnqIp/1psfKFmhRQDNMGP5hBufanYTGznwShzVLs3Mz+gDN7HkWfXg==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
+
'@typescript-eslint/types@8.58.2':
resolution: {integrity: sha512-9TukXyATBQf/Jq9AMQXfvurk+G5R2MwfqQGDR2GzGz28HvY/lXNKGhkY+6IOubwcquikWk5cjlgPvD2uAA7htQ==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@typescript-eslint/types@8.59.0':
+ resolution: {integrity: sha512-nLzdsT1gdOgFxxxwrlNVUBzSNBEEHJ86bblmk4QAS6stfig7rcJzWKqCyxFy3YRRHXDWEkb2NralA1nOYkkm/A==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@typescript-eslint/typescript-estree@8.58.2':
resolution: {integrity: sha512-ELGuoofuhhoCvNbQjFFiobFcGgcDCEm0ThWdmO4Z0UzLqPXS3KFvnEZ+SHewwOYHjM09tkzOWXNTv9u6Gqtyuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
typescript: '>=4.8.4 <6.1.0'
+ '@typescript-eslint/typescript-estree@8.59.0':
+ resolution: {integrity: sha512-O9Re9P1BmBLFJyikRbQpLku/QA3/AueZNO9WePLBwQrvkixTmDe8u76B6CYUAITRl/rHawggEqUGn5QIkVRLMw==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ typescript: '>=4.8.4 <6.1.0'
+
'@typescript-eslint/utils@8.58.2':
resolution: {integrity: sha512-QZfjHNEzPY8+l0+fIXMvuQ2sJlplB4zgDZvA+NmvZsZv3EQwOcc1DuIU1VJUTWZ/RKouBMhDyNaBMx4sWvrzRA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
@@ -1921,10 +1974,21 @@ packages:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
typescript: '>=4.8.4 <6.1.0'
+ '@typescript-eslint/utils@8.59.0':
+ resolution: {integrity: sha512-I1R/K7V07XsMJ12Oaxg/O9GfrysGTmCRhvZJBv0RE0NcULMzjqVpR5kRRQjHsz3J/bElU7HwCO7zkqL+MSUz+g==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ peerDependencies:
+ eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
+ typescript: '>=4.8.4 <6.1.0'
+
'@typescript-eslint/visitor-keys@8.58.2':
resolution: {integrity: sha512-f1WO2Lx8a9t8DARmcWAUPJbu0G20bJlj8L4z72K00TMeJAoyLr/tHhI/pzYBLrR4dXWkcxO1cWYZEOX8DKHTqA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+ '@typescript-eslint/visitor-keys@8.59.0':
+ resolution: {integrity: sha512-/uejZt4dSere1bx12WLlPfv8GktzcaDtuJ7s42/HEZ5zGj9oxRaD4bj7qwSunXkf+pbAhFt2zjpHYUiT5lHf0Q==}
+ engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
+
'@verdaccio/auth@8.0.0-next-8.37':
resolution: {integrity: sha512-wvKPnjDZReT0gSxntUbcOYl23m2mHeMT9a/uhRMdw3pbraSgozatnf3UuoTd6Uyfm3vn+HHAHqzudUn1+yD4rw==}
engines: {node: '>=18'}
@@ -1997,8 +2061,8 @@ packages:
resolution: {integrity: sha512-Qxm6JQYEFfkeJd4YQII/2IAMiL++QnM6gqKXZbM5mNkAApyqx8ZbL1e9pe3aCDmBYs2mo0JGORCy3OaHZcsJGw==}
engines: {node: '>=18'}
- '@verdaccio/ui-theme@9.0.0-next-9.10':
- resolution: {integrity: sha512-sJRuAGKHklQU8bLdcXjvzfajXk9VqyBcFUKHAAyWXAeIKs04/lTgCHB6nFcEm0WDzlXk8CMAQuo/kcjNkg7qyw==}
+ '@verdaccio/ui-theme@9.0.0-next-9.14':
+ resolution: {integrity: sha512-0PQW6PV+sHsQdV3gnHQqAcDcVGfT75vHq1TfIeEN2QY5KuEkvli8e5vut+sTe89p+GOTahHKgTMOcL0O3BvsgA==}
'@verdaccio/url@13.0.0-next-8.37':
resolution: {integrity: sha512-Gtv5oDgVwGPGxzuXaIJLbmL8YkBKW2UZwDsrnbDoWRt1nWLtiOp4Vui1VISTqX7A9BB50YslLEgNLcPd2qRE+w==}
@@ -2021,11 +2085,11 @@ packages:
babel-plugin-react-compiler:
optional: true
- '@vitest/coverage-v8@4.1.4':
- resolution: {integrity: sha512-x7FptB5oDruxNPDNY2+S8tCh0pcq7ymCe1gTHcsp733jYjrJl8V1gMUlVysuCD9Kz46Xz9t1akkv08dPcYDs1w==}
+ '@vitest/coverage-v8@4.1.5':
+ resolution: {integrity: sha512-38C0/Ddb7HcRG0Z4/DUem8x57d2p9jYgp18mkaYswEOQBGsI1CG4f/hjm0ZCeaJfWhSZ4k7jgs29V1Zom7Ki9A==}
peerDependencies:
- '@vitest/browser': 4.1.4
- vitest: 4.1.4
+ '@vitest/browser': 4.1.5
+ vitest: 4.1.5
peerDependenciesMeta:
'@vitest/browser':
optional: true
@@ -2033,11 +2097,11 @@ packages:
'@vitest/expect@3.2.4':
resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==}
- '@vitest/expect@4.1.4':
- resolution: {integrity: sha512-iPBpra+VDuXmBFI3FMKHSFXp3Gx5HfmSCE8X67Dn+bwephCnQCaB7qWK2ldHa+8ncN8hJU8VTMcxjPpyMkUjww==}
+ '@vitest/expect@4.1.5':
+ resolution: {integrity: sha512-PWBaRY5JoKuRnHlUHfpV/KohFylaDZTupcXN1H9vYryNLOnitSw60Mw9IAE2r67NbwwzBw/Cc/8q9BK3kIX8Kw==}
- '@vitest/mocker@4.1.4':
- resolution: {integrity: sha512-R9HTZBhW6yCSGbGQnDnH3QHfJxokKN4KB+Yvk9Q1le7eQNYwiCyKxmLmurSpFy6BzJanSLuEUDrD+j97Q+ZLPg==}
+ '@vitest/mocker@4.1.5':
+ resolution: {integrity: sha512-/x2EmFC4mT4NNzqvC3fmesuV97w5FC903KPmey4gsnJiMQ3Be1IlDKVaDaG8iqaLFHqJ2FVEkxZk5VmeLjIItw==}
peerDependencies:
msw: ^2.4.9
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -2050,31 +2114,31 @@ packages:
'@vitest/pretty-format@3.2.4':
resolution: {integrity: sha512-IVNZik8IVRJRTr9fxlitMKeJeXFFFN0JaB9PHPGQ8NKQbGpfjlTx9zO4RefN8gp7eqjNy8nyK3NZmBzOPeIxtA==}
- '@vitest/pretty-format@4.1.4':
- resolution: {integrity: sha512-ddmDHU0gjEUyEVLxtZa7xamrpIefdEETu3nZjWtHeZX4QxqJ7tRxSteHVXJOcr8jhiLoGAhkK4WJ3WqBpjx42A==}
+ '@vitest/pretty-format@4.1.5':
+ resolution: {integrity: sha512-7I3q6l5qr03dVfMX2wCo9FxwSJbPdwKjy2uu/YPpU3wfHvIL4QHwVRp57OfGrDFeUJ8/8QdfBKIV12FTtLn00g==}
- '@vitest/runner@4.1.4':
- resolution: {integrity: sha512-xTp7VZ5aXP5ZJrn15UtJUWlx6qXLnGtF6jNxHepdPHpMfz/aVPx+htHtgcAL2mDXJgKhpoo2e9/hVJsIeFbytQ==}
+ '@vitest/runner@4.1.5':
+ resolution: {integrity: sha512-2D+o7Pr82IEO46YPpoA/YU0neeyr6FTerQb5Ro7BUnBuv6NQtT/kmVnczngiMEBhzgqz2UZYl5gArejsyERDSQ==}
- '@vitest/snapshot@4.1.4':
- resolution: {integrity: sha512-MCjCFgaS8aZz+m5nTcEcgk/xhWv0rEH4Yl53PPlMXOZ1/Ka2VcZU6CJ+MgYCZbcJvzGhQRjVrGQNZqkGPttIKw==}
+ '@vitest/snapshot@4.1.5':
+ resolution: {integrity: sha512-zypXEt4KH/XgKGPUz4eC2AvErYx0My5hfL8oDb1HzGFpEk1P62bxSohdyOmvz+d9UJwanI68MKwr2EquOaOgMQ==}
'@vitest/spy@3.2.4':
resolution: {integrity: sha512-vAfasCOe6AIK70iP5UD11Ac4siNUNJ9i/9PZ3NKx07sG6sUxeag1LWdNrMWeKKYBLlzuK+Gn65Yd5nyL6ds+nw==}
- '@vitest/spy@4.1.4':
- resolution: {integrity: sha512-XxNdAsKW7C+FLydqFJLb5KhJtl3PGCMmYwFRfhvIgxJvLSXhhVI1zM8f1qD3Zg7RCjTSzDVyct6sghs9UEgBEQ==}
+ '@vitest/spy@4.1.5':
+ resolution: {integrity: sha512-2lNOsh6+R2Idnf1TCZqSwYlKN2E/iDlD8sgU59kYVl+OMDmvldO1VDk39smRfpUNwYpNRVn3w4YfuC7KfbBnkQ==}
- '@vitest/ui@4.1.4':
- resolution: {integrity: sha512-EgFR7nlj5iTDYZYCvavjFokNYwr3c3ry0sFiCg+N7B233Nwp+NNx7eoF/XvMWDCKY71xXAG3kFkt97ZHBJVL8A==}
+ '@vitest/ui@4.1.5':
+ resolution: {integrity: sha512-3Z9HNFiV0IF1fk0JPiK+7kE1GcaIPefQQIBYur6PM5yFIq6agys3uqP/0t966e1wXfmjbRCHDe7qW236Xjwnag==}
peerDependencies:
- vitest: 4.1.4
+ vitest: 4.1.5
'@vitest/utils@3.2.4':
resolution: {integrity: sha512-fB2V0JFrQSMsCo9HiSq3Ezpdv4iYaXRG1Sx8edX3MwxfyNn83mKiGzOcH+Fkxt4MHxr3y42fQi1oeAInqgX2QA==}
- '@vitest/utils@4.1.4':
- resolution: {integrity: sha512-13QMT+eysM5uVGa1rG4kegGYNp6cnQcsTc67ELFbhNLQO+vgsygtYJx2khvdt4gVQqSSpC/KT5FZZxUpP3Oatw==}
+ '@vitest/utils@4.1.5':
+ resolution: {integrity: sha512-76wdkrmfXfqGjueGgnb45ITPyUi1ycZ4IHgC2bhPDUfWHklY/q3MdLOAB+TF1e6xfl8NxNY0ZYaPCFNWSsw3Ug==}
'@volar/language-core@2.4.28':
resolution: {integrity: sha512-w4qhIJ8ZSitgLAkVay6AbcnC7gP3glYM3fYwKV3srj8m494E3xtrCv6E+bWviiK/8hs6e6t1ij1s2Endql7vzQ==}
@@ -2111,10 +2175,6 @@ packages:
'@yarnpkg/lockfile@1.1.0':
resolution: {integrity: sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==}
- '@yarnpkg/parsers@3.0.2':
- resolution: {integrity: sha512-/HcYgtUSiJiot/XWGLOlGxPYUG65+/31V8oqk17vZLW1xlCoR4PampyePljOxY2n8/3jz9+tIFzICsyGujJZoA==}
- engines: {node: '>=18.12.0'}
-
'@zkochan/js-yaml@0.0.7':
resolution: {integrity: sha512-nrUSn7hzt7J6JWgWGz78ZYI8wj+gdIJdk0Ynjpp8l+trkn58Uqsf6RYrYkEK+3X18EX+TNdtJI0WxAtc+L84SQ==}
hasBin: true
@@ -2302,6 +2362,10 @@ packages:
balanced-match@1.0.2:
resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==}
+ balanced-match@4.0.3:
+ resolution: {integrity: sha512-1pHv8LX9CpKut1Zp4EXey7Z8OfH11ONNH6Dhi2WDUt31VVZFXZzKwXcysBgqSumFCmR+0dqjMK5v5JiFHzi0+g==}
+ engines: {node: 20 || >=22}
+
balanced-match@4.0.4:
resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==}
engines: {node: 18 || 20 || >=22}
@@ -2341,6 +2405,10 @@ packages:
brace-expansion@2.1.0:
resolution: {integrity: sha512-TN1kCZAgdgweJhWWpgKYrQaMNHcDULHkWwQIspdtjV4Y5aurRdZpjAqn6yX3FPqTA9ngHCc4hJxMAMgGfve85w==}
+ brace-expansion@5.0.2:
+ resolution: {integrity: sha512-Pdk8c9poy+YhOgVWw1JNN22/HcivgKWwpxKq04M/jTmHyCZn12WPJebZxdjSa5TmBqISrUSgNYU3eRORljfCCw==}
+ engines: {node: 20 || >=22}
+
brace-expansion@5.0.5:
resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==}
engines: {node: 18 || 20 || >=22}
@@ -2679,8 +2747,8 @@ packages:
resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==}
engines: {node: '>=8'}
- dotenv-expand@11.0.7:
- resolution: {integrity: sha512-zIHwmZPRshsCdpMDyVsqGmgyP0yT8GAgXUnkdAoJisxvf33k7yO6OuoKmcTGuXPWSsm8Oh88nZicRLA9Y0rUeA==}
+ dotenv-expand@12.0.3:
+ resolution: {integrity: sha512-uc47g4b+4k/M/SeaW1y4OApx+mtLWl92l5LMPP0GNXctZqELk+YGgOPIIC5elYmUH4OuoK3JLhuRUYegeySiFA==}
engines: {node: '>=12'}
dotenv@16.4.7:
@@ -2729,14 +2797,14 @@ packages:
resolution: {integrity: sha512-yjNnPr315/FjS4zIsUxYguYUPP2e1NK4d7E7ZOLiyYCcbFBiTMyID+2wvm2w6+pZ/odMA7cRkjhsPbltwBOrLg==}
engines: {node: '>=8.6'}
- entities@6.0.1:
- resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==}
- engines: {node: '>=0.12'}
-
entities@7.0.1:
resolution: {integrity: sha512-TWrgLOFUQTH994YUyl1yT4uyavY5nNB5muff+RtWaqNVCAK408b5ZnnbNAUEWLTCpum9w6arT70i1XdQ4UeOPA==}
engines: {node: '>=0.12'}
+ entities@8.0.0:
+ resolution: {integrity: sha512-zwfzJecQ/Uej6tusMqwAqU/6KL2XaB2VZ2Jg54Je6ahNBGNH6Ek6g3jjNCF0fG9EWQKGZNddNjU5F1ZQn/sBnA==}
+ engines: {node: '>=20.19.0'}
+
env-paths@2.2.1:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
@@ -2800,8 +2868,8 @@ packages:
resolution: {integrity: sha512-tD40eHxA35h0PEIZNeIjkHoDR4YjjJp34biM0mDvplBe//mB+IHCqHDGV7pxF+7MklTvighcCPPZC7ynWyjdTA==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
- eslint@10.2.0:
- resolution: {integrity: sha512-+L0vBFYGIpSNIt/KWTpFonPrqYvgKw1eUI5Vn7mEogrQcWtWYtNQ7dNqC+px/J0idT3BAkiWrhfS7k+Tum8TUA==}
+ eslint@10.2.1:
+ resolution: {integrity: sha512-wiyGaKsDgqXvF40P8mDwiUp/KQjE1FdrIEJsM8PZ3XCiniTMXS3OHWWUe5FI5agoCnr8x4xPrTDZuxsBlNHl+Q==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24}
hasBin: true
peerDependencies:
@@ -2935,6 +3003,15 @@ packages:
flatted@3.4.2:
resolution: {integrity: sha512-PjDse7RzhcPkIJwy5t7KPWQSZ9cAbzQXcafsetQoD7sOJRQlGikNbx7yZp2OotDnJyrDcbyRq3Ttb18iYOqkxA==}
+ follow-redirects@1.15.11:
+ resolution: {integrity: sha512-deG2P0JfjrTxl50XGCDyfI97ZGVCxIpfKYmfyrQ54n5FO/0gfIES8C/Psl6kWVDolizcaaxZJnTS0QSMxvnsBQ==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+
follow-redirects@1.16.0:
resolution: {integrity: sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==}
engines: {node: '>=4.0'}
@@ -2962,9 +3039,6 @@ packages:
resolution: {integrity: sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==}
engines: {node: '>= 0.6'}
- front-matter@4.0.2:
- resolution: {integrity: sha512-I8ZuJ/qG92NWX8i5x1Y8qyj3vizhXS31OxjKDu3LKP+7/qBgfIKValiZIEwoVoJKUHlhWtYrktkxV1XsX+pPlg==}
-
fs-constants@1.0.0:
resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
@@ -3020,9 +3094,9 @@ packages:
resolution: {integrity: sha512-Wjlyrolmm8uDpm/ogGyXZXb1Z+Ca2B8NbJwqBVg0axK9GbBeoS7yGV6vjXnYdGm6X53iehEuxxbyiKp8QmN4Vw==}
engines: {node: 18 || 20 || >=22}
- global-directory@4.0.1:
- resolution: {integrity: sha512-wHTUcDUoZ1H5/0iVqEudYW4/kAlN5cZ3j/bXn0Dpbizl9iaUVeWSHqiOjsgk6OW2bkLclbBjzewBz6weQ1zA2Q==}
- engines: {node: '>=18'}
+ global-directory@5.0.0:
+ resolution: {integrity: sha512-1pgFdhK3J2LeM+dVf2Pd424yHx2ou338lC0ErNP2hPx4j8eW1Sp0XqSjNxtk6Tc4Kr5wlWtSvz8cn2yb7/SG/w==}
+ engines: {node: '>=20'}
globals@15.15.0:
resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==}
@@ -3146,9 +3220,9 @@ packages:
inherits@2.0.4:
resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
- ini@4.1.1:
- resolution: {integrity: sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g==}
- engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ ini@6.0.0:
+ resolution: {integrity: sha512-IBTdIkzZNOpqm7q3dRqJvMaldXjDHWkEDfrwGEQTs5eaQMWV+djAhR+wahyNNMAa+qpbDUhBMVt4ZKNwpPm7xQ==}
+ engines: {node: ^20.17.0 || >=22.9.0}
ipaddr.js@1.9.1:
resolution: {integrity: sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==}
@@ -3249,10 +3323,6 @@ packages:
resolution: {integrity: sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==}
engines: {node: '>=8'}
- jest-diff@30.3.0:
- resolution: {integrity: sha512-n3q4PDQjS4LrKxfWB3Z5KNk1XjXtZTBwQp71OP0Jo03Z6V60x++K5L8k6ZrW8MY8pOFylZvHM0zsjS1RqlHJZQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
jiti@2.6.1:
resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==}
hasBin: true
@@ -3266,10 +3336,6 @@ packages:
js-tokens@4.0.0:
resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==}
- js-yaml@3.14.2:
- resolution: {integrity: sha512-PMSmkqxr106Xa156c2M265Z+FTrPl+oxd/rgOQy2tijQeK5TxQ43psO1ZCwhVOSdnn+RzkzlRz/eY4BgJBYVpg==}
- hasBin: true
-
js-yaml@4.1.1:
resolution: {integrity: sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA==}
hasBin: true
@@ -3277,8 +3343,8 @@ packages:
jsbn@0.1.1:
resolution: {integrity: sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg==}
- jsdom@29.0.2:
- resolution: {integrity: sha512-9VnGEBosc/ZpwyOsJBCQ/3I5p7Q5ngOY14a9bf5btenAORmZfDse1ZEheMiWcJ3h81+Fv7HmJFdS0szo/waF2w==}
+ jsdom@29.1.0:
+ resolution: {integrity: sha512-YNUc7fB9QuvSSQWfrH0xF+TyABkxUwx8sswgIDaCrw4Hol8BghdZDkITtZheRJeMtzWlnTfsM3bBBusRvpO1wg==}
engines: {node: ^20.19.0 || ^22.13.0 || >=24.0.0}
peerDependencies:
canvas: ^3.0.0
@@ -3548,8 +3614,8 @@ packages:
resolution: {integrity: sha512-jumlc0BIUrS3qJGgIkWZsyfAM7NCWiBcCDhnd+3NNM5KbBmLTgHVfWBcg6W+rLUsIpzpERPsvwUP7CckAQSOoA==}
engines: {node: '>=12'}
- lucide@1.8.0:
- resolution: {integrity: sha512-JjV/QnadgFLj1Pyu9IKl0lknrolFEzo04B64QcYLLeRzZl/iEHpdbSrRRKbyXcv45SZNv+WGjIUCT33e7xHO6Q==}
+ lucide@1.11.0:
+ resolution: {integrity: sha512-2uvbGlcztUY+z0Ef++YCaxD6mtzrPsUJ1qWbIfqZrZGRxZBCL3icE6g2nzRTtJ6YywOoXC5blL/NmkLI66en5g==}
lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
@@ -3716,8 +3782,8 @@ packages:
resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==}
engines: {node: '>=8'}
- nx@22.6.5:
- resolution: {integrity: sha512-VRKhDAt684dXNSz9MNjE7MekkCfQF41P2PSx5jEWQjDEP1Z4jFZbyeygWs5ZyOroG7/n0MoWAJTe6ftvIcBOAg==}
+ nx@22.7.0:
+ resolution: {integrity: sha512-zjySvwwAfexdKN8utZlq5IkoRZOki/gB1KTrY7OkMjSehuiimD6A7DTySiOUkPPMDwgqxMr+eOjIIbC1uWbp8Q==}
hasBin: true
peerDependencies:
'@swc-node/register': ^1.11.1
@@ -3803,8 +3869,8 @@ packages:
resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==}
engines: {node: '>=8'}
- parse5@8.0.0:
- resolution: {integrity: sha512-9m4m5GSgXjL4AjumKzq1Fgfp3Z8rsvjRNbnkVwfu2ImRqE5D0LnY2QfDen18FSY9C573YU5XxSapdHZTZ2WolA==}
+ parse5@8.0.1:
+ resolution: {integrity: sha512-z1e/HMG90obSGeidlli3hj7cbocou0/wa5HacvI3ASx34PecNjNQeaHNo5WIZpWofN9kgkqV1q5YvXe3F0FoPw==}
parseurl@1.3.3:
resolution: {integrity: sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==}
@@ -3882,16 +3948,16 @@ packages:
pkg-types@2.3.0:
resolution: {integrity: sha512-SIqCzDRg0s9npO5XQ3tNZioRY1uK06lA41ynBC1YmFTmnY6FjUjVt6s4LoADmwoig1qqD0oK8h1p/8mlMx8Oig==}
- postcss@8.5.9:
- resolution: {integrity: sha512-7a70Nsot+EMX9fFU3064K/kdHWZqGVY+BADLyXc8Dfv+mTLLVl6JzJpPaCZ2kQL9gIJvKXSLMHhqdRRjwQeFtw==}
+ postcss@8.5.12:
+ resolution: {integrity: sha512-W62t/Se6rA0Az3DfCL0AqJwXuKwBeYg6nOaIgzP+xZ7N5BFCI7DYi1qs6ygUYT6rvfi6t9k65UMLJC+PHZpDAA==}
engines: {node: ^10 || ^12 || >=14}
prelude-ls@1.2.1:
resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==}
engines: {node: '>= 0.8.0'}
- prettier@3.8.2:
- resolution: {integrity: sha512-8c3mgTe0ASwWAJK+78dpviD+A8EqhndQPUBpNUIPt6+xWlIigCwfN01lWr9MAede4uqXGTEKeQWTvzb3vjia0Q==}
+ prettier@3.8.3:
+ resolution: {integrity: sha512-7igPTM53cGHMW8xWuVTydi2KO233VFiTNyF5hLJqpilHfmn8C8gPf+PS7dUT64YcXFbiMGZxS9pCSxL/Dxm/Jw==}
engines: {node: '>=14'}
hasBin: true
@@ -3899,10 +3965,6 @@ packages:
resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==}
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
- pretty-format@30.3.0:
- resolution: {integrity: sha512-oG4T3wCbfeuvljnyAzhBvpN45E8iOTXCU/TD3zXW80HA3dQ4ahdqMkWGiPWZvjpQwlbyHrPTWUAqUzGzv4l1JQ==}
- engines: {node: ^18.14.0 || ^20.0.0 || ^22.0.0 || >=24.0.0}
-
process-nextick-args@2.0.1:
resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==}
@@ -3976,9 +4038,6 @@ packages:
react-is@17.0.2:
resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==}
- react-is@18.3.1:
- resolution: {integrity: sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==}
-
react@19.2.5:
resolution: {integrity: sha512-llUJLzz1zTUBrskt2pwZgLq59AemifIftw4aB7JxOqf1HY2FDaGDxgwpAPVzHU1kdWabH7FauP4i1oEeer2WCA==}
engines: {node: '>=0.10.0'}
@@ -4059,8 +4118,8 @@ packages:
resolution: {integrity: sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==}
engines: {node: '>=8'}
- rolldown@1.0.0-rc.15:
- resolution: {integrity: sha512-Ff31guA5zT6WjnGp0SXw76X6hzGRk/OQq2hE+1lcDe+lJdHSgnSX6nK3erbONHyCbpSj9a9E+uX/OvytZoWp2g==}
+ rolldown@1.0.0-rc.17:
+ resolution: {integrity: sha512-ZrT53oAKrtA4+YtBWPQbtPOxIbVDbxT0orcYERKd63VJTF13zPcgXTvD4843L8pcsI7M6MErt8QtON6lrB9tyA==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
@@ -4331,8 +4390,8 @@ packages:
resolution: {integrity: sha512-+Zg3vWhRUv8B1maGSTFdev9mjoo8Etn2Ayfs4cnjlD3CsGkxXX4QyW3j2WJ0wdjYcYmy7Lx2RDsZMhgCWafKIw==}
hasBin: true
- tmp@0.2.5:
- resolution: {integrity: sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==}
+ tmp@0.2.4:
+ resolution: {integrity: sha512-UdiSoX6ypifLmrfQ/XfiawN6hkjSBpCjhKxxZcWlUUmoXLaCKQU0bx4HF/tdDK2uzRuchf1txGvrWBzYREssoQ==}
engines: {node: '>=14.14'}
toidentifier@1.0.1:
@@ -4396,8 +4455,8 @@ packages:
resolution: {integrity: sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==}
engines: {node: '>= 0.6'}
- typescript-eslint@8.58.2:
- resolution: {integrity: sha512-V8iSng9mRbdZjl54VJ9NKr6ZB+dW0J3TzRXRGcSbLIej9jV86ZRtlYeTKDR/QLxXykocJ5icNzbsl2+5TzIvcQ==}
+ typescript-eslint@8.59.0:
+ resolution: {integrity: sha512-BU3ONW9X+v90EcCH9ZS6LMackcVtxRLlI3XrYyqZIwVSHIk7Qf7bFw1z0M9Q0IUxhTMZCf8piY9hTYaNEIASrw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
peerDependencies:
eslint: ^8.57.0 || ^9.0.0 || ^10.0.0
@@ -4495,8 +4554,8 @@ packages:
resolution: {integrity: sha512-25MjzPLJG8mfPe4jtR8+3B8PCfBl0D2DRDnsP+KJPn8yBbUiO/GJaw2dyGOiVA7ZTyAWKDnN0WvmmIs+Ibj4+g==}
engines: {node: '>=18'}
- verdaccio@6.5.0:
- resolution: {integrity: sha512-PFsGVvSyS47ZAt58MiL+5hX0jexgv20rrhEL2qEF5wGV9OLP9Cbm67aN5+PJT3pdQyghGk2Yq4/SVNwCmB/oHA==}
+ verdaccio@6.5.2:
+ resolution: {integrity: sha512-zFzUz/2b5z4svs7/wkX0JDSvOE3ViWdNcIs8qwnmUg2hKBbWeVoA5Kt/JWHRkUrCuwiIfAoEWobiKZmrAFqHqw==}
engines: {node: '>=18'}
hasBin: true
@@ -4513,8 +4572,8 @@ packages:
vite:
optional: true
- vite@8.0.8:
- resolution: {integrity: sha512-dbU7/iLVa8KZALJyLOBOQ88nOXtNG8vxKuOT4I2mD+Ya70KPceF4IAmDsmU0h1Qsn5bPrvsY9HJstCRh3hG6Uw==}
+ vite@8.0.10:
+ resolution: {integrity: sha512-rZuUu9j6J5uotLDs+cAA4O5H4K1SfPliUlQwqa6YEwSrWDZzP4rhm00oJR5snMewjxF5V/K3D4kctsUTsIU9Mw==}
engines: {node: ^20.19.0 || >=22.12.0}
hasBin: true
peerDependencies:
@@ -4556,20 +4615,20 @@ packages:
yaml:
optional: true
- vitest@4.1.4:
- resolution: {integrity: sha512-tFuJqTxKb8AvfyqMfnavXdzfy3h3sWZRWwfluGbkeR7n0HUev+FmNgZ8SDrRBTVrVCjgH5cA21qGbCffMNtWvg==}
+ vitest@4.1.5:
+ resolution: {integrity: sha512-9Xx1v3/ih3m9hN+SbfkUyy0JAs72ap3r7joc87XL6jwF0jGg6mFBvQ1SrwaX+h8BlkX6Hz9shdd1uo6AF+ZGpg==}
engines: {node: ^20.0.0 || ^22.0.0 || >=24.0.0}
hasBin: true
peerDependencies:
'@edge-runtime/vm': '*'
'@opentelemetry/api': ^1.9.0
'@types/node': ^20.0.0 || ^22.0.0 || >=24.0.0
- '@vitest/browser-playwright': 4.1.4
- '@vitest/browser-preview': 4.1.4
- '@vitest/browser-webdriverio': 4.1.4
- '@vitest/coverage-istanbul': 4.1.4
- '@vitest/coverage-v8': 4.1.4
- '@vitest/ui': 4.1.4
+ '@vitest/browser-playwright': 4.1.5
+ '@vitest/browser-preview': 4.1.5
+ '@vitest/browser-webdriverio': 4.1.5
+ '@vitest/coverage-istanbul': 4.1.5
+ '@vitest/coverage-v8': 4.1.5
+ '@vitest/ui': 4.1.5
happy-dom: '*'
jsdom: '*'
vite: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -4697,6 +4756,11 @@ packages:
resolution: {integrity: sha512-vIYeF1u3CjlhAFekPPAk2h/Kv4T3mAkMox5OymRiJQB0spDP10LHvt+K7G9Ny6NuuMAb25/6n1qyUjAcGNf/AA==}
engines: {node: '>= 6'}
+ yaml@2.8.0:
+ resolution: {integrity: sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ==}
+ engines: {node: '>= 14.6'}
+ hasBin: true
+
yaml@2.8.3:
resolution: {integrity: sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==}
engines: {node: '>= 14.6'}
@@ -4718,20 +4782,24 @@ snapshots:
'@adobe/css-tools@4.4.4': {}
- '@asamuzakjp/css-color@5.1.10':
+ '@asamuzakjp/css-color@5.1.11':
dependencies:
+ '@asamuzakjp/generational-cache': 1.0.1
'@csstools/css-calc': 3.2.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-color-parser': 4.1.0(@csstools/css-parser-algorithms@4.0.0(@csstools/css-tokenizer@4.0.0))(@csstools/css-tokenizer@4.0.0)
'@csstools/css-parser-algorithms': 4.0.0(@csstools/css-tokenizer@4.0.0)
'@csstools/css-tokenizer': 4.0.0
- '@asamuzakjp/dom-selector@7.0.9':
+ '@asamuzakjp/dom-selector@7.1.1':
dependencies:
+ '@asamuzakjp/generational-cache': 1.0.1
'@asamuzakjp/nwsapi': 2.3.9
bidi-js: 1.0.3
css-tree: 3.2.1
is-potential-custom-element-name: 1.0.1
+ '@asamuzakjp/generational-cache@1.0.1': {}
+
'@asamuzakjp/nwsapi@2.3.9': {}
'@babel/code-frame@7.29.0':
@@ -5452,11 +5520,11 @@ snapshots:
dependencies:
css-tree: 3.2.1
- '@commitlint/cli@20.5.0(@types/node@25.6.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)':
+ '@commitlint/cli@20.5.2(@types/node@25.6.0)(conventional-commits-parser@6.4.0)(typescript@5.9.3)':
dependencies:
'@commitlint/format': 20.5.0
'@commitlint/lint': 20.5.0
- '@commitlint/load': 20.5.0(@types/node@25.6.0)(typescript@5.9.3)
+ '@commitlint/load': 20.5.2(@types/node@25.6.0)(typescript@5.9.3)
'@commitlint/read': 20.5.0(conventional-commits-parser@6.4.0)
'@commitlint/types': 20.5.0
tinyexec: 1.1.1
@@ -5505,11 +5573,11 @@ snapshots:
'@commitlint/rules': 20.5.0
'@commitlint/types': 20.5.0
- '@commitlint/load@20.5.0(@types/node@25.6.0)(typescript@5.9.3)':
+ '@commitlint/load@20.5.2(@types/node@25.6.0)(typescript@5.9.3)':
dependencies:
'@commitlint/config-validator': 20.5.0
'@commitlint/execute-rule': 20.0.0
- '@commitlint/resolve-extends': 20.5.0
+ '@commitlint/resolve-extends': 20.5.2
'@commitlint/types': 20.5.0
cosmiconfig: 9.0.1(typescript@5.9.3)
cosmiconfig-typescript-loader: 6.3.0(@types/node@25.6.0)(cosmiconfig@9.0.1(typescript@5.9.3))(typescript@5.9.3)
@@ -5539,11 +5607,11 @@ snapshots:
- conventional-commits-filter
- conventional-commits-parser
- '@commitlint/resolve-extends@20.5.0':
+ '@commitlint/resolve-extends@20.5.2':
dependencies:
'@commitlint/config-validator': 20.5.0
'@commitlint/types': 20.5.0
- global-directory: 4.0.1
+ global-directory: 5.0.0
import-meta-resolve: 4.2.0
lodash.mergewith: 4.6.2
resolve-from: 5.0.0
@@ -5619,15 +5687,39 @@ snapshots:
tunnel-agent: 0.6.0
uuid: 8.3.2
+ '@emnapi/core@1.10.0':
+ dependencies:
+ '@emnapi/wasi-threads': 1.2.1
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/core@1.4.5':
+ dependencies:
+ '@emnapi/wasi-threads': 1.0.4
+ tslib: 2.8.1
+
'@emnapi/core@1.9.2':
dependencies:
'@emnapi/wasi-threads': 1.2.1
tslib: 2.8.1
+ '@emnapi/runtime@1.10.0':
+ dependencies:
+ tslib: 2.8.1
+ optional: true
+
+ '@emnapi/runtime@1.4.5':
+ dependencies:
+ tslib: 2.8.1
+
'@emnapi/runtime@1.9.2':
dependencies:
tslib: 2.8.1
+ '@emnapi/wasi-threads@1.0.4':
+ dependencies:
+ tslib: 2.8.1
+
'@emnapi/wasi-threads@1.2.1':
dependencies:
tslib: 2.8.1
@@ -5710,9 +5802,9 @@ snapshots:
'@esbuild/win32-x64@0.27.7':
optional: true
- '@eslint-community/eslint-utils@4.9.1(eslint@10.2.0(jiti@2.6.1))':
+ '@eslint-community/eslint-utils@4.9.1(eslint@10.2.1(jiti@2.6.1))':
dependencies:
- eslint: 10.2.0(jiti@2.6.1)
+ eslint: 10.2.1(jiti@2.6.1)
eslint-visitor-keys: 3.4.3
'@eslint-community/regexpp@4.12.2': {}
@@ -5733,9 +5825,9 @@ snapshots:
dependencies:
'@types/json-schema': 7.0.15
- '@eslint/js@10.0.1(eslint@10.2.0(jiti@2.6.1))':
+ '@eslint/js@10.0.1(eslint@10.2.1(jiti@2.6.1))':
optionalDependencies:
- eslint: 10.2.0(jiti@2.6.1)
+ eslint: 10.2.1(jiti@2.6.1)
'@eslint/object-schema@3.0.5': {}
@@ -5757,19 +5849,13 @@ snapshots:
'@humanwhocodes/retry@0.4.3': {}
- '@jest/diff-sequences@30.3.0': {}
-
- '@jest/get-type@30.1.0': {}
+ '@jest/diff-sequences@30.0.1': {}
- '@jest/schemas@30.0.5':
- dependencies:
- '@sinclair/typebox': 0.34.49
-
- '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@joshwooding/vite-plugin-react-docgen-typescript@0.7.0(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
glob: 13.0.6
react-docgen-typescript: 2.4.0(typescript@5.9.3)
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
optionalDependencies:
typescript: 5.9.3
@@ -5846,32 +5932,39 @@ snapshots:
'@emnapi/runtime': 1.9.2
'@tybys/wasm-util': 0.9.0
- '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)':
+ '@napi-rs/wasm-runtime@1.1.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
- '@emnapi/core': 1.9.2
- '@emnapi/runtime': 1.9.2
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
'@tybys/wasm-util': 0.10.1
optional: true
- '@nx/devkit@22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))':
+ '@napi-rs/wasm-runtime@1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
+ dependencies:
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@tybys/wasm-util': 0.10.1
+ optional: true
+
+ '@nx/devkit@22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))':
dependencies:
'@zkochan/js-yaml': 0.0.7
ejs: 5.0.1
enquirer: 2.3.6
minimatch: 10.2.4
- nx: 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))
+ nx: 22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))
semver: 7.7.4
tslib: 2.8.1
yargs-parser: 21.1.1
- '@nx/eslint-plugin@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))':
+ '@nx/eslint-plugin@22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.2(typanion@3.14.0))':
dependencies:
- '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
- '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))
+ '@nx/devkit': 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
+ '@nx/js': 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
'@phenomnomnominal/tsquery': 6.1.4(typescript@5.9.3)
- '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
chalk: 4.1.2
confusing-browser-globals: 1.0.11
globals: 15.15.0
@@ -5889,11 +5982,11 @@ snapshots:
- typescript
- verdaccio
- '@nx/eslint@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.0(jiti@2.6.1))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))':
+ '@nx/eslint@22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.1(jiti@2.6.1))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))':
dependencies:
- '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
- '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))
- eslint: 10.2.0(jiti@2.6.1)
+ '@nx/devkit': 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
+ '@nx/js': 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
+ eslint: 10.2.1(jiti@2.6.1)
semver: 7.7.4
tslib: 2.8.1
typescript: 5.9.3
@@ -5908,7 +6001,7 @@ snapshots:
- supports-color
- verdaccio
- '@nx/js@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))':
+ '@nx/js@22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))':
dependencies:
'@babel/core': 7.29.0
'@babel/plugin-proposal-decorators': 7.29.0(@babel/core@7.29.0)
@@ -5917,8 +6010,8 @@ snapshots:
'@babel/preset-env': 7.29.2(@babel/core@7.29.0)
'@babel/preset-typescript': 7.28.5(@babel/core@7.29.0)
'@babel/runtime': 7.29.2
- '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
- '@nx/workspace': 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))
+ '@nx/devkit': 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
+ '@nx/workspace': 22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))
'@zkochan/js-yaml': 0.0.7
babel-plugin-const-enum: 1.2.0(@babel/core@7.29.0)
babel-plugin-macros: 3.1.0
@@ -5937,7 +6030,7 @@ snapshots:
tinyglobby: 0.2.16
tslib: 2.8.1
optionalDependencies:
- verdaccio: 6.5.0(typanion@3.14.0)
+ verdaccio: 6.5.2(typanion@3.14.0)
transitivePeerDependencies:
- '@babel/traverse'
- '@swc-node/register'
@@ -5946,41 +6039,41 @@ snapshots:
- nx
- supports-color
- '@nx/nx-darwin-arm64@22.6.5':
+ '@nx/nx-darwin-arm64@22.7.0':
optional: true
- '@nx/nx-darwin-x64@22.6.5':
+ '@nx/nx-darwin-x64@22.7.0':
optional: true
- '@nx/nx-freebsd-x64@22.6.5':
+ '@nx/nx-freebsd-x64@22.7.0':
optional: true
- '@nx/nx-linux-arm-gnueabihf@22.6.5':
+ '@nx/nx-linux-arm-gnueabihf@22.7.0':
optional: true
- '@nx/nx-linux-arm64-gnu@22.6.5':
+ '@nx/nx-linux-arm64-gnu@22.7.0':
optional: true
- '@nx/nx-linux-arm64-musl@22.6.5':
+ '@nx/nx-linux-arm64-musl@22.7.0':
optional: true
- '@nx/nx-linux-x64-gnu@22.6.5':
+ '@nx/nx-linux-x64-gnu@22.7.0':
optional: true
- '@nx/nx-linux-x64-musl@22.6.5':
+ '@nx/nx-linux-x64-musl@22.7.0':
optional: true
- '@nx/nx-win32-arm64-msvc@22.6.5':
+ '@nx/nx-win32-arm64-msvc@22.7.0':
optional: true
- '@nx/nx-win32-x64-msvc@22.6.5':
+ '@nx/nx-win32-x64-msvc@22.7.0':
optional: true
- '@nx/vite@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))(vitest@4.1.4)':
+ '@nx/vite@22.7.0(ee5baf8c8ba0813aefa24b58b5bb4ce5)':
dependencies:
- '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
- '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))
- '@nx/vitest': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))(vitest@4.1.4)
+ '@nx/devkit': 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
+ '@nx/js': 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
+ '@nx/vitest': 22.7.0(ee5baf8c8ba0813aefa24b58b5bb4ce5)
'@phenomnomnominal/tsquery': 6.1.4(typescript@5.9.3)
ajv: 8.18.0
enquirer: 2.3.6
@@ -5988,10 +6081,11 @@ snapshots:
semver: 7.7.4
tsconfig-paths: 4.2.0
tslib: 2.8.1
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
- vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@29.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
transitivePeerDependencies:
- '@babel/traverse'
+ - '@nx/eslint'
- '@swc-node/register'
- '@swc/core'
- debug
@@ -6000,16 +6094,17 @@ snapshots:
- typescript
- verdaccio
- '@nx/vitest@22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(typescript@5.9.3)(verdaccio@6.5.0(typanion@3.14.0))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))(vitest@4.1.4)':
+ '@nx/vitest@22.7.0(ee5baf8c8ba0813aefa24b58b5bb4ce5)':
dependencies:
- '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
- '@nx/js': 22.6.5(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))(verdaccio@6.5.0(typanion@3.14.0))
+ '@nx/devkit': 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
+ '@nx/js': 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
'@phenomnomnominal/tsquery': 6.1.4(typescript@5.9.3)
semver: 7.7.4
tslib: 2.8.1
optionalDependencies:
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
- vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@29.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ '@nx/eslint': 22.7.0(@babel/traverse@7.29.0)(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))(@zkochan/js-yaml@0.0.7)(eslint@10.2.1(jiti@2.6.1))(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))(verdaccio@6.5.2(typanion@3.14.0))
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
transitivePeerDependencies:
- '@babel/traverse'
- '@swc-node/register'
@@ -6020,13 +6115,13 @@ snapshots:
- typescript
- verdaccio
- '@nx/workspace@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))':
+ '@nx/workspace@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))':
dependencies:
- '@nx/devkit': 22.6.5(nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)))
+ '@nx/devkit': 22.7.0(nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)))
'@zkochan/js-yaml': 0.0.7
chalk: 4.1.2
enquirer: 2.3.6
- nx: 22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21))
+ nx: 22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21))
picomatch: 4.0.4
semver: 7.7.4
tslib: 2.8.1
@@ -6036,7 +6131,7 @@ snapshots:
- '@swc/core'
- debug
- '@oxc-project/types@0.124.0': {}
+ '@oxc-project/types@0.127.0': {}
'@oxc-resolver/binding-android-arm-eabi@11.19.1':
optional: true
@@ -6086,9 +6181,9 @@ snapshots:
'@oxc-resolver/binding-openharmony-arm64@11.19.1':
optional: true
- '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)':
+ '@oxc-resolver/binding-wasm32-wasi@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)':
dependencies:
- '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
+ '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
transitivePeerDependencies:
- '@emnapi/core'
- '@emnapi/runtime'
@@ -6117,56 +6212,56 @@ snapshots:
dependencies:
react: 19.2.5
- '@rolldown/binding-android-arm64@1.0.0-rc.15':
+ '@rolldown/binding-android-arm64@1.0.0-rc.17':
optional: true
- '@rolldown/binding-darwin-arm64@1.0.0-rc.15':
+ '@rolldown/binding-darwin-arm64@1.0.0-rc.17':
optional: true
- '@rolldown/binding-darwin-x64@1.0.0-rc.15':
+ '@rolldown/binding-darwin-x64@1.0.0-rc.17':
optional: true
- '@rolldown/binding-freebsd-x64@1.0.0-rc.15':
+ '@rolldown/binding-freebsd-x64@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.15':
+ '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.15':
+ '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-arm64-musl@1.0.0-rc.15':
+ '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.15':
+ '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.15':
+ '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-x64-gnu@1.0.0-rc.15':
+ '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17':
optional: true
- '@rolldown/binding-linux-x64-musl@1.0.0-rc.15':
+ '@rolldown/binding-linux-x64-musl@1.0.0-rc.17':
optional: true
- '@rolldown/binding-openharmony-arm64@1.0.0-rc.15':
+ '@rolldown/binding-openharmony-arm64@1.0.0-rc.17':
optional: true
- '@rolldown/binding-wasm32-wasi@1.0.0-rc.15':
+ '@rolldown/binding-wasm32-wasi@1.0.0-rc.17':
dependencies:
- '@emnapi/core': 1.9.2
- '@emnapi/runtime': 1.9.2
- '@napi-rs/wasm-runtime': 1.1.3(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
+ '@emnapi/core': 1.10.0
+ '@emnapi/runtime': 1.10.0
+ '@napi-rs/wasm-runtime': 1.1.4(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
optional: true
- '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.15':
+ '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17':
optional: true
- '@rolldown/binding-win32-x64-msvc@1.0.0-rc.15':
+ '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17':
optional: true
- '@rolldown/pluginutils@1.0.0-rc.15': {}
+ '@rolldown/pluginutils@1.0.0-rc.17': {}
'@rolldown/pluginutils@1.0.0-rc.7': {}
@@ -6221,8 +6316,6 @@ snapshots:
'@simple-libs/stream-utils@1.2.0': {}
- '@sinclair/typebox@0.34.49': {}
-
'@sindresorhus/is@4.6.0': {}
'@soundtouchjs/audio-worklet@1.0.10':
@@ -6233,15 +6326,15 @@ snapshots:
'@standard-schema/spec@1.1.0': {}
- '@storybook/addon-docs@10.3.5(@types/react@19.2.14)(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@storybook/addon-docs@10.3.5(@types/react@19.2.14)(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
'@mdx-js/react': 3.1.1(@types/react@19.2.14)(react@19.2.5)
- '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
- '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
+ '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
react: 19.2.5
react-dom: 19.2.5(react@19.2.5)
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
ts-dedent: 2.2.0
transitivePeerDependencies:
- '@types/react'
@@ -6250,31 +6343,31 @@ snapshots:
- vite
- webpack
- '@storybook/addon-links@10.3.5(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))':
+ '@storybook/addon-links@10.3.5(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))':
dependencies:
'@storybook/global': 5.0.0
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
optionalDependencies:
react: 19.2.5
- '@storybook/builder-vite@10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@storybook/builder-vite@10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
- '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ '@storybook/csf-plugin': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
ts-dedent: 2.2.0
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
transitivePeerDependencies:
- esbuild
- rollup
- webpack
- '@storybook/csf-plugin@10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@storybook/csf-plugin@10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
unplugin: 2.3.11
optionalDependencies:
esbuild: 0.27.7
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
'@storybook/global@5.0.0': {}
@@ -6283,27 +6376,27 @@ snapshots:
react: 19.2.5
react-dom: 19.2.5(react@19.2.5)
- '@storybook/react-dom-shim@10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))':
+ '@storybook/react-dom-shim@10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))':
dependencies:
react: 19.2.5
react-dom: 19.2.5(react@19.2.5)
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
- '@storybook/react-vite@10.3.5(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@storybook/react-vite@10.3.5(esbuild@0.27.7)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.7.0(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@rollup/pluginutils': 5.3.0
- '@storybook/builder-vite': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
- '@storybook/react': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)
+ '@storybook/builder-vite': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ '@storybook/react': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)
empathic: 2.0.0
magic-string: 0.30.21
react: 19.2.5
react-docgen: 8.0.3
react-dom: 19.2.5(react@19.2.5)
resolve: 1.22.12
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
tsconfig-paths: 4.2.0
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
transitivePeerDependencies:
- esbuild
- rollup
@@ -6311,25 +6404,25 @@ snapshots:
- typescript
- webpack
- '@storybook/react@10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)':
+ '@storybook/react@10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(typescript@5.9.3)':
dependencies:
'@storybook/global': 5.0.0
- '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
+ '@storybook/react-dom-shim': 10.3.5(react-dom@19.2.5(react@19.2.5))(react@19.2.5)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
react: 19.2.5
react-docgen: 8.0.3
react-docgen-typescript: 2.4.0(typescript@5.9.3)
react-dom: 19.2.5(react@19.2.5)
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
optionalDependencies:
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
- '@storybook/web-components-vite@10.3.5(esbuild@0.27.7)(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@storybook/web-components-vite@10.3.5(esbuild@0.27.7)(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
- '@storybook/builder-vite': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
- '@storybook/web-components': 10.3.5(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ '@storybook/builder-vite': 10.3.5(esbuild@0.27.7)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ '@storybook/web-components': 10.3.5(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
transitivePeerDependencies:
- esbuild
- lit
@@ -6337,27 +6430,27 @@ snapshots:
- vite
- webpack
- '@storybook/web-components@10.3.5(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))':
+ '@storybook/web-components@10.3.5(lit@3.3.2)(storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5))':
dependencies:
'@storybook/global': 5.0.0
lit: 3.3.2
- storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
+ storybook: 10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
tiny-invariant: 1.3.3
ts-dedent: 2.2.0
- '@swc-node/core@1.14.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)':
+ '@swc-node/core@1.14.1(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)':
dependencies:
- '@swc/core': 1.15.24(@swc/helpers@0.5.21)
+ '@swc/core': 1.15.32(@swc/helpers@0.5.21)
'@swc/types': 0.1.26
- '@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3)':
+ '@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3)':
dependencies:
- '@swc-node/core': 1.14.1(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)
+ '@swc-node/core': 1.14.1(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)
'@swc-node/sourcemap-support': 0.6.1
- '@swc/core': 1.15.24(@swc/helpers@0.5.21)
+ '@swc/core': 1.15.32(@swc/helpers@0.5.21)
colorette: 2.0.20
debug: 4.4.3
- oxc-resolver: 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
+ oxc-resolver: 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
pirates: 4.0.7
tslib: 2.8.1
typescript: 5.9.3
@@ -6372,59 +6465,59 @@ snapshots:
source-map-support: 0.5.21
tslib: 2.8.1
- '@swc/core-darwin-arm64@1.15.24':
+ '@swc/core-darwin-arm64@1.15.32':
optional: true
- '@swc/core-darwin-x64@1.15.24':
+ '@swc/core-darwin-x64@1.15.32':
optional: true
- '@swc/core-linux-arm-gnueabihf@1.15.24':
+ '@swc/core-linux-arm-gnueabihf@1.15.32':
optional: true
- '@swc/core-linux-arm64-gnu@1.15.24':
+ '@swc/core-linux-arm64-gnu@1.15.32':
optional: true
- '@swc/core-linux-arm64-musl@1.15.24':
+ '@swc/core-linux-arm64-musl@1.15.32':
optional: true
- '@swc/core-linux-ppc64-gnu@1.15.24':
+ '@swc/core-linux-ppc64-gnu@1.15.32':
optional: true
- '@swc/core-linux-s390x-gnu@1.15.24':
+ '@swc/core-linux-s390x-gnu@1.15.32':
optional: true
- '@swc/core-linux-x64-gnu@1.15.24':
+ '@swc/core-linux-x64-gnu@1.15.32':
optional: true
- '@swc/core-linux-x64-musl@1.15.24':
+ '@swc/core-linux-x64-musl@1.15.32':
optional: true
- '@swc/core-win32-arm64-msvc@1.15.24':
+ '@swc/core-win32-arm64-msvc@1.15.32':
optional: true
- '@swc/core-win32-ia32-msvc@1.15.24':
+ '@swc/core-win32-ia32-msvc@1.15.32':
optional: true
- '@swc/core-win32-x64-msvc@1.15.24':
+ '@swc/core-win32-x64-msvc@1.15.32':
optional: true
- '@swc/core@1.15.24(@swc/helpers@0.5.21)':
+ '@swc/core@1.15.32(@swc/helpers@0.5.21)':
dependencies:
'@swc/counter': 0.1.3
'@swc/types': 0.1.26
optionalDependencies:
- '@swc/core-darwin-arm64': 1.15.24
- '@swc/core-darwin-x64': 1.15.24
- '@swc/core-linux-arm-gnueabihf': 1.15.24
- '@swc/core-linux-arm64-gnu': 1.15.24
- '@swc/core-linux-arm64-musl': 1.15.24
- '@swc/core-linux-ppc64-gnu': 1.15.24
- '@swc/core-linux-s390x-gnu': 1.15.24
- '@swc/core-linux-x64-gnu': 1.15.24
- '@swc/core-linux-x64-musl': 1.15.24
- '@swc/core-win32-arm64-msvc': 1.15.24
- '@swc/core-win32-ia32-msvc': 1.15.24
- '@swc/core-win32-x64-msvc': 1.15.24
+ '@swc/core-darwin-arm64': 1.15.32
+ '@swc/core-darwin-x64': 1.15.32
+ '@swc/core-linux-arm-gnueabihf': 1.15.32
+ '@swc/core-linux-arm64-gnu': 1.15.32
+ '@swc/core-linux-arm64-musl': 1.15.32
+ '@swc/core-linux-ppc64-gnu': 1.15.32
+ '@swc/core-linux-s390x-gnu': 1.15.32
+ '@swc/core-linux-x64-gnu': 1.15.32
+ '@swc/core-linux-x64-musl': 1.15.32
+ '@swc/core-win32-arm64-msvc': 1.15.32
+ '@swc/core-win32-ia32-msvc': 1.15.32
+ '@swc/core-win32-x64-msvc': 1.15.32
'@swc/helpers': 0.5.21
'@swc/counter@0.1.3': {}
@@ -6552,15 +6645,15 @@ snapshots:
'@types/trusted-types@2.0.7': {}
- '@typescript-eslint/eslint-plugin@8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/eslint-plugin@8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@eslint-community/regexpp': 4.12.2
- '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/scope-manager': 8.58.2
- '@typescript-eslint/type-utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.58.2
- eslint: 10.2.0(jiti@2.6.1)
+ '@typescript-eslint/parser': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/scope-manager': 8.59.0
+ '@typescript-eslint/type-utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.59.0
+ eslint: 10.2.1(jiti@2.6.1)
ignore: 7.0.5
natural-compare: 1.4.0
ts-api-utils: 2.5.0(typescript@5.9.3)
@@ -6568,14 +6661,14 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@typescript-eslint/scope-manager': 8.58.2
- '@typescript-eslint/types': 8.58.2
- '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3)
- '@typescript-eslint/visitor-keys': 8.58.2
+ '@typescript-eslint/scope-manager': 8.59.0
+ '@typescript-eslint/types': 8.59.0
+ '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3)
+ '@typescript-eslint/visitor-keys': 8.59.0
debug: 4.4.3
- eslint: 10.2.0(jiti@2.6.1)
+ eslint: 10.2.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -6589,22 +6682,52 @@ snapshots:
transitivePeerDependencies:
- supports-color
+ '@typescript-eslint/project-service@8.59.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/tsconfig-utils': 8.59.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.59.0
+ debug: 4.4.3
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
'@typescript-eslint/scope-manager@8.58.2':
dependencies:
'@typescript-eslint/types': 8.58.2
'@typescript-eslint/visitor-keys': 8.58.2
+ '@typescript-eslint/scope-manager@8.59.0':
+ dependencies:
+ '@typescript-eslint/types': 8.59.0
+ '@typescript-eslint/visitor-keys': 8.59.0
+
'@typescript-eslint/tsconfig-utils@8.58.2(typescript@5.9.3)':
dependencies:
typescript: 5.9.3
- '@typescript-eslint/type-utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/tsconfig-utils@8.59.0(typescript@5.9.3)':
+ dependencies:
+ typescript: 5.9.3
+
+ '@typescript-eslint/type-utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
'@typescript-eslint/types': 8.58.2
'@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3)
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
debug: 4.4.3
- eslint: 10.2.0(jiti@2.6.1)
+ eslint: 10.2.1(jiti@2.6.1)
+ ts-api-utils: 2.5.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/type-utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/types': 8.59.0
+ '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ debug: 4.4.3
+ eslint: 10.2.1(jiti@2.6.1)
ts-api-utils: 2.5.0(typescript@5.9.3)
typescript: 5.9.3
transitivePeerDependencies:
@@ -6612,6 +6735,8 @@ snapshots:
'@typescript-eslint/types@8.58.2': {}
+ '@typescript-eslint/types@8.59.0': {}
+
'@typescript-eslint/typescript-estree@8.58.2(typescript@5.9.3)':
dependencies:
'@typescript-eslint/project-service': 8.58.2(typescript@5.9.3)
@@ -6627,13 +6752,39 @@ snapshots:
transitivePeerDependencies:
- supports-color
- '@typescript-eslint/utils@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)':
+ '@typescript-eslint/typescript-estree@8.59.0(typescript@5.9.3)':
+ dependencies:
+ '@typescript-eslint/project-service': 8.59.0(typescript@5.9.3)
+ '@typescript-eslint/tsconfig-utils': 8.59.0(typescript@5.9.3)
+ '@typescript-eslint/types': 8.59.0
+ '@typescript-eslint/visitor-keys': 8.59.0
+ debug: 4.4.3
+ minimatch: 10.2.5
+ semver: 7.7.4
+ tinyglobby: 0.2.16
+ ts-api-utils: 2.5.0(typescript@5.9.3)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.58.2(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)':
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1))
'@typescript-eslint/scope-manager': 8.58.2
'@typescript-eslint/types': 8.58.2
'@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3)
- eslint: 10.2.0(jiti@2.6.1)
+ eslint: 10.2.1(jiti@2.6.1)
+ typescript: 5.9.3
+ transitivePeerDependencies:
+ - supports-color
+
+ '@typescript-eslint/utils@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)':
+ dependencies:
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1))
+ '@typescript-eslint/scope-manager': 8.59.0
+ '@typescript-eslint/types': 8.59.0
+ '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3)
+ eslint: 10.2.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -6643,6 +6794,11 @@ snapshots:
'@typescript-eslint/types': 8.58.2
eslint-visitor-keys: 5.0.1
+ '@typescript-eslint/visitor-keys@8.59.0':
+ dependencies:
+ '@typescript-eslint/types': 8.59.0
+ eslint-visitor-keys: 5.0.1
+
'@verdaccio/auth@8.0.0-next-8.37':
dependencies:
'@verdaccio/config': 8.0.0-next-8.37
@@ -6792,7 +6948,11 @@ snapshots:
- react-native-b4a
- supports-color
- '@verdaccio/ui-theme@9.0.0-next-9.10': {}
+ '@verdaccio/ui-theme@9.0.0-next-9.14':
+ dependencies:
+ debug: 4.4.3
+ transitivePeerDependencies:
+ - supports-color
'@verdaccio/url@13.0.0-next-8.37':
dependencies:
@@ -6808,15 +6968,15 @@ snapshots:
lodash: 4.18.1
minimatch: 7.4.9
- '@vitejs/plugin-react@6.0.1(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@vitejs/plugin-react@6.0.1(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
'@rolldown/pluginutils': 1.0.0-rc.7
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
- '@vitest/coverage-v8@4.1.4(vitest@4.1.4)':
+ '@vitest/coverage-v8@4.1.5(vitest@4.1.5)':
dependencies:
'@bcoe/v8-coverage': 1.0.2
- '@vitest/utils': 4.1.4
+ '@vitest/utils': 4.1.5
ast-v8-to-istanbul: 1.0.0
istanbul-lib-coverage: 3.2.2
istanbul-lib-report: 3.0.1
@@ -6825,7 +6985,7 @@ snapshots:
obug: 2.1.1
std-env: 4.0.0
tinyrainbow: 3.1.0
- vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@29.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@vitest/expect@3.2.4':
dependencies:
@@ -6835,40 +6995,40 @@ snapshots:
chai: 5.3.3
tinyrainbow: 2.0.0
- '@vitest/expect@4.1.4':
+ '@vitest/expect@4.1.5':
dependencies:
'@standard-schema/spec': 1.1.0
'@types/chai': 5.2.3
- '@vitest/spy': 4.1.4
- '@vitest/utils': 4.1.4
+ '@vitest/spy': 4.1.5
+ '@vitest/utils': 4.1.5
chai: 6.2.2
tinyrainbow: 3.1.0
- '@vitest/mocker@4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
+ '@vitest/mocker@4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))':
dependencies:
- '@vitest/spy': 4.1.4
+ '@vitest/spy': 4.1.5
estree-walker: 3.0.3
magic-string: 0.30.21
optionalDependencies:
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
'@vitest/pretty-format@3.2.4':
dependencies:
tinyrainbow: 2.0.0
- '@vitest/pretty-format@4.1.4':
+ '@vitest/pretty-format@4.1.5':
dependencies:
tinyrainbow: 3.1.0
- '@vitest/runner@4.1.4':
+ '@vitest/runner@4.1.5':
dependencies:
- '@vitest/utils': 4.1.4
+ '@vitest/utils': 4.1.5
pathe: 2.0.3
- '@vitest/snapshot@4.1.4':
+ '@vitest/snapshot@4.1.5':
dependencies:
- '@vitest/pretty-format': 4.1.4
- '@vitest/utils': 4.1.4
+ '@vitest/pretty-format': 4.1.5
+ '@vitest/utils': 4.1.5
magic-string: 0.30.21
pathe: 2.0.3
@@ -6876,18 +7036,18 @@ snapshots:
dependencies:
tinyspy: 4.0.4
- '@vitest/spy@4.1.4': {}
+ '@vitest/spy@4.1.5': {}
- '@vitest/ui@4.1.4(vitest@4.1.4)':
+ '@vitest/ui@4.1.5(vitest@4.1.5)':
dependencies:
- '@vitest/utils': 4.1.4
+ '@vitest/utils': 4.1.5
fflate: 0.8.2
flatted: 3.4.2
pathe: 2.0.3
sirv: 3.0.2
tinyglobby: 0.2.16
tinyrainbow: 3.1.0
- vitest: 4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@29.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ vitest: 4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
'@vitest/utils@3.2.4':
dependencies:
@@ -6895,9 +7055,9 @@ snapshots:
loupe: 3.2.1
tinyrainbow: 2.0.0
- '@vitest/utils@4.1.4':
+ '@vitest/utils@4.1.5':
dependencies:
- '@vitest/pretty-format': 4.1.4
+ '@vitest/pretty-format': 4.1.5
convert-source-map: 2.0.0
tinyrainbow: 3.1.0
@@ -6950,11 +7110,6 @@ snapshots:
'@yarnpkg/lockfile@1.1.0': {}
- '@yarnpkg/parsers@3.0.2':
- dependencies:
- js-yaml: 3.14.2
- tslib: 2.8.1
-
'@zkochan/js-yaml@0.0.7':
dependencies:
argparse: 2.0.1
@@ -7140,6 +7295,8 @@ snapshots:
balanced-match@1.0.2: {}
+ balanced-match@4.0.3: {}
+
balanced-match@4.0.4: {}
bare-events@2.8.2: {}
@@ -7185,6 +7342,10 @@ snapshots:
dependencies:
balanced-match: 1.0.2
+ brace-expansion@5.0.2:
+ dependencies:
+ balanced-match: 4.0.4
+
brace-expansion@5.0.5:
dependencies:
balanced-match: 4.0.4
@@ -7496,7 +7657,7 @@ snapshots:
dependencies:
is-obj: 2.0.0
- dotenv-expand@11.0.7:
+ dotenv-expand@12.0.3:
dependencies:
dotenv: 16.4.7
@@ -7544,10 +7705,10 @@ snapshots:
dependencies:
ansi-colors: 4.1.3
- entities@6.0.1: {}
-
entities@7.0.1: {}
+ entities@8.0.0: {}
+
env-paths@2.2.1: {}
envinfo@7.21.0: {}
@@ -7621,9 +7782,9 @@ snapshots:
eslint-visitor-keys@5.0.1: {}
- eslint@10.2.0(jiti@2.6.1):
+ eslint@10.2.1(jiti@2.6.1):
dependencies:
- '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.0(jiti@2.6.1))
+ '@eslint-community/eslint-utils': 4.9.1(eslint@10.2.1(jiti@2.6.1))
'@eslint-community/regexpp': 4.12.2
'@eslint/config-array': 0.23.5
'@eslint/config-helpers': 0.5.5
@@ -7798,6 +7959,8 @@ snapshots:
flatted@3.4.2: {}
+ follow-redirects@1.15.11: {}
+
follow-redirects@1.16.0: {}
forever-agent@0.6.1: {}
@@ -7816,10 +7979,6 @@ snapshots:
fresh@0.5.2: {}
- front-matter@4.0.2:
- dependencies:
- js-yaml: 3.14.2
-
fs-constants@1.0.0: {}
fs-extra@11.3.4:
@@ -7883,9 +8042,9 @@ snapshots:
minipass: 7.1.3
path-scurry: 2.0.2
- global-directory@4.0.1:
+ global-directory@5.0.0:
dependencies:
- ini: 4.1.1
+ ini: 6.0.0
globals@15.15.0: {}
@@ -8015,7 +8174,7 @@ snapshots:
inherits@2.0.4: {}
- ini@4.1.1: {}
+ ini@6.0.0: {}
ipaddr.js@1.9.1: {}
@@ -8086,13 +8245,6 @@ snapshots:
html-escaper: 2.0.2
istanbul-lib-report: 3.0.1
- jest-diff@30.3.0:
- dependencies:
- '@jest/diff-sequences': 30.3.0
- '@jest/get-type': 30.1.0
- chalk: 4.1.2
- pretty-format: 30.3.0
-
jiti@2.6.1: {}
jju@1.4.0: {}
@@ -8101,21 +8253,16 @@ snapshots:
js-tokens@4.0.0: {}
- js-yaml@3.14.2:
- dependencies:
- argparse: 1.0.10
- esprima: 4.0.1
-
js-yaml@4.1.1:
dependencies:
argparse: 2.0.1
jsbn@0.1.1: {}
- jsdom@29.0.2:
+ jsdom@29.1.0:
dependencies:
- '@asamuzakjp/css-color': 5.1.10
- '@asamuzakjp/dom-selector': 7.0.9
+ '@asamuzakjp/css-color': 5.1.11
+ '@asamuzakjp/dom-selector': 7.1.1
'@bramus/specificity': 2.4.2
'@csstools/css-syntax-patches-for-csstree': 1.1.3(css-tree@3.2.1)
'@exodus/bytes': 1.15.0
@@ -8125,7 +8272,7 @@ snapshots:
html-encoding-sniffer: 6.0.0
is-potential-custom-element-name: 1.0.1
lru-cache: 11.3.5
- parse5: 8.0.0
+ parse5: 8.0.1
saxes: 6.0.0
symbol-tree: 3.2.4
tough-cookie: 6.0.1
@@ -8380,7 +8527,7 @@ snapshots:
lru-cache@7.18.3: {}
- lucide@1.8.0: {}
+ lucide@1.11.0: {}
lz-string@1.5.0: {}
@@ -8497,57 +8644,131 @@ snapshots:
dependencies:
path-key: 3.1.1
- nx@22.6.5(@swc-node/register@1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.24(@swc/helpers@0.5.21)):
+ nx@22.7.0(@swc-node/register@1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3))(@swc/core@1.15.32(@swc/helpers@0.5.21)):
dependencies:
+ '@emnapi/core': 1.4.5
+ '@emnapi/runtime': 1.4.5
+ '@emnapi/wasi-threads': 1.0.4
+ '@jest/diff-sequences': 30.0.1
'@napi-rs/wasm-runtime': 0.2.4
+ '@tybys/wasm-util': 0.9.0
'@yarnpkg/lockfile': 1.1.0
- '@yarnpkg/parsers': 3.0.2
'@zkochan/js-yaml': 0.0.7
+ ansi-colors: 4.1.3
+ ansi-regex: 5.0.1
+ ansi-styles: 4.3.0
+ argparse: 2.0.1
+ asynckit: 0.4.0
axios: 1.15.0
+ balanced-match: 4.0.3
+ base64-js: 1.5.1
+ bl: 4.1.0
+ brace-expansion: 5.0.2
+ buffer: 5.7.1
+ call-bind-apply-helpers: 1.0.2
+ chalk: 4.1.2
cli-cursor: 3.1.0
cli-spinners: 2.6.1
cliui: 8.0.1
+ clone: 1.0.4
+ color-convert: 2.0.1
+ color-name: 1.1.4
+ combined-stream: 1.0.8
+ defaults: 1.0.4
+ define-lazy-prop: 2.0.0
+ delayed-stream: 1.0.0
dotenv: 16.4.7
- dotenv-expand: 11.0.7
+ dotenv-expand: 12.0.3
+ dunder-proto: 1.0.1
ejs: 5.0.1
+ emoji-regex: 8.0.0
+ end-of-stream: 1.4.5
enquirer: 2.3.6
+ es-define-property: 1.0.1
+ es-errors: 1.3.0
+ es-object-atoms: 1.1.1
+ es-set-tostringtag: 2.1.0
+ escalade: 3.2.0
+ escape-string-regexp: 1.0.5
figures: 3.2.0
flat: 5.0.2
- front-matter: 4.0.2
+ follow-redirects: 1.15.11
+ form-data: 4.0.5
+ fs-constants: 1.0.0
+ function-bind: 1.1.2
+ get-caller-file: 2.0.5
+ get-intrinsic: 1.3.0
+ get-proto: 1.0.1
+ gopd: 1.2.0
+ has-flag: 4.0.0
+ has-symbols: 1.1.0
+ has-tostringtag: 1.0.2
+ hasown: 2.0.2
+ ieee754: 1.2.1
ignore: 7.0.5
- jest-diff: 30.3.0
+ inherits: 2.0.4
+ is-docker: 2.2.1
+ is-fullwidth-code-point: 3.0.0
+ is-interactive: 1.0.0
+ is-unicode-supported: 0.1.0
+ is-wsl: 2.2.0
+ json5: 2.2.3
jsonc-parser: 3.2.0
lines-and-columns: 2.0.3
+ log-symbols: 4.1.0
+ math-intrinsics: 1.1.0
+ mime-db: 1.52.0
+ mime-types: 2.1.35
+ mimic-fn: 2.1.0
minimatch: 10.2.4
+ minimist: 1.2.8
npm-run-path: 4.0.1
+ once: 1.4.0
+ onetime: 5.1.2
open: 8.4.2
ora: 5.3.0
+ path-key: 3.1.1
picocolors: 1.1.1
+ proxy-from-env: 2.1.0
+ readable-stream: 3.6.2
+ require-directory: 2.1.1
resolve.exports: 2.0.3
+ restore-cursor: 3.1.0
+ safe-buffer: 5.2.1
semver: 7.7.4
+ signal-exit: 3.0.7
smol-toml: 1.6.1
string-width: 4.2.3
+ string_decoder: 1.3.0
+ strip-ansi: 6.0.1
+ strip-bom: 3.0.0
+ supports-color: 7.2.0
tar-stream: 2.2.0
- tmp: 0.2.5
+ tmp: 0.2.4
tree-kill: 1.2.2
tsconfig-paths: 4.2.0
tslib: 2.8.1
- yaml: 2.8.3
+ util-deprecate: 1.0.2
+ wcwidth: 1.0.1
+ wrap-ansi: 7.0.0
+ wrappy: 1.0.2
+ y18n: 5.0.8
+ yaml: 2.8.0
yargs: 17.7.2
yargs-parser: 21.1.1
optionalDependencies:
- '@nx/nx-darwin-arm64': 22.6.5
- '@nx/nx-darwin-x64': 22.6.5
- '@nx/nx-freebsd-x64': 22.6.5
- '@nx/nx-linux-arm-gnueabihf': 22.6.5
- '@nx/nx-linux-arm64-gnu': 22.6.5
- '@nx/nx-linux-arm64-musl': 22.6.5
- '@nx/nx-linux-x64-gnu': 22.6.5
- '@nx/nx-linux-x64-musl': 22.6.5
- '@nx/nx-win32-arm64-msvc': 22.6.5
- '@nx/nx-win32-x64-msvc': 22.6.5
- '@swc-node/register': 1.11.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)(@swc/core@1.15.24(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3)
- '@swc/core': 1.15.24(@swc/helpers@0.5.21)
+ '@nx/nx-darwin-arm64': 22.7.0
+ '@nx/nx-darwin-x64': 22.7.0
+ '@nx/nx-freebsd-x64': 22.7.0
+ '@nx/nx-linux-arm-gnueabihf': 22.7.0
+ '@nx/nx-linux-arm64-gnu': 22.7.0
+ '@nx/nx-linux-arm64-musl': 22.7.0
+ '@nx/nx-linux-x64-gnu': 22.7.0
+ '@nx/nx-linux-x64-musl': 22.7.0
+ '@nx/nx-win32-arm64-msvc': 22.7.0
+ '@nx/nx-win32-x64-msvc': 22.7.0
+ '@swc-node/register': 1.11.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)(@swc/core@1.15.32(@swc/helpers@0.5.21))(@swc/types@0.1.26)(typescript@5.9.3)
+ '@swc/core': 1.15.32(@swc/helpers@0.5.21)
transitivePeerDependencies:
- debug
@@ -8606,7 +8827,7 @@ snapshots:
strip-ansi: 6.0.1
wcwidth: 1.0.1
- oxc-resolver@11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2):
+ oxc-resolver@11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0):
optionalDependencies:
'@oxc-resolver/binding-android-arm-eabi': 11.19.1
'@oxc-resolver/binding-android-arm64': 11.19.1
@@ -8624,7 +8845,7 @@ snapshots:
'@oxc-resolver/binding-linux-x64-gnu': 11.19.1
'@oxc-resolver/binding-linux-x64-musl': 11.19.1
'@oxc-resolver/binding-openharmony-arm64': 11.19.1
- '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.9.2)(@emnapi/runtime@1.9.2)
+ '@oxc-resolver/binding-wasm32-wasi': 11.19.1(@emnapi/core@1.10.0)(@emnapi/runtime@1.10.0)
'@oxc-resolver/binding-win32-arm64-msvc': 11.19.1
'@oxc-resolver/binding-win32-ia32-msvc': 11.19.1
'@oxc-resolver/binding-win32-x64-msvc': 11.19.1
@@ -8657,9 +8878,9 @@ snapshots:
json-parse-even-better-errors: 2.3.1
lines-and-columns: 1.2.4
- parse5@8.0.0:
+ parse5@8.0.1:
dependencies:
- entities: 6.0.1
+ entities: 8.0.0
parseurl@1.3.3: {}
@@ -8737,7 +8958,7 @@ snapshots:
exsolve: 1.0.8
pathe: 2.0.3
- postcss@8.5.9:
+ postcss@8.5.12:
dependencies:
nanoid: 3.3.11
picocolors: 1.1.1
@@ -8745,7 +8966,7 @@ snapshots:
prelude-ls@1.2.1: {}
- prettier@3.8.2: {}
+ prettier@3.8.3: {}
pretty-format@27.5.1:
dependencies:
@@ -8753,12 +8974,6 @@ snapshots:
ansi-styles: 5.2.0
react-is: 17.0.2
- pretty-format@30.3.0:
- dependencies:
- '@jest/schemas': 30.0.5
- ansi-styles: 5.2.0
- react-is: 18.3.1
-
process-nextick-args@2.0.1: {}
process-warning@1.0.0: {}
@@ -8837,8 +9052,6 @@ snapshots:
react-is@17.0.2: {}
- react-is@18.3.1: {}
-
react@19.2.5: {}
readable-stream@2.3.8:
@@ -8929,26 +9142,26 @@ snapshots:
onetime: 5.1.2
signal-exit: 3.0.7
- rolldown@1.0.0-rc.15:
+ rolldown@1.0.0-rc.17:
dependencies:
- '@oxc-project/types': 0.124.0
- '@rolldown/pluginutils': 1.0.0-rc.15
+ '@oxc-project/types': 0.127.0
+ '@rolldown/pluginutils': 1.0.0-rc.17
optionalDependencies:
- '@rolldown/binding-android-arm64': 1.0.0-rc.15
- '@rolldown/binding-darwin-arm64': 1.0.0-rc.15
- '@rolldown/binding-darwin-x64': 1.0.0-rc.15
- '@rolldown/binding-freebsd-x64': 1.0.0-rc.15
- '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-rc.15
- '@rolldown/binding-linux-arm64-gnu': 1.0.0-rc.15
- '@rolldown/binding-linux-arm64-musl': 1.0.0-rc.15
- '@rolldown/binding-linux-ppc64-gnu': 1.0.0-rc.15
- '@rolldown/binding-linux-s390x-gnu': 1.0.0-rc.15
- '@rolldown/binding-linux-x64-gnu': 1.0.0-rc.15
- '@rolldown/binding-linux-x64-musl': 1.0.0-rc.15
- '@rolldown/binding-openharmony-arm64': 1.0.0-rc.15
- '@rolldown/binding-wasm32-wasi': 1.0.0-rc.15
- '@rolldown/binding-win32-arm64-msvc': 1.0.0-rc.15
- '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.15
+ '@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
run-applescript@7.1.0: {}
@@ -9103,7 +9316,7 @@ snapshots:
dependencies:
graceful-fs: 4.2.11
- storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.2)(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
+ storybook@10.3.5(@testing-library/dom@10.4.1)(prettier@3.8.3)(react-dom@19.2.5(react@19.2.5))(react@19.2.5):
dependencies:
'@storybook/global': 5.0.0
'@storybook/icons': 2.0.1(react-dom@19.2.5(react@19.2.5))(react@19.2.5)
@@ -9119,7 +9332,7 @@ snapshots:
use-sync-external-store: 1.6.0(react@19.2.5)
ws: 8.20.0
optionalDependencies:
- prettier: 3.8.2
+ prettier: 3.8.3
transitivePeerDependencies:
- '@testing-library/dom'
- bufferutil
@@ -9243,7 +9456,7 @@ snapshots:
dependencies:
tldts-core: 7.0.28
- tmp@0.2.5: {}
+ tmp@0.2.4: {}
toidentifier@1.0.1: {}
@@ -9296,13 +9509,13 @@ snapshots:
media-typer: 0.3.0
mime-types: 2.1.35
- typescript-eslint@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3):
+ typescript-eslint@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3):
dependencies:
- '@typescript-eslint/eslint-plugin': 8.58.2(@typescript-eslint/parser@8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/parser': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- '@typescript-eslint/typescript-estree': 8.58.2(typescript@5.9.3)
- '@typescript-eslint/utils': 8.58.2(eslint@10.2.0(jiti@2.6.1))(typescript@5.9.3)
- eslint: 10.2.0(jiti@2.6.1)
+ '@typescript-eslint/eslint-plugin': 8.59.0(@typescript-eslint/parser@8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3))(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/parser': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ '@typescript-eslint/typescript-estree': 8.59.0(typescript@5.9.3)
+ '@typescript-eslint/utils': 8.59.0(eslint@10.2.1(jiti@2.6.1))(typescript@5.9.3)
+ eslint: 10.2.1(jiti@2.6.1)
typescript: 5.9.3
transitivePeerDependencies:
- supports-color
@@ -9389,7 +9602,7 @@ snapshots:
transitivePeerDependencies:
- supports-color
- verdaccio@6.5.0(typanion@3.14.0):
+ verdaccio@6.5.2(typanion@3.14.0):
dependencies:
'@cypress/request': 3.0.10
'@verdaccio/auth': 8.0.0-next-8.37
@@ -9405,7 +9618,7 @@ snapshots:
'@verdaccio/signature': 8.0.0-next-8.29
'@verdaccio/streams': 10.2.1
'@verdaccio/tarball': 13.0.0-next-8.37
- '@verdaccio/ui-theme': 9.0.0-next-9.10
+ '@verdaccio/ui-theme': 9.0.0-next-9.14
'@verdaccio/url': 13.0.0-next-8.37
'@verdaccio/utils': 8.1.0-next-8.37
JSONStream: 1.3.5
@@ -9435,7 +9648,7 @@ snapshots:
core-util-is: 1.0.2
extsprintf: 1.3.0
- vite-plugin-dts@4.5.4(@types/node@25.6.0)(typescript@5.9.3)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)):
+ vite-plugin-dts@4.5.4(@types/node@25.6.0)(typescript@5.9.3)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)):
dependencies:
'@microsoft/api-extractor': 7.58.2(@types/node@25.6.0)
'@rollup/pluginutils': 5.3.0
@@ -9448,18 +9661,18 @@ snapshots:
magic-string: 0.30.21
typescript: 5.9.3
optionalDependencies:
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
transitivePeerDependencies:
- '@types/node'
- rollup
- supports-color
- vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3):
+ vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3):
dependencies:
lightningcss: 1.32.0
picomatch: 4.0.4
- postcss: 8.5.9
- rolldown: 1.0.0-rc.15
+ postcss: 8.5.12
+ rolldown: 1.0.0-rc.17
tinyglobby: 0.2.16
optionalDependencies:
'@types/node': 25.6.0
@@ -9468,15 +9681,15 @@ snapshots:
jiti: 2.6.1
yaml: 2.8.3
- vitest@4.1.4(@types/node@25.6.0)(@vitest/coverage-v8@4.1.4)(@vitest/ui@4.1.4)(jsdom@29.0.2)(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)):
+ vitest@4.1.5(@types/node@25.6.0)(@vitest/coverage-v8@4.1.5)(@vitest/ui@4.1.5)(jsdom@29.1.0)(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)):
dependencies:
- '@vitest/expect': 4.1.4
- '@vitest/mocker': 4.1.4(vite@8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
- '@vitest/pretty-format': 4.1.4
- '@vitest/runner': 4.1.4
- '@vitest/snapshot': 4.1.4
- '@vitest/spy': 4.1.4
- '@vitest/utils': 4.1.4
+ '@vitest/expect': 4.1.5
+ '@vitest/mocker': 4.1.5(vite@8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3))
+ '@vitest/pretty-format': 4.1.5
+ '@vitest/runner': 4.1.5
+ '@vitest/snapshot': 4.1.5
+ '@vitest/spy': 4.1.5
+ '@vitest/utils': 4.1.5
es-module-lexer: 2.0.0
expect-type: 1.3.0
magic-string: 0.30.21
@@ -9488,13 +9701,13 @@ snapshots:
tinyexec: 1.1.1
tinyglobby: 0.2.16
tinyrainbow: 3.1.0
- vite: 8.0.8(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
+ vite: 8.0.10(@types/node@25.6.0)(esbuild@0.27.7)(jiti@2.6.1)(yaml@2.8.3)
why-is-node-running: 2.3.0
optionalDependencies:
'@types/node': 25.6.0
- '@vitest/coverage-v8': 4.1.4(vitest@4.1.4)
- '@vitest/ui': 4.1.4(vitest@4.1.4)
- jsdom: 29.0.2
+ '@vitest/coverage-v8': 4.1.5(vitest@4.1.5)
+ '@vitest/ui': 4.1.5(vitest@4.1.5)
+ jsdom: 29.1.0
transitivePeerDependencies:
- msw
@@ -9572,7 +9785,10 @@ snapshots:
yaml@1.10.3: {}
- yaml@2.8.3: {}
+ yaml@2.8.0: {}
+
+ yaml@2.8.3:
+ optional: true
yargs-parser@21.1.1: {}