prototypey.org - atproto lexicon typescript toolkit - mirror https://github.com/tylersayshi/prototypey

Merge pull request #10 from tylersayshi/website

Website

authored by tyler and committed by GitHub b8ada449 ce934b8b

+2335 -257
+5
package.json
··· 30 "packageManager": "pnpm@10.4.0", 31 "engines": { 32 "node": ">=20.19.0" 33 } 34 }
··· 30 "packageManager": "pnpm@10.4.0", 31 "engines": { 32 "node": ">=20.19.0" 33 + }, 34 + "pnpm": { 35 + "overrides": { 36 + "vite": "npm:rolldown-vite@7.0.6" 37 + } 38 } 39 }
+2 -1
packages/prototypey/package.json
··· 16 "main": "lib/index.js", 17 "exports": { 18 ".": "./lib/index.js", 19 - "./infer": "./lib/infer.js" 20 }, 21 "files": [ 22 "lib/",
··· 16 "main": "lib/index.js", 17 "exports": { 18 ".": "./lib/index.js", 19 + "./infer": "./lib/infer.js", 20 + "./lib/lib.d.ts": "./lib/lib.d.ts" 21 }, 22 "files": [ 23 "lib/",
+10 -9
packages/prototypey/src/infer.ts
··· 130 * Infers the TypeScript type for a lexicon namespace, returning only the 'main' definition 131 * with all local refs (#user, #post, etc.) resolved to their actual types. 132 */ 133 - export type Infer<T extends { id: string; defs: Record<string, unknown> }> = 134 - Prettify< 135 - "main" extends keyof T["defs"] 136 - ? { $type: T["id"] } & ReplaceRefsInType< 137 - InferType<T["defs"]["main"]>, 138 - { [K in keyof T["defs"]]: InferType<T["defs"][K]> } 139 - > 140 - : never 141 - >;
··· 130 * Infers the TypeScript type for a lexicon namespace, returning only the 'main' definition 131 * with all local refs (#user, #post, etc.) resolved to their actual types. 132 */ 133 + export type Infer< 134 + T extends { json: { id: string; defs: Record<string, unknown> } }, 135 + > = Prettify< 136 + "main" extends keyof T["json"]["defs"] 137 + ? { $type: T["json"]["id"] } & ReplaceRefsInType< 138 + InferType<T["json"]["defs"]["main"]>, 139 + { [K in keyof T["json"]["defs"]]: InferType<T["json"]["defs"][K]> } 140 + > 141 + : never 142 + >;
+1 -1
packages/prototypey/src/lib.ts
··· 329 330 class Namespace<T extends LexiconNamespace> { 331 public json: T; 332 - public infer: Infer<T> = null as unknown as Infer<T>; 333 334 constructor(json: T) { 335 this.json = json;
··· 329 330 class Namespace<T extends LexiconNamespace> { 331 public json: T; 332 + public infer: Infer<{ json: T }> = null as unknown as Infer<{ json: T }>; 333 334 constructor(json: T) { 335 this.json = json;
+1
packages/site/.gitignore
···
··· 1 + dist
+12
packages/site/index.html
···
··· 1 + <!doctype html> 2 + <html lang="en"> 3 + <head> 4 + <meta charset="UTF-8" /> 5 + <meta name="viewport" content="width=device-width, initial-scale=1.0" /> 6 + <title>prototypey - Type-safe lexicon inference for ATProto</title> 7 + </head> 8 + <body> 9 + <div id="root"></div> 10 + <script type="module" src="/src/main.tsx"></script> 11 + </body> 12 + </html>
+31
packages/site/package.json
···
··· 1 + { 2 + "name": "@prototypey/site", 3 + "version": "0.0.0", 4 + "private": true, 5 + "type": "module", 6 + "scripts": { 7 + "dev": "vite", 8 + "build": "tsc && vite build", 9 + "preview": "vite preview", 10 + "test": "vitest" 11 + }, 12 + "dependencies": { 13 + "@monaco-editor/react": "^4.6.0", 14 + "monaco-editor": "0.52.0", 15 + "prototypey": "workspace:*", 16 + "react": "^18.3.1", 17 + "react-dom": "^18.3.1" 18 + }, 19 + "devDependencies": { 20 + "@testing-library/jest-dom": "^6.9.1", 21 + "@testing-library/react": "^16.1.0", 22 + "@testing-library/user-event": "^14.5.2", 23 + "@types/react": "^18.3.18", 24 + "@types/react-dom": "^18.3.5", 25 + "@vitejs/plugin-react": "^5.0.4", 26 + "jsdom": "^25.0.1", 27 + "typescript": "5.8.3", 28 + "vite": "^6.0.5", 29 + "vitest": "^3.2.4" 30 + } 31 + }
+11
packages/site/src/App.tsx
···
··· 1 + import { Header } from "./components/Header"; 2 + import { Playground } from "./components/Playground"; 3 + 4 + export function App() { 5 + return ( 6 + <> 7 + <Header /> 8 + <Playground /> 9 + </> 10 + ); 11 + }
+157
packages/site/src/components/Editor.tsx
···
··· 1 + import MonacoEditor, { useMonaco, loader } from "@monaco-editor/react"; 2 + import { useEffect, useState } from "react"; 3 + import * as monaco from "monaco-editor"; 4 + import editorWorker from "monaco-editor/esm/vs/editor/editor.worker?worker"; 5 + import jsonWorker from "monaco-editor/esm/vs/language/json/json.worker?worker"; 6 + import tsWorker from "monaco-editor/esm/vs/language/typescript/ts.worker?worker"; 7 + 8 + // Configure Monaco Environment for web workers 9 + if (typeof self !== "undefined") { 10 + self.MonacoEnvironment = { 11 + getWorker(_: string, label: string) { 12 + if (label === "json") { 13 + return new jsonWorker(); 14 + } 15 + if (label === "typescript" || label === "javascript") { 16 + return new tsWorker(); 17 + } 18 + return new editorWorker(); 19 + }, 20 + }; 21 + } 22 + 23 + // Configure loader to use local monaco-editor 0.52.0 instead of CDN 0.54.0 24 + if (loader?.config) { 25 + loader.config({ monaco }); 26 + } 27 + 28 + interface EditorProps { 29 + value: string; 30 + onChange: (value: string) => void; 31 + onReady?: () => void; 32 + } 33 + 34 + export function Editor({ value, onChange, onReady }: EditorProps) { 35 + const [isReady, setIsReady] = useState(false); 36 + const monaco = useMonaco(); 37 + 38 + useEffect(() => { 39 + if (!monaco) return; 40 + 41 + monaco.languages.typescript.typescriptDefaults.setCompilerOptions({ 42 + target: monaco.languages.typescript.ScriptTarget.ES2020, 43 + allowNonTsExtensions: true, 44 + moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs, 45 + module: monaco.languages.typescript.ModuleKind.ESNext, 46 + noEmit: true, 47 + esModuleInterop: true, 48 + allowSyntheticDefaultImports: true, 49 + strict: false, 50 + }); 51 + 52 + monaco.languages.typescript.typescriptDefaults.setDiagnosticsOptions({ 53 + noSemanticValidation: false, 54 + noSyntaxValidation: false, 55 + }); 56 + 57 + Promise.all([ 58 + fetch("/types/type-utils.d.ts").then((r) => r.text()), 59 + fetch("/types/infer.d.ts").then((r) => r.text()), 60 + fetch("/types/lib.d.ts").then((r) => r.text()), 61 + ]).then(([typeUtilsDts, inferDts, libDts]) => { 62 + const stripImportsExports = (content: string) => 63 + content 64 + .replace(/import\s+{[^}]*}\s+from\s+['""][^'"]*['""];?\s*/g, "") 65 + .replace(/import\s+.*\s+from\s+['""][^'"]*['""];?\s*/g, "") 66 + .replace(/^export\s+{[^}]*};?\s*/gm, "") 67 + .replace(/^export\s+/gm, "") 68 + .replace(/\/\/# sourceMappingURL=.*/g, "") 69 + .replace(/\/\/#region.*\n?/g, "") 70 + .replace(/\/\/#endregion.*\n?/g, ""); 71 + 72 + const combinedTypes = ` 73 + ${stripImportsExports(typeUtilsDts)} 74 + ${stripImportsExports(inferDts)} 75 + ${stripImportsExports(libDts)} 76 + `; 77 + 78 + const moduleDeclaration = `declare module "prototypey" { 79 + ${combinedTypes} 80 + }`; 81 + 82 + monaco.languages.typescript.typescriptDefaults.addExtraLib( 83 + moduleDeclaration, 84 + "prototypey.d.ts", 85 + ); 86 + 87 + setIsReady(true); 88 + onReady?.(); 89 + }); 90 + }, [monaco, onReady]); 91 + 92 + if (!isReady) { 93 + return ( 94 + <div style={{ flex: 1, display: "flex", flexDirection: "column" }}> 95 + <div 96 + style={{ 97 + padding: "0.75rem 1rem", 98 + backgroundColor: "#f9fafb", 99 + borderBottom: "1px solid #e5e7eb", 100 + fontSize: "0.875rem", 101 + fontWeight: "600", 102 + color: "#374151", 103 + }} 104 + > 105 + Input 106 + </div> 107 + <div 108 + style={{ 109 + flex: 1, 110 + display: "flex", 111 + alignItems: "center", 112 + justifyContent: "center", 113 + }} 114 + > 115 + Loading... 116 + </div> 117 + </div> 118 + ); 119 + } 120 + 121 + return ( 122 + <div style={{ flex: 1, display: "flex", flexDirection: "column" }}> 123 + <div 124 + style={{ 125 + padding: "0.75rem 1rem", 126 + backgroundColor: "#f9fafb", 127 + borderBottom: "1px solid #e5e7eb", 128 + fontSize: "0.875rem", 129 + fontWeight: "600", 130 + color: "#374151", 131 + }} 132 + > 133 + Input 134 + </div> 135 + <div style={{ flex: 1 }}> 136 + <MonacoEditor 137 + height="100%" 138 + defaultLanguage="typescript" 139 + path="file:///main.ts" 140 + value={value} 141 + onChange={(value) => onChange(value || "")} 142 + theme="vs-light" 143 + options={{ 144 + minimap: { enabled: false }, 145 + fontSize: 14, 146 + lineNumbers: "on", 147 + renderLineHighlight: "all", 148 + scrollBeyondLastLine: false, 149 + automaticLayout: true, 150 + tabSize: 2, 151 + padding: { top: 16, bottom: 16 }, 152 + }} 153 + /> 154 + </div> 155 + </div> 156 + ); 157 + }
+31
packages/site/src/components/Header.tsx
···
··· 1 + export function Header() { 2 + return ( 3 + <header 4 + style={{ 5 + padding: "2rem 2rem 1rem 2rem", 6 + borderBottom: "1px solid #e5e7eb", 7 + }} 8 + > 9 + <div style={{ maxWidth: "1400px", margin: "0 auto" }}> 10 + <h1 11 + style={{ 12 + fontSize: "2.5rem", 13 + fontWeight: "700", 14 + marginBottom: "0.5rem", 15 + }} 16 + > 17 + <span style={{ color: "#6b7280" }}>at://</span>prototypey 18 + </h1> 19 + <p 20 + style={{ 21 + fontSize: "1.125rem", 22 + color: "#6b7280", 23 + marginTop: "0.5rem", 24 + }} 25 + > 26 + Type-safe lexicon inference for ATProto schemas 27 + </p> 28 + </div> 29 + </header> 30 + ); 31 + }
+60
packages/site/src/components/OutputPanel.tsx
···
··· 1 + import MonacoEditor from "@monaco-editor/react"; 2 + 3 + interface OutputPanelProps { 4 + output: { 5 + json: string; 6 + typeInfo: string; 7 + error: string; 8 + }; 9 + } 10 + 11 + export function OutputPanel({ output }: OutputPanelProps) { 12 + return ( 13 + <div style={{ flex: 1, display: "flex", flexDirection: "column" }}> 14 + <div 15 + style={{ 16 + padding: "0.75rem 1rem", 17 + backgroundColor: "#f9fafb", 18 + borderBottom: "1px solid #e5e7eb", 19 + fontSize: "0.875rem", 20 + fontWeight: "600", 21 + color: "#374151", 22 + }} 23 + > 24 + Output 25 + </div> 26 + <div style={{ flex: 1 }}> 27 + {output.error ? ( 28 + <div 29 + style={{ 30 + padding: "1rem", 31 + color: "#dc2626", 32 + backgroundColor: "#fef2f2", 33 + height: "100%", 34 + overflow: "auto", 35 + }} 36 + > 37 + <strong>Error:</strong> {output.error} 38 + </div> 39 + ) : ( 40 + <MonacoEditor 41 + height="100%" 42 + defaultLanguage="json" 43 + value={output.json} 44 + theme="vs-light" 45 + options={{ 46 + readOnly: true, 47 + minimap: { enabled: false }, 48 + fontSize: 14, 49 + lineNumbers: "on", 50 + renderLineHighlight: "none", 51 + scrollBeyondLastLine: false, 52 + automaticLayout: true, 53 + padding: { top: 16, bottom: 16 }, 54 + }} 55 + /> 56 + )} 57 + </div> 58 + </div> 59 + ); 60 + }
+198
packages/site/src/components/Playground.tsx
···
··· 1 + import { useState, useEffect, useRef } from "react"; 2 + import { Editor } from "./Editor"; 3 + import { OutputPanel } from "./OutputPanel"; 4 + import { lx } from "prototypey"; 5 + import { useMonaco } from "@monaco-editor/react"; 6 + import type * as Monaco from "monaco-editor"; 7 + 8 + let tsWorkerInstance: Monaco.languages.typescript.TypeScriptWorker | null = 9 + null; 10 + 11 + export function Playground() { 12 + const [code, setCode] = useState(DEFAULT_CODE); 13 + const [output, setOutput] = useState({ json: "", typeInfo: "", error: "" }); 14 + const [editorReady, setEditorReady] = useState(false); 15 + const monaco = useMonaco(); 16 + const tsWorkerRef = 17 + useRef<Monaco.languages.typescript.TypeScriptWorker | null>(null); 18 + 19 + const handleCodeChange = (newCode: string) => { 20 + setCode(newCode); 21 + }; 22 + 23 + const handleEditorReady = () => { 24 + setEditorReady(true); 25 + }; 26 + 27 + useEffect(() => { 28 + if (monaco && editorReady && !tsWorkerRef.current && !tsWorkerInstance) { 29 + const initWorker = async () => { 30 + try { 31 + await new Promise((resolve) => setTimeout(resolve, 200)); 32 + const worker = 33 + await monaco.languages.typescript.getTypeScriptWorker(); 34 + const uri = monaco.Uri.parse("file:///main.ts"); 35 + const client = await worker(uri); 36 + tsWorkerRef.current = client; 37 + tsWorkerInstance = client; 38 + } catch (err) { 39 + console.error("Failed to initialize TypeScript worker:", err); 40 + } 41 + }; 42 + initWorker(); 43 + } 44 + }, [monaco, editorReady]); 45 + 46 + useEffect(() => { 47 + const timeoutId = setTimeout(async () => { 48 + try { 49 + const nsMatch = code.match( 50 + /const\s+ns\s*=\s*lx\.namespace\([^]*?\}\s*\);/, 51 + ); 52 + if (!nsMatch) { 53 + throw new Error("No namespace definition found"); 54 + } 55 + 56 + const cleanedCode = nsMatch[0]; 57 + const wrappedCode = `${cleanedCode}\nreturn ns;`; 58 + const fn = new Function("lx", wrappedCode); 59 + const result = fn(lx); 60 + let typeInfo = "// Hover over .infer in the editor to see the type"; 61 + 62 + if (monaco && tsWorkerRef.current) { 63 + try { 64 + const uri = monaco.Uri.parse("file:///main.ts"); 65 + const existingModel = monaco.editor.getModel(uri); 66 + 67 + if (existingModel) { 68 + const inferPosition = code.indexOf(`ns.infer`); 69 + if (inferPosition !== -1) { 70 + const offset = inferPosition + `ns.infer`.length - 1; 71 + 72 + const quickInfo = 73 + await tsWorkerRef.current.getQuickInfoAtPosition( 74 + uri.toString(), 75 + offset, 76 + ); 77 + 78 + if (quickInfo?.displayParts) { 79 + const typeText = quickInfo.displayParts 80 + .map((part: { text: string }) => part.text) 81 + .join(""); 82 + 83 + const propertyMatch = typeText.match( 84 + /\(property\)\s+.*?\.infer:\s*([\s\S]+?)$/, 85 + ); 86 + if (propertyMatch) { 87 + typeInfo = formatTypeString(propertyMatch[1]); 88 + } 89 + } 90 + } 91 + } 92 + } catch (err) { 93 + console.error("Type extraction error:", err); 94 + } 95 + } 96 + 97 + if (result && typeof result === "object" && "json" in result) { 98 + const jsonOutput = (result as { json: unknown }).json; 99 + setOutput({ 100 + json: JSON.stringify(jsonOutput, null, 2), 101 + typeInfo, 102 + error: "", 103 + }); 104 + } else { 105 + setOutput({ 106 + json: JSON.stringify(result, null, 2), 107 + typeInfo, 108 + error: "", 109 + }); 110 + } 111 + } catch (error) { 112 + setOutput({ 113 + json: "", 114 + typeInfo: "", 115 + error: error instanceof Error ? error.message : "Unknown error", 116 + }); 117 + } 118 + }, 500); 119 + 120 + return () => clearTimeout(timeoutId); 121 + }, [code, monaco]); 122 + 123 + return ( 124 + <div 125 + style={{ 126 + flex: 1, 127 + display: "flex", 128 + overflow: "hidden", 129 + }} 130 + > 131 + <div 132 + style={{ 133 + flex: 1, 134 + display: "flex", 135 + borderRight: "1px solid #e5e7eb", 136 + }} 137 + > 138 + <Editor 139 + value={code} 140 + onChange={handleCodeChange} 141 + onReady={handleEditorReady} 142 + /> 143 + </div> 144 + <div style={{ flex: 1, display: "flex" }}> 145 + <OutputPanel output={output} /> 146 + </div> 147 + </div> 148 + ); 149 + } 150 + 151 + function formatTypeString(typeStr: string): string { 152 + let formatted = typeStr.trim(); 153 + 154 + formatted = formatted.replace(/\s+/g, " "); 155 + formatted = formatted.replace(/;\s*/g, "\n"); 156 + formatted = formatted.replace(/{\s*/g, "{\n"); 157 + formatted = formatted.replace(/\s*}/g, "\n}"); 158 + 159 + const lines = formatted.split("\n"); 160 + let indentLevel = 0; 161 + const indentedLines: string[] = []; 162 + 163 + for (const line of lines) { 164 + const trimmed = line.trim(); 165 + if (!trimmed) continue; 166 + 167 + if (trimmed.startsWith("}")) { 168 + indentLevel = Math.max(0, indentLevel - 1); 169 + } 170 + 171 + indentedLines.push(" ".repeat(indentLevel) + trimmed); 172 + 173 + if (trimmed.endsWith("{") && !trimmed.includes("}")) { 174 + indentLevel++; 175 + } 176 + } 177 + 178 + return indentedLines.join("\n"); 179 + } 180 + 181 + const DEFAULT_CODE = `import { lx, type Infer } from "prototypey"; 182 + 183 + const ns = lx.namespace("app.bsky.actor.profile", { 184 + main: lx.record({ 185 + key: "self", 186 + record: lx.object({ 187 + displayName: lx.string({ maxLength: 64, maxGraphemes: 64 }), 188 + description: lx.string({ maxLength: 256, maxGraphemes: 256 }), 189 + }), 190 + }), 191 + }); 192 + 193 + type ProfileInferred = Infer<typeof ns>; 194 + 195 + const aProfile: ProfileInferred = { 196 + $type: "app.bsky.actor.profile", 197 + displayName: "Benny Harvey" 198 + }`;
+32
packages/site/src/index.css
···
··· 1 + * { 2 + box-sizing: border-box; 3 + margin: 0; 4 + padding: 0; 5 + } 6 + 7 + :root { 8 + font-family: 9 + -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", 10 + "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif; 11 + line-height: 1.5; 12 + font-weight: 400; 13 + color: #213547; 14 + background-color: #ffffff; 15 + font-synthesis: none; 16 + text-rendering: optimizeLegibility; 17 + -webkit-font-smoothing: antialiased; 18 + -moz-osx-font-smoothing: grayscale; 19 + } 20 + 21 + body { 22 + margin: 0; 23 + display: flex; 24 + min-width: 320px; 25 + min-height: 100vh; 26 + } 27 + 28 + #root { 29 + width: 100%; 30 + display: flex; 31 + flex-direction: column; 32 + }
+10
packages/site/src/main.tsx
···
··· 1 + import { StrictMode } from "react"; 2 + import { createRoot } from "react-dom/client"; 3 + import "./index.css"; 4 + import { App } from "./App.tsx"; 5 + 6 + createRoot(document.getElementById("root")!).render( 7 + <StrictMode> 8 + <App /> 9 + </StrictMode>, 10 + );
+1
packages/site/src/vite-env.d.ts
···
··· 1 + /// <reference types="vite/client" />
+88
packages/site/tests/components/Editor.test.tsx
···
··· 1 + import { describe, it, expect, vi } from "vitest"; 2 + import { render, screen, waitFor } from "@testing-library/react"; 3 + import { userEvent } from "@testing-library/user-event"; 4 + import { Editor } from "../../src/components/Editor"; 5 + 6 + vi.mock("@monaco-editor/react", () => ({ 7 + default: ({ value, onChange }: any) => ( 8 + <textarea 9 + data-testid="monaco-editor" 10 + value={value} 11 + onChange={(e) => onChange(e.target.value)} 12 + /> 13 + ), 14 + useMonaco: () => ({ 15 + languages: { 16 + typescript: { 17 + typescriptDefaults: { 18 + setCompilerOptions: vi.fn(), 19 + setDiagnosticsOptions: vi.fn(), 20 + addExtraLib: vi.fn(), 21 + }, 22 + ScriptTarget: { ES2020: 7 }, 23 + ModuleResolutionKind: { NodeJs: 2 }, 24 + ModuleKind: { ESNext: 99 }, 25 + }, 26 + }, 27 + }), 28 + loader: { 29 + config: vi.fn(), 30 + init: vi.fn(() => 31 + Promise.resolve({ 32 + languages: { 33 + typescript: { 34 + typescriptDefaults: { 35 + setCompilerOptions: vi.fn(), 36 + setDiagnosticsOptions: vi.fn(), 37 + addExtraLib: vi.fn(), 38 + }, 39 + ScriptTarget: { ES2020: 7 }, 40 + ModuleResolutionKind: { NodeJs: 2 }, 41 + ModuleKind: { ESNext: 99 }, 42 + }, 43 + }, 44 + }), 45 + ), 46 + }, 47 + })); 48 + 49 + describe("Editor", () => { 50 + it("renders with input label", async () => { 51 + const mockOnChange = vi.fn(); 52 + render(<Editor value="" onChange={mockOnChange} />); 53 + expect(screen.getByText("Input")).toBeInTheDocument(); 54 + 55 + // Wait for loader to complete 56 + await waitFor(() => { 57 + expect(screen.getByTestId("monaco-editor")).toBeInTheDocument(); 58 + }); 59 + }); 60 + 61 + it("calls onChange when value changes", async () => { 62 + const mockOnChange = vi.fn(); 63 + render(<Editor value="" onChange={mockOnChange} />); 64 + 65 + // Wait for loader to complete 66 + await waitFor(() => { 67 + expect(screen.getByTestId("monaco-editor")).toBeInTheDocument(); 68 + }); 69 + 70 + const editor = screen.getByTestId("monaco-editor"); 71 + await userEvent.type(editor, "test"); 72 + 73 + expect(mockOnChange).toHaveBeenCalled(); 74 + }); 75 + 76 + it("displays the provided value", async () => { 77 + const mockOnChange = vi.fn(); 78 + render(<Editor value="const x = 1" onChange={mockOnChange} />); 79 + 80 + // Wait for loader to complete 81 + await waitFor(() => { 82 + expect(screen.getByTestId("monaco-editor")).toBeInTheDocument(); 83 + }); 84 + 85 + const editor = screen.getByTestId("monaco-editor"); 86 + expect(editor).toHaveValue("const x = 1"); 87 + }); 88 + });
+18
packages/site/tests/components/Header.test.tsx
···
··· 1 + import { describe, it, expect } from "vitest"; 2 + import { render, screen } from "@testing-library/react"; 3 + import { Header } from "../../src/components/Header"; 4 + 5 + describe("Header", () => { 6 + it("renders the title", () => { 7 + render(<Header />); 8 + expect(screen.getByText("prototypey")).toBeInTheDocument(); 9 + expect(screen.getByText("at://")).toBeInTheDocument(); 10 + }); 11 + 12 + it("renders the description", () => { 13 + render(<Header />); 14 + expect( 15 + screen.getByText("Type-safe lexicon inference for ATProto schemas"), 16 + ).toBeInTheDocument(); 17 + }); 18 + });
+49
packages/site/tests/components/OutputPanel.test.tsx
···
··· 1 + import { describe, it, expect, vi } from "vitest"; 2 + import { render, screen } from "@testing-library/react"; 3 + import { userEvent } from "@testing-library/user-event"; 4 + import { OutputPanel } from "../../src/components/OutputPanel"; 5 + 6 + vi.mock("@monaco-editor/react", () => ({ 7 + default: ({ value }: any) => <div data-testid="monaco-editor">{value}</div>, 8 + })); 9 + 10 + describe("OutputPanel", () => { 11 + const mockOutput = { 12 + json: '{"test": "value"}', 13 + typeInfo: "type Test = { test: string }", 14 + error: "", 15 + }; 16 + 17 + it("renders Output header", () => { 18 + render(<OutputPanel output={mockOutput} />); 19 + expect(screen.getByText("Output")).toBeInTheDocument(); 20 + }); 21 + 22 + it("displays json content", () => { 23 + render(<OutputPanel output={mockOutput} />); 24 + expect(screen.getByText('{"test": "value"}')).toBeInTheDocument(); 25 + }); 26 + 27 + it("displays error message when error exists", () => { 28 + const errorOutput = { 29 + json: "", 30 + typeInfo: "", 31 + error: "Something went wrong", 32 + }; 33 + 34 + render(<OutputPanel output={errorOutput} />); 35 + expect(screen.getByText(/Error:/)).toBeInTheDocument(); 36 + expect(screen.getByText(/Something went wrong/)).toBeInTheDocument(); 37 + }); 38 + 39 + it("does not display monaco editor when error exists", () => { 40 + const errorOutput = { 41 + json: "", 42 + typeInfo: "", 43 + error: "Something went wrong", 44 + }; 45 + 46 + render(<OutputPanel output={errorOutput} />); 47 + expect(screen.queryByTestId("monaco-editor")).not.toBeInTheDocument(); 48 + }); 49 + });
+106
packages/site/tests/components/Playground.test.tsx
···
··· 1 + import { describe, it, expect, vi } from "vitest"; 2 + import { render, screen, waitFor } from "@testing-library/react"; 3 + import { Playground } from "../../src/components/Playground"; 4 + 5 + vi.mock("@monaco-editor/react", () => ({ 6 + default: ({ value, onChange }: any) => ( 7 + <textarea 8 + data-testid="monaco-editor" 9 + value={value} 10 + onChange={(e) => onChange(e.target.value)} 11 + /> 12 + ), 13 + useMonaco: () => ({ 14 + languages: { 15 + typescript: { 16 + typescriptDefaults: { 17 + setCompilerOptions: vi.fn(), 18 + setDiagnosticsOptions: vi.fn(), 19 + addExtraLib: vi.fn(), 20 + }, 21 + ScriptTarget: { ES2020: 7 }, 22 + ModuleResolutionKind: { NodeJs: 2 }, 23 + ModuleKind: { ESNext: 99 }, 24 + }, 25 + }, 26 + }), 27 + loader: { 28 + config: vi.fn(), 29 + init: vi.fn(() => 30 + Promise.resolve({ 31 + languages: { 32 + typescript: { 33 + typescriptDefaults: { 34 + setCompilerOptions: vi.fn(), 35 + setDiagnosticsOptions: vi.fn(), 36 + addExtraLib: vi.fn(), 37 + }, 38 + ScriptTarget: { ES2020: 5 }, 39 + ModuleResolutionKind: { NodeJs: 2 }, 40 + ModuleKind: { ESNext: 99 }, 41 + getTypeScriptWorker: vi.fn(() => 42 + Promise.resolve(() => 43 + Promise.resolve({ 44 + getQuickInfoAtPosition: vi.fn(() => Promise.resolve(null)), 45 + }), 46 + ), 47 + ), 48 + }, 49 + }, 50 + editor: { 51 + defineTheme: vi.fn(), 52 + createModel: vi.fn(() => ({ dispose: vi.fn() })), 53 + getModel: vi.fn(() => null), 54 + }, 55 + Uri: { 56 + parse: vi.fn((uri: string) => ({ toString: () => uri })), 57 + }, 58 + }), 59 + ), 60 + }, 61 + })); 62 + 63 + describe("Playground", () => { 64 + it("renders Editor and OutputPanel components", async () => { 65 + render(<Playground />); 66 + 67 + expect(screen.getByText("Input")).toBeInTheDocument(); 68 + expect(screen.getByText("Output")).toBeInTheDocument(); 69 + 70 + // Wait for async state updates to complete 71 + await waitFor(() => { 72 + expect(screen.getAllByTestId("monaco-editor").length).toBeGreaterThan(0); 73 + }); 74 + }); 75 + 76 + it("starts with default code in editor", async () => { 77 + render(<Playground />); 78 + 79 + // Wait for editors to be ready 80 + await waitFor(() => { 81 + expect(screen.getAllByTestId("monaco-editor").length).toBeGreaterThan(0); 82 + }); 83 + 84 + const editors = screen.getAllByTestId("monaco-editor"); 85 + const inputEditor = editors[0] as HTMLTextAreaElement; 86 + 87 + expect(inputEditor.value).toContain( 88 + 'lx.namespace("app.bsky.actor.profile"', 89 + ); 90 + }); 91 + 92 + it("evaluates code and displays output", async () => { 93 + render(<Playground />); 94 + 95 + await waitFor( 96 + () => { 97 + const editors = screen.getAllByTestId("monaco-editor"); 98 + const outputEditor = editors.find( 99 + (e) => e.textContent && e.textContent.includes("{"), 100 + ); 101 + expect(outputEditor).toBeDefined(); 102 + }, 103 + { timeout: 1000 }, 104 + ); 105 + }); 106 + });
+2
packages/site/tests/mocks/monaco-editor.ts
···
··· 1 + // Mock monaco-editor for tests 2 + export default {};
+2
packages/site/tests/mocks/worker.ts
···
··· 1 + // Mock worker for tests 2 + export default class MockWorker {}
+24
packages/site/tests/setup.ts
···
··· 1 + import { vi } from "vitest"; 2 + import "@testing-library/jest-dom/vitest"; 3 + 4 + // Mock @monaco-editor/react BEFORE any imports 5 + vi.mock("@monaco-editor/react", () => ({ 6 + default: vi.fn(() => null), 7 + useMonaco: vi.fn(() => null), 8 + loader: { 9 + config: vi.fn(), 10 + init: vi.fn(() => Promise.resolve({})), 11 + }, 12 + })); 13 + 14 + global.fetch = vi.fn( 15 + () => 16 + Promise.resolve({ 17 + text: () => Promise.resolve(""), 18 + }) as any, 19 + ); 20 + 21 + // Mock MonacoEnvironment 22 + (global as any).MonacoEnvironment = { 23 + getWorker: () => ({}) as any, 24 + };
+11
packages/site/tsconfig.json
···
··· 1 + { 2 + "extends": "../../tsconfig.json", 3 + "compilerOptions": { 4 + "target": "ES2020", 5 + "lib": ["ES2020", "DOM", "DOM.Iterable"], 6 + "module": "ESNext", 7 + "moduleResolution": "bundler", 8 + "jsx": "react-jsx" 9 + }, 10 + "include": ["src"] 11 + }
+34
packages/site/vite.config.ts
···
··· 1 + import { defineConfig } from "vite"; 2 + import react from "@vitejs/plugin-react"; 3 + import { readFileSync } from "fs"; 4 + import { resolve } from "path"; 5 + 6 + // TODO replace this, it's gross and idek if it's being used 7 + function servePrototypeyTypes() { 8 + return { 9 + name: "serve-prototypey-types", 10 + configureServer(server) { 11 + server.middlewares.use((req, res, next) => { 12 + if (req.url?.startsWith("/types/") && req.url.endsWith(".d.ts")) { 13 + const fileName = req.url.slice(7); 14 + try { 15 + const filePath = resolve(__dirname, "../prototypey/lib", fileName); 16 + const content = readFileSync(filePath, "utf-8"); 17 + res.setHeader("Content-Type", "application/typescript"); 18 + res.end(content); 19 + return; 20 + } catch (e) { 21 + res.statusCode = 404; 22 + res.end("Type file not found"); 23 + return; 24 + } 25 + } 26 + next(); 27 + }); 28 + }, 29 + }; 30 + } 31 + 32 + export default defineConfig({ 33 + plugins: [react(), servePrototypeyTypes()], 34 + });
+40
packages/site/vitest.config.ts
···
··· 1 + import { defineConfig } from "vitest/config"; 2 + import react from "@vitejs/plugin-react"; 3 + 4 + // Plugin to mock monaco-editor workers in tests 5 + function mockMonacoWorkers() { 6 + return { 7 + name: "mock-monaco-workers", 8 + resolveId(id: string) { 9 + if (id.includes("monaco-editor") && id.includes("?worker")) { 10 + return id; 11 + } 12 + }, 13 + load(id: string) { 14 + if (id.includes("monaco-editor") && id.includes("?worker")) { 15 + return "export default class MockWorker {}"; 16 + } 17 + }, 18 + }; 19 + } 20 + 21 + export default defineConfig({ 22 + plugins: [ 23 + react({ 24 + babel: { 25 + plugins: [], 26 + }, 27 + }), 28 + mockMonacoWorkers(), 29 + ], 30 + test: { 31 + environment: "jsdom", 32 + globals: true, 33 + setupFiles: ["./tests/setup.ts"], 34 + }, 35 + resolve: { 36 + alias: { 37 + "monaco-editor": `${import.meta.dirname}/tests/mocks/monaco-editor.ts`, 38 + }, 39 + }, 40 + });
+1394 -243
pnpm-lock.yaml
··· 4 autoInstallPeers: true 5 excludeLinksFromLockfile: false 6 7 importers: 8 9 .: ··· 44 version: 5.8.3 45 vitest: 46 specifier: ^3.2.4 47 - version: 3.2.4(@types/node@24.0.4)(jiti@2.6.1) 48 49 packages/prototypey: 50 devDependencies: ··· 62 version: 5.8.3 63 vitest: 64 specifier: ^3.2.4 65 - version: 3.2.4(@types/node@24.0.4)(jiti@2.6.1) 66 67 packages: 68 69 '@ark/attest@0.49.0': 70 resolution: {integrity: sha512-LYAJe4iwgA4GY+WLcSZ2ObTgr7F9lSwoQm4hR+B5ko0TfB3gqolXv04hA+7UtoP5HrGR1lVS+0DdwtWNnaSGnQ==} ··· 81 '@ark/util@0.49.0': 82 resolution: {integrity: sha512-/BtnX7oCjNkxi2vi6y1399b+9xd1jnCrDYhZ61f0a+3X8x8DxlK52VgEEzyuC2UQMPACIfYrmHkhD3lGt2GaMA==} 83 84 '@babel/generator@7.28.3': 85 resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} 86 engines: {node: '>=6.9.0'} 87 88 '@babel/helper-string-parser@7.27.1': 89 resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 90 engines: {node: '>=6.9.0'} ··· 93 resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 94 engines: {node: '>=6.9.0'} 95 96 '@babel/parser@7.28.4': 97 resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} 98 engines: {node: '>=6.0.0'} 99 hasBin: true 100 101 '@babel/types@7.28.4': 102 resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} 103 engines: {node: '>=6.9.0'} 104 105 '@emnapi/core@1.5.0': 106 resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} ··· 328 '@jridgewell/gen-mapping@0.3.13': 329 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 330 331 '@jridgewell/resolve-uri@3.1.2': 332 resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 333 engines: {node: '>=6.0.0'} ··· 337 338 '@jridgewell/trace-mapping@0.3.31': 339 resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 340 341 '@napi-rs/wasm-runtime@0.2.12': 342 resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} ··· 357 resolution: {integrity: sha512-J2lsPDen2mFs3cOA1gIBd0wsHEhum2vTnuKIRwmj3HJJcIz/XgeNdzvgSOioIXOJgURIpcDaK05jwaDG1rhDwg==} 358 engines: {node: '>=6.9.0'} 359 360 '@oxc-project/types@0.72.2': 361 resolution: {integrity: sha512-il5RF8AP85XC0CMjHF4cnVT9nT/v/ocm6qlZQpSiAR9qBbQMGkFKloBZwm7PcnOdiUX97yHgsKM7uDCCWCu3tg==} 362 363 '@prettier/sync@0.5.5': 364 resolution: {integrity: sha512-6BMtNr7aQhyNcGzmumkL0tgr1YQGfm9d7ZdmRpWqWuqpc9vZBind4xMe5NMiRECOhjuSiWHfBWLBnXkpeE90bw==} ··· 373 cpu: [arm64] 374 os: [darwin] 375 376 '@rolldown/binding-darwin-x64@1.0.0-beta.11-commit.f051675': 377 resolution: {integrity: sha512-Bnst+HBwhW2YrNybEiNf9TJkI1myDgXmiPBVIOS0apzrLCmByzei6PilTClOpTpNFYB+UviL3Ox2gKUmcgUjGw==} 378 cpu: [x64] 379 os: [darwin] 380 381 '@rolldown/binding-freebsd-x64@1.0.0-beta.11-commit.f051675': 382 resolution: {integrity: sha512-3jAxVmYDPc8vMZZOfZI1aokGB9cP6VNeU9XNCx0UJ6ShlSPK3qkAa0sWgueMhaQkgBVf8MOfGpjo47ohGd7QrA==} 383 cpu: [x64] 384 os: [freebsd] 385 386 '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.11-commit.f051675': 387 resolution: {integrity: sha512-TpUltUdvcsAf2WvXXD8AVc3BozvhgazJ2gJLXp4DVV2V82m26QelI373Bzx8d/4hB167EEIg4wWW/7GXB/ltoQ==} 388 cpu: [arm] 389 os: [linux] 390 391 '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.11-commit.f051675': 392 resolution: {integrity: sha512-eGvHnYQSdbdhsTdjdp/+83LrN81/7X9HD6y3jg7mEmdsicxEMEIt6CsP7tvYS/jn4489jgO/6mLxW/7Vg+B8pw==} 393 cpu: [arm64] 394 os: [linux] 395 ··· 398 cpu: [arm64] 399 os: [linux] 400 401 '@rolldown/binding-linux-x64-gnu@1.0.0-beta.11-commit.f051675': 402 resolution: {integrity: sha512-9vXnu27r4zgS/BHP6RCLBOrJoV2xxtLYHT68IVpSOdCkBHGpf1oOJt6blv1y5NRRJBEfAFCvj5NmwSMhETF96w==} 403 cpu: [x64] 404 os: [linux] 405 406 '@rolldown/binding-linux-x64-musl@1.0.0-beta.11-commit.f051675': 407 resolution: {integrity: sha512-e6tvsZbtHt4kzl82oCajOUxwIN8uMfjhuQ0qxIVRzPekRRjKEzyH9agYPW6toN0cnHpkhPsu51tyZKJOdUl7jg==} 408 cpu: [x64] 409 os: [linux] 410 411 '@rolldown/binding-wasm32-wasi@1.0.0-beta.11-commit.f051675': 412 resolution: {integrity: sha512-nBQVizPoUQiViANhWrOyihXNf2booP2iq3S396bI1tmHftdgUXWKa6yAoleJBgP0oF0idXpTPU82ciaROUcjpg==} 413 engines: {node: '>=14.21.3'} 414 cpu: [wasm32] 415 ··· 418 cpu: [arm64] 419 os: [win32] 420 421 '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.11-commit.f051675': 422 resolution: {integrity: sha512-LtuMKJe6iFH4iV55dy+gDwZ9v23Tfxx5cd7ZAxvhYFGoVNSvarxAgl844BvFGReERCnLTGRvo85FUR6fDHQX+A==} 423 cpu: [ia32] 424 os: [win32] 425 426 '@rolldown/binding-win32-x64-msvc@1.0.0-beta.11-commit.f051675': 427 resolution: {integrity: sha512-YY8UYfBm4dbWa4psgEPPD9T9X0nAvlYu0BOsQC5vDfCwzzU7IHT4jAfetvlQq+4+M6qWHSTr6v+/WX5EmlM1WA==} 428 cpu: [x64] 429 os: [win32] 430 431 '@rolldown/pluginutils@1.0.0-beta.11-commit.f051675': 432 resolution: {integrity: sha512-TAqMYehvpauLKz7v4TZOTUQNjxa5bUQWw2+51/+Zk3ItclBxgoSWhnZ31sXjdoX6le6OXdK2vZfV3KoyW/O/GA==} 433 434 - '@rollup/rollup-android-arm-eabi@4.52.4': 435 - resolution: {integrity: sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==} 436 - cpu: [arm] 437 - os: [android] 438 439 - '@rollup/rollup-android-arm64@4.52.4': 440 - resolution: {integrity: sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==} 441 - cpu: [arm64] 442 - os: [android] 443 444 - '@rollup/rollup-darwin-arm64@4.52.4': 445 - resolution: {integrity: sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==} 446 - cpu: [arm64] 447 - os: [darwin] 448 449 - '@rollup/rollup-darwin-x64@4.52.4': 450 - resolution: {integrity: sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==} 451 - cpu: [x64] 452 - os: [darwin] 453 454 - '@rollup/rollup-freebsd-arm64@4.52.4': 455 - resolution: {integrity: sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==} 456 - cpu: [arm64] 457 - os: [freebsd] 458 459 - '@rollup/rollup-freebsd-x64@4.52.4': 460 - resolution: {integrity: sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==} 461 - cpu: [x64] 462 - os: [freebsd] 463 464 - '@rollup/rollup-linux-arm-gnueabihf@4.52.4': 465 - resolution: {integrity: sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==} 466 - cpu: [arm] 467 - os: [linux] 468 469 - '@rollup/rollup-linux-arm-musleabihf@4.52.4': 470 - resolution: {integrity: sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==} 471 - cpu: [arm] 472 - os: [linux] 473 474 - '@rollup/rollup-linux-arm64-gnu@4.52.4': 475 - resolution: {integrity: sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==} 476 - cpu: [arm64] 477 - os: [linux] 478 479 - '@rollup/rollup-linux-arm64-musl@4.52.4': 480 - resolution: {integrity: sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==} 481 - cpu: [arm64] 482 - os: [linux] 483 - 484 - '@rollup/rollup-linux-loong64-gnu@4.52.4': 485 - resolution: {integrity: sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==} 486 - cpu: [loong64] 487 - os: [linux] 488 - 489 - '@rollup/rollup-linux-ppc64-gnu@4.52.4': 490 - resolution: {integrity: sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==} 491 - cpu: [ppc64] 492 - os: [linux] 493 - 494 - '@rollup/rollup-linux-riscv64-gnu@4.52.4': 495 - resolution: {integrity: sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==} 496 - cpu: [riscv64] 497 - os: [linux] 498 - 499 - '@rollup/rollup-linux-riscv64-musl@4.52.4': 500 - resolution: {integrity: sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==} 501 - cpu: [riscv64] 502 - os: [linux] 503 - 504 - '@rollup/rollup-linux-s390x-gnu@4.52.4': 505 - resolution: {integrity: sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==} 506 - cpu: [s390x] 507 - os: [linux] 508 - 509 - '@rollup/rollup-linux-x64-gnu@4.52.4': 510 - resolution: {integrity: sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==} 511 - cpu: [x64] 512 - os: [linux] 513 - 514 - '@rollup/rollup-linux-x64-musl@4.52.4': 515 - resolution: {integrity: sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==} 516 - cpu: [x64] 517 - os: [linux] 518 - 519 - '@rollup/rollup-openharmony-arm64@4.52.4': 520 - resolution: {integrity: sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==} 521 - cpu: [arm64] 522 - os: [openharmony] 523 - 524 - '@rollup/rollup-win32-arm64-msvc@4.52.4': 525 - resolution: {integrity: sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==} 526 - cpu: [arm64] 527 - os: [win32] 528 - 529 - '@rollup/rollup-win32-ia32-msvc@4.52.4': 530 - resolution: {integrity: sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==} 531 - cpu: [ia32] 532 - os: [win32] 533 - 534 - '@rollup/rollup-win32-x64-gnu@4.52.4': 535 - resolution: {integrity: sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==} 536 - cpu: [x64] 537 - os: [win32] 538 539 - '@rollup/rollup-win32-x64-msvc@4.52.4': 540 - resolution: {integrity: sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==} 541 - cpu: [x64] 542 - os: [win32] 543 544 - '@tybys/wasm-util@0.10.1': 545 - resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} 546 547 '@types/chai@5.2.2': 548 resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} ··· 559 '@types/node@24.0.4': 560 resolution: {integrity: sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==} 561 562 '@typescript-eslint/eslint-plugin@8.35.0': 563 resolution: {integrity: sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg==} 564 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ··· 627 peerDependencies: 628 typescript: '*' 629 630 '@vitest/expect@3.2.4': 631 resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} 632 ··· 666 engines: {node: '>=0.4.0'} 667 hasBin: true 668 669 ajv@6.12.6: 670 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 671 ··· 677 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 678 engines: {node: '>=8'} 679 680 ansis@4.2.0: 681 resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 682 engines: {node: '>=14'} 683 684 argparse@2.0.1: 685 resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 686 687 arktype@2.1.22: 688 resolution: {integrity: sha512-xdzl6WcAhrdahvRRnXaNwsipCgHuNoLobRqhiP8RjnfL9Gp947abGlo68GAIyLtxbD+MLzNyH2YR4kEqioMmYQ==} ··· 695 resolution: {integrity: sha512-TH+b3Lv6pUjy/Nu0m6A2JULtdzLpmqF9x1Dhj00ZoEiML8qvVA9j1flkzTKNYgdEhWrjDwtWNpyyCUbfQe514g==} 696 engines: {node: '>=20.19.0'} 697 698 balanced-match@1.0.2: 699 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 700 701 birpc@2.6.1: 702 resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} ··· 711 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 712 engines: {node: '>=8'} 713 714 cac@6.7.14: 715 resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 716 engines: {node: '>=8'} 717 718 callsites@3.1.0: 719 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 720 engines: {node: '>=6'} 721 722 chai@5.3.3: 723 resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} ··· 745 color-name@1.1.4: 746 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 747 748 concat-map@0.0.1: 749 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 750 751 cross-spawn@7.0.6: 752 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 753 engines: {node: '>= 8'} 754 755 debug@4.4.3: 756 resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 757 engines: {node: '>=6.0'} ··· 760 peerDependenciesMeta: 761 supports-color: 762 optional: true 763 764 deep-eql@5.0.2: 765 resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} ··· 771 defu@6.1.4: 772 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 773 774 diff@8.0.2: 775 resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} 776 engines: {node: '>=0.3.1'} 777 778 dts-resolver@2.1.2: 779 resolution: {integrity: sha512-xeXHBQkn2ISSXxbJWD828PFjtyg+/UrMDo7W4Ffcs7+YWCquxU8YjV1KoxuiL+eJ5pg3ll+bC6flVv61L3LKZg==} ··· 784 oxc-resolver: 785 optional: true 786 787 emoji-regex@8.0.0: 788 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 789 ··· 791 resolution: {integrity: sha512-rsPft6CK3eHtrlp9Y5ALBb+hfK+DWnA4WFebbazxjWyx8vSm3rZeoM3z9irsjcqO3PYRzlfv27XIB4tz2DV7RA==} 792 engines: {node: '>=14'} 793 794 es-module-lexer@1.7.0: 795 resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 796 797 esbuild@0.25.10: 798 resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} ··· 904 flatted@3.3.3: 905 resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 906 907 fsevents@2.3.3: 908 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 909 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 910 os: [darwin] 911 912 get-caller-file@2.0.5: 913 resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 914 engines: {node: 6.* || 8.* || >= 10.*} 915 916 get-tsconfig@4.12.0: 917 resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} 918 ··· 928 resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 929 engines: {node: '>=18'} 930 931 graphemer@1.4.0: 932 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 933 ··· 935 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 936 engines: {node: '>=8'} 937 938 hookable@5.5.3: 939 resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 940 941 ignore@5.3.2: 942 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 943 engines: {node: '>= 4'} ··· 954 resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 955 engines: {node: '>=0.8.19'} 956 957 inherits@2.0.4: 958 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 959 ··· 973 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 974 engines: {node: '>=0.12.0'} 975 976 isexe@2.0.0: 977 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 978 ··· 980 resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 981 hasBin: true 982 983 js-tokens@9.0.1: 984 resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 985 ··· 987 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 988 hasBin: true 989 990 jsesc@3.1.0: 991 resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 992 engines: {node: '>=6'} ··· 1001 json-stable-stringify-without-jsonify@1.0.1: 1002 resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1003 1004 jsonparse@1.3.1: 1005 resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} 1006 engines: {'0': node >= 0.2.0} ··· 1017 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1018 engines: {node: '>= 0.8.0'} 1019 1020 locate-path@6.0.0: 1021 resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1022 engines: {node: '>=10'} ··· 1024 lodash.merge@4.6.2: 1025 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1026 1027 loupe@3.2.1: 1028 resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} 1029 1030 magic-string@0.30.19: 1031 resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} 1032 1033 make-synchronized@0.4.2: 1034 resolution: {integrity: sha512-EwEJSg8gSGLicKXp/VzNi1tvzhdmNBxOzslkkJSoNUCQFZKH/NIUIp7xlfN+noaHrz4BJDN73gne8IHnjl/F/A==} 1035 1036 merge2@1.4.1: 1037 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1038 engines: {node: '>= 8'} ··· 1041 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1042 engines: {node: '>=8.6'} 1043 1044 minimatch@3.1.2: 1045 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1046 ··· 1048 resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1049 engines: {node: '>=16 || 14 >=14.17'} 1050 1051 mri@1.2.0: 1052 resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1053 engines: {node: '>=4'} ··· 1063 natural-compare@1.4.0: 1064 resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1065 1066 optionator@0.9.4: 1067 resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1068 engines: {node: '>= 0.8.0'} ··· 1078 parent-module@1.0.1: 1079 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1080 engines: {node: '>=6'} 1081 1082 path-exists@4.0.0: 1083 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} ··· 1123 engines: {node: '>=14'} 1124 hasBin: true 1125 1126 punycode@2.3.1: 1127 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1128 engines: {node: '>=6'} ··· 1133 queue-microtask@1.2.3: 1134 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1135 1136 readable-stream@3.6.2: 1137 resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1138 engines: {node: '>= 6'} ··· 1140 readdirp@4.1.2: 1141 resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1142 engines: {node: '>= 14.18.0'} 1143 1144 require-directory@2.1.1: 1145 resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} ··· 1172 vue-tsc: 1173 optional: true 1174 1175 rolldown@1.0.0-beta.11-commit.f051675: 1176 resolution: {integrity: sha512-g8MCVkvg2GnrrG+j+WplOTx1nAmjSwYOMSOQI0qfxf8D4NmYZqJuG3f85yWK64XXQv6pKcXZsfMkOPs9B6B52A==} 1177 hasBin: true 1178 1179 - rollup@4.52.4: 1180 - resolution: {integrity: sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==} 1181 - engines: {node: '>=18.0.0', npm: '>=8.0.0'} 1182 hasBin: true 1183 1184 run-parallel@1.2.0: 1185 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1186 ··· 1191 safe-buffer@5.2.1: 1192 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1193 1194 semver@7.7.3: 1195 resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1196 engines: {node: '>=10'} ··· 1217 stackback@0.0.2: 1218 resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1219 1220 std-env@3.9.0: 1221 resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} 1222 ··· 1229 1230 strip-ansi@6.0.1: 1231 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1232 engines: {node: '>=8'} 1233 1234 strip-json-comments@3.1.1: ··· 1242 resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1243 engines: {node: '>=8'} 1244 1245 through2@4.0.2: 1246 resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} 1247 ··· 1270 resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} 1271 engines: {node: '>=14.0.0'} 1272 1273 to-regex-range@5.0.1: 1274 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1275 engines: {node: '>=8.0'} 1276 1277 treeify@1.1.0: 1278 resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} 1279 engines: {node: '>=0.6'} ··· 1331 undici-types@7.8.0: 1332 resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} 1333 1334 uri-js@4.4.1: 1335 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1336 ··· 1342 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1343 hasBin: true 1344 1345 - vite@7.1.9: 1346 - resolution: {integrity: sha512-4nVGliEpxmhCL8DslSAUdxlB6+SMrhB0a1v5ijlh1xB1nEPuy1mxaHxysVucLHuWryAxLWg6a5ei+U4TLn/rFg==} 1347 - engines: {node: ^20.19.0 || >=22.12.0} 1348 - hasBin: true 1349 - peerDependencies: 1350 - '@types/node': ^20.19.0 || >=22.12.0 1351 - jiti: '>=1.21.0' 1352 - less: ^4.0.0 1353 - lightningcss: ^1.21.0 1354 - sass: ^1.70.0 1355 - sass-embedded: ^1.70.0 1356 - stylus: '>=0.54.8' 1357 - sugarss: ^5.0.0 1358 - terser: ^5.16.0 1359 - tsx: ^4.8.1 1360 - yaml: ^2.4.2 1361 - peerDependenciesMeta: 1362 - '@types/node': 1363 - optional: true 1364 - jiti: 1365 - optional: true 1366 - less: 1367 - optional: true 1368 - lightningcss: 1369 - optional: true 1370 - sass: 1371 - optional: true 1372 - sass-embedded: 1373 - optional: true 1374 - stylus: 1375 - optional: true 1376 - sugarss: 1377 - optional: true 1378 - terser: 1379 - optional: true 1380 - tsx: 1381 - optional: true 1382 - yaml: 1383 - optional: true 1384 - 1385 vitest@3.2.4: 1386 resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} 1387 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} ··· 1410 jsdom: 1411 optional: true 1412 1413 which@2.0.2: 1414 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1415 engines: {node: '>= 8'} ··· 1428 resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 1429 engines: {node: '>=10'} 1430 1431 y18n@5.0.8: 1432 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 1433 engines: {node: '>=10'} 1434 1435 yargs-parser@20.2.9: 1436 resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 1437 engines: {node: '>=10'} ··· 1445 engines: {node: '>=10'} 1446 1447 snapshots: 1448 1449 '@ark/attest@0.49.0(typescript@5.8.3)': 1450 dependencies: ··· 1467 1468 '@ark/util@0.49.0': {} 1469 1470 '@babel/generator@7.28.3': 1471 dependencies: 1472 '@babel/parser': 7.28.4 ··· 1475 '@jridgewell/trace-mapping': 0.3.31 1476 jsesc: 3.1.0 1477 1478 '@babel/helper-string-parser@7.27.1': {} 1479 1480 '@babel/helper-validator-identifier@7.27.1': {} 1481 1482 '@babel/parser@7.28.4': 1483 dependencies: 1484 '@babel/types': 7.28.4 1485 1486 '@babel/types@7.28.4': 1487 dependencies: 1488 '@babel/helper-string-parser': 7.27.1 1489 '@babel/helper-validator-identifier': 7.27.1 1490 1491 '@emnapi/core@1.5.0': 1492 dependencies: ··· 1646 '@jridgewell/sourcemap-codec': 1.5.5 1647 '@jridgewell/trace-mapping': 0.3.31 1648 1649 '@jridgewell/resolve-uri@3.1.2': {} 1650 1651 '@jridgewell/sourcemap-codec@1.5.5': {} ··· 1655 '@jridgewell/resolve-uri': 3.1.2 1656 '@jridgewell/sourcemap-codec': 1.5.5 1657 1658 '@napi-rs/wasm-runtime@0.2.12': 1659 dependencies: 1660 '@emnapi/core': 1.5.0 ··· 1676 1677 '@oxc-project/runtime@0.72.2': {} 1678 1679 '@oxc-project/types@0.72.2': {} 1680 1681 '@prettier/sync@0.5.5(prettier@3.5.3)': 1682 dependencies: 1683 make-synchronized: 0.4.2 ··· 1690 '@rolldown/binding-darwin-arm64@1.0.0-beta.11-commit.f051675': 1691 optional: true 1692 1693 - '@rolldown/binding-darwin-x64@1.0.0-beta.11-commit.f051675': 1694 optional: true 1695 1696 - '@rolldown/binding-freebsd-x64@1.0.0-beta.11-commit.f051675': 1697 optional: true 1698 1699 - '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.11-commit.f051675': 1700 optional: true 1701 1702 - '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.11-commit.f051675': 1703 optional: true 1704 1705 - '@rolldown/binding-linux-arm64-musl@1.0.0-beta.11-commit.f051675': 1706 optional: true 1707 1708 - '@rolldown/binding-linux-x64-gnu@1.0.0-beta.11-commit.f051675': 1709 optional: true 1710 1711 - '@rolldown/binding-linux-x64-musl@1.0.0-beta.11-commit.f051675': 1712 optional: true 1713 1714 - '@rolldown/binding-wasm32-wasi@1.0.0-beta.11-commit.f051675': 1715 - dependencies: 1716 - '@napi-rs/wasm-runtime': 0.2.12 1717 optional: true 1718 1719 - '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.11-commit.f051675': 1720 optional: true 1721 1722 - '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.11-commit.f051675': 1723 optional: true 1724 1725 - '@rolldown/binding-win32-x64-msvc@1.0.0-beta.11-commit.f051675': 1726 optional: true 1727 1728 - '@rolldown/pluginutils@1.0.0-beta.11-commit.f051675': {} 1729 - 1730 - '@rollup/rollup-android-arm-eabi@4.52.4': 1731 optional: true 1732 1733 - '@rollup/rollup-android-arm64@4.52.4': 1734 optional: true 1735 1736 - '@rollup/rollup-darwin-arm64@4.52.4': 1737 optional: true 1738 1739 - '@rollup/rollup-darwin-x64@4.52.4': 1740 optional: true 1741 1742 - '@rollup/rollup-freebsd-arm64@4.52.4': 1743 optional: true 1744 1745 - '@rollup/rollup-freebsd-x64@4.52.4': 1746 optional: true 1747 1748 - '@rollup/rollup-linux-arm-gnueabihf@4.52.4': 1749 optional: true 1750 1751 - '@rollup/rollup-linux-arm-musleabihf@4.52.4': 1752 optional: true 1753 1754 - '@rollup/rollup-linux-arm64-gnu@4.52.4': 1755 optional: true 1756 1757 - '@rollup/rollup-linux-arm64-musl@4.52.4': 1758 optional: true 1759 1760 - '@rollup/rollup-linux-loong64-gnu@4.52.4': 1761 optional: true 1762 1763 - '@rollup/rollup-linux-ppc64-gnu@4.52.4': 1764 optional: true 1765 1766 - '@rollup/rollup-linux-riscv64-gnu@4.52.4': 1767 - optional: true 1768 1769 - '@rollup/rollup-linux-riscv64-musl@4.52.4': 1770 - optional: true 1771 1772 - '@rollup/rollup-linux-s390x-gnu@4.52.4': 1773 - optional: true 1774 1775 - '@rollup/rollup-linux-x64-gnu@4.52.4': 1776 - optional: true 1777 1778 - '@rollup/rollup-linux-x64-musl@4.52.4': 1779 - optional: true 1780 1781 - '@rollup/rollup-openharmony-arm64@4.52.4': 1782 - optional: true 1783 1784 - '@rollup/rollup-win32-arm64-msvc@4.52.4': 1785 - optional: true 1786 1787 - '@rollup/rollup-win32-ia32-msvc@4.52.4': 1788 optional: true 1789 1790 - '@rollup/rollup-win32-x64-gnu@4.52.4': 1791 - optional: true 1792 1793 - '@rollup/rollup-win32-x64-msvc@4.52.4': 1794 - optional: true 1795 1796 - '@tybys/wasm-util@0.10.1': 1797 dependencies: 1798 - tslib: 2.8.1 1799 - optional: true 1800 1801 '@types/chai@5.2.2': 1802 dependencies: ··· 1811 '@types/node@24.0.4': 1812 dependencies: 1813 undici-types: 7.8.0 1814 1815 '@typescript-eslint/eslint-plugin@8.35.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.8.3)': 1816 dependencies: ··· 1922 transitivePeerDependencies: 1923 - supports-color 1924 1925 '@vitest/expect@3.2.4': 1926 dependencies: 1927 '@types/chai': 5.2.2 ··· 1930 chai: 5.3.3 1931 tinyrainbow: 2.0.0 1932 1933 - '@vitest/mocker@3.2.4(vite@7.1.9(@types/node@24.0.4)(jiti@2.6.1))': 1934 dependencies: 1935 '@vitest/spy': 3.2.4 1936 estree-walker: 3.0.3 1937 magic-string: 0.30.19 1938 optionalDependencies: 1939 - vite: 7.1.9(@types/node@24.0.4)(jiti@2.6.1) 1940 1941 '@vitest/pretty-format@3.2.4': 1942 dependencies: ··· 1970 1971 acorn@8.15.0: {} 1972 1973 ajv@6.12.6: 1974 dependencies: 1975 fast-deep-equal: 3.1.3 ··· 1983 dependencies: 1984 color-convert: 2.0.1 1985 1986 ansis@4.2.0: {} 1987 1988 argparse@2.0.1: {} 1989 1990 arktype@2.1.22: 1991 dependencies: 1992 '@ark/schema': 0.49.0 ··· 1998 dependencies: 1999 '@babel/parser': 7.28.4 2000 pathe: 2.0.3 2001 2002 balanced-match@1.0.2: {} 2003 2004 birpc@2.6.1: {} 2005 2006 brace-expansion@1.1.12: ··· 2016 dependencies: 2017 fill-range: 7.1.1 2018 2019 cac@6.7.14: {} 2020 2021 callsites@3.1.0: {} 2022 2023 chai@5.3.3: 2024 dependencies: 2025 assertion-error: 2.0.1 ··· 2051 2052 color-name@1.1.4: {} 2053 2054 concat-map@0.0.1: {} 2055 2056 cross-spawn@7.0.6: 2057 dependencies: ··· 2059 shebang-command: 2.0.0 2060 which: 2.0.2 2061 2062 debug@4.4.3: 2063 dependencies: 2064 ms: 2.1.3 2065 2066 deep-eql@5.0.2: {} 2067 2068 deep-is@0.1.4: {} 2069 2070 defu@6.1.4: {} 2071 2072 diff@8.0.2: {} 2073 2074 dts-resolver@2.1.2: {} 2075 2076 emoji-regex@8.0.0: {} 2077 2078 empathic@1.1.0: {} 2079 2080 es-module-lexer@1.7.0: {} 2081 2082 esbuild@0.25.10: 2083 optionalDependencies: ··· 2107 '@esbuild/win32-arm64': 0.25.10 2108 '@esbuild/win32-ia32': 0.25.10 2109 '@esbuild/win32-x64': 0.25.10 2110 2111 escalade@3.2.0: {} 2112 ··· 2231 2232 flatted@3.3.3: {} 2233 2234 fsevents@2.3.3: 2235 optional: true 2236 2237 get-caller-file@2.0.5: {} 2238 2239 get-tsconfig@4.12.0: 2240 dependencies: 2241 resolve-pkg-maps: 1.0.0 ··· 2250 2251 globals@14.0.0: {} 2252 2253 graphemer@1.4.0: {} 2254 2255 has-flag@4.0.0: {} 2256 2257 hookable@5.5.3: {} 2258 2259 ignore@5.3.2: {} 2260 2261 ignore@7.0.5: {} ··· 2266 resolve-from: 4.0.0 2267 2268 imurmurhash@0.1.4: {} 2269 2270 inherits@2.0.4: {} 2271 ··· 2279 2280 is-number@7.0.0: {} 2281 2282 isexe@2.0.0: {} 2283 2284 jiti@2.6.1: {} 2285 2286 js-tokens@9.0.1: {} 2287 2288 js-yaml@4.1.0: 2289 dependencies: 2290 argparse: 2.0.1 2291 2292 jsesc@3.1.0: {} 2293 2294 json-buffer@3.0.1: {} ··· 2296 json-schema-traverse@0.4.1: {} 2297 2298 json-stable-stringify-without-jsonify@1.0.1: {} 2299 2300 jsonparse@1.3.1: {} 2301 ··· 2313 prelude-ls: 1.2.1 2314 type-check: 0.4.0 2315 2316 locate-path@6.0.0: 2317 dependencies: 2318 p-locate: 5.0.0 2319 2320 lodash.merge@4.6.2: {} 2321 2322 loupe@3.2.1: {} 2323 2324 magic-string@0.30.19: 2325 dependencies: 2326 '@jridgewell/sourcemap-codec': 1.5.5 2327 2328 make-synchronized@0.4.2: {} 2329 2330 merge2@1.4.1: {} 2331 2332 micromatch@4.0.8: 2333 dependencies: 2334 braces: 3.0.3 2335 picomatch: 2.3.1 2336 2337 minimatch@3.1.2: 2338 dependencies: ··· 2342 dependencies: 2343 brace-expansion: 2.0.2 2344 2345 mri@1.2.0: {} 2346 2347 ms@2.1.3: {} ··· 2349 nanoid@3.3.11: {} 2350 2351 natural-compare@1.4.0: {} 2352 2353 optionator@0.9.4: 2354 dependencies: ··· 2371 dependencies: 2372 callsites: 3.1.0 2373 2374 path-exists@4.0.0: {} 2375 2376 path-key@3.1.1: {} ··· 2397 2398 prettier@3.6.1: {} 2399 2400 punycode@2.3.1: {} 2401 2402 quansync@0.2.11: {} 2403 2404 queue-microtask@1.2.3: {} 2405 2406 readable-stream@3.6.2: 2407 dependencies: 2408 inherits: 2.0.4 ··· 2410 util-deprecate: 1.0.2 2411 2412 readdirp@4.1.2: {} 2413 2414 require-directory@2.1.1: {} 2415 ··· 2436 - oxc-resolver 2437 - supports-color 2438 2439 rolldown@1.0.0-beta.11-commit.f051675: 2440 dependencies: 2441 '@oxc-project/runtime': 0.72.2 ··· 2456 '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.11-commit.f051675 2457 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.11-commit.f051675 2458 2459 - rollup@4.52.4: 2460 dependencies: 2461 - '@types/estree': 1.0.8 2462 optionalDependencies: 2463 - '@rollup/rollup-android-arm-eabi': 4.52.4 2464 - '@rollup/rollup-android-arm64': 4.52.4 2465 - '@rollup/rollup-darwin-arm64': 4.52.4 2466 - '@rollup/rollup-darwin-x64': 4.52.4 2467 - '@rollup/rollup-freebsd-arm64': 4.52.4 2468 - '@rollup/rollup-freebsd-x64': 4.52.4 2469 - '@rollup/rollup-linux-arm-gnueabihf': 4.52.4 2470 - '@rollup/rollup-linux-arm-musleabihf': 4.52.4 2471 - '@rollup/rollup-linux-arm64-gnu': 4.52.4 2472 - '@rollup/rollup-linux-arm64-musl': 4.52.4 2473 - '@rollup/rollup-linux-loong64-gnu': 4.52.4 2474 - '@rollup/rollup-linux-ppc64-gnu': 4.52.4 2475 - '@rollup/rollup-linux-riscv64-gnu': 4.52.4 2476 - '@rollup/rollup-linux-riscv64-musl': 4.52.4 2477 - '@rollup/rollup-linux-s390x-gnu': 4.52.4 2478 - '@rollup/rollup-linux-x64-gnu': 4.52.4 2479 - '@rollup/rollup-linux-x64-musl': 4.52.4 2480 - '@rollup/rollup-openharmony-arm64': 4.52.4 2481 - '@rollup/rollup-win32-arm64-msvc': 4.52.4 2482 - '@rollup/rollup-win32-ia32-msvc': 4.52.4 2483 - '@rollup/rollup-win32-x64-gnu': 4.52.4 2484 - '@rollup/rollup-win32-x64-msvc': 4.52.4 2485 - fsevents: 2.3.3 2486 2487 run-parallel@1.2.0: 2488 dependencies: ··· 2494 2495 safe-buffer@5.2.1: {} 2496 2497 semver@7.7.3: {} 2498 2499 shebang-command@2.0.0: ··· 2512 2513 stackback@0.0.2: {} 2514 2515 std-env@3.9.0: {} 2516 2517 string-width@4.2.3: ··· 2528 dependencies: 2529 ansi-regex: 5.0.1 2530 2531 strip-json-comments@3.1.1: {} 2532 2533 strip-literal@3.1.0: ··· 2538 dependencies: 2539 has-flag: 4.0.0 2540 2541 through2@4.0.2: 2542 dependencies: 2543 readable-stream: 3.6.2 ··· 2559 2560 tinyspy@4.0.4: {} 2561 2562 to-regex-range@5.0.1: 2563 dependencies: 2564 is-number: 7.0.0 2565 2566 treeify@1.1.0: {} 2567 ··· 2620 2621 undici-types@7.8.0: {} 2622 2623 uri-js@4.4.1: 2624 dependencies: 2625 punycode: 2.3.1 2626 2627 util-deprecate@1.0.2: {} 2628 2629 - vite-node@3.2.4(@types/node@24.0.4)(jiti@2.6.1): 2630 dependencies: 2631 cac: 6.7.14 2632 debug: 4.4.3 2633 es-module-lexer: 1.7.0 2634 pathe: 2.0.3 2635 - vite: 7.1.9(@types/node@24.0.4)(jiti@2.6.1) 2636 transitivePeerDependencies: 2637 - '@types/node' 2638 - jiti 2639 - less 2640 - - lightningcss 2641 - sass 2642 - sass-embedded 2643 - stylus ··· 2647 - tsx 2648 - yaml 2649 2650 - vite@7.1.9(@types/node@24.0.4)(jiti@2.6.1): 2651 - dependencies: 2652 - esbuild: 0.25.10 2653 - fdir: 6.5.0(picomatch@4.0.3) 2654 - picomatch: 4.0.3 2655 - postcss: 8.5.6 2656 - rollup: 4.52.4 2657 - tinyglobby: 0.2.15 2658 - optionalDependencies: 2659 - '@types/node': 24.0.4 2660 - fsevents: 2.3.3 2661 - jiti: 2.6.1 2662 - 2663 - vitest@3.2.4(@types/node@24.0.4)(jiti@2.6.1): 2664 dependencies: 2665 '@types/chai': 5.2.2 2666 '@vitest/expect': 3.2.4 2667 - '@vitest/mocker': 3.2.4(vite@7.1.9(@types/node@24.0.4)(jiti@2.6.1)) 2668 '@vitest/pretty-format': 3.2.4 2669 '@vitest/runner': 3.2.4 2670 '@vitest/snapshot': 3.2.4 ··· 2682 tinyglobby: 0.2.15 2683 tinypool: 1.1.1 2684 tinyrainbow: 2.0.0 2685 - vite: 7.1.9(@types/node@24.0.4)(jiti@2.6.1) 2686 - vite-node: 3.2.4(@types/node@24.0.4)(jiti@2.6.1) 2687 why-is-node-running: 2.3.0 2688 optionalDependencies: 2689 '@types/node': 24.0.4 2690 transitivePeerDependencies: 2691 - jiti 2692 - less 2693 - - lightningcss 2694 - msw 2695 - sass 2696 - sass-embedded ··· 2701 - tsx 2702 - yaml 2703 2704 which@2.0.2: 2705 dependencies: 2706 isexe: 2.0.0 ··· 2718 string-width: 4.2.3 2719 strip-ansi: 6.0.1 2720 2721 y18n@5.0.8: {} 2722 2723 yargs-parser@20.2.9: {} 2724
··· 4 autoInstallPeers: true 5 excludeLinksFromLockfile: false 6 7 + overrides: 8 + vite: npm:rolldown-vite@7.0.6 9 + 10 importers: 11 12 .: ··· 47 version: 5.8.3 48 vitest: 49 specifier: ^3.2.4 50 + version: 3.2.4(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1)(jsdom@25.0.1) 51 52 packages/prototypey: 53 devDependencies: ··· 65 version: 5.8.3 66 vitest: 67 specifier: ^3.2.4 68 + version: 3.2.4(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1)(jsdom@25.0.1) 69 + 70 + packages/site: 71 + dependencies: 72 + '@monaco-editor/react': 73 + specifier: ^4.6.0 74 + version: 4.7.0(monaco-editor@0.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 75 + monaco-editor: 76 + specifier: 0.52.0 77 + version: 0.52.0 78 + prototypey: 79 + specifier: workspace:* 80 + version: link:../prototypey 81 + react: 82 + specifier: ^18.3.1 83 + version: 18.3.1 84 + react-dom: 85 + specifier: ^18.3.1 86 + version: 18.3.1(react@18.3.1) 87 + devDependencies: 88 + '@testing-library/jest-dom': 89 + specifier: ^6.9.1 90 + version: 6.9.1 91 + '@testing-library/react': 92 + specifier: ^16.1.0 93 + version: 16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@18.3.1(react@18.3.1))(react@18.3.1) 94 + '@testing-library/user-event': 95 + specifier: ^14.5.2 96 + version: 14.6.1(@testing-library/dom@10.4.1) 97 + '@types/react': 98 + specifier: ^18.3.18 99 + version: 18.3.26 100 + '@types/react-dom': 101 + specifier: ^18.3.5 102 + version: 18.3.7(@types/react@18.3.26) 103 + '@vitejs/plugin-react': 104 + specifier: ^5.0.4 105 + version: 5.0.4(rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1)) 106 + jsdom: 107 + specifier: ^25.0.1 108 + version: 25.0.1 109 + typescript: 110 + specifier: 5.8.3 111 + version: 5.8.3 112 + vite: 113 + specifier: npm:rolldown-vite@7.0.6 114 + version: rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1) 115 + vitest: 116 + specifier: ^3.2.4 117 + version: 3.2.4(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1)(jsdom@25.0.1) 118 119 packages: 120 + 121 + '@adobe/css-tools@4.4.4': 122 + resolution: {integrity: sha512-Elp+iwUx5rN5+Y8xLt5/GRoG20WGoDCQ/1Fb+1LiGtvwbDavuSk0jhD/eZdckHAuzcDzccnkv+rEjyWfRx18gg==} 123 124 '@ark/attest@0.49.0': 125 resolution: {integrity: sha512-LYAJe4iwgA4GY+WLcSZ2ObTgr7F9lSwoQm4hR+B5ko0TfB3gqolXv04hA+7UtoP5HrGR1lVS+0DdwtWNnaSGnQ==} ··· 136 '@ark/util@0.49.0': 137 resolution: {integrity: sha512-/BtnX7oCjNkxi2vi6y1399b+9xd1jnCrDYhZ61f0a+3X8x8DxlK52VgEEzyuC2UQMPACIfYrmHkhD3lGt2GaMA==} 138 139 + '@asamuzakjp/css-color@3.2.0': 140 + resolution: {integrity: sha512-K1A6z8tS3XsmCMM86xoWdn7Fkdn9m6RSVtocUrJYIwZnFVkng/PvkEoWtOWmP+Scc6saYWHWZYbndEEXxl24jw==} 141 + 142 + '@babel/code-frame@7.27.1': 143 + resolution: {integrity: sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==} 144 + engines: {node: '>=6.9.0'} 145 + 146 + '@babel/compat-data@7.28.4': 147 + resolution: {integrity: sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==} 148 + engines: {node: '>=6.9.0'} 149 + 150 + '@babel/core@7.28.4': 151 + resolution: {integrity: sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==} 152 + engines: {node: '>=6.9.0'} 153 + 154 '@babel/generator@7.28.3': 155 resolution: {integrity: sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==} 156 engines: {node: '>=6.9.0'} 157 158 + '@babel/helper-compilation-targets@7.27.2': 159 + resolution: {integrity: sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==} 160 + engines: {node: '>=6.9.0'} 161 + 162 + '@babel/helper-globals@7.28.0': 163 + resolution: {integrity: sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==} 164 + engines: {node: '>=6.9.0'} 165 + 166 + '@babel/helper-module-imports@7.27.1': 167 + resolution: {integrity: sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==} 168 + engines: {node: '>=6.9.0'} 169 + 170 + '@babel/helper-module-transforms@7.28.3': 171 + resolution: {integrity: sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==} 172 + engines: {node: '>=6.9.0'} 173 + peerDependencies: 174 + '@babel/core': ^7.0.0 175 + 176 + '@babel/helper-plugin-utils@7.27.1': 177 + resolution: {integrity: sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==} 178 + engines: {node: '>=6.9.0'} 179 + 180 '@babel/helper-string-parser@7.27.1': 181 resolution: {integrity: sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==} 182 engines: {node: '>=6.9.0'} ··· 185 resolution: {integrity: sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==} 186 engines: {node: '>=6.9.0'} 187 188 + '@babel/helper-validator-option@7.27.1': 189 + resolution: {integrity: sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==} 190 + engines: {node: '>=6.9.0'} 191 + 192 + '@babel/helpers@7.28.4': 193 + resolution: {integrity: sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==} 194 + engines: {node: '>=6.9.0'} 195 + 196 '@babel/parser@7.28.4': 197 resolution: {integrity: sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==} 198 engines: {node: '>=6.0.0'} 199 hasBin: true 200 201 + '@babel/plugin-transform-react-jsx-self@7.27.1': 202 + resolution: {integrity: sha512-6UzkCs+ejGdZ5mFFC/OCUrv028ab2fp1znZmCZjAOBKiBK2jXD1O+BPSfX8X2qjJ75fZBMSnQn3Rq2mrBJK2mw==} 203 + engines: {node: '>=6.9.0'} 204 + peerDependencies: 205 + '@babel/core': ^7.0.0-0 206 + 207 + '@babel/plugin-transform-react-jsx-source@7.27.1': 208 + resolution: {integrity: sha512-zbwoTsBruTeKB9hSq73ha66iFeJHuaFkUbwvqElnygoNbj/jHRsSeokowZFN3CZ64IvEqcmmkVe89OPXc7ldAw==} 209 + engines: {node: '>=6.9.0'} 210 + peerDependencies: 211 + '@babel/core': ^7.0.0-0 212 + 213 + '@babel/runtime@7.28.4': 214 + resolution: {integrity: sha512-Q/N6JNWvIvPnLDvjlE1OUBLPQHH6l3CltCEsHIujp45zQUSSh8K+gHnaEX45yAT1nyngnINhvWtzN+Nb9D8RAQ==} 215 + engines: {node: '>=6.9.0'} 216 + 217 + '@babel/template@7.27.2': 218 + resolution: {integrity: sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==} 219 + engines: {node: '>=6.9.0'} 220 + 221 + '@babel/traverse@7.28.4': 222 + resolution: {integrity: sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==} 223 + engines: {node: '>=6.9.0'} 224 + 225 '@babel/types@7.28.4': 226 resolution: {integrity: sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==} 227 engines: {node: '>=6.9.0'} 228 + 229 + '@csstools/color-helpers@5.1.0': 230 + resolution: {integrity: sha512-S11EXWJyy0Mz5SYvRmY8nJYTFFd1LCNV+7cXyAgQtOOuzb4EsgfqDufL+9esx72/eLhsRdGZwaldu/h+E4t4BA==} 231 + engines: {node: '>=18'} 232 + 233 + '@csstools/css-calc@2.1.4': 234 + resolution: {integrity: sha512-3N8oaj+0juUw/1H3YwmDDJXCgTB1gKU6Hc/bB502u9zR0q2vd786XJH9QfrKIEgFlZmhZiq6epXl4rHqhzsIgQ==} 235 + engines: {node: '>=18'} 236 + peerDependencies: 237 + '@csstools/css-parser-algorithms': ^3.0.5 238 + '@csstools/css-tokenizer': ^3.0.4 239 + 240 + '@csstools/css-color-parser@3.1.0': 241 + resolution: {integrity: sha512-nbtKwh3a6xNVIp/VRuXV64yTKnb1IjTAEEh3irzS+HkKjAOYLTGNb9pmVNntZ8iVBHcWDA2Dof0QtPgFI1BaTA==} 242 + engines: {node: '>=18'} 243 + peerDependencies: 244 + '@csstools/css-parser-algorithms': ^3.0.5 245 + '@csstools/css-tokenizer': ^3.0.4 246 + 247 + '@csstools/css-parser-algorithms@3.0.5': 248 + resolution: {integrity: sha512-DaDeUkXZKjdGhgYaHNJTV9pV7Y9B3b644jCLs9Upc3VeNGg6LWARAT6O+Q+/COo+2gg/bM5rhpMAtf70WqfBdQ==} 249 + engines: {node: '>=18'} 250 + peerDependencies: 251 + '@csstools/css-tokenizer': ^3.0.4 252 + 253 + '@csstools/css-tokenizer@3.0.4': 254 + resolution: {integrity: sha512-Vd/9EVDiu6PPJt9yAh6roZP6El1xHrdvIVGjyBsHR0RYwNHgL7FJPyIIW4fANJNG6FtyZfvlRPpFI4ZM/lubvw==} 255 + engines: {node: '>=18'} 256 257 '@emnapi/core@1.5.0': 258 resolution: {integrity: sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==} ··· 480 '@jridgewell/gen-mapping@0.3.13': 481 resolution: {integrity: sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==} 482 483 + '@jridgewell/remapping@2.3.5': 484 + resolution: {integrity: sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==} 485 + 486 '@jridgewell/resolve-uri@3.1.2': 487 resolution: {integrity: sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==} 488 engines: {node: '>=6.0.0'} ··· 492 493 '@jridgewell/trace-mapping@0.3.31': 494 resolution: {integrity: sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==} 495 + 496 + '@monaco-editor/loader@1.6.1': 497 + resolution: {integrity: sha512-w3tEnj9HYEC73wtjdpR089AqkUPskFRcdkxsiSFt3SoUc3OHpmu+leP94CXBm4mHfefmhsdfI0ZQu6qJ0wgtPg==} 498 + 499 + '@monaco-editor/react@4.7.0': 500 + resolution: {integrity: sha512-cyzXQCtO47ydzxpQtCGSQGOC8Gk3ZUeBXFAxD+CWXYFo5OqZyZUonFl0DwUlTyAfRHntBfw2p3w4s9R6oe1eCA==} 501 + peerDependencies: 502 + monaco-editor: '>= 0.25.0 < 1' 503 + react: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 504 + react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 || ^19.0.0 505 506 '@napi-rs/wasm-runtime@0.2.12': 507 resolution: {integrity: sha512-ZVWUcfwY4E/yPitQJl481FjFo3K22D6qF0DuFH6Y/nbnE11GY5uguDxZMGXPQ8WQ0128MXQD7TnfHyK4oWoIJQ==} ··· 522 resolution: {integrity: sha512-J2lsPDen2mFs3cOA1gIBd0wsHEhum2vTnuKIRwmj3HJJcIz/XgeNdzvgSOioIXOJgURIpcDaK05jwaDG1rhDwg==} 523 engines: {node: '>=6.9.0'} 524 525 + '@oxc-project/runtime@0.75.0': 526 + resolution: {integrity: sha512-gzRmVI/vorsPmbDXt7GD4Uh2lD3rCOku/1xWPB4Yx48k0EP4TZmzQudWapjN4+7Vv+rgXr0RqCHQadeaMvdBuw==} 527 + engines: {node: '>=6.9.0'} 528 + 529 + '@oxc-project/runtime@0.75.1': 530 + resolution: {integrity: sha512-UH07DRi7xXqAsJ/sFbJJg0liIXnapB6P5uADXIiF1s6WQjZzcTIkKHca0s522QVxmijPxVX5ijCYxSr7eSq5CQ==} 531 + engines: {node: '>=6.9.0'} 532 + 533 '@oxc-project/types@0.72.2': 534 resolution: {integrity: sha512-il5RF8AP85XC0CMjHF4cnVT9nT/v/ocm6qlZQpSiAR9qBbQMGkFKloBZwm7PcnOdiUX97yHgsKM7uDCCWCu3tg==} 535 + 536 + '@oxc-project/types@0.75.1': 537 + resolution: {integrity: sha512-7ZJy+51qWpZRvynaQUezeYfjCtaSdiXIWFUZIlOuTSfDXpXqnSl/m1IUPLx6XrOy6s0SFv3CLE14vcZy63bz7g==} 538 539 '@prettier/sync@0.5.5': 540 resolution: {integrity: sha512-6BMtNr7aQhyNcGzmumkL0tgr1YQGfm9d7ZdmRpWqWuqpc9vZBind4xMe5NMiRECOhjuSiWHfBWLBnXkpeE90bw==} ··· 549 cpu: [arm64] 550 os: [darwin] 551 552 + '@rolldown/binding-darwin-arm64@1.0.0-beta.24': 553 + resolution: {integrity: sha512-gE4HGjIioZaMGZupq2zQQdqhlRV2b2qnjFHHkJEW50zVDmiVNWwdHjwvZDPx9JfW5y4GuHgp/zKDLZZbJlQ1/Q==} 554 + cpu: [arm64] 555 + os: [darwin] 556 + 557 '@rolldown/binding-darwin-x64@1.0.0-beta.11-commit.f051675': 558 resolution: {integrity: sha512-Bnst+HBwhW2YrNybEiNf9TJkI1myDgXmiPBVIOS0apzrLCmByzei6PilTClOpTpNFYB+UviL3Ox2gKUmcgUjGw==} 559 cpu: [x64] 560 os: [darwin] 561 562 + '@rolldown/binding-darwin-x64@1.0.0-beta.24': 563 + resolution: {integrity: sha512-h2HfOtqmjIHIz9WdpKAJ8sBfLNGkrMlwrCfNV2MDDGu0x3YdYBYPE+ozS5PvE53Tp8y6EYn2/thNWJTGWy/N3Q==} 564 + cpu: [x64] 565 + os: [darwin] 566 + 567 '@rolldown/binding-freebsd-x64@1.0.0-beta.11-commit.f051675': 568 resolution: {integrity: sha512-3jAxVmYDPc8vMZZOfZI1aokGB9cP6VNeU9XNCx0UJ6ShlSPK3qkAa0sWgueMhaQkgBVf8MOfGpjo47ohGd7QrA==} 569 cpu: [x64] 570 os: [freebsd] 571 572 + '@rolldown/binding-freebsd-x64@1.0.0-beta.24': 573 + resolution: {integrity: sha512-lx3Q2TU2bbY4yDCZ6e+Wiom3VMLFlZmQswx/1CyjFd+Vv3Q+99SZm6CSfNAIZBaWD246yQRRr1Vx+iIoWCdYzQ==} 574 + cpu: [x64] 575 + os: [freebsd] 576 + 577 '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.11-commit.f051675': 578 resolution: {integrity: sha512-TpUltUdvcsAf2WvXXD8AVc3BozvhgazJ2gJLXp4DVV2V82m26QelI373Bzx8d/4hB167EEIg4wWW/7GXB/ltoQ==} 579 cpu: [arm] 580 os: [linux] 581 582 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.24': 583 + resolution: {integrity: sha512-PLtsV6uf3uS1/cNF8Wu/kitTpXT2YpOZbN6VJm7oMi5A8o5oO0vh8STCB71O5k2kwQMVycsmxHWFk2ZyEa6aMw==} 584 + cpu: [arm] 585 + os: [linux] 586 + 587 '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.11-commit.f051675': 588 resolution: {integrity: sha512-eGvHnYQSdbdhsTdjdp/+83LrN81/7X9HD6y3jg7mEmdsicxEMEIt6CsP7tvYS/jn4489jgO/6mLxW/7Vg+B8pw==} 589 + cpu: [arm64] 590 + os: [linux] 591 + 592 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.24': 593 + resolution: {integrity: sha512-UxGukDkWnv7uS5R+BPVeJ4FSuwA+lgC62LRsyPPSJhJhKMNGZ2W9sQPIpEtBRlww8t0qR6QBsiD5TGLW98ktGw==} 594 cpu: [arm64] 595 os: [linux] 596 ··· 599 cpu: [arm64] 600 os: [linux] 601 602 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.24': 603 + resolution: {integrity: sha512-vB99yGYW9FOQe4lk3MNKa13+vRj+7waZFlRE3Ba/IpEy7RFxZ78ASkPLXkz4+kYYbUvMnRaOfk9RKX2fqYZRUg==} 604 + cpu: [arm64] 605 + os: [linux] 606 + 607 '@rolldown/binding-linux-x64-gnu@1.0.0-beta.11-commit.f051675': 608 resolution: {integrity: sha512-9vXnu27r4zgS/BHP6RCLBOrJoV2xxtLYHT68IVpSOdCkBHGpf1oOJt6blv1y5NRRJBEfAFCvj5NmwSMhETF96w==} 609 cpu: [x64] 610 os: [linux] 611 612 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.24': 613 + resolution: {integrity: sha512-fAMZBWutuKWHsyvHVsKjFYRXVgTbzBfNmomzPPpog8UtdkHk5Vnb0qVEeZP4hR4TsXnKfzD2EQ98NRqFej5QYA==} 614 + cpu: [x64] 615 + os: [linux] 616 + 617 '@rolldown/binding-linux-x64-musl@1.0.0-beta.11-commit.f051675': 618 resolution: {integrity: sha512-e6tvsZbtHt4kzl82oCajOUxwIN8uMfjhuQ0qxIVRzPekRRjKEzyH9agYPW6toN0cnHpkhPsu51tyZKJOdUl7jg==} 619 cpu: [x64] 620 os: [linux] 621 622 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.24': 623 + resolution: {integrity: sha512-0UY/Qo8fAlpolcWOg2ZU7SCUrsCJWifdRMliV9GXlZaBKbMoVNFw0pHGDm9cj/3TWhJu/iB0peZK00dm22LlNw==} 624 + cpu: [x64] 625 + os: [linux] 626 + 627 '@rolldown/binding-wasm32-wasi@1.0.0-beta.11-commit.f051675': 628 resolution: {integrity: sha512-nBQVizPoUQiViANhWrOyihXNf2booP2iq3S396bI1tmHftdgUXWKa6yAoleJBgP0oF0idXpTPU82ciaROUcjpg==} 629 + engines: {node: '>=14.21.3'} 630 + cpu: [wasm32] 631 + 632 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.24': 633 + resolution: {integrity: sha512-7ubbtKCo6FBuAM4q6LoT5dOea7f/zj9OYXgumbwSmA0fw18mN5h8SrFTUjl7h9MpPkOyhi2uY6ss4pb39KXkcw==} 634 engines: {node: '>=14.21.3'} 635 cpu: [wasm32] 636 ··· 639 cpu: [arm64] 640 os: [win32] 641 642 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.24': 643 + resolution: {integrity: sha512-S5WKIabtRBJyzu31KnJRlbZRR6FMrTMzYRrNTnIY2hWWXfpcB1PNuHqbo+98ODLpH8knul4Vyf5sCL61okLTjA==} 644 + cpu: [arm64] 645 + os: [win32] 646 + 647 '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.11-commit.f051675': 648 resolution: {integrity: sha512-LtuMKJe6iFH4iV55dy+gDwZ9v23Tfxx5cd7ZAxvhYFGoVNSvarxAgl844BvFGReERCnLTGRvo85FUR6fDHQX+A==} 649 cpu: [ia32] 650 os: [win32] 651 652 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.24': 653 + resolution: {integrity: sha512-5EW8mzHoukz3zBn/VAaTapK+i+/ZFbSSP9meDmLSuGnk6La8uLAPc7E+6S3gbJnQ6k8lSC6ipIIeXC4SPdttKQ==} 654 + cpu: [ia32] 655 + os: [win32] 656 + 657 '@rolldown/binding-win32-x64-msvc@1.0.0-beta.11-commit.f051675': 658 resolution: {integrity: sha512-YY8UYfBm4dbWa4psgEPPD9T9X0nAvlYu0BOsQC5vDfCwzzU7IHT4jAfetvlQq+4+M6qWHSTr6v+/WX5EmlM1WA==} 659 cpu: [x64] 660 os: [win32] 661 662 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.24': 663 + resolution: {integrity: sha512-KpurHt8+B0yTg9gHroC3H/Tf2c9VfjIBsC/wVHTf7GGAe+xkw1+5iYB3Y5iSy3OaMTGq1U3/YEvTqqBdSbDMUg==} 664 + cpu: [x64] 665 + os: [win32] 666 + 667 '@rolldown/pluginutils@1.0.0-beta.11-commit.f051675': 668 resolution: {integrity: sha512-TAqMYehvpauLKz7v4TZOTUQNjxa5bUQWw2+51/+Zk3ItclBxgoSWhnZ31sXjdoX6le6OXdK2vZfV3KoyW/O/GA==} 669 670 + '@rolldown/pluginutils@1.0.0-beta.24': 671 + resolution: {integrity: sha512-NMiim/enJlffMP16IanVj1ajFNEg8SaMEYyxyYfJoEyt5EiFT3HUH/T2GRdeStNWp+/kg5U8DiJqnQBgLQ8uCw==} 672 673 + '@rolldown/pluginutils@1.0.0-beta.38': 674 + resolution: {integrity: sha512-N/ICGKleNhA5nc9XXQG/kkKHJ7S55u0x0XUJbbkmdCnFuoRkM1Il12q9q0eX19+M7KKUEPw/daUPIRnxhcxAIw==} 675 676 + '@testing-library/dom@10.4.1': 677 + resolution: {integrity: sha512-o4PXJQidqJl82ckFaXUeoAW+XysPLauYI43Abki5hABd853iMhitooc6znOnczgbTYmEP6U6/y1ZyKAIsvMKGg==} 678 + engines: {node: '>=18'} 679 680 + '@testing-library/jest-dom@6.9.1': 681 + resolution: {integrity: sha512-zIcONa+hVtVSSep9UT3jZ5rizo2BsxgyDYU7WFD5eICBE7no3881HGeb/QkGfsJs6JTkY1aQhT7rIPC7e+0nnA==} 682 + engines: {node: '>=14', npm: '>=6', yarn: '>=1'} 683 684 + '@testing-library/react@16.3.0': 685 + resolution: {integrity: sha512-kFSyxiEDwv1WLl2fgsq6pPBbw5aWKrsY2/noi1Id0TK0UParSF62oFQFGHXIyaG4pp2tEub/Zlel+fjjZILDsw==} 686 + engines: {node: '>=18'} 687 + peerDependencies: 688 + '@testing-library/dom': ^10.0.0 689 + '@types/react': ^18.0.0 || ^19.0.0 690 + '@types/react-dom': ^18.0.0 || ^19.0.0 691 + react: ^18.0.0 || ^19.0.0 692 + react-dom: ^18.0.0 || ^19.0.0 693 + peerDependenciesMeta: 694 + '@types/react': 695 + optional: true 696 + '@types/react-dom': 697 + optional: true 698 699 + '@testing-library/user-event@14.6.1': 700 + resolution: {integrity: sha512-vq7fv0rnt+QTXgPxr5Hjc210p6YKq2kmdziLgnsZGgLJ9e6VAShx1pACLuRjd/AS/sr7phAR58OIIpf0LlmQNw==} 701 + engines: {node: '>=12', npm: '>=6'} 702 + peerDependencies: 703 + '@testing-library/dom': '>=7.21.4' 704 705 + '@tybys/wasm-util@0.10.1': 706 + resolution: {integrity: sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==} 707 708 + '@types/aria-query@5.0.4': 709 + resolution: {integrity: sha512-rfT93uj5s0PRL7EzccGMs3brplhcrghnDoV26NqKhCAS1hVo+WdNsPvE/yb6ilfr5hi2MEk6d5EWJTKdxg8jVw==} 710 711 + '@types/babel__core@7.20.5': 712 + resolution: {integrity: sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==} 713 714 + '@types/babel__generator@7.27.0': 715 + resolution: {integrity: sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==} 716 717 + '@types/babel__template@7.4.4': 718 + resolution: {integrity: sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==} 719 720 + '@types/babel__traverse@7.28.0': 721 + resolution: {integrity: sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==} 722 723 '@types/chai@5.2.2': 724 resolution: {integrity: sha512-8kB30R7Hwqf40JPiKhVzodJs2Qc1ZJ5zuT3uzw5Hq/dhNCl3G3l83jfpdI1e20BP348+fV7VIL/+FxaXkqBmWg==} ··· 735 '@types/node@24.0.4': 736 resolution: {integrity: sha512-ulyqAkrhnuNq9pB76DRBTkcS6YsmDALy6Ua63V8OhrOBgbcYt6IOdzpw5P1+dyRIyMerzLkeYWBeOXPpA9GMAA==} 737 738 + '@types/prop-types@15.7.15': 739 + resolution: {integrity: sha512-F6bEyamV9jKGAFBEmlQnesRPGOQqS2+Uwi0Em15xenOxHaf2hv6L8YCVn3rPdPJOiJfPiCnLIRyvwVaqMY3MIw==} 740 + 741 + '@types/react-dom@18.3.7': 742 + resolution: {integrity: sha512-MEe3UeoENYVFXzoXEWsvcpg6ZvlrFNlOQ7EOsvhI3CfAXwzPfO8Qwuxd40nepsYKqyyVQnTdEfv68q91yLcKrQ==} 743 + peerDependencies: 744 + '@types/react': ^18.0.0 745 + 746 + '@types/react@18.3.26': 747 + resolution: {integrity: sha512-RFA/bURkcKzx/X9oumPG9Vp3D3JUgus/d0b67KB0t5S/raciymilkOa66olh78MUI92QLbEJevO7rvqU/kjwKA==} 748 + 749 '@typescript-eslint/eslint-plugin@8.35.0': 750 resolution: {integrity: sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg==} 751 engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} ··· 814 peerDependencies: 815 typescript: '*' 816 817 + '@vitejs/plugin-react@5.0.4': 818 + resolution: {integrity: sha512-La0KD0vGkVkSk6K+piWDKRUyg8Rl5iAIKRMH0vMJI0Eg47bq1eOxmoObAaQG37WMW9MSyk7Cs8EIWwJC1PtzKA==} 819 + engines: {node: ^20.19.0 || >=22.12.0} 820 + peerDependencies: 821 + vite: ^4.2.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 822 + 823 '@vitest/expect@3.2.4': 824 resolution: {integrity: sha512-Io0yyORnB6sikFlt8QW5K7slY4OjqNX9jmJQ02QDda8lyM6B5oNgVWoSoKPac8/kgnCUzuHQKrSLtu/uOqqrig==} 825 ··· 859 engines: {node: '>=0.4.0'} 860 hasBin: true 861 862 + agent-base@7.1.4: 863 + resolution: {integrity: sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==} 864 + engines: {node: '>= 14'} 865 + 866 ajv@6.12.6: 867 resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} 868 ··· 874 resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} 875 engines: {node: '>=8'} 876 877 + ansi-styles@5.2.0: 878 + resolution: {integrity: sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==} 879 + engines: {node: '>=10'} 880 + 881 ansis@4.2.0: 882 resolution: {integrity: sha512-HqZ5rWlFjGiV0tDm3UxxgNRqsOTniqoKZu0pIAfh7TZQMGuZK+hH0drySty0si0QXj1ieop4+SkSfPZBPPkHig==} 883 engines: {node: '>=14'} 884 885 argparse@2.0.1: 886 resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} 887 + 888 + aria-query@5.3.0: 889 + resolution: {integrity: sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==} 890 891 arktype@2.1.22: 892 resolution: {integrity: sha512-xdzl6WcAhrdahvRRnXaNwsipCgHuNoLobRqhiP8RjnfL9Gp947abGlo68GAIyLtxbD+MLzNyH2YR4kEqioMmYQ==} ··· 899 resolution: {integrity: sha512-TH+b3Lv6pUjy/Nu0m6A2JULtdzLpmqF9x1Dhj00ZoEiML8qvVA9j1flkzTKNYgdEhWrjDwtWNpyyCUbfQe514g==} 900 engines: {node: '>=20.19.0'} 901 902 + asynckit@0.4.0: 903 + resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} 904 + 905 balanced-match@1.0.2: 906 resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} 907 + 908 + baseline-browser-mapping@2.8.18: 909 + resolution: {integrity: sha512-UYmTpOBwgPScZpS4A+YbapwWuBwasxvO/2IOHArSsAhL/+ZdmATBXTex3t+l2hXwLVYK382ibr/nKoY9GKe86w==} 910 + hasBin: true 911 912 birpc@2.6.1: 913 resolution: {integrity: sha512-LPnFhlDpdSH6FJhJyn4M0kFO7vtQ5iPw24FnG0y21q09xC7e8+1LeR31S1MAIrDAHp4m7aas4bEkTDTvMAtebQ==} ··· 922 resolution: {integrity: sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==} 923 engines: {node: '>=8'} 924 925 + browserslist@4.26.3: 926 + resolution: {integrity: sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==} 927 + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} 928 + hasBin: true 929 + 930 cac@6.7.14: 931 resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} 932 engines: {node: '>=8'} 933 934 + call-bind-apply-helpers@1.0.2: 935 + resolution: {integrity: sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==} 936 + engines: {node: '>= 0.4'} 937 + 938 callsites@3.1.0: 939 resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} 940 engines: {node: '>=6'} 941 + 942 + caniuse-lite@1.0.30001751: 943 + resolution: {integrity: sha512-A0QJhug0Ly64Ii3eIqHu5X51ebln3k4yTUkY1j8drqpWHVreg/VLijN48cZ1bYPiqOQuqpkIKnzr/Ul8V+p6Cw==} 944 945 chai@5.3.3: 946 resolution: {integrity: sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==} ··· 968 color-name@1.1.4: 969 resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} 970 971 + combined-stream@1.0.8: 972 + resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} 973 + engines: {node: '>= 0.8'} 974 + 975 concat-map@0.0.1: 976 resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} 977 + 978 + convert-source-map@2.0.0: 979 + resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} 980 981 cross-spawn@7.0.6: 982 resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} 983 engines: {node: '>= 8'} 984 985 + css.escape@1.5.1: 986 + resolution: {integrity: sha512-YUifsXXuknHlUsmlgyY0PKzgPOr7/FjCePfHNt0jxm83wHZi44VDMQ7/fGNkjY3/jV1MC+1CmZbaHzugyeRtpg==} 987 + 988 + cssstyle@4.6.0: 989 + resolution: {integrity: sha512-2z+rWdzbbSZv6/rhtvzvqeZQHrBaqgogqt85sqFNbabZOuFbCVFb8kPeEtZjiKkbrm395irpNKiYeFeLiQnFPg==} 990 + engines: {node: '>=18'} 991 + 992 + csstype@3.1.3: 993 + resolution: {integrity: sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==} 994 + 995 + data-urls@5.0.0: 996 + resolution: {integrity: sha512-ZYP5VBHshaDAiVZxjbRVcFJpc+4xGgT0bK3vzy1HLN8jTO975HEbuYzZJcHoQEY5K1a0z8YayJkyVETa08eNTg==} 997 + engines: {node: '>=18'} 998 + 999 debug@4.4.3: 1000 resolution: {integrity: sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==} 1001 engines: {node: '>=6.0'} ··· 1004 peerDependenciesMeta: 1005 supports-color: 1006 optional: true 1007 + 1008 + decimal.js@10.6.0: 1009 + resolution: {integrity: sha512-YpgQiITW3JXGntzdUmyUR1V812Hn8T1YVXhCu+wO3OpS4eU9l4YdD3qjyiKdV6mvV29zapkMeD390UVEf2lkUg==} 1010 1011 deep-eql@5.0.2: 1012 resolution: {integrity: sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==} ··· 1018 defu@6.1.4: 1019 resolution: {integrity: sha512-mEQCMmwJu317oSz8CwdIOdwf3xMif1ttiM8LTufzc3g6kR+9Pe236twL8j3IYT1F7GfRgGcW6MWxzZjLIkuHIg==} 1020 1021 + delayed-stream@1.0.0: 1022 + resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==} 1023 + engines: {node: '>=0.4.0'} 1024 + 1025 + dequal@2.0.3: 1026 + resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==} 1027 + engines: {node: '>=6'} 1028 + 1029 + detect-libc@2.1.2: 1030 + resolution: {integrity: sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==} 1031 + engines: {node: '>=8'} 1032 + 1033 diff@8.0.2: 1034 resolution: {integrity: sha512-sSuxWU5j5SR9QQji/o2qMvqRNYRDOcBTgsJ/DeCf4iSN4gW+gNMXM7wFIP+fdXZxoNiAnHUTGjCr+TSWXdRDKg==} 1035 engines: {node: '>=0.3.1'} 1036 + 1037 + dom-accessibility-api@0.5.16: 1038 + resolution: {integrity: sha512-X7BJ2yElsnOJ30pZF4uIIDfBEVgF4XEBxL9Bxhy6dnrm5hkzqmsWHGTiHqRiITNhMyFLyAiWndIJP7Z1NTteDg==} 1039 + 1040 + dom-accessibility-api@0.6.3: 1041 + resolution: {integrity: sha512-7ZgogeTnjuHbo+ct10G9Ffp0mif17idi0IyWNVA/wcwcm7NPOD/WEHVP3n7n3MhXqxoIYm8d6MuZohYWIZ4T3w==} 1042 1043 dts-resolver@2.1.2: 1044 resolution: {integrity: sha512-xeXHBQkn2ISSXxbJWD828PFjtyg+/UrMDo7W4Ffcs7+YWCquxU8YjV1KoxuiL+eJ5pg3ll+bC6flVv61L3LKZg==} ··· 1049 oxc-resolver: 1050 optional: true 1051 1052 + dunder-proto@1.0.1: 1053 + resolution: {integrity: sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==} 1054 + engines: {node: '>= 0.4'} 1055 + 1056 + electron-to-chromium@1.5.237: 1057 + resolution: {integrity: sha512-icUt1NvfhGLar5lSWH3tHNzablaA5js3HVHacQimfP8ViEBOQv+L7DKEuHdbTZ0SKCO1ogTJTIL1Gwk9S6Qvcg==} 1058 + 1059 emoji-regex@8.0.0: 1060 resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} 1061 ··· 1063 resolution: {integrity: sha512-rsPft6CK3eHtrlp9Y5ALBb+hfK+DWnA4WFebbazxjWyx8vSm3rZeoM3z9irsjcqO3PYRzlfv27XIB4tz2DV7RA==} 1064 engines: {node: '>=14'} 1065 1066 + entities@6.0.1: 1067 + resolution: {integrity: sha512-aN97NXWF6AWBTahfVOIrB/NShkzi5H7F9r1s9mD3cDj4Ko5f2qhhVoYMibXF7GlLveb/D2ioWay8lxI97Ven3g==} 1068 + engines: {node: '>=0.12'} 1069 + 1070 + es-define-property@1.0.1: 1071 + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} 1072 + engines: {node: '>= 0.4'} 1073 + 1074 + es-errors@1.3.0: 1075 + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} 1076 + engines: {node: '>= 0.4'} 1077 + 1078 es-module-lexer@1.7.0: 1079 resolution: {integrity: sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==} 1080 + 1081 + es-object-atoms@1.1.1: 1082 + resolution: {integrity: sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==} 1083 + engines: {node: '>= 0.4'} 1084 + 1085 + es-set-tostringtag@2.1.0: 1086 + resolution: {integrity: sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==} 1087 + engines: {node: '>= 0.4'} 1088 1089 esbuild@0.25.10: 1090 resolution: {integrity: sha512-9RiGKvCwaqxO2owP61uQ4BgNborAQskMR6QusfWzQqv7AZOg5oGehdY2pRJMTKuwxd1IDBP4rSbI5lHzU7SMsQ==} ··· 1196 flatted@3.3.3: 1197 resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} 1198 1199 + form-data@4.0.4: 1200 + resolution: {integrity: sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==} 1201 + engines: {node: '>= 6'} 1202 + 1203 fsevents@2.3.3: 1204 resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} 1205 engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} 1206 os: [darwin] 1207 1208 + function-bind@1.1.2: 1209 + resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} 1210 + 1211 + gensync@1.0.0-beta.2: 1212 + resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} 1213 + engines: {node: '>=6.9.0'} 1214 + 1215 get-caller-file@2.0.5: 1216 resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} 1217 engines: {node: 6.* || 8.* || >= 10.*} 1218 1219 + get-intrinsic@1.3.0: 1220 + resolution: {integrity: sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==} 1221 + engines: {node: '>= 0.4'} 1222 + 1223 + get-proto@1.0.1: 1224 + resolution: {integrity: sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==} 1225 + engines: {node: '>= 0.4'} 1226 + 1227 get-tsconfig@4.12.0: 1228 resolution: {integrity: sha512-LScr2aNr2FbjAjZh2C6X6BxRx1/x+aTDExct/xyq2XKbYOiG5c0aK7pMsSuyc0brz3ibr/lbQiHD9jzt4lccJw==} 1229 ··· 1239 resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} 1240 engines: {node: '>=18'} 1241 1242 + gopd@1.2.0: 1243 + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} 1244 + engines: {node: '>= 0.4'} 1245 + 1246 graphemer@1.4.0: 1247 resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} 1248 ··· 1250 resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} 1251 engines: {node: '>=8'} 1252 1253 + has-symbols@1.1.0: 1254 + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} 1255 + engines: {node: '>= 0.4'} 1256 + 1257 + has-tostringtag@1.0.2: 1258 + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} 1259 + engines: {node: '>= 0.4'} 1260 + 1261 + hasown@2.0.2: 1262 + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} 1263 + engines: {node: '>= 0.4'} 1264 + 1265 hookable@5.5.3: 1266 resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==} 1267 1268 + html-encoding-sniffer@4.0.0: 1269 + resolution: {integrity: sha512-Y22oTqIU4uuPgEemfz7NDJz6OeKf12Lsu+QC+s3BVpda64lTiMYCyGwg5ki4vFxkMwQdeZDl2adZoqUgdFuTgQ==} 1270 + engines: {node: '>=18'} 1271 + 1272 + http-proxy-agent@7.0.2: 1273 + resolution: {integrity: sha512-T1gkAiYYDWYx3V5Bmyu7HcfcvL7mUrTWiM6yOfa3PIphViJ/gFPbvidQ+veqSOHci/PxBcDabeUNCzpOODJZig==} 1274 + engines: {node: '>= 14'} 1275 + 1276 + https-proxy-agent@7.0.6: 1277 + resolution: {integrity: sha512-vK9P5/iUfdl95AI+JVyUuIcVtd4ofvtrOr3HNtM2yxC9bnMbEdp3x01OhQNnjb8IJYi38VlTE3mBXwcfvywuSw==} 1278 + engines: {node: '>= 14'} 1279 + 1280 + iconv-lite@0.6.3: 1281 + resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} 1282 + engines: {node: '>=0.10.0'} 1283 + 1284 ignore@5.3.2: 1285 resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} 1286 engines: {node: '>= 4'} ··· 1297 resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} 1298 engines: {node: '>=0.8.19'} 1299 1300 + indent-string@4.0.0: 1301 + resolution: {integrity: sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==} 1302 + engines: {node: '>=8'} 1303 + 1304 inherits@2.0.4: 1305 resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} 1306 ··· 1320 resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} 1321 engines: {node: '>=0.12.0'} 1322 1323 + is-potential-custom-element-name@1.0.1: 1324 + resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} 1325 + 1326 isexe@2.0.0: 1327 resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} 1328 ··· 1330 resolution: {integrity: sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==} 1331 hasBin: true 1332 1333 + js-tokens@4.0.0: 1334 + resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} 1335 + 1336 js-tokens@9.0.1: 1337 resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} 1338 ··· 1340 resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} 1341 hasBin: true 1342 1343 + jsdom@25.0.1: 1344 + resolution: {integrity: sha512-8i7LzZj7BF8uplX+ZyOlIz86V6TAsSs+np6m1kpW9u0JWi4z/1t+FzcK1aek+ybTnAC4KhBL4uXCNT0wcUIeCw==} 1345 + engines: {node: '>=18'} 1346 + peerDependencies: 1347 + canvas: ^2.11.2 1348 + peerDependenciesMeta: 1349 + canvas: 1350 + optional: true 1351 + 1352 jsesc@3.1.0: 1353 resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} 1354 engines: {node: '>=6'} ··· 1363 json-stable-stringify-without-jsonify@1.0.1: 1364 resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} 1365 1366 + json5@2.2.3: 1367 + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} 1368 + engines: {node: '>=6'} 1369 + hasBin: true 1370 + 1371 jsonparse@1.3.1: 1372 resolution: {integrity: sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==} 1373 engines: {'0': node >= 0.2.0} ··· 1384 resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} 1385 engines: {node: '>= 0.8.0'} 1386 1387 + lightningcss-android-arm64@1.30.2: 1388 + resolution: {integrity: sha512-BH9sEdOCahSgmkVhBLeU7Hc9DWeZ1Eb6wNS6Da8igvUwAe0sqROHddIlvU06q3WyXVEOYDZ6ykBZQnjTbmo4+A==} 1389 + engines: {node: '>= 12.0.0'} 1390 + cpu: [arm64] 1391 + os: [android] 1392 + 1393 + lightningcss-darwin-arm64@1.30.2: 1394 + resolution: {integrity: sha512-ylTcDJBN3Hp21TdhRT5zBOIi73P6/W0qwvlFEk22fkdXchtNTOU4Qc37SkzV+EKYxLouZ6M4LG9NfZ1qkhhBWA==} 1395 + engines: {node: '>= 12.0.0'} 1396 + cpu: [arm64] 1397 + os: [darwin] 1398 + 1399 + lightningcss-darwin-x64@1.30.2: 1400 + resolution: {integrity: sha512-oBZgKchomuDYxr7ilwLcyms6BCyLn0z8J0+ZZmfpjwg9fRVZIR5/GMXd7r9RH94iDhld3UmSjBM6nXWM2TfZTQ==} 1401 + engines: {node: '>= 12.0.0'} 1402 + cpu: [x64] 1403 + os: [darwin] 1404 + 1405 + lightningcss-freebsd-x64@1.30.2: 1406 + resolution: {integrity: sha512-c2bH6xTrf4BDpK8MoGG4Bd6zAMZDAXS569UxCAGcA7IKbHNMlhGQ89eRmvpIUGfKWNVdbhSbkQaWhEoMGmGslA==} 1407 + engines: {node: '>= 12.0.0'} 1408 + cpu: [x64] 1409 + os: [freebsd] 1410 + 1411 + lightningcss-linux-arm-gnueabihf@1.30.2: 1412 + resolution: {integrity: sha512-eVdpxh4wYcm0PofJIZVuYuLiqBIakQ9uFZmipf6LF/HRj5Bgm0eb3qL/mr1smyXIS1twwOxNWndd8z0E374hiA==} 1413 + engines: {node: '>= 12.0.0'} 1414 + cpu: [arm] 1415 + os: [linux] 1416 + 1417 + lightningcss-linux-arm64-gnu@1.30.2: 1418 + resolution: {integrity: sha512-UK65WJAbwIJbiBFXpxrbTNArtfuznvxAJw4Q2ZGlU8kPeDIWEX1dg3rn2veBVUylA2Ezg89ktszWbaQnxD/e3A==} 1419 + engines: {node: '>= 12.0.0'} 1420 + cpu: [arm64] 1421 + os: [linux] 1422 + 1423 + lightningcss-linux-arm64-musl@1.30.2: 1424 + resolution: {integrity: sha512-5Vh9dGeblpTxWHpOx8iauV02popZDsCYMPIgiuw97OJ5uaDsL86cnqSFs5LZkG3ghHoX5isLgWzMs+eD1YzrnA==} 1425 + engines: {node: '>= 12.0.0'} 1426 + cpu: [arm64] 1427 + os: [linux] 1428 + 1429 + lightningcss-linux-x64-gnu@1.30.2: 1430 + resolution: {integrity: sha512-Cfd46gdmj1vQ+lR6VRTTadNHu6ALuw2pKR9lYq4FnhvgBc4zWY1EtZcAc6EffShbb1MFrIPfLDXD6Xprbnni4w==} 1431 + engines: {node: '>= 12.0.0'} 1432 + cpu: [x64] 1433 + os: [linux] 1434 + 1435 + lightningcss-linux-x64-musl@1.30.2: 1436 + resolution: {integrity: sha512-XJaLUUFXb6/QG2lGIW6aIk6jKdtjtcffUT0NKvIqhSBY3hh9Ch+1LCeH80dR9q9LBjG3ewbDjnumefsLsP6aiA==} 1437 + engines: {node: '>= 12.0.0'} 1438 + cpu: [x64] 1439 + os: [linux] 1440 + 1441 + lightningcss-win32-arm64-msvc@1.30.2: 1442 + resolution: {integrity: sha512-FZn+vaj7zLv//D/192WFFVA0RgHawIcHqLX9xuWiQt7P0PtdFEVaxgF9rjM/IRYHQXNnk61/H/gb2Ei+kUQ4xQ==} 1443 + engines: {node: '>= 12.0.0'} 1444 + cpu: [arm64] 1445 + os: [win32] 1446 + 1447 + lightningcss-win32-x64-msvc@1.30.2: 1448 + resolution: {integrity: sha512-5g1yc73p+iAkid5phb4oVFMB45417DkRevRbt/El/gKXJk4jid+vPFF/AXbxn05Aky8PapwzZrdJShv5C0avjw==} 1449 + engines: {node: '>= 12.0.0'} 1450 + cpu: [x64] 1451 + os: [win32] 1452 + 1453 + lightningcss@1.30.2: 1454 + resolution: {integrity: sha512-utfs7Pr5uJyyvDETitgsaqSyjCb2qNRAtuqUeWIAKztsOYdcACf2KtARYXg2pSvhkt+9NfoaNY7fxjl6nuMjIQ==} 1455 + engines: {node: '>= 12.0.0'} 1456 + 1457 locate-path@6.0.0: 1458 resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} 1459 engines: {node: '>=10'} ··· 1461 lodash.merge@4.6.2: 1462 resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} 1463 1464 + loose-envify@1.4.0: 1465 + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} 1466 + hasBin: true 1467 + 1468 loupe@3.2.1: 1469 resolution: {integrity: sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==} 1470 1471 + lru-cache@10.4.3: 1472 + resolution: {integrity: sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==} 1473 + 1474 + lru-cache@5.1.1: 1475 + resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} 1476 + 1477 + lz-string@1.5.0: 1478 + resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==} 1479 + hasBin: true 1480 + 1481 magic-string@0.30.19: 1482 resolution: {integrity: sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==} 1483 1484 make-synchronized@0.4.2: 1485 resolution: {integrity: sha512-EwEJSg8gSGLicKXp/VzNi1tvzhdmNBxOzslkkJSoNUCQFZKH/NIUIp7xlfN+noaHrz4BJDN73gne8IHnjl/F/A==} 1486 1487 + math-intrinsics@1.1.0: 1488 + resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} 1489 + engines: {node: '>= 0.4'} 1490 + 1491 merge2@1.4.1: 1492 resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} 1493 engines: {node: '>= 8'} ··· 1496 resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} 1497 engines: {node: '>=8.6'} 1498 1499 + mime-db@1.52.0: 1500 + resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} 1501 + engines: {node: '>= 0.6'} 1502 + 1503 + mime-types@2.1.35: 1504 + resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} 1505 + engines: {node: '>= 0.6'} 1506 + 1507 + min-indent@1.0.1: 1508 + resolution: {integrity: sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg==} 1509 + engines: {node: '>=4'} 1510 + 1511 minimatch@3.1.2: 1512 resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} 1513 ··· 1515 resolution: {integrity: sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==} 1516 engines: {node: '>=16 || 14 >=14.17'} 1517 1518 + monaco-editor@0.52.0: 1519 + resolution: {integrity: sha512-OeWhNpABLCeTqubfqLMXGsqf6OmPU6pHM85kF3dhy6kq5hnhuVS1p3VrEW/XhWHc71P2tHyS5JFySD8mgs1crw==} 1520 + 1521 mri@1.2.0: 1522 resolution: {integrity: sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==} 1523 engines: {node: '>=4'} ··· 1533 natural-compare@1.4.0: 1534 resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} 1535 1536 + node-releases@2.0.25: 1537 + resolution: {integrity: sha512-4auku8B/vw5psvTiiN9j1dAOsXvMoGqJuKJcR+dTdqiXEK20mMTk1UEo3HS16LeGQsVG6+qKTPM9u/qQ2LqATA==} 1538 + 1539 + nwsapi@2.2.22: 1540 + resolution: {integrity: sha512-ujSMe1OWVn55euT1ihwCI1ZcAaAU3nxUiDwfDQldc51ZXaB9m2AyOn6/jh1BLe2t/G8xd6uKG1UBF2aZJeg2SQ==} 1541 + 1542 optionator@0.9.4: 1543 resolution: {integrity: sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==} 1544 engines: {node: '>= 0.8.0'} ··· 1554 parent-module@1.0.1: 1555 resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} 1556 engines: {node: '>=6'} 1557 + 1558 + parse5@7.3.0: 1559 + resolution: {integrity: sha512-IInvU7fabl34qmi9gY8XOVxhYyMyuH2xUNpb2q8/Y+7552KlejkRvqvD19nMoUW/uQGGbqNpA6Tufu5FL5BZgw==} 1560 1561 path-exists@4.0.0: 1562 resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} ··· 1602 engines: {node: '>=14'} 1603 hasBin: true 1604 1605 + pretty-format@27.5.1: 1606 + resolution: {integrity: sha512-Qb1gy5OrP5+zDf2Bvnzdl3jsTf1qXVMazbvCoKhtKqVs4/YK4ozX4gKQJJVyNe+cajNPn0KoC0MC3FUmaHWEmQ==} 1607 + engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} 1608 + 1609 punycode@2.3.1: 1610 resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} 1611 engines: {node: '>=6'} ··· 1616 queue-microtask@1.2.3: 1617 resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} 1618 1619 + react-dom@18.3.1: 1620 + resolution: {integrity: sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==} 1621 + peerDependencies: 1622 + react: ^18.3.1 1623 + 1624 + react-is@17.0.2: 1625 + resolution: {integrity: sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==} 1626 + 1627 + react-refresh@0.17.0: 1628 + resolution: {integrity: sha512-z6F7K9bV85EfseRCp2bzrpyQ0Gkw1uLoCel9XBVWPg/TjRj94SkJzUTGfOa4bs7iJvBWtQG0Wq7wnI0syw3EBQ==} 1629 + engines: {node: '>=0.10.0'} 1630 + 1631 + react@18.3.1: 1632 + resolution: {integrity: sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==} 1633 + engines: {node: '>=0.10.0'} 1634 + 1635 readable-stream@3.6.2: 1636 resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==} 1637 engines: {node: '>= 6'} ··· 1639 readdirp@4.1.2: 1640 resolution: {integrity: sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==} 1641 engines: {node: '>= 14.18.0'} 1642 + 1643 + redent@3.0.0: 1644 + resolution: {integrity: sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==} 1645 + engines: {node: '>=8'} 1646 1647 require-directory@2.1.1: 1648 resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} ··· 1675 vue-tsc: 1676 optional: true 1677 1678 + rolldown-vite@7.0.6: 1679 + resolution: {integrity: sha512-ovuUlg0rnJzzwuqTS3j25OO2aXu35PgxuzOWAW/+KYc1vd5uV1a4IdmHjkzIKV2bWZ6vYX+k4kDuH/21DgNkNQ==} 1680 + engines: {node: ^20.19.0 || >=22.12.0} 1681 + hasBin: true 1682 + peerDependencies: 1683 + '@types/node': ^20.19.0 || >=22.12.0 1684 + esbuild: ^0.25.0 1685 + jiti: '>=1.21.0' 1686 + less: ^4.0.0 1687 + sass: ^1.70.0 1688 + sass-embedded: ^1.70.0 1689 + stylus: '>=0.54.8' 1690 + sugarss: ^5.0.0 1691 + terser: ^5.16.0 1692 + tsx: ^4.8.1 1693 + yaml: ^2.4.2 1694 + peerDependenciesMeta: 1695 + '@types/node': 1696 + optional: true 1697 + esbuild: 1698 + optional: true 1699 + jiti: 1700 + optional: true 1701 + less: 1702 + optional: true 1703 + sass: 1704 + optional: true 1705 + sass-embedded: 1706 + optional: true 1707 + stylus: 1708 + optional: true 1709 + sugarss: 1710 + optional: true 1711 + terser: 1712 + optional: true 1713 + tsx: 1714 + optional: true 1715 + yaml: 1716 + optional: true 1717 + 1718 rolldown@1.0.0-beta.11-commit.f051675: 1719 resolution: {integrity: sha512-g8MCVkvg2GnrrG+j+WplOTx1nAmjSwYOMSOQI0qfxf8D4NmYZqJuG3f85yWK64XXQv6pKcXZsfMkOPs9B6B52A==} 1720 hasBin: true 1721 1722 + rolldown@1.0.0-beta.24: 1723 + resolution: {integrity: sha512-eDyipoOnoHQ5p6INkJ8g31eKGlqPSCAN9PapyOTw5HET4FYIWALZnSgpMZ67mdn+xT3jAsqGidNnBcIM6EAUhA==} 1724 hasBin: true 1725 1726 + rrweb-cssom@0.7.1: 1727 + resolution: {integrity: sha512-TrEMa7JGdVm0UThDJSx7ddw5nVm3UJS9o9CCIZ72B1vSyEZoziDqBYP3XIoi/12lKrJR8rE3jeFHMok2F/Mnsg==} 1728 + 1729 + rrweb-cssom@0.8.0: 1730 + resolution: {integrity: sha512-guoltQEx+9aMf2gDZ0s62EcV8lsXR+0w8915TC3ITdn2YueuNjdAYh/levpU9nFaoChh9RUS5ZdQMrKfVEN9tw==} 1731 + 1732 run-parallel@1.2.0: 1733 resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} 1734 ··· 1739 safe-buffer@5.2.1: 1740 resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} 1741 1742 + safer-buffer@2.1.2: 1743 + resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} 1744 + 1745 + saxes@6.0.0: 1746 + resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} 1747 + engines: {node: '>=v12.22.7'} 1748 + 1749 + scheduler@0.23.2: 1750 + resolution: {integrity: sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==} 1751 + 1752 + semver@6.3.1: 1753 + resolution: {integrity: sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==} 1754 + hasBin: true 1755 + 1756 semver@7.7.3: 1757 resolution: {integrity: sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==} 1758 engines: {node: '>=10'} ··· 1779 stackback@0.0.2: 1780 resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} 1781 1782 + state-local@1.0.7: 1783 + resolution: {integrity: sha512-HTEHMNieakEnoe33shBYcZ7NX83ACUjCu8c40iOGEZsngj9zRnkqS9j1pqQPXwobB0ZcVTk27REb7COQ0UR59w==} 1784 + 1785 std-env@3.9.0: 1786 resolution: {integrity: sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==} 1787 ··· 1794 1795 strip-ansi@6.0.1: 1796 resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} 1797 + engines: {node: '>=8'} 1798 + 1799 + strip-indent@3.0.0: 1800 + resolution: {integrity: sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==} 1801 engines: {node: '>=8'} 1802 1803 strip-json-comments@3.1.1: ··· 1811 resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} 1812 engines: {node: '>=8'} 1813 1814 + symbol-tree@3.2.4: 1815 + resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} 1816 + 1817 through2@4.0.2: 1818 resolution: {integrity: sha512-iOqSav00cVxEEICeD7TjLB1sueEL+81Wpzp2bY17uZjZN0pWZPuo4suZ/61VujxmqSGFfgOcNuTZ85QJwNZQpw==} 1819 ··· 1842 resolution: {integrity: sha512-azl+t0z7pw/z958Gy9svOTuzqIk6xq+NSheJzn5MMWtWTFywIacg2wUlzKFGtt3cthx0r2SxMK0yzJOR0IES7Q==} 1843 engines: {node: '>=14.0.0'} 1844 1845 + tldts-core@6.1.86: 1846 + resolution: {integrity: sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA==} 1847 + 1848 + tldts@6.1.86: 1849 + resolution: {integrity: sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ==} 1850 + hasBin: true 1851 + 1852 to-regex-range@5.0.1: 1853 resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} 1854 engines: {node: '>=8.0'} 1855 1856 + tough-cookie@5.1.2: 1857 + resolution: {integrity: sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A==} 1858 + engines: {node: '>=16'} 1859 + 1860 + tr46@5.1.1: 1861 + resolution: {integrity: sha512-hdF5ZgjTqgAntKkklYw0R03MG2x/bSzTtkxmIRw/sTNV8YXsCJ1tfLAX23lhxhHJlEf3CRCOCGGWw3vI3GaSPw==} 1862 + engines: {node: '>=18'} 1863 + 1864 treeify@1.1.0: 1865 resolution: {integrity: sha512-1m4RA7xVAJrSGrrXGs0L3YTwyvBs2S8PbRHaLZAkFw7JR8oIFwYtysxlBZhYIa7xSyiYJKZ3iGrrk55cGA3i9A==} 1866 engines: {node: '>=0.6'} ··· 1918 undici-types@7.8.0: 1919 resolution: {integrity: sha512-9UJ2xGDvQ43tYyVMpuHlsgApydB8ZKfVYTsLDhXkFL/6gfkp+U8xTGdh8pMJv1SpZna0zxG1DwsKZsreLbXBxw==} 1920 1921 + update-browserslist-db@1.1.3: 1922 + resolution: {integrity: sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==} 1923 + hasBin: true 1924 + peerDependencies: 1925 + browserslist: '>= 4.21.0' 1926 + 1927 uri-js@4.4.1: 1928 resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} 1929 ··· 1935 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} 1936 hasBin: true 1937 1938 vitest@3.2.4: 1939 resolution: {integrity: sha512-LUCP5ev3GURDysTWiP47wRRUpLKMOfPh+yKTx3kVIEiu5KOMeqzpnYNsKyOoVrULivR8tLcks4+lga33Whn90A==} 1940 engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} ··· 1963 jsdom: 1964 optional: true 1965 1966 + w3c-xmlserializer@5.0.0: 1967 + resolution: {integrity: sha512-o8qghlI8NZHU1lLPrpi2+Uq7abh4GGPpYANlalzWxyWteJOCsr/P+oPBA49TOLu5FTZO4d3F9MnWJfiMo4BkmA==} 1968 + engines: {node: '>=18'} 1969 + 1970 + webidl-conversions@7.0.0: 1971 + resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} 1972 + engines: {node: '>=12'} 1973 + 1974 + whatwg-encoding@3.1.1: 1975 + resolution: {integrity: sha512-6qN4hJdMwfYBtE3YBTTHhoeuUrDBPZmbQaxWAqSALV/MeEnR5z1xd8UKud2RAkFoPkmB+hli1TZSnyi84xz1vQ==} 1976 + engines: {node: '>=18'} 1977 + 1978 + whatwg-mimetype@4.0.0: 1979 + resolution: {integrity: sha512-QaKxh0eNIi2mE9p2vEdzfagOKHCcj1pJ56EEHGQOVxp8r9/iszLUUV7v89x9O1p/T+NlTM5W7jW6+cz4Fq1YVg==} 1980 + engines: {node: '>=18'} 1981 + 1982 + whatwg-url@14.2.0: 1983 + resolution: {integrity: sha512-De72GdQZzNTUBBChsXueQUnPKDkg/5A5zp7pFDuQAj5UFoENpiACU0wlCvzpAGnTkj++ihpKwKyYewn/XNUbKw==} 1984 + engines: {node: '>=18'} 1985 + 1986 which@2.0.2: 1987 resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} 1988 engines: {node: '>= 8'} ··· 2001 resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} 2002 engines: {node: '>=10'} 2003 2004 + ws@8.18.3: 2005 + resolution: {integrity: sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==} 2006 + engines: {node: '>=10.0.0'} 2007 + peerDependencies: 2008 + bufferutil: ^4.0.1 2009 + utf-8-validate: '>=5.0.2' 2010 + peerDependenciesMeta: 2011 + bufferutil: 2012 + optional: true 2013 + utf-8-validate: 2014 + optional: true 2015 + 2016 + xml-name-validator@5.0.0: 2017 + resolution: {integrity: sha512-EvGK8EJ3DhaHfbRlETOWAS5pO9MZITeauHKJyb8wyajUfQUenkIg2MvLDTZ4T/TgIcm3HU0TFBgWWboAZ30UHg==} 2018 + engines: {node: '>=18'} 2019 + 2020 + xmlchars@2.2.0: 2021 + resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} 2022 + 2023 y18n@5.0.8: 2024 resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} 2025 engines: {node: '>=10'} 2026 2027 + yallist@3.1.1: 2028 + resolution: {integrity: sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==} 2029 + 2030 yargs-parser@20.2.9: 2031 resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} 2032 engines: {node: '>=10'} ··· 2040 engines: {node: '>=10'} 2041 2042 snapshots: 2043 + 2044 + '@adobe/css-tools@4.4.4': {} 2045 2046 '@ark/attest@0.49.0(typescript@5.8.3)': 2047 dependencies: ··· 2064 2065 '@ark/util@0.49.0': {} 2066 2067 + '@asamuzakjp/css-color@3.2.0': 2068 + dependencies: 2069 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 2070 + '@csstools/css-color-parser': 3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 2071 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 2072 + '@csstools/css-tokenizer': 3.0.4 2073 + lru-cache: 10.4.3 2074 + 2075 + '@babel/code-frame@7.27.1': 2076 + dependencies: 2077 + '@babel/helper-validator-identifier': 7.27.1 2078 + js-tokens: 4.0.0 2079 + picocolors: 1.1.1 2080 + 2081 + '@babel/compat-data@7.28.4': {} 2082 + 2083 + '@babel/core@7.28.4': 2084 + dependencies: 2085 + '@babel/code-frame': 7.27.1 2086 + '@babel/generator': 7.28.3 2087 + '@babel/helper-compilation-targets': 7.27.2 2088 + '@babel/helper-module-transforms': 7.28.3(@babel/core@7.28.4) 2089 + '@babel/helpers': 7.28.4 2090 + '@babel/parser': 7.28.4 2091 + '@babel/template': 7.27.2 2092 + '@babel/traverse': 7.28.4 2093 + '@babel/types': 7.28.4 2094 + '@jridgewell/remapping': 2.3.5 2095 + convert-source-map: 2.0.0 2096 + debug: 4.4.3 2097 + gensync: 1.0.0-beta.2 2098 + json5: 2.2.3 2099 + semver: 6.3.1 2100 + transitivePeerDependencies: 2101 + - supports-color 2102 + 2103 '@babel/generator@7.28.3': 2104 dependencies: 2105 '@babel/parser': 7.28.4 ··· 2108 '@jridgewell/trace-mapping': 0.3.31 2109 jsesc: 3.1.0 2110 2111 + '@babel/helper-compilation-targets@7.27.2': 2112 + dependencies: 2113 + '@babel/compat-data': 7.28.4 2114 + '@babel/helper-validator-option': 7.27.1 2115 + browserslist: 4.26.3 2116 + lru-cache: 5.1.1 2117 + semver: 6.3.1 2118 + 2119 + '@babel/helper-globals@7.28.0': {} 2120 + 2121 + '@babel/helper-module-imports@7.27.1': 2122 + dependencies: 2123 + '@babel/traverse': 7.28.4 2124 + '@babel/types': 7.28.4 2125 + transitivePeerDependencies: 2126 + - supports-color 2127 + 2128 + '@babel/helper-module-transforms@7.28.3(@babel/core@7.28.4)': 2129 + dependencies: 2130 + '@babel/core': 7.28.4 2131 + '@babel/helper-module-imports': 7.27.1 2132 + '@babel/helper-validator-identifier': 7.27.1 2133 + '@babel/traverse': 7.28.4 2134 + transitivePeerDependencies: 2135 + - supports-color 2136 + 2137 + '@babel/helper-plugin-utils@7.27.1': {} 2138 + 2139 '@babel/helper-string-parser@7.27.1': {} 2140 2141 '@babel/helper-validator-identifier@7.27.1': {} 2142 2143 + '@babel/helper-validator-option@7.27.1': {} 2144 + 2145 + '@babel/helpers@7.28.4': 2146 + dependencies: 2147 + '@babel/template': 7.27.2 2148 + '@babel/types': 7.28.4 2149 + 2150 '@babel/parser@7.28.4': 2151 dependencies: 2152 '@babel/types': 7.28.4 2153 2154 + '@babel/plugin-transform-react-jsx-self@7.27.1(@babel/core@7.28.4)': 2155 + dependencies: 2156 + '@babel/core': 7.28.4 2157 + '@babel/helper-plugin-utils': 7.27.1 2158 + 2159 + '@babel/plugin-transform-react-jsx-source@7.27.1(@babel/core@7.28.4)': 2160 + dependencies: 2161 + '@babel/core': 7.28.4 2162 + '@babel/helper-plugin-utils': 7.27.1 2163 + 2164 + '@babel/runtime@7.28.4': {} 2165 + 2166 + '@babel/template@7.27.2': 2167 + dependencies: 2168 + '@babel/code-frame': 7.27.1 2169 + '@babel/parser': 7.28.4 2170 + '@babel/types': 7.28.4 2171 + 2172 + '@babel/traverse@7.28.4': 2173 + dependencies: 2174 + '@babel/code-frame': 7.27.1 2175 + '@babel/generator': 7.28.3 2176 + '@babel/helper-globals': 7.28.0 2177 + '@babel/parser': 7.28.4 2178 + '@babel/template': 7.27.2 2179 + '@babel/types': 7.28.4 2180 + debug: 4.4.3 2181 + transitivePeerDependencies: 2182 + - supports-color 2183 + 2184 '@babel/types@7.28.4': 2185 dependencies: 2186 '@babel/helper-string-parser': 7.27.1 2187 '@babel/helper-validator-identifier': 7.27.1 2188 + 2189 + '@csstools/color-helpers@5.1.0': {} 2190 + 2191 + '@csstools/css-calc@2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 2192 + dependencies: 2193 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 2194 + '@csstools/css-tokenizer': 3.0.4 2195 + 2196 + '@csstools/css-color-parser@3.1.0(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4)': 2197 + dependencies: 2198 + '@csstools/color-helpers': 5.1.0 2199 + '@csstools/css-calc': 2.1.4(@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4))(@csstools/css-tokenizer@3.0.4) 2200 + '@csstools/css-parser-algorithms': 3.0.5(@csstools/css-tokenizer@3.0.4) 2201 + '@csstools/css-tokenizer': 3.0.4 2202 + 2203 + '@csstools/css-parser-algorithms@3.0.5(@csstools/css-tokenizer@3.0.4)': 2204 + dependencies: 2205 + '@csstools/css-tokenizer': 3.0.4 2206 + 2207 + '@csstools/css-tokenizer@3.0.4': {} 2208 2209 '@emnapi/core@1.5.0': 2210 dependencies: ··· 2364 '@jridgewell/sourcemap-codec': 1.5.5 2365 '@jridgewell/trace-mapping': 0.3.31 2366 2367 + '@jridgewell/remapping@2.3.5': 2368 + dependencies: 2369 + '@jridgewell/gen-mapping': 0.3.13 2370 + '@jridgewell/trace-mapping': 0.3.31 2371 + 2372 '@jridgewell/resolve-uri@3.1.2': {} 2373 2374 '@jridgewell/sourcemap-codec@1.5.5': {} ··· 2378 '@jridgewell/resolve-uri': 3.1.2 2379 '@jridgewell/sourcemap-codec': 1.5.5 2380 2381 + '@monaco-editor/loader@1.6.1': 2382 + dependencies: 2383 + state-local: 1.0.7 2384 + 2385 + '@monaco-editor/react@4.7.0(monaco-editor@0.52.0)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2386 + dependencies: 2387 + '@monaco-editor/loader': 1.6.1 2388 + monaco-editor: 0.52.0 2389 + react: 18.3.1 2390 + react-dom: 18.3.1(react@18.3.1) 2391 + 2392 '@napi-rs/wasm-runtime@0.2.12': 2393 dependencies: 2394 '@emnapi/core': 1.5.0 ··· 2410 2411 '@oxc-project/runtime@0.72.2': {} 2412 2413 + '@oxc-project/runtime@0.75.0': {} 2414 + 2415 + '@oxc-project/runtime@0.75.1': {} 2416 + 2417 '@oxc-project/types@0.72.2': {} 2418 2419 + '@oxc-project/types@0.75.1': {} 2420 + 2421 '@prettier/sync@0.5.5(prettier@3.5.3)': 2422 dependencies: 2423 make-synchronized: 0.4.2 ··· 2430 '@rolldown/binding-darwin-arm64@1.0.0-beta.11-commit.f051675': 2431 optional: true 2432 2433 + '@rolldown/binding-darwin-arm64@1.0.0-beta.24': 2434 optional: true 2435 2436 + '@rolldown/binding-darwin-x64@1.0.0-beta.11-commit.f051675': 2437 optional: true 2438 2439 + '@rolldown/binding-darwin-x64@1.0.0-beta.24': 2440 optional: true 2441 2442 + '@rolldown/binding-freebsd-x64@1.0.0-beta.11-commit.f051675': 2443 optional: true 2444 2445 + '@rolldown/binding-freebsd-x64@1.0.0-beta.24': 2446 optional: true 2447 2448 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.11-commit.f051675': 2449 optional: true 2450 2451 + '@rolldown/binding-linux-arm-gnueabihf@1.0.0-beta.24': 2452 optional: true 2453 2454 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.11-commit.f051675': 2455 optional: true 2456 2457 + '@rolldown/binding-linux-arm64-gnu@1.0.0-beta.24': 2458 optional: true 2459 2460 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.11-commit.f051675': 2461 optional: true 2462 2463 + '@rolldown/binding-linux-arm64-musl@1.0.0-beta.24': 2464 optional: true 2465 2466 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.11-commit.f051675': 2467 optional: true 2468 2469 + '@rolldown/binding-linux-x64-gnu@1.0.0-beta.24': 2470 optional: true 2471 2472 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.11-commit.f051675': 2473 optional: true 2474 2475 + '@rolldown/binding-linux-x64-musl@1.0.0-beta.24': 2476 optional: true 2477 2478 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.11-commit.f051675': 2479 + dependencies: 2480 + '@napi-rs/wasm-runtime': 0.2.12 2481 optional: true 2482 2483 + '@rolldown/binding-wasm32-wasi@1.0.0-beta.24': 2484 + dependencies: 2485 + '@napi-rs/wasm-runtime': 0.2.12 2486 optional: true 2487 2488 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.11-commit.f051675': 2489 optional: true 2490 2491 + '@rolldown/binding-win32-arm64-msvc@1.0.0-beta.24': 2492 optional: true 2493 2494 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.11-commit.f051675': 2495 optional: true 2496 2497 + '@rolldown/binding-win32-ia32-msvc@1.0.0-beta.24': 2498 optional: true 2499 2500 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.11-commit.f051675': 2501 optional: true 2502 2503 + '@rolldown/binding-win32-x64-msvc@1.0.0-beta.24': 2504 optional: true 2505 2506 + '@rolldown/pluginutils@1.0.0-beta.11-commit.f051675': {} 2507 2508 + '@rolldown/pluginutils@1.0.0-beta.24': {} 2509 2510 + '@rolldown/pluginutils@1.0.0-beta.38': {} 2511 2512 + '@testing-library/dom@10.4.1': 2513 + dependencies: 2514 + '@babel/code-frame': 7.27.1 2515 + '@babel/runtime': 7.28.4 2516 + '@types/aria-query': 5.0.4 2517 + aria-query: 5.3.0 2518 + dom-accessibility-api: 0.5.16 2519 + lz-string: 1.5.0 2520 + picocolors: 1.1.1 2521 + pretty-format: 27.5.1 2522 2523 + '@testing-library/jest-dom@6.9.1': 2524 + dependencies: 2525 + '@adobe/css-tools': 4.4.4 2526 + aria-query: 5.3.0 2527 + css.escape: 1.5.1 2528 + dom-accessibility-api: 0.6.3 2529 + picocolors: 1.1.1 2530 + redent: 3.0.0 2531 2532 + '@testing-library/react@16.3.0(@testing-library/dom@10.4.1)(@types/react-dom@18.3.7(@types/react@18.3.26))(@types/react@18.3.26)(react-dom@18.3.1(react@18.3.1))(react@18.3.1)': 2533 + dependencies: 2534 + '@babel/runtime': 7.28.4 2535 + '@testing-library/dom': 10.4.1 2536 + react: 18.3.1 2537 + react-dom: 18.3.1(react@18.3.1) 2538 + optionalDependencies: 2539 + '@types/react': 18.3.26 2540 + '@types/react-dom': 18.3.7(@types/react@18.3.26) 2541 2542 + '@testing-library/user-event@14.6.1(@testing-library/dom@10.4.1)': 2543 + dependencies: 2544 + '@testing-library/dom': 10.4.1 2545 2546 + '@tybys/wasm-util@0.10.1': 2547 + dependencies: 2548 + tslib: 2.8.1 2549 optional: true 2550 2551 + '@types/aria-query@5.0.4': {} 2552 2553 + '@types/babel__core@7.20.5': 2554 + dependencies: 2555 + '@babel/parser': 7.28.4 2556 + '@babel/types': 7.28.4 2557 + '@types/babel__generator': 7.27.0 2558 + '@types/babel__template': 7.4.4 2559 + '@types/babel__traverse': 7.28.0 2560 2561 + '@types/babel__generator@7.27.0': 2562 dependencies: 2563 + '@babel/types': 7.28.4 2564 + 2565 + '@types/babel__template@7.4.4': 2566 + dependencies: 2567 + '@babel/parser': 7.28.4 2568 + '@babel/types': 7.28.4 2569 + 2570 + '@types/babel__traverse@7.28.0': 2571 + dependencies: 2572 + '@babel/types': 7.28.4 2573 2574 '@types/chai@5.2.2': 2575 dependencies: ··· 2584 '@types/node@24.0.4': 2585 dependencies: 2586 undici-types: 7.8.0 2587 + 2588 + '@types/prop-types@15.7.15': {} 2589 + 2590 + '@types/react-dom@18.3.7(@types/react@18.3.26)': 2591 + dependencies: 2592 + '@types/react': 18.3.26 2593 + 2594 + '@types/react@18.3.26': 2595 + dependencies: 2596 + '@types/prop-types': 15.7.15 2597 + csstype: 3.1.3 2598 2599 '@typescript-eslint/eslint-plugin@8.35.0(@typescript-eslint/parser@8.35.0(eslint@9.29.0(jiti@2.6.1))(typescript@5.8.3))(eslint@9.29.0(jiti@2.6.1))(typescript@5.8.3)': 2600 dependencies: ··· 2706 transitivePeerDependencies: 2707 - supports-color 2708 2709 + '@vitejs/plugin-react@5.0.4(rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1))': 2710 + dependencies: 2711 + '@babel/core': 7.28.4 2712 + '@babel/plugin-transform-react-jsx-self': 7.27.1(@babel/core@7.28.4) 2713 + '@babel/plugin-transform-react-jsx-source': 7.27.1(@babel/core@7.28.4) 2714 + '@rolldown/pluginutils': 1.0.0-beta.38 2715 + '@types/babel__core': 7.20.5 2716 + react-refresh: 0.17.0 2717 + vite: rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1) 2718 + transitivePeerDependencies: 2719 + - supports-color 2720 + 2721 '@vitest/expect@3.2.4': 2722 dependencies: 2723 '@types/chai': 5.2.2 ··· 2726 chai: 5.3.3 2727 tinyrainbow: 2.0.0 2728 2729 + '@vitest/mocker@3.2.4(rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1))': 2730 dependencies: 2731 '@vitest/spy': 3.2.4 2732 estree-walker: 3.0.3 2733 magic-string: 0.30.19 2734 optionalDependencies: 2735 + vite: rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1) 2736 2737 '@vitest/pretty-format@3.2.4': 2738 dependencies: ··· 2766 2767 acorn@8.15.0: {} 2768 2769 + agent-base@7.1.4: {} 2770 + 2771 ajv@6.12.6: 2772 dependencies: 2773 fast-deep-equal: 3.1.3 ··· 2781 dependencies: 2782 color-convert: 2.0.1 2783 2784 + ansi-styles@5.2.0: {} 2785 + 2786 ansis@4.2.0: {} 2787 2788 argparse@2.0.1: {} 2789 2790 + aria-query@5.3.0: 2791 + dependencies: 2792 + dequal: 2.0.3 2793 + 2794 arktype@2.1.22: 2795 dependencies: 2796 '@ark/schema': 0.49.0 ··· 2802 dependencies: 2803 '@babel/parser': 7.28.4 2804 pathe: 2.0.3 2805 + 2806 + asynckit@0.4.0: {} 2807 2808 balanced-match@1.0.2: {} 2809 2810 + baseline-browser-mapping@2.8.18: {} 2811 + 2812 birpc@2.6.1: {} 2813 2814 brace-expansion@1.1.12: ··· 2824 dependencies: 2825 fill-range: 7.1.1 2826 2827 + browserslist@4.26.3: 2828 + dependencies: 2829 + baseline-browser-mapping: 2.8.18 2830 + caniuse-lite: 1.0.30001751 2831 + electron-to-chromium: 1.5.237 2832 + node-releases: 2.0.25 2833 + update-browserslist-db: 1.1.3(browserslist@4.26.3) 2834 + 2835 cac@6.7.14: {} 2836 2837 + call-bind-apply-helpers@1.0.2: 2838 + dependencies: 2839 + es-errors: 1.3.0 2840 + function-bind: 1.1.2 2841 + 2842 callsites@3.1.0: {} 2843 2844 + caniuse-lite@1.0.30001751: {} 2845 + 2846 chai@5.3.3: 2847 dependencies: 2848 assertion-error: 2.0.1 ··· 2874 2875 color-name@1.1.4: {} 2876 2877 + combined-stream@1.0.8: 2878 + dependencies: 2879 + delayed-stream: 1.0.0 2880 + 2881 concat-map@0.0.1: {} 2882 + 2883 + convert-source-map@2.0.0: {} 2884 2885 cross-spawn@7.0.6: 2886 dependencies: ··· 2888 shebang-command: 2.0.0 2889 which: 2.0.2 2890 2891 + css.escape@1.5.1: {} 2892 + 2893 + cssstyle@4.6.0: 2894 + dependencies: 2895 + '@asamuzakjp/css-color': 3.2.0 2896 + rrweb-cssom: 0.8.0 2897 + 2898 + csstype@3.1.3: {} 2899 + 2900 + data-urls@5.0.0: 2901 + dependencies: 2902 + whatwg-mimetype: 4.0.0 2903 + whatwg-url: 14.2.0 2904 + 2905 debug@4.4.3: 2906 dependencies: 2907 ms: 2.1.3 2908 2909 + decimal.js@10.6.0: {} 2910 + 2911 deep-eql@5.0.2: {} 2912 2913 deep-is@0.1.4: {} 2914 2915 defu@6.1.4: {} 2916 2917 + delayed-stream@1.0.0: {} 2918 + 2919 + dequal@2.0.3: {} 2920 + 2921 + detect-libc@2.1.2: {} 2922 + 2923 diff@8.0.2: {} 2924 2925 + dom-accessibility-api@0.5.16: {} 2926 + 2927 + dom-accessibility-api@0.6.3: {} 2928 + 2929 dts-resolver@2.1.2: {} 2930 2931 + dunder-proto@1.0.1: 2932 + dependencies: 2933 + call-bind-apply-helpers: 1.0.2 2934 + es-errors: 1.3.0 2935 + gopd: 1.2.0 2936 + 2937 + electron-to-chromium@1.5.237: {} 2938 + 2939 emoji-regex@8.0.0: {} 2940 2941 empathic@1.1.0: {} 2942 + 2943 + entities@6.0.1: {} 2944 + 2945 + es-define-property@1.0.1: {} 2946 + 2947 + es-errors@1.3.0: {} 2948 2949 es-module-lexer@1.7.0: {} 2950 + 2951 + es-object-atoms@1.1.1: 2952 + dependencies: 2953 + es-errors: 1.3.0 2954 + 2955 + es-set-tostringtag@2.1.0: 2956 + dependencies: 2957 + es-errors: 1.3.0 2958 + get-intrinsic: 1.3.0 2959 + has-tostringtag: 1.0.2 2960 + hasown: 2.0.2 2961 2962 esbuild@0.25.10: 2963 optionalDependencies: ··· 2987 '@esbuild/win32-arm64': 0.25.10 2988 '@esbuild/win32-ia32': 0.25.10 2989 '@esbuild/win32-x64': 0.25.10 2990 + optional: true 2991 2992 escalade@3.2.0: {} 2993 ··· 3112 3113 flatted@3.3.3: {} 3114 3115 + form-data@4.0.4: 3116 + dependencies: 3117 + asynckit: 0.4.0 3118 + combined-stream: 1.0.8 3119 + es-set-tostringtag: 2.1.0 3120 + hasown: 2.0.2 3121 + mime-types: 2.1.35 3122 + 3123 fsevents@2.3.3: 3124 optional: true 3125 + 3126 + function-bind@1.1.2: {} 3127 + 3128 + gensync@1.0.0-beta.2: {} 3129 3130 get-caller-file@2.0.5: {} 3131 3132 + get-intrinsic@1.3.0: 3133 + dependencies: 3134 + call-bind-apply-helpers: 1.0.2 3135 + es-define-property: 1.0.1 3136 + es-errors: 1.3.0 3137 + es-object-atoms: 1.1.1 3138 + function-bind: 1.1.2 3139 + get-proto: 1.0.1 3140 + gopd: 1.2.0 3141 + has-symbols: 1.1.0 3142 + hasown: 2.0.2 3143 + math-intrinsics: 1.1.0 3144 + 3145 + get-proto@1.0.1: 3146 + dependencies: 3147 + dunder-proto: 1.0.1 3148 + es-object-atoms: 1.1.1 3149 + 3150 get-tsconfig@4.12.0: 3151 dependencies: 3152 resolve-pkg-maps: 1.0.0 ··· 3161 3162 globals@14.0.0: {} 3163 3164 + gopd@1.2.0: {} 3165 + 3166 graphemer@1.4.0: {} 3167 3168 has-flag@4.0.0: {} 3169 3170 + has-symbols@1.1.0: {} 3171 + 3172 + has-tostringtag@1.0.2: 3173 + dependencies: 3174 + has-symbols: 1.1.0 3175 + 3176 + hasown@2.0.2: 3177 + dependencies: 3178 + function-bind: 1.1.2 3179 + 3180 hookable@5.5.3: {} 3181 3182 + html-encoding-sniffer@4.0.0: 3183 + dependencies: 3184 + whatwg-encoding: 3.1.1 3185 + 3186 + http-proxy-agent@7.0.2: 3187 + dependencies: 3188 + agent-base: 7.1.4 3189 + debug: 4.4.3 3190 + transitivePeerDependencies: 3191 + - supports-color 3192 + 3193 + https-proxy-agent@7.0.6: 3194 + dependencies: 3195 + agent-base: 7.1.4 3196 + debug: 4.4.3 3197 + transitivePeerDependencies: 3198 + - supports-color 3199 + 3200 + iconv-lite@0.6.3: 3201 + dependencies: 3202 + safer-buffer: 2.1.2 3203 + 3204 ignore@5.3.2: {} 3205 3206 ignore@7.0.5: {} ··· 3211 resolve-from: 4.0.0 3212 3213 imurmurhash@0.1.4: {} 3214 + 3215 + indent-string@4.0.0: {} 3216 3217 inherits@2.0.4: {} 3218 ··· 3226 3227 is-number@7.0.0: {} 3228 3229 + is-potential-custom-element-name@1.0.1: {} 3230 + 3231 isexe@2.0.0: {} 3232 3233 jiti@2.6.1: {} 3234 3235 + js-tokens@4.0.0: {} 3236 + 3237 js-tokens@9.0.1: {} 3238 3239 js-yaml@4.1.0: 3240 dependencies: 3241 argparse: 2.0.1 3242 3243 + jsdom@25.0.1: 3244 + dependencies: 3245 + cssstyle: 4.6.0 3246 + data-urls: 5.0.0 3247 + decimal.js: 10.6.0 3248 + form-data: 4.0.4 3249 + html-encoding-sniffer: 4.0.0 3250 + http-proxy-agent: 7.0.2 3251 + https-proxy-agent: 7.0.6 3252 + is-potential-custom-element-name: 1.0.1 3253 + nwsapi: 2.2.22 3254 + parse5: 7.3.0 3255 + rrweb-cssom: 0.7.1 3256 + saxes: 6.0.0 3257 + symbol-tree: 3.2.4 3258 + tough-cookie: 5.1.2 3259 + w3c-xmlserializer: 5.0.0 3260 + webidl-conversions: 7.0.0 3261 + whatwg-encoding: 3.1.1 3262 + whatwg-mimetype: 4.0.0 3263 + whatwg-url: 14.2.0 3264 + ws: 8.18.3 3265 + xml-name-validator: 5.0.0 3266 + transitivePeerDependencies: 3267 + - bufferutil 3268 + - supports-color 3269 + - utf-8-validate 3270 + 3271 jsesc@3.1.0: {} 3272 3273 json-buffer@3.0.1: {} ··· 3275 json-schema-traverse@0.4.1: {} 3276 3277 json-stable-stringify-without-jsonify@1.0.1: {} 3278 + 3279 + json5@2.2.3: {} 3280 3281 jsonparse@1.3.1: {} 3282 ··· 3294 prelude-ls: 1.2.1 3295 type-check: 0.4.0 3296 3297 + lightningcss-android-arm64@1.30.2: 3298 + optional: true 3299 + 3300 + lightningcss-darwin-arm64@1.30.2: 3301 + optional: true 3302 + 3303 + lightningcss-darwin-x64@1.30.2: 3304 + optional: true 3305 + 3306 + lightningcss-freebsd-x64@1.30.2: 3307 + optional: true 3308 + 3309 + lightningcss-linux-arm-gnueabihf@1.30.2: 3310 + optional: true 3311 + 3312 + lightningcss-linux-arm64-gnu@1.30.2: 3313 + optional: true 3314 + 3315 + lightningcss-linux-arm64-musl@1.30.2: 3316 + optional: true 3317 + 3318 + lightningcss-linux-x64-gnu@1.30.2: 3319 + optional: true 3320 + 3321 + lightningcss-linux-x64-musl@1.30.2: 3322 + optional: true 3323 + 3324 + lightningcss-win32-arm64-msvc@1.30.2: 3325 + optional: true 3326 + 3327 + lightningcss-win32-x64-msvc@1.30.2: 3328 + optional: true 3329 + 3330 + lightningcss@1.30.2: 3331 + dependencies: 3332 + detect-libc: 2.1.2 3333 + optionalDependencies: 3334 + lightningcss-android-arm64: 1.30.2 3335 + lightningcss-darwin-arm64: 1.30.2 3336 + lightningcss-darwin-x64: 1.30.2 3337 + lightningcss-freebsd-x64: 1.30.2 3338 + lightningcss-linux-arm-gnueabihf: 1.30.2 3339 + lightningcss-linux-arm64-gnu: 1.30.2 3340 + lightningcss-linux-arm64-musl: 1.30.2 3341 + lightningcss-linux-x64-gnu: 1.30.2 3342 + lightningcss-linux-x64-musl: 1.30.2 3343 + lightningcss-win32-arm64-msvc: 1.30.2 3344 + lightningcss-win32-x64-msvc: 1.30.2 3345 + 3346 locate-path@6.0.0: 3347 dependencies: 3348 p-locate: 5.0.0 3349 3350 lodash.merge@4.6.2: {} 3351 3352 + loose-envify@1.4.0: 3353 + dependencies: 3354 + js-tokens: 4.0.0 3355 + 3356 loupe@3.2.1: {} 3357 3358 + lru-cache@10.4.3: {} 3359 + 3360 + lru-cache@5.1.1: 3361 + dependencies: 3362 + yallist: 3.1.1 3363 + 3364 + lz-string@1.5.0: {} 3365 + 3366 magic-string@0.30.19: 3367 dependencies: 3368 '@jridgewell/sourcemap-codec': 1.5.5 3369 3370 make-synchronized@0.4.2: {} 3371 3372 + math-intrinsics@1.1.0: {} 3373 + 3374 merge2@1.4.1: {} 3375 3376 micromatch@4.0.8: 3377 dependencies: 3378 braces: 3.0.3 3379 picomatch: 2.3.1 3380 + 3381 + mime-db@1.52.0: {} 3382 + 3383 + mime-types@2.1.35: 3384 + dependencies: 3385 + mime-db: 1.52.0 3386 + 3387 + min-indent@1.0.1: {} 3388 3389 minimatch@3.1.2: 3390 dependencies: ··· 3394 dependencies: 3395 brace-expansion: 2.0.2 3396 3397 + monaco-editor@0.52.0: {} 3398 + 3399 mri@1.2.0: {} 3400 3401 ms@2.1.3: {} ··· 3403 nanoid@3.3.11: {} 3404 3405 natural-compare@1.4.0: {} 3406 + 3407 + node-releases@2.0.25: {} 3408 + 3409 + nwsapi@2.2.22: {} 3410 3411 optionator@0.9.4: 3412 dependencies: ··· 3429 dependencies: 3430 callsites: 3.1.0 3431 3432 + parse5@7.3.0: 3433 + dependencies: 3434 + entities: 6.0.1 3435 + 3436 path-exists@4.0.0: {} 3437 3438 path-key@3.1.1: {} ··· 3459 3460 prettier@3.6.1: {} 3461 3462 + pretty-format@27.5.1: 3463 + dependencies: 3464 + ansi-regex: 5.0.1 3465 + ansi-styles: 5.2.0 3466 + react-is: 17.0.2 3467 + 3468 punycode@2.3.1: {} 3469 3470 quansync@0.2.11: {} 3471 3472 queue-microtask@1.2.3: {} 3473 3474 + react-dom@18.3.1(react@18.3.1): 3475 + dependencies: 3476 + loose-envify: 1.4.0 3477 + react: 18.3.1 3478 + scheduler: 0.23.2 3479 + 3480 + react-is@17.0.2: {} 3481 + 3482 + react-refresh@0.17.0: {} 3483 + 3484 + react@18.3.1: 3485 + dependencies: 3486 + loose-envify: 1.4.0 3487 + 3488 readable-stream@3.6.2: 3489 dependencies: 3490 inherits: 2.0.4 ··· 3492 util-deprecate: 1.0.2 3493 3494 readdirp@4.1.2: {} 3495 + 3496 + redent@3.0.0: 3497 + dependencies: 3498 + indent-string: 4.0.0 3499 + strip-indent: 3.0.0 3500 3501 require-directory@2.1.1: {} 3502 ··· 3523 - oxc-resolver 3524 - supports-color 3525 3526 + rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1): 3527 + dependencies: 3528 + '@oxc-project/runtime': 0.75.0 3529 + fdir: 6.5.0(picomatch@4.0.3) 3530 + lightningcss: 1.30.2 3531 + picomatch: 4.0.3 3532 + postcss: 8.5.6 3533 + rolldown: 1.0.0-beta.24 3534 + tinyglobby: 0.2.15 3535 + optionalDependencies: 3536 + '@types/node': 24.0.4 3537 + esbuild: 0.25.10 3538 + fsevents: 2.3.3 3539 + jiti: 2.6.1 3540 + 3541 rolldown@1.0.0-beta.11-commit.f051675: 3542 dependencies: 3543 '@oxc-project/runtime': 0.72.2 ··· 3558 '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.11-commit.f051675 3559 '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.11-commit.f051675 3560 3561 + rolldown@1.0.0-beta.24: 3562 dependencies: 3563 + '@oxc-project/runtime': 0.75.1 3564 + '@oxc-project/types': 0.75.1 3565 + '@rolldown/pluginutils': 1.0.0-beta.24 3566 + ansis: 4.2.0 3567 optionalDependencies: 3568 + '@rolldown/binding-darwin-arm64': 1.0.0-beta.24 3569 + '@rolldown/binding-darwin-x64': 1.0.0-beta.24 3570 + '@rolldown/binding-freebsd-x64': 1.0.0-beta.24 3571 + '@rolldown/binding-linux-arm-gnueabihf': 1.0.0-beta.24 3572 + '@rolldown/binding-linux-arm64-gnu': 1.0.0-beta.24 3573 + '@rolldown/binding-linux-arm64-musl': 1.0.0-beta.24 3574 + '@rolldown/binding-linux-x64-gnu': 1.0.0-beta.24 3575 + '@rolldown/binding-linux-x64-musl': 1.0.0-beta.24 3576 + '@rolldown/binding-wasm32-wasi': 1.0.0-beta.24 3577 + '@rolldown/binding-win32-arm64-msvc': 1.0.0-beta.24 3578 + '@rolldown/binding-win32-ia32-msvc': 1.0.0-beta.24 3579 + '@rolldown/binding-win32-x64-msvc': 1.0.0-beta.24 3580 + 3581 + rrweb-cssom@0.7.1: {} 3582 + 3583 + rrweb-cssom@0.8.0: {} 3584 3585 run-parallel@1.2.0: 3586 dependencies: ··· 3592 3593 safe-buffer@5.2.1: {} 3594 3595 + safer-buffer@2.1.2: {} 3596 + 3597 + saxes@6.0.0: 3598 + dependencies: 3599 + xmlchars: 2.2.0 3600 + 3601 + scheduler@0.23.2: 3602 + dependencies: 3603 + loose-envify: 1.4.0 3604 + 3605 + semver@6.3.1: {} 3606 + 3607 semver@7.7.3: {} 3608 3609 shebang-command@2.0.0: ··· 3622 3623 stackback@0.0.2: {} 3624 3625 + state-local@1.0.7: {} 3626 + 3627 std-env@3.9.0: {} 3628 3629 string-width@4.2.3: ··· 3640 dependencies: 3641 ansi-regex: 5.0.1 3642 3643 + strip-indent@3.0.0: 3644 + dependencies: 3645 + min-indent: 1.0.1 3646 + 3647 strip-json-comments@3.1.1: {} 3648 3649 strip-literal@3.1.0: ··· 3654 dependencies: 3655 has-flag: 4.0.0 3656 3657 + symbol-tree@3.2.4: {} 3658 + 3659 through2@4.0.2: 3660 dependencies: 3661 readable-stream: 3.6.2 ··· 3677 3678 tinyspy@4.0.4: {} 3679 3680 + tldts-core@6.1.86: {} 3681 + 3682 + tldts@6.1.86: 3683 + dependencies: 3684 + tldts-core: 6.1.86 3685 + 3686 to-regex-range@5.0.1: 3687 dependencies: 3688 is-number: 7.0.0 3689 + 3690 + tough-cookie@5.1.2: 3691 + dependencies: 3692 + tldts: 6.1.86 3693 + 3694 + tr46@5.1.1: 3695 + dependencies: 3696 + punycode: 2.3.1 3697 3698 treeify@1.1.0: {} 3699 ··· 3752 3753 undici-types@7.8.0: {} 3754 3755 + update-browserslist-db@1.1.3(browserslist@4.26.3): 3756 + dependencies: 3757 + browserslist: 4.26.3 3758 + escalade: 3.2.0 3759 + picocolors: 1.1.1 3760 + 3761 uri-js@4.4.1: 3762 dependencies: 3763 punycode: 2.3.1 3764 3765 util-deprecate@1.0.2: {} 3766 3767 + vite-node@3.2.4(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1): 3768 dependencies: 3769 cac: 6.7.14 3770 debug: 4.4.3 3771 es-module-lexer: 1.7.0 3772 pathe: 2.0.3 3773 + vite: rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1) 3774 transitivePeerDependencies: 3775 - '@types/node' 3776 + - esbuild 3777 - jiti 3778 - less 3779 - sass 3780 - sass-embedded 3781 - stylus ··· 3785 - tsx 3786 - yaml 3787 3788 + vitest@3.2.4(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1)(jsdom@25.0.1): 3789 dependencies: 3790 '@types/chai': 5.2.2 3791 '@vitest/expect': 3.2.4 3792 + '@vitest/mocker': 3.2.4(rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1)) 3793 '@vitest/pretty-format': 3.2.4 3794 '@vitest/runner': 3.2.4 3795 '@vitest/snapshot': 3.2.4 ··· 3807 tinyglobby: 0.2.15 3808 tinypool: 1.1.1 3809 tinyrainbow: 2.0.0 3810 + vite: rolldown-vite@7.0.6(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1) 3811 + vite-node: 3.2.4(@types/node@24.0.4)(esbuild@0.25.10)(jiti@2.6.1) 3812 why-is-node-running: 2.3.0 3813 optionalDependencies: 3814 '@types/node': 24.0.4 3815 + jsdom: 25.0.1 3816 transitivePeerDependencies: 3817 + - esbuild 3818 - jiti 3819 - less 3820 - msw 3821 - sass 3822 - sass-embedded ··· 3827 - tsx 3828 - yaml 3829 3830 + w3c-xmlserializer@5.0.0: 3831 + dependencies: 3832 + xml-name-validator: 5.0.0 3833 + 3834 + webidl-conversions@7.0.0: {} 3835 + 3836 + whatwg-encoding@3.1.1: 3837 + dependencies: 3838 + iconv-lite: 0.6.3 3839 + 3840 + whatwg-mimetype@4.0.0: {} 3841 + 3842 + whatwg-url@14.2.0: 3843 + dependencies: 3844 + tr46: 5.1.1 3845 + webidl-conversions: 7.0.0 3846 + 3847 which@2.0.2: 3848 dependencies: 3849 isexe: 2.0.0 ··· 3861 string-width: 4.2.3 3862 strip-ansi: 6.0.1 3863 3864 + ws@8.18.3: {} 3865 + 3866 + xml-name-validator@5.0.0: {} 3867 + 3868 + xmlchars@2.2.0: {} 3869 + 3870 y18n@5.0.8: {} 3871 + 3872 + yallist@3.1.1: {} 3873 3874 yargs-parser@20.2.9: {} 3875
+5 -3
tsconfig.json
··· 5 "esModuleInterop": true, 6 "module": "NodeNext", 7 "moduleResolution": "NodeNext", 8 "noEmit": true, 9 "resolveJsonModule": true, 10 "noErrorTruncation": true, 11 "skipLibCheck": true, 12 "strict": true, 13 "target": "ES2022", 14 - "allowImportingTsExtensions": true 15 - }, 16 - "include": ["src", "tests"] 17 }
··· 5 "esModuleInterop": true, 6 "module": "NodeNext", 7 "moduleResolution": "NodeNext", 8 + "isolatedModules": true, 9 "noEmit": true, 10 "resolveJsonModule": true, 11 "noErrorTruncation": true, 12 "skipLibCheck": true, 13 "strict": true, 14 "target": "ES2022", 15 + "allowImportingTsExtensions": true, 16 + "noFallthroughCasesInSwitch": true, 17 + "noUncheckedSideEffectImports": true 18 + } 19 }