@memoized-dom/compiler 0.0.5 → 0.0.6
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/README.md +106 -78
- package/dist/analysis/access-table.d.ts +1 -1
- package/dist/analysis/access-table.d.ts.map +1 -1
- package/dist/analysis/component-graph.d.ts +16 -1
- package/dist/analysis/component-graph.d.ts.map +1 -1
- package/dist/analysis/component-reads.d.ts +1 -1
- package/dist/analysis/component-reads.d.ts.map +1 -1
- package/dist/analysis/computed.d.ts +9 -5
- package/dist/analysis/computed.d.ts.map +1 -1
- package/dist/analysis/instance-control-flow.d.ts +1 -1
- package/dist/analysis/instance-control-flow.d.ts.map +1 -1
- package/dist/analysis/instance.d.ts +3 -4
- package/dist/analysis/instance.d.ts.map +1 -1
- package/dist/analysis/module-discovery.d.ts +27 -0
- package/dist/analysis/module-discovery.d.ts.map +1 -0
- package/dist/analysis/opaque-volatility.d.ts +1 -1
- package/dist/analysis/opaque-volatility.d.ts.map +1 -1
- package/dist/analysis/runtime-pattern.d.ts +3 -4
- package/dist/analysis/runtime-pattern.d.ts.map +1 -1
- package/dist/analysis/type-candidates.d.ts +15 -3
- package/dist/analysis/type-candidates.d.ts.map +1 -1
- package/dist/analysis.d.ts +7 -4
- package/dist/analysis.d.ts.map +1 -1
- package/dist/ast/builders.d.ts +108 -0
- package/dist/ast/builders.d.ts.map +1 -0
- package/dist/ast/compiler-types.d.ts +196 -0
- package/dist/ast/compiler-types.d.ts.map +1 -0
- package/dist/ast/factory.d.ts +139 -0
- package/dist/ast/factory.d.ts.map +1 -0
- package/dist/ast/index.d.ts +15 -0
- package/dist/ast/index.d.ts.map +1 -0
- package/dist/ast/mutate.d.ts +17 -0
- package/dist/ast/mutate.d.ts.map +1 -0
- package/dist/ast/normalize.d.ts +9 -0
- package/dist/ast/normalize.d.ts.map +1 -0
- package/dist/ast/parser.d.ts +72 -0
- package/dist/ast/parser.d.ts.map +1 -0
- package/dist/ast/printer.d.ts +23 -0
- package/dist/ast/printer.d.ts.map +1 -0
- package/dist/ast/scope.d.ts +44 -0
- package/dist/ast/scope.d.ts.map +1 -0
- package/dist/ast/strip-typescript.d.ts +9 -0
- package/dist/ast/strip-typescript.d.ts.map +1 -0
- package/dist/ast/transform.d.ts +21 -0
- package/dist/ast/transform.d.ts.map +1 -0
- package/dist/ast/tsrx/frontend.d.ts +8 -0
- package/dist/ast/tsrx/frontend.d.ts.map +1 -0
- package/dist/ast/tsrx/index.d.ts +5 -0
- package/dist/ast/tsrx/index.d.ts.map +1 -0
- package/dist/ast/tsrx/lower.d.ts +8 -0
- package/dist/ast/tsrx/lower.d.ts.map +1 -0
- package/dist/ast/tsrx/style.d.ts +8 -0
- package/dist/ast/tsrx/style.d.ts.map +1 -0
- package/dist/ast/tsrx/types.d.ts +50 -0
- package/dist/ast/tsrx/types.d.ts.map +1 -0
- package/dist/ast/types.d.ts +478 -0
- package/dist/ast/types.d.ts.map +1 -0
- package/dist/ast/walk.d.ts +22 -0
- package/dist/ast/walk.d.ts.map +1 -0
- package/dist/cells.d.ts +10 -0
- package/dist/cells.d.ts.map +1 -0
- package/dist/compile.d.ts +14 -20
- package/dist/compile.d.ts.map +1 -1
- package/dist/components/callback-props.d.ts +1 -1
- package/dist/components/callback-props.d.ts.map +1 -1
- package/dist/components/calls.d.ts +1 -1
- package/dist/components/calls.d.ts.map +1 -1
- package/dist/components/children.d.ts +3 -2
- package/dist/components/children.d.ts.map +1 -1
- package/dist/components/declarations.d.ts +10 -3
- package/dist/components/declarations.d.ts.map +1 -1
- package/dist/components/jsx-values.d.ts +2 -4
- package/dist/components/jsx-values.d.ts.map +1 -1
- package/dist/components/local-derived.d.ts +1 -1
- package/dist/components/local-derived.d.ts.map +1 -1
- package/dist/components/manifest.d.ts +2 -3
- package/dist/components/manifest.d.ts.map +1 -1
- package/dist/components/prop-effects.d.ts.map +1 -1
- package/dist/components/prop-linker.d.ts.map +1 -1
- package/dist/components/prop-origins.d.ts +2 -0
- package/dist/components/prop-origins.d.ts.map +1 -1
- package/dist/components/prop-projections.d.ts.map +1 -1
- package/dist/components/prop-shape.d.ts +11 -0
- package/dist/components/prop-shape.d.ts.map +1 -0
- package/dist/components/props.d.ts +9 -1
- package/dist/components/props.d.ts.map +1 -1
- package/dist/components/ref-props.d.ts.map +1 -1
- package/dist/components/render-callbacks.d.ts +7 -3
- package/dist/components/render-callbacks.d.ts.map +1 -1
- package/dist/components/render-functions.d.ts +1 -0
- package/dist/components/render-functions.d.ts.map +1 -1
- package/dist/components/render-prelude.d.ts +1 -1
- package/dist/components/render-prelude.d.ts.map +1 -1
- package/dist/components/return-plan.d.ts +13 -7
- package/dist/components/return-plan.d.ts.map +1 -1
- package/dist/conds.d.ts +6 -3
- package/dist/conds.d.ts.map +1 -1
- package/dist/context/ast.d.ts +11 -2
- package/dist/context/ast.d.ts.map +1 -1
- package/dist/context/model.d.ts +111 -7
- package/dist/context/model.d.ts.map +1 -1
- package/dist/data-sources.d.ts +78 -0
- package/dist/data-sources.d.ts.map +1 -0
- package/dist/diagnostics.d.ts +2 -0
- package/dist/diagnostics.d.ts.map +1 -1
- package/dist/effects.d.ts +13 -5
- package/dist/effects.d.ts.map +1 -1
- package/dist/emission/component.d.ts +3 -3
- package/dist/emission/component.d.ts.map +1 -1
- package/dist/emission/conditional-region.d.ts +6 -5
- package/dist/emission/conditional-region.d.ts.map +1 -1
- package/dist/emission/dom-template.d.ts.map +1 -1
- package/dist/emission/list-region.d.ts +5 -4
- package/dist/emission/list-region.d.ts.map +1 -1
- package/dist/emission/node-emitter.d.ts +4 -3
- package/dist/emission/node-emitter.d.ts.map +1 -1
- package/dist/emission/render-callback.d.ts +4 -3
- package/dist/emission/render-callback.d.ts.map +1 -1
- package/dist/emission/route-region.d.ts +4 -3
- package/dist/emission/route-region.d.ts.map +1 -1
- package/dist/emission/scope.d.ts +13 -1
- package/dist/emission/scope.d.ts.map +1 -1
- package/dist/emit.d.ts +5 -4
- package/dist/emit.d.ts.map +1 -1
- package/dist/errors.d.ts +15 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/handler-commits.d.ts +6 -1
- package/dist/handler-commits.d.ts.map +1 -1
- package/dist/handler-origin.d.ts +1 -1
- package/dist/handler-origin.d.ts.map +1 -1
- package/dist/handlers/analyze.d.ts +1 -1
- package/dist/handlers/analyze.d.ts.map +1 -1
- package/dist/handlers/local-calls.d.ts +2 -2
- package/dist/handlers/local-calls.d.ts.map +1 -1
- package/dist/handlers.d.ts +6 -5
- package/dist/handlers.d.ts.map +1 -1
- package/dist/helper-summaries.d.ts +2 -3
- package/dist/helper-summaries.d.ts.map +1 -1
- package/dist/identifiers.d.ts +13 -8
- package/dist/identifiers.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/jsx/attributes.d.ts +1 -1
- package/dist/jsx/attributes.d.ts.map +1 -1
- package/dist/jsx/children.d.ts +1 -1
- package/dist/jsx/children.d.ts.map +1 -1
- package/dist/jsx/conditional-directives.d.ts +12 -3
- package/dist/jsx/conditional-directives.d.ts.map +1 -1
- package/dist/jsx/dom-attributes.d.ts +1 -1
- package/dist/jsx/dom-attributes.d.ts.map +1 -1
- package/dist/jsx/dynamic-tags.d.ts +9 -15
- package/dist/jsx/dynamic-tags.d.ts.map +1 -1
- package/dist/jsx/events.d.ts +2 -2
- package/dist/jsx/events.d.ts.map +1 -1
- package/dist/jsx/refs.d.ts +5 -4
- package/dist/jsx/refs.d.ts.map +1 -1
- package/dist/jsx/svg.d.ts +2 -2
- package/dist/jsx/svg.d.ts.map +1 -1
- package/dist/jsx-types.d.ts +4 -1
- package/dist/jsx-types.d.ts.map +1 -1
- package/dist/lifecycle.d.ts +10 -5
- package/dist/lifecycle.d.ts.map +1 -1
- package/dist/linker.d.ts +7 -1
- package/dist/linker.d.ts.map +1 -1
- package/dist/lists/calculated-sources.d.ts +1 -1
- package/dist/lists/calculated-sources.d.ts.map +1 -1
- package/dist/lists/map-site.d.ts +11 -5
- package/dist/lists/map-site.d.ts.map +1 -1
- package/dist/lists/source-shapes.d.ts +12 -3
- package/dist/lists/source-shapes.d.ts.map +1 -1
- package/dist/lists/static-derived.d.ts +37 -0
- package/dist/lists/static-derived.d.ts.map +1 -0
- package/dist/lists/targeted-refresh.d.ts +9 -2
- package/dist/lists/targeted-refresh.d.ts.map +1 -1
- package/dist/module-control-flow.d.ts +7 -6
- package/dist/module-control-flow.d.ts.map +1 -1
- package/dist/mutation-analysis.d.ts +22 -8
- package/dist/mutation-analysis.d.ts.map +1 -1
- package/dist/plugin.d.ts +10 -6
- package/dist/plugin.d.ts.map +1 -1
- package/dist/router.d.ts +8 -4
- package/dist/router.d.ts.map +1 -1
- package/dist/server-functions.d.ts +49 -0
- package/dist/server-functions.d.ts.map +1 -0
- package/package.json +34 -36
package/README.md
CHANGED
|
@@ -1,78 +1,106 @@
|
|
|
1
|
-
# Compiler
|
|
2
|
-
|
|
3
|
-
Requires Node.js 24.11 or newer.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
Public compilation APIs:
|
|
7
|
-
|
|
8
|
-
- `compile(source, options)` returns JavaScript and keeps the allocation-light
|
|
9
|
-
legacy path.
|
|
10
|
-
- `compileDetailed(source, options)` returns `{ code, map }` with authored
|
|
11
|
-
in `sourcesContent`.
|
|
12
|
-
- `compileModulesDetailed(modules, options)` returns linked `output`, one map
|
|
13
|
-
per module in `maps`, component `metadata`, and root
|
|
14
|
-
ordinary entry module's top-level
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
| `src/
|
|
22
|
-
| `src/
|
|
23
|
-
| `src/
|
|
24
|
-
| `src/
|
|
25
|
-
| `src/
|
|
26
|
-
| `src/
|
|
27
|
-
| `src/
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
| `src/
|
|
35
|
-
| `src/
|
|
36
|
-
| `src/
|
|
37
|
-
| `src/
|
|
38
|
-
| `src/
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
the
|
|
1
|
+
# Compiler
|
|
2
|
+
|
|
3
|
+
Requires Node.js 24.11 or newer. Standard JavaScript and TypeScript modules are
|
|
4
|
+
parsed by Yuku, while all compiler analysis and emission operates on ESTree.
|
|
5
|
+
|
|
6
|
+
Public compilation APIs:
|
|
7
|
+
|
|
8
|
+
- `compile(source, options)` returns JavaScript and keeps the allocation-light
|
|
9
|
+
legacy path.
|
|
10
|
+
- `compileDetailed(source, options)` returns `{ code, map, css? }` with authored
|
|
11
|
+
source in `sourcesContent`.
|
|
12
|
+
- `compileModulesDetailed(modules, options)` returns linked `output`, one map
|
|
13
|
+
per module in `maps`, optional extracted `css`, component `metadata`, and root
|
|
14
|
+
metadata derived from an ordinary entry module's top-level
|
|
15
|
+
`mount(target, Component)` call.
|
|
16
|
+
|
|
17
|
+
The top-level files are orchestration and whole-program passes:
|
|
18
|
+
|
|
19
|
+
| Path | Responsibility |
|
|
20
|
+
|---|---|
|
|
21
|
+
| `src/analysis.ts` | Analysis orchestration, JSX validation, and read attribution |
|
|
22
|
+
| `src/context.ts` | Stable facade for shared context types and AST utilities |
|
|
23
|
+
| `src/emit.ts` | Host JSX DOM emission and structural-region dispatch |
|
|
24
|
+
| `src/handlers.ts` | Handler resolution and callback instrumentation |
|
|
25
|
+
| `src/linker.ts` | Connected module-graph compilation |
|
|
26
|
+
| `src/module-control-flow.ts` | Pure module if/switch computed classification |
|
|
27
|
+
| `src/plugin.ts` | Parser-neutral pass ordering and final module rewrite |
|
|
28
|
+
| `src/router.ts` | Linked JSX route graph, directive validation, and navigation lowering |
|
|
29
|
+
|
|
30
|
+
Domain folders keep related implementation details discoverable:
|
|
31
|
+
|
|
32
|
+
| Folder | Responsibility |
|
|
33
|
+
|---|---|
|
|
34
|
+
| `src/analysis/` | Computeds, component paths, instance preludes, and access tables |
|
|
35
|
+
| `src/components/` | Prop contracts, content/ref slots, and linker manifests |
|
|
36
|
+
| `src/context/` | Compiler data model/context construction and raw AST helpers |
|
|
37
|
+
| `src/emission/` | Component factories and generated list/conditional/route regions |
|
|
38
|
+
| `src/handlers/` | Mutation traversal and commit-routing analysis |
|
|
39
|
+
| `src/jsx/` | Ordered attributes, child classification, refs, and namespaces |
|
|
40
|
+
|
|
41
|
+
The top-level analysis, context, emitter, and handler modules intentionally
|
|
42
|
+
remain stable facades. Cross-domain callers use those facades; implementation
|
|
43
|
+
modules within a domain import their siblings directly.
|
|
44
|
+
|
|
45
|
+
## Experimental TSRX frontend
|
|
46
|
+
|
|
47
|
+
Files ending in `.tsrx` are parsed by the official `@tsrx/core` parser and
|
|
48
|
+
lowered directly to the ordinary TS-ESTree/JSX consumed by the compiler. The
|
|
49
|
+
`.js`, `.jsx`, `.ts`, `.tsx`, and `.d.ts` extensions explicitly select Yuku; the
|
|
50
|
+
TSRX path is isolated from the standard parser. Unknown extensions must provide a frontend
|
|
51
|
+
explicitly instead of being interpreted through a fallback parser.
|
|
52
|
+
|
|
53
|
+
The experimental lowering currently supports statement-container function
|
|
54
|
+
bodies, `@if`, `@for (... of ...)` with `index`, `key`, and `@empty`, root
|
|
55
|
+
`@switch`, finite dynamic intrinsic/component choices, and scoped style
|
|
56
|
+
extraction. The implementation is isolated under `src/ast/tsrx` so extension
|
|
57
|
+
nodes never enter the compiler's analysis or emission passes. See the repository
|
|
58
|
+
`tsrx.md` for conceptual JSX equivalents and the exact host-profile matrix.
|
|
59
|
+
|
|
60
|
+
Lazy destructuring, `@try`/`@pending`/`@catch`, nested statement containers,
|
|
61
|
+
branch-local setup, style expressions, and dynamic selectors without provable
|
|
62
|
+
finite candidates currently produce explicit diagnostics. They need Memoized
|
|
63
|
+
DOM-specific reactivity or runtime semantics before they can be lowered safely.
|
|
64
|
+
|
|
65
|
+
The public `createExtensionEstreeFrontend()` utility creates a strict extension
|
|
66
|
+
map for specialized frontends. Virtual or extensionless modules must select a
|
|
67
|
+
frontend explicitly; TSRX callers can use `experimentalTsrxEstreeFrontend`.
|
|
68
|
+
|
|
69
|
+
## Compiler-owned routing
|
|
70
|
+
|
|
71
|
+
`route` and `route-to` are compiler properties, similar to `key`: they are
|
|
72
|
+
available on JSX elements but are not ordinary runtime props. Route declarations
|
|
73
|
+
must be static slash-prefixed fragments. The compiler composes each declaration
|
|
74
|
+
with its nearest route-bearing JSX ancestor, validates the connected module graph,
|
|
75
|
+
emits one manifest, and lowers each declaration to an anchored route-selected DOM
|
|
76
|
+
region.
|
|
77
|
+
|
|
78
|
+
Because the compiler sees the whole linked graph, it rejects undeclared
|
|
79
|
+
destinations, non-terminal catch-alls, ambiguous patterns, and missing, extra, or
|
|
80
|
+
duplicate route parameters. These same diagnostics are exposed through
|
|
81
|
+
`diagnoseModules`, Vite, and `@memoized-dom/language-service`.
|
|
82
|
+
The structured diagnostic includes an authored start and end location when the
|
|
83
|
+
frontend supplies a node range, allowing editor integrations to highlight the
|
|
84
|
+
offending expression or JSX attribute precisely.
|
|
85
|
+
|
|
86
|
+
Projects that do not already include the compiler's global JSX declarations can
|
|
87
|
+
load the published directive types with `"types": ["@memoized-dom/compiler/jsx"]`
|
|
88
|
+
in `tsconfig.json`. TypeScript then checks the slash-prefixed surface shape;
|
|
89
|
+
the compiler/language service performs the stronger application-graph checks.
|
|
90
|
+
|
|
91
|
+
## Compiler-owned conditional branches
|
|
92
|
+
|
|
93
|
+
`if`, `else-if`, and `else` are compiler properties for readable sibling
|
|
94
|
+
branches. Formatting whitespace and JSX comments do not break a chain, more
|
|
95
|
+
than one `else-if` is allowed, and `else` is optional:
|
|
96
|
+
|
|
97
|
+
```tsx
|
|
98
|
+
<p if={status === 'pending'}>Loading...</p>
|
|
99
|
+
<p else-if={status === 'error'}>Could not load.</p>
|
|
100
|
+
<StoryList else />
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
The compiler removes the properties and lowers the chain to one stable
|
|
104
|
+
conditional region. An `else-if` or `else` without a preceding branch is a
|
|
105
|
+
compile error. The conditions stay reactive; switching branches updates only
|
|
106
|
+
the owned region rather than rerunning the component factory.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"access-table.d.ts","sourceRoot":"","sources":["../../src/analysis/access-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"access-table.d.ts","sourceRoot":"","sources":["../../src/analysis/access-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAqB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AASzD,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CA4H7D"}
|
|
@@ -1,10 +1,25 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type Ctx } from '../context';
|
|
2
2
|
/** Resolve every static runtime path at which a component may be mounted. */
|
|
3
3
|
export declare function pathVariants(ctx: Ctx, name: string, visiting?: Set<string>): string[];
|
|
4
4
|
/** Runtime reader patterns for static, conditional, and listed components. */
|
|
5
5
|
export declare function componentPatterns(ctx: Ctx, name: string): string[];
|
|
6
6
|
/** Whether a listed component can use the allocation-free row ABI. */
|
|
7
7
|
export declare function isLightweightListedComponent(ctx: Ctx, name: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Whether a component row should be called with the lightweight (props-first)
|
|
10
|
+
* ABI in the list create factory. This mirrors the `lightweight` decision in
|
|
11
|
+
* `transformComponent` exactly: a component is lightweight only when it passes
|
|
12
|
+
* *all* of the following gates:
|
|
13
|
+
* 1. `isLightweightListedComponent` (row ABI eligible)
|
|
14
|
+
* 2. no transparent async-source bindings (`transparentSources`)
|
|
15
|
+
* 3. no inherited data-policy parameter (`transparentPolicyParams`)
|
|
16
|
+
*
|
|
17
|
+
* Missing gates 2–3 was the bug: a component that closes over a transparent source
|
|
18
|
+
* gets emitted as an entity-factory `function Comp(_id, _parent, _propsBox)`,
|
|
19
|
+
* but the list create factory was calling it as `Comp({ item }, _rowId, ...)`,
|
|
20
|
+
* mapping `{ item }` → `_id` and leaving `_propsBox` as the parent string.
|
|
21
|
+
*/
|
|
22
|
+
export declare function isLightweightRowComponent(ctx: Ctx, name: string): boolean;
|
|
8
23
|
/** Intrinsic row shape used before graph linking marks a component listed. */
|
|
9
24
|
export declare function isListLightweightCandidate(ctx: Ctx, name: string): boolean;
|
|
10
25
|
//# sourceMappingURL=component-graph.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-graph.d.ts","sourceRoot":"","sources":["../../src/analysis/component-graph.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"component-graph.d.ts","sourceRoot":"","sources":["../../src/analysis/component-graph.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAIpD,6EAA6E;AAC7E,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAChC,MAAM,EAAE,CA0DV;AAED,8EAA8E;AAC9E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,CAuClE;AAED,sEAAsE;AACtE,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,GACX,OAAO,CAoBT;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAKzE;AAED,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CA4C1E"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { Ctx } from '../context';
|
|
2
2
|
/** Module dependencies read anywhere in an already-analyzed component tree. */
|
|
3
3
|
export declare function componentSubtreeReads(ctx: Ctx, componentName: string, visiting?: Set<string>): Set<string>;
|
|
4
4
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"component-reads.d.ts","sourceRoot":"","sources":["../../src/analysis/component-reads.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"component-reads.d.ts","sourceRoot":"","sources":["../../src/analysis/component-reads.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAiCtC,+EAA+E;AAC/E,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAChC,GAAG,CAAC,MAAM,CAAC,CA6Bb;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA4C7D"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import * as t from '@babel/types';
|
|
1
|
+
import { type BaseNode } from '../ast';
|
|
3
2
|
import { type ComputedAnalysis, type Ctx } from '../context';
|
|
3
|
+
interface ProgramPathLike {
|
|
4
|
+
node: BaseNode;
|
|
5
|
+
buildCodeFrameError(message: string, at?: BaseNode): Error;
|
|
6
|
+
}
|
|
4
7
|
/**
|
|
5
8
|
* Analyze a candidate module-level computed initializer. Detection is by
|
|
6
9
|
* reactive-state reference rather than by a whitelist of expression forms.
|
|
7
10
|
*/
|
|
8
|
-
export declare function analyzeComputed(ctx: Ctx, expr:
|
|
9
|
-
/** Discover ordered module-level
|
|
10
|
-
export declare function scanComputeds(ctx: Ctx, programPath:
|
|
11
|
+
export declare function analyzeComputed(ctx: Ctx, expr: BaseNode): ComputedAnalysis;
|
|
12
|
+
/** Discover ordered module-level derivations after actual writable state exists. */
|
|
13
|
+
export declare function scanComputeds(ctx: Ctx, programPath: ProgramPathLike): void;
|
|
14
|
+
export {};
|
|
11
15
|
//# sourceMappingURL=computed.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/analysis/computed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"computed.d.ts","sourceRoot":"","sources":["../../src/analysis/computed.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AAoBpB,UAAU,eAAe;IACvB,IAAI,EAAE,QAAQ,CAAC;IACf,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;CAC5D;AA8FD;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,GAAG,gBAAgB,CAmG1E;AAED,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,eAAe,GAAG,IAAI,CA4D1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance-control-flow.d.ts","sourceRoot":"","sources":["../../src/analysis/instance-control-flow.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instance-control-flow.d.ts","sourceRoot":"","sources":["../../src/analysis/instance-control-flow.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAmOpD;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA2ItD;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAwEvD"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { type Ctx } from '../context';
|
|
2
2
|
/** Collect mutable or store-like bindings owned by each component instance. */
|
|
3
3
|
export declare function scanInstanceState(ctx: Ctx): void;
|
|
4
|
-
/**
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
*/
|
|
4
|
+
/** Exclude JSX ref sinks from reactive instance state. */
|
|
5
|
+
export declare function excludeRefBindings(ctx: Ctx): void;
|
|
6
|
+
/** Discover ordered component-local const derivations. */
|
|
8
7
|
export declare function scanInstanceDerivations(ctx: Ctx): void;
|
|
9
8
|
//# sourceMappingURL=instance.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../src/analysis/instance.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"instance.d.ts","sourceRoot":"","sources":["../../src/analysis/instance.ts"],"names":[],"mappings":"AASA,OAAO,EAML,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AA8PpB,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA+BhD;AAED,0DAA0D;AAC1D,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA2BjD;AAED,0DAA0D;AAC1D,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAyTtD"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Parser-neutral discovery of module imports and top-level functions.
|
|
3
|
+
*
|
|
4
|
+
* This pass deliberately returns raw ESTree nodes. Frontends may attach their
|
|
5
|
+
* own diagnostic or mutation handles after discovery without making the
|
|
6
|
+
* semantic classification depend on a parser-specific path implementation.
|
|
7
|
+
*/
|
|
8
|
+
import { type BaseNode } from '../ast';
|
|
9
|
+
export type DiscoveredFunctionKind = 'component' | 'helper' | 'jsx-helper';
|
|
10
|
+
export interface DiscoveredFunction {
|
|
11
|
+
name: string;
|
|
12
|
+
kind: DiscoveredFunctionKind;
|
|
13
|
+
node: BaseNode;
|
|
14
|
+
}
|
|
15
|
+
export interface UnlinkedValueImport {
|
|
16
|
+
local: string;
|
|
17
|
+
declaration: BaseNode;
|
|
18
|
+
}
|
|
19
|
+
/** Strip transparent TypeScript expression wrappers around an initializer. */
|
|
20
|
+
export declare function unwrapFunctionExpression(node: BaseNode | null): BaseNode | null;
|
|
21
|
+
/** Whether a raw ESTree subtree contains authored JSX. */
|
|
22
|
+
export declare function subtreeHasJsx(root: BaseNode): boolean;
|
|
23
|
+
/** Classify declarations that the component analysis owns at module scope. */
|
|
24
|
+
export declare function discoverTopLevelFunctions(program: BaseNode): DiscoveredFunction[];
|
|
25
|
+
/** Find runtime imports whose identities were not supplied by graph linking. */
|
|
26
|
+
export declare function findUnlinkedValueImports(program: BaseNode, linked: ReadonlySet<string>): UnlinkedValueImport[];
|
|
27
|
+
//# sourceMappingURL=module-discovery.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module-discovery.d.ts","sourceRoot":"","sources":["../../src/analysis/module-discovery.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAW,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE3E,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,sBAAsB,CAAC;IAC7B,IAAI,EAAE,QAAQ,CAAC;CAChB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,QAAQ,CAAC;CACvB;AAsCD,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,QAAQ,GAAG,IAAI,GAAG,QAAQ,GAAG,IAAI,CAgB/E;AAED,0DAA0D;AAC1D,wBAAgB,aAAa,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAYrD;AAED,8EAA8E;AAC9E,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,QAAQ,GAAG,kBAAkB,EAAE,CAmCjF;AAED,gFAAgF;AAChF,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,QAAQ,EACjB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,GAC1B,mBAAmB,EAAE,CAwBvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opaque-volatility.d.ts","sourceRoot":"","sources":["../../src/analysis/opaque-volatility.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"opaque-volatility.d.ts","sourceRoot":"","sources":["../../src/analysis/opaque-volatility.ts"],"names":[],"mappings":"AAOA,OAAO,EAA4B,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AA+ThE;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAwHnD"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
export type RuntimeBindingPattern = t.Identifier | t.ObjectPattern | t.ArrayPattern;
|
|
1
|
+
import { type BaseNode } from '../ast';
|
|
3
2
|
/**
|
|
4
3
|
* Clone an authored TypeScript binding pattern for generated JavaScript.
|
|
5
|
-
*
|
|
4
|
+
* Parsers may store annotations on nested pattern nodes, so clear every supported
|
|
6
5
|
* binding shape rather than only the root.
|
|
7
6
|
*/
|
|
8
|
-
export declare function cloneRuntimeBindingPattern(pattern:
|
|
7
|
+
export declare function cloneRuntimeBindingPattern<TPattern extends BaseNode>(pattern: TPattern): TPattern;
|
|
9
8
|
//# sourceMappingURL=runtime-pattern.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-pattern.d.ts","sourceRoot":"","sources":["../../src/analysis/runtime-pattern.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"runtime-pattern.d.ts","sourceRoot":"","sources":["../../src/analysis/runtime-pattern.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,KAAK,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAU3D;;;;GAIG;AACH,wBAAgB,0BAA0B,CAAC,QAAQ,SAAS,QAAQ,EAClE,OAAO,EAAE,QAAQ,GAChB,QAAQ,CAUV"}
|
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import
|
|
1
|
+
import type { BaseNode } from '../ast';
|
|
2
|
+
interface ProgramLike extends BaseNode {
|
|
3
|
+
type: 'Program';
|
|
4
|
+
body: BaseNode[];
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Finite string contracts attached to lexical bindings, including component
|
|
8
|
+
* props whose type lives on an enclosing destructuring pattern.
|
|
9
|
+
*/
|
|
10
|
+
export declare function lexicalBindingStringCandidates(input: BaseNode): Map<string, string[]>;
|
|
11
|
+
/** Stable across parser-neutral AST clones that preserve authored ranges. */
|
|
12
|
+
export declare function lexicalBindingKey(identifier: BaseNode): string | null;
|
|
2
13
|
/**
|
|
3
14
|
* Module state whose declared TypeScript type is a finite string-literal set.
|
|
4
15
|
* The annotation is the contract: an initializer alone cannot prove every
|
|
5
16
|
* value that later assignments or imported helper calls may produce.
|
|
6
17
|
*/
|
|
7
|
-
export declare function moduleStateStringCandidates(program:
|
|
18
|
+
export declare function moduleStateStringCandidates(program: ProgramLike): Map<string, string[]>;
|
|
8
19
|
/**
|
|
9
20
|
* Functions whose declared return type is a finite string-literal set.
|
|
10
21
|
* This is exported through linked function metadata so a caller can safely
|
|
11
22
|
* lower `const Tag = chooseTag(...); <Tag />` without seeing the helper body.
|
|
12
23
|
*/
|
|
13
|
-
export declare function moduleFunctionStringCandidates(program:
|
|
24
|
+
export declare function moduleFunctionStringCandidates(program: ProgramLike): Map<string, string[]>;
|
|
25
|
+
export {};
|
|
14
26
|
//# sourceMappingURL=type-candidates.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"type-candidates.d.ts","sourceRoot":"","sources":["../../src/analysis/type-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"type-candidates.d.ts","sourceRoot":"","sources":["../../src/analysis/type-candidates.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAGvC,UAAU,WAAY,SAAQ,QAAQ;IACpC,IAAI,EAAE,SAAS,CAAC;IAChB,IAAI,EAAE,QAAQ,EAAE,CAAC;CAClB;AAwOD;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,QAAQ,GACd,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CA0DvB;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,QAAQ,GAAG,MAAM,GAAG,IAAI,CAkBrE;AAED;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,WAAW,GACnB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAiBvB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,WAAW,GACnB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAkCvB"}
|
package/dist/analysis.d.ts
CHANGED
|
@@ -20,11 +20,14 @@
|
|
|
20
20
|
* - key={...} outside list rows and state-reading props on static
|
|
21
21
|
* children are compile errors (were silent miscompiles)
|
|
22
22
|
*/
|
|
23
|
-
import type
|
|
24
|
-
import * as t from '@babel/types';
|
|
23
|
+
import type * as t from './ast/compiler-types';
|
|
25
24
|
import { type Ctx } from './context';
|
|
26
|
-
export { isLightweightListedComponent, isListLightweightCandidate, } from './analysis/component-graph';
|
|
25
|
+
export { isLightweightListedComponent, isListLightweightCandidate, isLightweightRowComponent, } from './analysis/component-graph';
|
|
27
26
|
export { buildAccessTable } from './analysis/access-table';
|
|
27
|
+
interface ProgramPath {
|
|
28
|
+
node: t.Program;
|
|
29
|
+
buildCodeFrameError(message: string, at?: t.Node): Error;
|
|
30
|
+
}
|
|
28
31
|
/**
|
|
29
32
|
* R13: analyze a candidate computed initializer — collect the state keys it
|
|
30
33
|
* reads and decide whether it is a legal derivation.
|
|
@@ -48,5 +51,5 @@ export { buildAccessTable } from './analysis/access-table';
|
|
|
48
51
|
* impure: read collection continues so a state-touching impure const is
|
|
49
52
|
* always an ERROR, never a silent plain const.
|
|
50
53
|
*/
|
|
51
|
-
export declare function runAnalysis(ctx: Ctx, programPath:
|
|
54
|
+
export declare function runAnalysis(ctx: Ctx, programPath: ProgramPath): void;
|
|
52
55
|
//# sourceMappingURL=analysis.d.ts.map
|
package/dist/analysis.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAO/C,OAAO,EAcL,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AAuDnB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,UAAU,WAAW;IACnB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;IAChB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;CAC1D;AAs6CD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,GAAG,IAAI,CA6DpE"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure ESTree AST builders and predicates for @memoized-dom/compiler.
|
|
3
|
+
*
|
|
4
|
+
* All functions return plain JavaScript objects in the ESTree node dialect.
|
|
5
|
+
* ZERO dependencies on Babel or proprietary AST formats.
|
|
6
|
+
*/
|
|
7
|
+
import type { ArrayExpression, ArrowFunctionExpression, AssignmentExpression, AssignmentPattern, BaseNode, BinaryExpression, BlockStatement, BooleanLiteral, CallExpression, ConditionalExpression, Declaration, ExportAllDeclaration, ExportDefaultDeclaration, ExportNamedDeclaration, ExportSpecifier, Expression, ExpressionStatement, ForOfStatement, FunctionDeclaration, FunctionExpression, Identifier, IfStatement, ImportDeclaration, ImportDefaultSpecifier, ImportNamespaceSpecifier, ImportSpecifier, JSXAttribute, JSXChild, JSXClosingElement, JSXClosingFragment, JSXElement, JSXEmptyExpression, JSXExpressionContainer, JSXFragment, JSXIdentifier, JSXMemberExpression, JSXNamespacedName, JSXOpeningElement, JSXOpeningFragment, JSXSpreadAttribute, JSXTagName, JSXText, Literal, LogicalExpression, MemberExpression, NewExpression, NullLiteral, NumericLiteral, ObjectExpression, Pattern, Program, Property, ReturnStatement, SequenceExpression, SpreadElement, Statement, StringLiteral, TemplateElement, TemplateLiteral, UnaryExpression, VariableDeclaration, VariableDeclarator } from './types';
|
|
8
|
+
export declare function identifier(name: string): Identifier;
|
|
9
|
+
export declare function literal(value: string | number | boolean | null | RegExp | bigint, raw?: string): Literal;
|
|
10
|
+
export declare function stringLiteral(value: string): StringLiteral;
|
|
11
|
+
export declare function numericLiteral(value: number): NumericLiteral;
|
|
12
|
+
export declare function booleanLiteral(value: boolean): BooleanLiteral;
|
|
13
|
+
export declare function nullLiteral(): NullLiteral;
|
|
14
|
+
export declare function callExpression(callee: Expression, arguments_: Array<Expression | SpreadElement>): CallExpression;
|
|
15
|
+
export declare function optionalCallExpression(callee: Expression, arguments_: Array<Expression | SpreadElement>): CallExpression;
|
|
16
|
+
export declare function memberExpression(object: Expression, property: Expression, computed?: boolean, optional?: boolean): MemberExpression;
|
|
17
|
+
export declare function optionalMemberExpression(object: Expression, property: Expression, computed?: boolean, optional?: boolean): MemberExpression;
|
|
18
|
+
export declare function arrayExpression(elements?: Array<Expression | SpreadElement | null>): ArrayExpression;
|
|
19
|
+
export declare function objectExpression(properties?: Array<Property | SpreadElement>): ObjectExpression;
|
|
20
|
+
export declare function property(kind: 'init' | 'get' | 'set', key: Expression, value: Expression | Pattern, computed?: boolean, shorthand?: boolean): Property;
|
|
21
|
+
export declare function objectProperty(key: Expression, value: Expression | Pattern, computed?: boolean, shorthand?: boolean): Property;
|
|
22
|
+
export declare function spreadElement(argument: Expression): SpreadElement;
|
|
23
|
+
export declare function newExpression(callee: Expression, arguments_?: Array<Expression | SpreadElement>): NewExpression;
|
|
24
|
+
export declare function binaryExpression(operator: BinaryExpression['operator'], left: Expression, right: Expression): BinaryExpression;
|
|
25
|
+
export declare function unaryExpression(operator: UnaryExpression['operator'], argument: Expression, prefix?: boolean): UnaryExpression;
|
|
26
|
+
export declare function logicalExpression(operator: LogicalExpression['operator'], left: Expression, right: Expression): LogicalExpression;
|
|
27
|
+
export declare function assignmentExpression(operator: string, left: Pattern | MemberExpression, right: Expression): AssignmentExpression;
|
|
28
|
+
export declare function conditionalExpression(test: Expression, consequent: Expression, alternate: Expression): ConditionalExpression;
|
|
29
|
+
export declare function sequenceExpression(expressions: Expression[]): SequenceExpression;
|
|
30
|
+
export declare function templateElement(value: {
|
|
31
|
+
raw: string;
|
|
32
|
+
cooked?: string | null;
|
|
33
|
+
}, tail?: boolean): TemplateElement;
|
|
34
|
+
export declare function templateLiteral(quasis: TemplateElement[], expressions: Expression[]): TemplateLiteral;
|
|
35
|
+
export declare function assignmentPattern(left: Pattern, right: Expression): AssignmentPattern;
|
|
36
|
+
export declare function valueToNode(value: unknown): Expression;
|
|
37
|
+
export declare function functionDeclaration(id: Identifier | null, params: Pattern[], body: BlockStatement, generator?: boolean, async?: boolean): FunctionDeclaration;
|
|
38
|
+
export declare function functionExpression(id: Identifier | null, params: Pattern[], body: BlockStatement, generator?: boolean, async?: boolean): FunctionExpression;
|
|
39
|
+
export declare function arrowFunctionExpression(params: Pattern[], body: BlockStatement | Expression, async?: boolean): ArrowFunctionExpression;
|
|
40
|
+
export declare function blockStatement(body?: Statement[]): BlockStatement;
|
|
41
|
+
export declare function expressionStatement(expression: Expression): ExpressionStatement;
|
|
42
|
+
export declare function returnStatement(argument?: Expression | null): ReturnStatement;
|
|
43
|
+
export declare function ifStatement(test: Expression, consequent: Statement, alternate?: Statement | null): IfStatement;
|
|
44
|
+
export declare function forOfStatement(left: VariableDeclaration | Pattern, right: Expression, body: Statement, isAwait?: boolean): ForOfStatement;
|
|
45
|
+
export declare function variableDeclaration(kind: 'var' | 'let' | 'const', declarations: VariableDeclarator[]): VariableDeclaration;
|
|
46
|
+
export declare function variableDeclarator(id: Pattern, init?: Expression | null): VariableDeclarator;
|
|
47
|
+
export declare function program(body?: Statement[], sourceType?: 'script' | 'module'): Program;
|
|
48
|
+
export declare function importDeclaration(specifiers: Array<ImportSpecifier | ImportDefaultSpecifier | ImportNamespaceSpecifier>, source: StringLiteral): ImportDeclaration;
|
|
49
|
+
export declare function importSpecifier(local: Identifier, imported?: Identifier | StringLiteral): ImportSpecifier;
|
|
50
|
+
export declare function importDefaultSpecifier(local: Identifier): ImportDefaultSpecifier;
|
|
51
|
+
export declare function importNamespaceSpecifier(local: Identifier): ImportNamespaceSpecifier;
|
|
52
|
+
export declare function exportNamedDeclaration(declaration?: Declaration | null, specifiers?: ExportSpecifier[], source?: StringLiteral | null): ExportNamedDeclaration;
|
|
53
|
+
export declare function exportSpecifier(local: Identifier, exported?: Identifier | StringLiteral): ExportSpecifier;
|
|
54
|
+
export declare function exportDefaultDeclaration(declaration: Declaration | Expression): ExportDefaultDeclaration;
|
|
55
|
+
export declare function exportAllDeclaration(source: Literal, exported?: Identifier | null): ExportAllDeclaration;
|
|
56
|
+
export declare function jsxIdentifier(name: string): JSXIdentifier;
|
|
57
|
+
export declare function jsxMemberExpression(object: JSXMemberExpression | JSXIdentifier, property: JSXIdentifier): JSXMemberExpression;
|
|
58
|
+
export declare function jsxAttribute(name: JSXIdentifier | JSXNamespacedName, value?: Literal | JSXExpressionContainer | JSXElement | JSXFragment | null): JSXAttribute;
|
|
59
|
+
export declare function jsxSpreadAttribute(argument: Expression): JSXSpreadAttribute;
|
|
60
|
+
export declare function jsxExpressionContainer(expression: Expression | JSXEmptyExpression): JSXExpressionContainer;
|
|
61
|
+
export declare function jsxText(value: string, raw?: string): JSXText;
|
|
62
|
+
export declare function jsxOpeningElement(name: JSXTagName, attributes?: Array<JSXAttribute | JSXSpreadAttribute>, selfClosing?: boolean): JSXOpeningElement;
|
|
63
|
+
export declare function jsxClosingElement(name: JSXTagName): JSXClosingElement;
|
|
64
|
+
export declare function jsxElement(openingElement: JSXOpeningElement, closingElement: JSXClosingElement | null, children?: JSXChild[]): JSXElement;
|
|
65
|
+
export declare function jsxOpeningFragment(): JSXOpeningFragment;
|
|
66
|
+
export declare function jsxClosingFragment(): JSXClosingFragment;
|
|
67
|
+
export declare function jsxFragment(openingFragment?: JSXOpeningFragment, closingFragment?: JSXClosingFragment, children?: JSXChild[]): JSXFragment;
|
|
68
|
+
export declare function cloneNode<T extends BaseNode>(node: T, _deep?: boolean): T;
|
|
69
|
+
/** Copy comment attachments without depending on a parser-specific node API. */
|
|
70
|
+
export declare function inheritComments<TTarget extends BaseNode>(target: TTarget, source: BaseNode): TTarget;
|
|
71
|
+
export declare function isIdentifier(node: unknown): node is Identifier;
|
|
72
|
+
export declare function isLiteral(node: unknown): node is Literal;
|
|
73
|
+
export declare function isStringLiteral(node: unknown): node is StringLiteral;
|
|
74
|
+
export declare function isNumericLiteral(node: unknown): node is NumericLiteral;
|
|
75
|
+
export declare function isBooleanLiteral(node: unknown): node is BooleanLiteral;
|
|
76
|
+
export declare function isNullLiteral(node: unknown): node is NullLiteral;
|
|
77
|
+
export declare function isCallExpression(node: unknown): node is CallExpression;
|
|
78
|
+
export declare function isMemberExpression(node: unknown): node is MemberExpression;
|
|
79
|
+
export declare function isArrayExpression(node: unknown): node is ArrayExpression;
|
|
80
|
+
export declare function isObjectExpression(node: unknown): node is ObjectExpression;
|
|
81
|
+
export declare function isProperty(node: unknown): node is Property;
|
|
82
|
+
export declare function isObjectProperty(node: unknown): node is Property;
|
|
83
|
+
export declare function isFunctionDeclaration(node: unknown): node is FunctionDeclaration;
|
|
84
|
+
export declare function isArrowFunctionExpression(node: unknown): node is ArrowFunctionExpression;
|
|
85
|
+
export declare function isVariableDeclaration(node: unknown): node is VariableDeclaration;
|
|
86
|
+
export declare function isVariableDeclarator(node: unknown): node is VariableDeclarator;
|
|
87
|
+
export declare function isBlockStatement(node: unknown): node is BlockStatement;
|
|
88
|
+
export declare function isReturnStatement(node: unknown): node is ReturnStatement;
|
|
89
|
+
export declare function isIfStatement(node: unknown): node is IfStatement;
|
|
90
|
+
export declare function isExpressionStatement(node: unknown): node is ExpressionStatement;
|
|
91
|
+
export declare function isAssignmentExpression(node: unknown): node is AssignmentExpression;
|
|
92
|
+
export declare function isBinaryExpression(node: unknown): node is BinaryExpression;
|
|
93
|
+
export declare function isUnaryExpression(node: unknown): node is UnaryExpression;
|
|
94
|
+
export declare function isLogicalExpression(node: unknown): node is LogicalExpression;
|
|
95
|
+
export declare function isConditionalExpression(node: unknown): node is ConditionalExpression;
|
|
96
|
+
export declare function isExpression(node: unknown): node is Expression;
|
|
97
|
+
export declare function isStatement(node: unknown): node is Statement;
|
|
98
|
+
export declare function isJSXElement(node: unknown): node is JSXElement;
|
|
99
|
+
export declare function isJSXAttribute(node: unknown): node is JSXAttribute;
|
|
100
|
+
export declare function isJSXExpressionContainer(node: unknown): node is JSXExpressionContainer;
|
|
101
|
+
export declare function isJSXText(node: unknown): node is JSXText;
|
|
102
|
+
export declare function isJSXFragment(node: unknown): node is JSXFragment;
|
|
103
|
+
export declare function isValidIdentifier(name: string): boolean;
|
|
104
|
+
/** Convert an arbitrary compiler hint into one valid identifier spelling. */
|
|
105
|
+
export declare function toIdentifier(input: string): string;
|
|
106
|
+
export declare function isJSXSpreadAttribute(node: unknown): node is JSXSpreadAttribute;
|
|
107
|
+
export declare function isJSXIdentifier(node: unknown): node is JSXIdentifier;
|
|
108
|
+
//# sourceMappingURL=builders.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"builders.d.ts","sourceRoot":"","sources":["../../src/ast/builders.ts"],"names":[],"mappings":"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"}
|