@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
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AlloyNode tree — a DOM-aligned in-memory representation of rendered
|
|
3
|
+
* output.
|
|
4
|
+
*
|
|
5
|
+
* Components return AlloyNodes (or values that get inserted into them)
|
|
6
|
+
* via `runtime/insert.ts`; the resulting tree is consumed by the direct
|
|
7
|
+
* printer and `render-output.ts` output-directory walker.
|
|
8
|
+
*
|
|
9
|
+
* Naming and semantics follow the modern DOM where there is meaningful
|
|
10
|
+
* overlap. Only modern DOM mutation methods are exposed
|
|
11
|
+
* (`append`/`prepend`/`before`/`after`/`replaceWith`/`remove`/`text.data`/
|
|
12
|
+
* `moveBefore`). Legacy methods (`appendChild`, `insertBefore`,
|
|
13
|
+
* `removeChild`, `replaceChild`, the `nodeValue` setter) are intentionally
|
|
14
|
+
* NOT provided.
|
|
15
|
+
*/
|
|
16
|
+
export declare const ELEMENT_NODE: 1;
|
|
17
|
+
export declare const TEXT_NODE: 3;
|
|
18
|
+
export declare const COMMENT_NODE: 8;
|
|
19
|
+
export declare const FRAGMENT_NODE: 11;
|
|
20
|
+
export type NodeType = 1 | 3 | 8 | 11;
|
|
21
|
+
/**
|
|
22
|
+
* Anything that can be inserted: a Node, a string (auto-wrapped as Text),
|
|
23
|
+
* or a number (auto-wrapped as Text).
|
|
24
|
+
*/
|
|
25
|
+
export type Insertable = AlloyNode | string | number;
|
|
26
|
+
export declare abstract class AlloyNode {
|
|
27
|
+
abstract readonly nodeType: NodeType;
|
|
28
|
+
parentNode: AlloyNode | null;
|
|
29
|
+
firstChild: AlloyNode | null;
|
|
30
|
+
lastChild: AlloyNode | null;
|
|
31
|
+
previousSibling: AlloyNode | null;
|
|
32
|
+
nextSibling: AlloyNode | null;
|
|
33
|
+
/**
|
|
34
|
+
* Empty-state propagation. `false` for Text/Element with content,
|
|
35
|
+
* `true` for empty regions. Mutated by reactive bindings; read by
|
|
36
|
+
* joiner/ender logic. Direct field — no Vue effect.
|
|
37
|
+
*/
|
|
38
|
+
isEmpty: boolean;
|
|
39
|
+
/** Append nodes (or strings) to the end of children. */
|
|
40
|
+
append(...nodes: Insertable[]): void;
|
|
41
|
+
/** Prepend nodes (or strings) to the beginning of children. */
|
|
42
|
+
prepend(...nodes: Insertable[]): void;
|
|
43
|
+
/** Insert nodes immediately before `this` in the parent's child list. */
|
|
44
|
+
before(...nodes: Insertable[]): void;
|
|
45
|
+
/** Insert nodes immediately after `this` in the parent's child list. */
|
|
46
|
+
after(...nodes: Insertable[]): void;
|
|
47
|
+
/** Replace `this` with the given nodes in the parent's child list. */
|
|
48
|
+
replaceWith(...nodes: Insertable[]): void;
|
|
49
|
+
/** Remove `this` from its parent. */
|
|
50
|
+
remove(): void;
|
|
51
|
+
/**
|
|
52
|
+
* Atomic move: relocate `node` to be a child of `this` immediately
|
|
53
|
+
* before `ref` (or at the end if `ref` is null), without disconnecting
|
|
54
|
+
* any state on the moved subtree. Used by `<For>` reorder paths so
|
|
55
|
+
* keyed-item bindings stay live.
|
|
56
|
+
*
|
|
57
|
+
* Mirrors the 2024 DOM `Element.moveBefore(node, child)` proposal.
|
|
58
|
+
*/
|
|
59
|
+
moveBefore(node: AlloyNode, ref: AlloyNode | null): void;
|
|
60
|
+
/**
|
|
61
|
+
* Deep-clone this node and its subtree. The clone has no parent and
|
|
62
|
+
* its children are themselves clones. Used when a node value would
|
|
63
|
+
* otherwise be inserted into two parents (e.g. a shared joiner element
|
|
64
|
+
* produced by mapJoin) — Alloy intrinsic nodes are stateless so a
|
|
65
|
+
* fresh tree is semantically equivalent.
|
|
66
|
+
*/
|
|
67
|
+
cloneNode(): AlloyNode;
|
|
68
|
+
protected abstract cloneShallow(): AlloyNode;
|
|
69
|
+
}
|
|
70
|
+
/** Text node — analog of DOM Text / CharacterData. */
|
|
71
|
+
export declare class TextNode extends AlloyNode {
|
|
72
|
+
readonly nodeType: 3;
|
|
73
|
+
data: string;
|
|
74
|
+
/** Display width (Prettier-compatible). Lazily filled on first read. */
|
|
75
|
+
_w: number;
|
|
76
|
+
/** 1 if `data` contains a newline, 0 if not, -1 if not yet computed. */
|
|
77
|
+
_nl: number;
|
|
78
|
+
constructor(data: string);
|
|
79
|
+
protected cloneShallow(): TextNode;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Comment node — used as a slot anchor (start/end markers) bracketing
|
|
83
|
+
* dynamic regions. Solid uses the same pattern.
|
|
84
|
+
*/
|
|
85
|
+
export declare class CommentNode extends AlloyNode {
|
|
86
|
+
readonly nodeType: 8;
|
|
87
|
+
data: string;
|
|
88
|
+
/** Comments don't contribute output, always empty. */
|
|
89
|
+
isEmpty: boolean;
|
|
90
|
+
constructor(data?: string);
|
|
91
|
+
protected cloneShallow(): CommentNode;
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Element node — Alloy hook node. `localName` carries the hook kind
|
|
95
|
+
* ("group", "indent", "line", "softline", "ifBreak", etc).
|
|
96
|
+
*
|
|
97
|
+
* `data` carries hook-specific config (e.g. `{ shouldBreak: false }` for
|
|
98
|
+
* a group). Kept as a single bag rather than a parallel hierarchy of
|
|
99
|
+
* subclasses to avoid V8 hidden-class fan-out.
|
|
100
|
+
*/
|
|
101
|
+
export declare class ElementNode extends AlloyNode {
|
|
102
|
+
readonly nodeType: 1;
|
|
103
|
+
localName: string;
|
|
104
|
+
data: unknown;
|
|
105
|
+
/**
|
|
106
|
+
* Count of unabsorbed break-leaves in this subtree. Maintained by
|
|
107
|
+
* `insertBefore` / `detach` so the printer can decide whether a
|
|
108
|
+
* `group` is broken in O(1) without a prepass walk.
|
|
109
|
+
*
|
|
110
|
+
* `breakParent` / `hardline` / `hbr` / `literalline` / `lbr` elements
|
|
111
|
+
* and TextNodes containing `\n`/`\r` count as break-leaves; a `group`
|
|
112
|
+
* element absorbs the count from its own subtree (does not propagate
|
|
113
|
+
* outward).
|
|
114
|
+
*
|
|
115
|
+
* For `ifBreak` elements the count includes contributions from
|
|
116
|
+
* `data.flatNode` (the alternate branch is not in the regular tree).
|
|
117
|
+
*/
|
|
118
|
+
_breakCount: number;
|
|
119
|
+
constructor(localName: string, data?: unknown);
|
|
120
|
+
protected cloneShallow(): ElementNode;
|
|
121
|
+
}
|
|
122
|
+
/**
|
|
123
|
+
* Fragment node — transient batch container. Inserting a Fragment splices
|
|
124
|
+
* its children into the target (mirroring DOM DocumentFragment semantics)
|
|
125
|
+
* and the Fragment itself becomes empty.
|
|
126
|
+
*/
|
|
127
|
+
export declare class FragmentNode extends AlloyNode {
|
|
128
|
+
readonly nodeType: 11;
|
|
129
|
+
protected cloneShallow(): FragmentNode;
|
|
130
|
+
}
|
|
131
|
+
export declare function createTextNode(data: string): TextNode;
|
|
132
|
+
export declare function createComment(data?: string): CommentNode;
|
|
133
|
+
export declare function createElement(localName: string, data?: unknown): ElementNode;
|
|
134
|
+
export declare function createFragment(): FragmentNode;
|
|
135
|
+
/**
|
|
136
|
+
* Splice `node` (or its children, if Fragment) into `parent` immediately
|
|
137
|
+
* before `ref` (or at end if `ref` is null). Detaches `node` from any
|
|
138
|
+
* existing parent first.
|
|
139
|
+
*/
|
|
140
|
+
/** Mutation listener — set by `debug/render.ts`. */
|
|
141
|
+
export interface MutationListener {
|
|
142
|
+
attached(node: AlloyNode, parent: AlloyNode): void;
|
|
143
|
+
detached(node: AlloyNode, formerParent: AlloyNode): void;
|
|
144
|
+
}
|
|
145
|
+
export declare function setMutationListener(l: MutationListener | null): void;
|
|
146
|
+
//# sourceMappingURL=node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.d.ts","sourceRoot":"","sources":["../../../src/render/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* AlloyNode tree — a DOM-aligned in-memory representation of rendered
|
|
3
|
+
* output.
|
|
4
|
+
*
|
|
5
|
+
* Components return AlloyNodes (or values that get inserted into them)
|
|
6
|
+
* via `runtime/insert.ts`; the resulting tree is consumed by the direct
|
|
7
|
+
* printer and `render-output.ts` output-directory walker.
|
|
8
|
+
*
|
|
9
|
+
* Naming and semantics follow the modern DOM where there is meaningful
|
|
10
|
+
* overlap. Only modern DOM mutation methods are exposed
|
|
11
|
+
* (`append`/`prepend`/`before`/`after`/`replaceWith`/`remove`/`text.data`/
|
|
12
|
+
* `moveBefore`). Legacy methods (`appendChild`, `insertBefore`,
|
|
13
|
+
* `removeChild`, `replaceChild`, the `nodeValue` setter) are intentionally
|
|
14
|
+
* NOT provided.
|
|
15
|
+
*/
|
|
16
|
+
|
|
17
|
+
// #region nodeType constants
|
|
18
|
+
|
|
19
|
+
export const ELEMENT_NODE = 1;
|
|
20
|
+
export const TEXT_NODE = 3;
|
|
21
|
+
export const COMMENT_NODE = 8;
|
|
22
|
+
export const FRAGMENT_NODE = 11;
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Anything that can be inserted: a Node, a string (auto-wrapped as Text),
|
|
26
|
+
* or a number (auto-wrapped as Text).
|
|
27
|
+
*/
|
|
28
|
+
|
|
29
|
+
// #endregion
|
|
30
|
+
|
|
31
|
+
// #region Base Node
|
|
32
|
+
|
|
33
|
+
export class AlloyNode {
|
|
34
|
+
parentNode = null;
|
|
35
|
+
firstChild = null;
|
|
36
|
+
lastChild = null;
|
|
37
|
+
previousSibling = null;
|
|
38
|
+
nextSibling = null;
|
|
39
|
+
|
|
40
|
+
/**
|
|
41
|
+
* Empty-state propagation. `false` for Text/Element with content,
|
|
42
|
+
* `true` for empty regions. Mutated by reactive bindings; read by
|
|
43
|
+
* joiner/ender logic. Direct field — no Vue effect.
|
|
44
|
+
*/
|
|
45
|
+
isEmpty = true;
|
|
46
|
+
|
|
47
|
+
// #region Modern DOM mutation API
|
|
48
|
+
|
|
49
|
+
/** Append nodes (or strings) to the end of children. */
|
|
50
|
+
append(...nodes) {
|
|
51
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
52
|
+
insertBefore(this, normalize(nodes[i]), null);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/** Prepend nodes (or strings) to the beginning of children. */
|
|
57
|
+
prepend(...nodes) {
|
|
58
|
+
const first = this.firstChild;
|
|
59
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
60
|
+
insertBefore(this, normalize(nodes[i]), first);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
/** Insert nodes immediately before `this` in the parent's child list. */
|
|
65
|
+
before(...nodes) {
|
|
66
|
+
const parent = this.parentNode;
|
|
67
|
+
if (parent === null) return;
|
|
68
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
69
|
+
insertBefore(parent, normalize(nodes[i]), this);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Insert nodes immediately after `this` in the parent's child list. */
|
|
74
|
+
after(...nodes) {
|
|
75
|
+
const parent = this.parentNode;
|
|
76
|
+
if (parent === null) return;
|
|
77
|
+
const ref = this.nextSibling;
|
|
78
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
79
|
+
insertBefore(parent, normalize(nodes[i]), ref);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/** Replace `this` with the given nodes in the parent's child list. */
|
|
84
|
+
replaceWith(...nodes) {
|
|
85
|
+
const parent = this.parentNode;
|
|
86
|
+
if (parent === null) return;
|
|
87
|
+
const ref = this.nextSibling;
|
|
88
|
+
detach(this);
|
|
89
|
+
for (let i = 0, len = nodes.length; i < len; i++) {
|
|
90
|
+
insertBefore(parent, normalize(nodes[i]), ref);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
/** Remove `this` from its parent. */
|
|
95
|
+
remove() {
|
|
96
|
+
if (this.parentNode !== null) detach(this);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/**
|
|
100
|
+
* Atomic move: relocate `node` to be a child of `this` immediately
|
|
101
|
+
* before `ref` (or at the end if `ref` is null), without disconnecting
|
|
102
|
+
* any state on the moved subtree. Used by `<For>` reorder paths so
|
|
103
|
+
* keyed-item bindings stay live.
|
|
104
|
+
*
|
|
105
|
+
* Mirrors the 2024 DOM `Element.moveBefore(node, child)` proposal.
|
|
106
|
+
*/
|
|
107
|
+
moveBefore(node, ref) {
|
|
108
|
+
if (node.parentNode === this && node.nextSibling === ref) return;
|
|
109
|
+
detach(node);
|
|
110
|
+
insertBefore(this, node, ref);
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* Deep-clone this node and its subtree. The clone has no parent and
|
|
115
|
+
* its children are themselves clones. Used when a node value would
|
|
116
|
+
* otherwise be inserted into two parents (e.g. a shared joiner element
|
|
117
|
+
* produced by mapJoin) — Alloy intrinsic nodes are stateless so a
|
|
118
|
+
* fresh tree is semantically equivalent.
|
|
119
|
+
*/
|
|
120
|
+
cloneNode() {
|
|
121
|
+
const copy = this.cloneShallow();
|
|
122
|
+
for (let c = this.firstChild; c !== null; c = c.nextSibling) {
|
|
123
|
+
insertBefore(copy, c.cloneNode(), null);
|
|
124
|
+
}
|
|
125
|
+
return copy;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// #endregion
|
|
130
|
+
|
|
131
|
+
// #endregion
|
|
132
|
+
|
|
133
|
+
// #region Concrete Node types
|
|
134
|
+
|
|
135
|
+
/** Text node — analog of DOM Text / CharacterData. */
|
|
136
|
+
export class TextNode extends AlloyNode {
|
|
137
|
+
nodeType = TEXT_NODE;
|
|
138
|
+
// Cached during construction — text data is set once and never mutated
|
|
139
|
+
// (insert.ts replaces TextNode instances rather than reassigning .data).
|
|
140
|
+
// Reading these in the printer's hot path is much cheaper than rerunning
|
|
141
|
+
// getStringWidth / two indexOf scans on every print.
|
|
142
|
+
/** Display width (Prettier-compatible). Lazily filled on first read. */
|
|
143
|
+
_w = -1;
|
|
144
|
+
/** 1 if `data` contains a newline, 0 if not, -1 if not yet computed. */
|
|
145
|
+
_nl = -1;
|
|
146
|
+
constructor(data) {
|
|
147
|
+
super();
|
|
148
|
+
this.data = data;
|
|
149
|
+
this.isEmpty = data.length === 0;
|
|
150
|
+
}
|
|
151
|
+
cloneShallow() {
|
|
152
|
+
return new TextNode(this.data);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/**
|
|
157
|
+
* Comment node — used as a slot anchor (start/end markers) bracketing
|
|
158
|
+
* dynamic regions. Solid uses the same pattern.
|
|
159
|
+
*/
|
|
160
|
+
export class CommentNode extends AlloyNode {
|
|
161
|
+
nodeType = COMMENT_NODE;
|
|
162
|
+
/** Comments don't contribute output, always empty. */
|
|
163
|
+
isEmpty = true;
|
|
164
|
+
constructor(data = "") {
|
|
165
|
+
super();
|
|
166
|
+
this.data = data;
|
|
167
|
+
}
|
|
168
|
+
cloneShallow() {
|
|
169
|
+
return new CommentNode(this.data);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Element node — Alloy hook node. `localName` carries the hook kind
|
|
175
|
+
* ("group", "indent", "line", "softline", "ifBreak", etc).
|
|
176
|
+
*
|
|
177
|
+
* `data` carries hook-specific config (e.g. `{ shouldBreak: false }` for
|
|
178
|
+
* a group). Kept as a single bag rather than a parallel hierarchy of
|
|
179
|
+
* subclasses to avoid V8 hidden-class fan-out.
|
|
180
|
+
*/
|
|
181
|
+
export class ElementNode extends AlloyNode {
|
|
182
|
+
nodeType = ELEMENT_NODE;
|
|
183
|
+
/**
|
|
184
|
+
* Count of unabsorbed break-leaves in this subtree. Maintained by
|
|
185
|
+
* `insertBefore` / `detach` so the printer can decide whether a
|
|
186
|
+
* `group` is broken in O(1) without a prepass walk.
|
|
187
|
+
*
|
|
188
|
+
* `breakParent` / `hardline` / `hbr` / `literalline` / `lbr` elements
|
|
189
|
+
* and TextNodes containing `\n`/`\r` count as break-leaves; a `group`
|
|
190
|
+
* element absorbs the count from its own subtree (does not propagate
|
|
191
|
+
* outward).
|
|
192
|
+
*
|
|
193
|
+
* For `ifBreak` elements the count includes contributions from
|
|
194
|
+
* `data.flatNode` (the alternate branch is not in the regular tree).
|
|
195
|
+
*/
|
|
196
|
+
_breakCount = 0;
|
|
197
|
+
constructor(localName, data) {
|
|
198
|
+
super();
|
|
199
|
+
this.localName = localName;
|
|
200
|
+
this.data = data;
|
|
201
|
+
}
|
|
202
|
+
cloneShallow() {
|
|
203
|
+
return new ElementNode(this.localName, this.data);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
/**
|
|
208
|
+
* Fragment node — transient batch container. Inserting a Fragment splices
|
|
209
|
+
* its children into the target (mirroring DOM DocumentFragment semantics)
|
|
210
|
+
* and the Fragment itself becomes empty.
|
|
211
|
+
*/
|
|
212
|
+
export class FragmentNode extends AlloyNode {
|
|
213
|
+
nodeType = FRAGMENT_NODE;
|
|
214
|
+
cloneShallow() {
|
|
215
|
+
return new FragmentNode();
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
// #endregion
|
|
220
|
+
|
|
221
|
+
// #region Constructors
|
|
222
|
+
|
|
223
|
+
export function createTextNode(data) {
|
|
224
|
+
return new TextNode(data);
|
|
225
|
+
}
|
|
226
|
+
export function createComment(data = "") {
|
|
227
|
+
return new CommentNode(data);
|
|
228
|
+
}
|
|
229
|
+
export function createElement(localName, data) {
|
|
230
|
+
return new ElementNode(localName, data);
|
|
231
|
+
}
|
|
232
|
+
export function createFragment() {
|
|
233
|
+
return new FragmentNode();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
// #endregion
|
|
237
|
+
|
|
238
|
+
// #region Eager break propagation
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Element local-names whose mere presence forces the innermost enclosing
|
|
242
|
+
* `group` to break (= count as one "break leaf"). Mirrors the cases
|
|
243
|
+
* Prettier's `propagateBreaks` triggers on.
|
|
244
|
+
*/
|
|
245
|
+
function isBreakLeafElement(localName) {
|
|
246
|
+
return localName === "breakParent" || localName === "hardline" || localName === "hbr" || localName === "literalline" || localName === "lbr";
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* How many break-leaves does inserting/removing `n` add to its parent's
|
|
251
|
+
* subtree? `group` absorbs internal breaks → contributes 0 outward.
|
|
252
|
+
* `ifBreak` includes its `flatNode` count too (the alternate branch is
|
|
253
|
+
* stored on `data`, not in the regular tree).
|
|
254
|
+
*/
|
|
255
|
+
function effectiveBreakCount(n) {
|
|
256
|
+
const nt = n.nodeType;
|
|
257
|
+
if (nt === TEXT_NODE) {
|
|
258
|
+
const t = n;
|
|
259
|
+
// Inline (and cache) the textHasNewline check to avoid a cross-module
|
|
260
|
+
// call on the hot insert path.
|
|
261
|
+
let nl = t._nl;
|
|
262
|
+
if (nl < 0) {
|
|
263
|
+
const s = t.data;
|
|
264
|
+
nl = s.length > 0 && (s.indexOf("\n") !== -1 || s.indexOf("\r") !== -1) ? 1 : 0;
|
|
265
|
+
t._nl = nl;
|
|
266
|
+
}
|
|
267
|
+
return nl;
|
|
268
|
+
}
|
|
269
|
+
if (nt === ELEMENT_NODE) {
|
|
270
|
+
const el = n;
|
|
271
|
+
const ln = el.localName;
|
|
272
|
+
if (isBreakLeafElement(ln)) return 1;
|
|
273
|
+
if (ln === "group") {
|
|
274
|
+
const broken = el._breakCount > 0 || el.data?.shouldBreak === true;
|
|
275
|
+
return broken ? 1 : 0;
|
|
276
|
+
}
|
|
277
|
+
if (ln === "ifBreak") {
|
|
278
|
+
const flat = el.data?.flatNode;
|
|
279
|
+
return el._breakCount + (flat ? flat._breakCount : 0);
|
|
280
|
+
}
|
|
281
|
+
return el._breakCount;
|
|
282
|
+
}
|
|
283
|
+
return 0;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
/**
|
|
287
|
+
* Walk up from `start` adjusting `_breakCount` by `delta`. When the walk
|
|
288
|
+
* crosses a `group` element, the group itself absorbs the inner breaks,
|
|
289
|
+
* but if its own broken state transitions (0 ↔ >0) it must propagate ±1
|
|
290
|
+
* outward so that ancestor groups also become broken (matches Prettier's
|
|
291
|
+
* `propagateBreaks` cascade through groupStack).
|
|
292
|
+
*/
|
|
293
|
+
function propagateBreakDelta(start, delta) {
|
|
294
|
+
if (delta === 0) return;
|
|
295
|
+
let d = delta;
|
|
296
|
+
for (let n = start; n !== null; n = n.parentNode) {
|
|
297
|
+
if (n.nodeType !== ELEMENT_NODE) continue;
|
|
298
|
+
const el = n;
|
|
299
|
+
const before = el._breakCount;
|
|
300
|
+
el._breakCount = before + d;
|
|
301
|
+
if (el.localName === "group") {
|
|
302
|
+
const wasBroken = before > 0 || el.data?.shouldBreak === true;
|
|
303
|
+
const nowBroken = el._breakCount > 0 || el.data?.shouldBreak === true;
|
|
304
|
+
if (wasBroken === nowBroken) return;
|
|
305
|
+
d = nowBroken ? 1 : -1;
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
|
|
310
|
+
// #endregion
|
|
311
|
+
|
|
312
|
+
// #region Core mutation primitives
|
|
313
|
+
|
|
314
|
+
function normalize(input) {
|
|
315
|
+
if (typeof input === "string") return new TextNode(input);
|
|
316
|
+
if (typeof input === "number") return new TextNode(String(input));
|
|
317
|
+
return input;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
/**
|
|
321
|
+
* Splice `node` (or its children, if Fragment) into `parent` immediately
|
|
322
|
+
* before `ref` (or at end if `ref` is null). Detaches `node` from any
|
|
323
|
+
* existing parent first.
|
|
324
|
+
*/
|
|
325
|
+
/** Mutation listener — set by `debug/render.ts`. */
|
|
326
|
+
|
|
327
|
+
let mutationListener = null;
|
|
328
|
+
export function setMutationListener(l) {
|
|
329
|
+
mutationListener = l;
|
|
330
|
+
}
|
|
331
|
+
function insertBefore(parent, node, ref) {
|
|
332
|
+
// Fragment: splice its children, leaving the fragment itself empty.
|
|
333
|
+
if (node.nodeType === FRAGMENT_NODE) {
|
|
334
|
+
let child = node.firstChild;
|
|
335
|
+
node.firstChild = null;
|
|
336
|
+
node.lastChild = null;
|
|
337
|
+
while (child !== null) {
|
|
338
|
+
const next = child.nextSibling;
|
|
339
|
+
child.parentNode = null;
|
|
340
|
+
child.previousSibling = null;
|
|
341
|
+
child.nextSibling = null;
|
|
342
|
+
insertBefore(parent, child, ref);
|
|
343
|
+
child = next;
|
|
344
|
+
}
|
|
345
|
+
return;
|
|
346
|
+
}
|
|
347
|
+
if (node.parentNode !== null) detach(node);
|
|
348
|
+
node.parentNode = parent;
|
|
349
|
+
if (ref === null) {
|
|
350
|
+
// append
|
|
351
|
+
const last = parent.lastChild;
|
|
352
|
+
node.previousSibling = last;
|
|
353
|
+
node.nextSibling = null;
|
|
354
|
+
if (last !== null) last.nextSibling = node;else parent.firstChild = node;
|
|
355
|
+
parent.lastChild = node;
|
|
356
|
+
} else {
|
|
357
|
+
// insert before ref
|
|
358
|
+
const prev = ref.previousSibling;
|
|
359
|
+
node.previousSibling = prev;
|
|
360
|
+
node.nextSibling = ref;
|
|
361
|
+
ref.previousSibling = node;
|
|
362
|
+
if (prev !== null) prev.nextSibling = node;else parent.firstChild = node;
|
|
363
|
+
}
|
|
364
|
+
// Eager break propagation — keeps groups' `_breakCount` accurate so
|
|
365
|
+
// the printer can skip its `propagateBreaks` prepass.
|
|
366
|
+
propagateBreakDelta(parent, effectiveBreakCount(node));
|
|
367
|
+
if (mutationListener !== null) mutationListener.attached(node, parent);
|
|
368
|
+
}
|
|
369
|
+
function detach(node) {
|
|
370
|
+
const parent = node.parentNode;
|
|
371
|
+
if (parent === null) return;
|
|
372
|
+
// Subtract this subtree's break contribution from ancestors before
|
|
373
|
+
// unlinking, so `_breakCount` stays in sync.
|
|
374
|
+
propagateBreakDelta(parent, -effectiveBreakCount(node));
|
|
375
|
+
const prev = node.previousSibling;
|
|
376
|
+
const next = node.nextSibling;
|
|
377
|
+
if (prev !== null) prev.nextSibling = next;else parent.firstChild = next;
|
|
378
|
+
if (next !== null) next.previousSibling = prev;else parent.lastChild = prev;
|
|
379
|
+
node.parentNode = null;
|
|
380
|
+
node.previousSibling = null;
|
|
381
|
+
node.nextSibling = null;
|
|
382
|
+
if (mutationListener !== null) mutationListener.detached(node, parent);
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// #endregion
|
|
386
|
+
//# sourceMappingURL=node.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ELEMENT_NODE","TEXT_NODE","COMMENT_NODE","FRAGMENT_NODE","AlloyNode","parentNode","firstChild","lastChild","previousSibling","nextSibling","isEmpty","append","nodes","i","len","length","insertBefore","normalize","prepend","first","before","parent","after","ref","replaceWith","detach","remove","moveBefore","node","cloneNode","copy","cloneShallow","c","TextNode","nodeType","_w","_nl","constructor","data","CommentNode","ElementNode","_breakCount","localName","FragmentNode","createTextNode","createComment","createElement","createFragment","isBreakLeafElement","effectiveBreakCount","n","nt","t","nl","s","indexOf","el","ln","broken","shouldBreak","flat","flatNode","propagateBreakDelta","start","delta","d","wasBroken","nowBroken","input","String","mutationListener","setMutationListener","l","child","next","last","prev","attached","detached"],"sources":["../../../src/render/node.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared scaffolding for the direct AlloyNode printer.
|
|
3
|
+
*
|
|
4
|
+
* `Indent` management, `trim`, mode constants, and the cursor placeholder
|
|
5
|
+
* are kept separate from the main tree walk so the printer's control flow
|
|
6
|
+
* stays focused on AlloyNode dispatch.
|
|
7
|
+
*/
|
|
8
|
+
import { getStringWidth } from "./get-string-width.js";
|
|
9
|
+
import type { TextNode } from "./node.js";
|
|
10
|
+
export { getStringWidth };
|
|
11
|
+
/**
|
|
12
|
+
* Width of a TextNode's data, cached on the node (data is immutable
|
|
13
|
+
* post-construction). Includes an ASCII fast path — for the bulk of
|
|
14
|
+
* generated source, every char is < 0x80 so display width === string
|
|
15
|
+
* length and we skip the (expensive) emoji-regex / east-asian-width
|
|
16
|
+
* traversal that lives in `getStringWidth`.
|
|
17
|
+
*/
|
|
18
|
+
export declare function textWidth(t: TextNode): number;
|
|
19
|
+
/** Whether a TextNode's data contains \n or \r. Cached. */
|
|
20
|
+
export declare function textHasNewline(t: TextNode): boolean;
|
|
21
|
+
export declare const MODE_BREAK: unique symbol;
|
|
22
|
+
export declare const MODE_FLAT: unique symbol;
|
|
23
|
+
export declare const CURSOR_PLACEHOLDER: unique symbol;
|
|
24
|
+
export type Mode = typeof MODE_BREAK | typeof MODE_FLAT;
|
|
25
|
+
export interface PrintNodeOptions {
|
|
26
|
+
printWidth: number;
|
|
27
|
+
tabWidth: number;
|
|
28
|
+
useTabs?: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface IndentPart {
|
|
31
|
+
type: "indent" | "stringAlign" | "numberAlign";
|
|
32
|
+
n?: any;
|
|
33
|
+
}
|
|
34
|
+
export interface Indent {
|
|
35
|
+
value: string;
|
|
36
|
+
length: number;
|
|
37
|
+
queue: IndentPart[];
|
|
38
|
+
root?: Indent;
|
|
39
|
+
}
|
|
40
|
+
export declare function rootIndent(): Indent;
|
|
41
|
+
export declare function makeIndent(ind: Indent, options: PrintNodeOptions): Indent;
|
|
42
|
+
export declare function makeAlign(indent: Indent, widthOrDoc: any, options: PrintNodeOptions): Indent;
|
|
43
|
+
/**
|
|
44
|
+
* Roll back trailing spaces / tabs from the emitted output. Used by
|
|
45
|
+
* `trim` doc/element and at every newline before emitting indentation
|
|
46
|
+
* (Prettier semantics — see prettier/doc.js `trim2`).
|
|
47
|
+
*/
|
|
48
|
+
export declare function trimOut(out: (string | symbol)[]): number;
|
|
49
|
+
export declare function joinOut(out: (string | symbol)[]): string;
|
|
50
|
+
//# sourceMappingURL=printer-support.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"printer-support.d.ts","sourceRoot":"","sources":["../../../src/render/printer-support.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAE1C,OAAO,EAAE,cAAc,EAAE,CAAC;AAE1B;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,GAAG,MAAM,CAW7C;AAED,2DAA2D;AAC3D,wBAAgB,cAAc,CAAC,CAAC,EAAE,QAAQ,GAAG,OAAO,CAWnD;AAED,eAAO,MAAM,UAAU,eAAuB,CAAC;AAC/C,eAAO,MAAM,SAAS,eAAsB,CAAC;AAC7C,eAAO,MAAM,kBAAkB,eAAmB,CAAC;AAEnD,MAAM,MAAM,IAAI,GAAG,OAAO,UAAU,GAAG,OAAO,SAAS,CAAC;AAExD,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,aAAa,GAAG,aAAa,CAAC;IAC/C,CAAC,CAAC,EAAE,GAAG,CAAC;CACT;AAED,MAAM,WAAW,MAAM;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,EAAE,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,MAAM,CAEzE;AAED,wBAAgB,SAAS,CACvB,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,GAAG,EACf,OAAO,EAAE,gBAAgB,GACxB,MAAM,CAqBR;AA2DD;;;;GAIG;AACH,wBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CA0BxD;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,GAAG,MAAM,CAYxD"}
|