@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.
Files changed (186) hide show
  1. package/README.md +106 -78
  2. package/dist/analysis/access-table.d.ts +1 -1
  3. package/dist/analysis/access-table.d.ts.map +1 -1
  4. package/dist/analysis/component-graph.d.ts +16 -1
  5. package/dist/analysis/component-graph.d.ts.map +1 -1
  6. package/dist/analysis/component-reads.d.ts +1 -1
  7. package/dist/analysis/component-reads.d.ts.map +1 -1
  8. package/dist/analysis/computed.d.ts +9 -5
  9. package/dist/analysis/computed.d.ts.map +1 -1
  10. package/dist/analysis/instance-control-flow.d.ts +1 -1
  11. package/dist/analysis/instance-control-flow.d.ts.map +1 -1
  12. package/dist/analysis/instance.d.ts +3 -4
  13. package/dist/analysis/instance.d.ts.map +1 -1
  14. package/dist/analysis/module-discovery.d.ts +27 -0
  15. package/dist/analysis/module-discovery.d.ts.map +1 -0
  16. package/dist/analysis/opaque-volatility.d.ts +1 -1
  17. package/dist/analysis/opaque-volatility.d.ts.map +1 -1
  18. package/dist/analysis/runtime-pattern.d.ts +3 -4
  19. package/dist/analysis/runtime-pattern.d.ts.map +1 -1
  20. package/dist/analysis/type-candidates.d.ts +15 -3
  21. package/dist/analysis/type-candidates.d.ts.map +1 -1
  22. package/dist/analysis.d.ts +7 -4
  23. package/dist/analysis.d.ts.map +1 -1
  24. package/dist/ast/builders.d.ts +108 -0
  25. package/dist/ast/builders.d.ts.map +1 -0
  26. package/dist/ast/compiler-types.d.ts +196 -0
  27. package/dist/ast/compiler-types.d.ts.map +1 -0
  28. package/dist/ast/factory.d.ts +139 -0
  29. package/dist/ast/factory.d.ts.map +1 -0
  30. package/dist/ast/index.d.ts +15 -0
  31. package/dist/ast/index.d.ts.map +1 -0
  32. package/dist/ast/mutate.d.ts +17 -0
  33. package/dist/ast/mutate.d.ts.map +1 -0
  34. package/dist/ast/normalize.d.ts +9 -0
  35. package/dist/ast/normalize.d.ts.map +1 -0
  36. package/dist/ast/parser.d.ts +72 -0
  37. package/dist/ast/parser.d.ts.map +1 -0
  38. package/dist/ast/printer.d.ts +23 -0
  39. package/dist/ast/printer.d.ts.map +1 -0
  40. package/dist/ast/scope.d.ts +44 -0
  41. package/dist/ast/scope.d.ts.map +1 -0
  42. package/dist/ast/strip-typescript.d.ts +9 -0
  43. package/dist/ast/strip-typescript.d.ts.map +1 -0
  44. package/dist/ast/transform.d.ts +21 -0
  45. package/dist/ast/transform.d.ts.map +1 -0
  46. package/dist/ast/tsrx/frontend.d.ts +8 -0
  47. package/dist/ast/tsrx/frontend.d.ts.map +1 -0
  48. package/dist/ast/tsrx/index.d.ts +5 -0
  49. package/dist/ast/tsrx/index.d.ts.map +1 -0
  50. package/dist/ast/tsrx/lower.d.ts +8 -0
  51. package/dist/ast/tsrx/lower.d.ts.map +1 -0
  52. package/dist/ast/tsrx/style.d.ts +8 -0
  53. package/dist/ast/tsrx/style.d.ts.map +1 -0
  54. package/dist/ast/tsrx/types.d.ts +50 -0
  55. package/dist/ast/tsrx/types.d.ts.map +1 -0
  56. package/dist/ast/types.d.ts +478 -0
  57. package/dist/ast/types.d.ts.map +1 -0
  58. package/dist/ast/walk.d.ts +22 -0
  59. package/dist/ast/walk.d.ts.map +1 -0
  60. package/dist/cells.d.ts +10 -0
  61. package/dist/cells.d.ts.map +1 -0
  62. package/dist/compile.d.ts +14 -20
  63. package/dist/compile.d.ts.map +1 -1
  64. package/dist/components/callback-props.d.ts +1 -1
  65. package/dist/components/callback-props.d.ts.map +1 -1
  66. package/dist/components/calls.d.ts +1 -1
  67. package/dist/components/calls.d.ts.map +1 -1
  68. package/dist/components/children.d.ts +3 -2
  69. package/dist/components/children.d.ts.map +1 -1
  70. package/dist/components/declarations.d.ts +10 -3
  71. package/dist/components/declarations.d.ts.map +1 -1
  72. package/dist/components/jsx-values.d.ts +2 -4
  73. package/dist/components/jsx-values.d.ts.map +1 -1
  74. package/dist/components/local-derived.d.ts +1 -1
  75. package/dist/components/local-derived.d.ts.map +1 -1
  76. package/dist/components/manifest.d.ts +2 -3
  77. package/dist/components/manifest.d.ts.map +1 -1
  78. package/dist/components/prop-effects.d.ts.map +1 -1
  79. package/dist/components/prop-linker.d.ts.map +1 -1
  80. package/dist/components/prop-origins.d.ts +2 -0
  81. package/dist/components/prop-origins.d.ts.map +1 -1
  82. package/dist/components/prop-projections.d.ts.map +1 -1
  83. package/dist/components/prop-shape.d.ts +11 -0
  84. package/dist/components/prop-shape.d.ts.map +1 -0
  85. package/dist/components/props.d.ts +9 -1
  86. package/dist/components/props.d.ts.map +1 -1
  87. package/dist/components/ref-props.d.ts.map +1 -1
  88. package/dist/components/render-callbacks.d.ts +7 -3
  89. package/dist/components/render-callbacks.d.ts.map +1 -1
  90. package/dist/components/render-functions.d.ts +1 -0
  91. package/dist/components/render-functions.d.ts.map +1 -1
  92. package/dist/components/render-prelude.d.ts +1 -1
  93. package/dist/components/render-prelude.d.ts.map +1 -1
  94. package/dist/components/return-plan.d.ts +13 -7
  95. package/dist/components/return-plan.d.ts.map +1 -1
  96. package/dist/conds.d.ts +6 -3
  97. package/dist/conds.d.ts.map +1 -1
  98. package/dist/context/ast.d.ts +11 -2
  99. package/dist/context/ast.d.ts.map +1 -1
  100. package/dist/context/model.d.ts +111 -7
  101. package/dist/context/model.d.ts.map +1 -1
  102. package/dist/data-sources.d.ts +78 -0
  103. package/dist/data-sources.d.ts.map +1 -0
  104. package/dist/diagnostics.d.ts +2 -0
  105. package/dist/diagnostics.d.ts.map +1 -1
  106. package/dist/effects.d.ts +13 -5
  107. package/dist/effects.d.ts.map +1 -1
  108. package/dist/emission/component.d.ts +3 -3
  109. package/dist/emission/component.d.ts.map +1 -1
  110. package/dist/emission/conditional-region.d.ts +6 -5
  111. package/dist/emission/conditional-region.d.ts.map +1 -1
  112. package/dist/emission/dom-template.d.ts.map +1 -1
  113. package/dist/emission/list-region.d.ts +5 -4
  114. package/dist/emission/list-region.d.ts.map +1 -1
  115. package/dist/emission/node-emitter.d.ts +4 -3
  116. package/dist/emission/node-emitter.d.ts.map +1 -1
  117. package/dist/emission/render-callback.d.ts +4 -3
  118. package/dist/emission/render-callback.d.ts.map +1 -1
  119. package/dist/emission/route-region.d.ts +4 -3
  120. package/dist/emission/route-region.d.ts.map +1 -1
  121. package/dist/emission/scope.d.ts +13 -1
  122. package/dist/emission/scope.d.ts.map +1 -1
  123. package/dist/emit.d.ts +5 -4
  124. package/dist/emit.d.ts.map +1 -1
  125. package/dist/errors.d.ts +15 -0
  126. package/dist/errors.d.ts.map +1 -0
  127. package/dist/handler-commits.d.ts +6 -1
  128. package/dist/handler-commits.d.ts.map +1 -1
  129. package/dist/handler-origin.d.ts +1 -1
  130. package/dist/handler-origin.d.ts.map +1 -1
  131. package/dist/handlers/analyze.d.ts +1 -1
  132. package/dist/handlers/analyze.d.ts.map +1 -1
  133. package/dist/handlers/local-calls.d.ts +2 -2
  134. package/dist/handlers/local-calls.d.ts.map +1 -1
  135. package/dist/handlers.d.ts +6 -5
  136. package/dist/handlers.d.ts.map +1 -1
  137. package/dist/helper-summaries.d.ts +2 -3
  138. package/dist/helper-summaries.d.ts.map +1 -1
  139. package/dist/identifiers.d.ts +13 -8
  140. package/dist/identifiers.d.ts.map +1 -1
  141. package/dist/index.d.ts +4 -1
  142. package/dist/index.d.ts.map +1 -1
  143. package/dist/index.js +3 -1
  144. package/dist/jsx/attributes.d.ts +1 -1
  145. package/dist/jsx/attributes.d.ts.map +1 -1
  146. package/dist/jsx/children.d.ts +1 -1
  147. package/dist/jsx/children.d.ts.map +1 -1
  148. package/dist/jsx/conditional-directives.d.ts +12 -3
  149. package/dist/jsx/conditional-directives.d.ts.map +1 -1
  150. package/dist/jsx/dom-attributes.d.ts +1 -1
  151. package/dist/jsx/dom-attributes.d.ts.map +1 -1
  152. package/dist/jsx/dynamic-tags.d.ts +9 -15
  153. package/dist/jsx/dynamic-tags.d.ts.map +1 -1
  154. package/dist/jsx/events.d.ts +2 -2
  155. package/dist/jsx/events.d.ts.map +1 -1
  156. package/dist/jsx/refs.d.ts +5 -4
  157. package/dist/jsx/refs.d.ts.map +1 -1
  158. package/dist/jsx/svg.d.ts +2 -2
  159. package/dist/jsx/svg.d.ts.map +1 -1
  160. package/dist/jsx-types.d.ts +4 -1
  161. package/dist/jsx-types.d.ts.map +1 -1
  162. package/dist/lifecycle.d.ts +10 -5
  163. package/dist/lifecycle.d.ts.map +1 -1
  164. package/dist/linker.d.ts +7 -1
  165. package/dist/linker.d.ts.map +1 -1
  166. package/dist/lists/calculated-sources.d.ts +1 -1
  167. package/dist/lists/calculated-sources.d.ts.map +1 -1
  168. package/dist/lists/map-site.d.ts +11 -5
  169. package/dist/lists/map-site.d.ts.map +1 -1
  170. package/dist/lists/source-shapes.d.ts +12 -3
  171. package/dist/lists/source-shapes.d.ts.map +1 -1
  172. package/dist/lists/static-derived.d.ts +37 -0
  173. package/dist/lists/static-derived.d.ts.map +1 -0
  174. package/dist/lists/targeted-refresh.d.ts +9 -2
  175. package/dist/lists/targeted-refresh.d.ts.map +1 -1
  176. package/dist/module-control-flow.d.ts +7 -6
  177. package/dist/module-control-flow.d.ts.map +1 -1
  178. package/dist/mutation-analysis.d.ts +22 -8
  179. package/dist/mutation-analysis.d.ts.map +1 -1
  180. package/dist/plugin.d.ts +10 -6
  181. package/dist/plugin.d.ts.map +1 -1
  182. package/dist/router.d.ts +8 -4
  183. package/dist/router.d.ts.map +1 -1
  184. package/dist/server-functions.d.ts +49 -0
  185. package/dist/server-functions.d.ts.map +1 -0
  186. package/package.json +34 -36
