@alloy-js/core 0.4.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +53 -0
- package/babel.config.cjs +4 -1
- package/dist/src/binder.d.ts +20 -13
- package/dist/src/binder.d.ts.map +1 -1
- package/dist/src/binder.js +33 -15
- package/dist/src/binder.js.map +1 -1
- package/dist/src/code.d.ts +2 -2
- package/dist/src/code.d.ts.map +1 -1
- package/dist/src/code.js +4 -4
- package/dist/src/code.js.map +1 -1
- package/dist/src/components/Block.d.ts +25 -0
- package/dist/src/components/Block.d.ts.map +1 -0
- package/dist/src/components/Block.js +25 -0
- package/dist/src/components/Block.js.map +1 -0
- package/dist/src/components/Declaration.d.ts +1 -1
- package/dist/src/components/Declaration.d.ts.map +1 -1
- package/dist/src/components/Declaration.js +4 -0
- package/dist/src/components/Declaration.js.map +1 -1
- package/dist/src/components/For.d.ts +44 -0
- package/dist/src/components/For.d.ts.map +1 -0
- package/dist/src/components/For.js +41 -0
- package/dist/src/components/For.js.map +1 -0
- package/dist/src/components/Indent.d.ts +6 -10
- package/dist/src/components/Indent.d.ts.map +1 -1
- package/dist/src/components/Indent.js +7 -18
- package/dist/src/components/Indent.js.map +1 -1
- package/dist/src/components/List.d.ts +38 -0
- package/dist/src/components/List.d.ts.map +1 -0
- package/dist/src/components/List.js +40 -0
- package/dist/src/components/List.js.map +1 -0
- package/dist/src/components/MemberDeclaration.d.ts +1 -1
- package/dist/src/components/MemberDeclaration.d.ts.map +1 -1
- package/dist/src/components/MemberDeclaration.js.map +1 -1
- package/dist/src/components/MemberName.d.ts +1 -1
- package/dist/src/components/MemberName.d.ts.map +1 -1
- package/dist/src/components/MemberName.js +1 -1
- package/dist/src/components/MemberName.js.map +1 -1
- package/dist/src/components/MemberScope.d.ts +1 -1
- package/dist/src/components/MemberScope.d.ts.map +1 -1
- package/dist/src/components/MemberScope.js.map +1 -1
- package/dist/src/components/Name.d.ts +1 -1
- package/dist/src/components/Name.d.ts.map +1 -1
- package/dist/src/components/Name.js +1 -1
- package/dist/src/components/Name.js.map +1 -1
- package/dist/src/components/Output.d.ts +3 -2
- package/dist/src/components/Output.d.ts.map +1 -1
- package/dist/src/components/Output.js +12 -2
- package/dist/src/components/Output.js.map +1 -1
- package/dist/src/components/Scope.d.ts +1 -1
- package/dist/src/components/Scope.d.ts.map +1 -1
- package/dist/src/components/Scope.js.map +1 -1
- package/dist/src/components/Show.d.ts +8 -0
- package/dist/src/components/Show.d.ts.map +1 -0
- package/dist/src/components/Show.js +4 -0
- package/dist/src/components/Show.js.map +1 -0
- package/dist/src/components/SourceDirectory.d.ts +2 -2
- package/dist/src/components/SourceDirectory.d.ts.map +1 -1
- package/dist/src/components/SourceDirectory.js +1 -0
- package/dist/src/components/SourceDirectory.js.map +1 -1
- package/dist/src/components/SourceFile.d.ts +4 -8
- package/dist/src/components/SourceFile.d.ts.map +1 -1
- package/dist/src/components/SourceFile.js +6 -13
- package/dist/src/components/SourceFile.js.map +1 -1
- package/dist/src/components/StatementList.d.ts +9 -0
- package/dist/src/components/StatementList.d.ts.map +1 -0
- package/dist/src/components/StatementList.js +17 -0
- package/dist/src/components/StatementList.js.map +1 -0
- package/dist/src/components/Switch.d.ts +41 -0
- package/dist/src/components/Switch.d.ts.map +1 -0
- package/dist/src/components/Switch.js +41 -0
- package/dist/src/components/Switch.js.map +1 -0
- package/dist/src/components/Wrap.d.ts +20 -0
- package/dist/src/components/Wrap.d.ts.map +1 -0
- package/dist/src/components/Wrap.js +15 -0
- package/dist/src/components/Wrap.js.map +1 -0
- package/dist/src/components/index.d.ts +8 -1
- package/dist/src/components/index.d.ts.map +1 -1
- package/dist/src/components/index.js +7 -0
- package/dist/src/components/index.js.map +1 -1
- package/dist/src/components/stc/index.d.ts +89 -18
- package/dist/src/components/stc/index.d.ts.map +1 -1
- package/dist/src/components/stc/index.js +17 -1
- package/dist/src/components/stc/index.js.map +1 -1
- package/dist/src/context/index.d.ts +0 -1
- package/dist/src/context/index.d.ts.map +1 -1
- package/dist/src/context/index.js +0 -1
- package/dist/src/context/index.js.map +1 -1
- package/dist/src/context/member-declaration.d.ts +1 -0
- package/dist/src/context/member-declaration.d.ts.map +1 -1
- package/dist/src/context/member-declaration.js +4 -1
- package/dist/src/context/member-declaration.js.map +1 -1
- package/dist/src/context.d.ts.map +1 -1
- package/dist/src/context.js +3 -3
- package/dist/src/context.js.map +1 -1
- package/dist/src/index.browser.d.ts +3 -0
- package/dist/src/index.browser.d.ts.map +1 -0
- package/dist/src/index.browser.js +3 -0
- package/dist/src/index.browser.js.map +1 -0
- package/dist/src/index.d.ts +2 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/jsx-runtime.d.ts +151 -7
- package/dist/src/jsx-runtime.d.ts.map +1 -1
- package/dist/src/jsx-runtime.js +113 -12
- package/dist/src/jsx-runtime.js.map +1 -1
- package/dist/src/render.d.ts +107 -132
- package/dist/src/render.d.ts.map +1 -1
- package/dist/src/render.js +272 -178
- package/dist/src/render.js.map +1 -1
- package/dist/src/stc.d.ts +14 -0
- package/dist/src/stc.d.ts.map +1 -0
- package/dist/src/stc.js +52 -0
- package/dist/src/stc.js.map +1 -0
- package/dist/src/tap.d.ts +19 -0
- package/dist/src/tap.d.ts.map +1 -0
- package/dist/src/tap.js +39 -0
- package/dist/src/tap.js.map +1 -0
- package/dist/src/utils.d.ts +22 -15
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +95 -59
- package/dist/src/utils.js.map +1 -1
- package/dist/test/browser-build.test.d.ts +2 -0
- package/dist/test/browser-build.test.d.ts.map +1 -0
- package/dist/test/components/block.test.d.ts +2 -0
- package/dist/test/components/block.test.d.ts.map +1 -0
- package/dist/test/components/declaration.test.d.ts +2 -0
- package/dist/test/components/declaration.test.d.ts.map +1 -0
- package/dist/test/components/list.test.d.ts +2 -0
- package/dist/test/components/list.test.d.ts.map +1 -0
- package/dist/test/components/wrap.test.d.ts +2 -0
- package/dist/test/components/wrap.test.d.ts.map +1 -0
- package/dist/test/control-flow/for.test.d.ts +2 -0
- package/dist/test/control-flow/for.test.d.ts.map +1 -0
- package/dist/test/control-flow/match.test.d.ts +2 -0
- package/dist/test/control-flow/match.test.d.ts.map +1 -0
- package/dist/test/control-flow/show.test.d.ts +2 -0
- package/dist/test/control-flow/show.test.d.ts.map +1 -0
- package/dist/test/reactivity/cleanup.test.d.ts +2 -0
- package/dist/test/reactivity/cleanup.test.d.ts.map +1 -0
- package/dist/test/reactivity/memo.test.d.ts +2 -0
- package/dist/test/reactivity/memo.test.d.ts.map +1 -0
- package/dist/test/reactivity/untrack.test.d.ts +2 -0
- package/dist/test/reactivity/untrack.test.d.ts.map +1 -0
- package/dist/test/rendering/formatting.test.d.ts +2 -0
- package/dist/test/rendering/formatting.test.d.ts.map +1 -0
- package/dist/test/rendering/memoization.test.d.ts +2 -0
- package/dist/test/rendering/memoization.test.d.ts.map +1 -0
- package/dist/test/split-props.test.d.ts +2 -0
- package/dist/test/split-props.test.d.ts.map +1 -0
- package/dist/test/stc.test.d.ts.map +1 -1
- package/dist/test/utils.test.d.ts.map +1 -1
- package/dist/testing/extend-expect.js +4 -4
- package/dist/testing/extend-expect.js.map +1 -1
- package/dist/testing/render.d.ts +2 -3
- package/dist/testing/render.d.ts.map +1 -1
- package/dist/testing/render.js +2 -4
- package/dist/testing/render.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -9
- package/src/binder.ts +60 -50
- package/src/code.ts +17 -12
- package/src/components/Block.tsx +44 -0
- package/src/components/Declaration.tsx +10 -4
- package/src/components/For.tsx +81 -0
- package/src/components/Indent.tsx +20 -27
- package/src/components/List.tsx +94 -0
- package/src/components/MemberDeclaration.tsx +9 -6
- package/src/components/MemberScope.tsx +4 -2
- package/src/components/Output.tsx +27 -14
- package/src/components/Scope.tsx +4 -2
- package/src/components/Show.tsx +11 -0
- package/src/components/SourceDirectory.tsx +6 -2
- package/src/components/SourceFile.tsx +13 -17
- package/src/components/StatementList.tsx +16 -0
- package/src/components/Switch.tsx +62 -0
- package/src/components/Wrap.tsx +29 -0
- package/src/components/index.tsx +8 -1
- package/src/components/stc/index.ts +18 -1
- package/src/context/index.ts +0 -1
- package/src/context/member-declaration.ts +9 -1
- package/src/context.ts +2 -3
- package/src/index.browser.ts +2 -0
- package/src/index.ts +2 -0
- package/src/jsx-runtime.ts +265 -23
- package/src/render.ts +382 -200
- package/src/stc.ts +95 -0
- package/src/tap.ts +69 -0
- package/src/utils.ts +162 -95
- package/temp/api.json +8042 -1886
- package/test/browser-build.test.ts +91 -0
- package/test/children.test.tsx +8 -10
- package/test/components/block.test.tsx +48 -0
- package/test/components/declaration.test.tsx +37 -0
- package/test/components/list.test.tsx +91 -0
- package/test/components/slot.test.tsx +31 -25
- package/test/components/source-file.test.tsx +11 -31
- package/test/components/wrap.test.tsx +42 -0
- package/test/control-flow/for.test.tsx +194 -0
- package/test/control-flow/match.test.tsx +49 -0
- package/test/control-flow/show.test.tsx +25 -0
- package/test/name-policy.test.tsx +5 -5
- package/test/reactivity/cleanup.test.tsx +91 -0
- package/test/reactivity/memo.test.tsx +17 -0
- package/test/reactivity/ref-rendering.test.tsx +3 -8
- package/test/reactivity/test.test.tsx +7 -6
- package/test/reactivity/untrack.test.ts +33 -0
- package/test/rendering/basic.test.tsx +25 -47
- package/test/rendering/code.test.tsx +3 -3
- package/test/rendering/formatting.test.tsx +487 -0
- package/test/rendering/indent.test.tsx +42 -529
- package/test/rendering/memoization.test.tsx +30 -0
- package/test/split-props.test.ts +87 -0
- package/test/stc.test.tsx +29 -8
- package/test/symbols.test.ts +132 -3
- package/test/utils.test.tsx +129 -20
- package/testing/extend-expect.ts +14 -4
- package/testing/render.ts +2 -4
- package/testing/vitest.d.ts +6 -1
- package/vitest.config.ts +1 -1
- package/dist/src/context/indent.d.ts +0 -5
- package/dist/src/context/indent.d.ts.map +0 -1
- package/dist/src/context/indent.js +0 -8
- package/dist/src/context/indent.js.map +0 -1
- package/dist/test/rendering/linebreaks.test.d.ts +0 -2
- package/dist/test/rendering/linebreaks.test.d.ts.map +0 -1
- package/src/context/indent.ts +0 -17
- package/test/rendering/linebreaks.test.tsx +0 -72
package/dist/src/render.js
CHANGED
|
@@ -1,154 +1,135 @@
|
|
|
1
1
|
import { isRef } from "@vue/reactivity";
|
|
2
|
-
import {
|
|
2
|
+
import { doc } from "prettier";
|
|
3
|
+
import prettier from "prettier/doc.js";
|
|
3
4
|
import { useContext } from "./context.js";
|
|
4
|
-
import { IndentContext } from "./context/indent.js";
|
|
5
5
|
import { SourceFileContext } from "./context/source-file.js";
|
|
6
|
-
import { effect, getContext, isComponentCreator, popStack, printRenderStack, pushStack, root, untrack } from "./jsx-runtime.js";
|
|
6
|
+
import { effect, getContext, getElementCache, isComponentCreator, isCustomContext, isIntrinsicElement, popStack, printRenderStack, pushStack, root, untrack } from "./jsx-runtime.js";
|
|
7
7
|
import { isRefkey } from "./refkey.js";
|
|
8
|
+
const {
|
|
9
|
+
builders: {
|
|
10
|
+
align,
|
|
11
|
+
breakParent,
|
|
12
|
+
dedent,
|
|
13
|
+
dedentToRoot,
|
|
14
|
+
fill,
|
|
15
|
+
group,
|
|
16
|
+
hardline,
|
|
17
|
+
indent,
|
|
18
|
+
line,
|
|
19
|
+
lineSuffix,
|
|
20
|
+
lineSuffixBoundary,
|
|
21
|
+
literalline,
|
|
22
|
+
markAsRoot,
|
|
23
|
+
softline,
|
|
24
|
+
ifBreak
|
|
25
|
+
}
|
|
26
|
+
} = prettier;
|
|
8
27
|
|
|
9
28
|
/**
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
29
|
+
* Turning components into source text involves three different trees produced
|
|
30
|
+
* sequentially:
|
|
31
|
+
*
|
|
32
|
+
* 1. Component tree, built by the nesting of components
|
|
33
|
+
* 2. Rendered text tree, produced by *rendering* the component tree
|
|
34
|
+
* 3. Document tree, produced by *printing* the rendered text tree
|
|
35
|
+
*
|
|
36
|
+
* Finally, the document tree is converted to text via `prettier`. Let's look at
|
|
37
|
+
* each of these trees and the conversions in detail.
|
|
38
|
+
*
|
|
39
|
+
* # Component tree
|
|
40
|
+
*
|
|
41
|
+
* The component tree is built by JSX or STC templates. The nodes in this tree
|
|
42
|
+
* are defined by the type `Child` and are one of the following
|
|
43
|
+
*
|
|
44
|
+
* ## Primitive values
|
|
45
|
+
*
|
|
46
|
+
* Strings in the tree are placed into the rendered text tree as-is. Numbers are
|
|
47
|
+
* converted to strings. Falsy primitive values and booleans are converted to
|
|
48
|
+
* empty strings (and may cause a line break to be ignored, see below).
|
|
49
|
+
*
|
|
50
|
+
* ## Nullary functions
|
|
51
|
+
*
|
|
52
|
+
* Nullary functions represent computed or reactive values in the component
|
|
53
|
+
* tree, such as expressions placed into a JSX template with curly brackets.
|
|
54
|
+
* Nullary functions return `Children` which are then recursively rendered.
|
|
55
|
+
* Nullary functions are invoked in an effect which will update the rendered
|
|
56
|
+
* text tree when any reactive dependencies change.
|
|
57
|
+
*
|
|
58
|
+
* ## Component creators
|
|
13
59
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
60
|
+
* Component creators are a special kind of nullary function which instantiate
|
|
61
|
+
* components in order to get their children which are then recursively
|
|
62
|
+
* rendered. Component creators have some special rendering behavior, such as
|
|
63
|
+
* tracking the stack of rendered components. Like other nullary functions,
|
|
64
|
+
* component creators are invoked in an effect which will update the rendered
|
|
65
|
+
* text tree when any reactive dependencies change.
|
|
18
66
|
*
|
|
19
|
-
*
|
|
20
|
-
* the component tree. The render tree is constructed by traversing the
|
|
21
|
-
* component tree, invoking components, wrapping memos, doing whitespace
|
|
22
|
-
* normalization, and other activities. There are four types of nodes in the
|
|
23
|
-
* render tree.
|
|
67
|
+
* ## Refs
|
|
24
68
|
*
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
*
|
|
28
|
-
*
|
|
29
|
-
* 3. Memos, which are wrapped in a reactive effect which updates its render
|
|
30
|
-
* tree nodes when its value changes.
|
|
31
|
-
* 4. Arrays of these things.
|
|
69
|
+
* Refs are wrapped in a nullary function and rendered in an effect which will
|
|
70
|
+
* update the rendered text tree when the ref's value changes. This is
|
|
71
|
+
* essentially a syntactic convenience, allowing JSX templates to contain
|
|
72
|
+
* `\{ someRef \}` instead of `\{ someRef.value \}`.
|
|
32
73
|
*
|
|
33
|
-
*
|
|
34
|
-
* component increases the literal indent level and then embeds a component,
|
|
35
|
-
* memo, or array, the contents of that substitution are indented appropriately.
|
|
36
|
-
* This is accomplished by wrapping those substitutions in an indent component.
|
|
74
|
+
* ## Refkey
|
|
37
75
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
76
|
+
* Refkeys are replaced with a component creator for the Reference component
|
|
77
|
+
* associated with the current source file. This allows creating references by
|
|
78
|
+
* placing them directly in the component tree e.g. `{ someRefkey }`.
|
|
40
79
|
*
|
|
41
|
-
*
|
|
42
|
-
* array of elements):
|
|
43
|
-
* 1. Normalize all primitive values other than strings to strings.
|
|
44
|
-
* Recursively normalize nested array elements.
|
|
45
|
-
* 2. Use the first text node to determine the literal indent level of the
|
|
46
|
-
* children. Remove all preceding whitespace - any indent of the first
|
|
47
|
-
* line is provided in the text nodes preceding the reference to this
|
|
48
|
-
* component. If the first element is not a literal string, then no
|
|
49
|
-
* literal indent is applied, and all indentation within the component
|
|
50
|
-
* becomes significant.
|
|
51
|
-
* 3. For each child of the component, render it:
|
|
52
|
-
* 1. If it is a string, reindent it by splitting on lines and replacing
|
|
53
|
-
* the detected literal whitespace with the current indent level,
|
|
54
|
-
* skipping the first line. If the string ends with a larger literal
|
|
55
|
-
* indent than the detected literal indent, then a subsequent child
|
|
56
|
-
* will be indented.
|
|
57
|
-
* 2. If it's a component, if the next child should be indented, create an
|
|
58
|
-
* Indent component and wrap the component's children in it.
|
|
59
|
-
* 3. If it's a function, if the next child should be indented, wrap it in
|
|
60
|
-
* an indent component. Any elements processed as a result of executing
|
|
61
|
-
* the memo are treated as first elements in a child array are with
|
|
62
|
-
* respect to establishing literal indent level and whitespace trimming
|
|
63
|
-
* behavior.
|
|
64
|
-
* 4. If it's an array, if the next child should be indented, create an
|
|
65
|
-
* Indent component and wrap it the array in it.
|
|
80
|
+
* ## CustomContext
|
|
66
81
|
*
|
|
67
|
-
*
|
|
82
|
+
* CustomContext is a special kind of component which allows rendering children
|
|
83
|
+
* within a custom reactive context. This enables components to manually manage
|
|
84
|
+
* the lifetime of their reactive contexts.
|
|
68
85
|
*
|
|
69
|
-
* ##
|
|
86
|
+
* ## IntrinsicElement
|
|
70
87
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* <Indent>
|
|
74
|
-
* <Foo />
|
|
75
|
-
* <Foo />
|
|
76
|
-
* </Indent>
|
|
77
|
-
* ```
|
|
88
|
+
* Various intrinsic elements exist to control formatting. These elements
|
|
89
|
+
* provide Print Hooks that are called during Printing.
|
|
78
90
|
*
|
|
79
|
-
*
|
|
80
|
-
* ```
|
|
81
|
-
* [
|
|
82
|
-
* createComponent(Indent, {
|
|
83
|
-
* get children() {
|
|
84
|
-
* return [
|
|
85
|
-
* "\n ",
|
|
86
|
-
* createComponent(Foo, {}),
|
|
87
|
-
* "\n ",
|
|
88
|
-
* createComponent(Foo, {}),
|
|
89
|
-
* "\n"
|
|
90
|
-
* ]
|
|
91
|
-
* }
|
|
92
|
-
* })
|
|
93
|
-
* ]
|
|
94
|
-
* ```
|
|
91
|
+
* # Rendered Text Tree
|
|
95
92
|
*
|
|
96
|
-
*
|
|
97
|
-
*
|
|
98
|
-
*
|
|
99
|
-
*
|
|
100
|
-
* " ", // indent from the children of Indent
|
|
101
|
-
* [ // component for Foo
|
|
102
|
-
* "Foo" // result of calling Foo
|
|
103
|
-
* ],
|
|
104
|
-
* "\n ", // indent and line break from the children of Ident
|
|
105
|
-
* [ "Foo" ] // second foo component
|
|
106
|
-
* ]
|
|
107
|
-
* ]
|
|
108
|
-
* ```
|
|
109
|
-
* ### Rendered text
|
|
110
|
-
* ```
|
|
111
|
-
* FooFoo
|
|
112
|
-
* ```
|
|
93
|
+
* This tree is a nested array structure containing the rendered output of all
|
|
94
|
+
* the components in the component tree. This structure is updated reactively
|
|
95
|
+
* when reactive dependencies change. The nodes in this tree are predominantly
|
|
96
|
+
* strings, but can also be Print Hooks.
|
|
113
97
|
*
|
|
114
|
-
*
|
|
98
|
+
* This tree is built by the `renderTree` function.
|
|
115
99
|
*
|
|
116
|
-
*
|
|
117
|
-
* ```
|
|
118
|
-
* <>
|
|
119
|
-
* base
|
|
120
|
-
* <Foo /> <Foo />
|
|
121
|
-
* </>
|
|
122
|
-
* ```
|
|
100
|
+
* # Document Tree
|
|
123
101
|
*
|
|
124
|
-
*
|
|
125
|
-
*
|
|
126
|
-
*
|
|
127
|
-
*
|
|
128
|
-
* [ // node for implicitly created Indent component
|
|
129
|
-
* [ // node for its context provider [ "Foo" ], // contents of Foo "\n"
|
|
130
|
-
* ]
|
|
131
|
-
* ```
|
|
132
|
-
* ## Rendered text
|
|
133
|
-
* ```
|
|
134
|
-
* base
|
|
135
|
-
* Foo Foo
|
|
136
|
-
* ```
|
|
102
|
+
* This tree is constructed by calling `printTree` on the rendered text tree.
|
|
103
|
+
* The rendered text tree is walked and the appropriate Prettier builders are
|
|
104
|
+
* called to produce a document tree. The result is then passed to Prettier's
|
|
105
|
+
* `printDocToString` function to produce the final source text.
|
|
137
106
|
*/
|
|
138
107
|
|
|
139
|
-
//
|
|
140
|
-
|
|
141
108
|
const nodesToContext = new WeakMap();
|
|
142
109
|
export function getContextForRenderNode(node) {
|
|
143
110
|
return nodesToContext.get(node);
|
|
144
111
|
}
|
|
112
|
+
export const printHookTag = Symbol();
|
|
113
|
+
export function createRenderTreeHook(subtree, hooks) {
|
|
114
|
+
return {
|
|
115
|
+
[printHookTag]: true,
|
|
116
|
+
subtree,
|
|
117
|
+
...hooks
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
export function isPrintHook(type) {
|
|
121
|
+
return typeof type === "object" && type !== null && printHookTag in type;
|
|
122
|
+
}
|
|
145
123
|
function traceRender(phase, message) {
|
|
146
124
|
return false;
|
|
147
|
-
//
|
|
125
|
+
//console.log(`[\x1b[34m${phase}\x1b[0m]: ${message()}`);
|
|
148
126
|
}
|
|
149
|
-
export function render(children) {
|
|
127
|
+
export function render(children, options) {
|
|
150
128
|
const tree = renderTree(children);
|
|
151
129
|
let rootDirectory = undefined;
|
|
130
|
+
|
|
131
|
+
// when passing Output, the first render tree child is the Output component.
|
|
132
|
+
const rootRenderOptions = Array.isArray(tree) ? getContextForRenderNode(tree[0])?.meta?.printOptions ?? {} : {};
|
|
152
133
|
collectSourceFiles(undefined, tree);
|
|
153
134
|
if (!rootDirectory) {
|
|
154
135
|
throw new Error("No root directory found. Make sure you are using the Output component.");
|
|
@@ -183,7 +164,11 @@ export function render(children) {
|
|
|
183
164
|
kind: "file",
|
|
184
165
|
path: context.meta?.sourceFile.path,
|
|
185
166
|
filetype: context.meta?.sourceFile.filetype,
|
|
186
|
-
contents: root
|
|
167
|
+
contents: printTree(root, {
|
|
168
|
+
printWidth: options?.printWidth ?? context.meta?.printOptions?.printWidth ?? rootRenderOptions.printWidth,
|
|
169
|
+
tabWidth: options?.tabWidth ?? context.meta?.printOptions?.tabWidth ?? rootRenderOptions.tabWidth,
|
|
170
|
+
useTabs: options?.useTabs ?? context.meta?.printOptions?.useTabs ?? rootRenderOptions.useTabs
|
|
171
|
+
})
|
|
187
172
|
};
|
|
188
173
|
currentDirectory.contents.push(sourceFile);
|
|
189
174
|
} else {
|
|
@@ -198,12 +183,9 @@ export function render(children) {
|
|
|
198
183
|
}
|
|
199
184
|
export function renderTree(children) {
|
|
200
185
|
const rootElem = [];
|
|
201
|
-
const state = {
|
|
202
|
-
newline: false
|
|
203
|
-
};
|
|
204
186
|
try {
|
|
205
187
|
root(() => {
|
|
206
|
-
renderWorker(rootElem, children
|
|
188
|
+
renderWorker(rootElem, children);
|
|
207
189
|
});
|
|
208
190
|
} catch (e) {
|
|
209
191
|
printRenderStack();
|
|
@@ -211,71 +193,151 @@ export function renderTree(children) {
|
|
|
211
193
|
}
|
|
212
194
|
return rootElem;
|
|
213
195
|
}
|
|
214
|
-
function renderWorker(node, children
|
|
215
|
-
traceRender("render", dumpChildren(children));
|
|
196
|
+
function renderWorker(node, children) {
|
|
197
|
+
traceRender("render", () => dumpChildren(children));
|
|
216
198
|
if (Array.isArray(node)) {
|
|
217
199
|
nodesToContext.set(node, getContext());
|
|
218
200
|
}
|
|
219
|
-
const indent = useContext(IndentContext);
|
|
220
201
|
if (Array.isArray(children)) {
|
|
221
|
-
for (const child of children) {
|
|
222
|
-
appendChild(node, child
|
|
202
|
+
for (const child of children.flat(Infinity)) {
|
|
203
|
+
appendChild(node, child);
|
|
223
204
|
}
|
|
224
205
|
} else {
|
|
225
|
-
appendChild(node, children
|
|
206
|
+
appendChild(node, children);
|
|
226
207
|
}
|
|
227
208
|
}
|
|
228
|
-
function appendChild(node, rawChild
|
|
229
|
-
traceRender("appendChild",
|
|
209
|
+
function appendChild(node, rawChild) {
|
|
210
|
+
traceRender("appendChild", () => debugPrintChild(rawChild));
|
|
230
211
|
const child = normalizeChild(rawChild);
|
|
231
212
|
if (typeof child === "string") {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
213
|
+
node.push(child);
|
|
214
|
+
} else {
|
|
215
|
+
const cache = getElementCache();
|
|
216
|
+
if (cache.has(child)) {
|
|
217
|
+
traceRender("appendChild:cached", () => debugPrintChild(child));
|
|
218
|
+
node.push(cache.get(child));
|
|
219
|
+
return;
|
|
236
220
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
221
|
+
if (isCustomContext(child)) {
|
|
222
|
+
traceRender("appendChild:custom-context", () => debugPrintChild(child));
|
|
223
|
+
child.useCustomContext(children => {
|
|
224
|
+
const newNode = [];
|
|
225
|
+
renderWorker(newNode, children);
|
|
226
|
+
node.push(newNode);
|
|
227
|
+
cache.set(child, newNode);
|
|
228
|
+
});
|
|
229
|
+
} else if (isIntrinsicElement(child)) {
|
|
230
|
+
// don't need a new context here because intrinsics are never reactive
|
|
231
|
+
traceRender("appendChild:intrinsic-element", () => debugPrintChild(child));
|
|
232
|
+
const newNode = [];
|
|
233
|
+
function formatHookWithChildren(command) {
|
|
234
|
+
node.push(createRenderTreeHook(newNode, {
|
|
235
|
+
print(tree, print) {
|
|
236
|
+
return command(print(tree));
|
|
237
|
+
}
|
|
238
|
+
}));
|
|
239
|
+
renderWorker(newNode, child.props.children);
|
|
245
240
|
}
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
}, child);
|
|
253
|
-
} else if (typeof child === "function") {
|
|
254
|
-
traceRender("appendChild:memo", child.toString());
|
|
255
|
-
const index = node.length;
|
|
256
|
-
effect(prev => {
|
|
257
|
-
traceRender("memoEffect:run", "");
|
|
258
|
-
let res = child();
|
|
259
|
-
while (typeof res === "function" && !isComponentCreator(res)) {
|
|
260
|
-
res = res();
|
|
241
|
+
function formatHook(command) {
|
|
242
|
+
return node.push(createRenderTreeHook(newNode, {
|
|
243
|
+
print() {
|
|
244
|
+
return command;
|
|
245
|
+
}
|
|
246
|
+
}));
|
|
261
247
|
}
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
248
|
+
switch (child.name) {
|
|
249
|
+
case "indent":
|
|
250
|
+
return formatHookWithChildren(indent);
|
|
251
|
+
case "fill":
|
|
252
|
+
return formatHookWithChildren(fill);
|
|
253
|
+
case "group":
|
|
254
|
+
node.push(createRenderTreeHook(newNode, {
|
|
255
|
+
print(tree, print) {
|
|
256
|
+
return group(print(tree), {
|
|
257
|
+
id: child.props.id,
|
|
258
|
+
shouldBreak: child.props.shouldBreak
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
}));
|
|
262
|
+
renderWorker(newNode, child.props.children);
|
|
263
|
+
return;
|
|
264
|
+
case "line":
|
|
265
|
+
case "br":
|
|
266
|
+
return formatHook(line);
|
|
267
|
+
case "hbr":
|
|
268
|
+
case "hardline":
|
|
269
|
+
return formatHook(hardline);
|
|
270
|
+
case "sbr":
|
|
271
|
+
case "softline":
|
|
272
|
+
return formatHook(softline);
|
|
273
|
+
case "literalline":
|
|
274
|
+
case "lbr":
|
|
275
|
+
return formatHook(literalline);
|
|
276
|
+
case "align":
|
|
277
|
+
node.push(createRenderTreeHook(newNode, {
|
|
278
|
+
print(tree, print) {
|
|
279
|
+
return align(child.props.width ?? child.props.string, print(tree));
|
|
280
|
+
}
|
|
281
|
+
}));
|
|
282
|
+
renderWorker(newNode, child.props.children);
|
|
283
|
+
return;
|
|
284
|
+
case "lineSuffix":
|
|
285
|
+
return formatHookWithChildren(lineSuffix);
|
|
286
|
+
case "lineSuffixBoundary":
|
|
287
|
+
return formatHook(lineSuffixBoundary);
|
|
288
|
+
case "breakParent":
|
|
289
|
+
return formatHook(breakParent);
|
|
290
|
+
case "dedent":
|
|
291
|
+
return formatHookWithChildren(dedent);
|
|
292
|
+
case "dedentToRoot":
|
|
293
|
+
return formatHookWithChildren(dedentToRoot);
|
|
294
|
+
case "markAsRoot":
|
|
295
|
+
return formatHookWithChildren(markAsRoot);
|
|
296
|
+
case "ifBreak":
|
|
297
|
+
node.push(createRenderTreeHook(newNode, {
|
|
298
|
+
print(tree, print) {
|
|
299
|
+
return ifBreak(print(tree[0]), print(tree[1]));
|
|
300
|
+
}
|
|
301
|
+
}));
|
|
302
|
+
newNode.push([], []);
|
|
303
|
+
renderWorker(newNode[0], child.props.children);
|
|
304
|
+
renderWorker(newNode[1], child.props.flatContents);
|
|
305
|
+
return;
|
|
306
|
+
default:
|
|
307
|
+
throw new Error("Unknown intrinsic element");
|
|
308
|
+
}
|
|
309
|
+
} else if (isComponentCreator(child)) {
|
|
310
|
+
effect(() => {
|
|
311
|
+
traceRender("appendChild:component", () => debugPrintChild(child));
|
|
312
|
+
const componentRoot = [];
|
|
313
|
+
pushStack(child.component, child.props);
|
|
314
|
+
renderWorker(componentRoot, untrack(child));
|
|
315
|
+
popStack();
|
|
316
|
+
node.push(componentRoot);
|
|
317
|
+
cache.set(child, componentRoot);
|
|
318
|
+
traceRender("appendChild:component-done", () => debugPrintChild(child));
|
|
319
|
+
});
|
|
320
|
+
} else if (typeof child === "function") {
|
|
321
|
+
traceRender("appendChild:memo", () => child.toString());
|
|
322
|
+
const index = node.length;
|
|
323
|
+
effect(() => {
|
|
324
|
+
traceRender("memoEffect:run", () => "");
|
|
325
|
+
let res = child();
|
|
326
|
+
while (typeof res === "function" && !isComponentCreator(res)) {
|
|
327
|
+
res = res();
|
|
328
|
+
}
|
|
329
|
+
const newNodes = [];
|
|
330
|
+
renderWorker(newNodes, res);
|
|
331
|
+
node[index] = newNodes;
|
|
332
|
+
cache.set(child, newNodes);
|
|
333
|
+
return newNodes;
|
|
334
|
+
});
|
|
335
|
+
traceRender("appendChild:memo-done", () => "");
|
|
336
|
+
} else {
|
|
337
|
+
throw new Error("Unexpected child type");
|
|
338
|
+
}
|
|
273
339
|
}
|
|
274
340
|
}
|
|
275
|
-
function reindent(str, indent) {
|
|
276
|
-
const lines = str.split("\n");
|
|
277
|
-
return [lines[0], ...lines.slice(1).map(line => indent + line)].join("\n");
|
|
278
|
-
}
|
|
279
341
|
function normalizeChild(child) {
|
|
280
342
|
if (Array.isArray(child)) {
|
|
281
343
|
return child.map(normalizeChild);
|
|
@@ -295,23 +357,55 @@ function normalizeChild(child) {
|
|
|
295
357
|
refkey: child
|
|
296
358
|
});
|
|
297
359
|
};
|
|
360
|
+
} else if (isCustomContext(child)) {
|
|
361
|
+
return child;
|
|
362
|
+
} else if (isIntrinsicElement(child)) {
|
|
363
|
+
return child;
|
|
298
364
|
} else {
|
|
299
365
|
return String(child);
|
|
300
366
|
}
|
|
301
367
|
}
|
|
302
368
|
function dumpChildren(children) {
|
|
303
369
|
if (Array.isArray(children)) {
|
|
304
|
-
return `[ ${children.map(
|
|
370
|
+
return `[ ${children.map(debugPrintChild).join(", ")} ]`;
|
|
305
371
|
}
|
|
306
|
-
return
|
|
372
|
+
return debugPrintChild(children);
|
|
307
373
|
}
|
|
308
|
-
function
|
|
374
|
+
function debugPrintChild(child) {
|
|
309
375
|
if (isComponentCreator(child)) {
|
|
310
376
|
return "<" + child.component.name + ">";
|
|
311
377
|
} else if (typeof child === "function") {
|
|
312
378
|
return "$memo";
|
|
379
|
+
} else if (isRef(child)) {
|
|
380
|
+
return "$ref";
|
|
313
381
|
} else {
|
|
314
382
|
return JSON.stringify(child);
|
|
315
383
|
}
|
|
316
384
|
}
|
|
385
|
+
const defaultPrintTreeOptions = {
|
|
386
|
+
printWidth: 80,
|
|
387
|
+
tabWidth: 2
|
|
388
|
+
};
|
|
389
|
+
export function printTree(tree, options) {
|
|
390
|
+
options = {
|
|
391
|
+
...defaultPrintTreeOptions,
|
|
392
|
+
...Object.fromEntries(Object.entries(options ?? {}).filter(([_, v]) => v !== undefined))
|
|
393
|
+
};
|
|
394
|
+
const d = printTreeWorker(tree);
|
|
395
|
+
return doc.printer.printDocToString(d, options).formatted;
|
|
396
|
+
}
|
|
397
|
+
function printTreeWorker(tree) {
|
|
398
|
+
const doc = [];
|
|
399
|
+
for (const node of tree) {
|
|
400
|
+
if (typeof node === "string") {
|
|
401
|
+
const normalizedNode = node.split(/\r?\n/).flatMap((line, index, array) => index < array.length - 1 ? [line, hardline] : [line]);
|
|
402
|
+
doc.push(normalizedNode);
|
|
403
|
+
} else if (isPrintHook(node)) {
|
|
404
|
+
doc.push(node.print(node.subtree, printTreeWorker));
|
|
405
|
+
} else {
|
|
406
|
+
doc.push(printTreeWorker(node));
|
|
407
|
+
}
|
|
408
|
+
}
|
|
409
|
+
return doc;
|
|
410
|
+
}
|
|
317
411
|
//# sourceMappingURL=render.js.map
|
package/dist/src/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","names":["isRef","Indent","useContext","IndentContext","SourceFileContext","effect","getContext","isComponentCreator","popStack","printRenderStack","pushStack","root","untrack","isRefkey","nodesToContext","WeakMap","getContextForRenderNode","node","get","traceRender","phase","message","render","children","tree","renderTree","rootDirectory","undefined","collectSourceFiles","Error","currentDirectory","Array","isArray","context","recurse","meta","directory","kind","path","contents","push","sourceFile","filetype","flat","Infinity","join","cwd","child","rootElem","state","newline","renderWorker","e","dumpChildren","set","indent","appendChild","rawChild","indentState","printChild","normalizeChild","match","reindented","reindent","indentString","JSON","stringify","component","componentRoot","props","toString","index","length","prev","res","newNodes","str","lines","split","slice","map","line","value","sfContext","reference","refkey","String","name"],"sources":["../../src/render.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,iBAAiB;AACvC,SAASC,MAAM,QAAqB,wBAAwB;AAC5D,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,aAAa,QAAQ,qBAAqB;AACnD,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAIEC,MAAM,EACNC,UAAU,EACVC,kBAAkB,EAClBC,QAAQ,EACRC,gBAAgB,EAChBC,SAAS,EACTC,IAAI,EACJC,OAAO,QACF,kBAAkB;AACzB,SAASC,QAAQ,QAAQ,aAAa;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAcA,MAAMC,cAAc,GAAG,IAAIC,OAAO,CAA0B,CAAC;AAE7D,OAAO,SAASC,uBAAuBA,CAACC,IAAoB,EAAE;EAC5D,OAAOH,cAAc,CAACI,GAAG,CAACD,IAAI,CAAC;AACjC;AAKA,SAASE,WAAWA,CAACC,KAAa,EAAEC,OAAe,EAAE;EACnD,OAAO,KAAK;EACZ;AACF;AAEA,OAAO,SAASC,MAAMA,CAACC,QAAkB,EAAmB;EAC1D,MAAMC,IAAI,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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"render.js","names":["isRef","doc","prettier","useContext","SourceFileContext","effect","getContext","getElementCache","isComponentCreator","isCustomContext","isIntrinsicElement","popStack","printRenderStack","pushStack","root","untrack","isRefkey","builders","align","breakParent","dedent","dedentToRoot","fill","group","hardline","indent","line","lineSuffix","lineSuffixBoundary","literalline","markAsRoot","softline","ifBreak","nodesToContext","WeakMap","getContextForRenderNode","node","get","printHookTag","Symbol","createRenderTreeHook","subtree","hooks","isPrintHook","type","traceRender","phase","message","render","children","options","tree","renderTree","rootDirectory","undefined","rootRenderOptions","Array","isArray","meta","printOptions","collectSourceFiles","Error","currentDirectory","context","recurse","directory","kind","path","contents","push","sourceFile","filetype","printTree","printWidth","tabWidth","useTabs","cwd","child","rootElem","renderWorker","e","dumpChildren","set","flat","Infinity","appendChild","rawChild","debugPrintChild","normalizeChild","cache","has","useCustomContext","newNode","formatHookWithChildren","command","print","props","formatHook","name","id","shouldBreak","width","string","flatContents","componentRoot","component","toString","index","length","res","newNodes","map","value","sfContext","reference","refkey","String","join","JSON","stringify","defaultPrintTreeOptions","Object","fromEntries","entries","filter","_","v","d","printTreeWorker","printer","printDocToString","formatted","normalizedNode","split","flatMap","array"],"sources":["../../src/render.ts"],"sourcesContent":[null],"mappings":"AAAA,SAASA,KAAK,QAAQ,iBAAiB;AACvC,SAAcC,GAAG,QAAQ,UAAU;AACnC,OAAOC,QAAQ,MAAM,iBAAiB;AACtC,SAASC,UAAU,QAAQ,cAAc;AACzC,SAASC,iBAAiB,QAAQ,0BAA0B;AAC5D,SAKEC,MAAM,EACNC,UAAU,EACVC,eAAe,EAEfC,kBAAkB,EAClBC,eAAe,EACfC,kBAAkB,EAClBC,QAAQ,EACRC,gBAAgB,EAChBC,SAAS,EACTC,IAAI,EACJC,OAAO,QACF,kBAAkB;AACzB,SAASC,QAAQ,QAAQ,aAAa;AACtC,MAAM;EACJC,QAAQ,EAAE;IACRC,KAAK;IACLC,WAAW;IACXC,MAAM;IACNC,YAAY;IACZC,IAAI;IACJC,KAAK;IACLC,QAAQ;IACRC,MAAM;IACNC,IAAI;IACJC,UAAU;IACVC,kBAAkB;IAClBC,WAAW;IACXC,UAAU;IACVC,QAAQ;IACRC;EACF;AACF,CAAC,GAAG9B,QAAQ;;AAEZ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAeA,MAAM+B,cAAc,GAAG,IAAIC,OAAO,CAA4B,CAAC;AAE/D,OAAO,SAASC,uBAAuBA,CAACC,IAAsB,EAAE;EAC9D,OAAOH,cAAc,CAACI,GAAG,CAACD,IAAI,CAAC;AACjC;AAEA,OAAO,MAAME,YAAY,GAAGC,MAAM,CAAC,CAAC;AAYpC,OAAO,SAASC,oBAAoBA,CAClCC,OAAyB,EACzBC,KAAuD,EAC5C;EACX,OAAO;IACL,CAACJ,YAAY,GAAG,IAA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","ignoreList":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Children, ComponentCreator, ComponentDefinition, IntrinsicElementBase, JSX } from "@alloy-js/core/jsx-runtime";
|
|
2
|
+
export declare function sti<T extends keyof JSX.IntrinsicElements>(name: T): (...args: unknown extends T ? [] : {} extends Omit<JSX.IntrinsicElements[T], "children"> ? [props?: JSX.IntrinsicElements[T]] : [props: JSX.IntrinsicElements[T]]) => {
|
|
3
|
+
(): IntrinsicElementBase<T>;
|
|
4
|
+
children(...children: Children[]): (() => IntrinsicElementBase<T>);
|
|
5
|
+
code(template: TemplateStringsArray, ...substitutions: Children[]): (() => IntrinsicElementBase<T>);
|
|
6
|
+
};
|
|
7
|
+
export type MakeChildrenOptional<T extends object> = T extends {
|
|
8
|
+
children?: any;
|
|
9
|
+
} ? Omit<T, "children"> & Partial<Pick<T, "children">> : T;
|
|
10
|
+
export declare function stc<T extends {}>(Component: ComponentDefinition<T>): (...args: unknown extends T ? [] : {} extends Omit<T, "children"> ? [props?: MakeChildrenOptional<T>] : [props: MakeChildrenOptional<T>]) => ComponentCreator<T> & {
|
|
11
|
+
code(template: TemplateStringsArray, ...substitutions: Children[]): ComponentCreator<T>;
|
|
12
|
+
children(...children: Children[]): ComponentCreator<T>;
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=stc.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stc.d.ts","sourceRoot":"","sources":["../../src/stc.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,gBAAgB,EAChB,mBAAmB,EAEnB,oBAAoB,EACpB,GAAG,EACJ,MAAM,4BAA4B,CAAC;AAGpC,wBAAgB,GAAG,CAAC,CAAC,SAAS,MAAM,GAAG,CAAC,iBAAiB,EAAE,IAAI,EAAE,CAAC,aAErD,OAAO,SAAS,CAAC,GAAG,EAAE,GAC7B,EAAE,SAAS,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,GACrD,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,GAClC,CAAC,KAAK,EAAE,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;;0BAKpB,QAAQ,EAAE,GACtB,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;mBAUtB,oBAAoB,oBACZ,QAAQ,EAAE,GAC3B,CAAC,MAAM,oBAAoB,CAAC,CAAC,CAAC,CAAC;EAUrC;AAED,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,wBAAgB,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,mBAAmB,CAAC,CAAC,CAAC,aAEtD,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;mBAIpB,oBAAoB,oBACZ,QAAQ,EAAE,GAC3B,gBAAgB,CAAC,CAAC,CAAC;0BACA,QAAQ,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC;EAiC3D"}
|