@simten/ui 0.1.2 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/canvas/CircuitCanvas.js.map +1 -1
- package/dist/canvas/ClockControls.js.map +1 -1
- package/dist/canvas/CompositeInspectorDialog.js.map +1 -1
- package/dist/canvas/dagre-layout.js.map +1 -1
- package/dist/canvas/drill-down-view.js.map +1 -1
- package/dist/canvas/hooks/useDetectTheme.js.map +1 -1
- package/dist/canvas/hooks/useIsMobile.js.map +1 -1
- package/dist/canvas/hooks/useSimulationSession.js.map +1 -1
- package/dist/canvas/index.js.map +1 -1
- package/dist/canvas/label-utils.js.map +1 -1
- package/dist/canvas/node-types.js.map +1 -1
- package/dist/canvas/projection.js.map +1 -1
- package/dist/canvas/types.js.map +1 -1
- package/dist/canvas/useLayout.js.map +1 -1
- package/dist/editor/components/CircuitSelector.js.map +1 -1
- package/dist/editor/components/CircuitTabBar.js.map +1 -1
- package/dist/editor/components/ClockControls.js.map +1 -1
- package/dist/editor/components/ComponentTooltip.js.map +1 -1
- package/dist/editor/components/ConflictResolutionModal.js.map +1 -1
- package/dist/editor/components/HierarchyBreadcrumb.js.map +1 -1
- package/dist/editor/components/LabelEditor.js.map +1 -1
- package/dist/editor/components/SignalOutputPanel.js.map +1 -1
- package/dist/editor/components/index.js.map +1 -1
- package/dist/editor/hooks/index.js.map +1 -1
- package/dist/editor/index.js.map +1 -1
- package/dist/editor/lib/simulation/index.js.map +1 -1
- package/dist/editor/lib/utils/circuit-flattener.js.map +1 -1
- package/dist/editor/lib/utils/component-utils.js.map +1 -1
- package/dist/editor/lib/utils/index.js.map +1 -1
- package/dist/editor/lib/visualization/index.js.map +1 -1
- package/dist/editor/lib/visualization/vcd-generator.js.map +1 -1
- package/dist/editor/stores/circuit-library-store.js.map +1 -1
- package/dist/editor/stores/circuit-preview-store.js.map +1 -1
- package/dist/editor/stores/circuit-store.js.map +1 -1
- package/dist/editor/stores/index.js.map +1 -1
- package/dist/editor/stores/ui-store.js.map +1 -1
- package/dist/editor/types/circuit.js.map +1 -1
- package/dist/editor/types/index.js.map +1 -1
- package/dist/editor/types/testbench.js.map +1 -1
- package/dist/editor/types/testing.js.map +1 -1
- package/dist/editor/types/ui-model.js.map +1 -1
- package/dist/editor/types/ui.js.map +1 -1
- package/dist/editor/types/visual.js.map +1 -1
- package/dist/editor/utils/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.js.map +1 -1
- package/dist/nodes/BaseNode.js.map +1 -1
- package/dist/nodes/CompositeBadge.js.map +1 -1
- package/dist/nodes/ConsoleNode.js.map +1 -1
- package/dist/nodes/EmbedConsoleNode.js.map +1 -1
- package/dist/nodes/EmbedScreenNode.js.map +1 -1
- package/dist/nodes/EthFrameInputNode.js.map +1 -1
- package/dist/nodes/InputNode.js.map +1 -1
- package/dist/nodes/LogicGateNode.js.map +1 -1
- package/dist/nodes/NicFifoNode.js.map +1 -1
- package/dist/nodes/NodeData.js.map +1 -1
- package/dist/nodes/NumericInputNode.js.map +1 -1
- package/dist/nodes/OutputNode.js.map +1 -1
- package/dist/nodes/RAMNode.js.map +1 -1
- package/dist/nodes/ROMNode.js.map +1 -1
- package/dist/nodes/RV32IInstrMemNode.js.map +1 -1
- package/dist/nodes/RasterDisplayNode.js.map +1 -1
- package/dist/nodes/RegisterNode.js.map +1 -1
- package/dist/nodes/ScreenNode.js.map +1 -1
- package/dist/nodes/UartTxNode.js.map +1 -1
- package/dist/nodes/index.js.map +1 -1
- package/dist/primitives/button.js.map +1 -1
- package/dist/primitives/index.js.map +1 -1
- package/dist/primitives/sheet.js.map +1 -1
- package/dist/primitives/tooltip.js.map +1 -1
- package/dist/sandbox/SandboxProvider.js.map +1 -1
- package/dist/sandbox/index.js.map +1 -1
- package/dist/sandbox/useSandbox.js.map +1 -1
- package/dist/share/encode-source.js.map +1 -1
- package/dist/share/index.js.map +1 -1
- package/dist/waveform/WaveformViewer.js.map +1 -1
- package/package.json +7 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useSandbox.js","sourceRoot":"","sources":["../../src/sandbox/useSandbox.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useSandbox.js","sourceRoot":"","sources":["../../src/sandbox/useSandbox.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * useSandbox — iframe execution sandbox manager (HOST side of the bridge).\n *\n * The iframe-side counterpart lives at `apps/sandbox/src/main.ts`. Most\n * consumers should NOT call this directly — use `useCircuitSimulator` from\n * `@simten/embed`, which composes this transport with circuit-level concerns.\n * See `apps/web/content/docs/architecture.mdx` → \"Runtime topology\".\n *\n * Creates and manages a hidden iframe at SANDBOX_ORIGIN with\n * sandbox=\"allow-scripts\". All circuit compilation and simulation\n * runs inside the sandbox — never in the main frame.\n *\n * Security guarantees:\n * - Separate origin → browser enforces isolation (no access to\n * main-frame cookies, localStorage, or DOM)\n * - sandbox=\"allow-scripts\" blocks ALL network at the browser\n * kernel level (no fetch, XHR, WebSocket possible)\n * - postMessage boundary: only plain JSON crosses. No functions,\n * no Maps, no class instances.\n * - Infinite loops: 5s timeout kills and recreates the iframe;\n * main UI is unaffected.\n *\n * Usage:\n * const sandbox = useSandbox();\n * const result = await sandbox.compile(source);\n * const tick = await sandbox.tick({ a: true });\n */\n\nimport { useRef, useEffect, useCallback } from 'react';\nimport type { Circuit } from '@simten/core';\nimport type { RLEValue } from '@simten/core/api';\n\n// ============================================================================\n// Config\n// ============================================================================\n\n// Sandbox origin: defaults work for normal dev (localhost:3002) and production\n// (sandbox.simten.dev). VITE_SANDBOX_ORIGIN is an optional escape hatch for\n// unusual setups (e.g. pointing local dev at a staging sandbox).\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst env = typeof import.meta !== 'undefined' ? (import.meta as any).env : undefined;\nconst SANDBOX_ORIGIN: string =\n env?.VITE_SANDBOX_ORIGIN\n || (env?.PROD ? 'https://sandbox.simten.dev' : 'http://localhost:3002');\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * State of nodes on a peripheral's bus — exposed across the sandbox boundary\n * so the UI can render displays, consoles, NIC FIFOs, etc.\n *\n * Values are whatever the simulator stores for each node: number | boolean |\n * Map<number, number> | string. The sandbox only snapshots state for nodes\n * tagged (via circuit `meta.synthesizable: false`) or wired directly to such\n * a node — the sim analog of memory-mapped I/O.\n */\nexport type PeripheralState = Record<string, unknown>;\n\nexport interface CompileResult {\n circuits: Circuit[];\n libraryCircuits: Circuit[];\n portValues: Record<string, number | boolean>;\n peripheralState?: PeripheralState;\n}\n\nexport interface TickResult {\n portValues: Record<string, number | boolean>;\n cycle: number;\n peripheralState?: PeripheralState;\n /** Snapshot id returned when the tick was requested with `{ snapshot: true }`. */\n snapshotId?: number;\n}\n\nexport interface SimulateResult {\n circuitName: string;\n signals: Record<string, RLEValue[]>;\n vcd: string;\n ticks: number;\n steadyStateAt?: number;\n}\n\nexport interface ResetResult {\n portValues: Record<string, number | boolean>;\n peripheralState?: PeripheralState;\n}\n\nexport interface SetNodeResult {\n portValues: Record<string, number | boolean>;\n peripheralState?: PeripheralState;\n /** Snapshot id returned when `{ snapshot: true }` was passed. */\n snapshotId?: number;\n}\n\nexport interface SnapshotResult {\n /** Undefined for combinational-only circuits (nothing to snapshot). */\n snapshotId?: number;\n}\n\nexport interface RestoreResult {\n portValues: Record<string, number | boolean>;\n cycle: number;\n peripheralState?: PeripheralState;\n}\n\nexport interface SandboxError {\n type: 'error';\n error: string;\n}\n\nexport type SandboxResult =\n | ({ type: 'compiled' } & CompileResult)\n | ({ type: 'compiled-ir' } & { portValues: Record<string, number | boolean>; peripheralState?: PeripheralState; snapshotId?: number })\n | ({ type: 'ticked' } & TickResult)\n | ({ type: 'ticked-n' } & TickResult)\n | ({ type: 'scanned-port' } & { values: number[] })\n | ({ type: 'simulated' } & SimulateResult)\n | ({ type: 'reset' } & ResetResult)\n | ({ type: 'set-node' } & SetNodeResult)\n | ({ type: 'snapshot' } & SnapshotResult)\n | ({ type: 'restored' } & RestoreResult)\n | ({ type: 'pruned' } & { })\n | ({ type: 'disposed' } & { })\n | ({ type: 'error' } & SandboxError);\n\n// ============================================================================\n// Sandbox manager (singleton per hook instance)\n// ============================================================================\n\ntype PendingResolve = (result: SandboxResult) => void;\n\ninterface SandboxState {\n iframe: HTMLIFrameElement | null;\n ready: boolean;\n pending: Map<string, PendingResolve>;\n readyQueue: Array<() => void>;\n idCounter: number;\n}\n\nfunction createIframe(\n state: SandboxState,\n container: HTMLElement,\n handleMessage: (event: MessageEvent) => void,\n onCrash: () => void,\n): HTMLIFrameElement {\n // Remove old iframe if any\n if (state.iframe) {\n state.iframe.remove();\n state.iframe = null;\n state.ready = false;\n }\n\n const iframe = document.createElement('iframe');\n iframe.src = SANDBOX_ORIGIN;\n // allow-same-origin: keeps iframe's declared origin (sandbox.simten.dev / localhost:3002)\n // so the browser can load scripts and Vite dev server works.\n // Origin isolation still holds: the main app (simten.dev / localhost:3001) is a\n // different origin, so the iframe cannot access the main app's cookies or localStorage.\n iframe.setAttribute('sandbox', 'allow-scripts allow-same-origin');\n iframe.style.cssText = 'display:none;width:0;height:0;position:absolute;';\n iframe.setAttribute('aria-hidden', 'true');\n\n // Recover from catastrophic iframe crash (e.g. OOM, failed load)\n iframe.onerror = onCrash;\n\n container.appendChild(iframe);\n state.iframe = iframe;\n state.ready = false;\n\n window.addEventListener('message', handleMessage);\n\n return iframe;\n}\n\nfunction nextId(state: SandboxState): string {\n return `sb-${++state.idCounter}`;\n}\n\n// ============================================================================\n// Hook\n// ============================================================================\n\nexport interface CompileIRResult {\n portValues: Record<string, number | boolean>;\n peripheralState?: PeripheralState;\n /** Snapshot of the initial state, returned when `{ snapshot: true }` was requested. */\n snapshotId?: number;\n}\n\n/** Serialized eval entry used to transfer eval functions to the sandbox */\nexport interface EvalSource {\n evalSource: string;\n onTickSource?: string;\n inputNames: string[];\n outputNames: string[];\n stateKeys?: string[];\n}\n\n/** Slot IDs are arbitrary strings — use any unique identifier per simulation context. */\nexport type SimSlot = string;\n\nexport interface SandboxHandle {\n compile(source: string, slot?: SimSlot): Promise<CompileResult | SandboxError>;\n /**\n * Compile from Circuit IR (e.g. auto-harnessed circuit).\n * Optional evalSources map transfers eval functions from the caller's context.\n * If omitted, inherits eval functions from any previously-compiled slot.\n * Pass `{ snapshot: true }` to capture the initial state for time-travel.\n */\n compileIR(circuit: any, libraryCircuits: any[], slot: SimSlot, options?: { evalSources?: Record<string, EvalSource>; snapshot?: boolean }): Promise<CompileIRResult | SandboxError>;\n /** Pass `{ snapshot: true }` to also capture a post-tick snapshot for time-travel. */\n tick(inputs?: Record<string, number | boolean>, slot?: SimSlot, options?: { snapshot?: boolean }): Promise<TickResult | SandboxError>;\n /**\n * Advance the simulator by N ticks in a single round-trip. Returns final\n * port values + one peripheral-state snapshot. Use for demos that need\n * many ticks per frame (raster displays, batched compute).\n * Pass `{ snapshot: true }` to capture a post-tickN snapshot.\n */\n tickN(n: number, inputs?: Record<string, number | boolean>, slot?: SimSlot, options?: { snapshot?: boolean }): Promise<TickResult | SandboxError>;\n /**\n * Combinationally scan a debug address input across 0..count-1, sampling\n * a value output port after each setting. Returns the array in one\n * round-trip. Clock is NOT advanced. Models JTAG-style halted-mode reads.\n */\n scanPort(addrNodeId: string, valuePortKey: string, count: number, slot?: SimSlot): Promise<{ values: number[] } | SandboxError>;\n simulate(params: {\n source?: string;\n ticks: number;\n inputs?: Record<string, number | boolean>;\n memoryData?: Record<string, Record<string, number>>;\n slot?: SimSlot;\n }): Promise<SimulateResult | SandboxError>;\n reset(slot?: SimSlot): Promise<ResetResult | SandboxError>;\n setNode(nodeId: string, value: number | boolean | Map<number, number>, slot?: SimSlot, options?: { snapshot?: boolean }): Promise<SetNodeResult | SandboxError>;\n /**\n * Take a snapshot of the current simulator state. Returns an opaque\n * snapshotId the host can later pass to `restore()`. For combinational-only\n * circuits returns `{ snapshotId: undefined }` — nothing to save.\n */\n snapshot(slot?: SimSlot): Promise<SnapshotResult | SandboxError>;\n /** Restore the simulator to a previously-captured snapshot. */\n restore(snapshotId: number, slot?: SimSlot): Promise<RestoreResult | SandboxError>;\n /**\n * Drop all snapshots with id <= keepAfterId. Called by the host when its\n * local history cap is exceeded, so old snapshots get garbage-collected\n * inside the sandbox. Silently succeeds if the slot has no snapshots.\n */\n pruneSnapshots(keepAfterId: number, slot?: SimSlot): Promise<{ type: 'pruned' } | SandboxError>;\n /** Free a slot's simulator + library when no longer needed (e.g. embed unmount). */\n dispose(slot: SimSlot): Promise<void>;\n isReady(): boolean;\n}\n\nexport function useSandbox(): SandboxHandle {\n const stateRef = useRef<SandboxState>({\n iframe: null,\n ready: false,\n pending: new Map(),\n readyQueue: [],\n idCounter: 0,\n });\n\n // Container div injected into document body (avoids React tree)\n const containerRef = useRef<HTMLDivElement | null>(null);\n\n const handleMessageRef = useRef<(event: MessageEvent) => void>(() => {});\n\n const recreateIframe = useCallback(() => {\n const state = stateRef.current;\n const container = containerRef.current;\n if (!container) return;\n\n // Fail all pending promises — sandbox crashed, no response coming\n for (const [, resolve] of state.pending) {\n resolve({ type: 'error', error: 'Sandbox restarted (crash)' });\n }\n state.pending.clear();\n state.readyQueue = [];\n\n window.removeEventListener('message', handleMessageRef.current);\n createIframe(state, container, handleMessageRef.current, recreateIframeRef.current);\n }, []);\n\n const handleMessage = useCallback((event: MessageEvent) => {\n if (event.origin !== SANDBOX_ORIGIN) return;\n\n const state = stateRef.current;\n const data = event.data as { type: string; id?: string };\n\n if (data.type === 'ready') {\n state.ready = true;\n // Flush queued sends\n for (const fn of state.readyQueue) fn();\n state.readyQueue = [];\n return;\n }\n\n if (!data.id) return;\n\n const resolve = state.pending.get(data.id);\n if (!resolve) return;\n\n state.pending.delete(data.id);\n resolve(data as SandboxResult);\n }, []);\n\n // Keep refs in sync\n handleMessageRef.current = handleMessage;\n const recreateIframeRef = useRef(recreateIframe);\n recreateIframeRef.current = recreateIframe;\n\n useEffect(() => {\n const container = document.createElement('div');\n container.style.cssText = 'position:absolute;left:-9999px;top:-9999px;';\n document.body.appendChild(container);\n containerRef.current = container;\n\n const state = stateRef.current;\n createIframe(state, container, handleMessage, recreateIframe);\n\n return () => {\n window.removeEventListener('message', handleMessage);\n container.remove();\n containerRef.current = null;\n };\n }, [handleMessage]);\n\n // No timeout here — the sandbox's own 5s worker timeout always sends back an\n // error response if user code hangs. recreateIframe() is only called by the\n // iframe's onerror handler (catastrophic crash, failed load, OOM).\n const send = useCallback(\n <T extends SandboxResult>(message: object): Promise<T | SandboxError> => {\n return new Promise((resolve) => {\n const state = stateRef.current;\n const id = nextId(state);\n const msgWithId = { ...message, id };\n\n state.pending.set(id, resolve as PendingResolve);\n\n const doSend = () => {\n const iframe = state.iframe;\n if (!iframe?.contentWindow) {\n state.pending.delete(id);\n resolve({ type: 'error', error: 'Sandbox iframe not available' } as SandboxError);\n return;\n }\n iframe.contentWindow.postMessage(msgWithId, SANDBOX_ORIGIN);\n };\n\n if (state.ready) {\n doSend();\n } else {\n state.readyQueue.push(doSend);\n }\n });\n },\n [],\n );\n\n const compile = useCallback(\n async (source: string, slot: SimSlot = 'default'): Promise<CompileResult | SandboxError> => {\n const result = await send<{ type: 'compiled' } & CompileResult>({ type: 'compile', source, slot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'compiled' } & CompileResult;\n return { circuits: r.circuits, libraryCircuits: r.libraryCircuits, portValues: r.portValues, peripheralState: r.peripheralState };\n },\n [send],\n );\n\n const compileIR = useCallback(\n async (circuit: any, libraryCircuits: any[], slot: SimSlot, options?: { evalSources?: Record<string, EvalSource>; snapshot?: boolean }): Promise<CompileIRResult | SandboxError> => {\n const result = await send<{ type: 'compiled-ir' } & CompileIRResult>({\n type: 'compile-ir',\n circuit,\n libraryCircuits,\n slot,\n evalSources: options?.evalSources,\n snapshot: options?.snapshot,\n });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'compiled-ir' } & CompileIRResult;\n return { portValues: r.portValues, peripheralState: r.peripheralState, snapshotId: r.snapshotId };\n },\n [send],\n );\n\n const tick = useCallback(\n async (inputs?: Record<string, number | boolean>, slot: SimSlot = 'default', options?: { snapshot?: boolean }): Promise<TickResult | SandboxError> => {\n const result = await send<{ type: 'ticked' } & TickResult>({ type: 'tick', inputs, slot, snapshot: options?.snapshot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'ticked' } & TickResult;\n return { portValues: r.portValues, cycle: r.cycle, peripheralState: r.peripheralState, snapshotId: r.snapshotId };\n },\n [send],\n );\n\n const tickN = useCallback(\n async (n: number, inputs?: Record<string, number | boolean>, slot: SimSlot = 'default', options?: { snapshot?: boolean }): Promise<TickResult | SandboxError> => {\n const result = await send<{ type: 'ticked-n' } & TickResult>({ type: 'tick-n', n, inputs, slot, snapshot: options?.snapshot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'ticked-n' } & TickResult;\n return { portValues: r.portValues, cycle: r.cycle, peripheralState: r.peripheralState, snapshotId: r.snapshotId };\n },\n [send],\n );\n\n const scanPort = useCallback(\n async (addrNodeId: string, valuePortKey: string, count: number, slot: SimSlot = 'default'): Promise<{ values: number[] } | SandboxError> => {\n const result = await send<{ type: 'scanned-port'; values: number[] }>({ type: 'scan-port', addrNodeId, valuePortKey, count, slot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'scanned-port'; values: number[] };\n return { values: r.values };\n },\n [send],\n );\n\n const simulate = useCallback(\n async (params: {\n source?: string;\n ticks: number;\n inputs?: Record<string, number | boolean>;\n memoryData?: Record<string, Record<string, number>>;\n }): Promise<SimulateResult | SandboxError> => {\n const result = await send<{ type: 'simulated' } & SimulateResult>({ type: 'simulate', ...params });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'simulated' } & SimulateResult;\n return {\n circuitName: r.circuitName,\n signals: r.signals,\n vcd: r.vcd,\n ticks: r.ticks,\n steadyStateAt: r.steadyStateAt,\n };\n },\n [send],\n );\n\n const reset = useCallback(async (slot: SimSlot = 'default'): Promise<ResetResult | SandboxError> => {\n const result = await send<{ type: 'reset' } & ResetResult>({ type: 'reset', slot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'reset' } & ResetResult;\n return { portValues: r.portValues, peripheralState: r.peripheralState };\n }, [send]);\n\n const setNode = useCallback(\n async (nodeId: string, value: number | boolean | Map<number, number>, slot: SimSlot = 'default', options?: { snapshot?: boolean }): Promise<SetNodeResult | SandboxError> => {\n const result = await send<{ type: 'set-node' } & SetNodeResult>({ type: 'set-node', nodeId, value, slot, snapshot: options?.snapshot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'set-node' } & SetNodeResult;\n return { portValues: r.portValues, peripheralState: r.peripheralState, snapshotId: r.snapshotId };\n },\n [send],\n );\n\n const snapshot = useCallback(\n async (slot: SimSlot = 'default'): Promise<SnapshotResult | SandboxError> => {\n const result = await send<{ type: 'snapshot' } & SnapshotResult>({ type: 'snapshot', slot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'snapshot' } & SnapshotResult;\n return { snapshotId: r.snapshotId };\n },\n [send],\n );\n\n const restore = useCallback(\n async (snapshotId: number, slot: SimSlot = 'default'): Promise<RestoreResult | SandboxError> => {\n const result = await send<{ type: 'restored' } & RestoreResult>({ type: 'restore', snapshotId, slot });\n if ('error' in result) return result as SandboxError;\n const r = result as { type: 'restored' } & RestoreResult;\n return { portValues: r.portValues, cycle: r.cycle, peripheralState: r.peripheralState };\n },\n [send],\n );\n\n const pruneSnapshots = useCallback(\n async (keepAfterId: number, slot: SimSlot = 'default'): Promise<{ type: 'pruned' } | SandboxError> => {\n const result = await send<{ type: 'pruned' }>({ type: 'prune-snapshots', keepAfterId, slot });\n if ('error' in result) return result as SandboxError;\n return result as { type: 'pruned' };\n },\n [send],\n );\n\n const dispose = useCallback(\n async (slot: SimSlot): Promise<void> => {\n await send({ type: 'dispose', slot });\n },\n [send],\n );\n\n const isReady = useCallback(() => stateRef.current.ready, []);\n\n return { compile, compileIR, tick, tickN, scanPort, simulate, reset, setNode, snapshot, restore, pruneSnapshots, dispose, isReady };\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encode-source.js","sourceRoot":"","sources":["../../src/share/encode-source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,CAAC;QACH,OAAO,iCAAiC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC"}
|
|
1
|
+
{"version":3,"file":"encode-source.js","sourceRoot":"","sources":["../../src/share/encode-source.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAC7B,iCAAiC,GAClC,MAAM,WAAW,CAAC;AAEnB,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AAEzC,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,OAAO,6BAA6B,CAAC,MAAM,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,OAAe;IACjD,IAAI,CAAC;QACH,OAAO,iCAAiC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,OAAO,OAAO,CAAC,MAAM,GAAG,oBAAoB,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,MAAc;IAC7C,MAAM,GAAG,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;SACnD,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,CAAC;AACd,CAAC","sourcesContent":["import {\n compressToEncodedURIComponent,\n decompressFromEncodedURIComponent,\n} from \"lz-string\";\n\nexport const INLINE_URL_THRESHOLD = 4000;\n\nexport function encodeSourceForUrl(source: string): string {\n return compressToEncodedURIComponent(source);\n}\n\nexport function decodeSourceFromUrl(encoded: string): string | null {\n try {\n return decompressFromEncodedURIComponent(encoded) || null;\n } catch {\n return null;\n }\n}\n\nexport function shouldUseShortLink(encoded: string): boolean {\n return encoded.length > INLINE_URL_THRESHOLD;\n}\n\n/**\n * 10 bytes (80 bits) of SHA-256, hex-encoded → 20-char key.\n *\n * Content-addressed: identical sources collapse to one key, so re-sharing\n * the same circuit is idempotent and `put` is a safe overwrite-with-same-value.\n * Birthday collisions are actuarially impossible at any plausible scale.\n */\nexport async function hashSource(source: string): Promise<string> {\n const buf = new TextEncoder().encode(source);\n const digest = await crypto.subtle.digest(\"SHA-256\", buf);\n return Array.from(new Uint8Array(digest).slice(0, 10))\n .map((b) => b.toString(16).padStart(2, \"0\"))\n .join(\"\");\n}\n"]}
|
package/dist/share/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/share/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,GACX,MAAM,oBAAoB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/share/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,UAAU,GACX,MAAM,oBAAoB,CAAC","sourcesContent":["export {\n INLINE_URL_THRESHOLD,\n encodeSourceForUrl,\n decodeSourceFromUrl,\n shouldUseShortLink,\n hashSource,\n} from \"./encode-source.js\";\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WaveformViewer.js","sourceRoot":"","sources":["../../src/waveform/WaveformViewer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,QAAQ,EAAwC,MAAM,OAAO,CAAC;AA2BhH,MAAM,UAAU,QAAQ,CAAC,GAAW;IAClC,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAI9B,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,IAAI,OAAO,GAAG,SAAS,CAAC;IAExB,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACtC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YACjF,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,GAAG,SAAS,CAAC;YACjD,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC7B,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;YACvC,UAAU,CAAC,GAAG,EAAE,CAAC;QACnB,CAAC;aAAM,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YACzC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;gBACrC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACpB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,GAAG,UAAU,CAAC,EAAE,KAAK,EAAE,CAAC;YACvD,CAAC;QACH,CAAC;IACH,CAAC;IAED,sBAAsB;IACtB,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,KAAK,CAAC,MAAM,IAAI,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACnD,CAAC;IACH,CAAC;IAED,+BAA+B;IAC/B,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,IAAI,WAAW,GAAG,CAAC,CAAC;IACpB,MAAM,UAAU,GAAiE,EAAE,CAAC;IAEpF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE5B,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,WAAW,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC1C,IAAI,WAAW,GAAG,OAAO;gBAAE,OAAO,GAAG,WAAW,CAAC;YACjD,SAAS;QACX,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAChG,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;YAC5B,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,MAAM,CAAC,EAAE,CAAC;gBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;YACvE,SAAS;QACX,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACnC,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;gBACjB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;gBACvC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAC3C,IAAI,MAAM,CAAC,EAAE,CAAC;oBAAE,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;YACzF,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC;IAEtB,gCAAgC;IAChC,MAAM,WAAW,GAAyC,EAAE,CAAC;IAC7D,MAAM,SAAS,GAAqC,EAAE,CAAC;IAEvD,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,MAAM,IAAI,GAAqB,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5D,WAAW,CAAC,EAAE,CAAC,GAAG,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC9C,SAAS,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAE3C,KAAK,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,CAAC;QAC7C,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC;YAAE,SAAS;QAC/B,SAAS,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC;QACtB,KAAK,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAClC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,6DAA6D;IAC7D,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAU,CAAC;IACnC,MAAM,OAAO,GAAgB,EAAE,CAAC;IAEhC,KAAK,MAAM,EAAE,IAAI,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI;YAAE,SAAS;QACpB,gEAAgE;QAChE,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAyB;QAChE,MAAM,GAAG,GAAG,CAAC,GAAG,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAEhD,IAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS;QAChC,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAElB,OAAO,CAAC,IAAI,CAAC;YACX,GAAG;YACH,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE;SAC9B,CAAC,CAAC;IACL,CAAC;IAED,iCAAiC;IACjC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAU,CAAC;IACtC,MAAM,MAAM,GAAe,EAAE,CAAC;IAC9B,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,SAAS,CAAC,2BAA2B;QAChE,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACxB,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACnB,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC;IACH,CAAC;IAED,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;AAC7C,CAAC;AAED,+EAA+E;AAC/E,YAAY;AACZ,+EAA+E;AAE/E,MAAM,WAAW,GAAG,EAAE,CAAC;AACvB,MAAM,UAAU,GAAG,EAAE,CAAC;AACtB,MAAM,WAAW,GAAG,GAAG,CAAC;AACxB,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,gBAAgB,GAAG,EAAE,CAAC;AAC5B,MAAM,WAAW,GAAG,SAAS,CAAC;AAC9B,MAAM,YAAY,GAAG,SAAS,CAAC;AAC/B,MAAM,cAAc,GAAG,SAAS,CAAC;AAEjC,SAAS,WAAW,CAAC,MAA4B;IAC/C,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAkE;IAC3G,MAAM,CAAC,GAAG,UAAU,CAAC;IACrB,MAAM,IAAI,GAAG,CAAC,CAAC;IACf,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;IAElB,IAAI,CAAC,GAAG,EAAE,CAAC;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC;QAC1B,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;YACzC,IAAI,CAAC,KAAK,KAAK;gBAAE,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,CAAC,IAAI,MAAM,CAAC,GAAG,WAAW,IAAI,CAAC,EAAE,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,CAAC,GAAG,MAAM,MAAM,CAAC,MAAM,GAAG,WAAW,IAAI,GAAG,QAAQ,GAAG,IAAI,CAAC;IAE1E,OAAO,CACL,eAAK,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,aACvD,eAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,GAAI,EAC9C,eAAM,CAAC,EAAE,CAAC,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,GAAI,IACvD,CACP,CAAC;AACJ,CAAC;AAED,SAAS,WAAW,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAkE;IAC3G,MAAM,CAAC,GAAG,UAAU,CAAC;IACrB,MAAM,GAAG,GAAG,CAAC,CAAC;IACd,MAAM,GAAG,GAAG,GAAG,CAAC;IAChB,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;IACpB,MAAM,KAAK,GAAG,CAAC,CAAC;IAEhB,MAAM,KAAK,GAAsB,EAAE,CAAC;IACpC,IAAI,QAAQ,GAAG,CAAC,CAAC;IACjB,IAAI,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAEvB,SAAS,OAAO,CAAC,KAAa,EAAE,GAAW,EAAE,GAAqB;QAChE,MAAM,EAAE,GAAG,KAAK,GAAG,WAAW,CAAC;QAC/B,MAAM,EAAE,GAAG,GAAG,GAAG,WAAW,CAAC;QAC7B,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClG,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,CAAC;QACzB,MAAM,MAAM,GAAG;YACb,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC9C,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC9C,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE;YAC1B,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC9C,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,QAAQ,GAAG,CAAC,CAAC,IAAI,GAAG,EAAE;YAC9C,GAAG,EAAE,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,EAAE;SAC3B,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACZ,KAAK,CAAC,IAAI,CACR,wBACE,kBAAS,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,aAAa,EAAE,GAAG,GAAI,EAC/G,QAAQ,IAAI,EAAE,IAAI,CACjB,eAAM,CAAC,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,UAAU,EAAC,QAAQ,EAAC,gBAAgB,EAAC,SAAS,EAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,UAAU,EAAC,WAAW,YAC/H,GAAG,GACC,CACR,KANK,KAAK,CAOT,CACL,CAAC;IACJ,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACxC,IAAI,CAAC,KAAK,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC,KAAK,MAAM,EAAE,CAAC;YAChD,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;YAC7B,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;gBACtB,QAAQ,GAAG,CAAC,CAAC;gBACb,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,CACL,cAAK,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,YACtD,KAAK,GACF,CACP,CAAC;AACJ,CAAC;AAED,+EAA+E;AAC/E,iBAAiB;AACjB,+EAA+E;AAE/E;;;GAGG;AACH,SAAS,YAAY,CAAC,OAAoB,EAAE,QAAgB;IAC1D,MAAM,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;IAE/D,4CAA4C;IAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC;YAAE,SAAS;QACpC,MAAM,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAC;YAAE,QAAQ,CAAC,GAAG,CAAC,cAAc,EAAE,EAAE,CAAC,CAAC;QACpE,QAAQ,CAAC,GAAG,CAAC,cAAc,CAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IAED,MAAM,MAAM,GAAoC,EAAE,CAAC;IACnD,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC;QAAE,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;IAEhF,KAAK,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,IAAI,QAAQ,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAeD,MAAM,UAAU,cAAc,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,OAAO,EAAuB;IAC7I,MAAM,SAAS,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,eAAe,EAAE,kBAAkB,CAAC,GAAG,QAAQ,CAAc,IAAI,GAAG,EAAE,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,eAAe,IAAI,MAAM,CAAC,OAAO,CAAC;IAClD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,SAAS,CAAC,OAAO;YAAE,SAAS,CAAC,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QACxD,kBAAkB,CAAC,IAAI,GAAG,EAAE,CAAC,CAAC;IAChC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAEV,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,CAAgC,EAAE,EAAE;QACxE,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;QACjC,IAAI,CAAC,IAAI;YAAE,OAAO;QAClB,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,EAAE,EAAE;YACrB,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,EAAE,MAAgB,CAAC;YACzC,IAAI,IAAI;gBAAE,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC;QACF,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QACxB,CAAC,CAAC,MAAM,CAAC,KAAK,GAAG,EAAE,CAAC;IACtB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,cAAc,GAAG,WAAW,CAAC,GAAG,EAAE;QACtC,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC;QACrD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACtC,MAAM,CAAC,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC,CAAC,IAAI,GAAG,GAAG,CAAC;QACb,CAAC,CAAC,QAAQ,GAAG,GAAG,OAAO,MAAM,CAAC;QAC9B,CAAC,CAAC,KAAK,EAAE,CAAC;QACV,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;IAC3B,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnB,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAa,EAAE,EAAE;QAChD,kBAAkB,CAAC,CAAC,IAAI,EAAE,EAAE;YAC1B,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;YAC3B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;gBAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;;gBACnC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAE/F,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,GAAG,WAAW,EAAE,GAAG,CAAC,CAAC;IAI5D,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,MAAM,SAAS,GAAU,EAAE,CAAC;IAE5B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACnD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;YACvF,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;YAClF,IAAI,CAAC,SAAS,EAAE,CAAC;gBACf,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;oBAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;oBACvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,cAAc,CAAC;oBACrD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;oBACvD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBACpD,CAAC;YACH,CAAC;QACH,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,GAAG,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAChC,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,YAAY,CAAC;gBACnD,SAAS,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;gBACvD,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,cAAc,GAAkB;QACpC,UAAU,EAAE,sBAAsB;QAClC,SAAS,EAAE,kCAAkC;QAC7C,QAAQ,EAAE,EAAE;QACZ,KAAK,EAAE,kCAAkC;QACzC,UAAU,EAAE,MAAM;QAClB,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,MAAM;QACf,aAAa,EAAE,QAAQ;QACvB,SAAS,EAAE,CAAC;KACb,CAAC;IAEF,MAAM,WAAW,GAAkB;QACjC,OAAO,EAAE,SAAS;QAClB,OAAO,EAAE,MAAM;QACf,UAAU,EAAE,QAAQ;QACpB,GAAG,EAAE,CAAC;QACN,YAAY,EAAE,kCAAkC;QAChD,QAAQ,EAAE,EAAE;QACZ,UAAU,EAAE,GAAG;KAChB,CAAC;IAEF,OAAO,CACL,eAAK,KAAK,EAAE,cAAc,aACxB,0BAAQ;;;;;;;;;;OAUP,GAAS,EAEV,eAAK,KAAK,EAAE,WAAW,aACrB,uCAAsB,EACtB,gBAAM,KAAK,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,aACtC,OAAO,cAAK,MAAM,CAAC,KAAK,YACxB,aAAa,IAAI,IAAI,IAAI,CACxB,gBAAM,KAAK,EAAE,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC,EAAE,+BAAiB,aAAa,IAAQ,CACvF,IACI,EACP,iBAAQ,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,QAAQ,OAAO,MAAM,yBAEvE,EACT,iBAAQ,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,EAAE,KAAK,EAAE,yBAE9D,EACT,gBAAO,GAAG,EAAE,YAAY,EAAE,IAAI,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM,EAAC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,GAAI,EAC7G,OAAO,IAAI,CACV,iBAAQ,SAAS,EAAC,QAAQ,EAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAC,sBAAsB,gBAAY,sBAAsB,uBAElG,CACV,IACG,EAEN,eAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,SAAS,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,aAEvE,eAAK,KAAK,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,kCAAkC,EAAE,aAChG,cAAK,KAAK,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,GAAI,EACxC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gCACxB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oCAChC,MAAM,SAAS,GAAG,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;oCACjD,OAAO,CACL,eAEE,SAAS,EAAC,cAAc,EACxB,KAAK,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,EACnC,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,aAErC,eAAM,KAAK,EAAE,EAAE,QAAQ,EAAE,CAAC,EAAE,YAAG,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAQ,EAC5D,yBAAO,GAAG,CAAC,KAAK,GAAQ,KANnB,MAAM,CAAC,EAAE,CAOV,CACP,CAAC;gCACJ,CAAC;gCACD,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;gCAC5C,OAAO,CACL,cAEE,KAAK,EAAE;wCACL,KAAK,EAAE,WAAW;wCAClB,YAAY,EAAE,CAAC;wCACf,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;wCAC7B,SAAS,EAAE,OAAO;wCAClB,QAAQ,EAAE,EAAE;wCACZ,UAAU,EAAE,WAAW;wCACvB,KAAK,EAAE,GAAG,CAAC,KAAK;wCAChB,QAAQ,EAAE,QAAQ;wCAClB,YAAY,EAAE,UAAU;wCACxB,UAAU,EAAE,QAAQ;wCACpB,MAAM,EAAE,UAAU;wCAClB,UAAU,EAAE,GAAG,UAAU,IAAI;wCAC7B,YAAY,EAAE,kCAAkC;qCACjD,EACD,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,YAEpB,GAAG,CAAC,MAAM,CAAC,IAAI,IAlBX,OAAO,CAAC,EAAE,CAmBX,CACP,CAAC;4BACJ,CAAC,CAAC,IACE,EAGN,eAAK,GAAG,EAAE,SAAS,EAAE,SAAS,EAAC,WAAW,EAAC,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,aAEnG,eAAK,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,aACtE,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC9C,wBACE,eAAM,EAAE,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAC,wBAAwB,EAAC,WAAW,EAAE,CAAC,GAAI,EAC3H,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CACd,eAAM,CAAC,EAAE,CAAC,GAAG,WAAW,GAAG,WAAW,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAC,QAAQ,EAAC,IAAI,EAAC,kCAAkC,EAAC,QAAQ,EAAE,CAAC,EAAE,UAAU,EAAC,WAAW,YAC/I,CAAC,GACG,CACR,KANK,CAAC,CAOL,CACL,CAAC,EACD,aAAa,IAAI,IAAI,IAAI,CACxB,eAAM,EAAE,EAAE,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE,aAAa,EAAE,MAAM,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,EAAE,eAAe,EAAC,KAAK,GAAG,CAC5J,IACG,EAGL,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE;gCACnB,IAAI,GAAG,CAAC,IAAI,KAAK,cAAc,EAAE,CAAC;oCAChC,OAAO,CACL,cAEE,KAAK,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,uBAAuB,EAAE,YAAY,EAAE,kCAAkC,EAAE,SAAS,EAAE,kCAAkC,EAAE,IADpK,OAAO,CAAC,EAAE,CAEf,CACH,CAAC;gCACJ,CAAC;gCAED,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,GAAG,CAAC;gCAC9B,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;gCACzC,OAAO,CACL,eAAsB,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,kCAAkC,EAAE,aACxH,KAAK;4CACJ,CAAC,CAAC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAI;4CACxE,CAAC,CAAC,KAAC,WAAW,IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,GAAI,EAE1E,eAAK,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAC/G,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAC9C,eAAc,EAAE,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAC,wBAAwB,EAAC,WAAW,EAAE,CAAC,IAAlH,CAAC,CAAqH,CAClI,CAAC,EACD,aAAa,IAAI,IAAI,IAAI,CACxB,eAAM,EAAE,EAAE,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,aAAa,GAAG,WAAW,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAC,SAAS,EAAC,WAAW,EAAE,CAAC,EAAE,eAAe,EAAC,KAAK,GAAG,CACzJ,IACG,KAZE,OAAO,CAAC,EAAE,CAad,CACP,CAAC;4BACJ,CAAC,CAAC,IACE,IACF,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"WaveformViewer.js","sourceRoot":"","sources":["../../src/waveform/WaveformViewer.tsx"],"names":[],"mappings":"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","sourcesContent":["import { useMemo, useRef, useEffect, useCallback, useState, type CSSProperties, type ChangeEvent } from 'react';\n\n// ============================================================================\n// VCD Parser — scope-aware\n// ============================================================================\n\nexport interface VCDSignal {\n /** Fully-qualified key: \"scope.name\" or just \"name\" at root */\n key: string;\n /** Display name (last path segment) */\n name: string;\n /** Scope path, e.g. [\"Counter\", \"reg\"] */\n scope: string[];\n width: number;\n values: (number | boolean)[];\n}\n\nexport interface ParsedVCD {\n /** Top-level circuit/module name */\n circuit: string;\n ticks: number;\n /** All signals, ordered by declaration */\n signals: VCDSignal[];\n /** Unique scope paths present (excluding root), ordered */\n scopes: string[][];\n}\n\nexport function parseVCD(vcd: string): ParsedVCD {\n const lines = vcd.split('\\n');\n\n // Pass 1: build id → {name, scope[], width} map\n type VarMeta = { name: string; scope: string[]; width: number };\n const idMeta: Record<string, VarMeta> = {};\n const scopeStack: string[] = [];\n let circuit = 'circuit';\n\n for (const rawLine of lines) {\n const line = rawLine.trim();\n\n if (line.startsWith('$scope module ')) {\n const scopeName = line.replace('$scope module ', '').replace(' $end', '').trim();\n if (scopeStack.length === 0) circuit = scopeName;\n scopeStack.push(scopeName);\n } else if (line.startsWith('$upscope')) {\n scopeStack.pop();\n } else if (line.startsWith('$var wire ')) {\n const parts = line.split(/\\s+/);\n if (parts.length >= 5) {\n const width = parseInt(parts[2], 10);\n const id = parts[3];\n const name = parts[4];\n idMeta[id] = { name, scope: [...scopeStack], width };\n }\n }\n }\n\n // Collect ordered ids\n const orderedIds: string[] = [];\n for (const rawLine of lines) {\n const line = rawLine.trim();\n if (line.startsWith('$var wire ')) {\n const parts = line.split(/\\s+/);\n if (parts.length >= 5) orderedIds.push(parts[3]);\n }\n }\n\n // Pass 2: replay value changes\n let maxTick = 0;\n let currentTick = 0;\n const rawChanges: Array<{ tick: number; id: string; value: number | boolean }> = [];\n\n for (const rawLine of lines) {\n const line = rawLine.trim();\n\n if (line.startsWith('#')) {\n currentTick = parseInt(line.slice(1), 10);\n if (currentTick > maxTick) maxTick = currentTick;\n continue;\n }\n\n if ((line.startsWith('0') || line.startsWith('1')) && line.length >= 2 && !line.startsWith('$')) {\n const val = line[0] === '1';\n const id = line.slice(1);\n if (idMeta[id]) rawChanges.push({ tick: currentTick, id, value: val });\n continue;\n }\n\n if (line.startsWith('b')) {\n const spaceIdx = line.indexOf(' ');\n if (spaceIdx > 0) {\n const binStr = line.slice(1, spaceIdx);\n const id = line.slice(spaceIdx + 1).trim();\n if (idMeta[id]) rawChanges.push({ tick: currentTick, id, value: parseInt(binStr, 2) });\n }\n }\n }\n\n const ticks = maxTick;\n\n // Build per-signal value arrays\n const valueArrays: Record<string, (number | boolean)[]> = {};\n const lastValue: Record<string, number | boolean> = {};\n\n for (const id of orderedIds) {\n const meta = idMeta[id];\n if (!meta) continue;\n const init: number | boolean = meta.width === 1 ? false : 0;\n valueArrays[id] = new Array(ticks).fill(init);\n lastValue[id] = init;\n }\n\n rawChanges.sort((a, b) => a.tick - b.tick);\n\n for (const { tick, id, value } of rawChanges) {\n if (!valueArrays[id]) continue;\n lastValue[id] = value;\n for (let t = tick; t < ticks; t++) {\n valueArrays[id][t] = value;\n }\n }\n\n // Build signal list (deduplicate by key = scope path + name)\n const seenKeys = new Set<string>();\n const signals: VCDSignal[] = [];\n\n for (const id of orderedIds) {\n const meta = idMeta[id];\n if (!meta) continue;\n // Key: \"Counter/reg/data\" style — use \"/\" separator for display\n const scopePath = meta.scope.slice(1); // drop root circuit name\n const key = [...scopePath, meta.name].join('/');\n\n if (seenKeys.has(key)) continue;\n seenKeys.add(key);\n\n signals.push({\n key,\n name: meta.name,\n scope: meta.scope,\n width: meta.width,\n values: valueArrays[id] ?? [],\n });\n }\n\n // Collect unique non-root scopes\n const scopeKeySet = new Set<string>();\n const scopes: string[][] = [];\n for (const sig of signals) {\n if (sig.scope.length <= 1) continue; // root-level, no sub-scope\n const sub = sig.scope.slice(1);\n const k = sub.join('/');\n if (!scopeKeySet.has(k)) {\n scopeKeySet.add(k);\n scopes.push(sub);\n }\n }\n\n return { circuit, ticks, signals, scopes };\n}\n\n// ============================================================================\n// Rendering\n// ============================================================================\n\nconst CYCLE_WIDTH = 40;\nconst ROW_HEIGHT = 28;\nconst LABEL_WIDTH = 140;\nconst HEADER_HEIGHT = 24;\nconst SCOPE_ROW_HEIGHT = 20;\nconst INPUT_COLOR = '#60a5fa';\nconst OUTPUT_COLOR = '#34d399';\nconst INTERNAL_COLOR = '#a78bfa';\n\nfunction isBitSignal(values: (number | boolean)[]): boolean {\n return values.every((v) => v === 0 || v === 1 || v === true || v === false);\n}\n\nfunction BitWaveform({ values, color, width }: { values: (number | boolean)[]; color: string; width: number }) {\n const h = ROW_HEIGHT;\n const high = 5;\n const low = h - 5;\n\n let d = '';\n for (let i = 0; i < values.length; i++) {\n const x = i * CYCLE_WIDTH;\n const y = values[i] ? high : low;\n if (i === 0) {\n d += `M ${x} ${y}`;\n } else {\n const prevY = values[i - 1] ? high : low;\n if (y !== prevY) d += ` L ${x} ${prevY} L ${x} ${y}`;\n }\n d += ` L ${x + CYCLE_WIDTH} ${y}`;\n }\n\n const fillD = d + ` L ${values.length * CYCLE_WIDTH} ${low} L 0 ${low} Z`;\n\n return (\n <svg width={width} height={h} style={{ display: 'block' }}>\n <path d={fillD} fill={color} opacity={0.08} />\n <path d={d} fill=\"none\" stroke={color} strokeWidth={1.5} />\n </svg>\n );\n}\n\nfunction BusWaveform({ values, color, width }: { values: (number | boolean)[]; color: string; width: number }) {\n const h = ROW_HEIGHT;\n const pad = 4;\n const top = pad;\n const bot = h - pad;\n const slant = 4;\n\n const rects: React.ReactNode[] = [];\n let runStart = 0;\n let runVal = values[0];\n\n function pushRun(start: number, end: number, val: number | boolean) {\n const x1 = start * CYCLE_WIDTH;\n const x2 = end * CYCLE_WIDTH;\n const hex = typeof val === 'number' ? `0x${(val >>> 0).toString(16).toUpperCase()}` : String(val);\n const runWidth = x2 - x1;\n const points = [\n `${x1 + Math.min(slant, runWidth / 2)},${top}`,\n `${x2 - Math.min(slant, runWidth / 2)},${top}`,\n `${x2},${(top + bot) / 2}`,\n `${x2 - Math.min(slant, runWidth / 2)},${bot}`,\n `${x1 + Math.min(slant, runWidth / 2)},${bot}`,\n `${x1},${(top + bot) / 2}`,\n ].join(' ');\n rects.push(\n <g key={start}>\n <polygon points={points} fill={color} fillOpacity={0.08} stroke={color} strokeWidth={1.5} strokeOpacity={0.6} />\n {runWidth >= 24 && (\n <text x={(x1 + x2) / 2} y={h / 2} textAnchor=\"middle\" dominantBaseline=\"central\" fill={color} fontSize={10} fontFamily=\"monospace\">\n {hex}\n </text>\n )}\n </g>,\n );\n }\n\n for (let i = 1; i <= values.length; i++) {\n if (i === values.length || values[i] !== runVal) {\n pushRun(runStart, i, runVal);\n if (i < values.length) {\n runStart = i;\n runVal = values[i];\n }\n }\n }\n\n return (\n <svg width={width} height={h} style={{ display: 'block' }}>\n {rects}\n </svg>\n );\n}\n\n// ============================================================================\n// Scope grouping\n// ============================================================================\n\n/**\n * Group signals into scope sections.\n * Root-level signals come first (no heading), then each sub-scope gets a header.\n */\nfunction groupByScope(signals: VCDSignal[], _circuit: string): Array<{ type: 'root'; signals: VCDSignal[] } | { type: 'scope'; label: string; depth: number; signals: VCDSignal[] }> {\n const rootSignals = signals.filter((s) => s.scope.length <= 1);\n\n // Group by immediate child scope under root\n const scopeMap = new Map<string, VCDSignal[]>();\n for (const sig of signals) {\n if (sig.scope.length <= 1) continue;\n const immediateScope = sig.scope.slice(1).join('/');\n if (!scopeMap.has(immediateScope)) scopeMap.set(immediateScope, []);\n scopeMap.get(immediateScope)!.push(sig);\n }\n\n const result: ReturnType<typeof groupByScope> = [];\n if (rootSignals.length > 0) result.push({ type: 'root', signals: rootSignals });\n\n for (const [scopePath, sigs] of scopeMap) {\n const parts = scopePath.split('/');\n result.push({ type: 'scope', label: parts.join(' › '), depth: parts.length - 1, signals: sigs });\n }\n\n return result;\n}\n\n// ============================================================================\n// Public component\n// ============================================================================\n\nexport interface WaveformViewerProps {\n vcd: string;\n inputs?: string[];\n circuit?: string;\n steadyStateAt?: number;\n onLoadVCD?: (vcd: string) => void;\n onClose?: () => void;\n}\n\nexport function WaveformViewer({ vcd, inputs: inputOverride, circuit: circuitOverride, steadyStateAt, onLoadVCD, onClose }: WaveformViewerProps) {\n const scrollRef = useRef<HTMLDivElement>(null);\n const fileInputRef = useRef<HTMLInputElement>(null);\n const [collapsedScopes, setCollapsedScopes] = useState<Set<string>>(new Set());\n\n const parsed = useMemo(() => parseVCD(vcd), [vcd]);\n const circuit = circuitOverride ?? parsed.circuit;\n const inputSet = new Set(inputOverride ?? []);\n\n useEffect(() => {\n if (scrollRef.current) scrollRef.current.scrollLeft = 0;\n setCollapsedScopes(new Set());\n }, [vcd]);\n\n const handleFileChange = useCallback((e: ChangeEvent<HTMLInputElement>) => {\n const file = e.target.files?.[0];\n if (!file) return;\n const reader = new FileReader();\n reader.onload = (ev) => {\n const text = ev.target?.result as string;\n if (text) onLoadVCD?.(text);\n };\n reader.readAsText(file);\n e.target.value = '';\n }, [onLoadVCD]);\n\n const handleDownload = useCallback(() => {\n const blob = new Blob([vcd], { type: 'text/plain' });\n const url = URL.createObjectURL(blob);\n const a = document.createElement('a');\n a.href = url;\n a.download = `${circuit}.vcd`;\n a.click();\n URL.revokeObjectURL(url);\n }, [vcd, circuit]);\n\n const toggleScope = useCallback((label: string) => {\n setCollapsedScopes((prev) => {\n const next = new Set(prev);\n if (next.has(label)) next.delete(label);\n else next.add(label);\n return next;\n });\n }, []);\n\n const groups = useMemo(() => groupByScope(parsed.signals, circuit), [parsed.signals, circuit]);\n\n const waveWidth = Math.max(parsed.ticks * CYCLE_WIDTH, 100);\n\n // Collect ordered rows for the scrollable waveform column\n type Row = { type: 'signal'; signal: VCDSignal; color: string } | { type: 'scope-header'; label: string; height: number };\n const rows: Row[] = [];\n const labelRows: Row[] = [];\n\n for (const group of groups) {\n if (group.type === 'scope') {\n const collapsed = collapsedScopes.has(group.label);\n labelRows.push({ type: 'scope-header', label: group.label, height: SCOPE_ROW_HEIGHT });\n rows.push({ type: 'scope-header', label: group.label, height: SCOPE_ROW_HEIGHT });\n if (!collapsed) {\n for (const sig of group.signals) {\n const isInput = inputSet.has(sig.name);\n const color = isInput ? INPUT_COLOR : INTERNAL_COLOR;\n labelRows.push({ type: 'signal', signal: sig, color });\n rows.push({ type: 'signal', signal: sig, color });\n }\n }\n } else {\n for (const sig of group.signals) {\n const isInput = inputSet.has(sig.name);\n const color = isInput ? INPUT_COLOR : OUTPUT_COLOR;\n labelRows.push({ type: 'signal', signal: sig, color });\n rows.push({ type: 'signal', signal: sig, color });\n }\n }\n }\n\n const containerStyle: CSSProperties = {\n background: 'var(--card, #0f172a)',\n borderTop: '1px solid var(--border, #334155)',\n fontSize: 12,\n color: 'var(--muted-foreground, #94a3b8)',\n userSelect: 'none',\n height: '100%',\n display: 'flex',\n flexDirection: 'column',\n minHeight: 0,\n };\n\n const headerStyle: CSSProperties = {\n padding: '4px 8px',\n display: 'flex',\n alignItems: 'center',\n gap: 8,\n borderBottom: '1px solid var(--border, #1e293b)',\n fontSize: 11,\n fontWeight: 600,\n };\n\n return (\n <div style={containerStyle}>\n <style>{`\n .wf-scroll { scrollbar-width: thin; scrollbar-color: var(--border, #334155) transparent; }\n .wf-scroll::-webkit-scrollbar { height: 6px; }\n .wf-scroll::-webkit-scrollbar-track { background: transparent; }\n .wf-scroll::-webkit-scrollbar-thumb { background: var(--border, #334155); border-radius: 3px; }\n .wf-scroll::-webkit-scrollbar-thumb:hover { background: var(--muted-foreground, #475569); }\n .wf-btn { background: var(--muted, #1e293b); border: 1px solid var(--border, #334155); color: var(--muted-foreground, #94a3b8); padding: 2px 8px; border-radius: 4px; font-size: 11px; cursor: pointer; }\n .wf-btn:hover { background: var(--accent, #334155); color: var(--accent-foreground, inherit); }\n .wf-scope-hdr { display: flex; align-items: center; gap: 4px; padding: 0 8px; background: var(--muted, #0d1929); border-bottom: 1px solid var(--border, #1e293b); border-top: 1px solid var(--border, #1e293b); cursor: pointer; font-family: monospace; font-size: 10px; color: var(--muted-foreground, #64748b); opacity: 0.85; }\n .wf-scope-hdr:hover { color: var(--foreground, #94a3b8); opacity: 1; }\n `}</style>\n\n <div style={headerStyle}>\n <span>Waveforms</span>\n <span style={{ fontWeight: 400, flex: 1 }}>\n {circuit} — {parsed.ticks} ticks\n {steadyStateAt != null && (\n <span style={{ color: '#34d399', marginLeft: 6 }}>steady @ tick {steadyStateAt}</span>\n )}\n </span>\n <button className=\"wf-btn\" onClick={handleDownload} title={`Save ${circuit}.vcd`}>\n Save VCD\n </button>\n <button className=\"wf-btn\" onClick={() => fileInputRef.current?.click()}>\n Load VCD\n </button>\n <input ref={fileInputRef} type=\"file\" accept=\".vcd\" style={{ display: 'none' }} onChange={handleFileChange} />\n {onClose && (\n <button className=\"wf-btn\" onClick={onClose} title=\"Close waveform panel\" aria-label=\"Close waveform panel\">\n ×\n </button>\n )}\n </div>\n\n <div style={{ display: 'flex', flex: 1, minHeight: 0, overflowY: 'auto' }}>\n {/* Fixed label column */}\n <div style={{ width: LABEL_WIDTH, flexShrink: 0, borderRight: '1px solid var(--border, #1e293b)' }}>\n <div style={{ height: HEADER_HEIGHT }} />\n {labelRows.map((row, i) => {\n if (row.type === 'scope-header') {\n const collapsed = collapsedScopes.has(row.label);\n return (\n <div\n key={`sh-${i}`}\n className=\"wf-scope-hdr\"\n style={{ height: SCOPE_ROW_HEIGHT }}\n onClick={() => toggleScope(row.label)}\n >\n <span style={{ fontSize: 9 }}>{collapsed ? '▶' : '▼'}</span>\n <span>{row.label}</span>\n </div>\n );\n }\n const isScope = row.signal.scope.length > 1;\n return (\n <div\n key={`lbl-${i}`}\n style={{\n width: LABEL_WIDTH,\n paddingRight: 8,\n paddingLeft: isScope ? 16 : 8,\n textAlign: 'right',\n fontSize: 11,\n fontFamily: 'monospace',\n color: row.color,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n height: ROW_HEIGHT,\n lineHeight: `${ROW_HEIGHT}px`,\n borderBottom: '1px solid var(--border, #0d1929)',\n }}\n title={row.signal.key}\n >\n {row.signal.name}\n </div>\n );\n })}\n </div>\n\n {/* Scrollable waveform area */}\n <div ref={scrollRef} className=\"wf-scroll\" style={{ overflowX: 'auto', overflowY: 'hidden', flex: 1 }}>\n {/* Tick header */}\n <svg width={waveWidth} height={HEADER_HEIGHT} style={{ display: 'block' }}>\n {Array.from({ length: parsed.ticks }, (_, i) => (\n <g key={i}>\n <line x1={i * CYCLE_WIDTH} y1={0} x2={i * CYCLE_WIDTH} y2={HEADER_HEIGHT} stroke=\"var(--border, #1e293b)\" strokeWidth={1} />\n {i % 2 === 0 && (\n <text x={i * CYCLE_WIDTH + CYCLE_WIDTH / 2} y={14} textAnchor=\"middle\" fill=\"var(--muted-foreground, #475569)\" fontSize={9} fontFamily=\"monospace\">\n {i}\n </text>\n )}\n </g>\n ))}\n {steadyStateAt != null && (\n <line x1={steadyStateAt * CYCLE_WIDTH} y1={0} x2={steadyStateAt * CYCLE_WIDTH} y2={HEADER_HEIGHT} stroke=\"#34d399\" strokeWidth={2} strokeDasharray=\"3,3\" />\n )}\n </svg>\n\n {/* Rows */}\n {rows.map((row, i) => {\n if (row.type === 'scope-header') {\n return (\n <div\n key={`wsh-${i}`}\n style={{ height: SCOPE_ROW_HEIGHT, background: 'var(--muted, #0d1929)', borderBottom: '1px solid var(--border, #1e293b)', borderTop: '1px solid var(--border, #1e293b)' }}\n />\n );\n }\n\n const { signal, color } = row;\n const isBit = isBitSignal(signal.values);\n return (\n <div key={`wav-${i}`} style={{ position: 'relative', height: ROW_HEIGHT, borderBottom: '1px solid var(--border, #0d1929)' }}>\n {isBit\n ? <BitWaveform values={signal.values} color={color} width={waveWidth} />\n : <BusWaveform values={signal.values} color={color} width={waveWidth} />}\n {/* Grid lines */}\n <svg width={waveWidth} height={ROW_HEIGHT} style={{ position: 'absolute', top: 0, left: 0, pointerEvents: 'none' }}>\n {Array.from({ length: parsed.ticks }, (_, t) => (\n <line key={t} x1={t * CYCLE_WIDTH} y1={0} x2={t * CYCLE_WIDTH} y2={ROW_HEIGHT} stroke=\"var(--border, #1e293b)\" strokeWidth={1} />\n ))}\n {steadyStateAt != null && (\n <line x1={steadyStateAt * CYCLE_WIDTH} y1={0} x2={steadyStateAt * CYCLE_WIDTH} y2={ROW_HEIGHT} stroke=\"#34d399\" strokeWidth={2} strokeDasharray=\"3,3\" />\n )}\n </svg>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@simten/ui",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"description": "Canvas, editor, and waveform React components for Simten. Built on React Flow with dagre layout and Zustand stores.",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"author": "Charles Harris",
|
|
@@ -65,7 +65,8 @@
|
|
|
65
65
|
"./share": {
|
|
66
66
|
"types": "./dist/share/index.d.ts",
|
|
67
67
|
"import": "./dist/share/index.js"
|
|
68
|
-
}
|
|
68
|
+
},
|
|
69
|
+
"./package.json": "./package.json"
|
|
69
70
|
},
|
|
70
71
|
"publishConfig": {
|
|
71
72
|
"access": "public"
|
|
@@ -87,7 +88,7 @@
|
|
|
87
88
|
"radix-ui": "^1.4.3",
|
|
88
89
|
"tailwind-merge": "^3.4.0",
|
|
89
90
|
"zustand": "^5.0.10",
|
|
90
|
-
"@simten/core": "0.2.
|
|
91
|
+
"@simten/core": "0.2.3"
|
|
91
92
|
},
|
|
92
93
|
"peerDependencies": {
|
|
93
94
|
"react": "^18.0.0 || ^19.0.0",
|
|
@@ -101,6 +102,9 @@
|
|
|
101
102
|
"typescript": "^5",
|
|
102
103
|
"vitest": "^4.0.17"
|
|
103
104
|
},
|
|
105
|
+
"engines": {
|
|
106
|
+
"node": ">=20"
|
|
107
|
+
},
|
|
104
108
|
"scripts": {
|
|
105
109
|
"build": "rm -rf dist *.tsbuildinfo && tsc -b",
|
|
106
110
|
"test": "vitest run",
|