package/README.md CHANGED
@@ -1,78 +1,106 @@
1
- # Compiler
2
-
3
- Requires Node.js 24.11 or newer. The compiler uses Babel 8, whose supported
4
- Node.js range does not include Node 20 or earlier Node 24 releases.
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 TSX
11
- in `sourcesContent`.
12
- - `compileModulesDetailed(modules, options)` returns linked `output`, one map
13
- per module in `maps`, component `metadata`, and root metadata derived from an
14
- ordinary entry module's top-level `mount(target, Component)` call.
15
-
16
- The top-level files are orchestration and whole-program passes:
17
-
18
- | Path | Responsibility |
19
- |---|---|
20
- | `src/analysis.ts` | Analysis orchestration, JSX validation, and read attribution |
21
- | `src/context.ts` | Stable facade for shared context types and AST utilities |
22
- | `src/emit.ts` | Host JSX DOM emission and structural-region dispatch |
23
- | `src/handlers.ts` | Handler resolution and callback instrumentation |
24
- | `src/linker.ts` | Connected module-graph compilation |
25
- | `src/module-control-flow.ts` | Pure module if/switch computed classification |
26
- | `src/plugin.ts` | Babel pass ordering and final module rewrite |
27
- | `src/router.ts` | Linked JSX route graph, directive validation, and navigation lowering |
28
-
29
- Domain folders keep related implementation details discoverable:
30
-
31
- | Folder | Responsibility |
32
- |---|---|
33
- | `src/analysis/` | Computeds, component paths, instance preludes, and access tables |
34
- | `src/components/` | Prop contracts, content/ref slots, and linker manifests |
35
- | `src/context/` | Compiler data model/context construction and raw AST helpers |
36
- | `src/emission/` | Component factories and generated list/conditional/route regions |
37
- | `src/handlers/` | Mutation traversal and commit-routing analysis |
38
- | `src/jsx/` | Ordered attributes, child classification, refs, and namespaces |
39
-
40
- The top-level analysis, context, emitter, and handler modules intentionally
41
- remain stable facades. Cross-domain callers use those facades; implementation
42
- modules within a domain import their siblings directly.
43
-
44
- ## Compiler-owned routing
45
-
46
- `route` and `route-to` are compiler properties, similar to `key`: they are
47
- available on JSX elements but are not ordinary runtime props. Route declarations
48
- must be static slash-prefixed fragments. The compiler composes each declaration
49
- with its nearest route-bearing JSX ancestor, validates the connected module graph,
50
- emits one manifest, and lowers each declaration to an anchored route-selected DOM
51
- region.
52
-
53
- Because the compiler sees the whole linked graph, it rejects undeclared
54
- destinations, non-terminal catch-alls, ambiguous patterns, and missing, extra, or
55
- duplicate route parameters. These same diagnostics are exposed through
56
- `diagnoseModules`, Vite, and `@memoized-dom/language-service`.
57
-
58
- Projects that do not already include the compiler's global JSX declarations can
59
- load the published directive types with `"types": ["@memoized-dom/compiler/jsx"]`
60
- in `tsconfig.json`. TypeScript then checks the slash-prefixed surface shape;
61
- the compiler/language service performs the stronger application-graph checks.
62
-
63
- ## Compiler-owned conditional branches
64
-
65
- `if`, `else-if`, and `else` are compiler properties for readable sibling
66
- branches. Formatting whitespace and JSX comments do not break a chain, more
67
- than one `else-if` is allowed, and `else` is optional:
68
-
69
- ```tsx
70
- <p if={status === 'pending'}>Loading...</p>
71
- <p else-if={status === 'error'}>Could not load.</p>
72
- <StoryList else />
73
- ```
74
-
75
- The compiler removes the properties and lowers the chain to one stable
76
- conditional region. An `else-if` or `else` without a preceding branch is a
77
- compile error. The conditions stay reactive; switching branches updates only
78
- the owned region rather than rerunning the component factory.
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,4 +1,4 @@
1
- import * as t from '@babel/types';
1
+ import type * as t from '../ast/compiler-types';
2
2
  import { type Ctx } from '../context';
