sygnal 5.3.7 → 6.0.0
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/CHANGELOG.md +646 -0
- package/README.md +77 -47
- package/dist/astro/client.cjs.js +33 -8114
- package/dist/astro/client.cjs.js.map +1 -0
- package/dist/astro/client.mjs +33 -8114
- package/dist/astro/client.mjs.map +1 -0
- package/dist/astro/index.cjs.js +1039 -9
- package/dist/astro/index.cjs.js.map +1 -0
- package/dist/astro/index.mjs +1038 -9
- package/dist/astro/index.mjs.map +1 -0
- package/dist/astro/server.cjs.js +3400 -166
- package/dist/astro/server.cjs.js.map +1 -0
- package/dist/astro/server.mjs +3400 -166
- package/dist/astro/server.mjs.map +1 -0
- package/dist/devtools.cjs.js +1431 -0
- package/dist/devtools.cjs.js.map +1 -0
- package/dist/devtools.esm.js +1419 -0
- package/dist/devtools.esm.js.map +1 -0
- package/dist/diagnostics.cjs.js +4033 -0
- package/dist/diagnostics.cjs.js.map +1 -0
- package/dist/diagnostics.esm.js +4003 -0
- package/dist/diagnostics.esm.js.map +1 -0
- package/dist/element.cjs.js +230 -0
- package/dist/element.cjs.js.map +1 -0
- package/dist/element.esm.js +228 -0
- package/dist/element.esm.js.map +1 -0
- package/dist/guide/accessibility.md +257 -0
- package/dist/guide/adapters.md +221 -0
- package/dist/guide/behaviors.md +312 -0
- package/dist/guide/browser-sources.md +203 -0
- package/dist/guide/drag-and-drop.md +342 -0
- package/dist/guide/element-commands.md +306 -0
- package/dist/guide/error-boundaries.md +169 -0
- package/dist/guide/forms-reference.md +381 -0
- package/dist/guide/forms.md +250 -0
- package/dist/guide/http.md +299 -0
- package/dist/guide/inputs.md +173 -0
- package/dist/guide/persistence.md +245 -0
- package/dist/guide/recipes/carousel.md +155 -0
- package/dist/guide/recipes/charts.md +177 -0
- package/dist/guide/recipes/code-editor.md +135 -0
- package/dist/guide/recipes/data-grid.md +155 -0
- package/dist/guide/recipes/data-table.md +196 -0
- package/dist/guide/recipes/i18n.md +222 -0
- package/dist/guide/recipes/icons.md +115 -0
- package/dist/guide/recipes/overview.md +33 -0
- package/dist/guide/recipes/rich-text.md +154 -0
- package/dist/guide/resources.md +471 -0
- package/dist/guide/ssr.md +255 -0
- package/dist/guide/timers.md +178 -0
- package/dist/guide/ui/accordion.md +93 -0
- package/dist/guide/ui/combobox.md +144 -0
- package/dist/guide/ui/dialog.md +124 -0
- package/dist/guide/ui/disclosure.md +60 -0
- package/dist/guide/ui/menu.md +125 -0
- package/dist/guide/ui/overview.md +166 -0
- package/dist/guide/ui/popover.md +101 -0
- package/dist/guide/ui/select.md +114 -0
- package/dist/guide/ui/tabs.md +161 -0
- package/dist/guide/ui/toaster.md +152 -0
- package/dist/guide/ui/tooltip.md +103 -0
- package/dist/guide/undo.md +178 -0
- package/dist/guide/virtual-collections.md +183 -0
- package/dist/guide/web-components.md +179 -0
- package/dist/guide/widgets.md +217 -0
- package/dist/index.cjs.js +15283 -6279
- package/dist/index.cjs.js.map +1 -0
- package/dist/index.d.ts +3739 -370
- package/dist/index.esm.js +15230 -6274
- package/dist/index.esm.js.map +1 -0
- package/dist/jsx-dev-runtime.cjs.js +27 -329
- package/dist/jsx-dev-runtime.cjs.js.map +1 -0
- package/dist/jsx-dev-runtime.esm.js +20 -322
- package/dist/jsx-dev-runtime.esm.js.map +1 -0
- package/dist/jsx-runtime.cjs.js +27 -329
- package/dist/jsx-runtime.cjs.js.map +1 -0
- package/dist/jsx-runtime.esm.js +20 -322
- package/dist/jsx-runtime.esm.js.map +1 -0
- package/dist/jsx.cjs.js +11 -309
- package/dist/jsx.cjs.js.map +1 -0
- package/dist/jsx.esm.js +9 -310
- package/dist/jsx.esm.js.map +1 -0
- package/dist/react.cjs.js +117 -0
- package/dist/react.cjs.js.map +1 -0
- package/dist/react.esm.js +115 -0
- package/dist/react.esm.js.map +1 -0
- package/dist/shims/globalthis.cjs +20 -0
- package/dist/sygnal.min.js +2 -1
- package/dist/sygnal.min.js.map +1 -0
- package/dist/ui-combobox.cjs.js +169 -0
- package/dist/ui-combobox.cjs.js.map +1 -0
- package/dist/ui-combobox.esm.js +148 -0
- package/dist/ui-combobox.esm.js.map +1 -0
- package/dist/ui-menu.cjs.js +87 -0
- package/dist/ui-menu.cjs.js.map +1 -0
- package/dist/ui-menu.esm.js +66 -0
- package/dist/ui-menu.esm.js.map +1 -0
- package/dist/ui-select.cjs.js +104 -0
- package/dist/ui-select.cjs.js.map +1 -0
- package/dist/ui-select.esm.js +83 -0
- package/dist/ui-select.esm.js.map +1 -0
- package/dist/ui.cjs.js +738 -0
- package/dist/ui.cjs.js.map +1 -0
- package/dist/ui.esm.js +727 -0
- package/dist/ui.esm.js.map +1 -0
- package/dist/vike/ClientOnly.cjs.js +5 -14
- package/dist/vike/ClientOnly.cjs.js.map +1 -0
- package/dist/vike/ClientOnly.mjs +5 -14
- package/dist/vike/ClientOnly.mjs.map +1 -0
- package/dist/vike/{+config.js → config/+config.js} +10 -1
- package/dist/vike/config/+config.js.map +1 -0
- package/dist/vike/config/package.json +6 -0
- package/dist/vike/onRenderClient.cjs.js +166 -95
- package/dist/vike/onRenderClient.cjs.js.map +1 -0
- package/dist/vike/onRenderClient.mjs +166 -95
- package/dist/vike/onRenderClient.mjs.map +1 -0
- package/dist/vike/onRenderHtml.cjs.js +60 -24
- package/dist/vike/onRenderHtml.cjs.js.map +1 -0
- package/dist/vike/onRenderHtml.mjs +61 -25
- package/dist/vike/onRenderHtml.mjs.map +1 -0
- package/dist/vite/plugin.cjs.js +926 -65
- package/dist/vite/plugin.cjs.js.map +1 -0
- package/dist/vite/plugin.mjs +925 -65
- package/dist/vite/plugin.mjs.map +1 -0
- package/dist/zag.cjs.js +408 -0
- package/dist/zag.cjs.js.map +1 -0
- package/dist/zag.esm.js +405 -0
- package/dist/zag.esm.js.map +1 -0
- package/llms.txt +313 -0
- package/package.json +109 -16
- package/src/astro/client.ts +40 -18
- package/src/astro/index.d.ts +48 -1
- package/src/astro/index.ts +106 -9
- package/src/astro/server.ts +11 -3
- package/src/collection.ts +6 -90
- package/src/core/actions.ts +134 -0
- package/src/core/cell.ts +202 -0
- package/src/core/debug.ts +23 -0
- package/src/core/define.ts +242 -0
- package/src/core/hooks.ts +314 -0
- package/src/core/hosts/collection.ts +325 -0
- package/src/core/hosts/switchable.ts +146 -0
- package/src/core/instance.ts +592 -0
- package/src/core/markers/clientonly.ts +13 -0
- package/src/core/markers/lazy.ts +40 -0
- package/src/core/markers/portal.ts +96 -0
- package/src/core/markers/suspense.ts +41 -0
- package/src/core/markers/transition.ts +70 -0
- package/src/core/registry.ts +25 -0
- package/src/core/runtime.ts +573 -0
- package/src/core/statics.ts +104 -0
- package/src/core/teardown.ts +60 -0
- package/src/core/view.ts +37 -0
- package/src/cycle/dom/DocumentDOMSource.ts +13 -8
- package/src/cycle/dom/ElementFinder.ts +7 -9
- package/src/cycle/dom/EventDelegator.ts +174 -223
- package/src/cycle/dom/IsolateModule.ts +65 -35
- package/src/cycle/dom/MainDOMSource.ts +13 -2
- package/src/cycle/dom/PriorityQueue.ts +4 -2
- package/src/cycle/dom/SymbolTree.ts +18 -47
- package/src/cycle/dom/classNameModule.ts +76 -0
- package/src/cycle/dom/controlledInputModule.ts +50 -0
- package/src/cycle/dom/enrichEventStream.ts +29 -45
- package/src/cycle/dom/fragment.ts +7 -0
- package/src/cycle/dom/isolate.ts +30 -27
- package/src/cycle/dom/makeDOMDriver.ts +115 -57
- package/src/cycle/dom/mockDOMSource.ts +83 -9
- package/src/cycle/dom/modules.ts +21 -4
- package/src/cycle/dom/propsModule.ts +65 -0
- package/src/cycle/dom/selectModule.ts +22 -17
- package/src/cycle/dom/snabbdom.ts +1 -6
- package/src/cycle/dom/thunk.ts +3 -0
- package/src/cycle/dom/utils.ts +98 -0
- package/src/cycle/dom/viewTransition.ts +43 -0
- package/src/cycle/state/StateSource.ts +20 -4
- package/src/cycle/state/objIsEqual.ts +50 -0
- package/src/cycle/state/types.ts +0 -10
- package/src/defineComponent.ts +34 -0
- package/src/devtools.d.ts +151 -0
- package/src/devtools.ts +34 -0
- package/src/element.d.ts +59 -0
- package/src/element.ts +235 -0
- package/src/extra/backoff.ts +9 -0
- package/src/extra/behaviors.ts +169 -0
- package/src/extra/browserSignals.ts +23 -0
- package/src/extra/browserSources.ts +326 -0
- package/src/extra/command.ts +3 -3
- package/src/extra/controls.ts +47 -0
- package/src/extra/copyAsTest.ts +286 -0
- package/src/extra/devtools.ts +109 -31
- package/src/extra/devtoolsActions.ts +379 -0
- package/src/extra/devtoolsHook.ts +9 -0
- package/src/extra/devtoolsNext.ts +83 -0
- package/src/extra/diagnostics/checks/actionLog.ts +108 -0
- package/src/extra/diagnostics/checks/behaviors.ts +49 -0
- package/src/extra/diagnostics/checks/browserSources.ts +96 -0
- package/src/extra/diagnostics/checks/collections.ts +67 -0
- package/src/extra/diagnostics/checks/controls.ts +148 -0
- package/src/extra/diagnostics/checks/dataset.ts +57 -0
- package/src/extra/diagnostics/checks/dom.ts +250 -0
- package/src/extra/diagnostics/checks/elementCommands.ts +175 -0
- package/src/extra/diagnostics/checks/events.ts +83 -0
- package/src/extra/diagnostics/checks/fetch.ts +135 -0
- package/src/extra/diagnostics/checks/forms.ts +163 -0
- package/src/extra/diagnostics/checks/index.ts +202 -0
- package/src/extra/diagnostics/checks/inspect.ts +427 -0
- package/src/extra/diagnostics/checks/next.ts +417 -0
- package/src/extra/diagnostics/checks/persist.ts +54 -0
- package/src/extra/diagnostics/checks/props.ts +56 -0
- package/src/extra/diagnostics/checks/public.d.ts +302 -0
- package/src/extra/diagnostics/checks/replies.ts +128 -0
- package/src/extra/diagnostics/checks/router.ts +100 -0
- package/src/extra/diagnostics/checks/rxjsHints.ts +88 -0
- package/src/extra/diagnostics/checks/shared.ts +203 -0
- package/src/extra/diagnostics/checks/shorthand.ts +115 -0
- package/src/extra/diagnostics/checks/sortable.ts +129 -0
- package/src/extra/diagnostics/checks/state.ts +148 -0
- package/src/extra/diagnostics/checks/statics.ts +48 -0
- package/src/extra/diagnostics/checks/strict.ts +55 -0
- package/src/extra/diagnostics/checks/timers.ts +80 -0
- package/src/extra/diagnostics/checks/viewTransitions.ts +47 -0
- package/src/extra/diagnostics/checks/virtual.ts +73 -0
- package/src/extra/diagnostics/checks/widgets.ts +109 -0
- package/src/extra/diagnostics/checks/wiring.ts +121 -0
- package/src/extra/diagnostics/codes.ts +477 -0
- package/src/extra/diagnostics/index.ts +353 -0
- package/src/extra/diagnostics/legacy.ts +76 -0
- package/src/extra/driverFactories.ts +172 -60
- package/src/extra/elementCommands.ts +53 -0
- package/src/extra/eventDriver.ts +4 -0
- package/src/extra/fetchDriver.ts +519 -0
- package/src/extra/flatten.ts +75 -0
- package/src/extra/focusWithin.ts +27 -0
- package/src/extra/form.ts +268 -0
- package/src/extra/formHelpers.ts +139 -0
- package/src/extra/head.ts +106 -0
- package/src/extra/hmr.ts +2 -3
- package/src/extra/owned.ts +24 -0
- package/src/extra/pager.ts +50 -0
- package/src/extra/persist.ts +133 -0
- package/src/extra/pwa.ts +1 -1
- package/src/extra/queryCache.ts +107 -0
- package/src/extra/reducers.ts +13 -6
- package/src/extra/reduxDevtools.ts +92 -0
- package/src/extra/replies.ts +54 -0
- package/src/extra/router.ts +323 -0
- package/src/extra/run.ts +94 -210
- package/src/extra/selection.ts +76 -0
- package/src/extra/socketDriver.ts +265 -0
- package/src/extra/sortable.ts +377 -0
- package/src/extra/ssr.ts +427 -160
- package/src/extra/standardSchema.ts +27 -0
- package/src/extra/testing.ts +3158 -190
- package/src/extra/timers.ts +95 -0
- package/src/extra/undo.ts +261 -0
- package/src/extra/viewTransitions.ts +38 -0
- package/src/extra/virtual.ts +513 -0
- package/src/extra/widget.ts +201 -0
- package/src/extra/xstreamExtras.ts +269 -0
- package/src/index.d.ts +3012 -87
- package/src/index.ts +32 -10
- package/src/jsx-runtime.ts +15 -1
- package/src/jsx.ts +2 -1
- package/src/lazy.ts +50 -7
- package/src/portal.ts +3 -1
- package/src/pragma/index.ts +262 -134
- package/src/react-peers.d.ts +5 -0
- package/src/react.d.ts +43 -0
- package/src/react.ts +110 -0
- package/src/shared.ts +48 -0
- package/src/slot.ts +1 -1
- package/src/suspense.ts +3 -1
- package/src/switchable.ts +6 -119
- package/src/transition.ts +3 -1
- package/src/ui/accordion.ts +64 -0
- package/src/ui/dialog.ts +129 -0
- package/src/ui/disclosure.ts +35 -0
- package/src/ui/popover.ts +45 -0
- package/src/ui/shared.ts +94 -0
- package/src/ui/tabs.ts +82 -0
- package/src/ui/toaster.ts +198 -0
- package/src/ui/tooltip.ts +70 -0
- package/src/ui/zag/combobox.ts +115 -0
- package/src/ui/zag/menu.ts +40 -0
- package/src/ui/zag/select.ts +54 -0
- package/src/ui/zag/shared.ts +43 -0
- package/src/ui-combobox.d.ts +20 -0
- package/src/ui-combobox.ts +6 -0
- package/src/ui-menu.d.ts +30 -0
- package/src/ui-menu.ts +6 -0
- package/src/ui-select.d.ts +17 -0
- package/src/ui-select.ts +6 -0
- package/src/ui-zag-types.d.ts +42 -0
- package/src/ui.d.ts +208 -0
- package/src/ui.ts +15 -0
- package/src/vike/+config.ts +9 -1
- package/src/vike/ClientOnly.ts +1 -1
- package/src/vike/onRenderClient.ts +144 -96
- package/src/vike/onRenderHtml.ts +69 -26
- package/src/vike/types.ts +27 -4
- package/src/vite/globalthis-shim.ts +18 -0
- package/src/vite/globalthis.ts +56 -0
- package/src/vite/plugin.d.ts +114 -2
- package/src/vite/plugin.ts +920 -56
- package/src/zag.d.ts +64 -0
- package/src/zag.ts +238 -0
- package/dist/astro/astro/client.d.ts +0 -5
- package/dist/astro/astro/index.d.ts +0 -16
- package/dist/astro/astro/server.d.ts +0 -12
- package/dist/astro/client.d.ts +0 -5
- package/dist/astro/client.esm.js +0 -4665
- package/dist/astro/collection.d.ts +0 -12
- package/dist/astro/component.d.ts +0 -22
- package/dist/astro/cycle/dom/BodyDOMSource.d.ts +0 -10
- package/dist/astro/cycle/dom/DOMSource.d.ts +0 -11
- package/dist/astro/cycle/dom/DocumentDOMSource.d.ts +0 -12
- package/dist/astro/cycle/dom/ElementFinder.d.ts +0 -8
- package/dist/astro/cycle/dom/EventDelegator.d.ts +0 -34
- package/dist/astro/cycle/dom/IsolateModule.d.ts +0 -23
- package/dist/astro/cycle/dom/MainDOMSource.d.ts +0 -32
- package/dist/astro/cycle/dom/PriorityQueue.d.ts +0 -7
- package/dist/astro/cycle/dom/ScopeChecker.d.ts +0 -9
- package/dist/astro/cycle/dom/SymbolTree.d.ts +0 -9
- package/dist/astro/cycle/dom/VNodeWrapper.d.ts +0 -8
- package/dist/astro/cycle/dom/enrichEventStream.d.ts +0 -24
- package/dist/astro/cycle/dom/fromEvent.d.ts +0 -6
- package/dist/astro/cycle/dom/index.d.ts +0 -8
- package/dist/astro/cycle/dom/isolate.d.ts +0 -9
- package/dist/astro/cycle/dom/makeDOMDriver.d.ts +0 -11
- package/dist/astro/cycle/dom/mockDOMSource.d.ts +0 -17
- package/dist/astro/cycle/dom/modules.d.ts +0 -5
- package/dist/astro/cycle/dom/snabbdom.d.ts +0 -22
- package/dist/astro/cycle/dom/styleModule.d.ts +0 -13
- package/dist/astro/cycle/dom/thunk.d.ts +0 -11
- package/dist/astro/cycle/dom/utils.d.ts +0 -8
- package/dist/astro/cycle/isolate/index.d.ts +0 -42
- package/dist/astro/cycle/run/adapt.d.ts +0 -6
- package/dist/astro/cycle/run/index.d.ts +0 -36
- package/dist/astro/cycle/run/internals.d.ts +0 -8
- package/dist/astro/cycle/run/types.d.ts +0 -49
- package/dist/astro/cycle/state/Collection.d.ts +0 -29
- package/dist/astro/cycle/state/StateSource.d.ts +0 -20
- package/dist/astro/cycle/state/index.d.ts +0 -5
- package/dist/astro/cycle/state/pickCombine.d.ts +0 -3
- package/dist/astro/cycle/state/pickMerge.d.ts +0 -3
- package/dist/astro/cycle/state/types.d.ts +0 -18
- package/dist/astro/cycle/state/withState.d.ts +0 -17
- package/dist/astro/extra/classes.d.ts +0 -7
- package/dist/astro/extra/devtools.d.ts +0 -78
- package/dist/astro/extra/dragDriver.d.ts +0 -20
- package/dist/astro/extra/driverFactories.d.ts +0 -12
- package/dist/astro/extra/eventDriver.d.ts +0 -9
- package/dist/astro/extra/exactState.d.ts +0 -1
- package/dist/astro/extra/hmr.d.ts +0 -17
- package/dist/astro/extra/logDriver.d.ts +0 -2
- package/dist/astro/extra/processDrag.d.ts +0 -19
- package/dist/astro/extra/processForm.d.ts +0 -15
- package/dist/astro/extra/run.d.ts +0 -13
- package/dist/astro/extra/xstreamCompat.d.ts +0 -5
- package/dist/astro/index.d.ts +0 -19
- package/dist/astro/index.esm.js +0 -27
- package/dist/astro/jsx-dev-runtime.d.ts +0 -1
- package/dist/astro/jsx-runtime.d.ts +0 -4
- package/dist/astro/jsx.d.ts +0 -2
- package/dist/astro/pragma/fn.d.ts +0 -7
- package/dist/astro/pragma/index.d.ts +0 -7
- package/dist/astro/pragma/is.d.ts +0 -10
- package/dist/astro/server.d.ts +0 -12
- package/dist/astro/server.esm.js +0 -25
- package/dist/astro/switchable.d.ts +0 -7
- package/dist/collection.d.ts +0 -12
- package/dist/component.d.ts +0 -22
- package/dist/cycle/dom/BodyDOMSource.d.ts +0 -10
- package/dist/cycle/dom/DOMSource.d.ts +0 -11
- package/dist/cycle/dom/DocumentDOMSource.d.ts +0 -12
- package/dist/cycle/dom/ElementFinder.d.ts +0 -8
- package/dist/cycle/dom/EventDelegator.d.ts +0 -34
- package/dist/cycle/dom/IsolateModule.d.ts +0 -23
- package/dist/cycle/dom/MainDOMSource.d.ts +0 -32
- package/dist/cycle/dom/PriorityQueue.d.ts +0 -7
- package/dist/cycle/dom/ScopeChecker.d.ts +0 -9
- package/dist/cycle/dom/SymbolTree.d.ts +0 -9
- package/dist/cycle/dom/VNodeWrapper.d.ts +0 -8
- package/dist/cycle/dom/enrichEventStream.d.ts +0 -24
- package/dist/cycle/dom/fromEvent.d.ts +0 -6
- package/dist/cycle/dom/index.d.ts +0 -8
- package/dist/cycle/dom/isolate.d.ts +0 -9
- package/dist/cycle/dom/makeDOMDriver.d.ts +0 -11
- package/dist/cycle/dom/mockDOMSource.d.ts +0 -17
- package/dist/cycle/dom/modules.d.ts +0 -5
- package/dist/cycle/dom/snabbdom.d.ts +0 -22
- package/dist/cycle/dom/styleModule.d.ts +0 -13
- package/dist/cycle/dom/thunk.d.ts +0 -11
- package/dist/cycle/dom/utils.d.ts +0 -8
- package/dist/cycle/isolate/index.d.ts +0 -42
- package/dist/cycle/run/adapt.d.ts +0 -6
- package/dist/cycle/run/index.d.ts +0 -36
- package/dist/cycle/run/internals.d.ts +0 -8
- package/dist/cycle/run/types.d.ts +0 -49
- package/dist/cycle/state/Collection.d.ts +0 -29
- package/dist/cycle/state/StateSource.d.ts +0 -20
- package/dist/cycle/state/index.d.ts +0 -5
- package/dist/cycle/state/pickCombine.d.ts +0 -3
- package/dist/cycle/state/pickMerge.d.ts +0 -3
- package/dist/cycle/state/types.d.ts +0 -18
- package/dist/cycle/state/withState.d.ts +0 -17
- package/dist/extra/classes.d.ts +0 -7
- package/dist/extra/devtools.d.ts +0 -78
- package/dist/extra/dragDriver.d.ts +0 -20
- package/dist/extra/driverFactories.d.ts +0 -12
- package/dist/extra/eventDriver.d.ts +0 -9
- package/dist/extra/exactState.d.ts +0 -1
- package/dist/extra/hmr.d.ts +0 -17
- package/dist/extra/logDriver.d.ts +0 -2
- package/dist/extra/processDrag.d.ts +0 -19
- package/dist/extra/processForm.d.ts +0 -15
- package/dist/extra/run.d.ts +0 -13
- package/dist/extra/xstreamCompat.d.ts +0 -5
- package/dist/jsx-dev-runtime.d.ts +0 -1
- package/dist/jsx-dev-runtime.js +0 -224
- package/dist/jsx-runtime.d.ts +0 -4
- package/dist/jsx-runtime.js +0 -224
- package/dist/jsx.d.ts +0 -2
- package/dist/pragma/fn.d.ts +0 -7
- package/dist/pragma/index.d.ts +0 -7
- package/dist/pragma/is.d.ts +0 -10
- package/dist/switchable.d.ts +0 -7
- package/dist/vike/+config.cjs.js +0 -65
- package/src/component.ts +0 -2256
- package/src/cycle/isolate/index.ts +0 -196
- package/src/cycle/run/index.ts +0 -151
- package/src/cycle/run/internals.ts +0 -143
- package/src/cycle/state/Collection.ts +0 -174
- package/src/cycle/state/index.ts +0 -5
- package/src/cycle/state/pickCombine.ts +0 -167
- package/src/cycle/state/pickMerge.ts +0 -122
- package/src/cycle/state/withState.ts +0 -47
- package/src/pragma/fn.ts +0 -55
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"devtools.cjs.js","sources":["../src/shared.ts","../src/extra/diagnostics/checks/actionLog.ts","../src/extra/devtoolsNext.ts","../src/extra/devtoolsActions.ts","../src/extra/copyAsTest.ts","../src/extra/devtools.ts","../src/extra/reduxDevtools.ts","../src/devtools.ts"],"sourcesContent":["/*\n * Tiny helpers shared by the core and the helper modules (behaviors, undo, the dev entry), kept\n * out of the core so importing them never pulls it in.\n */\n\n/** The \"no change / send nothing\" sentinel (a registered symbol: the same in every copy) */\nexport const ABORT = Symbol.for('sygnal.ABORT')\n\n/**\n * Whether a value is ABORT. Compares the description, not the identity, in case bundlers (e.g.\n * Vite) create duplicate module instances with separate Symbol.for() registries. (G-214: the\n * one copy, for the core, behaviors, undo and the action log)\n */\nexport const isAbort = (v: any): boolean => typeof v == 'symbol' && v.description == 'sygnal.ABORT'\n\n/**\n * Set on a dev-only wrapper of a model function (SYG222's) to the function it wraps, so the\n * action log and t.explain() show the user's reducer (G-214 follow-up)\n */\nexport const ORIGINAL = Symbol.for('sygnal.original')\n\n/**\n * PLAN-4 GS-9 / G-214: one part of a uid() path (a child's path or `id` prop, a Collection item\n * key, a Switchable page name), encoded injectively into [A-Za-z0-9_]: letters and digits stay,\n * anything else (including '_' and '-') becomes '_<UTF-16 code>_' ('0.2' → '0_46_2', 'a_b' →\n * 'a_95_b'), so the '-' between parts is unambiguous too. renderToString encodes the same way\n * (ssr.ts).\n */\nexport const uidPart = (s: any): string => (s + '').replace(/\\W|_/g, c => '_' + c.charCodeAt(0) + '_')\n\n/**\n * PLAN-5 A-1: a Collection item's style with its view-transition name and class\n * (`viewTransitionName=\"card\"`): `card-<id>`, the id escaped as uidPart does (a valid CSS\n * identifier, unique per id), and the class `card`; the item's own style wins, except its\n * `undefined` values (G-418: no value is no override; snabbdom would leave the old one). The\n * core's Collection host and SSR share it\n */\nexport const vtStyle = (p: string, id: any, style?: any) => {\n const o: any = {viewTransitionName: p + '-' + uidPart(id), viewTransitionClass: p}\n for (const k in style) if (style[k] !== undefined) o[k] = style[k]\n return o\n}\n\n/**\n * P45-D: sources that aren't drivers get no sinks: props$, children$, dispose$, commands$, CHILD;\n * PARENT, EFFECT and ELEMENT are built-in sinks; __k, __d, __uid... are internal\n */\nexport const NOT_SINK = /^(__|(props|children|dispose|commands)\\$$|(CHILD|PARENT|EFFECT|ELEMENT)$)/\n","/**\n * PLAN-4 2-C (GS-10): the action log. Records every action a component instance runs as\n * { type, data, component, instance, sinks, cause, time }\n * for renderComponent's t.actions / t.explain() (src/extra/testing.ts), inspect({ actions }) in\n * the 'sygnal/diagnostics' dev entry (./inspect.ts) and the DevTools action log\n * (src/extra/devtoolsActions.ts).\n *\n * 0 B in apps: nothing in the core calls this. actionHooks() is a hook layer of the core\n * (04-hooks-contract §3.3): onAction opens the record (the core passes the cause: 'intent',\n * 'next', 'reply', 'built-in', 'simulateAction'; an intent action a behavior owns is\n * 'behavior'), wrapHandler sees which sinks produced a value. (The old core's version patched\n * each instance; R5 removed it.)\n *\n * Sinks: a function reducer counts when it returns a value: not ABORT (or another symbol, which\n * the core drops), and for STATE not the state it was given (GS-4: no change); EFFECT counts when\n * the handler ran without ABORT. A constant / `true` entry always sends. A throwing reducer\n * sends nothing.\n */\nimport {isAbort, ORIGINAL} from '../../../shared'\n\nexport type ActionCause = 'intent' | 'next' | 'reply' | 'built-in' | 'simulateAction' | 'behavior'\n\nexport interface ActionRecord {\n type: string\n data: any\n /** the component's name */\n component: string\n /** the instance's id (its component number, as inspect()'s component ids) */\n instance: string\n /** sinks that produced a value for this action (live: STATE fills in when the reducer runs) */\n sinks: string[]\n cause: ActionCause\n /** clock time (fake-timer aware) when the action reached the model */\n time: number\n /** a reply: the source that delivered it */\n source?: string\n}\n\nexport interface ActionListener {\n action(record: ActionRecord, component: any): void\n /** a sink produced a value for `record` (reducer: the model's function, when there is one) */\n sink?(record: ActionRecord, sink: string, reducer: any): void\n}\n\nconst BUILT_IN = /^(BOOTSTRAP|INITIALIZE|DISPOSE|RESOURCE)$/\n\n/** now on the test's fake clock when there is one (vi.useFakeTimers()), else Date.now() */\nexport const clockNow = (): number => {\n const c = (setTimeout as any).clock\n return c ? c.now : Date.now()\n}\n\n/**\n * PLAN-4.6 R4: the same log on the core, from its hooks (04 §3.3) instead of instance\n * patches: onAction opens the record (the core passes the cause: 'intent', 'next', 'reply',\n * 'built-in', 'simulateAction'), wrapHandler sees which sinks produced a value. Same records,\n * same cause rules: a built-in type is 'built-in' unless simulated; an intent action a behavior\n * owns is 'behavior'. `only(inst)`: the instances to record (renderComponent: its own tree).\n */\nexport function actionHooks(listener: ActionListener, only?: (inst: any) => boolean): any {\n const cur = new WeakMap<object, [ActionRecord, string[]]>()\n // INITIALIZE: the core writes the initial state at creation (no action, unless the model\n // has an INITIALIZE entry); today's log has an INITIALIZE record with STATE, so it is opened here\n const init = new WeakMap<object, ActionRecord>()\n return {\n onCreate(inst: any) {\n const d = inst.def\n if ((only && !only(inst)) || d.initialState === undefined || !(inst.isRoot || d.isolated)) return\n const rec: ActionRecord = {type: 'INITIALIZE', data: d.initialState, component: inst.name, instance: String(inst.id), sinks: [], cause: 'built-in', time: clockNow()}\n init.set(inst, rec)\n try { listener.action(rec, inst) } catch (_) { /* ignore */ }\n addSink(listener, rec, ['STATE'], 'STATE', undefined)\n },\n onAction(inst: any, a: any) {\n if (only && !only(inst)) return\n const type = String(a.type), owned = inst.def.behaviorActions\n const hs = inst.def.handlers.get(type) || [], order = hs.map((h: any) => h[0])\n const opened = type == 'INITIALIZE' && init.get(inst)\n if (opened) { init.delete(inst); cur.set(inst, [opened, order]); return }\n const cause: ActionCause = a.cause == 'simulateAction' ? a.cause : BUILT_IN.test(type) ? 'built-in'\n : a.cause == 'next' || a.cause == 'reply' ? a.cause\n : owned && Object.prototype.hasOwnProperty.call(owned, type) ? 'behavior' : 'intent'\n const rec: ActionRecord = {type, data: a.data, component: inst.name, instance: String(inst.id), sinks: [], cause, time: clockNow(), ...(a.source !== undefined && {source: a.source})}\n cur.set(inst, [rec, order])\n try { listener.action(rec, inst) } catch (_) { /* a listener never breaks the app */ }\n // a constant / `true` entry always sends (EFFECT runs functions only)\n for (const [sink, h] of hs) if (typeof h != 'function' && sink != 'EFFECT') addSink(listener, rec, order, sink, undefined)\n },\n wrapHandler(inst: any, type: string, sink: string, fn: any) {\n const c = cur.get(inst)\n if (!c || c[0].type !== type || typeof fn != 'function') return\n const [rec, order] = c, isState = sink == 'STATE', isEffect = sink == 'EFFECT'\n return function (this: any, state: any) {\n const r = fn.apply(this, arguments)\n if (!isAbort(r) && (isEffect || typeof r != 'symbol') && !(isState && r === state)) addSink(listener, rec, order, sink, fn[ORIGINAL] || fn)\n return r\n }\n },\n }\n}\n\nfunction addSink(l: ActionListener, rec: ActionRecord, order: string[], sink: string, reducer: any): void {\n if (!rec.sinks.includes(sink)) {\n rec.sinks.push(sink)\n rec.sinks.sort((a, b) => order.indexOf(a) - order.indexOf(b))\n }\n try { l.sink?.(rec, sink, reducer) } catch (_) { /* ignore */ }\n}\n","/**\n * PLAN-4.6 R4: 'sygnal/devtools' on the next component core (04 §3.5).\n *\n * The core calls no `window.__SYGNAL_DEVTOOLS__` method itself: each app reads the dev\n * entries' hook layers once (`__SYGNAL_DIAGNOSTICS__.layers`), and this file's layer maps the\n * hooks onto the bridge's existing methods (onComponentCreated, onStateChanged, ...). The bridge\n * keeps a facade per instance with the fields it reads from today's instances (currentState,\n * model, sourceNames, ...); time travel and the debug toggle go through the app's runtime API\n * (`setState`, `setDebug`) instead of `sinks.STATE.shamefullySendNext` and `instance._debug`.\n */\nconst facades = new WeakMap<object, any>()\n\n/** the bridge's view of a core instance (an InstanceView + its app's runtime API) */\nexport function devFacade(iv: any, api: any): any {\n let f = facades.get(iv)\n if (f) return f\n f = {\n __next: iv,\n __api: api,\n get _componentNumber() { return iv.id },\n get name() { return iv.name },\n get isSubComponent() { return !iv.isRoot },\n get parentId() { return iv.parentId },\n get view() { return iv.def.view },\n get model() {\n const m: Record<string, any> = {}\n iv.def.handlers.forEach((hs: any[], a: string) => { const e: any = m[a] = {}; for (const [s, fn] of hs) e[s] = fn })\n return m\n },\n get intent() { return iv.def.intent },\n get context() { return iv.def.view.context },\n get calculated() { return iv.def.view.calculated },\n get _behaviorActions() { return iv.def.behaviorActions },\n get currentState() { return iv.state },\n get currentContext() { return iv.context },\n get currentProps() { return iv.props },\n get sources() { return iv.sources },\n get sourceNames() { return Object.keys(iv.sources) },\n stateSourceName: 'STATE',\n get _debug() { return false },\n /** the state without its calculated fields (as today's cleanupCalculated) */\n cleanupCalculated(s: any) {\n const c = iv.def.calcNames\n if (!c || !s || typeof s != 'object' || Array.isArray(s)) return s\n const out = {...s}\n c.forEach((k: string) => { delete out[k] })\n return out\n },\n }\n facades.set(iv, f)\n return f\n}\n\n/** the hook layer of the DevTools bridge `dt` for one app */\nexport function devtoolsHooks(dt: any, api: any): any {\n const mounted = new WeakSet<object>()\n return {\n onCreate(iv: any) {\n const f = devFacade(iv, api)\n dt.onComponentCreated(iv.id, iv.name, f)\n if (iv.parentId !== undefined) dt.onSubComponentRegistered(iv.parentId, iv.id)\n // a Collection's first item (today's onCollectionMounted)\n if (iv.kind == 'item' && iv.parentId !== undefined) {\n const p = api.get(iv.parentId)\n if (p && !mounted.has(p)) { mounted.add(p); dt.onCollectionMounted(p.id, p.name, iv.name, null) }\n }\n },\n onStateChanged(iv: any, s: any) { dt.connected && dt.onStateChanged(iv.id, iv.name, s) },\n onPropsChanged(iv: any, p: any) { dt.connected && dt.onPropsChanged(iv.id, iv.name, p) },\n onContextChanged(iv: any, c: any) { dt.connected && dt.onContextChanged(iv.id, iv.name, c) },\n onAction(iv: any, a: any) { dt.connected && dt.onActionDispatched(iv.id, iv.name, a.type, a.data) },\n onReady(p: any, c: any, ready: boolean) { dt.connected && dt.onReadyChanged(p.id, p.name, c.name, ready) },\n onDispose(iv: any) { dt.onComponentDisposed(iv.id, iv.name) },\n }\n}\n\n/** register a hook layer factory with the core (read by each app at its start) */\nexport function addLayer(f: (api: any) => any): () => void {\n const core = (globalThis as any).__SYGNAL_DIAGNOSTICS__\n if (!core) return () => {}\n ;(core.layers ||= new Set()).add(f)\n return () => { core.layers?.delete(f) }\n}\n","/**\n * PLAN-4 3-E (GS-10): the DevTools action log, in the dev-only 'sygnal/devtools' entry (0 B in\n * apps: nothing in the core calls it).\n *\n * It records every action of every component instance through 2-C's recorder\n * (./diagnostics/checks/actionLog: actionHooks), a hook layer every app reads from the core's\n * diagnostics bridge (globalThis.__SYGNAL_DIAGNOSTICS__.layers), so it records with diagnostics\n * off too. On top of 2-C's record it keeps:\n * seq, at a sequence number, ms since the session started\n * parent the parent instance id (null: a root)\n * before, after the instance's state around the action's STATE reducer (onReducer), when it\n * changed the state (`after` without calculated fields)\n * replySink for a reply action (and RESOURCE): the source that delivered it, and\n * replyKind 'fetch' when that source is makeFetchDriver's (renderComponent fakes it)\n *\n * A session runs from the recorder's start (or the last clearActions()) to now. getSession()\n * turns it into a SessionRecording for one instance (./copyAsTest generates the test).\n */\nimport {clockNow, actionHooks} from './diagnostics/checks/actionLog'\nimport {addLayer, devFacade} from './devtoolsNext'\nimport type {ActionListener, ActionRecord, ActionCause} from './diagnostics/checks/actionLog'\n\nexport type {ActionCause}\n\nexport interface DevtoolsAction {\n seq: number\n type: string\n data: any\n component: string\n instance: string\n parent: string | null\n /** live: fills in as the action's reducers run */\n sinks: string[]\n cause: ActionCause\n /** ms since the session started */\n at: number\n before?: any\n after?: any\n replySink?: string\n replyKind?: 'fetch' | 'other'\n /** an intent action whose data is the instance's own state (an intent over STATE.stream) */\n echo?: true\n}\n\nexport interface SessionAction {\n type: string\n data: any\n cause: ActionCause\n sinks: string[]\n at: number\n replySink?: string\n replyKind?: 'fetch' | 'other'\n echo?: true\n}\n\n/** One instance's session: what copyAsTest() needs (plain data, raw action data) */\nexport interface SessionRecording {\n version: 1\n component: string\n instance: string\n /** the state when the session started for this instance (undefined: unknown) */\n initialState?: any\n /** the component's own `initialState` (renderComponent's default) */\n definitionInitialState?: any\n finalState: any\n /** the action names the component can be sent (model keys, behavior actions); undefined: any */\n actionNames?: string[]\n /** source names beyond DOM / EVENTS / STATE / LOG / CHILD / PARENT / READY */\n drivers: string[]\n /** those of `drivers` renderComponent fakes (makeFetchDriver sources: t.respond / t.fail) */\n fakeable: string[]\n /** the instance's own actions, in order */\n actions: SessionAction[]\n /** state changes in descendant instances a root-level replay can't reproduce */\n foreign: Array<{type: string; component: string; instance: string; cause: ActionCause}>\n /** the session lost its oldest actions (more than the recorder keeps) */\n truncated?: boolean\n}\n\nexport interface ActionFilter {\n component?: string\n instance?: string | number\n type?: string | RegExp\n cause?: ActionCause | ActionCause[]\n}\n\ninterface Inst {\n c: any\n id: string\n name: string\n parent: string | null\n stateName: string\n /** created after the session started */\n inSession: boolean\n hasInitial: boolean\n initial?: any\n disposed: boolean\n}\n\nconst MAX = 5000\nconst STANDARD = /^(DOM|EVENTS|LOG|CHILD|PARENT|READY|props\\$|children\\$|dispose\\$)$/\n\nlet actions: DevtoolsAction[] = []\nlet seq = 0\nlet epoch = clockNow()\nlet truncated = false\nlet created = 0\nconst insts = new Map<string, Inst>()\nconst byRec = new WeakMap<ActionRecord, DevtoolsAction>()\n/** instance -> the action whose STATE reducer just produced a value (its onReducer follows) */\nconst pendingState = new WeakMap<any, DevtoolsAction>()\nconst subscribers = new Set<(a: DevtoolsAction | null, kind: 'add' | 'update' | 'reset') => void>()\n\nconst notify = (a: DevtoolsAction | null, kind: 'add' | 'update' | 'reset') => {\n for (const s of subscribers) try { s(a, kind) } catch (_) { /* a subscriber never breaks the app */ }\n}\n\nconst idOf = (c: any) => String(c && c._componentNumber)\n\nfunction ensure(c: any): Inst {\n const id = idOf(c)\n let i = insts.get(id)\n if (!i || i.c !== c) {\n const p = c && c.__next && c.__next.parentId\n i = {c, id, name: c && c.name, parent: typeof p == 'number' ? String(p) : null, stateName: (c && c.stateSourceName) || 'STATE',\n inSession: true, hasInitial: false, disposed: false}\n ;(i as any).order = ++created\n insts.set(id, i)\n }\n return i\n}\n\nfunction clean(c: any, s: any): any {\n try { return typeof c.cleanupCalculated == 'function' ? c.cleanupCalculated(s) : s } catch (_) { return s }\n}\n\nconst listener: ActionListener = {\n action(r, c) {\n const info = ensure(c)\n // the instance's state when its session started: INITIALIZE's data (its initial state), else\n // the state it had at its first action\n if (r.type == 'INITIALIZE' && info.inSession) { info.initial = r.data; info.hasInitial = true }\n else if (!info.hasInitial) { info.initial = c.currentState; info.hasInitial = true }\n const a: DevtoolsAction = {seq: ++seq, type: r.type, data: r.data, component: r.component, instance: r.instance,\n parent: info.parent, sinks: r.sinks, cause: r.cause, at: r.time - epoch}\n const slot = (r as any).source\n if (slot !== undefined && (r.cause == 'reply' || r.type == 'RESOURCE')) {\n a.replySink = slot\n a.replyKind = c.sources && c.sources[slot] && c.sources[slot].__sygnalStatic === 'resources' ? 'fetch' : 'other'\n }\n if (r.cause == 'intent' && isStateEcho(r.data, c.currentState)) a.echo = true\n byRec.set(r, a)\n actions.push(a)\n if (actions.length > MAX) { actions.shift(); truncated = true }\n notify(a, 'add')\n },\n sink(r, sink) {\n const a = byRec.get(r)\n if (!a) return\n const info = insts.get(r.instance)\n if (info && info.c && sink == info.stateName) pendingState.set(info.c, a)\n notify(a, 'update')\n },\n}\n\nfunction onReducer(c: any, name: string, prev: any, next: any): void {\n const a = pendingState.get(c)\n if (!a || a.type !== name || 'after' in a) return\n pendingState.delete(c)\n a.before = prev\n a.after = clean(c, next)\n notify(a, 'update')\n}\n\nfunction onDispose(c: any): void {\n const i = insts.get(idOf(c))\n if (i && i.c === c) { i.disposed = true; i.c = undefined }\n}\n\nlet unregister: (() => void) | undefined\n\n/** PLAN-4.6 R4: the same recorder on the core, from its hooks (per app; a facade per instance) */\nfunction nextLayer(api: any): any {\n const L: ActionListener = {\n action: (r, iv) => listener.action(r, devFacade(iv, api)),\n sink: (r, sink, reducer) => listener.sink!(r, sink, reducer),\n }\n const log = actionHooks(L)\n return {\n ...log,\n onCreate(iv: any) { ensure(devFacade(iv, api)); log.onCreate(iv) },\n onReducer(iv: any, name: string, prev: any, next: any) { onReducer(devFacade(iv, api), name, prev, next) },\n onDispose(iv: any) { onDispose(devFacade(iv, api)) },\n }\n}\n\n/**\n * Start recording actions (idempotent; 'sygnal/devtools' does it on import in a browser). Only\n * components created afterwards are recorded. Returns a function that stops recording.\n */\nexport function recordActions(): () => void {\n if (!unregister) {\n const core = (globalThis as any).__SYGNAL_DIAGNOSTICS__\n if (!core) return () => {}\n unregister = addLayer(nextLayer)\n }\n return stopRecording\n}\n\nfunction stopRecording(): void {\n if (unregister) { unregister(); unregister = undefined }\n}\n\nexport const isRecording = (): boolean => !!unregister\n\n/** Start a new session: forget the recorded actions; each live instance's state is its new initial state. */\nexport function clearActions(): void {\n actions = []\n epoch = clockNow()\n truncated = false\n for (const [id, i] of insts) {\n if (i.disposed) { insts.delete(id); continue }\n i.inSession = false\n i.initial = i.c && i.c.currentState\n i.hasInitial = true\n }\n notify(null, 'reset')\n}\n\nconst matches = (a: DevtoolsAction, f: ActionFilter) =>\n (f.component === undefined || a.component === f.component) &&\n (f.instance === undefined || a.instance === String(f.instance)) &&\n (f.type === undefined || (typeof f.type == 'string' ? a.type === f.type : f.type.test(a.type))) &&\n (f.cause === undefined || ([] as ActionCause[]).concat(f.cause).includes(a.cause))\n\n/** The session's actions (oldest first), optionally filtered by component, instance, type or cause. */\nexport function getActions(filter?: ActionFilter): DevtoolsAction[] {\n return filter ? actions.filter(a => matches(a, filter)) : actions.slice()\n}\n\n/** Subscribe to the log: (action, 'add' | 'update') and (null, 'reset'). Returns unsubscribe. */\nexport function onAction(fn: (a: DevtoolsAction | null, kind: 'add' | 'update' | 'reset') => void): () => void {\n subscribers.add(fn)\n return () => { subscribers.delete(fn) }\n}\n\n/** the live instances, newest first */\nconst live = () => [...insts.values()].filter(i => !i.disposed && i.c).sort((a, b) => (b as any).order - (a as any).order)\n\n/**\n * The instance a session target names: undefined (the newest live root), an instance id, a\n * component function (its newest live instance) or run()'s result (its root, by DOM source).\n */\nexport function resolveInstance(target?: any): Inst | undefined {\n const all = live()\n if (target === undefined || target === null) return all.find(i => i.parent === null)\n if (typeof target == 'string' || typeof target == 'number') return insts.get(String(target))\n if (typeof target == 'function') return all.find(i => i.c.view === target)\n if (typeof target == 'object') {\n const s = target.sources\n if (s && typeof s == 'object') {\n return all.find(i => i.parent === null && Object.keys(s).some(k => k != 'STATE' && s[k] && i.c.sources && i.c.sources[k] === s[k])) ||\n all.find(i => i.parent === null)\n }\n }\n return undefined\n}\n\nfunction descendants(id: string): Set<string> {\n const out = new Set<string>()\n let grew = true\n while (grew) {\n grew = false\n for (const i of insts.values()) if (i.parent !== null && (i.parent === id || out.has(i.parent)) && !out.has(i.id)) { out.add(i.id); grew = true }\n }\n // instances already pruned: their actions still name their parent\n for (const a of actions) if (a.parent !== null && (a.parent === id || out.has(a.parent))) out.add(a.instance)\n return out\n}\n\nconst REPLAYED = new Set<ActionCause>(['intent', 'simulateAction', 'behavior', 'reply'])\n\n/**\n * The session of one instance (see resolveInstance for `target`) as plain data: its initial\n * and final state, its own actions, and the state changes of its descendants (a replay at this\n * instance can't reproduce them).\n */\nexport function getSession(target?: any): SessionRecording {\n const info = resolveInstance(target)\n if (!info) throw new Error('[Sygnal DevTools] getSession: no live component instance matches' + (target === undefined ? ' (no root recorded: import sygnal/devtools before run())' : ''))\n const c = info.c\n const desc = descendants(info.id)\n const stateNameOf = (id: string) => insts.get(id)?.stateName || 'STATE'\n const model = c.model && typeof c.model == 'object' ? Object.keys(c.model).map(k => k.split('|')[0].trim()) : undefined\n const behaviors = c._behaviorActions && typeof c._behaviorActions == 'object' ? Object.keys(c._behaviorActions) : []\n const sources = c.sources || {}\n const drivers = (c.sourceNames || Object.keys(sources)).filter((n: string) =>\n !STANDARD.test(n) && n !== info.stateName && n != 'STATE' && n != 'state' && !n.startsWith('__'))\n return {\n version: 1,\n component: info.name,\n instance: info.id,\n initialState: info.hasInitial ? info.initial : undefined,\n definitionInitialState: c.view ? c.view.initialState : undefined,\n finalState: c.currentState,\n actionNames: model ? [...model, ...behaviors] : undefined,\n drivers,\n fakeable: drivers.filter((n: string) => sources[n] && sources[n].__sygnalStatic === 'resources'),\n actions: actions.filter(a => a.instance === info.id).map(a => ({\n type: a.type, data: a.data, cause: a.cause, sinks: [...a.sinks], at: a.at,\n ...(a.replySink !== undefined ? {replySink: a.replySink, replyKind: a.replyKind} : {}),\n ...(a.echo ? {echo: true as const} : {}),\n })),\n foreign: actions.filter(a => desc.has(a.instance) && REPLAYED.has(a.cause) && a.sinks.includes(stateNameOf(a.instance)))\n .map(a => ({type: a.type, component: a.component, instance: a.instance, cause: a.cause})),\n ...(truncated ? {truncated: true} : {}),\n }\n}\n\n/** A JSON-safe copy for the panel: DOM elements and events become short descriptions. */\nexport function preview(v: any): any {\n if (v === undefined) return undefined\n const seen = new WeakSet<object>()\n try {\n return JSON.parse(JSON.stringify(v, (_k, x) => {\n if (typeof x == 'function') return `[Function ${x.name || 'anonymous'}]`\n if (typeof x == 'symbol') return String(x)\n if (typeof x == 'bigint') return `${x}n`\n if (x && typeof x == 'object') {\n if (isElement(x)) return describeElement(x)\n if (isEvent(x)) return `[${x.constructor && x.constructor.name || 'Event'} ${x.type}]`\n if (x instanceof Map) return {'[Map]': [...x.entries()]}\n if (x instanceof Set) return {'[Set]': [...x.values()]}\n if (seen.has(x)) return '[Circular]'\n seen.add(x)\n }\n return x\n }))\n } catch (_) {\n return '[unserializable]'\n }\n}\n\nconst isPlain = (x: any) => !!x && typeof x == 'object' && (Object.getPrototypeOf(x) === Object.prototype || Object.getPrototypeOf(x) === null)\n\nexport function deepEqual(a: any, b: any): boolean {\n if (Object.is(a, b)) return true\n if (!a || !b || typeof a != 'object' || typeof b != 'object') return false\n if (Array.isArray(a) !== Array.isArray(b)) return false\n const ka = Object.keys(a).filter(k => a[k] !== undefined), kb = Object.keys(b).filter(k => b[k] !== undefined)\n return ka.length == kb.length && ka.every(k => deepEqual(a[k], b[k]))\n}\n\n/**\n * The data is the state itself (STATE.stream in the intent; calculated fields may be added): the\n * replay sends it again by itself, so it isn't replayed.\n */\nfunction isStateEcho(data: any, state: any): boolean {\n if (!isPlain(data) || !isPlain(state)) return false\n const keys = Object.keys(state)\n return keys.length > 0 && (data === state || keys.every(k => deepEqual(data[k], state[k])))\n}\n\nexport const isElement = (x: any): boolean => !!x && typeof x == 'object' && x.nodeType === 1 && typeof x.tagName == 'string'\nexport const isEvent = (x: any): boolean => !!x && typeof x == 'object' && typeof x.type == 'string' && typeof x.preventDefault == 'function' && 'target' in x\n\nconst describeElement = (el: any) => {\n const cls = typeof el.className == 'string' && el.className.trim() ? '.' + el.className.trim().split(/\\s+/).join('.') : ''\n return `<${String(el.tagName).toLowerCase()}${el.id ? '#' + el.id : ''}${cls}>`\n}\n\n/** test seam: forget everything (sessions, instances); recording stays as it is */\nexport function _resetActionLog(): void {\n actions = []\n seq = 0\n epoch = clockNow()\n truncated = false\n insts.clear()\n}\n","/**\n * PLAN-4 3-E (GS-10): \"Copy as test\". Turns a recorded session (./devtoolsActions getSession())\n * into a Vitest + renderComponent test that replays it:\n *\n * renderComponent(C, { initialState?, drivers? }) the session's initial state (left out when\n * it is the component's own initialState)\n * await t.ready()\n * t.simulateAction(type, data) each action caused by 'intent' | 'simulateAction' | 'behavior'\n * await t.respond(sink, body, OK) a reply action from a makeFetchDriver source (renderComponent's\n * await t.fail(sink, status, ...) HTTP fake answers the request the replayed actions send again)\n * await t.settle()\n * expect(t.state).toEqual(final)\n *\n * 'next' and 'built-in' actions are consequences (the replay produces them again), never replayed;\n * nor is an intent action whose data is the component's own state (an intent over STATE.stream).\n * A t.respond / t.fail that follows simulateAction calls waits for the request they send (G-218).\n * Data is written as JS literals: JSON values, Date, Map, Set, NaN / Infinity / -0, bigint. A DOM\n * event or element becomes a stub ({ type, key, target: { dataset, value, checked, id } }), with a\n * comment. Anything else (functions, class instances, cycles) is left out with a comment.\n *\n * The final-state assertion is written only when the replay is complete: every state-changing\n * action could be replayed with its data, no descendant instance changed the state on its own\n * (a child's intent: copy the test from that instance instead), the session wasn't truncated,\n * and the final state is JSON-safe. Otherwise a comment says why. A test written with the\n * assertion passes unchanged (for drivers the session's app had, pass `drivers`).\n */\nimport type {SessionRecording, SessionAction} from './devtoolsActions'\nimport {isElement, isEvent, deepEqual} from './devtoolsActions'\n\nexport interface CopyAsTestOptions {\n /** the import line(s) for the component, e.g. \"import App from './App.jsx'\" (default: `import <Name> from './<Name>.js'`) */\n componentImport?: string\n /** the identifier the component has in the test (default: the recorded component name) */\n componentName?: string\n /** more import lines (drivers, helpers) */\n imports?: string[]\n /** drivers for renderComponent, as source code by sink name: { DND: 'mockDragDriver().driver' } */\n drivers?: Record<string, string>\n /** more renderComponent options, as source code: \"strict: true\" */\n renderOptions?: string\n /** the test's name (default: '<Component> session (copied from sygnal/devtools)') */\n testName?: string\n /** adds a `// @vitest-environment <env>` first line (e.g. 'jsdom') */\n environment?: string\n}\n\nexport interface CopyAsTestResult {\n /** the test file */\n code: string\n /** true when the test asserts the final state */\n complete: boolean\n /** what was left out, and why (also comments in the code) */\n warnings: string[]\n /** actions written as simulateAction / respond / fail */\n replayed: number\n}\n\nconst REPLAY = new Set(['intent', 'simulateAction', 'behavior'])\nconst IDENT = /^[A-Za-z_$][\\w$]*$/\n\nclass Unserializable extends Error {}\n\n/** a single-quoted JS string literal */\nconst str = (s: string) => `'${JSON.stringify(s).slice(1, -1).replace(/\\\\\"/g, '\"').replace(/'/g, \"\\\\'\")}'`\n\ninterface Lit { code: string; stubbed: boolean }\n\n/** `v` as a JS literal. mode 'data' turns DOM events / elements into stubs; 'state' refuses them. */\nexport function literal(v: any, mode: 'data' | 'state' = 'data', indent = ''): Lit {\n const flag = {stubbed: false}\n const code = lit(v, mode, indent, new Set(), flag)\n return {code, stubbed: flag.stubbed}\n}\n\nfunction elementStub(el: any): any {\n const out: any = {}\n const ds = el.dataset && typeof el.dataset == 'object' ? {...el.dataset} : {}\n if (Object.keys(ds).length) out.dataset = ds\n if (el.id) out.id = el.id\n const tag = String(el.tagName).toUpperCase()\n if (/^(INPUT|SELECT|TEXTAREA)$/.test(tag) && typeof el.value == 'string') out.value = el.value\n if (tag == 'INPUT' && /^(checkbox|radio)$/i.test(el.type || '')) out.checked = !!el.checked\n return out\n}\n\nfunction eventStub(e: any): any {\n const out: any = {type: e.type}\n if (typeof e.key == 'string') out.key = e.key\n if (isElement(e.target)) {\n const t = elementStub(e.target)\n if (Object.keys(t).length) out.target = t\n }\n return out\n}\n\nfunction lit(v: any, mode: 'data' | 'state', ind: string, seen: Set<any>, flag: {stubbed: boolean}): string {\n if (v === null) return 'null'\n switch (typeof v) {\n case 'undefined': return 'undefined'\n case 'boolean': return String(v)\n case 'string': return str(v)\n case 'number': return Object.is(v, -0) ? '-0' : String(v)\n case 'bigint': return `${v}n`\n case 'function': throw new Unserializable(`a function (${v.name || 'anonymous'})`)\n case 'symbol': throw new Unserializable(`a symbol (${String(v)})`)\n }\n if (seen.has(v)) throw new Unserializable('a circular reference')\n if (isEvent(v) || isElement(v)) {\n if (mode == 'state') throw new Unserializable(isEvent(v) ? `a DOM ${v.type} event` : 'a DOM element')\n flag.stubbed = true\n return lit(isEvent(v) ? eventStub(v) : elementStub(v), mode, ind, seen, flag)\n }\n seen.add(v)\n try {\n const inner = ind + ' '\n const list = (items: string[], open: string, close: string) => {\n if (!items.length) return open + close\n const one = open + (open == '{' ? ' ' : '') + items.join(', ') + (open == '{' ? ' ' : '') + close\n if (one.length + ind.length <= 100 && !one.includes('\\n')) return one\n return open + '\\n' + items.map(s => inner + s).join(',\\n') + ',\\n' + ind + close\n }\n if (Array.isArray(v)) return list(Array.from(v, x => lit(x, mode, inner, seen, flag)), '[', ']')\n if (v instanceof Date) return `new Date(${str(isNaN(+v) ? 'Invalid Date' : v.toISOString())})`\n if (v instanceof Map) return `new Map(${list([...v].map(([k, x]) => list([lit(k, mode, inner + ' ', seen, flag), lit(x, mode, inner + ' ', seen, flag)], '[', ']')), '[', ']')})`\n if (v instanceof Set) return `new Set(${list([...v].map(x => lit(x, mode, inner, seen, flag)), '[', ']')})`\n const proto = Object.getPrototypeOf(v)\n // G-265: a vnode of the JSX pragma (its own constructor, flagged $p) is a plain object\n if (proto !== Object.prototype && proto !== null && !v.$p) throw new Unserializable(`a ${(v.constructor && v.constructor.name) || 'class instance'}`)\n const items: string[] = []\n for (const k of Object.keys(v)) {\n if (v[k] === undefined) continue\n items.push(`${IDENT.test(k) ? k : str(k)}: ${lit(v[k], mode, inner, seen, flag)}`)\n }\n return list(items, '{', '}')\n } finally {\n seen.delete(v)\n }\n}\n\nconst q = str\nconst tryLit = (v: any, mode: 'data' | 'state', ind: string): Lit | {error: string} => {\n try { return literal(v, mode, ind) } catch (e: any) {\n if (e instanceof Unserializable) return {error: e.message}\n throw e\n }\n}\n\n/** an error reply from makeFetchDriver: { error, request, status?, body? } for the request's `error` action */\nconst isErrorReply = (a: SessionAction) =>\n a.data && typeof a.data == 'object' && 'error' in a.data && a.data.request && typeof a.data.request == 'object' && a.data.request.error === a.type\n\n/** The test for a recorded session (see the module comment), with what it left out. */\nexport function sessionToTest(rec: SessionRecording, options: CopyAsTestOptions = {}): CopyAsTestResult {\n const name = options.componentName || (IDENT.test(rec.component) ? rec.component : 'Component')\n const warnings: string[] = []\n const incomplete: string[] = []\n const body: string[] = []\n const I = ' '\n const drivers = options.drivers || {}\n let replayed = 0\n\n if (rec.truncated) incomplete.push('the session lost its oldest actions (clear the log, then record a shorter session)')\n\n // render options\n const opts: string[] = []\n if (rec.initialState !== undefined && !deepEqual(rec.initialState, rec.definitionInitialState)) {\n const l = tryLit(rec.initialState, 'state', I)\n if ('error' in l) {\n warnings.push(`the initial state holds ${l.error}: rendering with the component's own initialState`)\n incomplete.push('the initial state could not be written')\n } else opts.push(`initialState: ${l.code}`)\n }\n const fakeable = new Set(rec.fakeable)\n const driverNames = [...new Set([...rec.drivers.filter(n => !fakeable.has(n)), ...Object.keys(drivers)])]\n const given = driverNames.filter(n => drivers[n] !== undefined)\n const missing = driverNames.filter(n => drivers[n] === undefined)\n if (given.length) opts.push(`drivers: { ${given.map(n => `${IDENT.test(n) ? n : q(n)}: ${drivers[n]}`).join(', ')} }`)\n if (missing.length) warnings.push(`the app had ${missing.length == 1 ? 'a driver' : 'drivers'} for ${missing.join(', ')}: pass ${missing.length == 1 ? 'it' : 'them'} with copyAsTest(..., { drivers: { ${missing[0]}: '...' } }) if the component reads ${missing.length == 1 ? 'it' : 'them'}`)\n if (options.renderOptions) opts.push(options.renderOptions)\n\n const names = rec.actionNames && new Set(rec.actionNames)\n // (G-218: t.respond / t.fail right after queued simulateAction calls wait for the request\n // those calls send, so no settle() is needed before them)\n const answer = (line: string) => body.push(line)\n for (const a of rec.actions) {\n const changes = a.sinks.includes('STATE') || a.sinks.includes('state')\n if (REPLAY.has(a.cause)) {\n // an intent over the component's own STATE stream: the replay produces it again\n if (a.echo) continue\n // an intent action with no model entry does nothing (renderComponent can't send it)\n if (names && !names.has(a.type) && a.cause != 'behavior') continue\n replayed++\n if (a.data === undefined) { body.push(`${I}t.simulateAction(${q(a.type)})`); continue }\n const l = tryLit(a.data, 'data', I)\n if ('error' in l) {\n body.push(`${I}t.simulateAction(${q(a.type)}) // data left out: it held ${l.error}`)\n if (changes) incomplete.push(`${a.type}'s data could not be written (${l.error})`)\n continue\n }\n if (l.stubbed) body.push(`${I}// ${a.type}: DOM event/element data as a stub (type, key, target dataset/value/checked/id)`)\n body.push(`${I}t.simulateAction(${q(a.type)}, ${l.code})`)\n } else if (a.cause == 'reply') {\n const sink = a.replySink\n if (!sink || a.replyKind != 'fetch' || drivers[sink] !== undefined) {\n body.push(`${I}// reply ${a.type}${sink ? ` from ${sink}` : ''}: not replayed (renderComponent fakes makeFetchDriver sources only)`)\n if (changes) incomplete.push(`the ${a.type} reply could not be replayed`)\n continue\n }\n if (isErrorReply(a)) {\n const err = a.data.error, status = a.data.status ?? (err && err.status), errBody = a.data.body ?? (err && err.body)\n if (typeof status == 'number') {\n if (errBody === undefined) answer(`${I}await t.fail(${q(sink)}, ${status}, ${q(a.type)})`)\n else {\n const l = tryLit(errBody, 'state', I)\n if ('error' in l) { answer(`${I}await t.fail(${q(sink)}, ${status}, ${q(a.type)}) // body left out: it held ${l.error}`); if (changes) incomplete.push(`the ${a.type} error body could not be written`) }\n else answer(`${I}await t.fail(${q(sink)}, ${status}, { request: (r) => r.error === ${q(a.type)}, body: ${l.code} })`)\n }\n } else if (a.data.issues) {\n body.push(`${I}// reply ${a.type}: a validation failure, not replayed`)\n if (changes) incomplete.push(`the ${a.type} validation failure could not be replayed`)\n continue\n } else {\n answer(`${I}await t.fail(${q(sink)}, new Error(${str(String(err && err.message || err))}), ${q(a.type)})`)\n }\n replayed++\n continue\n }\n const l = tryLit(a.data, 'state', I)\n if ('error' in l) {\n body.push(`${I}// reply ${a.type} from ${sink}: its data held ${l.error}, not replayed`)\n if (changes) incomplete.push(`the ${a.type} reply's data could not be written`)\n continue\n }\n answer(`${I}await t.respond(${q(sink)}, ${l.code}, ${q(a.type)})`)\n replayed++\n } else if (a.type == 'RESOURCE' && a.data && (a.data.status == 'success' || a.data.status == 'error')) {\n body.push(`${I}// RESOURCE ${a.data.name}: ${a.data.status}, not replayed (answer it with t.respond / t.fail)`)\n if (changes) incomplete.push(`resource '${a.data.name}' was answered`)\n }\n // 'next' and 'built-in': consequences, produced again by the replay\n }\n\n if (rec.foreign.length) {\n const list = rec.foreign.slice(0, 5).map(f => `${f.component}#${f.instance} ${f.type}`).join(', ') + (rec.foreign.length > 5 ? ', ...' : '')\n incomplete.push(`child components changed the state through their own actions (${list}): copy the test from that component instance instead`)\n }\n\n let assertion: string[]\n if (!incomplete.length) {\n const l = tryLit(rec.finalState, 'state', I)\n if ('error' in l) incomplete.push(`the final state holds ${l.error}`)\n else assertion = [`${I}expect(t.state).toEqual(${l.code})`]\n }\n if (incomplete.length) {\n warnings.push(...incomplete.map(s => 'no final-state assertion: ' + s))\n assertion = [`${I}// No final-state assertion: ${incomplete.join('; ')}`]\n }\n\n const head: string[] = []\n if (options.environment) head.push(`// @vitest-environment ${options.environment}`)\n head.push(`// Copied from a sygnal/devtools session of ${rec.component} (${rec.actions.length} recorded actions, ${replayed} replayed)`)\n for (const w of warnings) head.push(`// NOTE: ${w}`)\n head.push(`import { it, expect } from 'vitest'`, `import { renderComponent } from 'sygnal'`)\n head.push(...(options.imports || []))\n head.push(options.componentImport || `import ${name} from './${name}.js'`)\n\n const testName = options.testName || `${rec.component} session (copied from sygnal/devtools)`\n const render = opts.length ? `renderComponent(${name}, {\\n${opts.map(o => `${I}${o},`).join('\\n')}\\n })` : `renderComponent(${name})`\n const code = [\n ...head,\n '',\n `it(${q(testName)}, async () => {`,\n ` const t = ${render}`,\n ' try {',\n `${I}await t.ready()`,\n ...body,\n `${I}await t.settle()`,\n ...assertion!,\n ' } finally {',\n `${I}t.dispose()`,\n ' }',\n '})',\n '',\n ].join('\\n')\n return {code, complete: !incomplete.length, warnings, replayed}\n}\n","import {getDiagnostics} from './diagnostics/index';\nimport type {Diagnostic} from './diagnostics/index';\nimport {recordActions, clearActions, getActions, onAction, getSession, preview} from './devtoolsActions';\nimport type {DevtoolsAction, SessionRecording} from './devtoolsActions';\nimport {sessionToTest} from './copyAsTest';\nimport type {CopyAsTestOptions, CopyAsTestResult} from './copyAsTest';\n\nimport {addLayer, devtoolsHooks} from './devtoolsNext';\n\nconst DEVTOOLS_SOURCE = '__SYGNAL_DEVTOOLS_PAGE__';\nconst EXTENSION_SOURCE = '__SYGNAL_DEVTOOLS_EXTENSION__';\nconst DEFAULT_MAX_HISTORY = 200;\n\ndeclare global {\n interface Window {\n __SYGNAL_DEVTOOLS__?: SygnalDevTools;\n __SYGNAL_DEVTOOLS_APP__?: {\n __runtime?: { setState: (id: any, fn: (s: any) => any) => void };\n };\n __SYGNAL_DEVTOOLS_PAGE__?: boolean;\n SYGNAL_DEBUG?: string | false;\n __SYGNAL_HMR_LAST_CAPTURED_STATE?: unknown;\n Cyclejs?: { sinks?: any };\n CyclejsDevTool_startGraphSerializer?: (sinks: any) => void;\n }\n}\n\ninterface StateHistoryEntry {\n componentId: number;\n componentName: string;\n timestamp: number;\n state: any;\n}\n\ninterface MviGraphData {\n sources: string[];\n actions: {name: string; sinks: string[]}[];\n contextProvides: string[];\n}\n\ninterface ComponentMeta {\n id: number;\n name: string;\n isSubComponent: boolean;\n hasModel: boolean;\n hasIntent: boolean;\n hasContext: boolean;\n hasCalculated: boolean;\n components: string[];\n parentId: number | null;\n children: number[];\n debug: boolean;\n createdAt: number;\n mviGraph: MviGraphData | null;\n _instanceRef: WeakRef<any>;\n}\n\ninterface ExtensionMessage {\n type: string;\n payload?: any;\n source?: string;\n}\n\nexport class SygnalDevTools {\n _connected: boolean;\n _initialized = false;\n _components: Map<number, ComponentMeta>;\n _stateHistory: StateHistoryEntry[];\n _maxHistory: number;\n /** PLAN-4 3-E: actions changed since the last ACTIONS post (flushed on a timeout) */\n _dirty = new Set<DevtoolsAction>();\n _flush: any = null;\n _copyOptions: CopyAsTestOptions = {};\n\n constructor() {\n this._connected = false;\n this._components = new Map();\n this._stateHistory = [];\n this._maxHistory = DEFAULT_MAX_HISTORY;\n }\n\n /** Diagnostics collected by the shared diagnostics core (see src/extra/diagnostics). */\n getDiagnostics(): Diagnostic[] {\n return getDiagnostics();\n }\n\n get connected(): boolean {\n return this._connected && typeof window !== 'undefined';\n }\n\n /** Publish the bridge on window and listen for the extension. Idempotent (D77: called once, by 'sygnal/devtools'). */\n init(): void {\n if (typeof window === 'undefined' || this._initialized) return;\n this._initialized = true;\n\n window.__SYGNAL_DEVTOOLS__ = this;\n\n // PLAN-4 3-E (GS-10): the action log (recorded from now on, connected or not)\n recordActions();\n // PLAN-4.6 R4: the apps read this bridge's hooks (devtoolsNext.ts)\n addLayer((api: any) => devtoolsHooks(this, api));\n onAction((a, kind) => {\n if (!this.connected) return;\n if (kind == 'reset') { this._dirty.clear(); this._post('ACTIONS_RESET', {actions: []}); return; }\n this._dirty.add(a!);\n if (this._flush === null) this._flush = setTimeout(() => this._flushActions(), 0);\n });\n\n window.addEventListener('message', (event: MessageEvent) => {\n if (event.source !== window) return;\n if (event.data?.source === EXTENSION_SOURCE) {\n this._handleExtensionMessage(event.data);\n }\n });\n }\n\n _handleExtensionMessage(msg: ExtensionMessage): void {\n switch (msg.type) {\n case 'CONNECT':\n this._connected = true;\n if (msg.payload?.maxHistory) this._maxHistory = msg.payload.maxHistory;\n this._sendFullTree();\n this._post('ACTIONS_RESET', {actions: getActions().slice(-500).map(a => this._serializeAction(a))});\n break;\n case 'CLEAR_ACTIONS':\n clearActions();\n break;\n case 'COPY_AS_TEST':\n this._post('COPY_AS_TEST_RESULT', this._copyAsTest(msg.payload?.instance));\n break;\n case 'DISCONNECT':\n this._connected = false;\n break;\n case 'SET_DEBUG':\n this._setDebug(msg.payload);\n break;\n case 'TIME_TRAVEL':\n this._timeTravel(msg.payload);\n break;\n case 'SNAPSHOT':\n this._takeSnapshot();\n break;\n case 'RESTORE_SNAPSHOT':\n this._restoreSnapshot(msg.payload);\n break;\n case 'GET_STATE':\n this._sendComponentState(msg.payload.componentId);\n break;\n }\n }\n\n onComponentCreated(componentNumber: number, name: string, instance: any): void {\n const meta: ComponentMeta = {\n id: componentNumber,\n name: name,\n isSubComponent: instance.isSubComponent,\n hasModel: !!instance.model,\n hasIntent: !!instance.intent,\n hasContext: !!instance.context,\n hasCalculated: !!instance.calculated,\n components: [],\n parentId: null,\n children: [],\n debug: instance._debug,\n createdAt: Date.now(),\n mviGraph: this._extractMviGraph(instance),\n _instanceRef: new WeakRef(instance),\n };\n this._components.set(componentNumber, meta);\n\n if (!this.connected) return;\n this._post('COMPONENT_CREATED', this._serializeMeta(meta));\n }\n\n onStateChanged(componentNumber: number, name: string, state: any): void {\n if (!this.connected) return;\n\n const entry: StateHistoryEntry = {\n componentId: componentNumber,\n componentName: name,\n timestamp: Date.now(),\n state: this._safeClone(state),\n };\n\n this._stateHistory.push(entry);\n if (this._stateHistory.length > this._maxHistory) {\n this._stateHistory.shift();\n }\n\n this._post('STATE_CHANGED', {\n componentId: componentNumber,\n componentName: name,\n state: entry.state,\n });\n }\n\n onActionDispatched(componentNumber: number, name: string, actionType: string, data: any): void {\n if (!this.connected) return;\n this._post('ACTION_DISPATCHED', {\n componentId: componentNumber,\n componentName: name,\n actionType: actionType,\n data: this._safeClone(data),\n timestamp: Date.now(),\n });\n }\n\n onSubComponentRegistered(parentNumber: number, childNumber: number): void {\n const parent = this._components.get(parentNumber);\n const child = this._components.get(childNumber);\n if (parent && child) {\n child.parentId = parentNumber;\n if (!parent.children.includes(childNumber)) {\n parent.children.push(childNumber);\n }\n }\n\n if (!this.connected) return;\n this._post('TREE_UPDATED', {\n parentId: parentNumber,\n childId: childNumber,\n });\n }\n\n onContextChanged(componentNumber: number, name: string, context: any): void {\n if (!this.connected) return;\n this._post('CONTEXT_CHANGED', {\n componentId: componentNumber,\n componentName: name,\n context: this._safeClone(context),\n contextTrace: this._buildContextTrace(componentNumber, context),\n });\n }\n\n onPropsChanged(componentNumber: number, name: string, props: any): void {\n if (!this.connected) return;\n this._post('PROPS_CHANGED', {\n componentId: componentNumber,\n componentName: name,\n props: this._safeClone(props),\n });\n }\n\n onBusEvent(event: {type: string; data?: any; __emitterId?: number; __emitterName?: string}): void {\n if (!this.connected) return;\n this._post('BUS_EVENT', {\n type: event.type,\n data: this._safeClone(event.data),\n componentId: event.__emitterId ?? null,\n componentName: event.__emitterName ?? null,\n timestamp: Date.now(),\n });\n }\n\n onCommandSent(type: string, data: any, targetComponentId?: number, targetComponentName?: string): void {\n if (!this.connected) return;\n this._post('COMMAND_SENT', {\n type,\n data: this._safeClone(data),\n targetComponentName: targetComponentName ?? null,\n timestamp: Date.now(),\n });\n }\n\n onReadyChanged(parentId: number, parentName: string, childKey: string, ready: boolean): void {\n if (!this.connected) return;\n this._post('READY_CHANGED', {\n parentId,\n parentName,\n childKey,\n ready,\n timestamp: Date.now(),\n });\n }\n\n onCollectionMounted(parentId: number, parentName: string, itemComponentName: string, stateField: string | null): void {\n const meta = this._components.get(parentId);\n if (meta) {\n (meta as any).collection = {itemComponent: itemComponentName, stateField};\n }\n if (!this.connected) return;\n this._post('COLLECTION_MOUNTED', {\n parentId,\n parentName,\n itemComponent: itemComponentName,\n stateField,\n });\n }\n\n onComponentDisposed(componentNumber: number, name: string): void {\n const meta = this._components.get(componentNumber);\n if (meta) {\n (meta as any).disposed = true;\n (meta as any).disposedAt = Date.now();\n }\n\n if (!this.connected) return;\n this._post('COMPONENT_DISPOSED', {\n componentId: componentNumber,\n componentName: name,\n timestamp: Date.now(),\n });\n }\n\n onDebugLog(componentNumber: number, message: string): void {\n if (!this.connected) return;\n this._post('DEBUG_LOG', {\n componentId: componentNumber,\n message: message,\n timestamp: Date.now(),\n });\n }\n\n /** PLAN-4 3-E: post the actions added or changed since the last flush */\n _flushActions(): void {\n this._flush = null;\n if (!this.connected || !this._dirty.size) { this._dirty.clear(); return; }\n const list = [...this._dirty].sort((a, b) => a.seq - b.seq).map(a => this._serializeAction(a));\n this._dirty.clear();\n this._post('ACTIONS', {actions: list});\n }\n\n _serializeAction(a: DevtoolsAction): any {\n return {\n seq: a.seq, type: a.type, data: preview(a.data), component: a.component, instance: a.instance, parent: a.parent,\n sinks: [...a.sinks], cause: a.cause, at: a.at,\n ...('after' in a ? {before: this._safeClone(a.before), after: this._safeClone(a.after)} : {}),\n };\n }\n\n /** \"Copy as test\" for the panel: the session of `instance` (default: the root) */\n _copyAsTest(instance?: string | number): CopyAsTestResult | {error: string} {\n try {\n return sessionToTest(getSession(instance ?? undefined), this._copyOptions);\n } catch (e: any) {\n return {error: String(e?.message || e)};\n }\n }\n\n /** Defaults for \"Copy as test\" from the panel (componentImport, drivers, imports, ...) */\n configureCopyAsTest(options: CopyAsTestOptions): void {\n this._copyOptions = {...this._copyOptions, ...options};\n }\n\n /** The recorded session of an instance (see sygnal/devtools getSession) */\n getSession(target?: any): SessionRecording {\n return getSession(target);\n }\n\n _setDebug({componentId, enabled}: {componentId?: number; enabled: boolean}): void {\n if (typeof componentId === 'undefined' || componentId === null) {\n if (typeof window !== 'undefined') window.SYGNAL_DEBUG = enabled ? 'true' : false;\n this._post('DEBUG_TOGGLED', {global: true, enabled});\n return;\n }\n\n const meta = this._components.get(componentId);\n if (meta && meta._instanceRef) {\n const instance = meta._instanceRef.deref();\n if (instance) {\n // (through the app's runtime API)\n instance.__api?.setDebug(componentId, enabled);\n meta.debug = enabled;\n this._post('DEBUG_TOGGLED', {componentId, enabled});\n }\n }\n }\n\n _timeTravel({componentId, componentName, state}: {componentId: number; componentName: string; state: any}): void {\n if (componentId == null || !state) {\n console.warn('[Sygnal DevTools] _timeTravel: missing componentId or state', {componentId, hasState: !!state});\n return;\n }\n\n if (typeof window === 'undefined') return;\n\n const newState = this._safeClone(state);\n\n // Per-component time travel through the app's runtime API\n const meta = this._components.get(componentId);\n if (meta) {\n const instance = meta._instanceRef?.deref();\n if (!instance) {\n console.warn(`[Sygnal DevTools] _timeTravel: WeakRef for component #${componentId} (${componentName}) has been GC'd`);\n } else if (instance.__api) {\n // the runtime's setState (a queued action, one patch)\n instance.__api.setState(componentId, () => ({...newState}));\n this._post('TIME_TRAVEL_APPLIED', {componentId, componentName, state: newState});\n return;\n }\n } else {\n console.warn(`[Sygnal DevTools] _timeTravel: no meta for componentId ${componentId}`);\n }\n\n // Fall back to the root's state\n const app = window.__SYGNAL_DEVTOOLS_APP__;\n if (app?.__runtime) {\n app.__runtime.setState('root', () => ({...newState}));\n this._post('TIME_TRAVEL_APPLIED', {componentId, componentName, state: newState});\n } else {\n console.warn(`[Sygnal DevTools] _timeTravel: no fallback root STATE sink available`);\n }\n }\n\n _takeSnapshot(): void {\n const entries: {componentId: number; componentName: string; state: any}[] = [];\n for (const [id, meta] of this._components) {\n if ((meta as any).disposed) continue;\n const instance = meta._instanceRef?.deref();\n if (instance?.currentState != null) {\n entries.push({\n componentId: id,\n componentName: meta.name,\n state: this._safeClone(instance.currentState),\n });\n }\n }\n this._post('SNAPSHOT_TAKEN', {\n entries,\n timestamp: Date.now(),\n });\n }\n\n _restoreSnapshot(snapshot: {entries: {componentId: number; componentName: string; state: any}[]}): void {\n if (!snapshot?.entries) return;\n for (const entry of snapshot.entries) {\n this._timeTravel(entry);\n }\n }\n\n _sendComponentState(componentId: number): void {\n const meta = this._components.get(componentId);\n if (meta && meta._instanceRef) {\n const instance = meta._instanceRef.deref();\n if (instance) {\n this._post('COMPONENT_STATE', {\n componentId,\n state: this._safeClone(instance.currentState),\n context: this._safeClone(instance.currentContext),\n contextTrace: this._buildContextTrace(componentId, instance.currentContext),\n props: this._safeClone(instance.currentProps),\n });\n }\n }\n }\n\n _buildContextTrace(componentId: number, context: any): {field: string; providerId: number; providerName: string}[] {\n if (!context || typeof context !== 'object') return [];\n const trace: {field: string; providerId: number; providerName: string}[] = [];\n const fields = Object.keys(context);\n\n for (const field of fields) {\n // Walk up parent chain to find which component provides this field\n let currentId: number | null = componentId;\n let found = false;\n while (currentId != null) {\n const meta = this._components.get(currentId);\n if (!meta) break;\n if (meta.mviGraph?.contextProvides?.includes(field)) {\n trace.push({field, providerId: meta.id, providerName: meta.name});\n found = true;\n break;\n }\n currentId = meta.parentId;\n }\n if (!found) {\n trace.push({field, providerId: -1, providerName: 'unknown'});\n }\n }\n return trace;\n }\n\n _sendFullTree(): void {\n const tree: any[] = [];\n for (const [, meta] of this._components) {\n const instance = meta._instanceRef?.deref();\n tree.push({\n ...this._serializeMeta(meta),\n state: instance ? this._safeClone(instance.currentState) : null,\n context: instance ? this._safeClone(instance.currentContext) : null,\n });\n }\n this._post('FULL_TREE', {\n components: tree,\n history: this._stateHistory,\n });\n }\n\n _post(type: string, payload: any): void {\n if (typeof window === 'undefined') return;\n window.postMessage(\n {\n source: DEVTOOLS_SOURCE,\n type,\n payload,\n },\n '*'\n );\n }\n\n _safeClone(obj: any): any {\n if (obj === undefined || obj === null) return obj;\n try {\n return JSON.parse(JSON.stringify(obj));\n } catch (e) {\n return '[unserializable]';\n }\n }\n\n _extractMviGraph(instance: any): MviGraphData | null {\n if (!instance.model) return null;\n try {\n const sources = instance.sourceNames ? [...instance.sourceNames] : [];\n const actions: {name: string; sinks: string[]}[] = [];\n const model = instance.model;\n\n for (const key of Object.keys(model)) {\n let actionName = key;\n let entry = model[key];\n\n // Handle shorthand 'ACTION | SINK'\n if (key.includes('|')) {\n const parts = key.split('|').map((s: string) => s.trim());\n if (parts.length === 2 && parts[0] && parts[1]) {\n actionName = parts[0];\n actions.push({name: actionName, sinks: [parts[1]]});\n continue;\n }\n }\n\n // Function → targets STATE\n if (typeof entry === 'function') {\n actions.push({name: actionName, sinks: [instance.stateSourceName || 'STATE']});\n continue;\n }\n\n // Object → keys are sink names\n if (entry && typeof entry === 'object') {\n actions.push({name: actionName, sinks: Object.keys(entry)});\n continue;\n }\n }\n\n const contextProvides = instance.context && typeof instance.context === 'object'\n ? Object.keys(instance.context) : [];\n\n return {sources, actions, contextProvides};\n } catch (e) {\n return null;\n }\n }\n\n _serializeMeta(meta: ComponentMeta): Omit<ComponentMeta, '_instanceRef'> {\n const {_instanceRef, ...rest} = meta;\n return rest;\n }\n}\n\nlet instance: SygnalDevTools | null = null;\n\n/**\n * The bridge singleton of the 'sygnal/devtools' entry. Not part of the core\n * (D77): the core only calls the hooks of window.__SYGNAL_DEVTOOLS__ when it exists.\n */\nexport function getDevTools(): SygnalDevTools {\n if (!instance) instance = new SygnalDevTools();\n return instance;\n}\n\n/**\n * Install the bridge (what run() did before 6.0): window.__SYGNAL_DEVTOOLS__ is\n * set and the extension can connect. A bridge already on window (e.g. a second\n * copy of this entry) is kept. Nothing happens outside a browser.\n */\nexport function installDevTools(): SygnalDevTools | undefined {\n if (typeof window === 'undefined') return undefined;\n const existing = window.__SYGNAL_DEVTOOLS__;\n if (existing) return existing;\n const dt = getDevTools();\n dt.init();\n return dt;\n}\n\nexport default getDevTools;\n","/**\n * PLAN-4 3-E (GS-10 stretch): a dev-only bridge to the Redux DevTools extension\n * (window.__REDUX_DEVTOOLS_EXTENSION__), in 'sygnal/devtools'. Sends each recorded action\n * (./devtoolsActions; built-in ones left out) with the root's state after it, as\n * `{ type: '<Component>/<ACTION>', payload, cause, instance }`. Jump to state / action in the\n * extension replaces the root's state (the Sygnal DevTools time-travel path). sygnal/vite calls it\n * in dev with sygnal({ devtools: { redux: true } }).\n */\nimport {recordActions, onAction, resolveInstance, preview} from './devtoolsActions'\nimport type {DevtoolsAction} from './devtoolsActions'\n\nexport interface ReduxDevtoolsOptions {\n /** the instance name in the extension (default 'Sygnal') */\n name?: string\n /** which actions to send (default: all but 'built-in' ones) */\n filter?: (action: DevtoolsAction) => boolean\n}\n\nconst clone = (s: any) => preview(s)\n\nlet shared: (() => void) | undefined\n\n/**\n * Connect the app's root (run()'s result, a component, an instance id; default: the newest root)\n * to the Redux DevTools extension. Returns a disconnect function; does nothing without the\n * extension.\n */\nexport function connectReduxDevtools(target?: any, options?: ReduxDevtoolsOptions): () => void {\n // the default connection (sygnal/vite may inject the call in several files) is made once\n if (target === undefined && options === undefined) {\n if (!shared) {\n const off = connect(undefined, {})\n shared = () => { off(); shared = undefined }\n }\n return shared\n }\n return connect(target, options || {})\n}\n\nfunction connect(target: any, options: ReduxDevtoolsOptions): () => void {\n const ext = typeof window != 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\n if (!ext || typeof ext.connect != 'function') return () => {}\n recordActions()\n const conn = ext.connect({name: options.name || 'Sygnal', features: {jump: true, pause: true, export: true}})\n const keep = options.filter || ((a: DevtoolsAction) => a.cause != 'built-in')\n let root: any, started = false, timer: any = null\n const queue: DevtoolsAction[] = []\n\n const rootOf = () => {\n if (!root || root.disposed || !root.c) root = resolveInstance(target)\n return root\n }\n const flush = () => {\n timer = null\n const r = start()\n if (!r) return\n for (const a of queue.splice(0)) {\n const state = a.instance === r.id && 'after' in a ? a.after : r.c.currentState\n conn.send({type: `${a.component}/${a.type}`, payload: preview(a.data), cause: a.cause, instance: a.instance}, clone(state))\n }\n }\n const start = () => {\n const r = rootOf()\n if (r && !started) { started = true; conn.init(clone(r.c.currentState)) }\n return r\n }\n start()\n const off = onAction((a, kind) => {\n if (kind == 'reset') { queue.length = 0; started = false; start(); return }\n if (kind != 'add') return\n // connected before run() (sygnal/vite): the root's first action, its state still the initial one\n if (!started) start()\n if (!keep(a!)) return\n queue.push(a!)\n if (timer === null) timer = setTimeout(flush, 0)\n })\n const unsubscribe = conn.subscribe((msg: any) => {\n if (msg?.type !== 'DISPATCH' || !msg.state) return\n const t = msg.payload?.type\n if (t !== 'JUMP_TO_STATE' && t !== 'JUMP_TO_ACTION') return\n const r = rootOf()\n const dt = (window as any).__SYGNAL_DEVTOOLS__\n if (!r || !dt || typeof dt._timeTravel != 'function') return\n try { dt._timeTravel({componentId: Number(r.id), componentName: r.name, state: JSON.parse(msg.state)}) } catch (_) { /* a bad state from the extension */ }\n })\n return () => {\n off()\n if (timer !== null) clearTimeout(timer)\n if (typeof unsubscribe == 'function') unsubscribe()\n try { ext.disconnect?.() } catch (_) { /* ignore */ }\n }\n}\n","// 'sygnal/devtools' (D77): the DevTools bridge for the browser extension, a dev-only\n// entry. Importing it installs window.__SYGNAL_DEVTOOLS__ (run() did this before 6.0),\n// so import it before run(): components created earlier are not in the tree.\n// sygnal/vite injects it in dev (`vite`, not `vite build`); opt out with\n// sygnal({ devtools: false }). Production builds never contain it.\n// PLAN-4 3-E (GS-10): it also records the action log (in a browser on import; elsewhere\n// after recordActions()), and turns a session into a renderComponent test (copyAsTest).\nimport {installDevTools} from './extra/devtools'\nimport {getSession, isRecording} from './extra/devtoolsActions'\nimport type {SessionRecording} from './extra/devtoolsActions'\nimport {sessionToTest} from './extra/copyAsTest'\nimport type {CopyAsTestOptions, CopyAsTestResult} from './extra/copyAsTest'\n\ninstallDevTools()\n\nexport {getDevTools, installDevTools} from './extra/devtools'\nexport {recordActions, clearActions, getActions, onAction, getSession, isRecording} from './extra/devtoolsActions'\nexport {connectReduxDevtools} from './extra/reduxDevtools'\n\nconst isSession = (x: any): x is SessionRecording => !!x && typeof x == 'object' && x.version === 1 && Array.isArray(x.actions)\n\n/**\n * \"Copy as test\", with what was left out: the session of `target` (undefined: the newest root;\n * an instance id; a component; run()'s result; or a SessionRecording from getSession()).\n */\nexport function copyAsTestResult(target?: any, options?: CopyAsTestOptions): CopyAsTestResult {\n if (!isSession(target) && !isRecording()) throw new Error('[Sygnal DevTools] copyAsTest: nothing was recorded: import sygnal/devtools before run() (in a browser), or call recordActions() first')\n return sessionToTest(isSession(target) ? target : getSession(target), options)\n}\n\n/** \"Copy as test\": a Vitest + renderComponent test replaying the recorded session (see copyAsTestResult). */\nexport function copyAsTest(target?: any, options?: CopyAsTestOptions): string {\n return copyAsTestResult(target, options).code\n}\n"],"names":["getDiagnostics"],"mappings":"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"}
|