@alloy-js/core 0.23.0-dev.8 → 0.23.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 +34 -0
- package/api-extractor.json +1 -8
- package/api-extractor.testing.json +19 -0
- package/dist/dev/src/binder.js +595 -0
- package/dist/dev/src/binder.js.map +1 -0
- package/dist/dev/src/code.js +181 -0
- package/dist/dev/src/code.js.map +1 -0
- package/dist/dev/src/components/AccessExpression.js +230 -0
- package/dist/dev/src/components/AccessExpression.js.map +1 -0
- package/dist/dev/src/components/AccessExpression.test.js +237 -0
- package/dist/dev/src/components/AccessExpression.test.js.map +1 -0
- package/dist/dev/src/components/AppendFile.js +246 -0
- package/dist/dev/src/components/AppendFile.js.map +1 -0
- package/dist/dev/src/components/Block.js +78 -0
- package/dist/dev/src/components/Block.js.map +1 -0
- package/dist/dev/src/components/CopyFile.js +16 -0
- package/dist/dev/src/components/CopyFile.js.map +1 -0
- package/dist/dev/src/components/Declaration.js +70 -0
- package/dist/dev/src/components/Declaration.js.map +1 -0
- package/dist/dev/src/components/For.js +40 -0
- package/dist/dev/src/components/For.js.map +1 -0
- package/dist/dev/src/components/Indent.js +37 -0
- package/dist/dev/src/components/Indent.js.map +1 -0
- package/dist/dev/src/components/List.js +29 -0
- package/dist/dev/src/components/List.js.map +1 -0
- package/dist/dev/src/components/MemberDeclaration.js +70 -0
- package/dist/dev/src/components/MemberDeclaration.js.map +1 -0
- package/dist/dev/src/components/MemberName.js +18 -0
- package/dist/dev/src/components/MemberName.js.map +1 -0
- package/dist/dev/src/components/MemberScope.js +62 -0
- package/dist/dev/src/components/MemberScope.js.map +1 -0
- package/dist/dev/src/components/Name.js +11 -0
- package/dist/dev/src/components/Name.js.map +1 -0
- package/dist/dev/src/components/Output.js +72 -0
- package/dist/dev/src/components/Output.js.map +1 -0
- package/dist/dev/src/components/Prose.js +32 -0
- package/dist/dev/src/components/Prose.js.map +1 -0
- package/dist/dev/src/components/ReferenceOrContent.js +12 -0
- package/dist/dev/src/components/ReferenceOrContent.js.map +1 -0
- package/dist/dev/src/components/Scope.js +56 -0
- package/dist/dev/src/components/Scope.js.map +1 -0
- package/dist/dev/src/components/Show.js +4 -0
- package/dist/dev/src/components/Show.js.map +1 -0
- package/dist/dev/src/components/SourceDirectory.js +41 -0
- package/dist/dev/src/components/SourceDirectory.js.map +1 -0
- package/dist/dev/src/components/SourceFile.js +52 -0
- package/dist/dev/src/components/SourceFile.js.map +1 -0
- package/dist/dev/src/components/StatementList.js +20 -0
- package/dist/dev/src/components/StatementList.js.map +1 -0
- package/dist/dev/src/components/Switch.js +42 -0
- package/dist/dev/src/components/Switch.js.map +1 -0
- package/dist/dev/src/components/TemplateFile.js +153 -0
- package/dist/dev/src/components/TemplateFile.js.map +1 -0
- package/dist/dev/src/components/UpdateFile.js +71 -0
- package/dist/dev/src/components/UpdateFile.js.map +1 -0
- package/dist/dev/src/components/Wrap.js +18 -0
- package/dist/dev/src/components/Wrap.js.map +1 -0
- package/dist/dev/src/components/index.js +25 -0
- package/dist/dev/src/components/index.js.map +1 -0
- package/dist/dev/src/components/stc/index.js +27 -0
- package/dist/dev/src/components/stc/index.js.map +1 -0
- package/dist/dev/src/components/stc/sti.js +10 -0
- package/dist/dev/src/components/stc/sti.js.map +1 -0
- package/dist/dev/src/content-slot.js +78 -0
- package/dist/dev/src/content-slot.js.map +1 -0
- package/dist/dev/src/content-slot.test.js +89 -0
- package/dist/dev/src/content-slot.test.js.map +1 -0
- package/dist/dev/src/context/assignment.js +46 -0
- package/dist/dev/src/context/assignment.js.map +1 -0
- package/dist/dev/src/context/binder.js +17 -0
- package/dist/dev/src/context/binder.js.map +1 -0
- package/dist/dev/src/context/declaration.js +3 -0
- package/dist/dev/src/context/declaration.js.map +1 -0
- package/dist/dev/src/context/format-options.js +45 -0
- package/dist/dev/src/context/format-options.js.map +1 -0
- package/dist/dev/src/context/index.js +11 -0
- package/dist/dev/src/context/index.js.map +1 -0
- package/dist/dev/src/context/member-declaration.js +11 -0
- package/dist/dev/src/context/member-declaration.js.map +1 -0
- package/dist/dev/src/context/member-scope.js +12 -0
- package/dist/dev/src/context/member-scope.js.map +1 -0
- package/dist/dev/src/context/name-policy.js +13 -0
- package/dist/dev/src/context/name-policy.js.map +1 -0
- package/dist/dev/src/context/scope.js +18 -0
- package/dist/dev/src/context/scope.js.map +1 -0
- package/dist/dev/src/context/source-directory.js +12 -0
- package/dist/dev/src/context/source-directory.js.map +1 -0
- package/dist/dev/src/context/source-file.js +3 -0
- package/dist/dev/src/context/source-file.js.map +1 -0
- package/dist/dev/src/context.js +47 -0
- package/dist/dev/src/context.js.map +1 -0
- package/dist/dev/src/debug/cli.js +164 -0
- package/dist/dev/src/debug/cli.js.map +1 -0
- package/dist/dev/src/debug/diagnostics-broadcast.test.js +100 -0
- package/dist/dev/src/debug/diagnostics-broadcast.test.js.map +1 -0
- package/dist/dev/src/debug/diagnostics.test.js +50 -0
- package/dist/dev/src/debug/diagnostics.test.js.map +1 -0
- package/dist/dev/src/debug/effects.js +293 -0
- package/dist/dev/src/debug/effects.js.map +1 -0
- package/dist/dev/src/debug/effects.test.js +280 -0
- package/dist/dev/src/debug/effects.test.js.map +1 -0
- package/dist/dev/src/debug/files.js +29 -0
- package/dist/dev/src/debug/files.js.map +1 -0
- package/dist/dev/src/debug/files.test.js +78 -0
- package/dist/dev/src/debug/files.test.js.map +1 -0
- package/dist/dev/src/debug/index.js +71 -0
- package/dist/dev/src/debug/index.js.map +1 -0
- package/dist/dev/src/debug/message-format.test.js +836 -0
- package/dist/dev/src/debug/message-format.test.js.map +1 -0
- package/dist/dev/src/debug/render-tree-orphans.test.js +365 -0
- package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -0
- package/dist/dev/src/debug/render.js +479 -0
- package/dist/dev/src/debug/render.js.map +1 -0
- package/dist/dev/src/debug/render.test.js +363 -0
- package/dist/dev/src/debug/render.test.js.map +1 -0
- package/dist/dev/src/debug/serialize.js +70 -0
- package/dist/dev/src/debug/serialize.js.map +1 -0
- package/dist/dev/src/debug/source-map.browser.js +24 -0
- package/dist/dev/src/debug/source-map.browser.js.map +1 -0
- package/dist/dev/src/debug/source-map.js +111 -0
- package/dist/dev/src/debug/source-map.js.map +1 -0
- package/dist/dev/src/debug/symbols.js +196 -0
- package/dist/dev/src/debug/symbols.js.map +1 -0
- package/dist/dev/src/debug/symbols.test.js +93 -0
- package/dist/dev/src/debug/symbols.test.js.map +1 -0
- package/dist/dev/src/debug/trace-writer.js +674 -0
- package/dist/dev/src/debug/trace-writer.js.map +1 -0
- package/dist/dev/src/debug/trace.js +460 -0
- package/dist/dev/src/debug/trace.js.map +1 -0
- package/dist/dev/src/devtools/devtools-protocol.js +2 -0
- package/dist/dev/src/devtools/devtools-protocol.js.map +1 -0
- package/dist/dev/src/devtools/devtools-server.browser.js +36 -0
- package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
- package/dist/dev/src/devtools/devtools-server.js +458 -0
- package/dist/dev/src/devtools/devtools-server.js.map +1 -0
- package/dist/dev/src/devtools/devtools-transport.js +114 -0
- package/dist/dev/src/devtools/devtools-transport.js.map +1 -0
- package/dist/dev/src/devtools-entry.browser.js +2 -0
- package/dist/dev/src/devtools-entry.browser.js.map +1 -0
- package/dist/dev/src/devtools-entry.js +2 -0
- package/dist/dev/src/devtools-entry.js.map +1 -0
- package/dist/dev/src/diagnostics.js +97 -0
- package/dist/dev/src/diagnostics.js.map +1 -0
- package/dist/dev/src/host/alloy-host.browser.js +32 -0
- package/dist/dev/src/host/alloy-host.browser.js.map +1 -0
- package/dist/dev/src/host/alloy-host.js +144 -0
- package/dist/dev/src/host/alloy-host.js.map +1 -0
- package/dist/dev/src/host/interface.js +2 -0
- package/dist/dev/src/host/interface.js.map +1 -0
- package/dist/dev/src/host/node-host.browser.js +21 -0
- package/dist/dev/src/host/node-host.browser.js.map +1 -0
- package/dist/dev/src/host/node-host.js +20 -0
- package/dist/dev/src/host/node-host.js.map +1 -0
- package/dist/dev/src/index.browser.js +3 -0
- package/dist/dev/src/index.browser.js.map +1 -0
- package/dist/dev/src/index.js +27 -0
- package/dist/dev/src/index.js.map +1 -0
- package/dist/dev/src/inspect.browser.js +6 -0
- package/dist/dev/src/inspect.browser.js.map +1 -0
- package/dist/dev/src/inspect.js +2 -0
- package/dist/dev/src/inspect.js.map +1 -0
- package/dist/dev/src/jsx-runtime.js +17 -0
- package/dist/dev/src/jsx-runtime.js.map +1 -0
- package/dist/dev/src/library-symbol-reference.js +59 -0
- package/dist/dev/src/library-symbol-reference.js.map +1 -0
- package/dist/dev/src/name-policy.js +51 -0
- package/dist/dev/src/name-policy.js.map +1 -0
- package/dist/dev/src/pretty-string/pretty-string.js +100 -0
- package/dist/dev/src/pretty-string/pretty-string.js.map +1 -0
- package/dist/dev/src/pretty-string/pretty-string.test.js +38 -0
- package/dist/dev/src/pretty-string/pretty-string.test.js.map +1 -0
- package/dist/dev/src/print-hook.js +10 -0
- package/dist/dev/src/print-hook.js.map +1 -0
- package/dist/dev/src/props-combinators.js +109 -0
- package/dist/dev/src/props-combinators.js.map +1 -0
- package/dist/dev/src/reactive-union-set.js +213 -0
- package/dist/dev/src/reactive-union-set.js.map +1 -0
- package/dist/dev/src/reactivity.js +452 -0
- package/dist/dev/src/reactivity.js.map +1 -0
- package/dist/dev/src/refkey.js +167 -0
- package/dist/dev/src/refkey.js.map +1 -0
- package/dist/dev/src/render-stack.js +252 -0
- package/dist/dev/src/render-stack.js.map +1 -0
- package/dist/dev/src/render.js +872 -0
- package/dist/dev/src/render.js.map +1 -0
- package/dist/dev/src/resource.js +124 -0
- package/dist/dev/src/resource.js.map +1 -0
- package/dist/dev/src/runtime/component.js +41 -0
- package/dist/dev/src/runtime/component.js.map +1 -0
- package/dist/dev/src/runtime/intrinsic.js +12 -0
- package/dist/dev/src/runtime/intrinsic.js.map +1 -0
- package/dist/dev/src/scheduler.js +217 -0
- package/dist/dev/src/scheduler.js.map +1 -0
- package/dist/dev/src/stc.js +40 -0
- package/dist/dev/src/stc.js.map +1 -0
- package/dist/dev/src/sti.js +31 -0
- package/dist/dev/src/sti.js.map +1 -0
- package/dist/dev/src/symbols/basic-scope.js +21 -0
- package/dist/dev/src/symbols/basic-scope.js.map +1 -0
- package/dist/dev/src/symbols/basic-symbol.js +34 -0
- package/dist/dev/src/symbols/basic-symbol.js.map +1 -0
- package/dist/dev/src/symbols/decl.js +26 -0
- package/dist/dev/src/symbols/decl.js.map +1 -0
- package/dist/dev/src/symbols/index.js +10 -0
- package/dist/dev/src/symbols/index.js.map +1 -0
- package/dist/dev/src/symbols/output-scope.js +235 -0
- package/dist/dev/src/symbols/output-scope.js.map +1 -0
- package/dist/dev/src/symbols/output-space.js +51 -0
- package/dist/dev/src/symbols/output-space.js.map +1 -0
- package/dist/dev/src/symbols/output-symbol.js +644 -0
- package/dist/dev/src/symbols/output-symbol.js.map +1 -0
- package/dist/dev/src/symbols/symbol-flow.js +106 -0
- package/dist/dev/src/symbols/symbol-flow.js.map +1 -0
- package/dist/dev/src/symbols/symbol-slot.js +75 -0
- package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
- package/dist/dev/src/symbols/symbol-slot.test.js +68 -0
- package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
- package/dist/dev/src/symbols/symbol-table.js +103 -0
- package/dist/dev/src/symbols/symbol-table.js.map +1 -0
- package/dist/dev/src/tap.js +109 -0
- package/dist/dev/src/tap.js.map +1 -0
- package/dist/dev/src/trace.js +2 -0
- package/dist/dev/src/trace.js.map +1 -0
- package/dist/dev/src/tracer.js +180 -0
- package/dist/dev/src/tracer.js.map +1 -0
- package/dist/dev/src/utils.js +487 -0
- package/dist/dev/src/utils.js.map +1 -0
- package/dist/dev/src/write-output.js +48 -0
- package/dist/dev/src/write-output.js.map +1 -0
- package/dist/dev/test/browser-build.test.js +85 -0
- package/dist/dev/test/browser-build.test.js.map +1 -0
- package/dist/dev/test/children.test.js +44 -0
- package/dist/dev/test/children.test.js.map +1 -0
- package/dist/dev/test/components/append-file.test.js +394 -0
- package/dist/dev/test/components/append-file.test.js.map +1 -0
- package/dist/dev/test/components/block.test.js +83 -0
- package/dist/dev/test/components/block.test.js.map +1 -0
- package/dist/dev/test/components/copy-file.test.js +119 -0
- package/dist/dev/test/components/copy-file.test.js.map +1 -0
- package/dist/dev/test/components/declaration.test.js +40 -0
- package/dist/dev/test/components/declaration.test.js.map +1 -0
- package/dist/dev/test/components/list.test.js +250 -0
- package/dist/dev/test/components/list.test.js.map +1 -0
- package/dist/dev/test/components/prose.test.js +42 -0
- package/dist/dev/test/components/prose.test.js.map +1 -0
- package/dist/dev/test/components/reference-or-content.test.js +246 -0
- package/dist/dev/test/components/reference-or-content.test.js.map +1 -0
- package/dist/dev/test/components/source-file.test.js +271 -0
- package/dist/dev/test/components/source-file.test.js.map +1 -0
- package/dist/dev/test/components/template-file.test.js +200 -0
- package/dist/dev/test/components/template-file.test.js.map +1 -0
- package/dist/dev/test/components/update-file.test.js +210 -0
- package/dist/dev/test/components/update-file.test.js.map +1 -0
- package/dist/dev/test/components/wrap.test.js +48 -0
- package/dist/dev/test/components/wrap.test.js.map +1 -0
- package/dist/dev/test/control-flow/for.test.js +318 -0
- package/dist/dev/test/control-flow/for.test.js.map +1 -0
- package/dist/dev/test/control-flow/match.test.js +112 -0
- package/dist/dev/test/control-flow/match.test.js.map +1 -0
- package/dist/dev/test/control-flow/show.test.js +38 -0
- package/dist/dev/test/control-flow/show.test.js.map +1 -0
- package/dist/dev/test/lazy-isempty.test.js +121 -0
- package/dist/dev/test/lazy-isempty.test.js.map +1 -0
- package/dist/dev/test/name-policy.test.js +28 -0
- package/dist/dev/test/name-policy.test.js.map +1 -0
- package/dist/dev/test/props-with-defaults.test.js +94 -0
- package/dist/dev/test/props-with-defaults.test.js.map +1 -0
- package/dist/dev/test/reactive-union-set-disposers.test.js +98 -0
- package/dist/dev/test/reactive-union-set-disposers.test.js.map +1 -0
- package/dist/dev/test/reactive-union-set.test.js +171 -0
- package/dist/dev/test/reactive-union-set.test.js.map +1 -0
- package/dist/dev/test/reactivity/circular-reactives.test.js +62 -0
- package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -0
- package/dist/dev/test/reactivity/cleanup.test.js +96 -0
- package/dist/dev/test/reactivity/cleanup.test.js.map +1 -0
- package/dist/dev/test/reactivity/memo.test.js +17 -0
- package/dist/dev/test/reactivity/memo.test.js.map +1 -0
- package/dist/dev/test/reactivity/ref-rendering.test.js +38 -0
- package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -0
- package/dist/dev/test/reactivity/shallow-reactive.test.js +56 -0
- package/dist/dev/test/reactivity/shallow-reactive.test.js.map +1 -0
- package/dist/dev/test/reactivity/test.test.js +74 -0
- package/dist/dev/test/reactivity/test.test.js.map +1 -0
- package/dist/dev/test/reactivity/untrack.test.js +27 -0
- package/dist/dev/test/reactivity/untrack.test.js.map +1 -0
- package/dist/dev/test/refkey.test.js +36 -0
- package/dist/dev/test/refkey.test.js.map +1 -0
- package/dist/dev/test/rendering/basic.test.js +194 -0
- package/dist/dev/test/rendering/basic.test.js.map +1 -0
- package/dist/dev/test/rendering/code.test.js +64 -0
- package/dist/dev/test/rendering/code.test.js.map +1 -0
- package/dist/dev/test/rendering/formatting.test.js +797 -0
- package/dist/dev/test/rendering/formatting.test.js.map +1 -0
- package/dist/dev/test/rendering/indent.test.js +183 -0
- package/dist/dev/test/rendering/indent.test.js.map +1 -0
- package/dist/dev/test/rendering/memoization.test.js +37 -0
- package/dist/dev/test/rendering/memoization.test.js.map +1 -0
- package/dist/dev/test/rendering/print-render-stack.test.js +287 -0
- package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -0
- package/dist/dev/test/rendering/refkeys.test.js +37 -0
- package/dist/dev/test/rendering/refkeys.test.js.map +1 -0
- package/dist/dev/test/scheduler-extended.test.js +96 -0
- package/dist/dev/test/scheduler-extended.test.js.map +1 -0
- package/dist/dev/test/scheduler.test.js +46 -0
- package/dist/dev/test/scheduler.test.js.map +1 -0
- package/dist/dev/test/split-props.test.js +78 -0
- package/dist/dev/test/split-props.test.js.map +1 -0
- package/dist/dev/test/stc.test.js +35 -0
- package/dist/dev/test/stc.test.js.map +1 -0
- package/dist/dev/test/symbols/deconflicted-name.test.js +120 -0
- package/dist/dev/test/symbols/deconflicted-name.test.js.map +1 -0
- package/dist/dev/test/symbols/output-scope.test.js +221 -0
- package/dist/dev/test/symbols/output-scope.test.js.map +1 -0
- package/dist/dev/test/symbols/output-symbol.test.js +202 -0
- package/dist/dev/test/symbols/output-symbol.test.js.map +1 -0
- package/dist/dev/test/symbols/resolution.test.js +487 -0
- package/dist/dev/test/symbols/resolution.test.js.map +1 -0
- package/dist/dev/test/symbols/symbol-table.test.js +15 -0
- package/dist/dev/test/symbols/symbol-table.test.js.map +1 -0
- package/dist/dev/test/symbols/utils.js +26 -0
- package/dist/dev/test/symbols/utils.js.map +1 -0
- package/dist/dev/test/utils.test.js +317 -0
- package/dist/dev/test/utils.test.js.map +1 -0
- package/dist/dev/testing/create-test-wrapper.js +130 -0
- package/dist/dev/testing/create-test-wrapper.js.map +1 -0
- package/dist/dev/testing/devtools-utils.js +162 -0
- package/dist/dev/testing/devtools-utils.js.map +1 -0
- package/dist/dev/testing/extend-expect.js +187 -0
- package/dist/dev/testing/extend-expect.js.map +1 -0
- package/dist/dev/testing/extend-expect.test.js +234 -0
- package/dist/dev/testing/extend-expect.test.js.map +1 -0
- package/dist/dev/testing/index.js +4 -0
- package/dist/dev/testing/index.js.map +1 -0
- package/dist/dev/testing/render.js +34 -0
- package/dist/dev/testing/render.js.map +1 -0
- package/dist/dev/testing/vitest.d.js +14 -0
- package/dist/dev/testing/vitest.d.js.map +1 -0
- package/dist/devtools/index.html +29 -17
- package/dist/src/binder.d.ts +107 -3
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +113 -1
- package/dist/src/binder.js.map +1 -1
- package/dist/src/components/AccessExpression.d.ts +78 -0
- package/dist/src/components/AccessExpression.d.ts.map +1 -0
- package/dist/src/components/AccessExpression.js +218 -0
- package/dist/src/components/AccessExpression.js.map +1 -0
- package/dist/src/components/AccessExpression.test.d.ts +2 -0
- package/dist/src/components/AccessExpression.test.d.ts.map +1 -0
- package/dist/src/components/AccessExpression.test.js +137 -0
- package/dist/src/components/AccessExpression.test.js.map +1 -0
- package/dist/src/components/Block.d.ts +12 -0
- package/dist/src/components/Block.d.ts.map +1 -1
- package/dist/src/components/Block.js +12 -0
- package/dist/src/components/Block.js.map +1 -1
- package/dist/src/components/For.d.ts.map +1 -1
- package/dist/src/components/For.js +1 -1
- package/dist/src/components/For.js.map +1 -1
- package/dist/src/components/List.d.ts +11 -1
- package/dist/src/components/List.d.ts.map +1 -1
- package/dist/src/components/List.js +1 -1
- package/dist/src/components/List.js.map +1 -1
- package/dist/src/components/MemberDeclaration.d.ts +6 -6
- package/dist/src/components/MemberDeclaration.js +6 -6
- package/dist/src/components/MemberName.d.ts +6 -0
- package/dist/src/components/MemberName.d.ts.map +1 -1
- package/dist/src/components/MemberName.js +7 -0
- package/dist/src/components/MemberName.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +5 -0
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js +5 -0
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Output.d.ts +4 -2
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/Prose.js +2 -2
- package/dist/src/components/Prose.js.map +1 -1
- package/dist/src/components/Scope.d.ts +6 -0
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js +8 -0
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/SourceDirectory.d.ts.map +1 -1
- package/dist/src/components/SourceDirectory.js +1 -2
- package/dist/src/components/SourceDirectory.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +22 -2
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/Switch.d.ts.map +1 -1
- package/dist/src/components/Switch.js +1 -1
- package/dist/src/components/Switch.js.map +1 -1
- package/dist/src/components/index.d.ts +1 -0
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +1 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/content-slot.js +2 -2
- package/dist/src/content-slot.js.map +1 -1
- package/dist/src/context/binder.d.ts +4 -0
- package/dist/src/context/binder.d.ts.map +1 -1
- package/dist/src/context/binder.js +5 -0
- package/dist/src/context/binder.js.map +1 -1
- package/dist/src/context/format-options.d.ts +14 -1
- package/dist/src/context/format-options.d.ts.map +1 -1
- package/dist/src/context/format-options.js +14 -1
- package/dist/src/context/format-options.js.map +1 -1
- package/dist/src/context/scope.d.ts +4 -0
- package/dist/src/context/scope.d.ts.map +1 -1
- package/dist/src/context/scope.js +5 -0
- package/dist/src/context/scope.js.map +1 -1
- package/dist/src/context/source-directory.d.ts +9 -0
- package/dist/src/context/source-directory.d.ts.map +1 -1
- package/dist/src/context/source-directory.js +9 -0
- package/dist/src/context/source-directory.js.map +1 -1
- package/dist/src/context.js +2 -2
- package/dist/src/context.js.map +1 -1
- package/dist/src/debug/cli.d.ts.map +1 -1
- package/dist/src/debug/cli.js +3 -2
- package/dist/src/debug/cli.js.map +1 -1
- package/dist/src/debug/diagnostics-broadcast.test.d.ts +2 -0
- package/dist/src/debug/diagnostics-broadcast.test.d.ts.map +1 -0
- package/dist/src/debug/diagnostics-broadcast.test.js +100 -0
- package/dist/src/debug/diagnostics-broadcast.test.js.map +1 -0
- package/dist/src/debug/diagnostics.test.js +3 -2
- package/dist/src/debug/diagnostics.test.js.map +1 -1
- package/dist/src/debug/effects.d.ts +16 -4
- package/dist/src/debug/effects.d.ts.map +1 -1
- package/dist/src/debug/effects.js +119 -54
- package/dist/src/debug/effects.js.map +1 -1
- package/dist/src/debug/effects.test.js +206 -36
- package/dist/src/debug/effects.test.js.map +1 -1
- package/dist/src/debug/files.d.ts.map +1 -1
- package/dist/src/debug/files.js +7 -18
- package/dist/src/debug/files.js.map +1 -1
- package/dist/src/debug/files.test.js +13 -36
- package/dist/src/debug/files.test.js.map +1 -1
- package/dist/src/debug/index.d.ts +6 -3
- package/dist/src/debug/index.d.ts.map +1 -1
- package/dist/src/debug/index.js +6 -3
- package/dist/src/debug/index.js.map +1 -1
- package/dist/src/debug/message-format.test.d.ts +2 -0
- package/dist/src/debug/message-format.test.d.ts.map +1 -0
- package/dist/src/debug/message-format.test.js +700 -0
- package/dist/src/debug/message-format.test.js.map +1 -0
- package/dist/src/debug/render-tree-orphans.test.d.ts +2 -0
- package/dist/src/debug/render-tree-orphans.test.d.ts.map +1 -0
- package/dist/src/debug/render-tree-orphans.test.js +297 -0
- package/dist/src/debug/render-tree-orphans.test.js.map +1 -0
- package/dist/src/debug/render.d.ts.map +1 -1
- package/dist/src/debug/render.js +91 -131
- package/dist/src/debug/render.js.map +1 -1
- package/dist/src/debug/render.test.js +91 -128
- package/dist/src/debug/render.test.js.map +1 -1
- package/dist/src/debug/source-map.browser.d.ts +16 -0
- package/dist/src/debug/source-map.browser.d.ts.map +1 -0
- package/dist/src/debug/source-map.browser.js +24 -0
- package/dist/src/debug/source-map.browser.js.map +1 -0
- package/dist/src/debug/source-map.d.ts +22 -0
- package/dist/src/debug/source-map.d.ts.map +1 -0
- package/dist/src/debug/source-map.js +111 -0
- package/dist/src/debug/source-map.js.map +1 -0
- package/dist/src/debug/symbols.d.ts +7 -0
- package/dist/src/debug/symbols.d.ts.map +1 -1
- package/dist/src/debug/symbols.js +46 -14
- package/dist/src/debug/symbols.js.map +1 -1
- package/dist/src/debug/symbols.test.js +15 -26
- package/dist/src/debug/symbols.test.js.map +1 -1
- package/dist/src/debug/trace-writer.d.ts +56 -0
- package/dist/src/debug/trace-writer.d.ts.map +1 -0
- package/dist/src/debug/trace-writer.js +674 -0
- package/dist/src/debug/trace-writer.js.map +1 -0
- package/dist/src/debug/trace.d.ts +10 -10
- package/dist/src/debug/trace.d.ts.map +1 -1
- package/dist/src/debug/trace.js +41 -24
- package/dist/src/debug/trace.js.map +1 -1
- package/dist/src/devtools/devtools-protocol.d.ts +318 -161
- package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.browser.d.ts +1 -5
- package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.browser.js +3 -3
- package/dist/src/devtools/devtools-server.browser.js.map +1 -1
- package/dist/src/devtools/devtools-server.d.ts +5 -6
- package/dist/src/devtools/devtools-server.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.js +227 -25
- package/dist/src/devtools/devtools-server.js.map +1 -1
- package/dist/src/devtools/devtools-transport.d.ts +2 -2
- package/dist/src/devtools/devtools-transport.d.ts.map +1 -1
- package/dist/src/devtools/devtools-transport.js +2 -2
- package/dist/src/devtools/devtools-transport.js.map +1 -1
- package/dist/src/devtools-entry.browser.d.ts +1 -1
- package/dist/src/devtools-entry.browser.d.ts.map +1 -1
- package/dist/src/devtools-entry.browser.js.map +1 -1
- package/dist/src/devtools-entry.d.ts +1 -1
- package/dist/src/devtools-entry.d.ts.map +1 -1
- package/dist/src/devtools-entry.js.map +1 -1
- package/dist/src/diagnostics.d.ts +1 -1
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +27 -19
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/host/node-host.browser.d.ts +11 -0
- package/dist/src/host/node-host.browser.d.ts.map +1 -0
- package/dist/src/host/node-host.browser.js +21 -0
- package/dist/src/host/node-host.browser.js.map +1 -0
- package/dist/src/host/node-host.d.ts +11 -0
- package/dist/src/host/node-host.d.ts.map +1 -0
- package/dist/src/host/node-host.js +20 -0
- package/dist/src/host/node-host.js.map +1 -0
- package/dist/src/index.d.ts +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/library-symbol-reference.d.ts +52 -0
- package/dist/src/library-symbol-reference.d.ts.map +1 -1
- package/dist/src/library-symbol-reference.js +54 -0
- package/dist/src/library-symbol-reference.js.map +1 -1
- package/dist/src/name-policy.d.ts +30 -3
- package/dist/src/name-policy.d.ts.map +1 -1
- package/dist/src/name-policy.js +27 -0
- package/dist/src/name-policy.js.map +1 -1
- package/dist/src/reactive-union-set.d.ts.map +1 -1
- package/dist/src/reactive-union-set.js +13 -3
- package/dist/src/reactive-union-set.js.map +1 -1
- package/dist/src/reactivity.d.ts +60 -6
- package/dist/src/reactivity.d.ts.map +1 -1
- package/dist/src/reactivity.js +302 -155
- package/dist/src/reactivity.js.map +1 -1
- package/dist/src/render-stack.d.ts +1 -0
- package/dist/src/render-stack.d.ts.map +1 -1
- package/dist/src/render-stack.js +8 -3
- package/dist/src/render-stack.js.map +1 -1
- package/dist/src/render.d.ts +2 -0
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +90 -34
- package/dist/src/render.js.map +1 -1
- package/dist/src/scheduler.d.ts +10 -0
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +115 -21
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/symbols/output-scope.d.ts +33 -1
- package/dist/src/symbols/output-scope.d.ts.map +1 -1
- package/dist/src/symbols/output-scope.js +36 -3
- package/dist/src/symbols/output-scope.js.map +1 -1
- package/dist/src/symbols/output-space.d.ts +12 -0
- package/dist/src/symbols/output-space.d.ts.map +1 -1
- package/dist/src/symbols/output-space.js +15 -0
- package/dist/src/symbols/output-space.js.map +1 -1
- package/dist/src/symbols/output-symbol.d.ts +128 -12
- package/dist/src/symbols/output-symbol.d.ts.map +1 -1
- package/dist/src/symbols/output-symbol.js +160 -20
- package/dist/src/symbols/output-symbol.js.map +1 -1
- package/dist/src/symbols/symbol-flow.d.ts.map +1 -1
- package/dist/src/symbols/symbol-flow.js +2 -2
- package/dist/src/symbols/symbol-flow.js.map +1 -1
- package/dist/src/symbols/symbol-slot.d.ts.map +1 -1
- package/dist/src/symbols/symbol-slot.js +7 -0
- package/dist/src/symbols/symbol-slot.js.map +1 -1
- package/dist/src/symbols/symbol-slot.test.js +18 -1
- package/dist/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/src/symbols/symbol-table.d.ts.map +1 -1
- package/dist/src/symbols/symbol-table.js +13 -3
- package/dist/src/symbols/symbol-table.js.map +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +12 -9
- package/dist/src/utils.js.map +1 -1
- package/dist/src/write-output.d.ts.map +1 -1
- package/dist/src/write-output.js +6 -5
- package/dist/src/write-output.js.map +1 -1
- package/dist/test/browser-build.test.js +66 -67
- package/dist/test/browser-build.test.js.map +1 -1
- package/dist/test/lazy-isempty.test.d.ts +2 -0
- package/dist/test/lazy-isempty.test.d.ts.map +1 -0
- package/dist/test/lazy-isempty.test.js +89 -0
- package/dist/test/lazy-isempty.test.js.map +1 -0
- package/dist/test/reactive-union-set-disposers.test.d.ts +2 -0
- package/dist/test/reactive-union-set-disposers.test.d.ts.map +1 -0
- package/dist/test/reactive-union-set-disposers.test.js +98 -0
- package/dist/test/reactive-union-set-disposers.test.js.map +1 -0
- package/dist/test/reactivity/shallow-reactive.test.d.ts +2 -0
- package/dist/test/reactivity/shallow-reactive.test.d.ts.map +1 -0
- package/dist/test/reactivity/shallow-reactive.test.js +56 -0
- package/dist/test/reactivity/shallow-reactive.test.js.map +1 -0
- package/dist/test/scheduler-extended.test.d.ts +2 -0
- package/dist/test/scheduler-extended.test.d.ts.map +1 -0
- package/dist/test/scheduler-extended.test.js +96 -0
- package/dist/test/scheduler-extended.test.js.map +1 -0
- package/dist/test/scheduler.test.d.ts +2 -0
- package/dist/test/scheduler.test.d.ts.map +1 -0
- package/dist/test/scheduler.test.js +46 -0
- package/dist/test/scheduler.test.js.map +1 -0
- package/dist/test/symbols/deconflicted-name.test.d.ts +2 -0
- package/dist/test/symbols/deconflicted-name.test.d.ts.map +1 -0
- package/dist/test/symbols/deconflicted-name.test.js +120 -0
- package/dist/test/symbols/deconflicted-name.test.js.map +1 -0
- package/dist/test/symbols/output-scope.test.js +41 -0
- package/dist/test/symbols/output-scope.test.js.map +1 -1
- package/dist/testing/create-test-wrapper.d.ts +75 -2
- package/dist/testing/create-test-wrapper.d.ts.map +1 -1
- package/dist/testing/create-test-wrapper.js +55 -1
- package/dist/testing/create-test-wrapper.js.map +1 -1
- package/dist/testing/devtools-utils.d.ts +12 -3
- package/dist/testing/devtools-utils.d.ts.map +1 -1
- package/dist/testing/devtools-utils.js +26 -4
- package/dist/testing/devtools-utils.js.map +1 -1
- package/dist/testing/extend-expect.d.ts +26 -0
- package/dist/testing/extend-expect.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +20 -0
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/index.d.ts +1 -1
- package/dist/testing/index.d.ts.map +1 -1
- package/dist/testing/index.js +1 -1
- package/dist/testing/index.js.map +1 -1
- package/dist/testing/render.d.ts +9 -0
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +11 -0
- package/dist/testing/render.js.map +1 -1
- package/dist/testing/vitest.d.js +12 -0
- package/dist/testing/vitest.d.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/AppendRegion.md +83 -0
- package/docs/api/components/Block.md +49 -0
- package/docs/api/components/CopyFile.md +26 -0
- package/docs/api/components/Declaration.md +85 -0
- package/docs/api/components/For.md +91 -0
- package/docs/api/components/Indent.md +40 -0
- package/docs/api/components/List.md +68 -0
- package/docs/api/components/MemberDeclaration.md +89 -0
- package/docs/api/components/MemberName.md +21 -0
- package/docs/api/components/MemberScope.md +81 -0
- package/docs/api/components/Name.md +19 -0
- package/docs/api/components/Output.md +62 -0
- package/docs/api/components/Prose.md +29 -0
- package/docs/api/components/ReferenceOrContent.md +28 -0
- package/docs/api/components/Scope.md +83 -0
- package/docs/api/components/Show.md +32 -0
- package/docs/api/components/SourceDirectory.md +28 -0
- package/docs/api/components/SourceFile.md +60 -0
- package/docs/api/components/StatementList.md +29 -0
- package/docs/api/components/Switch.md +42 -0
- package/docs/api/components/TemplateFile.md +71 -0
- package/docs/api/components/TemplateVariable.md +57 -0
- package/docs/api/components/UpdateFile.md +56 -0
- package/docs/api/components/Wrap.md +40 -0
- package/docs/api/components/createAccessExpression.md +55 -0
- package/docs/api/components/index.md +27 -0
- package/docs/api/contexts/Assignment-context.md +43 -0
- package/docs/api/contexts/Binder-context.md +22 -0
- package/docs/api/contexts/Declaration-context.md +15 -0
- package/docs/api/contexts/Member-context.md +17 -0
- package/docs/api/contexts/MemberDeclaration-context.md +24 -0
- package/docs/api/contexts/NamePolicy-context.md +18 -0
- package/docs/api/contexts/Scope-context.md +20 -0
- package/docs/api/contexts/SourceDirectory-context.md +26 -0
- package/docs/api/contexts/SourceFile-context.md +19 -0
- package/docs/api/contexts/index.md +11 -0
- package/docs/api/functions/attachDiagnosticsCollector.md +18 -0
- package/docs/api/functions/baseListPropsToMapJoinArgs.md +20 -0
- package/docs/api/functions/children.md +27 -0
- package/docs/api/functions/childrenArray.md +25 -0
- package/docs/api/functions/code.md +25 -0
- package/docs/api/functions/computed.md +18 -0
- package/docs/api/functions/createComponent.md +20 -0
- package/docs/api/functions/createContentSlot.md +33 -0
- package/docs/api/functions/createContext.md +19 -0
- package/docs/api/functions/createCustomContext.md +18 -0
- package/docs/api/functions/createDeclarationTap.md +20 -0
- package/docs/api/functions/createFileResource.md +35 -0
- package/docs/api/functions/createFormatOptionsContextFor.md +28 -0
- package/docs/api/functions/createIntrinsic.md +19 -0
- package/docs/api/functions/createMemberTap.md +20 -0
- package/docs/api/functions/createNamePolicy.md +37 -0
- package/docs/api/functions/createNamedContext.md +19 -0
- package/docs/api/functions/createOutputBinder.md +24 -0
- package/docs/api/functions/createRenderTreeHook.md +19 -0
- package/docs/api/functions/createResource.md +77 -0
- package/docs/api/functions/createScope.md +35 -0
- package/docs/api/functions/createScopeTap.md +20 -0
- package/docs/api/functions/createSourceFileTap.md +20 -0
- package/docs/api/functions/createSymbol.md +25 -0
- package/docs/api/functions/createSymbolSlot.md +19 -0
- package/docs/api/functions/createTap.md +55 -0
- package/docs/api/functions/decl.md +20 -0
- package/docs/api/functions/defaultProps.md +21 -0
- package/docs/api/functions/effect.md +26 -0
- package/docs/api/functions/emitDiagnostic.md +18 -0
- package/docs/api/functions/emitSymbol.md +18 -0
- package/docs/api/functions/ensureIsEmpty.md +20 -0
- package/docs/api/functions/findCurrentEffectId.md +19 -0
- package/docs/api/functions/findKeyedChild.md +19 -0
- package/docs/api/functions/findKeyedChildren.md +19 -0
- package/docs/api/functions/findUnkeyedChildren.md +18 -0
- package/docs/api/functions/formatReactivePropertyLabel.md +21 -0
- package/docs/api/functions/getAssignmentSymbol.md +19 -0
- package/docs/api/functions/getContext.md +17 -0
- package/docs/api/functions/getContextForRenderNode.md +18 -0
- package/docs/api/functions/getDiagnosticsForTree.md +18 -0
- package/docs/api/functions/getEffectDebugId.md +18 -0
- package/docs/api/functions/getElementCache.md +17 -0
- package/docs/api/functions/getReactiveCreationLocation.md +18 -0
- package/docs/api/functions/getSymbolCreator.md +18 -0
- package/docs/api/functions/getSymbolCreatorSymbol.md +17 -0
- package/docs/api/functions/index.md +105 -0
- package/docs/api/functions/inspectRefkey.md +18 -0
- package/docs/api/functions/instantiateTakenMembersTo.md +20 -0
- package/docs/api/functions/isComponentCreator.md +19 -0
- package/docs/api/functions/isCustomContext.md +18 -0
- package/docs/api/functions/isIntrinsicElement.md +18 -0
- package/docs/api/functions/isKeyedChild.md +18 -0
- package/docs/api/functions/isLibrarySymbolReference.md +18 -0
- package/docs/api/functions/isMemberRefkey.md +18 -0
- package/docs/api/functions/isNamekey.md +18 -0
- package/docs/api/functions/isPrintHook.md +18 -0
- package/docs/api/functions/isRefkey.md +18 -0
- package/docs/api/functions/isRefkeyable.md +18 -0
- package/docs/api/functions/isRenderableObject.md +20 -0
- package/docs/api/functions/isSymbolRefkey.md +18 -0
- package/docs/api/functions/join.md +33 -0
- package/docs/api/functions/mapJoin.md +106 -0
- package/docs/api/functions/memberRefkey.md +27 -0
- package/docs/api/functions/memo.md +29 -0
- package/docs/api/functions/mergeProps.md +64 -0
- package/docs/api/functions/moveTakenMembersTo.md +18 -0
- package/docs/api/functions/namekey.md +41 -0
- package/docs/api/functions/nextReactiveId.md +19 -0
- package/docs/api/functions/notifyContentState.md +17 -0
- package/docs/api/functions/onCleanup.md +26 -0
- package/docs/api/functions/printTree.md +31 -0
- package/docs/api/functions/reactivePropertyRefId.md +21 -0
- package/docs/api/functions/ref.md +21 -0
- package/docs/api/functions/refId.md +18 -0
- package/docs/api/functions/refkey.md +24 -0
- package/docs/api/functions/render.md +31 -0
- package/docs/api/functions/renderAsync.md +31 -0
- package/docs/api/functions/renderTree.md +18 -0
- package/docs/api/functions/reportDiagnostics.md +18 -0
- package/docs/api/functions/resetRefIdCounter.md +17 -0
- package/docs/api/functions/resolve.md +31 -0
- package/docs/api/functions/root.md +25 -0
- package/docs/api/functions/shallowReactive.md +18 -0
- package/docs/api/functions/shallowRef.md +21 -0
- package/docs/api/functions/sourceFilesForTree.md +31 -0
- package/docs/api/functions/splitProps.md +19 -0
- package/docs/api/functions/stc.md +18 -0
- package/docs/api/functions/sti.md +18 -0
- package/docs/api/functions/symbolForRefkey.md +24 -0
- package/docs/api/functions/taggedComponent.md +19 -0
- package/docs/api/functions/takeSymbols.md +18 -0
- package/docs/api/functions/text.md +19 -0
- package/docs/api/functions/toRef.md +20 -0
- package/docs/api/functions/toRefkey.md +18 -0
- package/docs/api/functions/toRefs.md +20 -0
- package/docs/api/functions/traverseOutput.md +21 -0
- package/docs/api/functions/unresolvedRefkey.md +18 -0
- package/docs/api/functions/untrack.md +18 -0
- package/docs/api/functions/useContext.md +18 -0
- package/docs/api/functions/useFormatOptions.md +18 -0
- package/docs/api/functions/useMemberContext.md +17 -0
- package/docs/api/functions/useMemberScope.md +17 -0
- package/docs/api/functions/writeOutput.md +21 -0
- package/docs/api/index.md +9 -0
- package/docs/api/testing/functions/createTestWrapper.md +70 -0
- package/docs/api/testing/functions/d.md +21 -0
- package/docs/api/testing/functions/dedent.md +18 -0
- package/docs/api/testing/functions/index.md +6 -0
- package/docs/api/testing/functions/renderToString.md +20 -0
- package/docs/api/testing/index.md +4 -0
- package/docs/api/testing/types/TestWrapper.md +10 -0
- package/docs/api/testing/types/ToRenderToOptions.md +24 -0
- package/docs/api/testing/types/index.md +4 -0
- package/docs/api/types/AlignIntrinsicElement.md +5 -0
- package/docs/api/types/AppendRegionProps.md +5 -0
- package/docs/api/types/BaseListProps.md +21 -0
- package/docs/api/types/BasePartProps.md +10 -0
- package/docs/api/types/BasicScope.md +15 -0
- package/docs/api/types/BasicSymbol.md +18 -0
- package/docs/api/types/Binder.md +18 -0
- package/docs/api/types/BinderOptions.md +7 -0
- package/docs/api/types/BrIntrinsicElement.md +5 -0
- package/docs/api/types/BreakParentIntrinsicElement.md +5 -0
- package/docs/api/types/Child.md +5 -0
- package/docs/api/types/Children.md +5 -0
- package/docs/api/types/ChildrenOptions.md +7 -0
- package/docs/api/types/CommonFormatOptions.md +8 -0
- package/docs/api/types/Component.md +8 -0
- package/docs/api/types/ComponentContext.md +11 -0
- package/docs/api/types/ComponentCreator.md +11 -0
- package/docs/api/types/ComponentDefinition.md +7 -0
- package/docs/api/types/ContentOutputFile.md +10 -0
- package/docs/api/types/ContentSlot.md +12 -0
- package/docs/api/types/Context.md +19 -0
- package/docs/api/types/ContextProviderProps.md +8 -0
- package/docs/api/types/CopyFileContext.md +8 -0
- package/docs/api/types/CopyOutputFile.md +9 -0
- package/docs/api/types/CustomContext.md +10 -0
- package/docs/api/types/CustomContextChildrenCallback.md +5 -0
- package/docs/api/types/DeclarationProps.md +5 -0
- package/docs/api/types/DedentIntrinsicElement.md +5 -0
- package/docs/api/types/DedentToRootIntrinsicElement.md +5 -0
- package/docs/api/types/Diagnostic.md +11 -0
- package/docs/api/types/DiagnosticHandle.md +7 -0
- package/docs/api/types/DiagnosticInput.md +10 -0
- package/docs/api/types/DiagnosticSeverity.md +5 -0
- package/docs/api/types/DiagnosticStackEntry.md +9 -0
- package/docs/api/types/DiagnosticsCollector.md +8 -0
- package/docs/api/types/Disposable_2.md +7 -0
- package/docs/api/types/EffectDebugOptions.md +8 -0
- package/docs/api/types/EffectOptions.md +7 -0
- package/docs/api/types/ElementCache.md +5 -0
- package/docs/api/types/ElementCacheKey.md +5 -0
- package/docs/api/types/FillIntrinsicElement.md +5 -0
- package/docs/api/types/ForCallbackArgs.md +5 -0
- package/docs/api/types/ForSupportedCollections.md +5 -0
- package/docs/api/types/GroupIntrinsicElement.md +5 -0
- package/docs/api/types/HardlineIntrinsicElement.md +5 -0
- package/docs/api/types/HbrIntrinsicElement.md +5 -0
- package/docs/api/types/IfBreakIntrinsicElement.md +5 -0
- package/docs/api/types/IndentIfBreakIntrinsicElement.md +5 -0
- package/docs/api/types/IndentIntrinsicElement.md +5 -0
- package/docs/api/types/IntrinsicElement.md +5 -0
- package/docs/api/types/IntrinsicElementBase.md +9 -0
- package/docs/api/types/IntrinsicElements.md +26 -0
- package/docs/api/types/JoinOptions.md +9 -0
- package/docs/api/types/LbrIntrinsicElement.md +5 -0
- package/docs/api/types/LibrarySymbolReference.md +13 -0
- package/docs/api/types/LineIntrinsicElement.md +5 -0
- package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +5 -0
- package/docs/api/types/LineSuffixIntrinsicElement.md +5 -0
- package/docs/api/types/LiterallineIntrinsicElement.md +5 -0
- package/docs/api/types/MakeChildrenOptional.md +7 -0
- package/docs/api/types/MarkAsRootIntrinsicElement.md +5 -0
- package/docs/api/types/MatchProps.md +9 -0
- package/docs/api/types/MemberDeclarationProps.md +5 -0
- package/docs/api/types/MemberDescriptor.md +10 -0
- package/docs/api/types/MemberRefkey.md +10 -0
- package/docs/api/types/MemberResolutionContext.md +10 -0
- package/docs/api/types/MemberResolver.md +32 -0
- package/docs/api/types/MemberScopeProps.md +5 -0
- package/docs/api/types/Metadata.md +5 -0
- package/docs/api/types/NameConflictResolver.md +27 -0
- package/docs/api/types/NamePolicy.md +8 -0
- package/docs/api/types/NamePolicyGetter.md +9 -0
- package/docs/api/types/Namekey.md +10 -0
- package/docs/api/types/NamekeyOptions.md +8 -0
- package/docs/api/types/OnReactiveSetAddCallback.md +5 -0
- package/docs/api/types/OnReactiveSetDeleteCallback.md +5 -0
- package/docs/api/types/OutputDeclarationSpace.md +13 -0
- package/docs/api/types/OutputDirectory.md +59 -0
- package/docs/api/types/OutputFile.md +5 -0
- package/docs/api/types/OutputFileBase.md +8 -0
- package/docs/api/types/OutputMemberSpace.md +13 -0
- package/docs/api/types/OutputScope.md +33 -0
- package/docs/api/types/OutputScopeOptions.md +9 -0
- package/docs/api/types/OutputSpace.md +7 -0
- package/docs/api/types/OutputSymbol.md +78 -0
- package/docs/api/types/OutputSymbolOptions.md +16 -0
- package/docs/api/types/OutputVisitor.md +10 -0
- package/docs/api/types/PrintHook.md +10 -0
- package/docs/api/types/PrintTreeOptions.md +11 -0
- package/docs/api/types/Props.md +5 -0
- package/docs/api/types/ReactiveUnionSet.md +20 -0
- package/docs/api/types/ReactiveUnionSetOptions.md +8 -0
- package/docs/api/types/Refkey.md +5 -0
- package/docs/api/types/Refkeyable.md +5 -0
- package/docs/api/types/RefkeyableObject.md +7 -0
- package/docs/api/types/RenderableObject.md +9 -0
- package/docs/api/types/RenderedTextTree.md +5 -0
- package/docs/api/types/ResolutionResult.md +39 -0
- package/docs/api/types/ResolveDeclarationByKeyOptions.md +7 -0
- package/docs/api/types/Resource.md +11 -0
- package/docs/api/types/RootOptions.md +7 -0
- package/docs/api/types/SbrIntrinsicElement.md +5 -0
- package/docs/api/types/ScopeProps.md +5 -0
- package/docs/api/types/SoftlineIntrinsicElement.md +5 -0
- package/docs/api/types/SourceLocation.md +9 -0
- package/docs/api/types/SplitProps.md +12 -0
- package/docs/api/types/StcComponentCreator.md +9 -0
- package/docs/api/types/StcSignature.md +5 -0
- package/docs/api/types/StiComponentCreator.md +9 -0
- package/docs/api/types/StiSignature.md +7 -0
- package/docs/api/types/SymbolCreator.md +15 -0
- package/docs/api/types/SymbolRefkey.md +9 -0
- package/docs/api/types/SymbolSlot.md +12 -0
- package/docs/api/types/SymbolTable.md +15 -0
- package/docs/api/types/TakeSymbolCallback.md +7 -0
- package/docs/api/types/TakeSymbolsCallback.md +7 -0
- package/docs/api/types/Tap.md +11 -0
- package/docs/api/types/TapHandler.md +9 -0
- package/docs/api/types/Tapper.md +9 -0
- package/docs/api/types/TemplateVariableProps.md +5 -0
- package/docs/api/types/index.md +122 -0
- package/docs/api/variables/FormatOptions.md +5 -0
- package/docs/api/variables/Match.md +7 -0
- package/docs/api/variables/REFKEYABLE.md +5 -0
- package/docs/api/variables/RENDERABLE.md +5 -0
- package/docs/api/variables/TO_SYMBOL.md +39 -0
- package/docs/api/variables/contextsByKey.md +5 -0
- package/docs/api/variables/index.md +11 -0
- package/docs/api/variables/intrinsicElementKey.md +5 -0
- package/docs/api/variables/matchTag.md +5 -0
- package/docs/api/variables/printHookTag.md +7 -0
- package/docs/components.md +97 -0
- package/docs/context.md +67 -0
- package/docs/control-flow.md +5 -0
- package/docs/debugging.md +105 -0
- package/docs/formatting.md +99 -0
- package/docs/guides/language-package-guide.md +593 -0
- package/docs/guides/references-and-refkeys.md +210 -0
- package/docs/guides/style-guide.md +244 -0
- package/docs/index.md +22 -0
- package/docs/reactivity.md +68 -0
- package/docs/rendering.md +41 -0
- package/docs/symbols-and-scopes.md +180 -0
- package/package.json +16 -6
- package/src/binder.ts +154 -41
- package/src/components/AccessExpression.test.tsx +132 -0
- package/src/components/AccessExpression.tsx +344 -0
- package/src/components/Block.tsx +12 -0
- package/src/components/For.tsx +14 -10
- package/src/components/List.tsx +18 -5
- package/src/components/MemberDeclaration.tsx +6 -6
- package/src/components/MemberName.tsx +6 -0
- package/src/components/MemberScope.tsx +5 -0
- package/src/components/Output.tsx +4 -1
- package/src/components/Prose.tsx +1 -1
- package/src/components/Scope.tsx +8 -0
- package/src/components/SourceDirectory.tsx +1 -2
- package/src/components/SourceFile.tsx +22 -2
- package/src/components/Switch.tsx +11 -7
- package/src/components/index.tsx +1 -0
- package/src/content-slot.tsx +2 -2
- package/src/context/binder.ts +4 -0
- package/src/context/format-options.ts +14 -1
- package/src/context/scope.ts +4 -0
- package/src/context/source-directory.ts +9 -0
- package/src/context.ts +3 -3
- package/src/debug/cli.ts +3 -2
- package/src/debug/diagnostics-broadcast.test.tsx +98 -0
- package/src/debug/diagnostics.test.tsx +3 -2
- package/src/debug/effects.test.tsx +241 -36
- package/src/debug/effects.ts +202 -64
- package/src/debug/files.test.tsx +15 -35
- package/src/debug/files.ts +11 -11
- package/src/debug/index.ts +6 -0
- package/src/debug/message-format.test.tsx +759 -0
- package/src/debug/render-tree-orphans.test.tsx +344 -0
- package/src/debug/render.test.tsx +96 -118
- package/src/debug/render.ts +196 -125
- package/src/debug/source-map.browser.ts +30 -0
- package/src/debug/source-map.ts +135 -0
- package/src/debug/symbols.test.tsx +19 -20
- package/src/debug/symbols.ts +107 -15
- package/src/debug/trace-writer.ts +984 -0
- package/src/debug/trace.ts +46 -32
- package/src/devtools/devtools-protocol.ts +361 -176
- package/src/devtools/devtools-server.browser.ts +4 -9
- package/src/devtools/devtools-server.ts +226 -33
- package/src/devtools/devtools-transport.ts +4 -4
- package/src/devtools-entry.browser.ts +11 -15
- package/src/devtools-entry.ts +9 -15
- package/src/diagnostics.ts +44 -22
- package/src/host/node-host.browser.ts +23 -0
- package/src/host/node-host.ts +22 -0
- package/src/index.ts +0 -1
- package/src/library-symbol-reference.ts +52 -0
- package/src/name-policy.ts +30 -3
- package/src/reactive-union-set.ts +14 -3
- package/src/reactivity.ts +354 -171
- package/src/render-stack.ts +9 -3
- package/src/render.ts +116 -38
- package/src/scheduler.ts +167 -24
- package/src/symbols/output-scope.ts +34 -3
- package/src/symbols/output-space.ts +13 -0
- package/src/symbols/output-symbol.ts +186 -24
- package/src/symbols/symbol-flow.ts +8 -2
- package/src/symbols/symbol-slot.test.tsx +28 -1
- package/src/symbols/symbol-slot.tsx +8 -0
- package/src/symbols/symbol-table.ts +13 -3
- package/src/utils.tsx +9 -8
- package/src/write-output.ts +6 -5
- package/temp/api-testing.json +673 -0
- package/temp/api.json +1333 -100
- package/test/browser-build.test.ts +71 -78
- package/test/lazy-isempty.test.tsx +106 -0
- package/test/reactive-union-set-disposers.test.tsx +112 -0
- package/test/reactivity/shallow-reactive.test.tsx +60 -0
- package/test/scheduler-extended.test.tsx +122 -0
- package/test/scheduler.test.tsx +50 -0
- package/test/symbols/deconflicted-name.test.ts +120 -0
- package/test/symbols/output-scope.test.ts +38 -0
- package/testing/create-test-wrapper.tsx +81 -2
- package/testing/devtools-utils.ts +46 -4
- package/testing/extend-expect.ts +22 -1
- package/testing/index.ts +1 -1
- package/testing/render.ts +9 -0
- package/testing/vitest.d.ts +18 -3
- package/vitest.config.ts +8 -0
package/dist/src/scheduler.js
CHANGED
|
@@ -1,16 +1,47 @@
|
|
|
1
1
|
import { debug } from "./debug/index.js";
|
|
2
|
+
import { beginTransaction, commitTransaction, insertEffectLifecycle, insertSchedulerFlush, insertSchedulerJob } from "./debug/trace-writer.js";
|
|
3
|
+
import { isTraceEnabled } from "./debug/trace.js";
|
|
4
|
+
import { getEffectDebugId } from "./reactivity.js";
|
|
2
5
|
const immediateQueue = new Set();
|
|
3
6
|
const queue = new Set();
|
|
7
|
+
function isJobActive(job) {
|
|
8
|
+
// ReactiveEffect uses bit 0 (flags & 1) as the ACTIVE flag.
|
|
9
|
+
// Skip effects that were stopped after being queued.
|
|
10
|
+
const flags = job.flags;
|
|
11
|
+
return flags === undefined || (flags & 1) !== 0;
|
|
12
|
+
}
|
|
4
13
|
const pendingPromises = new Set();
|
|
5
14
|
let waitForSignalPromise = null;
|
|
6
15
|
let resolveWaitForSignal = null;
|
|
7
16
|
let jobSignalPromise = null;
|
|
8
17
|
let resolveJobSignal = null;
|
|
18
|
+
|
|
19
|
+
// Maps effect debug IDs to the ref that most recently triggered them.
|
|
20
|
+
// Intentionally overwrites on repeated triggers for the same effect before flush —
|
|
21
|
+
// we only need the last trigger ref for lifecycle recording, not all intermediate ones.
|
|
22
|
+
const lastTriggerRef = new Map();
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Record which ref triggered an effect re-run.
|
|
26
|
+
* Called from the onTrigger debug hook before the effect is scheduled.
|
|
27
|
+
*
|
|
28
|
+
* Note: if an effect is triggered multiple times before flush, only the last
|
|
29
|
+
* trigger ref is retained. This is intentional — we care about the most
|
|
30
|
+
* recent cause, and tracking all triggers would add overhead with minimal
|
|
31
|
+
* diagnostic value since only the last mutation actually caused the re-run.
|
|
32
|
+
*/
|
|
33
|
+
export function setLastTriggerRef(effectDebugId, refId) {
|
|
34
|
+
lastTriggerRef.set(effectDebugId, refId);
|
|
35
|
+
}
|
|
9
36
|
export function scheduler(immediate = false) {
|
|
37
|
+
if (!immediate) return defaultScheduler;
|
|
10
38
|
return function () {
|
|
11
|
-
queueJob(this,
|
|
39
|
+
queueJob(this, true);
|
|
12
40
|
};
|
|
13
41
|
}
|
|
42
|
+
const defaultScheduler = function () {
|
|
43
|
+
queueJob(this, false);
|
|
44
|
+
};
|
|
14
45
|
export function queueJob(job, immediate = false) {
|
|
15
46
|
// if we have an immediate job, we don't need to queue the normal job.
|
|
16
47
|
// the set is serving an important purpose here in deduping the effects we run
|
|
@@ -25,6 +56,12 @@ export function queueJob(job, immediate = false) {
|
|
|
25
56
|
} else {
|
|
26
57
|
queue.add(job);
|
|
27
58
|
}
|
|
59
|
+
if (isTraceEnabled()) {
|
|
60
|
+
const effectId = getEffectDebugId(job);
|
|
61
|
+
if (effectId !== undefined) {
|
|
62
|
+
insertSchedulerJob("queue", effectId, immediate, immediateQueue.size + queue.size);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
28
65
|
if (resolveJobSignal) {
|
|
29
66
|
resolveJobSignal();
|
|
30
67
|
resolveJobSignal = null;
|
|
@@ -44,15 +81,46 @@ export function trackPromise(promise) {
|
|
|
44
81
|
}
|
|
45
82
|
export function flushJobs() {
|
|
46
83
|
// First, run all synchronous jobs
|
|
84
|
+
if (isTraceEnabled()) beginTransaction();
|
|
47
85
|
let job;
|
|
86
|
+
let jobCount = 0;
|
|
48
87
|
while ((job = takeJob()) !== null) {
|
|
88
|
+
if (isTraceEnabled()) {
|
|
89
|
+
const effectId = getEffectDebugId(job);
|
|
90
|
+
if (effectId !== undefined) {
|
|
91
|
+
insertSchedulerJob("run", effectId, false, immediateQueue.size + queue.size);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (!isJobActive(job)) {
|
|
95
|
+
if (isTraceEnabled()) {
|
|
96
|
+
const effectId = getEffectDebugId(job);
|
|
97
|
+
if (effectId !== undefined) {
|
|
98
|
+
insertEffectLifecycle(effectId, "skipped", undefined, undefined, undefined, undefined);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
continue;
|
|
102
|
+
}
|
|
103
|
+
if (isTraceEnabled()) {
|
|
104
|
+
const effectId = getEffectDebugId(job);
|
|
105
|
+
if (effectId !== undefined) {
|
|
106
|
+
const triggerRefId = lastTriggerRef.get(effectId);
|
|
107
|
+
lastTriggerRef.delete(effectId);
|
|
108
|
+
insertEffectLifecycle(effectId, "ran", triggerRefId, undefined, undefined, undefined);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
49
111
|
job.run();
|
|
112
|
+
jobCount++;
|
|
50
113
|
}
|
|
51
114
|
|
|
52
115
|
// If there are no pending promises, we're done
|
|
53
116
|
if (pendingPromises.size > 0) {
|
|
117
|
+
if (isTraceEnabled()) commitTransaction();
|
|
54
118
|
throw new Error("Asynchronous jobs were found but render was called synchronously. Use `renderAsync` instead.");
|
|
55
119
|
}
|
|
120
|
+
if (isTraceEnabled()) {
|
|
121
|
+
insertSchedulerFlush(jobCount);
|
|
122
|
+
commitTransaction();
|
|
123
|
+
}
|
|
56
124
|
debug.render.flushJobsComplete();
|
|
57
125
|
}
|
|
58
126
|
export function waitForSignal() {
|
|
@@ -79,29 +147,55 @@ export function isWaitingForSignal() {
|
|
|
79
147
|
}
|
|
80
148
|
export async function flushJobsAsync() {
|
|
81
149
|
// Keep running jobs until both the queues are empty and all promises are resolved
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
job
|
|
87
|
-
|
|
150
|
+
if (isTraceEnabled()) beginTransaction();
|
|
151
|
+
try {
|
|
152
|
+
while (true) {
|
|
153
|
+
// First, run all synchronous jobs
|
|
154
|
+
let job;
|
|
155
|
+
while ((job = takeJob()) !== null) {
|
|
156
|
+
if (!isJobActive(job)) {
|
|
157
|
+
if (isTraceEnabled()) {
|
|
158
|
+
const effectId = getEffectDebugId(job);
|
|
159
|
+
if (effectId !== undefined) {
|
|
160
|
+
insertEffectLifecycle(effectId, "skipped", undefined, undefined, undefined, undefined);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
continue;
|
|
164
|
+
}
|
|
165
|
+
if (isTraceEnabled()) {
|
|
166
|
+
const effectId = getEffectDebugId(job);
|
|
167
|
+
if (effectId !== undefined) {
|
|
168
|
+
const triggerRefId = lastTriggerRef.get(effectId);
|
|
169
|
+
lastTriggerRef.delete(effectId);
|
|
170
|
+
insertEffectLifecycle(effectId, "ran", triggerRefId, undefined, undefined, undefined);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
job.run();
|
|
174
|
+
}
|
|
88
175
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
if (!jobSignalPromise) {
|
|
94
|
-
jobSignalPromise = new Promise(resolve => {
|
|
95
|
-
resolveJobSignal = resolve;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
176
|
+
// If there are no pending promises, we're done
|
|
177
|
+
if (pendingPromises.size === 0) {
|
|
178
|
+
break;
|
|
179
|
+
}
|
|
98
180
|
|
|
99
|
-
|
|
100
|
-
|
|
181
|
+
// Commit before awaiting so writes are visible, then re-open after
|
|
182
|
+
if (isTraceEnabled()) commitTransaction();
|
|
183
|
+
if (!jobSignalPromise) {
|
|
184
|
+
jobSignalPromise = new Promise(resolve => {
|
|
185
|
+
resolveJobSignal = resolve;
|
|
186
|
+
});
|
|
187
|
+
}
|
|
101
188
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
189
|
+
// Wait for either pending promises to complete or new jobs to arrive
|
|
190
|
+
await Promise.race([Promise.allSettled(Array.from(pendingPromises)), jobSignalPromise]);
|
|
191
|
+
|
|
192
|
+
// Clear the job signal after each iteration so we create a new one next time
|
|
193
|
+
jobSignalPromise = null;
|
|
194
|
+
resolveJobSignal = null;
|
|
195
|
+
if (isTraceEnabled()) beginTransaction();
|
|
196
|
+
}
|
|
197
|
+
} finally {
|
|
198
|
+
if (isTraceEnabled()) commitTransaction();
|
|
105
199
|
}
|
|
106
200
|
debug.render.flushJobsComplete();
|
|
107
201
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["debug","immediateQueue","Set","queue","pendingPromises","waitForSignalPromise","resolveWaitForSignal","jobSignalPromise","resolveJobSignal","scheduler","immediate","
|
|
1
|
+
{"version":3,"names":["debug","beginTransaction","commitTransaction","insertEffectLifecycle","insertSchedulerFlush","insertSchedulerJob","isTraceEnabled","getEffectDebugId","immediateQueue","Set","queue","isJobActive","job","flags","undefined","pendingPromises","waitForSignalPromise","resolveWaitForSignal","jobSignalPromise","resolveJobSignal","lastTriggerRef","Map","setLastTriggerRef","effectDebugId","refId","set","scheduler","immediate","defaultScheduler","queueJob","run","add","effectId","size","trackPromise","promise","finally","delete","flushJobs","jobCount","takeJob","triggerRefId","get","Error","render","flushJobsComplete","waitForSignal","Promise","resolve","signalSchedulerWait","isWaitingForSignal","flushJobsAsync","race","allSettled","Array","from","values","next","value"],"sources":["../../src/scheduler.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -40,6 +40,11 @@ export interface OutputScopeOptions {
|
|
|
40
40
|
*/
|
|
41
41
|
export declare abstract class OutputScope {
|
|
42
42
|
#private;
|
|
43
|
+
/**
|
|
44
|
+
* The declaration space keys for this scope type. Subclasses override this
|
|
45
|
+
* to declare which declaration spaces are created on construction (e.g.,
|
|
46
|
+
* `["types", "values"]`).
|
|
47
|
+
*/
|
|
43
48
|
static readonly declarationSpaces: Readonly<string[]>;
|
|
44
49
|
/**
|
|
45
50
|
* The name of the scope.
|
|
@@ -69,7 +74,8 @@ export declare abstract class OutputScope {
|
|
|
69
74
|
get parent(): OutputScope | undefined;
|
|
70
75
|
set parent(scope: OutputScope | undefined);
|
|
71
76
|
/**
|
|
72
|
-
* Get the declaration space for the given key.
|
|
77
|
+
* Get the declaration space for the given key (e.g., `"types"`, `"values"`).
|
|
78
|
+
* Returns `undefined` when no space with that key exists on this scope.
|
|
73
79
|
*/
|
|
74
80
|
spaceFor(key: string): OutputSpace | undefined;
|
|
75
81
|
/**
|
|
@@ -85,6 +91,32 @@ export declare abstract class OutputScope {
|
|
|
85
91
|
*/
|
|
86
92
|
get binder(): Binder | undefined;
|
|
87
93
|
[ReactiveFlags.SKIP]: boolean;
|
|
94
|
+
/**
|
|
95
|
+
* Subclasses must forward all three positional arguments to `super`. See
|
|
96
|
+
* {@link createScope} for the preferred instantiation path.
|
|
97
|
+
*
|
|
98
|
+
* @param name - A descriptive name for this scope (used in debugging and
|
|
99
|
+
* diagnostics).
|
|
100
|
+
* @param parentScope - The parent scope in the scope tree, or `undefined`
|
|
101
|
+
* for root scopes. Inside a component, obtain this via `useScope()`.
|
|
102
|
+
* @param options - Additional scope options; see {@link OutputScopeOptions}.
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```ts
|
|
106
|
+
* class MyScope extends OutputScope {
|
|
107
|
+
* constructor(
|
|
108
|
+
* name: string,
|
|
109
|
+
* parent: OutputScope | undefined,
|
|
110
|
+
* options?: OutputScopeOptions,
|
|
111
|
+
* ) {
|
|
112
|
+
* super(name, parent, options);
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* // Inside a component:
|
|
117
|
+
* const scope = createScope(MyScope, "my-scope", useScope());
|
|
118
|
+
* ```
|
|
119
|
+
*/
|
|
88
120
|
constructor(name: string, parentScope: OutputScope | undefined, options?: OutputScopeOptions);
|
|
89
121
|
/**
|
|
90
122
|
* Get all the declaration spaces in this scope.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-scope.d.ts","sourceRoot":"","sources":["../../../src/symbols/output-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,
|
|
1
|
+
{"version":3,"file":"output-scope.d.ts","sourceRoot":"","sources":["../../../src/symbols/output-scope.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAKd,MAAM,iBAAiB,CAAC;AACzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAIlD,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,8BAAsB,WAAW;;IAC/B;;;;OAIG;IACH,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAe;IAGpE;;;;OAIG;IACH,IAAI,IAAI,IAKO,MAAM,CAFpB;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAIpB;IAGD;;;;OAIG;IACH,IAAI,EAAE,WAEL;IAID;;;;;OAKG;IACH,IAAI,QAAQ,4BAEX;IAID;;;;OAIG;IACH,IAAI,MAAM,IAKQ,WAAW,GAAG,SAAS,CAFxC;IAED,IAAI,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,SAAS,EAaxC;IAID;;;OAGG;IACH,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAK9C;;;;OAIG;IACH,IAAI,QAAQ,qBAEX;IAGD;;;;OAIG;IACH,IAAI,MAAM,uBAET;IAED,CAAC,aAAa,CAAC,IAAI,CAAC,UAAQ;IAE5B;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;gBAED,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,WAAW,GAAG,SAAS,EACpC,OAAO,GAAE,kBAAuB;IAwClC;;;;OAIG;IACH,IAAI,MAAM,6BAET;IAGD;;;;;;;OAOG;IACH,IAAI,WAAW,6BAGd;IAED,IAAI,SAAS,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAEvC;IAQD;;;;;;OAMG;IACH,IAAI,WAAW,YAMd;IACD;;;;;;;OAOG;IACH,IAAI,aAAa,YAEhB;IAED,CAAC,OAAO,CAAC,MAAM,CAAC;IAQhB,QAAQ;CAMT"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { reactive, ReactiveFlags,
|
|
1
|
+
import { reactive, ReactiveFlags, track, TrackOpTypes, trigger, TriggerOpTypes } from "@vue/reactivity";
|
|
2
2
|
import { useBinder } from "../context/binder.js";
|
|
3
3
|
import { inspect } from "../inspect.js";
|
|
4
|
-
import { effect, untrack } from "../reactivity.js";
|
|
4
|
+
import { effect, shallowReactive, untrack } from "../reactivity.js";
|
|
5
5
|
import { OutputDeclarationSpace } from "./output-space.js";
|
|
6
6
|
let scopeCount = 0;
|
|
7
7
|
/**
|
|
@@ -23,6 +23,11 @@ let scopeCount = 0;
|
|
|
23
23
|
* within a reactive context.
|
|
24
24
|
*/
|
|
25
25
|
export class OutputScope {
|
|
26
|
+
/**
|
|
27
|
+
* The declaration space keys for this scope type. Subclasses override this
|
|
28
|
+
* to declare which declaration spaces are created on construction (e.g.,
|
|
29
|
+
* `["types", "values"]`).
|
|
30
|
+
*/
|
|
26
31
|
static declarationSpaces = [];
|
|
27
32
|
#name;
|
|
28
33
|
/**
|
|
@@ -85,7 +90,8 @@ export class OutputScope {
|
|
|
85
90
|
#spaces;
|
|
86
91
|
|
|
87
92
|
/**
|
|
88
|
-
* Get the declaration space for the given key.
|
|
93
|
+
* Get the declaration space for the given key (e.g., `"types"`, `"values"`).
|
|
94
|
+
* Returns `undefined` when no space with that key exists on this scope.
|
|
89
95
|
*/
|
|
90
96
|
spaceFor(key) {
|
|
91
97
|
return this.#spaces[key];
|
|
@@ -109,6 +115,33 @@ export class OutputScope {
|
|
|
109
115
|
return this.#binder;
|
|
110
116
|
}
|
|
111
117
|
[ReactiveFlags.SKIP] = true;
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Subclasses must forward all three positional arguments to `super`. See
|
|
121
|
+
* {@link createScope} for the preferred instantiation path.
|
|
122
|
+
*
|
|
123
|
+
* @param name - A descriptive name for this scope (used in debugging and
|
|
124
|
+
* diagnostics).
|
|
125
|
+
* @param parentScope - The parent scope in the scope tree, or `undefined`
|
|
126
|
+
* for root scopes. Inside a component, obtain this via `useScope()`.
|
|
127
|
+
* @param options - Additional scope options; see {@link OutputScopeOptions}.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* ```ts
|
|
131
|
+
* class MyScope extends OutputScope {
|
|
132
|
+
* constructor(
|
|
133
|
+
* name: string,
|
|
134
|
+
* parent: OutputScope | undefined,
|
|
135
|
+
* options?: OutputScopeOptions,
|
|
136
|
+
* ) {
|
|
137
|
+
* super(name, parent, options);
|
|
138
|
+
* }
|
|
139
|
+
* }
|
|
140
|
+
*
|
|
141
|
+
* // Inside a component:
|
|
142
|
+
* const scope = createScope(MyScope, "my-scope", useScope());
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
112
145
|
constructor(name, parentScope, options = {}) {
|
|
113
146
|
this.#name = name;
|
|
114
147
|
this.#id = scopeCount++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["reactive","ReactiveFlags","
|
|
1
|
+
{"version":3,"names":["reactive","ReactiveFlags","track","TrackOpTypes","trigger","TriggerOpTypes","useBinder","inspect","effect","shallowReactive","untrack","OutputDeclarationSpace","scopeCount","OutputScope","declarationSpaces","name","GET","old","SET","id","metadata","parent","scope","children","delete","add","spaces","spaceFor","key","binder","SKIP","constructor","parentScope","options","Set","setOwnerSymbol","ownerSymbol","movedTo","undefined","debug","type","Object","fromEntries","map","spaceKey","notifyScopeCreated","values","debugInfo","#setOwnerSymbol","value","isTransient","isMemberScope","custom","toString"],"sources":["../../../src/symbols/output-scope.ts"],"sourcesContent":[null],"mappings":"AAAA,SACEA,QAAQ,EACRC,aAAa,EACbC,KAAK,EACLC,YAAY,EACZC,OAAO,EACPC,cAAc,QACT,iBAAiB;AAExB,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,MAAM,EAAEC,eAAe,EAAEC,OAAO,QAAQ,kBAAkB;AACnE,SAASC,sBAAsB,QAAqB,mBAAmB;AAGvE,IAAIC,UAAU,GAAG,CAAC;AAsBlB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAeC,WAAW,CAAC;EAChC;AACF;AACA;AACA;AACA;EACE,OAAgBC,iBAAiB,GAAuB,EAAE;EAE1D,CAACC,IAAI;EACL;AACF;AACA;AACA;AACA;EACE,IAAIA,IAAIA,CAAA,EAAG;IACTb,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACa,GAAG,EAAE,MAAM,CAAC;IACrC,OAAO,IAAI,CAAC,CAACD,IAAI;EACnB;EAEA,IAAIA,IAAIA,CAACA,IAAY,EAAE;IACrB,MAAME,GAAG,GAAG,IAAI,CAAC,CAACF,IAAI;IACtB,IAAI,CAAC,CAACA,IAAI,GAAGA,IAAI;IACjBX,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACa,GAAG,EAAE,MAAM,EAAEH,IAAI,EAAEE,GAAG,CAAC;EACtD;EAEA,CAACE,EAAE;EACH;AACF;AACA;AACA;AACA;EACE,IAAIA,EAAEA,CAAA,EAAG;IACP,OAAO,IAAI,CAAC,CAACA,EAAE;EACjB;;EAEA;EACA,CAACC,QAAQ;EACT;AACF;AACA;AACA;AACA;AACA;EACE,IAAIA,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC,CAACA,QAAQ;EACvB;EAEA,CAACC,MAAM;;EAEP;AACF;AACA;AACA;AACA;EACE,IAAIA,MAAMA,CAAA,EAAG;IACXnB,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACa,GAAG,EAAE,QAAQ,CAAC;IACvC,OAAO,IAAI,CAAC,CAACK,MAAM;EACrB;EAEA,IAAIA,MAAMA,CAACC,KAA8B,EAAE;IACzC,MAAML,GAAG,GAAG,IAAI,CAAC,CAACI,MAAM;IAExB,IAAIJ,GAAG,EAAE;MACPA,GAAG,CAACM,QAAQ,CAACC,MAAM,CAAC,IAAI,CAAC;IAC3B;IAEA,IAAIF,KAAK,EAAE;MACTA,KAAK,CAACC,QAAQ,CAACE,GAAG,CAAC,IAAI,CAAC;IAC1B;IAEArB,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACa,GAAG,EAAE,QAAQ,EAAEI,KAAK,EAAEL,GAAG,CAAC;IACvD,IAAI,CAAC,CAACI,MAAM,GAAGC,KAAK;EACtB;EAEA,CAACI,MAAM;;EAEP;AACF;AACA;AACA;EACEC,QAAQA,CAACC,GAAW,EAA2B;IAC7C,OAAO,IAAI,CAAC,CAACF,MAAM,CAACE,GAAG,CAAC;EAC1B;EAEA,CAACL,QAAQ;EACT;AACF;AACA;AACA;AACA;EACE,IAAIA,QAAQA,CAAA,EAAG;IACb,OAAO,IAAI,CAAC,CAACA,QAAQ;EACvB;EAEA,CAACM,MAAM;EACP;AACF;AACA;AACA;AACA;EACE,IAAIA,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC,CAACA,MAAM;EACrB;EAEA,CAAC5B,aAAa,CAAC6B,IAAI,IAAI,IAAI;;EAE3B;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,WAAWA,CACThB,IAAY,EACZiB,WAAoC,EACpCC,OAA2B,GAAG,CAAC,CAAC,EAChC;IACA,IAAI,CAAC,CAAClB,IAAI,GAAGA,IAAI;IACjB,IAAI,CAAC,CAACI,EAAE,GAAGP,UAAU,EAAE;IACvB,IAAI,CAAC,CAACQ,QAAQ,GAAGpB,QAAQ,CAACiC,OAAO,CAACb,QAAQ,IAAI,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,CAACS,MAAM,GAAGI,OAAO,CAACJ,MAAM,IAAIvB,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC,CAACiB,QAAQ,GAAGd,eAAe,CAAC,IAAIyB,GAAG,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,CAACb,MAAM,GAAGW,WAAW;IAC1BxB,MAAM,CACJ,MAAM;MACJ,IAAI,CAAC,CAAC2B,cAAc,CAClBF,OAAO,CAACG,WAAW,EAAEC,OAAO,IAAIJ,OAAO,CAACG,WAC1C,CAAC;IACH,CAAC,EACDE,SAAS,EACT;MACEC,KAAK,EAAE;QACLxB,IAAI,EAAE,yBAAyB;QAC/ByB,IAAI,EAAE;MACR;IACF,CACF,CAAC;IAED,IAAI,IAAI,CAAC,CAACnB,MAAM,EAAE;MAChB,IAAI,CAAC,CAACA,MAAM,CAACE,QAAQ,CAACE,GAAG,CAAC,IAAI,CAAC;IACjC;IAEA,MAAMM,WAAW,GAAG,IAAI,CAACA,WAAiC;IAE1D,IAAI,CAAC,CAACL,MAAM,GAAGe,MAAM,CAACC,WAAW,CAC/BX,WAAW,CAACjB,iBAAiB,CAAC6B,GAAG,CAAEC,QAAQ,IAAK,CAC9CA,QAAQ,EACR,IAAIjC,sBAAsB,CAAC,IAAI,EAAEiC,QAAQ,EAAE,IAAI,CAAC,CAACf,MAAM,CAAC,CACzD,CACH,CAAC;;IAED;IACA,IAAI,CAAC,CAACA,MAAM,EAAEgB,kBAAkB,CAAC,IAAI,CAAC;EACxC;;EAEA;AACF;AACA;AACA;AACA;EACE,IAAInB,MAAMA,CAAA,EAAG;IACX,OAAOe,MAAM,CAACK,MAAM,CAAC,IAAI,CAAC,CAACpB,MAAM,CAAC;EACpC;EAEA,CAACU,WAAW;EACZ;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIA,WAAWA,CAAA,EAAG;IAChBlC,KAAK,CAAC,IAAI,EAAEC,YAAY,CAACa,GAAG,EAAE,aAAa,CAAC;IAC5C,OAAO,IAAI,CAAC,CAACoB,WAAW;EAC1B;EAEA,IAAIW,SAASA,CAAA,EAA4B;IACvC,OAAO,CAAC,CAAC;EACX;EAEA,CAACZ,cAAca,CAACC,KAA+B,EAAE;IAC/C,MAAMhC,GAAG,GAAG,IAAI,CAAC,CAACmB,WAAW;IAC7B,IAAI,CAAC,CAACA,WAAW,GAAGa,KAAK;IACzB7C,OAAO,CAAC,IAAI,EAAEC,cAAc,CAACa,GAAG,EAAE,aAAa,EAAE+B,KAAK,EAAEhC,GAAG,CAAC;EAC9D;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACE,IAAIiC,WAAWA,CAAA,EAAG;IAChB,IAAI,CAAC,IAAI,CAACd,WAAW,EAAE;MACrB,OAAO,KAAK;IACd;IAEA,OAAO,IAAI,CAACA,WAAW,CAACc,WAAW;EACrC;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACE,IAAIC,aAAaA,CAAA,EAAG;IAClB,OAAO,CAAC,CAAC,IAAI,CAACf,WAAW;EAC3B;EAEA,CAAC7B,OAAO,CAAC6C,MAAM,IAAI;IACjB,MAAMhB,WAAW,GACf,IAAI,CAACA,WAAW,GAAG,QAAQ7B,OAAO,CAAC,IAAI,CAAC6B,WAAW,CAAC,EAAE,GAAG,EAAE;IAC7D,OAAO1B,OAAO,CACZ,MAAM,GAAG,IAAI,CAACqB,WAAW,CAAChB,IAAI,IAAI,IAAI,CAACA,IAAI,IAAI,IAAI,CAACI,EAAE,IAAIiB,WAAW,EACvE,CAAC;EACH;EAEAiB,QAAQA,CAAA,EAAG;IACT,OAAO3C,OAAO,CAAC,MAAM;MACnB,MAAM0B,WAAW,GAAG,IAAI,CAACA,WAAW,GAAG,QAAQ,IAAI,CAACA,WAAW,EAAE,GAAG,EAAE;MACtE,OAAO,GAAG,IAAI,CAACL,WAAW,CAAChB,IAAI,IAAI,IAAI,CAACA,IAAI,IAAI,IAAI,CAACI,EAAE,IAAIiB,WAAW,EAAE;IAC1E,CAAC,CAAC;EACJ;AACF","ignoreList":[]}
|
|
@@ -3,7 +3,15 @@ import { inspect } from "../inspect.js";
|
|
|
3
3
|
import { OutputScope } from "./output-scope.js";
|
|
4
4
|
import { OutputSymbol } from "./output-symbol.js";
|
|
5
5
|
import { SymbolTable } from "./symbol-table.js";
|
|
6
|
+
/**
|
|
7
|
+
* A symbol table that belongs to either a scope (declaration space) or a symbol
|
|
8
|
+
* (member space).
|
|
9
|
+
*/
|
|
6
10
|
export type OutputSpace = OutputDeclarationSpace | OutputMemberSpace;
|
|
11
|
+
/**
|
|
12
|
+
* A symbol table attached to an {@link OutputScope}. Holds lexical declarations
|
|
13
|
+
* visible within that scope (e.g., "types" or "values" in a TypeScript module).
|
|
14
|
+
*/
|
|
7
15
|
export declare class OutputDeclarationSpace extends SymbolTable {
|
|
8
16
|
#private;
|
|
9
17
|
constructor(scope: OutputScope, key: string, binder?: Binder);
|
|
@@ -13,6 +21,10 @@ export declare class OutputDeclarationSpace extends SymbolTable {
|
|
|
13
21
|
get scope(): OutputScope;
|
|
14
22
|
[inspect.custom](): string;
|
|
15
23
|
}
|
|
24
|
+
/**
|
|
25
|
+
* A symbol table attached to an {@link OutputSymbol}. Holds member declarations
|
|
26
|
+
* belonging to that symbol (e.g., "static" or "instance" members of a class).
|
|
27
|
+
*/
|
|
16
28
|
export declare class OutputMemberSpace extends SymbolTable {
|
|
17
29
|
#private;
|
|
18
30
|
constructor(symbol: OutputSymbol, key: string, binder?: Binder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"output-space.d.ts","sourceRoot":"","sources":["../../../src/symbols/output-space.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,MAAM,WAAW,GAAG,sBAAsB,GAAG,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"output-space.d.ts","sourceRoot":"","sources":["../../../src/symbols/output-space.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG,sBAAsB,GAAG,iBAAiB,CAAC;AAErE;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,WAAW;;gBACzC,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAM5D;;OAEG;IACH,IAAI,KAAK,gBAER;IAED,CAAC,OAAO,CAAC,MAAM,CAAC;CAKjB;AAED;;;GAGG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;;gBACpC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;IAM9D;;OAEG;IACH,IAAI,MAAM,iBAET;IAED,CAAC,OAAO,CAAC,MAAM,CAAC;CAKjB"}
|
|
@@ -1,6 +1,16 @@
|
|
|
1
1
|
import { inspect } from "../inspect.js";
|
|
2
2
|
import { untrack } from "../reactivity.js";
|
|
3
3
|
import { SymbolTable } from "./symbol-table.js";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* A symbol table that belongs to either a scope (declaration space) or a symbol
|
|
7
|
+
* (member space).
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* A symbol table attached to an {@link OutputScope}. Holds lexical declarations
|
|
12
|
+
* visible within that scope (e.g., "types" or "values" in a TypeScript module).
|
|
13
|
+
*/
|
|
4
14
|
export class OutputDeclarationSpace extends SymbolTable {
|
|
5
15
|
constructor(scope, key, binder) {
|
|
6
16
|
super(key, binder);
|
|
@@ -17,6 +27,11 @@ export class OutputDeclarationSpace extends SymbolTable {
|
|
|
17
27
|
return untrack(() => `OutputDeclarationSpace for scope ${inspect(this.#scope)}`);
|
|
18
28
|
}
|
|
19
29
|
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* A symbol table attached to an {@link OutputSymbol}. Holds member declarations
|
|
33
|
+
* belonging to that symbol (e.g., "static" or "instance" members of a class).
|
|
34
|
+
*/
|
|
20
35
|
export class OutputMemberSpace extends SymbolTable {
|
|
21
36
|
constructor(symbol, key, binder) {
|
|
22
37
|
super(key, binder);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["inspect","untrack","SymbolTable","OutputDeclarationSpace","constructor","scope","key","binder","custom","OutputMemberSpace","symbol"],"sources":["../../../src/symbols/output-space.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,OAAO,QAAQ,kBAAkB;AAG1C,SAASC,WAAW,QAAQ,mBAAmB
|
|
1
|
+
{"version":3,"names":["inspect","untrack","SymbolTable","OutputDeclarationSpace","constructor","scope","key","binder","custom","OutputMemberSpace","symbol"],"sources":["../../../src/symbols/output-space.ts"],"sourcesContent":[null],"mappings":"AACA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,OAAO,QAAQ,kBAAkB;AAG1C,SAASC,WAAW,QAAQ,mBAAmB;;AAE/C;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA,OAAO,MAAMC,sBAAsB,SAASD,WAAW,CAAC;EACtDE,WAAWA,CAACC,KAAkB,EAAEC,GAAW,EAAEC,MAAe,EAAE;IAC5D,KAAK,CAACD,GAAG,EAAEC,MAAM,CAAC;IAClB,IAAI,CAAC,CAACF,KAAK,GAAGA,KAAK;EACrB;EAEA,CAACA,KAAK;EACN;AACF;AACA;EACE,IAAIA,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAAC,CAACA,KAAK;EACpB;EAEA,CAACL,OAAO,CAACQ,MAAM,IAAI;IACjB,OAAOP,OAAO,CACZ,MAAM,oCAAoCD,OAAO,CAAC,IAAI,CAAC,CAACK,KAAK,CAAC,EAChE,CAAC;EACH;AACF;;AAEA;AACA;AACA;AACA;AACA,OAAO,MAAMI,iBAAiB,SAASP,WAAW,CAAC;EACjDE,WAAWA,CAACM,MAAoB,EAAEJ,GAAW,EAAEC,MAAe,EAAE;IAC9D,KAAK,CAACD,GAAG,EAAEC,MAAM,CAAC;IAClB,IAAI,CAAC,CAACG,MAAM,GAAGA,MAAM;EACvB;EAEA,CAACA,MAAM;EACP;AACF;AACA;EACE,IAAIA,MAAMA,CAAA,EAAG;IACX,OAAO,IAAI,CAAC,CAACA,MAAM;EACrB;EAEA,CAACV,OAAO,CAACQ,MAAM,IAAI;IACjB,OAAOP,OAAO,CACZ,MAAM,gCAAgCD,OAAO,CAAC,IAAI,CAAC,CAACU,MAAM,CAAC,EAC7D,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -10,6 +10,12 @@ export interface OutputSymbolOptions {
|
|
|
10
10
|
* will be reported to this binder. This binder will be able to find this
|
|
11
11
|
* symbol via its refkey and other means. Without a binder, this symbol will
|
|
12
12
|
* be unbound, which means it cannot be referenced by refkey.
|
|
13
|
+
*
|
|
14
|
+
* @remarks
|
|
15
|
+
*
|
|
16
|
+
* When constructing an external library symbol, pass `{ binder }` here to
|
|
17
|
+
* ensure the symbol is registered with the binder. See {@link TO_SYMBOL} for
|
|
18
|
+
* the full implementation protocol.
|
|
13
19
|
*/
|
|
14
20
|
binder?: Binder;
|
|
15
21
|
/**
|
|
@@ -61,7 +67,15 @@ export interface OutputSymbolOptions {
|
|
|
61
67
|
*/
|
|
62
68
|
ignoreNameConflict?: boolean;
|
|
63
69
|
/**
|
|
64
|
-
* Provide a function which lazy-initializes members
|
|
70
|
+
* Provide a function which lazy-initializes members the first time
|
|
71
|
+
* `resolveMemberByName()` is called on this symbol. Called at most once.
|
|
72
|
+
*
|
|
73
|
+
* @remarks
|
|
74
|
+
*
|
|
75
|
+
* Only `resolveMemberByName()` triggers this callback — iterating
|
|
76
|
+
* `OutputMemberSpace` directly does not. The callback fires regardless of
|
|
77
|
+
* whether the symbol belongs to any scope, so it is safe to use on scopeless
|
|
78
|
+
* external library symbols.
|
|
65
79
|
*/
|
|
66
80
|
lazyMemberInitializer?: () => void;
|
|
67
81
|
}
|
|
@@ -71,12 +85,48 @@ export interface OutputSymbolOptions {
|
|
|
71
85
|
*
|
|
72
86
|
* @remarks
|
|
73
87
|
*
|
|
74
|
-
* This
|
|
75
|
-
*
|
|
76
|
-
*
|
|
88
|
+
* This is an abstract base class. Language packages must subclass it and
|
|
89
|
+
* implement the abstract {@link OutputSymbol.copy | copy()} method, which
|
|
90
|
+
* creates a clone that tracks the original's name and flags.
|
|
91
|
+
*
|
|
92
|
+
* Subtypes typically add language-specific properties (e.g., accessibility,
|
|
93
|
+
* static/abstract flags). Symbols are reactive values, so you can observe
|
|
94
|
+
* changes to their properties in a reactive context.
|
|
95
|
+
*
|
|
96
|
+
* To construct a scopeless external library symbol — one that resolves via
|
|
97
|
+
* refkey but does not appear in any declaration space — pass `undefined` as
|
|
98
|
+
* the `spaces` constructor argument and supply `{ binder }` in `options`.
|
|
99
|
+
* See {@link OutputSymbolOptions} (`binder` option) and {@link TO_SYMBOL}.
|
|
100
|
+
*
|
|
101
|
+
* @example
|
|
102
|
+
*
|
|
103
|
+
* ```ts
|
|
104
|
+
* import { createSymbol, OutputSymbol, OutputSpace } from "@alloy-js/core";
|
|
105
|
+
*
|
|
106
|
+
* class MySymbol extends OutputSymbol {
|
|
107
|
+
* copy() {
|
|
108
|
+
* // getCopyOptions() already includes binder
|
|
109
|
+
* const opts = this.getCopyOptions();
|
|
110
|
+
* const sym = createSymbol(MySymbol, this.name, undefined, opts);
|
|
111
|
+
* this.initializeCopy(sym);
|
|
112
|
+
* return sym;
|
|
113
|
+
* }
|
|
114
|
+
* }
|
|
115
|
+
*
|
|
116
|
+
* // name: string | Namekey; spaces: OutputSpace | OutputSpace[] | undefined; options: OutputSymbolOptions
|
|
117
|
+
* const sym = createSymbol(MySymbol, namekey, scope.symbols, { binder });
|
|
118
|
+
*
|
|
119
|
+
* // Construct a scopeless external library symbol (resolves via refkey only):
|
|
120
|
+
* const extSym = createSymbol(MySymbol, namekey, undefined, { binder });
|
|
121
|
+
* ```
|
|
77
122
|
*/
|
|
78
123
|
export declare abstract class OutputSymbol {
|
|
79
124
|
#private;
|
|
125
|
+
/**
|
|
126
|
+
* The member space keys for this symbol type. Subclasses override this to
|
|
127
|
+
* declare which member spaces are created on construction (e.g.,
|
|
128
|
+
* `["static", "instance"]`).
|
|
129
|
+
*/
|
|
80
130
|
static readonly memberSpaces: Readonly<string[]>;
|
|
81
131
|
/**
|
|
82
132
|
* Read only. The requested name of this symbol. The symbol's actual name may
|
|
@@ -86,12 +136,48 @@ export declare abstract class OutputSymbol {
|
|
|
86
136
|
*/
|
|
87
137
|
get originalName(): string;
|
|
88
138
|
/**
|
|
89
|
-
* The name of this symbol.
|
|
139
|
+
* The name of this symbol. Assigning to this property applies the active
|
|
140
|
+
* name policy (unless `ignoreNamePolicy` is true) before storing the value.
|
|
141
|
+
*
|
|
142
|
+
* The effective name is computed as `deconflictedName ?? userName`, so if a
|
|
143
|
+
* name-conflict resolver has assigned a {@link OutputSymbol.deconflictedName | deconflictedName}, that value
|
|
144
|
+
* is returned here; otherwise the value most recently assigned to `name` is
|
|
145
|
+
* returned.
|
|
90
146
|
*
|
|
91
147
|
* @reactive
|
|
92
148
|
*/
|
|
93
149
|
get name(): string;
|
|
94
150
|
set name(name: string);
|
|
151
|
+
/**
|
|
152
|
+
* The name assigned by a name-conflict resolver, or `undefined` when the
|
|
153
|
+
* symbol is not currently renamed by conflict resolution.
|
|
154
|
+
*
|
|
155
|
+
* Resolvers should assign to this slot (rather than `name`) to record that a
|
|
156
|
+
* rename exists only because of a conflict. On re-deconfliction (e.g. after
|
|
157
|
+
* a conflicting symbol is removed), resolvers clear this slot by assigning
|
|
158
|
+
* `undefined`; the effective {@link OutputSymbol.name | name} then falls back to the
|
|
159
|
+
* user-assigned name, which in turn falls back to the original name.
|
|
160
|
+
*
|
|
161
|
+
* Name policy is applied to values written here (unless `ignoreNamePolicy`
|
|
162
|
+
* is true), matching `name`'s behavior.
|
|
163
|
+
*
|
|
164
|
+
* @reactive
|
|
165
|
+
*/
|
|
166
|
+
get deconflictedName(): string | undefined;
|
|
167
|
+
set deconflictedName(value: string | undefined);
|
|
168
|
+
/**
|
|
169
|
+
* The canonical requested name for this symbol: the result of applying the
|
|
170
|
+
* symbol's name policy to its {@link OutputSymbol.originalName | originalName}, or the original name
|
|
171
|
+
* itself when no policy applies. This is the name the symbol would carry if
|
|
172
|
+
* there were no conflicts, and is stable across the symbol's lifetime (it
|
|
173
|
+
* depends only on the immutable `originalName` and the name policy).
|
|
174
|
+
*
|
|
175
|
+
* Used by {@link SymbolTable} as the grouping key for name-conflict
|
|
176
|
+
* resolution, so that symbols whose original names normalize to the same
|
|
177
|
+
* policy-applied name (e.g. `foo_bar` and `fooBar` under camelCase) are
|
|
178
|
+
* recognized as conflicting.
|
|
179
|
+
*/
|
|
180
|
+
get canonicalName(): string;
|
|
95
181
|
/**
|
|
96
182
|
* The unique id of this symbol.
|
|
97
183
|
*
|
|
@@ -173,6 +259,13 @@ export declare abstract class OutputSymbol {
|
|
|
173
259
|
* @readonly
|
|
174
260
|
*/
|
|
175
261
|
get metadata(): Record<string, unknown>;
|
|
262
|
+
/**
|
|
263
|
+
* Copy this symbol into the given space. Calls {@link OutputSymbol.copy} and places
|
|
264
|
+
* the result in `space`, then returns the copy.
|
|
265
|
+
*
|
|
266
|
+
* @param space - The space to place the copy in.
|
|
267
|
+
* @returns The copy of this symbol, now belonging to `space`.
|
|
268
|
+
*/
|
|
176
269
|
copyToSpace(space: OutputSpace): OutputSymbol;
|
|
177
270
|
/**
|
|
178
271
|
* Whether this symbol is a member of another symbol.
|
|
@@ -235,6 +328,14 @@ export declare abstract class OutputSymbol {
|
|
|
235
328
|
*/
|
|
236
329
|
resolveMemberByName(name: string): OutputSymbol | undefined;
|
|
237
330
|
[ReactiveFlags.SKIP]: boolean;
|
|
331
|
+
/**
|
|
332
|
+
* @param name - The symbol name, or a {@link Namekey} carrying name and
|
|
333
|
+
* options (e.g., `ignoreNamePolicy`).
|
|
334
|
+
* @param spaces - The declaration or member space(s) this symbol belongs to.
|
|
335
|
+
* Pass `undefined` for scopeless external library symbols (see `binder` option).
|
|
336
|
+
* @param options - Additional symbol options (binder, refkeys, metadata,
|
|
337
|
+
* type, name policy, etc.).
|
|
338
|
+
*/
|
|
238
339
|
constructor(name: string | Namekey, spaces: OutputSpace[] | OutputSpace | undefined, options?: OutputSymbolOptions);
|
|
239
340
|
delete(): void;
|
|
240
341
|
/**
|
|
@@ -250,17 +351,19 @@ export declare abstract class OutputSymbol {
|
|
|
250
351
|
*/
|
|
251
352
|
copyMembersTo(targetSymbol: OutputSymbol): void;
|
|
252
353
|
/**
|
|
253
|
-
*
|
|
254
|
-
*
|
|
354
|
+
* Create a clone of this symbol whose name and flags reactively track the
|
|
355
|
+
* original.
|
|
255
356
|
*
|
|
256
357
|
* @remarks
|
|
257
358
|
*
|
|
258
|
-
*
|
|
259
|
-
*
|
|
260
|
-
*
|
|
261
|
-
*
|
|
359
|
+
* Called by `SymbolTable.copyTo` during scope/space transfers.
|
|
360
|
+
* Subclasses implement cloning logic and call `getCopyOptions` for
|
|
361
|
+
* base options and `initializeCopy` to wire up member copying and
|
|
362
|
+
* name tracking.
|
|
262
363
|
*
|
|
263
|
-
*
|
|
364
|
+
* **Space registration contract:** The returned clone must not be registered
|
|
365
|
+
* in any space on exit. `copyToSpace()` calls this method and assigns the
|
|
366
|
+
* space afterward.
|
|
264
367
|
*/
|
|
265
368
|
abstract copy(): OutputSymbol;
|
|
266
369
|
protected getCopyOptions(): {
|
|
@@ -269,6 +372,19 @@ export declare abstract class OutputSymbol {
|
|
|
269
372
|
metadata: Record<string, unknown>;
|
|
270
373
|
transient: boolean;
|
|
271
374
|
};
|
|
375
|
+
/**
|
|
376
|
+
* Wires up reactive member-space copying and name tracking from this symbol
|
|
377
|
+
* to its `copy`.
|
|
378
|
+
*
|
|
379
|
+
* @remarks
|
|
380
|
+
*
|
|
381
|
+
* Iterates each member space and calls `copyTo` on the corresponding space
|
|
382
|
+
* on `copy`. Then installs a reactive watcher so that any future change to
|
|
383
|
+
* `this.name` is immediately mirrored onto `copy.name`.
|
|
384
|
+
*
|
|
385
|
+
* **Must be called by every `copy()` override** before the override returns.
|
|
386
|
+
* Pair with `getCopyOptions` to supply the base constructor options.
|
|
387
|
+
*/
|
|
272
388
|
protected initializeCopy(copy: OutputSymbol): void;
|
|
273
389
|
[inspect.custom](): string;
|
|
274
390
|
toString(): string;
|