3
3
  /** Build and install the module's state-reader access table. */
4
4
  export declare function buildAccessTable(ctx: Ctx): t.Statement | null;
@@ -1 +1 @@
1
- {"version":3,"file":"access-table.d.ts","sourceRoot":"","sources":["../../src/analysis/access-table.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAAqB,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAKzD,gEAAgE;AAChE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,GAAG,GAAG,CAAC,CAAC,SAAS,GAAG,IAAI,CA0F7D"}
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 { Ctx } from '../context';
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":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAItC,6EAA6E;AAC7E,wBAAgB,YAAY,CAC1B,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,MAAM,EACZ,QAAQ,GAAE,GAAG,CAAC,MAAM,CAAa,GAChC,MAAM,EAAE,CAuDV;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,8EAA8E;AAC9E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAoC1E"}
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 { type Ctx } from '../context';
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,EAAa,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAGjD,+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,CA0Bb;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA0C7D"}
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 { NodePath } from '@babel/traverse';
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: t.Node): ComputedAnalysis;
9
- /** Discover ordered module-level const derivations after module state exists. */
10
- export declare function scanComputeds(ctx: Ctx, programPath: NodePath<t.Program>): void;
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,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAKL,KAAK,gBAAgB,EACrB,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AAGpB;;;GAGG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,GAAG,gBAAgB,CAqGxE;AAED,iFAAiF;AACjF,wBAAgB,aAAa,CAC3B,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAC/B,IAAI,CAgCN"}
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,4 +1,4 @@
1
- import type { Ctx } from '../context';
1
+ import { type Ctx } from '../context';
2
2
  /**
3
3
  * Classify pure top-level if/switch calculations for reactive replay.
4
4
  * Side-effectful control flow remains one-time authored setup.
@@ -1 +1 @@
1
- {"version":3,"file":"instance-control-flow.d.ts","sourceRoot":"","sources":["../../src/analysis/instance-control-flow.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AAwJtC;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA4HtD;AAED,8EAA8E;AAC9E,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAuEvD"}
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
- * Discover ordered component-local const derivations. These replay in the
6
- * owning component update before guarded DOM setters.
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":"AAEA,OAAO,EAIL,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AA4LpB,+EAA+E;AAC/E,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA0BhD;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAoQtD"}
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,4 +1,4 @@
1
- import type { Ctx } from '../context';
1
+ import { type Ctx } from '../context';
2
2
  /**
3
3
  * Mark owners whose render output pulls from state that may continue changing
4
4
  * after control escaped into compiler-invisible code.
@@ -1 +1 @@
1
- {"version":3,"file":"opaque-volatility.d.ts","sourceRoot":"","sources":["../../src/analysis/opaque-volatility.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;AA2NtC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CA+FnD"}
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 * as t from '@babel/types';
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
- * Babel stores annotations on nested pattern nodes, so clear every supported
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: RuntimeBindingPattern): RuntimeBindingPattern;
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,CAAC,MAAM,cAAc,CAAC;AAElC,MAAM,MAAM,qBAAqB,GAC7B,CAAC,CAAC,UAAU,GACZ,CAAC,CAAC,aAAa,GACf,CAAC,CAAC,YAAY,CAAC;AAEnB;;;;GAIG;AACH,wBAAgB,0BAA0B,CACxC,OAAO,EAAE,qBAAqB,GAC7B,qBAAqB,CAcvB"}
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 * as t from '@babel/types';
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: t.Program): Map<string, string[]>;
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: t.Program): Map<string, string[]>;
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,cAAc,CAAC;AA8FlC;;;;GAIG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,CAAC,CAAC,OAAO,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAyBvB;AAED;;;;GAIG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,CAAC,CAAC,OAAO,GACjB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAwCvB"}
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"}
@@ -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 { NodePath } from '@babel/traverse';
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: NodePath<t.Program>): void;
54
+ export declare function runAnalysis(ctx: Ctx, programPath: ProgramPath): void;
52
55
  //# sourceMappingURL=analysis.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"analysis.d.ts","sourceRoot":"","sources":["../src/analysis.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAWL,KAAK,GAAG,EACT,MAAM,WAAW,CAAC;AA0CnB,OAAO,EACL,4BAA4B,EAC5B,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAyzC3D;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,IAAI,CA8C5E"}
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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"}