@alloy-js/core 0.23.0-dev.10 → 0.23.0-dev.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/dev/src/binder.js +488 -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 +66 -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 +11 -0
- package/dist/dev/src/components/MemberName.js.map +1 -0
- package/dist/dev/src/components/MemberScope.js +57 -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 +50 -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 +12 -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 +32 -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 +13 -0
- package/dist/dev/src/context/scope.js.map +1 -0
- package/dist/dev/src/context/source-directory.js +3 -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 +163 -0
- package/dist/dev/src/debug/cli.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.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 +658 -0
- package/dist/dev/src/debug/trace-writer.js.map +1 -0
- package/dist/dev/src/debug/trace.js +459 -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 +33 -0
- package/dist/dev/src/devtools/devtools-server.browser.js.map +1 -0
- package/dist/dev/src/devtools/devtools-server.js +444 -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 +89 -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/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 +5 -0
- package/dist/dev/src/library-symbol-reference.js.map +1 -0
- package/dist/dev/src/name-policy.js +24 -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 +426 -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 +251 -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 +202 -0
- package/dist/dev/src/symbols/output-scope.js.map +1 -0
- package/dist/dev/src/symbols/output-space.js +36 -0
- package/dist/dev/src/symbols/output-space.js.map +1 -0
- package/dist/dev/src/symbols/output-symbol.js +504 -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 +68 -0
- package/dist/dev/src/symbols/symbol-slot.js.map +1 -0
- package/dist/dev/src/symbols/symbol-slot.test.js +43 -0
- package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -0
- package/dist/dev/src/symbols/symbol-table.js +93 -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 +47 -0
- package/dist/dev/src/write-output.js.map +1 -0
- package/dist/dev/test/browser-build.test.js +86 -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 +52 -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/output-scope.test.js +180 -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 +76 -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 +167 -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 +23 -0
- package/dist/dev/testing/render.js.map +1 -0
- package/dist/dev/testing/vitest.d.js +2 -0
- package/dist/dev/testing/vitest.d.js.map +1 -0
- package/dist/devtools/index.html +29 -17
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +5 -0
- package/dist/src/binder.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.map +1 -1
- package/dist/src/components/List.js +1 -1
- package/dist/src/components/List.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/debug/diagnostics.test.js +3 -2
- package/dist/src/debug/diagnostics.test.js.map +1 -1
- package/dist/src/debug/effects.d.ts +12 -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 +213 -41
- 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 +4 -2
- package/dist/src/debug/index.d.ts.map +1 -1
- package/dist/src/debug/index.js +4 -2
- 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.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 +6 -5
- package/dist/src/debug/symbols.d.ts.map +1 -1
- package/dist/src/debug/symbols.js +46 -23
- 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 +55 -0
- package/dist/src/debug/trace-writer.d.ts.map +1 -0
- package/dist/src/debug/trace-writer.js +658 -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 +36 -20
- 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 +0 -5
- package/dist/src/devtools/devtools-server.browser.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.browser.js +0 -3
- package/dist/src/devtools/devtools-server.browser.js.map +1 -1
- package/dist/src/devtools/devtools-server.d.ts +0 -6
- package/dist/src/devtools/devtools-server.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.js +212 -24
- 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.map +1 -1
- package/dist/src/diagnostics.js +5 -5
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/reactivity.d.ts +13 -2
- package/dist/src/reactivity.d.ts.map +1 -1
- package/dist/src/reactivity.js +96 -13
- package/dist/src/reactivity.js.map +1 -1
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +84 -30
- package/dist/src/render.js.map +1 -1
- package/dist/src/scheduler.d.ts +5 -0
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +94 -23
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +11 -5
- package/dist/src/utils.js.map +1 -1
- package/dist/test/browser-build.test.js +1 -1
- package/dist/test/browser-build.test.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/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -3
- package/src/binder.ts +47 -38
- package/src/components/For.tsx +14 -10
- package/src/components/List.tsx +7 -4
- package/src/components/Switch.tsx +11 -7
- package/src/debug/diagnostics.test.tsx +3 -2
- package/src/debug/effects.test.tsx +248 -36
- package/src/debug/effects.ts +198 -64
- package/src/debug/files.test.tsx +15 -35
- package/src/debug/files.ts +11 -11
- package/src/debug/index.ts +4 -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.ts +135 -0
- package/src/debug/symbols.test.tsx +19 -20
- package/src/debug/symbols.ts +106 -23
- package/src/debug/trace-writer.ts +969 -0
- package/src/debug/trace.ts +41 -28
- package/src/devtools/devtools-protocol.ts +361 -176
- package/src/devtools/devtools-server.browser.ts +0 -9
- package/src/devtools/devtools-server.ts +210 -32
- 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 +14 -5
- package/src/reactivity.ts +113 -17
- package/src/render.ts +104 -30
- package/src/scheduler.ts +145 -26
- package/src/utils.tsx +7 -4
- package/temp/api.json +142 -20
- package/test/browser-build.test.ts +1 -1
- package/testing/devtools-utils.ts +46 -4
- package/vitest.config.ts +8 -0
|
@@ -0,0 +1,246 @@
|
|
|
1
|
+
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { computed } from "@vue/reactivity";
|
|
3
|
+
import { join } from "pathe";
|
|
4
|
+
import { useContext } from "../context.js";
|
|
5
|
+
import { SourceDirectoryContext } from "../context/source-directory.js";
|
|
6
|
+
import { emitDiagnostic } from "../diagnostics.js";
|
|
7
|
+
import { createFileResource } from "../resource.js";
|
|
8
|
+
import { isComponentCreator } from "../runtime/component.js";
|
|
9
|
+
import { childrenArray } from "../utils.js";
|
|
10
|
+
import { SourceFile } from "./SourceFile.js";
|
|
11
|
+
|
|
12
|
+
// Regular expression for finding all sigils at once
|
|
13
|
+
const SIGIL_REGEX = /^(\s*)(.*alloy-(.+)-(start|end).*)$/gm;
|
|
14
|
+
/**
|
|
15
|
+
* A component that reads a file and returns content with new content appended
|
|
16
|
+
* at the end or within specific regions marked by alloy-\{region name\}-start/alloy-\{region name\}-end sigils.
|
|
17
|
+
*
|
|
18
|
+
* The component can append content in two ways:
|
|
19
|
+
* 1. **Simple append**: Content is appended to the end of the file
|
|
20
|
+
* 2. **Region-based append**: Content is appended before the end sigil on its own line
|
|
21
|
+
*
|
|
22
|
+
* Region sigils are line-based - any line containing "alloy-\{region name\}-start" or "alloy-\{region name\}-end"
|
|
23
|
+
* is considered a sigil.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* Simple append to end of file:
|
|
27
|
+
* ```tsx
|
|
28
|
+
* <AppendFile path="output.txt">
|
|
29
|
+
* <AppendRegion id="append">New content to add</AppendRegion>
|
|
30
|
+
* </AppendFile>
|
|
31
|
+
*
|
|
32
|
+
* // Returns:
|
|
33
|
+
* // Original file content
|
|
34
|
+
* // New content to add
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* Append to specific regions:
|
|
39
|
+
* ```tsx
|
|
40
|
+
* // File content before:
|
|
41
|
+
* // Header content
|
|
42
|
+
* // <!-- alloy-main-start -->
|
|
43
|
+
* // <!-- alloy-main-end -->
|
|
44
|
+
* // Footer content
|
|
45
|
+
*
|
|
46
|
+
* <AppendFile path="template.html" regions={["main"]}>
|
|
47
|
+
* <AppendRegion id="main">New main content</AppendRegion>
|
|
48
|
+
* </AppendFile>
|
|
49
|
+
*
|
|
50
|
+
* // Returns:
|
|
51
|
+
* // Header content
|
|
52
|
+
* // <!-- alloy-main-start -->
|
|
53
|
+
* // New main content
|
|
54
|
+
* // <!-- alloy-main-end -->
|
|
55
|
+
* // Footer content
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
export function AppendFile(props) {
|
|
59
|
+
const regions = props.regions || ["append"];
|
|
60
|
+
|
|
61
|
+
// Get all children and filter for AppendRegion components
|
|
62
|
+
const children = childrenArray(() => props.children);
|
|
63
|
+
const appendRegions = {};
|
|
64
|
+
|
|
65
|
+
// Check if we have any AppendRegion components
|
|
66
|
+
let hasAppendRegions = false;
|
|
67
|
+
for (const child of children) {
|
|
68
|
+
if (isComponentCreator(child, AppendRegion)) {
|
|
69
|
+
hasAppendRegions = true;
|
|
70
|
+
const regionProps = child.props;
|
|
71
|
+
let content;
|
|
72
|
+
if ("children" in regionProps && regionProps.children !== undefined) {
|
|
73
|
+
content = regionProps.children;
|
|
74
|
+
} else if ("content" in regionProps) {
|
|
75
|
+
content = regionProps.content;
|
|
76
|
+
} else {
|
|
77
|
+
emitDiagnostic({
|
|
78
|
+
message: `AppendRegion "${regionProps.id}" must have either children or content`,
|
|
79
|
+
severity: "error"
|
|
80
|
+
});
|
|
81
|
+
// Still register the region to avoid duplicate "region not found" diagnostic
|
|
82
|
+
}
|
|
83
|
+
appendRegions[regionProps.id] = content;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// If no AppendRegion components found, treat all children as content for the default "append" region
|
|
88
|
+
if (!hasAppendRegions && children.length > 0) {
|
|
89
|
+
appendRegions["append"] = children;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
// Validate that all requested regions have corresponding AppendRegion children
|
|
93
|
+
for (const regionId of regions) {
|
|
94
|
+
if (!(regionId in appendRegions)) {
|
|
95
|
+
emitDiagnostic({
|
|
96
|
+
message: `Region "${regionId}" specified but no corresponding AppendRegion child found`,
|
|
97
|
+
severity: "error"
|
|
98
|
+
});
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Read existing file content or start with empty string
|
|
103
|
+
const parentDirectory = useContext(SourceDirectoryContext);
|
|
104
|
+
const fullPath = join(parentDirectory ? parentDirectory.path : "", props.path);
|
|
105
|
+
const currentContents = createFileResource(fullPath);
|
|
106
|
+
const newFileContent = computed(() => {
|
|
107
|
+
if (currentContents.loading) {
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const fileContent = currentContents.error ? "" : currentContents.data;
|
|
111
|
+
|
|
112
|
+
// Find all sigils in the file
|
|
113
|
+
const sigilInfo = {};
|
|
114
|
+
const endSigils = [];
|
|
115
|
+
|
|
116
|
+
// Reset regex and find all sigils
|
|
117
|
+
SIGIL_REGEX.lastIndex = 0;
|
|
118
|
+
let match;
|
|
119
|
+
while ((match = SIGIL_REGEX.exec(fileContent)) !== null) {
|
|
120
|
+
const indent = match[1];
|
|
121
|
+
const fullLine = match[0];
|
|
122
|
+
const regionId = match[3];
|
|
123
|
+
const sigilType = match[4];
|
|
124
|
+
const index = match.index;
|
|
125
|
+
|
|
126
|
+
// Initialize sigil info for this region if not exists
|
|
127
|
+
if (!sigilInfo[regionId]) {
|
|
128
|
+
sigilInfo[regionId] = {
|
|
129
|
+
id: regionId,
|
|
130
|
+
start: null,
|
|
131
|
+
end: null
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
if (sigilType === "start") {
|
|
135
|
+
sigilInfo[regionId].start = index;
|
|
136
|
+
} else if (sigilType === "end") {
|
|
137
|
+
sigilInfo[regionId].end = index;
|
|
138
|
+
|
|
139
|
+
// If this is a region we care about, track it for processing
|
|
140
|
+
if (regions.includes(regionId)) {
|
|
141
|
+
endSigils.push({
|
|
142
|
+
regionId,
|
|
143
|
+
index,
|
|
144
|
+
indent,
|
|
145
|
+
line: fullLine
|
|
146
|
+
});
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Validate regions - check for unclosed regions
|
|
152
|
+
for (const regionId of regions) {
|
|
153
|
+
const info = sigilInfo[regionId];
|
|
154
|
+
if (info && info.start !== null && info.end === null) {
|
|
155
|
+
emitDiagnostic({
|
|
156
|
+
message: `Region "${regionId}" has start sigil but no corresponding end sigil`,
|
|
157
|
+
severity: "error"
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Check if we have any sigils to process
|
|
163
|
+
if (endSigils.length === 0) {
|
|
164
|
+
// No sigils found, append all regions to the end
|
|
165
|
+
const result = [fileContent];
|
|
166
|
+
for (const regionId of regions) {
|
|
167
|
+
if (fileContent && !fileContent.endsWith("\n")) {
|
|
168
|
+
result.push("\n");
|
|
169
|
+
}
|
|
170
|
+
result.push(appendRegions[regionId]);
|
|
171
|
+
}
|
|
172
|
+
return _$createComponent(SourceFile, {
|
|
173
|
+
get path() {
|
|
174
|
+
return props.path;
|
|
175
|
+
},
|
|
176
|
+
filetype: "text/plain",
|
|
177
|
+
children: result
|
|
178
|
+
}, {
|
|
179
|
+
fileName: import.meta.url,
|
|
180
|
+
lineNumber: 206,
|
|
181
|
+
columnNumber: 9
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
// Sort end sigils by their position in the file
|
|
186
|
+
endSigils.sort((a, b) => a.index - b.index);
|
|
187
|
+
|
|
188
|
+
// Process content with sigils
|
|
189
|
+
const result = [];
|
|
190
|
+
let lastIndex = 0;
|
|
191
|
+
|
|
192
|
+
// Process each end sigil in order
|
|
193
|
+
for (const {
|
|
194
|
+
regionId,
|
|
195
|
+
index,
|
|
196
|
+
indent,
|
|
197
|
+
line
|
|
198
|
+
} of endSigils) {
|
|
199
|
+
// Add content before this sigil
|
|
200
|
+
if (index > lastIndex) {
|
|
201
|
+
const beforeContent = fileContent.substring(lastIndex, index);
|
|
202
|
+
if (beforeContent) {
|
|
203
|
+
result.push(beforeContent);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
// Add the new content with proper indentation
|
|
208
|
+
result.push(indent);
|
|
209
|
+
result.push(appendRegions[regionId]);
|
|
210
|
+
result.push("\n");
|
|
211
|
+
|
|
212
|
+
// Add the sigil line
|
|
213
|
+
result.push(line);
|
|
214
|
+
|
|
215
|
+
// Update last processed index
|
|
216
|
+
lastIndex = index + line.length;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// Add any remaining content after the last sigil
|
|
220
|
+
if (lastIndex < fileContent.length) {
|
|
221
|
+
const remainingPart = fileContent.substring(lastIndex);
|
|
222
|
+
if (remainingPart) {
|
|
223
|
+
result.push(remainingPart);
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
return result;
|
|
227
|
+
});
|
|
228
|
+
return _$createComponent(SourceFile, {
|
|
229
|
+
get path() {
|
|
230
|
+
return props.path;
|
|
231
|
+
},
|
|
232
|
+
filetype: "text/plain",
|
|
233
|
+
children: newFileContent
|
|
234
|
+
}, {
|
|
235
|
+
fileName: import.meta.url,
|
|
236
|
+
lineNumber: 252,
|
|
237
|
+
columnNumber: 5
|
|
238
|
+
});
|
|
239
|
+
}
|
|
240
|
+
export function AppendRegion(props) {
|
|
241
|
+
/**
|
|
242
|
+
* This component does nothing except hold props which are retrieved by
|
|
243
|
+
* the `AppendFile` component.
|
|
244
|
+
*/
|
|
245
|
+
}
|
|
246
|
+
//# sourceMappingURL=AppendFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["computed","join","useContext","SourceDirectoryContext","emitDiagnostic","createFileResource","isComponentCreator","childrenArray","SourceFile","SIGIL_REGEX","AppendFile","props","regions","children","appendRegions","hasAppendRegions","child","AppendRegion","regionProps","content","undefined","message","id","severity","length","regionId","parentDirectory","fullPath","path","currentContents","newFileContent","loading","fileContent","error","data","sigilInfo","endSigils","lastIndex","match","exec","indent","fullLine","sigilType","index","start","end","includes","push","line","info","result","endsWith","_$createComponent","filetype","fileName","import","meta","url","lineNumber","columnNumber","sort","a","b","beforeContent","substring","remainingPart"],"sources":["../../../../src/components/AppendFile.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { createIntrinsic as _$createIntrinsic, memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { createContentSlot } from "../content-slot.js";
|
|
3
|
+
import { computed } from "../reactivity.js";
|
|
4
|
+
import { Indent } from "./Indent.js";
|
|
5
|
+
/**
|
|
6
|
+
* Create an indented block of source text. The block has `opener` text which is
|
|
7
|
+
* added prior to the block, which defaults to `"{"`, and `closer` text which is
|
|
8
|
+
* added after the block, which defaults to `"}"`.
|
|
9
|
+
*/
|
|
10
|
+
export function Block(props) {
|
|
11
|
+
const ContentSlot = createContentSlot();
|
|
12
|
+
const leadingNewline = computed(() => {
|
|
13
|
+
if (!props.newline) return false;
|
|
14
|
+
|
|
15
|
+
// When inline, we want a newline only when content breaks, otherwise a nothing..
|
|
16
|
+
if (props.inline) return _$createIntrinsic("sbr", {}, {
|
|
17
|
+
fileName: import.meta.url,
|
|
18
|
+
lineNumber: 41,
|
|
19
|
+
columnNumber: 30
|
|
20
|
+
});
|
|
21
|
+
|
|
22
|
+
// When not inline, we want a hardline when the slot has contents otherwise a space.
|
|
23
|
+
if (ContentSlot.hasContent) return _$createIntrinsic("hbr", {}, {
|
|
24
|
+
fileName: import.meta.url,
|
|
25
|
+
lineNumber: 44,
|
|
26
|
+
columnNumber: 40
|
|
27
|
+
});
|
|
28
|
+
return " ";
|
|
29
|
+
});
|
|
30
|
+
return _$createIntrinsic("group", {
|
|
31
|
+
get children() {
|
|
32
|
+
return [leadingNewline, _$memo(() => props.opener ?? "{", false, "props.opener ?? \u2026"), _$createComponent(Indent, {
|
|
33
|
+
get hardline() {
|
|
34
|
+
return !props.inline && ContentSlot.hasContent;
|
|
35
|
+
},
|
|
36
|
+
get line() {
|
|
37
|
+
return props.inline && ContentSlot.hasContent;
|
|
38
|
+
},
|
|
39
|
+
get softline() {
|
|
40
|
+
return !props.inline || ContentSlot.isEmpty;
|
|
41
|
+
},
|
|
42
|
+
trailingBreak: true,
|
|
43
|
+
get children() {
|
|
44
|
+
return _$createComponent(ContentSlot, {
|
|
45
|
+
get children() {
|
|
46
|
+
return props.children;
|
|
47
|
+
}
|
|
48
|
+
}, {
|
|
49
|
+
fileName: import.meta.url,
|
|
50
|
+
lineNumber: 58,
|
|
51
|
+
columnNumber: 9
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
}, {
|
|
55
|
+
fileName: import.meta.url,
|
|
56
|
+
lineNumber: 52,
|
|
57
|
+
columnNumber: 7
|
|
58
|
+
}), _$memo(() => props.closer ?? "}", false, "props.closer ?? \u2026")];
|
|
59
|
+
}
|
|
60
|
+
}, {
|
|
61
|
+
fileName: import.meta.url,
|
|
62
|
+
lineNumber: 49,
|
|
63
|
+
columnNumber: 5
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=Block.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createContentSlot","computed","Indent","Block","props","ContentSlot","leadingNewline","newline","inline","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","hasContent","children","_$memo","opener","_$createComponent","hardline","line","softline","isEmpty","trailingBreak","closer"],"sources":["../../../../src/components/Block.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,iBAAiB;AAC1B,SAASC,QAAQ,QAAQ,kBAAkB;AAE3C,SAASC,MAAM;AA0Bf;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,KAAKA,CAACC,KAAiB,EAAE;EACvC,MAAMC,WAAW,GAAGL,iBAAiB,CAAC,CAAC;EACvC,MAAMM,cAAc,GAAGL,QAAQ,CAAC,MAAM;IACpC,IAAI,CAACG,KAAK,CAACG,OAAO,EAAE,OAAO,KAAK;;IAEhC;IACA,IAAIH,KAAK,CAACI,MAAM,EAAE,OAAAC,iBAAA;MAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA;;IAElB;IACA,IAAIV,WAAW,CAACW,UAAU,EAAE,OAAAP,iBAAA;MAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;MAAAC,UAAA;MAAAC,YAAA;IAAA;IAE5B,OAAO,GAAG;EACZ,CAAC,CAAC;EACF,OAAAN,iBAAA;IAAA,IAAAQ,SAAA;MAAA,QAEKX,cAAc,EAAAY,MAAA,OACdd,KAAK,CAACe,MAAM,IAAI,GAAG,oCAAAC,iBAAA,CACnBlB,MAAM;QAAA,IACLmB,QAAQA,CAAA;UAAA,OAAE,CAACjB,KAAK,CAACI,MAAM,IAAIH,WAAW,CAACW,UAAU;QAAA;QAAA,IACjDM,IAAIA,CAAA;UAAA,OAAElB,KAAK,CAACI,MAAM,IAAIH,WAAW,CAACW,UAAU;QAAA;QAAA,IAC5CO,QAAQA,CAAA;UAAA,OAAE,CAACnB,KAAK,CAACI,MAAM,IAAIH,WAAW,CAACmB,OAAO;QAAA;QAC9CC,aAAa;QAAA,IAAAR,SAAA;UAAA,OAAAG,iBAAA,CAEZf,WAAW;YAAA,IAAAY,SAAA;cAAA,OAAEb,KAAK,CAACa,QAAQ;YAAA;UAAA;YAAAP,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;YAAAC,UAAA;YAAAC,YAAA;UAAA;QAAA;MAAA;QAAAL,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;QAAAC,UAAA;QAAAC,YAAA;MAAA,IAAAG,MAAA,OAE7Bd,KAAK,CAACsB,MAAM,IAAI,GAAG;IAAA;EAAA;IAAAhB,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAG1B","ignoreList":[]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { join } from "pathe";
|
|
2
|
+
import { useContext } from "../context.js";
|
|
3
|
+
import { SourceDirectoryContext } from "../context/source-directory.js";
|
|
4
|
+
import { getContext } from "../reactivity.js";
|
|
5
|
+
export function CopyFile(props) {
|
|
6
|
+
const parentDirectory = useContext(SourceDirectoryContext);
|
|
7
|
+
const context = {
|
|
8
|
+
path: join(parentDirectory ? parentDirectory.path : "", props.path),
|
|
9
|
+
sourcePath: props.src
|
|
10
|
+
};
|
|
11
|
+
parentDirectory?.addContent(context);
|
|
12
|
+
const nodeContext = getContext();
|
|
13
|
+
nodeContext.meta ??= {};
|
|
14
|
+
nodeContext.meta.copyFile = context;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=CopyFile.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["join","useContext","SourceDirectoryContext","getContext","CopyFile","props","parentDirectory","context","path","sourcePath","src","addContent","nodeContext","meta","copyFile"],"sources":["../../../../src/components/CopyFile.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,QAAQ,OAAO;AAC5B,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,sBAAsB,QAAQ,gCAAgC;AAEvE,SAASC,UAAU,QAAQ,kBAAkB;AAc7C,OAAO,SAASC,QAAQA,CAACC,KAAoB,EAAE;EAC7C,MAAMC,eAAe,GAAGL,UAAU,CAACC,sBAAsB,CAAE;EAC3D,MAAMK,OAAwB,GAAG;IAC/BC,IAAI,EAAER,IAAI,CAACM,eAAe,GAAGA,eAAe,CAACE,IAAI,GAAG,EAAE,EAAEH,KAAK,CAACG,IAAI,CAAC;IACnEC,UAAU,EAAEJ,KAAK,CAACK;EACpB,CAAC;EACDJ,eAAe,EAAEK,UAAU,CAACJ,OAAO,CAAC;EACpC,MAAMK,WAAW,GAAGT,UAAU,CAAC,CAAE;EACjCS,WAAW,CAACC,IAAI,KAAK,CAAC,CAAC;EACvBD,WAAW,CAACC,IAAI,CAACC,QAAQ,GAAGP,OAAO;AACrC","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { createSymbol } from "../binder.js";
|
|
3
|
+
import { useContext } from "../context.js";
|
|
4
|
+
import { BinderContext } from "../context/binder.js";
|
|
5
|
+
import { DeclarationContext } from "../context/declaration.js";
|
|
6
|
+
import { useScope } from "../context/scope.js";
|
|
7
|
+
import { onCleanup } from "../reactivity.js";
|
|
8
|
+
import { BasicScope } from "../symbols/basic-scope.js";
|
|
9
|
+
import { BasicSymbol } from "../symbols/basic-symbol.js";
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Create a declaration by providing an already created symbol. The symbol is
|
|
13
|
+
* merely exposed via {@link DeclarationContext}.
|
|
14
|
+
*/
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Create a declaration by providing a symbol name and optional symbol metadata.
|
|
18
|
+
*/
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Declares a symbol in the current scope for this component's children.
|
|
22
|
+
*
|
|
23
|
+
* @remarks
|
|
24
|
+
*
|
|
25
|
+
* This component must be called in one of two ways: with a name and an optional
|
|
26
|
+
* refkey, or else passing in the symbol. When called with a name and refkey, a
|
|
27
|
+
* symbol will be created in the current scope (provided by
|
|
28
|
+
* {@link ScopeContext}) with that name and refkey.
|
|
29
|
+
*
|
|
30
|
+
* When called with a symbol, that symbol is merely exposed via
|
|
31
|
+
* {@link DeclarationContext}. It is assumed that the caller of this component
|
|
32
|
+
* has created the symbol with the `createSymbol` API on the
|
|
33
|
+
* {@link BinderContext }.
|
|
34
|
+
*
|
|
35
|
+
* @see {@link BinderContext}
|
|
36
|
+
*/
|
|
37
|
+
export function Declaration(props) {
|
|
38
|
+
const binder = useContext(BinderContext);
|
|
39
|
+
if (!binder) {
|
|
40
|
+
throw new Error("Need binder context to create declarations");
|
|
41
|
+
}
|
|
42
|
+
let declaration;
|
|
43
|
+
if ("symbol" in props) {
|
|
44
|
+
declaration = props.symbol;
|
|
45
|
+
} else {
|
|
46
|
+
const scope = useScope();
|
|
47
|
+
if (!(scope instanceof BasicScope)) {
|
|
48
|
+
throw new Error(`Declaration component cannot create a symbol in a non-basic scope: ${scope}`);
|
|
49
|
+
}
|
|
50
|
+
declaration = createSymbol(BasicSymbol, props.name, scope.symbols, {
|
|
51
|
+
binder,
|
|
52
|
+
refkeys: [props.refkey ?? []].flat(),
|
|
53
|
+
metadata: props.metadata
|
|
54
|
+
});
|
|
55
|
+
onCleanup(() => {
|
|
56
|
+
declaration.delete();
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return _$createComponent(DeclarationContext.Provider, {
|
|
60
|
+
value: declaration,
|
|
61
|
+
get children() {
|
|
62
|
+
return props.children;
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
fileName: import.meta.url,
|
|
66
|
+
lineNumber: 99,
|
|
67
|
+
columnNumber: 5
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=Declaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createSymbol","useContext","BinderContext","DeclarationContext","useScope","onCleanup","BasicScope","BasicSymbol","Declaration","props","binder","Error","declaration","symbol","scope","name","symbols","refkeys","refkey","flat","metadata","delete","_$createComponent","Provider","value","children","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/Declaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,YAAY,QAAQ,cAAc;AAC3C,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,kBAAkB,QAAQ,2BAA2B;AAC9D,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,SAASC,SAAS,QAAQ,kBAAkB;AAG5C,SAASC,UAAU,QAAQ,2BAA2B;AACtD,SAASC,WAAW,QAAQ,4BAA4B;;AAGxD;AACA;AACA;AACA;;AAWA;AACA;AACA;;AAwBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,WAAWA,CAACC,KAAuB,EAAE;EACnD,MAAMC,MAAM,GAAGT,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACQ,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,IAAIC,WAAyB;EAC7B,IAAI,QAAQ,IAAIH,KAAK,EAAE;IACrBG,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACL,MAAMC,KAAK,GAAGV,QAAQ,CAAC,CAAC;IACxB,IAAI,EAAEU,KAAK,YAAYR,UAAU,CAAC,EAAE;MAClC,MAAM,IAAIK,KAAK,CACb,sEAAsEG,KAAK,EAC7E,CAAC;IACH;IAEAF,WAAW,GAAGZ,YAAY,CAACO,WAAW,EAAEE,KAAK,CAACM,IAAI,EAAED,KAAK,CAACE,OAAO,EAAE;MACjEN,MAAM;MACNO,OAAO,EAAE,CAACR,KAAK,CAACS,MAAM,IAAI,EAAE,CAAC,CAACC,IAAI,CAAC,CAAC;MACpCC,QAAQ,EAAEX,KAAK,CAACW;IAClB,CAAC,CAAC;IAEFf,SAAS,CAAC,MAAM;MACdO,WAAW,CAACS,MAAM,CAAC,CAAC;IACtB,CAAC,CAAC;EACJ;EAEA,OAAAC,iBAAA,CACGnB,kBAAkB,CAACoB,QAAQ;IAACC,KAAK,EAAEZ,WAAW;IAAA,IAAAa,SAAA;MAAA,OAC5ChB,KAAK,CAACgB,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrB","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { isRef } from "@vue/reactivity";
|
|
2
|
+
import { memo } from "../reactivity.js";
|
|
3
|
+
import { baseListPropsToMapJoinArgs, mapJoin } from "../utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* The For component iterates over the provided array and invokes the child
|
|
6
|
+
* callback for each item. It can optionally be provided with a `joiner` which
|
|
7
|
+
* is placed between each item, and an `ender` which is placed after the last
|
|
8
|
+
* item when there is at least one item.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
*
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const items = ["apple", "pear", "plum"];
|
|
14
|
+
* return <For each={items}>
|
|
15
|
+
* {(item) => <>Fruit: {item}</>}
|
|
16
|
+
* </For>
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* @remarks
|
|
20
|
+
*
|
|
21
|
+
* When the `each` prop is a reactive (e.g. a reactive array, or ref to an
|
|
22
|
+
* array), `For` will automatically update when the array changes. When doing
|
|
23
|
+
* so, it will attempt to avoid re-rendering items which have not changed. For
|
|
24
|
+
* example, when appending an item to a reactive array, existing items will not
|
|
25
|
+
* be re-rendered. Note that presently the implementation is fairly simple -
|
|
26
|
+
* when making modifications to the middle of an array it likely that every
|
|
27
|
+
* element after the modification will be rerendered.
|
|
28
|
+
*
|
|
29
|
+
* @see {@link (mapJoin:1)} for mapping arrays to elements outside of JSX templates.
|
|
30
|
+
*/
|
|
31
|
+
export function For(props) {
|
|
32
|
+
const cb = props.children;
|
|
33
|
+
const options = baseListPropsToMapJoinArgs(props);
|
|
34
|
+
options.skipFalsy = props.skipFalsy;
|
|
35
|
+
return memo(() => {
|
|
36
|
+
const maybeRef = props.each;
|
|
37
|
+
return mapJoin(typeof maybeRef === "function" ? maybeRef : () => isRef(maybeRef) ? maybeRef.value : maybeRef, cb, options);
|
|
38
|
+
}, undefined, "For");
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=For.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isRef","memo","baseListPropsToMapJoinArgs","mapJoin","For","props","cb","children","options","skipFalsy","maybeRef","each","value","undefined"],"sources":["../../../../src/components/For.tsx"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAa,iBAAiB;AAC5C,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,SAASC,0BAA0B,EAAEC,OAAO,QAAQ,aAAa;AA0CjE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,GAAGA,CAMjBC,KAAqB,EAAE;EACvB,MAAMC,EAAE,GAAGD,KAAK,CAACE,QAAQ;EACzB,MAAMC,OAAO,GAAGN,0BAA0B,CAACG,KAAK,CAAC;EACjDG,OAAO,CAACC,SAAS,GAAGJ,KAAK,CAACI,SAAS;EACnC,OAAOR,IAAI,CACT,MAAM;IACJ,MAAMS,QAAQ,GAAGL,KAAK,CAACM,IAAI;IAE3B,OAAQR,OAAO,CACb,OAAOO,QAAQ,KAAK,UAAU,GAAGA,QAAQ,GACvC,MAAOV,KAAK,CAACU,QAAQ,CAAC,GAAGA,QAAQ,CAACE,KAAK,GAAGF,QAC3C,EACDJ,EAAE,EACFE,OACF,CAAC;EACH,CAAC,EACDK,SAAS,EACT,KACF,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createIntrinsic as _$createIntrinsic, memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { computed } from "@vue/reactivity";
|
|
3
|
+
/**
|
|
4
|
+
* Create an indented block of source text. The indented block starts a new line
|
|
5
|
+
* at the new indentation level and, with `trailingBreak`, ends with a new line
|
|
6
|
+
* after restoring the indentation level. The default line break is a hard line
|
|
7
|
+
* break suitable for typical blocks of statements but can be configured.
|
|
8
|
+
*/
|
|
9
|
+
export function Indent(props) {
|
|
10
|
+
const breakElem = computed(() => props.nobreak ? "" : props.hardline ? _$createIntrinsic("hbr", {}, {
|
|
11
|
+
fileName: import.meta.url,
|
|
12
|
+
lineNumber: 46,
|
|
13
|
+
columnNumber: 24
|
|
14
|
+
}) : props.softline ? _$createIntrinsic("sbr", {}, {
|
|
15
|
+
fileName: import.meta.url,
|
|
16
|
+
lineNumber: 47,
|
|
17
|
+
columnNumber: 24
|
|
18
|
+
}) : props.line ? _$createIntrinsic("br", {}, {
|
|
19
|
+
fileName: import.meta.url,
|
|
20
|
+
lineNumber: 48,
|
|
21
|
+
columnNumber: 20
|
|
22
|
+
}) : _$createIntrinsic("hbr", {}, {
|
|
23
|
+
fileName: import.meta.url,
|
|
24
|
+
lineNumber: 49,
|
|
25
|
+
columnNumber: 7
|
|
26
|
+
}));
|
|
27
|
+
return [_$createIntrinsic("indent", {
|
|
28
|
+
get children() {
|
|
29
|
+
return [breakElem, _$memo(() => props.children, false, "props.children")];
|
|
30
|
+
}
|
|
31
|
+
}, {
|
|
32
|
+
fileName: import.meta.url,
|
|
33
|
+
lineNumber: 54,
|
|
34
|
+
columnNumber: 7
|
|
35
|
+
}), _$memo(() => props.trailingBreak && breakElem, false, "props.trailingBreak && \u2026")];
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=Indent.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["computed","Indent","props","breakElem","nobreak","hardline","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","softline","line","children","_$memo","trailingBreak"],"sources":["../../../../src/components/Indent.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,QAAQ,QAAQ,iBAAiB;AAoC1C;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAACC,KAAkB,EAAE;EACzC,MAAMC,SAAS,GAAGH,QAAQ,CAAC,MACzBE,KAAK,CAACE,OAAO,GAAG,EAAE,GAChBF,KAAK,CAACG,QAAQ,GAAAC,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,KACdV,KAAK,CAACW,QAAQ,GAAAP,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,KACdV,KAAK,CAACY,IAAI,GAAAR,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,KAAAN,iBAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,EAEd,CAAC;EAED,QAAAN,iBAAA;IAAA,IAAAS,SAAA;MAAA,QAGOZ,SAAS,EAAAa,MAAA,OACTd,KAAK,CAACa,QAAQ;IAAA;EAAA;IAAAR,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA,IAAAI,MAAA,OAEhBd,KAAK,CAACe,aAAa,IAAId,SAAS;AAGvC","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { mergeProps as _$mergeProps, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { splitProps } from "../props-combinators.js";
|
|
3
|
+
import { memo } from "../reactivity.js";
|
|
4
|
+
import { childrenArray } from "../utils.js";
|
|
5
|
+
import { For } from "./For.js";
|
|
6
|
+
/**
|
|
7
|
+
* Create a list of children with text between each child. The text to join with
|
|
8
|
+
* is specified by providing either `joiner` children, or providing boolean
|
|
9
|
+
* props for the punctuation and line breaks. The default joiner is no
|
|
10
|
+
* punctuation and a hard break. The `ender` prop can provide text to place at
|
|
11
|
+
* the end of the list when there is at least one child.
|
|
12
|
+
*/
|
|
13
|
+
export function List(props) {
|
|
14
|
+
const [rest, forProps] = splitProps(props, ["children"]);
|
|
15
|
+
const resolvedChildren = memo(() => childrenArray(() => rest.children, {
|
|
16
|
+
preserveFragments: true
|
|
17
|
+
}), undefined, "List:children");
|
|
18
|
+
return _$createComponent(For, _$mergeProps({
|
|
19
|
+
each: resolvedChildren
|
|
20
|
+
}, forProps, {
|
|
21
|
+
skipFalsy: true,
|
|
22
|
+
children: child => child
|
|
23
|
+
}), {
|
|
24
|
+
fileName: import.meta.url,
|
|
25
|
+
lineNumber: 69,
|
|
26
|
+
columnNumber: 5
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=List.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["splitProps","memo","childrenArray","For","List","props","rest","forProps","resolvedChildren","children","preserveFragments","undefined","_$createComponent","_$mergeProps","each","skipFalsy","child","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/List.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,UAAU,QAAQ,yBAAyB;AACpD,SAASC,IAAI,QAAQ,kBAAkB;AAEvC,SAASC,aAAa,QAAQ,aAAa;AAC3C,SAASC,GAAG;AA8CZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,IAAIA,CAACC,KAAgB,EAAE;EACrC,MAAM,CAACC,IAAI,EAAEC,QAAQ,CAAC,GAAGP,UAAU,CAACK,KAAK,EAAE,CAAC,UAAU,CAAC,CAAC;EACxD,MAAMG,gBAAgB,GAAGP,IAAI,CAC3B,MACEC,aAAa,CAAC,MAAMI,IAAI,CAACG,QAAQ,EAAE;IACjCC,iBAAiB,EAAE;EACrB,CAAC,CAAC,EACJC,SAAS,EACT,eACF,CAAC;EACD,OAAAC,iBAAA,CACGT,GAAG,EAAAU,YAAA;IAACC,IAAI,EAAEN;EAAgB,GAAMD,QAAQ;IAAEQ,SAAS;IAAAN,QAAA,EAChDO,KAAK,IAAKA;EAAK;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGvB","ignoreList":[]}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { memo as _$memo, createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { useContext } from "../context.js";
|
|
3
|
+
import { BinderContext } from "../context/binder.js";
|
|
4
|
+
import { MemberDeclarationContext } from "../context/member-declaration.js";
|
|
5
|
+
import { useMemberContext } from "../context/member-scope.js";
|
|
6
|
+
import { BasicSymbol } from "../symbols/basic-symbol.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Create a member declaration by providing a symbol name and optional symbol
|
|
10
|
+
* metadata.
|
|
11
|
+
*/
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* Create a declaration by providing an already created symbol. The symbol is
|
|
15
|
+
* merely exposed via {@link DeclarationContext}.
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Declares a symbol in the current member scope for this component's children.
|
|
20
|
+
*
|
|
21
|
+
* @remarks
|
|
22
|
+
*
|
|
23
|
+
* This component must be called in one of two ways: with a name and an optional
|
|
24
|
+
* refkey, or else passing in the symbol. When called with a name and refkey, a
|
|
25
|
+
* symbol will be created in the current scope (provided by
|
|
26
|
+
* {@link MemberDeclarationContext}) with that name and refkey. If a refkey is not
|
|
27
|
+
* provided, `refkey(props.name)` is used.
|
|
28
|
+
*
|
|
29
|
+
* When called with a symbol, that symbol is merely exposed via
|
|
30
|
+
* {@link MemberDeclarationContext}. It is assumed that the caller of this component
|
|
31
|
+
* has created the symbol with the `createSymbol` API on the
|
|
32
|
+
* {@link BinderContext}.
|
|
33
|
+
*
|
|
34
|
+
* @see {@link BinderContext}
|
|
35
|
+
*/
|
|
36
|
+
export function MemberDeclaration(props) {
|
|
37
|
+
const binder = useContext(BinderContext);
|
|
38
|
+
if (!binder) {
|
|
39
|
+
throw new Error("Need binder context to create declarations");
|
|
40
|
+
}
|
|
41
|
+
let declaration;
|
|
42
|
+
if ("symbol" in props && props.symbol) {
|
|
43
|
+
declaration = props.symbol;
|
|
44
|
+
} else {
|
|
45
|
+
const infoProps = props;
|
|
46
|
+
if (!infoProps.name) {
|
|
47
|
+
throw new Error("Must provide a member name, or else provide a member symbol");
|
|
48
|
+
}
|
|
49
|
+
const scopeContext = useMemberContext();
|
|
50
|
+
if (!(scopeContext.ownerSymbol instanceof BasicSymbol)) {
|
|
51
|
+
throw new Error(`MemberDeclaration component cannot create a symbol in a non-basic scope: ${scopeContext.ownerSymbol}`);
|
|
52
|
+
}
|
|
53
|
+
const space = infoProps.static ? scopeContext.ownerSymbol.staticMembers : scopeContext.ownerSymbol.instanceMembers;
|
|
54
|
+
declaration = new BasicSymbol(infoProps.name, space, {
|
|
55
|
+
refkeys: infoProps.refkey,
|
|
56
|
+
metadata: infoProps.metadata
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
return _$createComponent(MemberDeclarationContext.Provider, {
|
|
60
|
+
value: declaration,
|
|
61
|
+
get children() {
|
|
62
|
+
return props.children;
|
|
63
|
+
}
|
|
64
|
+
}, {
|
|
65
|
+
fileName: import.meta.url,
|
|
66
|
+
lineNumber: 108,
|
|
67
|
+
columnNumber: 5
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=MemberDeclaration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useContext","BinderContext","MemberDeclarationContext","useMemberContext","BasicSymbol","MemberDeclaration","props","binder","Error","declaration","symbol","infoProps","name","scopeContext","ownerSymbol","space","static","staticMembers","instanceMembers","refkeys","refkey","metadata","_$createComponent","Provider","value","children","fileName","import","meta","url","lineNumber","columnNumber"],"sources":["../../../../src/components/MemberDeclaration.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,aAAa,QAAQ,sBAAsB;AACpD,SAASC,wBAAwB,QAAQ,kCAAkC;AAC3E,SAASC,gBAAgB,QAAQ,4BAA4B;AAG7D,SAASC,WAAW,QAAQ,4BAA4B;;AAGxD;AACA;AACA;AACA;;AAyBA;AACA;AACA;AACA;;AAeA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,iBAAiBA,CAACC,KAA6B,EAAE;EAC/D,MAAMC,MAAM,GAAGP,UAAU,CAACC,aAAa,CAAC;EACxC,IAAI,CAACM,MAAM,EAAE;IACX,MAAM,IAAIC,KAAK,CAAC,4CAA4C,CAAC;EAC/D;EAEA,IAAIC,WAAW;EACf,IAAI,QAAQ,IAAIH,KAAK,IAAIA,KAAK,CAACI,MAAM,EAAE;IACrCD,WAAW,GAAGH,KAAK,CAACI,MAAM;EAC5B,CAAC,MAAM;IACL,MAAMC,SAAS,GAAGL,KAAuC;IACzD,IAAI,CAACK,SAAS,CAACC,IAAI,EAAE;MACnB,MAAM,IAAIJ,KAAK,CACb,6DACF,CAAC;IACH;IAEA,MAAMK,YAAY,GAAGV,gBAAgB,CAAC,CAAE;IACxC,IAAI,EAAEU,YAAY,CAACC,WAAW,YAAYV,WAAW,CAAC,EAAE;MACtD,MAAM,IAAII,KAAK,CACb,4EAA4EK,YAAY,CAACC,WAAW,EACtG,CAAC;IACH;IACA,MAAMC,KAAK,GACTJ,SAAS,CAACK,MAAM,GACdH,YAAY,CAACC,WAAW,CAACG,aAAa,GACtCJ,YAAY,CAACC,WAAW,CAACI,eAAe;IAC5CT,WAAW,GAAG,IAAIL,WAAW,CAACO,SAAS,CAACC,IAAI,EAAEG,KAAK,EAAE;MACnDI,OAAO,EAAER,SAAS,CAACS,MAAM;MACzBC,QAAQ,EAAEV,SAAS,CAACU;IACtB,CAAC,CAAC;EACJ;EAEA,OAAAC,iBAAA,CACGpB,wBAAwB,CAACqB,QAAQ;IAACC,KAAK,EAAEf,WAAW;IAAA,IAAAgB,SAAA;MAAA,OAClDnB,KAAK,CAACmB,QAAQ;IAAA;EAAA;IAAAC,QAAA,EAAAC,MAAA,CAAAC,IAAA,CAAAC,GAAA;IAAAC,UAAA;IAAAC,YAAA;EAAA;AAGrB","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { memo as _$memo } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { useContext } from "../context.js";
|
|
3
|
+
import { MemberDeclarationContext } from "../context/member-declaration.js";
|
|
4
|
+
export function MemberName() {
|
|
5
|
+
const declSymbol = useContext(MemberDeclarationContext);
|
|
6
|
+
if (!declSymbol) {
|
|
7
|
+
return "(no member declaration context)";
|
|
8
|
+
}
|
|
9
|
+
return [_$memo(() => declSymbol.name, false, "declSymbol.name")];
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=MemberName.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useContext","MemberDeclarationContext","MemberName","declSymbol","_$memo","name"],"sources":["../../../../src/components/MemberName.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAASC,wBAAwB,QAAQ,kCAAkC;AAE3E,OAAO,SAASC,UAAUA,CAAA,EAAG;EAC3B,MAAMC,UAAU,GAAGH,UAAU,CAACC,wBAAwB,CAAC;EACvD,IAAI,CAACE,UAAU,EAAE;IACf,OAAO,iCAAiC;EAC1C;EAEA,QAAAC,MAAA,OAAUD,UAAU,CAACE,IAAI;AAC3B","ignoreList":[]}
|