@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,487 @@
|
|
|
1
|
+
import { memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
import { toRaw } from "@vue/reactivity";
|
|
3
|
+
import { createCustomContext, effect, ensureIsEmpty, getContext, memo, onCleanup, ref, root, untrack } from "./reactivity.js";
|
|
4
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
5
|
+
|
|
6
|
+
import { isComponentCreator } from "./runtime/component.js";
|
|
7
|
+
const defaultJoinOptions = {
|
|
8
|
+
joiner: "\n",
|
|
9
|
+
ender: false
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Map a Map to an array using a mapper and place a joiner between each element.
|
|
14
|
+
* Defaults to joining with a newline.
|
|
15
|
+
*
|
|
16
|
+
* @see {@link join} for joining without mapping.
|
|
17
|
+
* @param src - Source map.
|
|
18
|
+
* @param cb - Mapper function.
|
|
19
|
+
* @param options - Join options.
|
|
20
|
+
* @returns The mapped and joined array.
|
|
21
|
+
*
|
|
22
|
+
*/
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Map a Map to an array using a mapper and place a joiner between each element.
|
|
26
|
+
* Defaults to joining with a newline.
|
|
27
|
+
*
|
|
28
|
+
* @see {@link join} for joining without mapping.
|
|
29
|
+
* @param src - Source map.
|
|
30
|
+
* @param cb - Mapper function.
|
|
31
|
+
* @param options - Join options.
|
|
32
|
+
* @returns The mapped and joined array.
|
|
33
|
+
*
|
|
34
|
+
*/
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Map a array or iterator to another array using a mapper and place a joiner
|
|
38
|
+
* between each element. Defaults to joining with a newline.
|
|
39
|
+
*
|
|
40
|
+
* @see {@link join} for joining without mapping.
|
|
41
|
+
* @param src - Source array.
|
|
42
|
+
* @param cb - Mapper function.
|
|
43
|
+
* @param options - Join options.
|
|
44
|
+
* @returns The mapped and joined array.
|
|
45
|
+
*/
|
|
46
|
+
|
|
47
|
+
export function mapJoin(src, cb, rawOptions = {}) {
|
|
48
|
+
/**
|
|
49
|
+
* Strategy overview:
|
|
50
|
+
* - Initial render: collect a stable array of mapper outputs, cache
|
|
51
|
+
* per-index slot metadata, and create joiner `Ref`s for the gaps between
|
|
52
|
+
* items so the rendered list can be mutated without recreating siblings.
|
|
53
|
+
* - List mutations: diff the incoming iterable against slot metadata, reuse
|
|
54
|
+
* entries with matching keys, recycle disposers past the change point, and
|
|
55
|
+
* prune caches while recalculating first/last non-empty indices so we only
|
|
56
|
+
* edit joiners that are affected by the change.
|
|
57
|
+
* - Content transitions: each child renders inside a custom context that
|
|
58
|
+
* exposes an `isEmpty` flag; when a child gains or loses content we update
|
|
59
|
+
* neighbor joiner refs so separators appear and disappear reactively
|
|
60
|
+
* without re-running the mapper.
|
|
61
|
+
*/
|
|
62
|
+
const options = {
|
|
63
|
+
...defaultJoinOptions,
|
|
64
|
+
...rawOptions
|
|
65
|
+
};
|
|
66
|
+
const ender = options.ender === true ? options.joiner : options.ender || undefined;
|
|
67
|
+
const itemSlots = [];
|
|
68
|
+
function getOrCreateSlot(index) {
|
|
69
|
+
let slot = itemSlots[index];
|
|
70
|
+
if (!slot) {
|
|
71
|
+
slot = {
|
|
72
|
+
isEmpty: ref(true)
|
|
73
|
+
};
|
|
74
|
+
itemSlots[index] = slot;
|
|
75
|
+
}
|
|
76
|
+
return slot;
|
|
77
|
+
}
|
|
78
|
+
const firstNonEmptyIndex = ref(-1, {
|
|
79
|
+
isInfrastructure: true
|
|
80
|
+
});
|
|
81
|
+
const lastNonEmptyIndex = ref(-1, {
|
|
82
|
+
isInfrastructure: true
|
|
83
|
+
});
|
|
84
|
+
const mapped = [];
|
|
85
|
+
let enderMemo;
|
|
86
|
+
|
|
87
|
+
// Creates a ref placeholder that stores the joiner node for a boundary.
|
|
88
|
+
function createJoinerRef() {
|
|
89
|
+
return ref(undefined, {
|
|
90
|
+
isInfrastructure: true
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Makes sure we have a joiner ref at the requested boundary index.
|
|
95
|
+
function ensureJoinerSlot(index) {
|
|
96
|
+
if (index === 0 || options.joiner === undefined) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
const slot = getOrCreateSlot(index);
|
|
100
|
+
slot.joiner ??= createJoinerRef();
|
|
101
|
+
mapped[index * 2 - 1] = slot.joiner;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Sets the joiner ref based on whether neighboring children have content.
|
|
105
|
+
function updateJoinerForIndex(index) {
|
|
106
|
+
if (index === 0 || options.joiner === undefined) {
|
|
107
|
+
return;
|
|
108
|
+
}
|
|
109
|
+
const slot = itemSlots[index];
|
|
110
|
+
const joinerRef = slot?.joiner;
|
|
111
|
+
if (!joinerRef) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (index >= itemSlots.length) {
|
|
115
|
+
if (joinerRef.value !== undefined) {
|
|
116
|
+
joinerRef.value = undefined;
|
|
117
|
+
}
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
const previousNonEmpty = findPrevNonEmpty(index - 1);
|
|
121
|
+
const rightSlot = itemSlots[index];
|
|
122
|
+
const shouldShow = previousNonEmpty !== -1 && rightSlot !== undefined && rightSlot.isEmpty.value === false;
|
|
123
|
+
const newValue = shouldShow ? options.joiner : undefined;
|
|
124
|
+
if (joinerRef.value !== newValue) {
|
|
125
|
+
joinerRef.value = newValue;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// Finds the next child that is not empty starting at or after `from`.
|
|
130
|
+
function findNextNonEmpty(from) {
|
|
131
|
+
for (let i = Math.max(from, 0); i < itemSlots.length; i++) {
|
|
132
|
+
const slot = itemSlots[i];
|
|
133
|
+
if (slot && slot.isEmpty.value === false) {
|
|
134
|
+
return i;
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return -1;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
// Finds the previous child that is not empty before or at `from`.
|
|
141
|
+
function findPrevNonEmpty(from) {
|
|
142
|
+
for (let i = Math.min(from, itemSlots.length - 1); i >= 0; i--) {
|
|
143
|
+
const slot = itemSlots[i];
|
|
144
|
+
if (slot && slot.isEmpty.value === false) {
|
|
145
|
+
return i;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
return -1;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// Recomputes the cached first and last non-empty indices after changes.
|
|
152
|
+
function recalculateNonEmptyBounds() {
|
|
153
|
+
const first = findNextNonEmpty(0);
|
|
154
|
+
firstNonEmptyIndex.value = first;
|
|
155
|
+
lastNonEmptyIndex.value = first === -1 ? -1 : findPrevNonEmpty(itemSlots.length - 1);
|
|
156
|
+
refreshJoiners();
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
// Syncs all joiner refs after the structural shape of the list updates.
|
|
160
|
+
function refreshJoiners() {
|
|
161
|
+
if (options.joiner === undefined) {
|
|
162
|
+
return;
|
|
163
|
+
}
|
|
164
|
+
for (let i = 1; i < itemSlots.length; i++) {
|
|
165
|
+
const slot = itemSlots[i];
|
|
166
|
+
if (slot?.joiner) {
|
|
167
|
+
updateJoinerForIndex(i);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
// Applies empty-state bookkeeping for an item and updates neighbor joiners.
|
|
173
|
+
function applyEmptyStateChange(index, isEmpty, wasEmpty) {
|
|
174
|
+
if (wasEmpty === isEmpty) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
if (isEmpty) {
|
|
178
|
+
if (firstNonEmptyIndex.value === index) {
|
|
179
|
+
firstNonEmptyIndex.value = findNextNonEmpty(index + 1);
|
|
180
|
+
}
|
|
181
|
+
if (lastNonEmptyIndex.value === index) {
|
|
182
|
+
lastNonEmptyIndex.value = findPrevNonEmpty(index - 1);
|
|
183
|
+
}
|
|
184
|
+
} else {
|
|
185
|
+
if (firstNonEmptyIndex.value === -1 || index < firstNonEmptyIndex.value) {
|
|
186
|
+
firstNonEmptyIndex.value = index;
|
|
187
|
+
}
|
|
188
|
+
if (index > lastNonEmptyIndex.value) {
|
|
189
|
+
lastNonEmptyIndex.value = index;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
updateJoinerForIndex(index);
|
|
193
|
+
updateJoinerForIndex(index + 1);
|
|
194
|
+
}
|
|
195
|
+
let previousItemsLen = 0;
|
|
196
|
+
onCleanup(() => {
|
|
197
|
+
for (const slot of itemSlots) {
|
|
198
|
+
slot.disposer?.();
|
|
199
|
+
}
|
|
200
|
+
});
|
|
201
|
+
return () => {
|
|
202
|
+
const itemsSource = src();
|
|
203
|
+
// need to unpack reactives for branding checks
|
|
204
|
+
const itemsSourceRaw = toRaw(itemsSource);
|
|
205
|
+
let items = Array.isArray(itemsSourceRaw) ? itemsSource : [...itemsSource];
|
|
206
|
+
if (options.skipFalsy) {
|
|
207
|
+
items = items.filter(item => item !== null && item !== undefined && typeof item !== "boolean");
|
|
208
|
+
}
|
|
209
|
+
const context = getContext();
|
|
210
|
+
// this is important to access here in reactive context so we are
|
|
211
|
+
// notified of new items from reactives.
|
|
212
|
+
const itemsLen = items.length;
|
|
213
|
+
const compare = getCompareFunction(itemsSourceRaw);
|
|
214
|
+
const mapper = getMapperFunction(itemsSourceRaw);
|
|
215
|
+
return untrack(() => {
|
|
216
|
+
let startIndex = 0;
|
|
217
|
+
for (; startIndex < itemsLen && startIndex < itemSlots.length; startIndex++) {
|
|
218
|
+
const slot = itemSlots[startIndex];
|
|
219
|
+
if (!slot || !compare(items[startIndex], slot.item)) {
|
|
220
|
+
break;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
if (startIndex > 0 && startIndex < itemsLen) {
|
|
224
|
+
// need to update the previous joiner (might be ender or absent)
|
|
225
|
+
ensureJoinerSlot(startIndex);
|
|
226
|
+
}
|
|
227
|
+
for (; startIndex < itemsLen; startIndex++) {
|
|
228
|
+
const slot = getOrCreateSlot(startIndex);
|
|
229
|
+
slot.item = items[startIndex];
|
|
230
|
+
const emptyFlag = slot.isEmpty;
|
|
231
|
+
if (slot.disposer) {
|
|
232
|
+
if (emptyFlag.value === false) {
|
|
233
|
+
if (context) {
|
|
234
|
+
context.childrenWithContent--;
|
|
235
|
+
}
|
|
236
|
+
emptyFlag.value = true;
|
|
237
|
+
applyEmptyStateChange(startIndex, true, false);
|
|
238
|
+
}
|
|
239
|
+
slot.disposer();
|
|
240
|
+
}
|
|
241
|
+
const cleanupIndex = startIndex;
|
|
242
|
+
mapped[startIndex * 2] = createCustomContext(cb => {
|
|
243
|
+
return root(disposer => {
|
|
244
|
+
const nestedContext = getContext();
|
|
245
|
+
const isEmptyFlag = ensureIsEmpty(nestedContext);
|
|
246
|
+
slot.disposer = disposer;
|
|
247
|
+
disposer();
|
|
248
|
+
effect(prev => {
|
|
249
|
+
const isEmpty = isEmptyFlag.value;
|
|
250
|
+
return untrack(() => {
|
|
251
|
+
if (slot.isEmpty.value !== isEmpty) {
|
|
252
|
+
slot.isEmpty.value = isEmpty;
|
|
253
|
+
}
|
|
254
|
+
const wasEmpty = prev ?? true;
|
|
255
|
+
applyEmptyStateChange(cleanupIndex, isEmpty, wasEmpty);
|
|
256
|
+
return isEmpty;
|
|
257
|
+
});
|
|
258
|
+
}, undefined, {
|
|
259
|
+
debug: {
|
|
260
|
+
name: `list:slotEmpty:${cleanupIndex}`,
|
|
261
|
+
type: "list"
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
cb(mapper(items[cleanupIndex], cleanupIndex));
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
ensureJoinerSlot(startIndex);
|
|
268
|
+
}
|
|
269
|
+
mapped.length = startIndex * 2;
|
|
270
|
+
if (mapped.length > 0) {
|
|
271
|
+
if (ender !== undefined) {
|
|
272
|
+
enderMemo ??= memo(() => lastNonEmptyIndex.value === -1 ? undefined : ender);
|
|
273
|
+
mapped[mapped.length - 1] = enderMemo;
|
|
274
|
+
} else {
|
|
275
|
+
mapped[mapped.length - 1] = undefined;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
for (; startIndex < previousItemsLen; startIndex++) {
|
|
279
|
+
const slot = itemSlots[startIndex];
|
|
280
|
+
if (!slot) {
|
|
281
|
+
continue;
|
|
282
|
+
}
|
|
283
|
+
slot.disposer?.();
|
|
284
|
+
if (slot.isEmpty.value === false) {
|
|
285
|
+
if (context) {
|
|
286
|
+
context.childrenWithContent--;
|
|
287
|
+
}
|
|
288
|
+
slot.isEmpty.value = true;
|
|
289
|
+
applyEmptyStateChange(startIndex, true, false);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
if (previousItemsLen !== itemsLen) {
|
|
293
|
+
itemSlots.length = itemsLen;
|
|
294
|
+
recalculateNonEmptyBounds();
|
|
295
|
+
}
|
|
296
|
+
previousItemsLen = itemsLen;
|
|
297
|
+
return mapped;
|
|
298
|
+
});
|
|
299
|
+
};
|
|
300
|
+
|
|
301
|
+
// Chooses the equality function based on the collection type in use.
|
|
302
|
+
function getCompareFunction(itemsSource) {
|
|
303
|
+
return Array.isArray(itemsSource) || isIterable(itemsSource) ? compareArray : compareMap;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
// Selects the mapper signature to match the collection type in use.
|
|
307
|
+
function getMapperFunction(itemsSource) {
|
|
308
|
+
return Array.isArray(itemsSource) || itemsSource instanceof Set || isIterable(itemsSource) ? mapArray : mapMap;
|
|
309
|
+
}
|
|
310
|
+
// Strict equality check for array-like collections.
|
|
311
|
+
function compareArray(elem1, elem2) {
|
|
312
|
+
return elem1 === elem2;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
// Equality check for map entries that includes key and value.
|
|
316
|
+
function compareMap(record1, record2) {
|
|
317
|
+
return record1[0] === record2[0] && record1[1] === record2[1];
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
// Invokes the user mapper for array-like collections.
|
|
321
|
+
function mapArray(item, index) {
|
|
322
|
+
return cb(item, index);
|
|
323
|
+
}
|
|
324
|
+
|
|
325
|
+
// Invokes the user mapper for map collections.
|
|
326
|
+
function mapMap(item, index) {
|
|
327
|
+
return cb(item[0], item[1], index);
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
// Runtime type guard for iterables returned from custom sources.
|
|
331
|
+
function isIterable(x) {
|
|
332
|
+
return typeof x.next === "function";
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Place a joiner between each element of an array or iterator. Defaults to
|
|
338
|
+
* joining with a newline.
|
|
339
|
+
*
|
|
340
|
+
* @see mapJoin for mapping before joining.
|
|
341
|
+
* @returns The joined array
|
|
342
|
+
*/
|
|
343
|
+
export function join(src, options = {}) {
|
|
344
|
+
const mergedOptions = {
|
|
345
|
+
...defaultJoinOptions,
|
|
346
|
+
...options
|
|
347
|
+
};
|
|
348
|
+
const joined = [];
|
|
349
|
+
const ender = mergedOptions.ender === true ? mergedOptions.joiner : mergedOptions.ender;
|
|
350
|
+
src = Array.from(src);
|
|
351
|
+
for (const [index, item] of src.entries()) {
|
|
352
|
+
joined.push(item);
|
|
353
|
+
if (index !== src.length - 1) {
|
|
354
|
+
joined.push(mergedOptions.joiner);
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
if (src.length > 0 && ender) {
|
|
358
|
+
joined.push(ender);
|
|
359
|
+
}
|
|
360
|
+
return joined;
|
|
361
|
+
}
|
|
362
|
+
/**
|
|
363
|
+
* Returns a memo which is a list of all the provided children.
|
|
364
|
+
* If you want this as an array, see {@link childrenArray}.
|
|
365
|
+
*/
|
|
366
|
+
export function children(fn, options = {}) {
|
|
367
|
+
return memo(() => {
|
|
368
|
+
const children = fn();
|
|
369
|
+
if (options.preserveFragments && Array.isArray(children)) {
|
|
370
|
+
return children.map(collectChildren);
|
|
371
|
+
} else {
|
|
372
|
+
return collectChildren(children);
|
|
373
|
+
}
|
|
374
|
+
});
|
|
375
|
+
function collectChildren(children) {
|
|
376
|
+
if (Array.isArray(children)) {
|
|
377
|
+
return children.map(collectChildren).flat();
|
|
378
|
+
} else if (typeof children === "function" && !isComponentCreator(children)) {
|
|
379
|
+
return collectChildren(children());
|
|
380
|
+
} else {
|
|
381
|
+
return children;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
export function childrenArray(fn, options) {
|
|
386
|
+
const c = children(fn, options)();
|
|
387
|
+
if (Array.isArray(c)) {
|
|
388
|
+
return c;
|
|
389
|
+
} else if (c === undefined) {
|
|
390
|
+
return [];
|
|
391
|
+
} else {
|
|
392
|
+
return [c];
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
export function findKeyedChild(children, tag) {
|
|
396
|
+
for (const child of children) {
|
|
397
|
+
if (isKeyedChild(child) && child.tag === tag) {
|
|
398
|
+
return child;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
return null;
|
|
402
|
+
}
|
|
403
|
+
export function findKeyedChildren(children, tag) {
|
|
404
|
+
const keyedChildren = [];
|
|
405
|
+
for (const child of children) {
|
|
406
|
+
if (isKeyedChild(child) && child.tag === tag) {
|
|
407
|
+
keyedChildren.push(child);
|
|
408
|
+
}
|
|
409
|
+
}
|
|
410
|
+
return keyedChildren;
|
|
411
|
+
}
|
|
412
|
+
export function findUnkeyedChildren(children) {
|
|
413
|
+
return children.filter(child => !isKeyedChild(child));
|
|
414
|
+
}
|
|
415
|
+
export function isKeyedChild(child) {
|
|
416
|
+
return isComponentCreator(child) && !!child.tag;
|
|
417
|
+
}
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* A visitor to collect the output from {@link render}. Used by
|
|
421
|
+
* {@link traverseOutput}.
|
|
422
|
+
*/
|
|
423
|
+
|
|
424
|
+
/**
|
|
425
|
+
* Traverse the output from {@link render} and call the visitor for each
|
|
426
|
+
* file and directory within it.
|
|
427
|
+
*
|
|
428
|
+
* @param sourceDirectory - The root directory to traverse.
|
|
429
|
+
* @param visitor - The visitor to call for each file and directory.
|
|
430
|
+
*/
|
|
431
|
+
export async function traverseOutput(sourceDirectory, visitor) {
|
|
432
|
+
await visitor.visitDirectory(sourceDirectory);
|
|
433
|
+
for (const item of sourceDirectory.contents) {
|
|
434
|
+
if (item.kind === "directory") {
|
|
435
|
+
await traverseOutput(item, visitor);
|
|
436
|
+
} else {
|
|
437
|
+
await visitor.visitFile(item);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
/**
|
|
443
|
+
* Convert a list of props to a joiner and ender for use in {@link (mapJoin:1)}.
|
|
444
|
+
*/
|
|
445
|
+
export function baseListPropsToMapJoinArgs(props) {
|
|
446
|
+
let joiner, punctuation;
|
|
447
|
+
if ("joiner" in props) {
|
|
448
|
+
joiner = props.joiner;
|
|
449
|
+
} else {
|
|
450
|
+
punctuation = props.comma ? "," : props.semicolon ? ";" : "";
|
|
451
|
+
joiner = [punctuation, _$memo(() => _$memo(() => !!props.softline)() ? _$createIntrinsic("sbr", {}, {
|
|
452
|
+
fileName: import.meta.url,
|
|
453
|
+
lineNumber: 600,
|
|
454
|
+
columnNumber: 11
|
|
455
|
+
}) : _$memo(() => !!props.hardline)() ? _$createIntrinsic("hbr", {}, {
|
|
456
|
+
fileName: import.meta.url,
|
|
457
|
+
lineNumber: 602,
|
|
458
|
+
columnNumber: 11
|
|
459
|
+
}) : _$memo(() => !!props.literalline)() ? _$createIntrinsic("lbr", {}, {
|
|
460
|
+
fileName: import.meta.url,
|
|
461
|
+
lineNumber: 604,
|
|
462
|
+
columnNumber: 11
|
|
463
|
+
}) : _$memo(() => !!props.line)() ? _$createIntrinsic("br", {}, {
|
|
464
|
+
fileName: import.meta.url,
|
|
465
|
+
lineNumber: 606,
|
|
466
|
+
columnNumber: 11
|
|
467
|
+
}) : _$memo(() => !!props.space)() ? [" "] : _$memo(() => !!props.doubleHardline)() ? [_$createIntrinsic("hbr", {}, {
|
|
468
|
+
fileName: import.meta.url,
|
|
469
|
+
lineNumber: 611,
|
|
470
|
+
columnNumber: 13
|
|
471
|
+
}), _$createIntrinsic("hbr", {}, {
|
|
472
|
+
fileName: import.meta.url,
|
|
473
|
+
lineNumber: 612,
|
|
474
|
+
columnNumber: 13
|
|
475
|
+
})] : _$createIntrinsic("hbr", {}, {
|
|
476
|
+
fileName: import.meta.url,
|
|
477
|
+
lineNumber: 614,
|
|
478
|
+
columnNumber: 11
|
|
479
|
+
}), false, "_$memo(\u2026)(\u2026) ? \u2026")];
|
|
480
|
+
}
|
|
481
|
+
const ender = "ender" in props ? props.ender : props.enderPunctuation ? punctuation : undefined;
|
|
482
|
+
return {
|
|
483
|
+
joiner,
|
|
484
|
+
ender
|
|
485
|
+
};
|
|
486
|
+
}
|
|
487
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["toRaw","createCustomContext","effect","ensureIsEmpty","getContext","memo","onCleanup","ref","root","untrack","isComponentCreator","defaultJoinOptions","joiner","ender","mapJoin","src","cb","rawOptions","options","undefined","itemSlots","getOrCreateSlot","index","slot","isEmpty","firstNonEmptyIndex","isInfrastructure","lastNonEmptyIndex","mapped","enderMemo","createJoinerRef","ensureJoinerSlot","updateJoinerForIndex","joinerRef","length","value","previousNonEmpty","findPrevNonEmpty","rightSlot","shouldShow","newValue","findNextNonEmpty","from","i","Math","max","min","recalculateNonEmptyBounds","first","refreshJoiners","applyEmptyStateChange","wasEmpty","previousItemsLen","disposer","itemsSource","itemsSourceRaw","items","Array","isArray","skipFalsy","filter","item","context","itemsLen","compare","getCompareFunction","mapper","getMapperFunction","startIndex","emptyFlag","childrenWithContent","cleanupIndex","nestedContext","isEmptyFlag","prev","debug","name","type","isIterable","compareArray","compareMap","Set","mapArray","mapMap","elem1","elem2","record1","record2","x","next","join","mergedOptions","joined","entries","push","children","fn","preserveFragments","map","collectChildren","flat","childrenArray","c","findKeyedChild","tag","child","isKeyedChild","findKeyedChildren","keyedChildren","findUnkeyedChildren","traverseOutput","sourceDirectory","visitor","visitDirectory","contents","kind","visitFile","baseListPropsToMapJoinArgs","props","punctuation","comma","semicolon","_$memo","softline","_$createIntrinsic","fileName","import","meta","url","lineNumber","columnNumber","hardline","literalline","line","space","doubleHardline","enderPunctuation"],"sources":["../../../src/utils.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { dirname, relative, resolve } from "pathe";
|
|
2
|
+
import { AlloyHost } from "./host/alloy-host.js";
|
|
3
|
+
import { traverseOutput } from "./utils.js";
|
|
4
|
+
/**
|
|
5
|
+
* Write the output from {@link render} to the file system.
|
|
6
|
+
*
|
|
7
|
+
*/
|
|
8
|
+
export async function writeOutput(output, basePath = "") {
|
|
9
|
+
return await traverseOutput(output, {
|
|
10
|
+
async visitDirectory(directory) {
|
|
11
|
+
const path = resolve(basePath, directory.path);
|
|
12
|
+
if (await AlloyHost.exists(path)) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
// eslint-disable-next-line no-console
|
|
16
|
+
console.log("create", relative(process.cwd(), path));
|
|
17
|
+
await AlloyHost.mkdir(path);
|
|
18
|
+
},
|
|
19
|
+
async visitFile(file) {
|
|
20
|
+
if ("contents" in file) {
|
|
21
|
+
const path = resolve(basePath, file.path);
|
|
22
|
+
if (await AlloyHost.exists(path)) {
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
24
|
+
console.log("overwrite", relative(process.cwd(), path));
|
|
25
|
+
} else {
|
|
26
|
+
// eslint-disable-next-line no-console
|
|
27
|
+
console.log("create", relative(process.cwd(), path));
|
|
28
|
+
}
|
|
29
|
+
await AlloyHost.write(path, file.contents);
|
|
30
|
+
} else {
|
|
31
|
+
// copy file
|
|
32
|
+
const source = resolve(basePath, file.sourcePath);
|
|
33
|
+
const target = resolve(basePath, file.path);
|
|
34
|
+
if (await AlloyHost.exists(target)) {
|
|
35
|
+
// eslint-disable-next-line no-console
|
|
36
|
+
console.log("copy over", relative(process.cwd(), target));
|
|
37
|
+
} else {
|
|
38
|
+
// eslint-disable-next-line no-console
|
|
39
|
+
console.log("copy", relative(process.cwd(), target));
|
|
40
|
+
}
|
|
41
|
+
await AlloyHost.mkdir(dirname(target));
|
|
42
|
+
await AlloyHost.write(target, AlloyHost.read(source).stream());
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=write-output.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["dirname","relative","resolve","AlloyHost","traverseOutput","writeOutput","output","basePath","visitDirectory","directory","path","exists","console","log","process","cwd","mkdir","visitFile","file","write","contents","source","sourcePath","target","read","stream"],"sources":["../../../src/write-output.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,OAAO,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AAClD,SAASC,SAAS,QAAQ,sBAAsB;AAEhD,SAASC,cAAc,QAAQ,YAAY;AAC3C;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BC,MAAuB,EACvBC,QAAgB,GAAG,EAAE,EACrB;EACA,OAAO,MAAMH,cAAc,CAACE,MAAM,EAAE;IAClC,MAAME,cAAcA,CAACC,SAAS,EAAE;MAC9B,MAAMC,IAAI,GAAGR,OAAO,CAACK,QAAQ,EAAEE,SAAS,CAACC,IAAI,CAAC;MAC9C,IAAI,MAAMP,SAAS,CAACQ,MAAM,CAACD,IAAI,CAAC,EAAE;QAChC;MACF;MACA;MACAE,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEZ,QAAQ,CAACa,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEL,IAAI,CAAC,CAAC;MACpD,MAAMP,SAAS,CAACa,KAAK,CAACN,IAAI,CAAC;IAC7B,CAAC;IACD,MAAMO,SAASA,CAACC,IAAI,EAAE;MACpB,IAAI,UAAU,IAAIA,IAAI,EAAE;QACtB,MAAMR,IAAI,GAAGR,OAAO,CAACK,QAAQ,EAAEW,IAAI,CAACR,IAAI,CAAC;QACzC,IAAI,MAAMP,SAAS,CAACQ,MAAM,CAACD,IAAI,CAAC,EAAE;UAChC;UACAE,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEZ,QAAQ,CAACa,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEL,IAAI,CAAC,CAAC;QACzD,CAAC,MAAM;UACL;UACAE,OAAO,CAACC,GAAG,CAAC,QAAQ,EAAEZ,QAAQ,CAACa,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEL,IAAI,CAAC,CAAC;QACtD;QAEA,MAAMP,SAAS,CAACgB,KAAK,CAACT,IAAI,EAAEQ,IAAI,CAACE,QAAQ,CAAC;MAC5C,CAAC,MAAM;QACL;QACA,MAAMC,MAAM,GAAGnB,OAAO,CAACK,QAAQ,EAAEW,IAAI,CAACI,UAAU,CAAC;QACjD,MAAMC,MAAM,GAAGrB,OAAO,CAACK,QAAQ,EAAEW,IAAI,CAACR,IAAI,CAAC;QAC3C,IAAI,MAAMP,SAAS,CAACQ,MAAM,CAACY,MAAM,CAAC,EAAE;UAClC;UACAX,OAAO,CAACC,GAAG,CAAC,WAAW,EAAEZ,QAAQ,CAACa,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEQ,MAAM,CAAC,CAAC;QAC3D,CAAC,MAAM;UACL;UACAX,OAAO,CAACC,GAAG,CAAC,MAAM,EAAEZ,QAAQ,CAACa,OAAO,CAACC,GAAG,CAAC,CAAC,EAAEQ,MAAM,CAAC,CAAC;QACtD;QACA,MAAMpB,SAAS,CAACa,KAAK,CAAChB,OAAO,CAACuB,MAAM,CAAC,CAAC;QACtC,MAAMpB,SAAS,CAACgB,KAAK,CAACI,MAAM,EAAEpB,SAAS,CAACqB,IAAI,CAACH,MAAM,CAAC,CAACI,MAAM,CAAC,CAAC,CAAC;MAChE;IACF;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { execSync } from "child_process";
|
|
2
|
+
import { existsSync, mkdirSync, rmSync, writeFileSync } from "fs";
|
|
3
|
+
import { join } from "path";
|
|
4
|
+
import { afterAll, beforeAll, describe, expect, it } from "vitest";
|
|
5
|
+
const testDir = join(__dirname, ".temp", "vite-test-project");
|
|
6
|
+
describe("Browser Build Test", () => {
|
|
7
|
+
beforeAll(() => {
|
|
8
|
+
// Cleanup previous runs
|
|
9
|
+
if (existsSync(testDir)) {
|
|
10
|
+
rmSync(testDir, {
|
|
11
|
+
recursive: true,
|
|
12
|
+
force: true
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
// Create a temporary Vite project
|
|
17
|
+
mkdirSync(testDir, {
|
|
18
|
+
recursive: true
|
|
19
|
+
});
|
|
20
|
+
execSync("npm init -y", {
|
|
21
|
+
cwd: testDir
|
|
22
|
+
});
|
|
23
|
+
execSync("npm install vite", {
|
|
24
|
+
cwd: testDir
|
|
25
|
+
});
|
|
26
|
+
execSync("npm install ../../..", {
|
|
27
|
+
cwd: testDir
|
|
28
|
+
});
|
|
29
|
+
|
|
30
|
+
// Create a minimal Vite app
|
|
31
|
+
writeFileSync(join(testDir, "index.js"), `
|
|
32
|
+
import { writeOutput } from "@alloy-js/core";
|
|
33
|
+
console.log("Alloy-js core imported successfully!", writeOutput);
|
|
34
|
+
`);
|
|
35
|
+
writeFileSync(join(testDir, "vite.config.js"), `
|
|
36
|
+
import { defineConfig } from "vite";
|
|
37
|
+
|
|
38
|
+
export default defineConfig({
|
|
39
|
+
build: {
|
|
40
|
+
outDir: "dist",
|
|
41
|
+
target: "esnext",
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
`);
|
|
45
|
+
|
|
46
|
+
// Create an index.html file
|
|
47
|
+
writeFileSync(join(testDir, "index.html"), `
|
|
48
|
+
<!DOCTYPE html>
|
|
49
|
+
<html lang="en">
|
|
50
|
+
<head>
|
|
51
|
+
<meta charset="UTF-8">
|
|
52
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
53
|
+
<title>Vite Test</title>
|
|
54
|
+
</head>
|
|
55
|
+
<body>
|
|
56
|
+
<script type="module" src="/index.js"></script>
|
|
57
|
+
</body>
|
|
58
|
+
</html>
|
|
59
|
+
`);
|
|
60
|
+
writeFileSync(join(testDir, "package.json"), JSON.stringify({
|
|
61
|
+
type: "module",
|
|
62
|
+
scripts: {
|
|
63
|
+
build: "vite build"
|
|
64
|
+
}
|
|
65
|
+
}, null, 2));
|
|
66
|
+
}, 30_000);
|
|
67
|
+
it("Vite should build successfully", () => {
|
|
68
|
+
// Run Vite build process and wait for completion
|
|
69
|
+
expect(() => {
|
|
70
|
+
execSync("npm run build", {
|
|
71
|
+
cwd: testDir,
|
|
72
|
+
stdio: "inherit"
|
|
73
|
+
});
|
|
74
|
+
}).not.toThrow();
|
|
75
|
+
}, 10000);
|
|
76
|
+
afterAll(() => {
|
|
77
|
+
// Ensure testDir exists before attempting to remove it
|
|
78
|
+
if (existsSync(testDir)) {
|
|
79
|
+
rmSync(testDir, {
|
|
80
|
+
recursive: true,
|
|
81
|
+
force: true
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
});
|
|
86
|
+
//# sourceMappingURL=browser-build.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["execSync","existsSync","mkdirSync","rmSync","writeFileSync","join","afterAll","beforeAll","describe","expect","it","testDir","__dirname","recursive","force","cwd","JSON","stringify","type","scripts","build","stdio","not","toThrow"],"sources":["../../../test/browser-build.test.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,QAAQ,QAAQ,eAAe;AACxC,SAASC,UAAU,EAAEC,SAAS,EAAEC,MAAM,EAAEC,aAAa,QAAQ,IAAI;AACjE,SAASC,IAAI,QAAQ,MAAM;AAC3B,SAASC,QAAQ,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AAElE,MAAMC,OAAO,GAAGN,IAAI,CAACO,SAAS,EAAE,OAAO,EAAE,mBAAmB,CAAC;AAE7DJ,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnCD,SAAS,CAAC,MAAM;IACd;IACA,IAAIN,UAAU,CAACU,OAAO,CAAC,EAAE;MACvBR,MAAM,CAACQ,OAAO,EAAE;QAAEE,SAAS,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAK,CAAC,CAAC;IACnD;;IAEA;IACAZ,SAAS,CAACS,OAAO,EAAE;MAAEE,SAAS,EAAE;IAAK,CAAC,CAAC;IAEvCb,QAAQ,CAAC,aAAa,EAAE;MAAEe,GAAG,EAAEJ;IAAQ,CAAC,CAAC;IACzCX,QAAQ,CAAC,kBAAkB,EAAE;MAAEe,GAAG,EAAEJ;IAAQ,CAAC,CAAC;IAC9CX,QAAQ,CAAC,sBAAsB,EAAE;MAAEe,GAAG,EAAEJ;IAAQ,CAAC,CAAC;;IAElD;IACAP,aAAa,CACXC,IAAI,CAACM,OAAO,EAAE,UAAU,CAAC,EACzB;AACN;AACA;AACA,OACI,CAAC;IAEDP,aAAa,CACXC,IAAI,CAACM,OAAO,EAAE,gBAAgB,CAAC,EAC/B;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OACI,CAAC;;IAED;IACAP,aAAa,CACXC,IAAI,CAACM,OAAO,EAAE,YAAY,CAAC,EAC3B;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OACI,CAAC;IAEDP,aAAa,CACXC,IAAI,CAACM,OAAO,EAAE,cAAc,CAAC,EAC7BK,IAAI,CAACC,SAAS,CACZ;MACEC,IAAI,EAAE,QAAQ;MACdC,OAAO,EAAE;QACPC,KAAK,EAAE;MACT;IACF,CAAC,EACD,IAAI,EACJ,CACF,CACF,CAAC;EACH,CAAC,EAAE,MAAM,CAAC;EAEVV,EAAE,CAAC,gCAAgC,EAAE,MAAM;IACzC;IACAD,MAAM,CAAC,MAAM;MACXT,QAAQ,CAAC,eAAe,EAAE;QAAEe,GAAG,EAAEJ,OAAO;QAAEU,KAAK,EAAE;MAAU,CAAC,CAAC;IAC/D,CAAC,CAAC,CAACC,GAAG,CAACC,OAAO,CAAC,CAAC;EAClB,CAAC,EAAE,KAAK,CAAC;EAETjB,QAAQ,CAAC,MAAM;IACb;IACA,IAAIL,UAAU,CAACU,OAAO,CAAC,EAAE;MACvBR,MAAM,CAACQ,OAAO,EAAE;QAAEE,SAAS,EAAE,IAAI;QAAEC,KAAK,EAAE;MAAK,CAAC,CAAC;IACnD;EACF,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|