@alloy-js/core 0.24.0-dev.2 → 0.24.0-dev.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/dev/src/components/AccessExpression.test.js +30 -38
- package/dist/dev/src/components/AccessExpression.test.js.map +1 -1
- package/dist/dev/src/components/Output.js +3 -2
- package/dist/dev/src/components/Output.js.map +1 -1
- package/dist/dev/src/components/SourceFile.js.map +1 -1
- package/dist/dev/src/content-slot.test.js +16 -18
- package/dist/dev/src/content-slot.test.js.map +1 -1
- package/dist/dev/src/context.js +30 -3
- package/dist/dev/src/context.js.map +1 -1
- package/dist/dev/src/debug/diagnostics.test.js +1 -1
- package/dist/dev/src/debug/diagnostics.test.js.map +1 -1
- package/dist/dev/src/debug/effects.test.js +1 -1
- package/dist/dev/src/debug/effects.test.js.map +1 -1
- package/dist/dev/src/debug/file-streaming.js +103 -0
- package/dist/dev/src/debug/file-streaming.js.map +1 -0
- package/dist/dev/src/debug/files.test.js +4 -5
- package/dist/dev/src/debug/files.test.js.map +1 -1
- package/dist/dev/src/debug/index.js +4 -6
- package/dist/dev/src/debug/index.js.map +1 -1
- package/dist/dev/src/debug/message-format.test.js +50 -52
- package/dist/dev/src/debug/message-format.test.js.map +1 -1
- package/dist/dev/src/debug/render-tree-orphans.test.js +13 -23
- package/dist/dev/src/debug/render-tree-orphans.test.js.map +1 -1
- package/dist/dev/src/debug/render.js +529 -352
- package/dist/dev/src/debug/render.js.map +1 -1
- package/dist/dev/src/debug/render.test.js +171 -92
- package/dist/dev/src/debug/render.test.js.map +1 -1
- package/dist/dev/src/debug/trace-writer.js +127 -15
- package/dist/dev/src/debug/trace-writer.js.map +1 -1
- package/dist/dev/src/debug/trace.js +0 -36
- package/dist/dev/src/debug/trace.js.map +1 -1
- package/dist/dev/src/devtools/devtools-server.js +55 -32
- package/dist/dev/src/devtools/devtools-server.js.map +1 -1
- package/dist/dev/src/devtools-entry.browser.js.map +1 -1
- package/dist/dev/src/devtools-entry.js.map +1 -1
- package/dist/dev/src/diagnostics.js +19 -1
- package/dist/dev/src/diagnostics.js.map +1 -1
- package/dist/dev/src/index.js +5 -2
- package/dist/dev/src/index.js.map +1 -1
- package/dist/dev/src/jsx-runtime.js +14 -8
- package/dist/dev/src/jsx-runtime.js.map +1 -1
- package/dist/dev/src/output-types.js +2 -0
- package/dist/dev/src/output-types.js.map +1 -0
- package/dist/dev/src/reactivity.js +155 -13
- package/dist/dev/src/reactivity.js.map +1 -1
- package/dist/dev/src/render/get-string-width.js +61 -0
- package/dist/dev/src/render/get-string-width.js.map +1 -0
- package/dist/dev/src/render/index.js +2 -0
- package/dist/dev/src/render/index.js.map +1 -0
- package/dist/dev/src/render/node-context.js +7 -0
- package/dist/dev/src/render/node-context.js.map +1 -0
- package/dist/dev/src/render/node.js +386 -0
- package/dist/dev/src/render/node.js.map +1 -0
- package/dist/dev/src/render/printer-support.js +180 -0
- package/dist/dev/src/render/printer-support.js.map +1 -0
- package/dist/dev/src/render/printer.js +797 -0
- package/dist/dev/src/render/printer.js.map +1 -0
- package/dist/dev/src/render-error.js +79 -0
- package/dist/dev/src/render-error.js.map +1 -0
- package/dist/dev/src/render-output.js +209 -0
- package/dist/dev/src/render-output.js.map +1 -0
- package/dist/dev/src/runtime/create-intrinsic.js +53 -0
- package/dist/dev/src/runtime/create-intrinsic.js.map +1 -0
- package/dist/dev/src/runtime/fragment.js +21 -0
- package/dist/dev/src/runtime/fragment.js.map +1 -0
- package/dist/dev/src/runtime/index.js +13 -0
- package/dist/dev/src/runtime/index.js.map +1 -0
- package/dist/dev/src/runtime/insert.js +453 -0
- package/dist/dev/src/runtime/insert.js.map +1 -0
- package/dist/dev/src/runtime/intrinsic.js +1 -11
- package/dist/dev/src/runtime/intrinsic.js.map +1 -1
- package/dist/dev/src/scheduler.js +38 -14
- package/dist/dev/src/scheduler.js.map +1 -1
- package/dist/dev/src/stc.js +2 -0
- package/dist/dev/src/stc.js.map +1 -1
- package/dist/dev/src/sti.js +1 -1
- package/dist/dev/src/sti.js.map +1 -1
- package/dist/dev/src/symbols/symbol-slot.test.js +5 -5
- package/dist/dev/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/dev/src/test-render.js +78 -0
- package/dist/dev/src/test-render.js.map +1 -0
- package/dist/dev/src/utils.js +47 -35
- package/dist/dev/src/utils.js.map +1 -1
- package/dist/dev/test/babel-e2e.test.js +218 -0
- package/dist/dev/test/babel-e2e.test.js.map +1 -0
- package/dist/dev/test/children.test.js +9 -11
- package/dist/dev/test/children.test.js.map +1 -1
- package/dist/dev/test/components/append-file.test.js +26 -27
- package/dist/dev/test/components/append-file.test.js.map +1 -1
- package/dist/dev/test/components/block.test.js +9 -11
- package/dist/dev/test/components/block.test.js.map +1 -1
- package/dist/dev/test/components/copy-file.test.js +1 -2
- package/dist/dev/test/components/copy-file.test.js.map +1 -1
- package/dist/dev/test/components/declaration.test.js +2 -2
- package/dist/dev/test/components/declaration.test.js.map +1 -1
- package/dist/dev/test/components/list.test.js +41 -43
- package/dist/dev/test/components/list.test.js.map +1 -1
- package/dist/dev/test/components/prose.test.js +4 -5
- package/dist/dev/test/components/prose.test.js.map +1 -1
- package/dist/dev/test/components/reference-or-content.test.js +32 -33
- package/dist/dev/test/components/reference-or-content.test.js.map +1 -1
- package/dist/dev/test/components/source-file.test.js +8 -7
- package/dist/dev/test/components/source-file.test.js.map +1 -1
- package/dist/dev/test/components/template-file.test.js +16 -17
- package/dist/dev/test/components/template-file.test.js.map +1 -1
- package/dist/dev/test/components/update-file.test.js +11 -12
- package/dist/dev/test/components/update-file.test.js.map +1 -1
- package/dist/dev/test/components/wrap.test.js +6 -8
- package/dist/dev/test/components/wrap.test.js.map +1 -1
- package/dist/dev/test/control-flow/for.test.js +58 -42
- package/dist/dev/test/control-flow/for.test.js.map +1 -1
- package/dist/dev/test/control-flow/match.test.js +15 -17
- package/dist/dev/test/control-flow/match.test.js.map +1 -1
- package/dist/dev/test/control-flow/show.test.js +5 -8
- package/dist/dev/test/control-flow/show.test.js.map +1 -1
- package/dist/dev/test/lazy-isempty.test.js +29 -31
- package/dist/dev/test/lazy-isempty.test.js.map +1 -1
- package/dist/dev/test/name-policy.test.js +2 -3
- package/dist/dev/test/name-policy.test.js.map +1 -1
- package/dist/dev/test/node.test.js +80 -0
- package/dist/dev/test/node.test.js.map +1 -0
- package/dist/dev/test/output-e2e.test.js +194 -0
- package/dist/dev/test/output-e2e.test.js.map +1 -0
- package/dist/dev/test/reactivity/circular-reactives.test.js +9 -9
- package/dist/dev/test/reactivity/circular-reactives.test.js.map +1 -1
- package/dist/dev/test/reactivity/cleanup.test.js +5 -6
- package/dist/dev/test/reactivity/cleanup.test.js.map +1 -1
- package/dist/dev/test/reactivity/ref-rendering.test.js +15 -15
- package/dist/dev/test/reactivity/ref-rendering.test.js.map +1 -1
- package/dist/dev/test/reactivity/test.test.js +18 -18
- package/dist/dev/test/reactivity/test.test.js.map +1 -1
- package/dist/dev/test/rendering/basic.test.js +18 -19
- package/dist/dev/test/rendering/basic.test.js.map +1 -1
- package/dist/dev/test/rendering/code.test.js +2 -3
- package/dist/dev/test/rendering/code.test.js.map +1 -1
- package/dist/dev/test/rendering/formatting.test.js +115 -121
- package/dist/dev/test/rendering/formatting.test.js.map +1 -1
- package/dist/dev/test/rendering/indent.test.js +23 -24
- package/dist/dev/test/rendering/indent.test.js.map +1 -1
- package/dist/dev/test/rendering/memoization.test.js +9 -5
- package/dist/dev/test/rendering/memoization.test.js.map +1 -1
- package/dist/dev/test/rendering/print-render-stack.test.js +20 -21
- package/dist/dev/test/rendering/print-render-stack.test.js.map +1 -1
- package/dist/dev/test/rendering/refkeys.test.js +1 -2
- package/dist/dev/test/rendering/refkeys.test.js.map +1 -1
- package/dist/dev/test/rendering/render-output-diagnostics.test.js +102 -0
- package/dist/dev/test/rendering/render-output-diagnostics.test.js.map +1 -0
- package/dist/dev/test/runtime.test.js +385 -0
- package/dist/dev/test/runtime.test.js.map +1 -0
- package/dist/dev/test/stc.test.js +0 -1
- package/dist/dev/test/stc.test.js.map +1 -1
- package/dist/dev/test/tree-test-utils.js +16 -0
- package/dist/dev/test/tree-test-utils.js.map +1 -0
- package/dist/dev/test/utils.test.js +34 -33
- package/dist/dev/test/utils.test.js.map +1 -1
- package/dist/dev/test/vitest.setup.js +2 -0
- package/dist/dev/test/vitest.setup.js.map +1 -0
- package/dist/dev/testing/devtools-utils.js +1 -1
- package/dist/dev/testing/devtools-utils.js.map +1 -1
- package/dist/dev/testing/extend-expect.js +30 -34
- package/dist/dev/testing/extend-expect.js.map +1 -1
- package/dist/dev/testing/render.js +7 -17
- package/dist/dev/testing/render.js.map +1 -1
- package/dist/devtools/index.html +17 -17
- package/dist/src/components/AccessExpression.test.d.ts +1 -1
- package/dist/src/components/AccessExpression.test.d.ts.map +1 -1
- package/dist/src/components/AccessExpression.test.js +5 -13
- package/dist/src/components/AccessExpression.test.js.map +1 -1
- package/dist/src/components/Output.d.ts +1 -1
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js +2 -1
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/ReferenceOrContent.d.ts +1 -1
- package/dist/src/components/ReferenceOrContent.d.ts.map +1 -1
- package/dist/src/components/SourceFile.d.ts +1 -1
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/content-slot.test.d.ts +1 -1
- package/dist/src/content-slot.test.d.ts.map +1 -1
- package/dist/src/content-slot.test.js +8 -10
- package/dist/src/content-slot.test.js.map +1 -1
- package/dist/src/context/format-options.d.ts +1 -1
- package/dist/src/context/format-options.d.ts.map +1 -1
- package/dist/src/context.d.ts +9 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +30 -3
- package/dist/src/context.js.map +1 -1
- package/dist/src/debug/diagnostics.test.js +1 -1
- package/dist/src/debug/diagnostics.test.js.map +1 -1
- package/dist/src/debug/effects.test.js +1 -1
- package/dist/src/debug/effects.test.js.map +1 -1
- package/dist/src/debug/file-streaming.d.ts +22 -0
- package/dist/src/debug/file-streaming.d.ts.map +1 -0
- package/dist/src/debug/file-streaming.js +103 -0
- package/dist/src/debug/file-streaming.js.map +1 -0
- package/dist/src/debug/files.test.js +4 -5
- package/dist/src/debug/files.test.js.map +1 -1
- package/dist/src/debug/index.d.ts +5 -7
- package/dist/src/debug/index.d.ts.map +1 -1
- package/dist/src/debug/index.js +4 -6
- package/dist/src/debug/index.js.map +1 -1
- package/dist/src/debug/message-format.test.js +16 -18
- package/dist/src/debug/message-format.test.js.map +1 -1
- package/dist/src/debug/render-tree-orphans.test.js +8 -18
- package/dist/src/debug/render-tree-orphans.test.js.map +1 -1
- package/dist/src/debug/render.d.ts +71 -21
- package/dist/src/debug/render.d.ts.map +1 -1
- package/dist/src/debug/render.js +529 -352
- package/dist/src/debug/render.js.map +1 -1
- package/dist/src/debug/render.test.js +137 -74
- package/dist/src/debug/render.test.js.map +1 -1
- package/dist/src/debug/trace-writer.d.ts +6 -1
- package/dist/src/debug/trace-writer.d.ts.map +1 -1
- package/dist/src/debug/trace-writer.js +127 -15
- package/dist/src/debug/trace-writer.js.map +1 -1
- package/dist/src/debug/trace.d.ts +0 -36
- package/dist/src/debug/trace.d.ts.map +1 -1
- package/dist/src/debug/trace.js +0 -36
- package/dist/src/debug/trace.js.map +1 -1
- package/dist/src/devtools/devtools-protocol.d.ts +34 -1
- package/dist/src/devtools/devtools-protocol.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.d.ts.map +1 -1
- package/dist/src/devtools/devtools-server.js +55 -32
- package/dist/src/devtools/devtools-server.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 +4 -0
- package/dist/src/diagnostics.d.ts.map +1 -1
- package/dist/src/diagnostics.js +19 -1
- package/dist/src/diagnostics.js.map +1 -1
- package/dist/src/index.d.ts +5 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +13 -4
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +14 -8
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/output-types.d.ts +40 -0
- package/dist/src/output-types.d.ts.map +1 -0
- package/dist/src/output-types.js +2 -0
- package/dist/src/output-types.js.map +1 -0
- package/dist/src/reactivity.d.ts +49 -18
- package/dist/src/reactivity.d.ts.map +1 -1
- package/dist/src/reactivity.js +155 -13
- package/dist/src/reactivity.js.map +1 -1
- package/dist/src/render/get-string-width.d.ts +19 -0
- package/dist/src/render/get-string-width.d.ts.map +1 -0
- package/dist/src/render/get-string-width.js +61 -0
- package/dist/src/render/get-string-width.js.map +1 -0
- package/dist/src/render/index.d.ts +2 -0
- package/dist/src/render/index.d.ts.map +1 -0
- package/dist/src/render/index.js +2 -0
- package/dist/src/render/index.js.map +1 -0
- package/dist/src/render/node-context.d.ts +5 -0
- package/dist/src/render/node-context.d.ts.map +1 -0
- package/dist/src/render/node-context.js +7 -0
- package/dist/src/render/node-context.js.map +1 -0
- package/dist/src/render/node.d.ts +146 -0
- package/dist/src/render/node.d.ts.map +1 -0
- package/dist/src/render/node.js +386 -0
- package/dist/src/render/node.js.map +1 -0
- package/dist/src/render/printer-support.d.ts +50 -0
- package/dist/src/render/printer-support.d.ts.map +1 -0
- package/dist/src/render/printer-support.js +180 -0
- package/dist/src/render/printer-support.js.map +1 -0
- package/dist/src/render/printer.d.ts +35 -0
- package/dist/src/render/printer.d.ts.map +1 -0
- package/dist/src/render/printer.js +797 -0
- package/dist/src/render/printer.js.map +1 -0
- package/dist/src/render-error.d.ts +4 -0
- package/dist/src/render-error.d.ts.map +1 -0
- package/dist/src/render-error.js +79 -0
- package/dist/src/render-error.js.map +1 -0
- package/dist/src/render-output.d.ts +42 -0
- package/dist/src/render-output.d.ts.map +1 -0
- package/dist/src/render-output.js +209 -0
- package/dist/src/render-output.js.map +1 -0
- package/dist/src/runtime/component.d.ts +2 -2
- package/dist/src/runtime/component.d.ts.map +1 -1
- package/dist/src/runtime/create-intrinsic.d.ts +28 -0
- package/dist/src/runtime/create-intrinsic.d.ts.map +1 -0
- package/dist/src/runtime/create-intrinsic.js +53 -0
- package/dist/src/runtime/create-intrinsic.js.map +1 -0
- package/dist/src/runtime/fragment.d.ts +16 -0
- package/dist/src/runtime/fragment.d.ts.map +1 -0
- package/dist/src/runtime/fragment.js +21 -0
- package/dist/src/runtime/fragment.js.map +1 -0
- package/dist/src/runtime/index.d.ts +12 -0
- package/dist/src/runtime/index.d.ts.map +1 -0
- package/dist/src/runtime/index.js +13 -0
- package/dist/src/runtime/index.js.map +1 -0
- package/dist/src/runtime/insert.d.ts +29 -0
- package/dist/src/runtime/insert.d.ts.map +1 -0
- package/dist/src/runtime/insert.js +453 -0
- package/dist/src/runtime/insert.js.map +1 -0
- package/dist/src/runtime/intrinsic.d.ts +12 -29
- package/dist/src/runtime/intrinsic.d.ts.map +1 -1
- package/dist/src/runtime/intrinsic.js +1 -11
- package/dist/src/runtime/intrinsic.js.map +1 -1
- package/dist/src/scheduler.d.ts.map +1 -1
- package/dist/src/scheduler.js +38 -14
- package/dist/src/scheduler.js.map +1 -1
- package/dist/src/stc.d.ts.map +1 -1
- package/dist/src/stc.js +2 -0
- package/dist/src/stc.js.map +1 -1
- package/dist/src/sti.d.ts +7 -6
- package/dist/src/sti.d.ts.map +1 -1
- package/dist/src/sti.js +1 -1
- package/dist/src/sti.js.map +1 -1
- package/dist/src/symbols/symbol-slot.test.js +5 -5
- package/dist/src/symbols/symbol-slot.test.js.map +1 -1
- package/dist/src/test-render.d.ts +31 -0
- package/dist/src/test-render.d.ts.map +1 -0
- package/dist/src/test-render.js +78 -0
- package/dist/src/test-render.js.map +1 -0
- package/dist/src/utils.d.ts +1 -1
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +40 -28
- package/dist/src/utils.js.map +1 -1
- package/dist/src/write-output.d.ts +1 -1
- package/dist/src/write-output.d.ts.map +1 -1
- package/dist/test/babel-e2e.test.d.ts +13 -0
- package/dist/test/babel-e2e.test.d.ts.map +1 -0
- package/dist/test/babel-e2e.test.js +218 -0
- package/dist/test/babel-e2e.test.js.map +1 -0
- package/dist/test/children.test.js +5 -7
- package/dist/test/children.test.js.map +1 -1
- package/dist/test/components/append-file.test.d.ts +1 -1
- package/dist/test/components/append-file.test.d.ts.map +1 -1
- package/dist/test/components/append-file.test.js +0 -1
- package/dist/test/components/append-file.test.js.map +1 -1
- package/dist/test/components/block.test.d.ts +1 -1
- package/dist/test/components/block.test.d.ts.map +1 -1
- package/dist/test/components/block.test.js +4 -6
- package/dist/test/components/block.test.js.map +1 -1
- package/dist/test/components/copy-file.test.d.ts +1 -1
- package/dist/test/components/copy-file.test.d.ts.map +1 -1
- package/dist/test/components/copy-file.test.js +1 -2
- package/dist/test/components/copy-file.test.js.map +1 -1
- package/dist/test/components/declaration.test.js +2 -2
- package/dist/test/components/declaration.test.js.map +1 -1
- package/dist/test/components/list.test.d.ts +1 -1
- package/dist/test/components/list.test.d.ts.map +1 -1
- package/dist/test/components/list.test.js +20 -22
- package/dist/test/components/list.test.js.map +1 -1
- package/dist/test/components/prose.test.d.ts +1 -1
- package/dist/test/components/prose.test.d.ts.map +1 -1
- package/dist/test/components/prose.test.js +0 -1
- package/dist/test/components/prose.test.js.map +1 -1
- package/dist/test/components/reference-or-content.test.js +8 -9
- package/dist/test/components/reference-or-content.test.js.map +1 -1
- package/dist/test/components/source-file.test.d.ts +1 -1
- package/dist/test/components/source-file.test.d.ts.map +1 -1
- package/dist/test/components/source-file.test.js +5 -4
- package/dist/test/components/source-file.test.js.map +1 -1
- package/dist/test/components/template-file.test.d.ts +1 -1
- package/dist/test/components/template-file.test.d.ts.map +1 -1
- package/dist/test/components/template-file.test.js +0 -1
- package/dist/test/components/template-file.test.js.map +1 -1
- package/dist/test/components/update-file.test.d.ts +1 -1
- package/dist/test/components/update-file.test.d.ts.map +1 -1
- package/dist/test/components/update-file.test.js +1 -2
- package/dist/test/components/update-file.test.js.map +1 -1
- package/dist/test/components/wrap.test.d.ts +1 -1
- package/dist/test/components/wrap.test.d.ts.map +1 -1
- package/dist/test/components/wrap.test.js +3 -5
- package/dist/test/components/wrap.test.js.map +1 -1
- package/dist/test/control-flow/for.test.d.ts +1 -1
- package/dist/test/control-flow/for.test.d.ts.map +1 -1
- package/dist/test/control-flow/for.test.js +40 -24
- package/dist/test/control-flow/for.test.js.map +1 -1
- package/dist/test/control-flow/match.test.d.ts +1 -1
- package/dist/test/control-flow/match.test.d.ts.map +1 -1
- package/dist/test/control-flow/match.test.js +4 -6
- package/dist/test/control-flow/match.test.js.map +1 -1
- package/dist/test/control-flow/show.test.d.ts +1 -1
- package/dist/test/control-flow/show.test.d.ts.map +1 -1
- package/dist/test/control-flow/show.test.js +3 -6
- package/dist/test/control-flow/show.test.js.map +1 -1
- package/dist/test/lazy-isempty.test.d.ts +1 -1
- package/dist/test/lazy-isempty.test.d.ts.map +1 -1
- package/dist/test/lazy-isempty.test.js +16 -18
- package/dist/test/lazy-isempty.test.js.map +1 -1
- package/dist/test/name-policy.test.d.ts +1 -1
- package/dist/test/name-policy.test.d.ts.map +1 -1
- package/dist/test/name-policy.test.js +0 -1
- package/dist/test/name-policy.test.js.map +1 -1
- package/dist/test/node.test.d.ts +2 -0
- package/dist/test/node.test.d.ts.map +1 -0
- package/dist/test/node.test.js +80 -0
- package/dist/test/node.test.js.map +1 -0
- package/dist/test/output-e2e.test.d.ts +13 -0
- package/dist/test/output-e2e.test.d.ts.map +1 -0
- package/dist/test/output-e2e.test.js +194 -0
- package/dist/test/output-e2e.test.js.map +1 -0
- package/dist/test/reactivity/circular-reactives.test.js +6 -6
- package/dist/test/reactivity/circular-reactives.test.js.map +1 -1
- package/dist/test/reactivity/cleanup.test.js +2 -3
- package/dist/test/reactivity/cleanup.test.js.map +1 -1
- package/dist/test/reactivity/ref-rendering.test.js +15 -15
- package/dist/test/reactivity/ref-rendering.test.js.map +1 -1
- package/dist/test/reactivity/test.test.js +15 -15
- package/dist/test/reactivity/test.test.js.map +1 -1
- package/dist/test/rendering/basic.test.d.ts +1 -1
- package/dist/test/rendering/basic.test.d.ts.map +1 -1
- package/dist/test/rendering/basic.test.js +0 -1
- package/dist/test/rendering/basic.test.js.map +1 -1
- package/dist/test/rendering/code.test.d.ts +1 -1
- package/dist/test/rendering/code.test.d.ts.map +1 -1
- package/dist/test/rendering/code.test.js +0 -1
- package/dist/test/rendering/code.test.js.map +1 -1
- package/dist/test/rendering/formatting.test.d.ts +1 -1
- package/dist/test/rendering/formatting.test.d.ts.map +1 -1
- package/dist/test/rendering/formatting.test.js +17 -23
- package/dist/test/rendering/formatting.test.js.map +1 -1
- package/dist/test/rendering/indent.test.d.ts +1 -1
- package/dist/test/rendering/indent.test.d.ts.map +1 -1
- package/dist/test/rendering/indent.test.js +0 -1
- package/dist/test/rendering/indent.test.js.map +1 -1
- package/dist/test/rendering/memoization.test.js +7 -3
- package/dist/test/rendering/memoization.test.js.map +1 -1
- package/dist/test/rendering/print-render-stack.test.d.ts +1 -1
- package/dist/test/rendering/print-render-stack.test.d.ts.map +1 -1
- package/dist/test/rendering/print-render-stack.test.js +0 -1
- package/dist/test/rendering/print-render-stack.test.js.map +1 -1
- package/dist/test/rendering/refkeys.test.d.ts +1 -1
- package/dist/test/rendering/refkeys.test.d.ts.map +1 -1
- package/dist/test/rendering/refkeys.test.js +0 -1
- package/dist/test/rendering/refkeys.test.js.map +1 -1
- package/dist/test/rendering/render-output-diagnostics.test.d.ts +2 -0
- package/dist/test/rendering/render-output-diagnostics.test.d.ts.map +1 -0
- package/dist/test/rendering/render-output-diagnostics.test.js +82 -0
- package/dist/test/rendering/render-output-diagnostics.test.js.map +1 -0
- package/dist/test/runtime.test.d.ts +11 -0
- package/dist/test/runtime.test.d.ts.map +1 -0
- package/dist/test/runtime.test.js +385 -0
- package/dist/test/runtime.test.js.map +1 -0
- package/dist/test/stc.test.d.ts +1 -1
- package/dist/test/stc.test.d.ts.map +1 -1
- package/dist/test/stc.test.js +0 -1
- package/dist/test/stc.test.js.map +1 -1
- package/dist/test/tree-test-utils.d.ts +3 -0
- package/dist/test/tree-test-utils.d.ts.map +1 -0
- package/dist/test/tree-test-utils.js +16 -0
- package/dist/test/tree-test-utils.js.map +1 -0
- package/dist/test/utils.test.d.ts +1 -1
- package/dist/test/utils.test.d.ts.map +1 -1
- package/dist/test/utils.test.js +12 -11
- package/dist/test/utils.test.js.map +1 -1
- package/dist/test/vitest.setup.d.ts +2 -0
- package/dist/test/vitest.setup.d.ts.map +1 -0
- package/dist/test/vitest.setup.js +2 -0
- package/dist/test/vitest.setup.js.map +1 -0
- package/dist/testing/devtools-utils.d.ts.map +1 -1
- package/dist/testing/devtools-utils.js +1 -1
- package/dist/testing/devtools-utils.js.map +1 -1
- package/dist/testing/extend-expect.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +30 -34
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/render.d.ts +7 -9
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +7 -17
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/api/components/Output.md +0 -3
- package/docs/api/components/SourceFile.md +0 -3
- package/docs/api/functions/createComment.md +18 -0
- package/docs/api/functions/createElement.md +19 -0
- package/docs/api/functions/createFragment.md +17 -0
- package/docs/api/functions/createTextNode.md +18 -0
- package/docs/api/functions/emitDiagnosticForTree.md +19 -0
- package/docs/api/functions/ensureIsEmpty.md +1 -1
- package/docs/api/functions/getContextForNode.md +18 -0
- package/docs/api/functions/getContextForRenderNode.md +4 -4
- package/docs/api/functions/getDiagnosticsForTree.md +7 -5
- package/docs/api/functions/getRegisteredDiagnosticsForTree.md +18 -0
- package/docs/api/functions/index.md +17 -12
- package/docs/api/functions/isCustomContext.md +4 -4
- package/docs/api/functions/notifyContentState.md +6 -0
- package/docs/api/functions/printTree.md +6 -16
- package/docs/api/functions/registerDiagnosticsForTree.md +19 -0
- package/docs/api/functions/render.md +1 -2
- package/docs/api/functions/renderAsync.md +1 -2
- package/docs/api/functions/renderTree.md +8 -5
- package/docs/api/functions/reportDiagnosticsForTree.md +18 -0
- package/docs/api/functions/runInContext.md +28 -0
- package/docs/api/functions/sourceFilesForTree.md +6 -16
- package/docs/api/index.md +3 -3
- package/docs/api/testing/functions/index.md +1 -1
- package/docs/api/testing/functions/renderToString.md +1 -1
- package/docs/api/types/AlloyNode.md +22 -0
- package/docs/api/types/Child.md +1 -1
- package/docs/api/types/CommentNode.md +15 -0
- package/docs/api/types/Context.md +13 -15
- package/docs/api/types/ElementNode.md +18 -0
- package/docs/api/types/FragmentNode.md +12 -0
- package/docs/api/types/Insertable.md +7 -0
- package/docs/api/types/NodeType.md +5 -0
- package/docs/api/types/OutputDirectory.md +0 -50
- package/docs/api/types/PrintTreeOptions.md +0 -1
- package/docs/api/types/RenderTreeOptions.md +7 -0
- package/docs/api/types/StiComponentCreator.md +4 -4
- package/docs/api/types/StiSignature.md +1 -1
- package/docs/api/types/TextNode.md +16 -0
- package/docs/api/types/index.md +10 -28
- package/docs/api/variables/COMMENT_NODE.md +5 -0
- package/docs/api/variables/ELEMENT_NODE.md +11 -0
- package/docs/api/variables/FRAGMENT_NODE.md +5 -0
- package/docs/api/variables/TEXT_NODE.md +5 -0
- package/docs/api/variables/index.md +4 -2
- package/docs/formatting.md +1 -1
- package/docs/rendering.md +4 -4
- package/package.json +6 -6
- package/src/components/AccessExpression.test.tsx +5 -13
- package/src/components/Output.tsx +2 -1
- package/src/components/SourceFile.tsx +1 -1
- package/src/content-slot.test.tsx +8 -10
- package/src/context/format-options.ts +1 -1
- package/src/context.ts +37 -4
- package/src/debug/diagnostics.test.tsx +1 -1
- package/src/debug/effects.test.tsx +1 -1
- package/src/debug/file-streaming.ts +115 -0
- package/src/debug/files.test.tsx +15 -11
- package/src/debug/index.ts +11 -11
- package/src/debug/message-format.test.tsx +32 -19
- package/src/debug/render-tree-orphans.test.tsx +10 -19
- package/src/debug/render.test.tsx +206 -78
- package/src/debug/render.ts +642 -495
- package/src/debug/trace-writer.ts +168 -14
- package/src/debug/trace.ts +0 -20
- package/src/devtools/devtools-protocol.ts +43 -0
- package/src/devtools/devtools-server.ts +57 -32
- package/src/devtools-entry.browser.ts +5 -0
- package/src/devtools-entry.ts +5 -0
- package/src/diagnostics.ts +31 -0
- package/src/index.ts +66 -2
- package/src/jsx-runtime.ts +16 -14
- package/src/output-types.ts +47 -0
- package/src/reactivity.ts +186 -40
- package/src/render/get-string-width.ts +201 -0
- package/src/render/index.ts +1 -0
- package/src/render/node-context.ts +14 -0
- package/src/render/node.ts +442 -0
- package/src/render/printer-support.ts +209 -0
- package/src/render/printer.ts +817 -0
- package/src/render-error.ts +98 -0
- package/src/render-output.ts +243 -0
- package/src/runtime/component.ts +2 -2
- package/src/runtime/create-intrinsic.ts +56 -0
- package/src/runtime/fragment.ts +22 -0
- package/src/runtime/index.ts +12 -0
- package/src/runtime/insert.ts +569 -0
- package/src/runtime/intrinsic.ts +14 -70
- package/src/scheduler.ts +40 -25
- package/src/stc.ts +3 -0
- package/src/sti.ts +17 -20
- package/src/symbols/symbol-slot.test.tsx +5 -5
- package/src/test-render.ts +103 -0
- package/src/utils.tsx +55 -37
- package/src/write-output.ts +1 -1
- package/temp/api-testing.json +390 -14
- package/temp/api.json +4320 -4144
- package/test/babel-e2e.test.ts +224 -0
- package/test/children.test.tsx +4 -7
- package/test/components/append-file.test.tsx +0 -1
- package/test/components/block.test.tsx +4 -6
- package/test/components/copy-file.test.tsx +2 -2
- package/test/components/declaration.test.tsx +2 -2
- package/test/components/list.test.tsx +20 -29
- package/test/components/prose.test.tsx +0 -1
- package/test/components/reference-or-content.test.tsx +8 -9
- package/test/components/source-file.test.tsx +4 -4
- package/test/components/template-file.test.tsx +0 -1
- package/test/components/update-file.test.tsx +1 -2
- package/test/components/wrap.test.tsx +3 -5
- package/test/control-flow/for.test.tsx +39 -31
- package/test/control-flow/match.test.tsx +4 -6
- package/test/control-flow/show.test.tsx +3 -6
- package/test/lazy-isempty.test.tsx +17 -19
- package/test/name-policy.test.tsx +0 -1
- package/test/node.test.ts +90 -0
- package/test/output-e2e.test.ts +198 -0
- package/test/reactivity/circular-reactives.test.tsx +6 -6
- package/test/reactivity/cleanup.test.tsx +2 -3
- package/test/reactivity/ref-rendering.test.tsx +15 -15
- package/test/reactivity/test.test.tsx +14 -14
- package/test/rendering/basic.test.tsx +0 -1
- package/test/rendering/code.test.tsx +0 -1
- package/test/rendering/formatting.test.tsx +21 -29
- package/test/rendering/indent.test.tsx +0 -1
- package/test/rendering/memoization.test.tsx +7 -3
- package/test/rendering/print-render-stack.test.tsx +0 -1
- package/test/rendering/refkeys.test.tsx +0 -1
- package/test/rendering/render-output-diagnostics.test.tsx +120 -0
- package/test/runtime.test.ts +448 -0
- package/test/stc.test.tsx +0 -1
- package/test/tree-test-utils.ts +23 -0
- package/test/utils.test.tsx +10 -9
- package/test/vitest.setup.ts +1 -0
- package/testing/devtools-utils.ts +2 -0
- package/testing/extend-expect.ts +32 -47
- package/testing/render.ts +17 -21
- package/vitest.config.ts +3 -0
- package/dist/dev/src/print-hook.js +0 -10
- package/dist/dev/src/print-hook.js.map +0 -1
- package/dist/dev/src/render.js +0 -872
- package/dist/dev/src/render.js.map +0 -1
- package/dist/src/print-hook.d.ts +0 -14
- package/dist/src/print-hook.d.ts.map +0 -1
- package/dist/src/print-hook.js +0 -10
- package/dist/src/print-hook.js.map +0 -1
- package/dist/src/render.d.ts +0 -155
- package/dist/src/render.d.ts.map +0 -1
- package/dist/src/render.js +0 -872
- package/dist/src/render.js.map +0 -1
- package/docs/api/functions/createIntrinsic.md +0 -19
- package/docs/api/functions/createRenderTreeHook.md +0 -19
- package/docs/api/functions/getElementCache.md +0 -17
- package/docs/api/functions/isIntrinsicElement.md +0 -18
- package/docs/api/functions/isPrintHook.md +0 -18
- package/docs/api/types/AlignIntrinsicElement.md +0 -5
- package/docs/api/types/BrIntrinsicElement.md +0 -5
- package/docs/api/types/BreakParentIntrinsicElement.md +0 -5
- package/docs/api/types/DedentIntrinsicElement.md +0 -5
- package/docs/api/types/DedentToRootIntrinsicElement.md +0 -5
- package/docs/api/types/ElementCache.md +0 -5
- package/docs/api/types/ElementCacheKey.md +0 -5
- package/docs/api/types/FillIntrinsicElement.md +0 -5
- package/docs/api/types/GroupIntrinsicElement.md +0 -5
- package/docs/api/types/HardlineIntrinsicElement.md +0 -5
- package/docs/api/types/HbrIntrinsicElement.md +0 -5
- package/docs/api/types/IfBreakIntrinsicElement.md +0 -5
- package/docs/api/types/IndentIfBreakIntrinsicElement.md +0 -5
- package/docs/api/types/IndentIntrinsicElement.md +0 -5
- package/docs/api/types/IntrinsicElement.md +0 -5
- package/docs/api/types/IntrinsicElementBase.md +0 -9
- package/docs/api/types/LbrIntrinsicElement.md +0 -5
- package/docs/api/types/LineIntrinsicElement.md +0 -5
- package/docs/api/types/LineSuffixBoundaryIntrinsicElement.md +0 -5
- package/docs/api/types/LineSuffixIntrinsicElement.md +0 -5
- package/docs/api/types/LiterallineIntrinsicElement.md +0 -5
- package/docs/api/types/MarkAsRootIntrinsicElement.md +0 -5
- package/docs/api/types/PrintHook.md +0 -10
- package/docs/api/types/RenderedTextTree.md +0 -5
- package/docs/api/types/SbrIntrinsicElement.md +0 -5
- package/docs/api/types/SoftlineIntrinsicElement.md +0 -5
- package/docs/api/variables/intrinsicElementKey.md +0 -5
- package/docs/api/variables/printHookTag.md +0 -7
- package/src/print-hook.ts +0 -22
- package/src/render.ts +0 -1154
package/dist/src/scheduler.js
CHANGED
|
@@ -2,8 +2,20 @@ import { debug } from "./debug/index.js";
|
|
|
2
2
|
import { beginTransaction, commitTransaction, insertEffectLifecycle, insertSchedulerFlush, insertSchedulerJob } from "./debug/trace-writer.js";
|
|
3
3
|
import { isTraceEnabled } from "./debug/trace.js";
|
|
4
4
|
import { getEffectDebugId } from "./reactivity.js";
|
|
5
|
-
|
|
6
|
-
|
|
5
|
+
// Dedup membership set + ordered drain array with a moving head pointer.
|
|
6
|
+
// Using `Set.values().next().value` per takeJob (the prior impl) allocated
|
|
7
|
+
// a fresh iterator + result object on every pop, which dominated CPU and
|
|
8
|
+
// GC for scenarios with many queued effects (~31% of CPU on render-imports).
|
|
9
|
+
// The hybrid below keeps O(1) dedup via the Set while making takeJob
|
|
10
|
+
// allocation-free in the steady state.
|
|
11
|
+
const inQueueSet = new Set();
|
|
12
|
+
const immediateArr = [];
|
|
13
|
+
let immediateHead = 0;
|
|
14
|
+
const queueArr = [];
|
|
15
|
+
let queueHead = 0;
|
|
16
|
+
function queueSize() {
|
|
17
|
+
return immediateArr.length - immediateHead + (queueArr.length - queueHead);
|
|
18
|
+
}
|
|
7
19
|
function isJobActive(job) {
|
|
8
20
|
// ReactiveEffect uses bit 0 (flags & 1) as the ACTIVE flag.
|
|
9
21
|
// Skip effects that were stopped after being queued.
|
|
@@ -51,15 +63,17 @@ export function queueJob(job, immediate = false) {
|
|
|
51
63
|
run: job
|
|
52
64
|
};
|
|
53
65
|
}
|
|
66
|
+
if (inQueueSet.has(job)) return;
|
|
67
|
+
inQueueSet.add(job);
|
|
54
68
|
if (immediate) {
|
|
55
|
-
|
|
69
|
+
immediateArr.push(job);
|
|
56
70
|
} else {
|
|
57
|
-
|
|
71
|
+
queueArr.push(job);
|
|
58
72
|
}
|
|
59
73
|
if (isTraceEnabled()) {
|
|
60
74
|
const effectId = getEffectDebugId(job);
|
|
61
75
|
if (effectId !== undefined) {
|
|
62
|
-
insertSchedulerJob("queue", effectId, immediate,
|
|
76
|
+
insertSchedulerJob("queue", effectId, immediate, queueSize());
|
|
63
77
|
}
|
|
64
78
|
}
|
|
65
79
|
if (resolveJobSignal) {
|
|
@@ -88,7 +102,7 @@ export function flushJobs() {
|
|
|
88
102
|
if (isTraceEnabled()) {
|
|
89
103
|
const effectId = getEffectDebugId(job);
|
|
90
104
|
if (effectId !== undefined) {
|
|
91
|
-
insertSchedulerJob("run", effectId, false,
|
|
105
|
+
insertSchedulerJob("run", effectId, false, queueSize());
|
|
92
106
|
}
|
|
93
107
|
}
|
|
94
108
|
if (!isJobActive(job)) {
|
|
@@ -200,16 +214,26 @@ export async function flushJobsAsync() {
|
|
|
200
214
|
debug.render.flushJobsComplete();
|
|
201
215
|
}
|
|
202
216
|
function takeJob() {
|
|
203
|
-
if (
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
217
|
+
if (immediateHead < immediateArr.length) {
|
|
218
|
+
const job = immediateArr[immediateHead];
|
|
219
|
+
immediateArr[immediateHead] = undefined; // release ref for GC
|
|
220
|
+
immediateHead++;
|
|
221
|
+
inQueueSet.delete(job);
|
|
222
|
+
if (immediateHead === immediateArr.length) {
|
|
223
|
+
immediateArr.length = 0;
|
|
224
|
+
immediateHead = 0;
|
|
225
|
+
}
|
|
207
226
|
return job;
|
|
208
227
|
}
|
|
209
|
-
if (
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
228
|
+
if (queueHead < queueArr.length) {
|
|
229
|
+
const job = queueArr[queueHead];
|
|
230
|
+
queueArr[queueHead] = undefined;
|
|
231
|
+
queueHead++;
|
|
232
|
+
inQueueSet.delete(job);
|
|
233
|
+
if (queueHead === queueArr.length) {
|
|
234
|
+
queueArr.length = 0;
|
|
235
|
+
queueHead = 0;
|
|
236
|
+
}
|
|
213
237
|
return job;
|
|
214
238
|
}
|
|
215
239
|
return null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["debug","beginTransaction","commitTransaction","insertEffectLifecycle","insertSchedulerFlush","insertSchedulerJob","isTraceEnabled","getEffectDebugId","
|
|
1
|
+
{"version":3,"names":["debug","beginTransaction","commitTransaction","insertEffectLifecycle","insertSchedulerFlush","insertSchedulerJob","isTraceEnabled","getEffectDebugId","inQueueSet","Set","immediateArr","immediateHead","queueArr","queueHead","queueSize","length","isJobActive","job","flags","undefined","pendingPromises","waitForSignalPromise","resolveWaitForSignal","jobSignalPromise","resolveJobSignal","lastTriggerRef","Map","setLastTriggerRef","effectDebugId","refId","set","scheduler","immediate","defaultScheduler","queueJob","run","has","add","push","effectId","trackPromise","promise","finally","delete","flushJobs","jobCount","takeJob","triggerRefId","get","size","Error","render","flushJobsComplete","waitForSignal","Promise","resolve","signalSchedulerWait","isWaitingForSignal","flushJobsAsync","race","allSettled","Array","from"],"sources":["../../src/scheduler.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/src/stc.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stc.d.ts","sourceRoot":"","sources":["../../src/stc.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"stc.d.ts","sourceRoot":"","sources":["../../src/stc.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,MAAM,oBAAoB,CAAC,CAAC,SAAS,MAAM,IAC/C,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,GAAG,CAAA;CAAE,GAC1B,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAClD,CAAC,CAAC;AAEN,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,EAAE,IAAI,CACvC,GAAG,IAAI,EAAE,OAAO,SAAS,CAAC,GAAG,EAAE,GAC7B,EAAE,SAAS,IAAI,CAAC,CAAC,EAAE,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAClE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAAC,KAC/B,mBAAmB,CAAC,CAAC,CAAC,CAAC;AAE5B,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,GAAG;IACzD,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvB,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,gBAAgB,CAAC,CAAC,CAAC,CAAC;IACvB,QAAQ,CAAC,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;CACxD,CAAC;AAEF,wBAAgB,GAAG,CAAC,CAAC,SAAS,EAAE,EAC9B,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAChC,YAAY,CAAC,CAAC,CAAC,CAyCjB"}
|
package/dist/src/stc.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { code, text } from "./code.js";
|
|
2
|
+
import { _registerStcImpl } from "./context.js";
|
|
2
3
|
export function stc(Component) {
|
|
3
4
|
return (...args) => {
|
|
4
5
|
const fn = () => Component(args[0]);
|
|
@@ -37,4 +38,5 @@ export function stc(Component) {
|
|
|
37
38
|
return fn;
|
|
38
39
|
};
|
|
39
40
|
}
|
|
41
|
+
_registerStcImpl(stc);
|
|
40
42
|
//# sourceMappingURL=stc.js.map
|
package/dist/src/stc.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["code","text","stc","Component","args","fn","component","props","template","substitutions","propsWithChildren","children"],"sources":["../../src/stc.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,WAAW;
|
|
1
|
+
{"version":3,"names":["code","text","_registerStcImpl","stc","Component","args","fn","component","props","template","substitutions","propsWithChildren","children"],"sources":["../../src/stc.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,WAAW;AACtC,SAASC,gBAAgB,QAAQ,cAAc;AA8B/C,OAAO,SAASC,GAAGA,CACjBC,SAAiC,EAChB;EACjB,OAAO,CAAC,GAAGC,IAAI,KAAK;IAClB,MAAMC,EAA0B,GAAIA,CAAA,KAAMF,SAAS,CAACC,IAAI,CAAC,CAAC,CAAM,CAAS;IACzEC,EAAE,CAACC,SAAS,GAAGH,SAAS;IACxBE,EAAE,CAACE,KAAK,GAAGH,IAAI,CAAC,CAAC,CAAO;IACxBC,EAAE,CAACN,IAAI,GAAG,CAACS,QAAQ,EAAE,GAAGC,aAAa,KAA0B;MAC7D,MAAMC,iBAAiB,GAAG;QACxB,IAAIN,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBO,QAAQ,EAAEZ,IAAI,CAACS,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,MAAMJ,EAAE,GAAGA,CAAA,KAAMF,SAAS,CAACO,iBAAwB,CAAC;MACpDL,EAAE,CAACC,SAAS,GAAGH,SAAS;MACxBE,EAAE,CAACE,KAAK,GAAGH,IAAI,CAAC,CAAC,CAAO;MACxB,OAAOC,EAAE;IACX,CAAC;IACDA,EAAE,CAACL,IAAI,GAAG,CAACQ,QAAQ,EAAE,GAAGC,aAAa,KAAK;MACxC,MAAMC,iBAAiB,GAAG;QACxB,IAAIN,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBO,QAAQ,EAAEX,IAAI,CAACQ,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,MAAMJ,EAAE,GAAGA,CAAA,KAAMF,SAAS,CAACO,iBAAwB,CAAC;MACpDL,EAAE,CAACC,SAAS,GAAGH,SAAS;MACxBE,EAAE,CAACE,KAAK,GAAGH,IAAI,CAAC,CAAC,CAAO;MACxB,OAAOC,EAAE;IACX,CAAC;IACDA,EAAE,CAACM,QAAQ,GAAG,CAAC,GAAGA,QAAoB,KAA0B;MAC9D,MAAMD,iBAAiB,GAAG;QACxB,IAAIN,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBO;MACF,CAAC;MAED,MAAMN,EAAE,GAAGA,CAAA,KAAMF,SAAS,CAACO,iBAAwB,CAAC;MACpDL,EAAE,CAACC,SAAS,GAAGH,SAAS;MACxBE,EAAE,CAACE,KAAK,GAAGH,IAAI,CAAC,CAAC,CAAO;MACxB,OAAOC,EAAE;IACX,CAAC;IAED,OAAOA,EAAE;EACX,CAAC;AACH;AAEAJ,gBAAgB,CAACC,GAAG,CAAC","ignoreList":[]}
|
package/dist/src/sti.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import type { ElementNode } from "./render/node.js";
|
|
1
2
|
import { Children } from "./runtime/component.js";
|
|
2
|
-
import {
|
|
3
|
+
import { IntrinsicElements } from "./runtime/intrinsic.js";
|
|
3
4
|
export type StiSignature<T extends keyof IntrinsicElements> = (...args: unknown extends T ? [] : {} extends Omit<IntrinsicElements[T], "children"> ? [
|
|
4
5
|
props?: IntrinsicElements[T]
|
|
5
|
-
] : [props: IntrinsicElements[T]]) => StiComponentCreator
|
|
6
|
-
export type StiComponentCreator
|
|
7
|
-
code(template: TemplateStringsArray, ...substitutions: Children[]): () =>
|
|
8
|
-
text(template: TemplateStringsArray, ...substitutions: Children[]): () =>
|
|
9
|
-
children(...children: Children[]): () =>
|
|
6
|
+
] : [props: IntrinsicElements[T]]) => StiComponentCreator;
|
|
7
|
+
export type StiComponentCreator = (() => ElementNode) & {
|
|
8
|
+
code(template: TemplateStringsArray, ...substitutions: Children[]): () => ElementNode;
|
|
9
|
+
text(template: TemplateStringsArray, ...substitutions: Children[]): () => ElementNode;
|
|
10
|
+
children(...children: Children[]): () => ElementNode;
|
|
10
11
|
};
|
|
11
12
|
export declare function sti<T extends keyof IntrinsicElements>(name: T): StiSignature<T>;
|
|
12
13
|
//# sourceMappingURL=sti.d.ts.map
|
package/dist/src/sti.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sti.d.ts","sourceRoot":"","sources":["../../src/sti.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"sti.d.ts","sourceRoot":"","sources":["../../src/sti.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAElD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,iBAAiB,IAAI,CAC5D,GAAG,IAAI,EAAE,OAAO,SAAS,CAAC,GAAG,EAAE,GAC7B,EAAE,SAAS,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GACjD;IAAC,KAAK,CAAC,EAAE,iBAAiB,CAAC,CAAC,CAAC;CAAC,GAC9B,CAAC,KAAK,EAAE,iBAAiB,CAAC,CAAC,CAAC,CAAC,KAC5B,mBAAmB,CAAC;AAEzB,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,WAAW,CAAC,GAAG;IACtD,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,MAAM,WAAW,CAAC;IACrB,IAAI,CACF,QAAQ,EAAE,oBAAoB,EAC9B,GAAG,aAAa,EAAE,QAAQ,EAAE,GAC3B,MAAM,WAAW,CAAC;IACrB,QAAQ,CAAC,GAAG,QAAQ,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC;CACtD,CAAC;AAEF,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EACnD,IAAI,EAAE,CAAC,GACN,YAAY,CAAC,CAAC,CAAC,CAgCjB"}
|
package/dist/src/sti.js
CHANGED
package/dist/src/sti.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["code","text","createIntrinsic","sti","name","args","props","fn","children","propsWithChildren","template","substitutions"],"sources":["../../src/sti.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,WAAW;
|
|
1
|
+
{"version":3,"names":["code","text","createIntrinsic","sti","name","args","props","fn","children","propsWithChildren","template","substitutions"],"sources":["../../src/sti.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,IAAI,EAAEC,IAAI,QAAQ,WAAW;AAGtC,SAASC,eAAe,QAAQ,+BAA+B;AAsB/D,OAAO,SAASC,GAAGA,CACjBC,IAAO,EACU;EACjB,OAAO,CAAC,GAAGC,IAAI,KAAK;IAClB,MAAMC,KAAuC,GAAGD,IAAI,CAAC,CAAC,CAAC;IACvD,MAAME,EAAuB,GAAGA,CAAA,KAAML,eAAe,CAACE,IAAI,EAAEE,KAAK,CAAC;IAClEC,EAAE,CAACC,QAAQ,GAAG,CAAC,GAAGA,QAAoB,KAAK;MACzC,MAAMC,iBAAiB,GAAG;QACxB,IAAIH,KAAK,IAAI,CAAC,CAAC,CAAC;QAChBE;MACF,CAAC;MAED,OAAO,MAAMN,eAAe,CAACE,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IAEDF,EAAE,CAACP,IAAI,GAAG,CAACU,QAAQ,EAAE,GAAGC,aAAa,KAAK;MACxC,MAAMF,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG,QAAQ,EAAER,IAAI,CAACU,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,OAAO,MAAMT,eAAe,CAACE,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IAEDF,EAAE,CAACN,IAAI,GAAG,CAACS,QAAQ,EAAE,GAAGC,aAAa,KAAK;MACxC,MAAMF,iBAAiB,GAAG;QACxB,IAAIJ,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClBG,QAAQ,EAAEP,IAAI,CAACS,QAAQ,EAAE,GAAGC,aAAa;MAC3C,CAAC;MAED,OAAO,MAAMT,eAAe,CAACE,IAAI,EAAEK,iBAAwB,CAAC;IAC9D,CAAC;IACD,OAAOF,EAAE;EACX,CAAC;AACH","ignoreList":[]}
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import { createComponent as _$createComponent } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { shallowRef } from "@vue/reactivity";
|
|
3
3
|
import { expect, it } from "vitest";
|
|
4
|
-
import { getDiagnosticsForTree, renderTree } from "../render.js";
|
|
5
4
|
import { flushJobs } from "../scheduler.js";
|
|
5
|
+
import { getDiagnosticsForTree, renderTree } from "../test-render.js";
|
|
6
6
|
import { BasicSymbol } from "./basic-symbol.js";
|
|
7
7
|
import { emitSymbol } from "./symbol-flow.js";
|
|
8
8
|
import { createSymbolSlot } from "./symbol-slot.js";
|
|
9
9
|
it("captures firstSymbol", async () => {
|
|
10
10
|
const Slot = createSymbolSlot();
|
|
11
|
-
|
|
11
|
+
expect(_$createComponent(Slot, {
|
|
12
12
|
children: () => {
|
|
13
13
|
emitSymbol(new BasicSymbol("a", undefined));
|
|
14
14
|
}
|
|
15
|
-
}));
|
|
15
|
+
})).toRenderTo("");
|
|
16
16
|
await flushJobs();
|
|
17
17
|
expect(Slot.firstSymbol.value).toBeDefined();
|
|
18
18
|
expect(Slot.firstSymbol.value.name).toBe("a");
|
|
@@ -37,11 +37,11 @@ it("emits error diagnostic when rendered more than once", async () => {
|
|
|
37
37
|
it("captures firstSymbol when emitting a ref to a symbol", async () => {
|
|
38
38
|
const Slot = createSymbolSlot();
|
|
39
39
|
const symref = shallowRef();
|
|
40
|
-
|
|
40
|
+
expect(_$createComponent(Slot, {
|
|
41
41
|
children: () => {
|
|
42
42
|
emitSymbol(symref);
|
|
43
43
|
}
|
|
44
|
-
}));
|
|
44
|
+
})).toRenderTo("");
|
|
45
45
|
await flushJobs();
|
|
46
46
|
expect(Slot.firstSymbol.value).toBeUndefined();
|
|
47
47
|
symref.value = new BasicSymbol("a", undefined);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["shallowRef","expect","it","
|
|
1
|
+
{"version":3,"names":["shallowRef","expect","it","flushJobs","getDiagnosticsForTree","renderTree","BasicSymbol","emitSymbol","createSymbolSlot","Slot","_$createComponent","children","undefined","toRenderTo","firstSymbol","value","toBeDefined","name","toBe","tree","diagnostics","length","severity","message","toContain","symref","toBeUndefined"],"sources":["../../../src/symbols/symbol-slot.test.tsx"],"sourcesContent":[null],"mappings":";AAAA,SAASA,UAAU,QAAQ,iBAAiB;AAC5C,SAASC,MAAM,EAAEC,EAAE,QAAQ,QAAQ;AACnC,SAASC,SAAS,QAAQ,iBAAiB;AAC3C,SAASC,qBAAqB,EAAEC,UAAU,QAAQ,mBAAmB;AACrE,SAASC,WAAW,QAAQ,mBAAmB;AAC/C,SAASC,UAAU,QAAQ,kBAAkB;AAC7C,SAASC,gBAAgB;AAEzBN,EAAE,CAAC,sBAAsB,EAAE,YAAY;EACrC,MAAMO,IAAI,GAAGD,gBAAgB,CAAC,CAAC;EAE/BP,MAAM,CAAAS,iBAAA,CACHD,IAAI;IAAAE,QAAA,EACFA,CAAA,KAAM;MACLJ,UAAU,CAAC,IAAID,WAAW,CAAC,GAAG,EAAEM,SAAS,CAAC,CAAC;IAC7C;EAAC,EAEL,CAAC,CAACC,UAAU,CAAC,EAAE,CAAC;EAChB,MAAMV,SAAS,CAAC,CAAC;EACjBF,MAAM,CAACQ,IAAI,CAACK,WAAW,CAACC,KAAK,CAAC,CAACC,WAAW,CAAC,CAAC;EAC5Cf,MAAM,CAACQ,IAAI,CAACK,WAAW,CAACC,KAAK,CAAEE,IAAI,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AAChD,CAAC,CAAC;AAEFhB,EAAE,CAAC,qDAAqD,EAAE,YAAY;EACpE,MAAMO,IAAI,GAAGD,gBAAgB,CAAC,CAAC;EAE/B,MAAMW,IAAI,GAAGd,UAAU,EAAAK,iBAAA,CAElBD,IAAI;IAAAE,QAAA,EACFA,CAAA,KAAM;MACLJ,UAAU,CAAC,IAAID,WAAW,CAAC,GAAG,EAAEM,SAAS,CAAC,CAAC;IAC7C;EAAC,IAAAF,iBAAA,CAEFD,IAAI;IAAAE,QAAA,EACFA,CAAA,KAAM;MACLJ,UAAU,CAAC,IAAID,WAAW,CAAC,GAAG,EAAEM,SAAS,CAAC,CAAC;IAC7C;EAAC,GAGP,CAAC;EACD,MAAMT,SAAS,CAAC,CAAC;EAEjB,MAAMiB,WAAW,GAAGhB,qBAAqB,CAACe,IAAI,CAAC;EAC/ClB,MAAM,CAACmB,WAAW,CAACC,MAAM,CAAC,CAACH,IAAI,CAAC,CAAC,CAAC;EAClCjB,MAAM,CAACmB,WAAW,CAAC,CAAC,CAAC,CAACE,QAAQ,CAAC,CAACJ,IAAI,CAAC,OAAO,CAAC;EAC7CjB,MAAM,CAACmB,WAAW,CAAC,CAAC,CAAC,CAACG,OAAO,CAAC,CAACC,SAAS,CACtC,oCACF,CAAC;AACH,CAAC,CAAC;AAEFtB,EAAE,CAAC,sDAAsD,EAAE,YAAY;EACrE,MAAMO,IAAI,GAAGD,gBAAgB,CAAC,CAAC;EAC/B,MAAMiB,MAAM,GAAGzB,UAAU,CAA0B,CAAC;EAEpDC,MAAM,CAAAS,iBAAA,CACHD,IAAI;IAAAE,QAAA,EACFA,CAAA,KAAM;MACLJ,UAAU,CAACkB,MAAM,CAAC;IACpB;EAAC,EAEL,CAAC,CAACZ,UAAU,CAAC,EAAE,CAAC;EAChB,MAAMV,SAAS,CAAC,CAAC;EACjBF,MAAM,CAACQ,IAAI,CAACK,WAAW,CAACC,KAAK,CAAC,CAACW,aAAa,CAAC,CAAC;EAC9CD,MAAM,CAACV,KAAK,GAAG,IAAIT,WAAW,CAAC,GAAG,EAAEM,SAAS,CAAC;EAC9C,MAAMT,SAAS,CAAC,CAAC;EACjBF,MAAM,CAACQ,IAAI,CAACK,WAAW,CAACC,KAAK,CAAC,CAACC,WAAW,CAAC,CAAC;EAC5Cf,MAAM,CAACQ,IAAI,CAACK,WAAW,CAACC,KAAK,CAAEE,IAAI,CAAC,CAACC,IAAI,CAAC,GAAG,CAAC;AAChD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct AlloyNode-tree rendering helpers.
|
|
3
|
+
*
|
|
4
|
+
* `renderTree` produces an `ElementNode` root for assertions that need
|
|
5
|
+
* to inspect tree shape directly (used by component-level tests that
|
|
6
|
+
* don't go through `<SourceFile>`); `printTree` formats the tree with
|
|
7
|
+
* Alloy's direct printer. These are the lower-level entry points behind
|
|
8
|
+
* `render`/`renderAsync` and the testing matchers.
|
|
9
|
+
*/
|
|
10
|
+
import { type Diagnostic } from "./diagnostics.js";
|
|
11
|
+
import type { PrintTreeOptions } from "./output-types.js";
|
|
12
|
+
import { AlloyNode, ElementNode } from "./render/node.js";
|
|
13
|
+
import type { Children } from "./runtime/component.js";
|
|
14
|
+
export interface RenderTreeOptions {
|
|
15
|
+
noFlush?: boolean;
|
|
16
|
+
}
|
|
17
|
+
/** Render `children` into a fresh root AlloyNode. */
|
|
18
|
+
export declare function renderTree(children: Children, opts?: RenderTreeOptions): ElementNode;
|
|
19
|
+
/** Print an AlloyNode tree to a string. */
|
|
20
|
+
export declare function printTree(node: AlloyNode, opts?: PrintTreeOptions & RenderTreeOptions): string;
|
|
21
|
+
/** Diagnostics collected during the render of `rootNode`. */
|
|
22
|
+
export declare function getDiagnosticsForTree(rootNode: AlloyNode): Diagnostic[];
|
|
23
|
+
/**
|
|
24
|
+
* Collect source files from an AlloyNode tree as a `path → contents`
|
|
25
|
+
* map. If no `<SourceFile>` markers are found, returns the printed
|
|
26
|
+
* string of the whole tree. Used by the `toRenderTo` matcher; unlike
|
|
27
|
+
* `sourceFilesForTree`, this does NOT default `insertFinalNewLine`,
|
|
28
|
+
* preserving the raw printed body for test assertions.
|
|
29
|
+
*/
|
|
30
|
+
export declare function getFilesFromTree(rootNode: AlloyNode, opts?: PrintTreeOptions & RenderTreeOptions): string | Record<string, string>;
|
|
31
|
+
//# sourceMappingURL=test-render.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"test-render.d.ts","sourceRoot":"","sources":["../../src/test-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAKL,KAAK,UAAU,EAChB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAiB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAIvD,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,qDAAqD;AACrD,wBAAgB,UAAU,CACxB,QAAQ,EAAE,QAAQ,EAClB,IAAI,CAAC,EAAE,iBAAiB,GACvB,WAAW,CAYb;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CACvB,IAAI,EAAE,SAAS,EACf,IAAI,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAC1C,MAAM,CAGR;AAED,6DAA6D;AAC7D,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,SAAS,GAAG,UAAU,EAAE,CAEvE;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,SAAS,EACnB,IAAI,CAAC,EAAE,gBAAgB,GAAG,iBAAiB,GAC1C,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA8BjC"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Direct AlloyNode-tree rendering helpers.
|
|
3
|
+
*
|
|
4
|
+
* `renderTree` produces an `ElementNode` root for assertions that need
|
|
5
|
+
* to inspect tree shape directly (used by component-level tests that
|
|
6
|
+
* don't go through `<SourceFile>`); `printTree` formats the tree with
|
|
7
|
+
* Alloy's direct printer. These are the lower-level entry points behind
|
|
8
|
+
* `render`/`renderAsync` and the testing matchers.
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import { attachDiagnosticsCollector, DiagnosticsCollector, getRegisteredDiagnosticsForTree, registerDiagnosticsForTree } from "./diagnostics.js";
|
|
12
|
+
import { root, runInContext } from "./reactivity.js";
|
|
13
|
+
import { printNode } from "./render-output.js";
|
|
14
|
+
import { getContextForNode } from "./render/node-context.js";
|
|
15
|
+
import { createElement, ElementNode } from "./render/node.js";
|
|
16
|
+
import { insert } from "./runtime/insert.js";
|
|
17
|
+
import { flushJobs } from "./scheduler.js";
|
|
18
|
+
/** Render `children` into a fresh root AlloyNode. */
|
|
19
|
+
export function renderTree(children, opts) {
|
|
20
|
+
const rootNode = createElement("alloy:root");
|
|
21
|
+
const collector = new DiagnosticsCollector();
|
|
22
|
+
root(() => {
|
|
23
|
+
runInContext(() => {
|
|
24
|
+
attachDiagnosticsCollector(collector);
|
|
25
|
+
insert(rootNode, children);
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
if (!opts?.noFlush) flushJobs();
|
|
29
|
+
registerDiagnosticsForTree(rootNode, collector);
|
|
30
|
+
return rootNode;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/** Print an AlloyNode tree to a string. */
|
|
34
|
+
export function printTree(node, opts) {
|
|
35
|
+
if (!opts?.noFlush) flushJobs();
|
|
36
|
+
return printNode(node, opts);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/** Diagnostics collected during the render of `rootNode`. */
|
|
40
|
+
export function getDiagnosticsForTree(rootNode) {
|
|
41
|
+
return getRegisteredDiagnosticsForTree(rootNode);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Collect source files from an AlloyNode tree as a `path → contents`
|
|
46
|
+
* map. If no `<SourceFile>` markers are found, returns the printed
|
|
47
|
+
* string of the whole tree. Used by the `toRenderTo` matcher; unlike
|
|
48
|
+
* `sourceFilesForTree`, this does NOT default `insertFinalNewLine`,
|
|
49
|
+
* preserving the raw printed body for test assertions.
|
|
50
|
+
*/
|
|
51
|
+
export function getFilesFromTree(rootNode, opts) {
|
|
52
|
+
const files = {};
|
|
53
|
+
visit(rootNode);
|
|
54
|
+
if (Object.keys(files).length === 0) {
|
|
55
|
+
return printTree(rootNode, opts);
|
|
56
|
+
}
|
|
57
|
+
return files;
|
|
58
|
+
function visit(node) {
|
|
59
|
+
if (node instanceof ElementNode && node.localName === "alloy:source-file") {
|
|
60
|
+
const ctx = getContextForNode(node);
|
|
61
|
+
const sf = ctx?.meta?.sourceFile;
|
|
62
|
+
if (sf) {
|
|
63
|
+
const printOpts = ctx.meta.printOptions;
|
|
64
|
+
files[sf.path] = printTree(node, {
|
|
65
|
+
printWidth: opts?.printWidth ?? printOpts?.printWidth,
|
|
66
|
+
tabWidth: opts?.tabWidth ?? printOpts?.tabWidth,
|
|
67
|
+
useTabs: opts?.useTabs ?? printOpts?.useTabs,
|
|
68
|
+
insertFinalNewLine: opts?.insertFinalNewLine ?? printOpts?.insertFinalNewLine,
|
|
69
|
+
noFlush: true
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
for (let c = node.firstChild; c !== null; c = c.nextSibling) {
|
|
74
|
+
visit(c);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
//# sourceMappingURL=test-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["attachDiagnosticsCollector","DiagnosticsCollector","getRegisteredDiagnosticsForTree","registerDiagnosticsForTree","root","runInContext","printNode","getContextForNode","createElement","ElementNode","insert","flushJobs","renderTree","children","opts","rootNode","collector","noFlush","printTree","node","getDiagnosticsForTree","getFilesFromTree","files","visit","Object","keys","length","localName","ctx","sf","meta","sourceFile","printOpts","printOptions","path","printWidth","tabWidth","useTabs","insertFinalNewLine","c","firstChild","nextSibling"],"sources":["../../src/test-render.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BaseListProps } from "./components/List.jsx";
|
|
2
|
+
import { OutputDirectory, OutputFile } from "./output-types.js";
|
|
2
3
|
import { CustomContext } from "./reactivity.js";
|
|
3
|
-
import { OutputDirectory, OutputFile } from "./render.js";
|
|
4
4
|
import { Children, ComponentCreator } from "./runtime/component.js";
|
|
5
5
|
export interface JoinOptions {
|
|
6
6
|
/**
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.tsx"],"names":[],"mappings":"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"}
|
package/dist/src/utils.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { memo as _$memo, createIntrinsic as _$createIntrinsic } from "@alloy-js/core/jsx-runtime";
|
|
2
2
|
import { toRaw } from "@vue/reactivity";
|
|
3
|
-
import { createCustomContext,
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
import { createCustomContext, getContext, memo, onCleanup, ref, root, setContextEmptyChangeListener, untrack } from "./reactivity.js";
|
|
4
|
+
import { AlloyNode, FRAGMENT_NODE } from "./render/node.js";
|
|
6
5
|
import { isComponentCreator } from "./runtime/component.js";
|
|
7
6
|
const defaultJoinOptions = {
|
|
8
7
|
joiner: "\n",
|
|
@@ -69,7 +68,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
69
68
|
let slot = itemSlots[index];
|
|
70
69
|
if (!slot) {
|
|
71
70
|
slot = {
|
|
72
|
-
|
|
71
|
+
empty: true
|
|
73
72
|
};
|
|
74
73
|
itemSlots[index] = slot;
|
|
75
74
|
}
|
|
@@ -119,7 +118,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
119
118
|
}
|
|
120
119
|
const previousNonEmpty = findPrevNonEmpty(index - 1);
|
|
121
120
|
const rightSlot = itemSlots[index];
|
|
122
|
-
const shouldShow = previousNonEmpty !== -1 && rightSlot !== undefined && rightSlot.
|
|
121
|
+
const shouldShow = previousNonEmpty !== -1 && rightSlot !== undefined && rightSlot.empty === false;
|
|
123
122
|
const newValue = shouldShow ? options.joiner : undefined;
|
|
124
123
|
if (joinerRef.value !== newValue) {
|
|
125
124
|
joinerRef.value = newValue;
|
|
@@ -130,7 +129,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
130
129
|
function findNextNonEmpty(from) {
|
|
131
130
|
for (let i = Math.max(from, 0); i < itemSlots.length; i++) {
|
|
132
131
|
const slot = itemSlots[i];
|
|
133
|
-
if (slot && slot.
|
|
132
|
+
if (slot && slot.empty === false) {
|
|
134
133
|
return i;
|
|
135
134
|
}
|
|
136
135
|
}
|
|
@@ -141,7 +140,7 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
141
140
|
function findPrevNonEmpty(from) {
|
|
142
141
|
for (let i = Math.min(from, itemSlots.length - 1); i >= 0; i--) {
|
|
143
142
|
const slot = itemSlots[i];
|
|
144
|
-
if (slot && slot.
|
|
143
|
+
if (slot && slot.empty === false) {
|
|
145
144
|
return i;
|
|
146
145
|
}
|
|
147
146
|
}
|
|
@@ -227,13 +226,12 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
227
226
|
for (; startIndex < itemsLen; startIndex++) {
|
|
228
227
|
const slot = getOrCreateSlot(startIndex);
|
|
229
228
|
slot.item = items[startIndex];
|
|
230
|
-
const emptyFlag = slot.isEmpty;
|
|
231
229
|
if (slot.disposer) {
|
|
232
|
-
if (
|
|
230
|
+
if (slot.empty === false) {
|
|
233
231
|
if (context) {
|
|
234
232
|
context.childrenWithContent--;
|
|
235
233
|
}
|
|
236
|
-
|
|
234
|
+
slot.empty = true;
|
|
237
235
|
applyEmptyStateChange(startIndex, true, false);
|
|
238
236
|
}
|
|
239
237
|
slot.disposer();
|
|
@@ -242,24 +240,22 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
242
240
|
mapped[startIndex * 2] = createCustomContext(cb => {
|
|
243
241
|
return root(disposer => {
|
|
244
242
|
const nestedContext = getContext();
|
|
245
|
-
const isEmptyFlag = ensureIsEmpty(nestedContext);
|
|
246
243
|
slot.disposer = disposer;
|
|
247
244
|
disposer();
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
}
|
|
245
|
+
|
|
246
|
+
// Single-subscriber callback: fires synchronously on every
|
|
247
|
+
// empty↔non-empty transition of this slot's nested context.
|
|
248
|
+
// No Ref/effect allocation per slot; cleared via
|
|
249
|
+
// `onCleanup` so a recycled slot's old context can never
|
|
250
|
+
// mutate the new slot's bookkeeping.
|
|
251
|
+
setContextEmptyChangeListener(nestedContext, isEmpty => {
|
|
252
|
+
const wasEmpty = slot.empty;
|
|
253
|
+
if (wasEmpty === isEmpty) return;
|
|
254
|
+
slot.empty = isEmpty;
|
|
255
|
+
applyEmptyStateChange(cleanupIndex, isEmpty, wasEmpty);
|
|
256
|
+
});
|
|
257
|
+
onCleanup(() => {
|
|
258
|
+
setContextEmptyChangeListener(nestedContext, undefined);
|
|
263
259
|
});
|
|
264
260
|
cb(mapper(items[cleanupIndex], cleanupIndex));
|
|
265
261
|
});
|
|
@@ -281,11 +277,11 @@ export function mapJoin(src, cb, rawOptions = {}) {
|
|
|
281
277
|
continue;
|
|
282
278
|
}
|
|
283
279
|
slot.disposer?.();
|
|
284
|
-
if (slot.
|
|
280
|
+
if (slot.empty === false) {
|
|
285
281
|
if (context) {
|
|
286
282
|
context.childrenWithContent--;
|
|
287
283
|
}
|
|
288
|
-
slot.
|
|
284
|
+
slot.empty = true;
|
|
289
285
|
applyEmptyStateChange(startIndex, true, false);
|
|
290
286
|
}
|
|
291
287
|
}
|
|
@@ -377,6 +373,22 @@ export function children(fn, options = {}) {
|
|
|
377
373
|
return children.map(collectChildren).flat();
|
|
378
374
|
} else if (typeof children === "function" && !isComponentCreator(children)) {
|
|
379
375
|
return collectChildren(children());
|
|
376
|
+
} else if (children instanceof AlloyNode) {
|
|
377
|
+
// A FragmentNode is the AlloyNode equivalent of an array — flatten
|
|
378
|
+
// by walking its sibling list. Other node kinds are opaque leaves.
|
|
379
|
+
if (children.nodeType === FRAGMENT_NODE) {
|
|
380
|
+
const out = [];
|
|
381
|
+
for (let n = children.firstChild; n !== null; n = n.nextSibling) {
|
|
382
|
+
const collected = collectChildren(n);
|
|
383
|
+
if (Array.isArray(collected)) {
|
|
384
|
+
out.push(...collected);
|
|
385
|
+
} else {
|
|
386
|
+
out.push(collected);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
return out;
|
|
390
|
+
}
|
|
391
|
+
return children;
|
|
380
392
|
} else {
|
|
381
393
|
return children;
|
|
382
394
|
}
|