@memoized-dom/compiler 0.0.4 → 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 (190) hide show
  1. package/README.md +106 -28
  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 +7 -0
  17. package/dist/analysis/opaque-volatility.d.ts.map +1 -0
  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 +30 -14
  63. package/dist/compile.d.ts.map +1 -1
  64. package/dist/component-linker.d.ts +5 -1
  65. package/dist/component-linker.d.ts.map +1 -1
  66. package/dist/components/callback-props.d.ts +1 -1
  67. package/dist/components/callback-props.d.ts.map +1 -1
  68. package/dist/components/calls.d.ts +1 -1
  69. package/dist/components/calls.d.ts.map +1 -1
  70. package/dist/components/children.d.ts +5 -3
  71. package/dist/components/children.d.ts.map +1 -1
  72. package/dist/components/declarations.d.ts +10 -3
  73. package/dist/components/declarations.d.ts.map +1 -1
  74. package/dist/components/jsx-values.d.ts +2 -4
  75. package/dist/components/jsx-values.d.ts.map +1 -1
  76. package/dist/components/local-derived.d.ts +1 -1
  77. package/dist/components/local-derived.d.ts.map +1 -1
  78. package/dist/components/manifest.d.ts +2 -3
  79. package/dist/components/manifest.d.ts.map +1 -1
  80. package/dist/components/prop-effects.d.ts.map +1 -1
  81. package/dist/components/prop-linker.d.ts.map +1 -1
  82. package/dist/components/prop-origins.d.ts +2 -0
  83. package/dist/components/prop-origins.d.ts.map +1 -1
  84. package/dist/components/prop-projections.d.ts.map +1 -1
  85. package/dist/components/prop-shape.d.ts +11 -0
  86. package/dist/components/prop-shape.d.ts.map +1 -0
  87. package/dist/components/props.d.ts +9 -1
  88. package/dist/components/props.d.ts.map +1 -1
  89. package/dist/components/ref-props.d.ts.map +1 -1
  90. package/dist/components/render-callbacks.d.ts +9 -5
  91. package/dist/components/render-callbacks.d.ts.map +1 -1
  92. package/dist/components/render-functions.d.ts +1 -0
  93. package/dist/components/render-functions.d.ts.map +1 -1
  94. package/dist/components/render-prelude.d.ts +1 -1
  95. package/dist/components/render-prelude.d.ts.map +1 -1
  96. package/dist/components/return-plan.d.ts +13 -7
  97. package/dist/components/return-plan.d.ts.map +1 -1
  98. package/dist/conds.d.ts +6 -3
  99. package/dist/conds.d.ts.map +1 -1
  100. package/dist/context/ast.d.ts +18 -5
  101. package/dist/context/ast.d.ts.map +1 -1
  102. package/dist/context/model.d.ts +146 -13
  103. package/dist/context/model.d.ts.map +1 -1
  104. package/dist/data-sources.d.ts +78 -0
  105. package/dist/data-sources.d.ts.map +1 -0
  106. package/dist/diagnostics.d.ts +20 -0
  107. package/dist/diagnostics.d.ts.map +1 -0
  108. package/dist/effects.d.ts +13 -5
  109. package/dist/effects.d.ts.map +1 -1
  110. package/dist/emission/component.d.ts +3 -3
  111. package/dist/emission/component.d.ts.map +1 -1
  112. package/dist/emission/conditional-region.d.ts +6 -5
  113. package/dist/emission/conditional-region.d.ts.map +1 -1
  114. package/dist/emission/dom-template.d.ts.map +1 -1
  115. package/dist/emission/list-region.d.ts +6 -4
  116. package/dist/emission/list-region.d.ts.map +1 -1
  117. package/dist/emission/node-emitter.d.ts +4 -3
  118. package/dist/emission/node-emitter.d.ts.map +1 -1
  119. package/dist/emission/render-callback.d.ts +4 -3
  120. package/dist/emission/render-callback.d.ts.map +1 -1
  121. package/dist/emission/route-region.d.ts +10 -0
  122. package/dist/emission/route-region.d.ts.map +1 -0
  123. package/dist/emission/scope.d.ts +14 -2
  124. package/dist/emission/scope.d.ts.map +1 -1
  125. package/dist/emit.d.ts +5 -4
  126. package/dist/emit.d.ts.map +1 -1
  127. package/dist/errors.d.ts +15 -0
  128. package/dist/errors.d.ts.map +1 -0
  129. package/dist/handler-commits.d.ts +6 -1
  130. package/dist/handler-commits.d.ts.map +1 -1
  131. package/dist/handler-origin.d.ts +1 -1
  132. package/dist/handler-origin.d.ts.map +1 -1
  133. package/dist/handlers/analyze.d.ts +1 -1
  134. package/dist/handlers/analyze.d.ts.map +1 -1
  135. package/dist/handlers/local-calls.d.ts +2 -2
  136. package/dist/handlers/local-calls.d.ts.map +1 -1
  137. package/dist/handlers.d.ts +6 -5
  138. package/dist/handlers.d.ts.map +1 -1
  139. package/dist/helper-summaries.d.ts +2 -3
  140. package/dist/helper-summaries.d.ts.map +1 -1
  141. package/dist/identifiers.d.ts +15 -8
  142. package/dist/identifiers.d.ts.map +1 -1
  143. package/dist/index.d.ts +6 -2
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +3 -1
  146. package/dist/jsx/attributes.d.ts +1 -1
  147. package/dist/jsx/attributes.d.ts.map +1 -1
  148. package/dist/jsx/children.d.ts +3 -2
  149. package/dist/jsx/children.d.ts.map +1 -1
  150. package/dist/jsx/conditional-directives.d.ts +21 -0
  151. package/dist/jsx/conditional-directives.d.ts.map +1 -0
  152. package/dist/jsx/dom-attributes.d.ts +1 -1
  153. package/dist/jsx/dom-attributes.d.ts.map +1 -1
  154. package/dist/jsx/dynamic-tags.d.ts +9 -15
  155. package/dist/jsx/dynamic-tags.d.ts.map +1 -1
  156. package/dist/jsx/events.d.ts +2 -3
  157. package/dist/jsx/events.d.ts.map +1 -1
  158. package/dist/jsx/refs.d.ts +5 -4
  159. package/dist/jsx/refs.d.ts.map +1 -1
  160. package/dist/jsx/svg.d.ts +2 -2
  161. package/dist/jsx/svg.d.ts.map +1 -1
  162. package/dist/jsx-types.d.ts +42 -0
  163. package/dist/jsx-types.d.ts.map +1 -0
  164. package/dist/lifecycle.d.ts +10 -5
  165. package/dist/lifecycle.d.ts.map +1 -1
  166. package/dist/linker.d.ts +56 -5
  167. package/dist/linker.d.ts.map +1 -1
  168. package/dist/lists/calculated-sources.d.ts +1 -1
  169. package/dist/lists/calculated-sources.d.ts.map +1 -1
  170. package/dist/lists/map-site.d.ts +16 -8
  171. package/dist/lists/map-site.d.ts.map +1 -1
  172. package/dist/lists/source-shapes.d.ts +12 -3
  173. package/dist/lists/source-shapes.d.ts.map +1 -1
  174. package/dist/lists/static-derived.d.ts +37 -0
  175. package/dist/lists/static-derived.d.ts.map +1 -0
  176. package/dist/lists/targeted-refresh.d.ts +9 -2
  177. package/dist/lists/targeted-refresh.d.ts.map +1 -1
  178. package/dist/lists.d.ts +1 -0
  179. package/dist/lists.d.ts.map +1 -1
  180. package/dist/module-control-flow.d.ts +7 -6
  181. package/dist/module-control-flow.d.ts.map +1 -1
  182. package/dist/mutation-analysis.d.ts +22 -8
  183. package/dist/mutation-analysis.d.ts.map +1 -1
  184. package/dist/plugin.d.ts +15 -14
  185. package/dist/plugin.d.ts.map +1 -1
  186. package/dist/router.d.ts +32 -0
  187. package/dist/router.d.ts.map +1 -0
  188. package/dist/server-functions.d.ts +49 -0
  189. package/dist/server-functions.d.ts.map +1 -0
  190. package/package.json +34 -30
@@ -5,15 +5,29 @@
5
5
  * the plugin shell in plugin.ts stays a thin visitor wiring layer. One Ctx
6
6
  * is created per compiled module.
7
7
  */
8
- import type { NodePath } from '@babel/traverse';
9
- import * as t from '@babel/types';
8
+ import type * as t from '../ast/compiler-types';
9
+ import type { ScopeAnalysis } from '../ast';
10
10
  import type { ComponentPropsPlan, ControlFlowDerivation, LocalDerivation } from '../components/props';
11
11
  import type { GeneratedIdentifiers } from '../identifiers';
12
+ import type { CompilerRouteDefinition, CompilerRouteElement } from '../router';
13
+ export declare const DEFAULT_TRANSPARENT_ASYNC_SOURCES: readonly TransparentAsyncSourceDefinition[];
12
14
  export interface MemoDomOptions {
13
15
  /** Module specifier compiled output imports the runtime from. */
14
16
  runtimePath?: string;
15
- /** Entity id of the root component. */
16
- rootId?: string;
17
+ /** Dev-only runtime subpath used by compiler-emitted HMR ownership. */
18
+ hotRuntimePath?: string;
19
+ /** Module specifier used by compiler-generated router integration. */
20
+ routerPath?: string;
21
+ /** Runtime helpers used by compiler-transparent async data sources. */
22
+ dataRuntimePath?: string;
23
+ /**
24
+ * Library declarations that participate in transparent async lowering.
25
+ * The default describes @memoized-dom/data without baking its local import
26
+ * aliases into the analysis.
27
+ */
28
+ transparentAsyncSources?: readonly TransparentAsyncSourceDefinition[];
29
+ /** Emit dev-only live-component ownership used by framework HMR adapters. */
30
+ hot?: boolean;
17
31
  /**
18
32
  * Stable identity for this source module. Defaults to `./component.tsx`.
19
33
  * Module-state keys are always `<moduleId>#<binding>[.<path>]`.
@@ -32,12 +46,53 @@ export interface MemoDomOptions {
32
46
  linkedComponentPropSources?: Record<string, Record<string, LinkedComponentPropSource>>;
33
47
  /** Linker-resolved render-slot props for declarations in this module. */
34
48
  linkedComponentRenderProps?: Record<string, string[]>;
49
+ /**
50
+ * SSR Phase 1.3 lowering: rewrite reactive module-state bindings into
51
+ * request-owned state-cell operations (server builds only).
52
+ */
53
+ moduleStateCells?: boolean;
54
+ }
55
+ export interface TransparentAsyncSourceDefinition {
56
+ /** Public module from which the authored intrinsics are imported. */
57
+ module: string;
58
+ /** Export that creates a transparent source value. */
59
+ source: string;
60
+ /** Export that exposes reactive request state without resolving the value. */
61
+ track?: string;
62
+ /** Export that exposes imperative operations without resolving the value. */
63
+ operations?: string;
64
+ /** Compile-time local presentation boundary and its policy declarations. */
65
+ group?: string;
66
+ pending?: string;
67
+ error?: string;
68
+ }
69
+ export interface TransparentPresentationPolicy {
70
+ pending: string | TransparentPresentationComponent;
71
+ error: string | TransparentPresentationComponent;
72
+ }
73
+ export interface TransparentPresentationComponent {
74
+ component: string;
75
+ props: ReadonlyArray<{
76
+ name: string;
77
+ value: t.Expression;
78
+ }>;
79
+ }
80
+ /** Compiler/linker-only root facts derived from an authored mount() call. */
81
+ export interface InternalMemoDomOptions extends MemoDomOptions {
82
+ rootId?: string;
83
+ rootComponent?: string;
84
+ /** Application-wide route graph supplied by compileModules(). */
85
+ linkedRoutes?: readonly CompilerRouteDefinition[];
86
+ /** Emit and install the application manifest from this module. */
87
+ emitRouteManifest?: boolean;
35
88
  }
36
89
  export interface LinkedStateImport {
37
90
  type: 'state';
38
91
  kind: StateKind;
39
92
  /** Canonical root key of the defining export (`./state.ts#store`). */
40
93
  key: string;
94
+ /** RFC §16.4: import carries a module transparent-source ref. */
95
+ transparentSource?: boolean;
41
96
  /** Finite intrinsic-tag identities declared by a string-literal union. */
42
97
  tagCandidates?: string[];
43
98
  /** Finite component identities reachable through this state/registry. */
@@ -45,6 +100,10 @@ export interface LinkedStateImport {
45
100
  }
46
101
  export interface LinkedFunctionImport {
47
102
  type: 'function';
103
+ /** Calling this imported function creates a compiler-transparent source. */
104
+ transparentSourceFactory?: boolean;
105
+ /** HTTP method carried by a generated server-function source factory. */
106
+ transparentSourceMethod?: TransparentSourceMethod;
48
107
  /** Finite intrinsic-tag identities declared by the helper return type. */
49
108
  tagCandidates?: string[];
50
109
  /** Finite component identities declared by helper returns. */
@@ -59,6 +118,7 @@ export interface LinkedFunctionImport {
59
118
  /** Effects may extend beyond every known root and argument. */
60
119
  unbounded: boolean;
61
120
  }
121
+ export type TransparentSourceMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
62
122
  export interface LinkedComponentImport {
63
123
  type: 'component';
64
124
  /** Canonical declaration identity (`./Row.tsx#Row`). */
@@ -101,8 +161,13 @@ export interface LinkedComponentPropSource {
101
161
  keys: string[];
102
162
  /** At least one call site cannot be bounded to canonical module state. */
103
163
  rootFallback: boolean;
164
+ /** The prop carries a compiler-transparent async source holder. */
165
+ transparent?: boolean;
104
166
  }
105
- export type LinkedImport = LinkedStateImport | LinkedFunctionImport | LinkedComponentImport;
167
+ export interface LinkedValueImport {
168
+ type: 'value';
169
+ }
170
+ export type LinkedImport = LinkedStateImport | LinkedFunctionImport | LinkedComponentImport | LinkedValueImport;
106
171
  export interface ParameterWrite {
107
172
  index: number;
108
173
  path: string[];
@@ -147,6 +212,11 @@ export interface FnSummary {
147
212
  /** True when effects cannot be bounded to known roots or arguments. */
148
213
  unbounded: boolean;
149
214
  }
215
+ /**
216
+ * A `.map(...)` call, including optional-chained forms such as
217
+ * `items?.map(...)` or `resource.data?.map(...)`.
218
+ */
219
+ export type MapCallExpression = t.CallExpression | t.OptionalCallExpression;
150
220
  /** One owner-local list dependency addressable directly by its row key. */
151
221
  export interface TargetedListDependency {
152
222
  /** Instance-owned collection root whose writes require reconciliation. */
@@ -160,9 +230,8 @@ export interface KeyedListMutationPlan {
160
230
  keyPath: string[];
161
231
  keysVariable: string;
162
232
  targetedReason: string;
163
- topologyReason: string;
164
233
  structuralReason: string;
165
- call: t.CallExpression;
234
+ call: MapCallExpression;
166
235
  }
167
236
  /** One compiler-owned reactive side effect declared in a component body. */
168
237
  export interface EffectSite {
@@ -200,17 +269,62 @@ export interface ModuleControlFlowDerivation {
200
269
  sources: string[];
201
270
  entityId: string;
202
271
  }
203
- export type HelperPath = NodePath<t.FunctionDeclaration | t.ArrowFunctionExpression | t.FunctionExpression>;
272
+ export interface CompilerPath<TNode extends t.Node> {
273
+ node: TNode;
274
+ buildCodeFrameError(message: string, at?: t.Node): Error;
275
+ }
276
+ export type HelperPath = CompilerPath<t.FunctionDeclaration | t.ArrowFunctionExpression | t.FunctionExpression>;
204
277
  export interface Ctx {
205
278
  runtimePath: string;
279
+ hotRuntimePath: string;
280
+ routerPath: string;
281
+ dataRuntimePath: string;
282
+ transparentAsyncSources: readonly TransparentAsyncSourceDefinition[];
206
283
  rootId: string;
284
+ rootComponent: string | null;
285
+ hot: boolean;
286
+ /** SSR Phase 1.3 lowering: lower reactive module state into request cells. */
287
+ moduleStateCells: boolean;
207
288
  moduleId: string;
289
+ linkedRoutes: readonly CompilerRouteDefinition[] | null;
290
+ emitRouteManifest: boolean;
291
+ routeElements: WeakMap<t.JSXElement, CompilerRouteElement>;
292
+ localRoutes: CompilerRouteDefinition[];
293
+ usesRouter: boolean;
294
+ usesTransparentData: boolean;
295
+ /** Local import bindings classified by provider metadata. */
296
+ transparentSourceFactories: Set<string>;
297
+ /** Direct provider bindings (for example `$fetch`), whose arguments are request inputs. */
298
+ transparentProviderFactories: Set<string>;
299
+ /** Component-local variables assigned colorless sources inside event handlers. */
300
+ eventSourceSlots: Map<string, Set<string>>;
301
+ transparentSourceFactoryMethods: Map<string, TransparentSourceMethod>;
302
+ transparentTrackFactories: Set<string>;
303
+ transparentSourcePassthroughs: Set<string>;
304
+ transparentGroups: Set<string>;
305
+ transparentPendingPolicies: Set<string>;
306
+ transparentErrorPolicies: Set<string>;
307
+ /** Component-local source holders and track-state aliases. */
308
+ transparentSources: Map<string, Set<string>>;
309
+ transparentTrackBindings: Map<string, Map<string, readonly string[]>>;
310
+ /** Module-scope transparent sources: local binding name → canonical key. */
311
+ transparentModuleSources: Map<string, string>;
312
+ /** Direct prop binding -> authored prop name for transported source holders. */
313
+ transparentSourceProps: Map<string, Map<string, string>>;
314
+ /** Private factory parameter carrying inherited presentation renderers. */
315
+ transparentPolicyParams: Map<string, t.Identifier>;
316
+ /** Nearest lexical Group policies attached to component prop call sites. */
317
+ transparentGroupCallPolicies: WeakMap<t.JSXElement, Map<string, TransparentPresentationPolicy>>;
318
+ /** Parser-neutral lexical scope and parent index for the current AST shape. */
319
+ astAnalysis: ScopeAnalysis | null;
208
320
  state: Map<string, StateKind>;
209
321
  /** Local binding name -> canonical state root. */
210
322
  stateKeys: Map<string, string>;
211
323
  /** Finite intrinsic-tag identities proven by state type annotations. */
212
324
  stateTagCandidates: Map<string, string[]>;
213
325
  functionTagCandidates: Map<string, string[]>;
326
+ /** Finite string contracts attached to lexical binding identifiers. */
327
+ bindingTagCandidates: Map<string, string[]>;
214
328
  stateComponentCandidates: Map<string, string[]>;
215
329
  functionComponentCandidates: Map<string, string[]>;
216
330
  linkedDynamicComponentCandidates: Map<string, LinkedDynamicComponentCandidate[]>;
@@ -219,14 +333,14 @@ export interface Ctx {
219
333
  /** Linked summaries for imported functions and conservative external calls. */
220
334
  importedFunctions: Map<string, FnSummary>;
221
335
  importedComponents: Map<string, LinkedComponentImport>;
222
- /** Graph-linked placements for declarations in this module. */
336
+ importedValues: Set<string>;
223
337
  linkedComponentPaths: Map<string, string[]>;
224
338
  /** Graph-linked keyed-row modes for declarations in this module. */
225
339
  linkedComponentRows: Map<string, LinkedComponentRowUse[]>;
226
340
  linkedComponentPropSources: Map<string, Map<string, LinkedComponentPropSource>>;
227
341
  linkedComponentRenderProps: Map<string, string[]>;
228
342
  comps: Map<string, CompInfo>;
229
- compPaths: Map<string, NodePath<t.FunctionDeclaration>>;
343
+ compPaths: Map<string, CompilerPath<t.FunctionDeclaration>>;
230
344
  /** Top-level functions WITHOUT JSX — helpers, summarized for interprocedural effects. */
231
345
  helpers: Map<string, HelperPath>;
232
346
  /** JSX-returning functions expanded at local render call sites. */
@@ -272,11 +386,17 @@ export interface Ctx {
272
386
  vars: Set<string>;
273
387
  }>;
274
388
  /** Map call → owner-local values whose changes affect only old/new keyed rows. */
275
- targetedListDependencies: WeakMap<t.CallExpression, TargetedListDependency[]>;
389
+ targetedListDependencies: WeakMap<MapCallExpression, TargetedListDependency[]>;
276
390
  /** Components that need dirty reasons for targeted list refreshes. */
277
391
  targetedListComponents: Set<string>;
392
+ /** Reactive source keys rendered by keyed list regions. */
393
+ listSources: Set<string>;
394
+ /** Components owning a keyed list updater. */
395
+ listComponents: Set<string>;
396
+ /** Component -> non-local collection sources owned by its list updaters. */
397
+ componentListSources: Map<string, Set<string>>;
278
398
  /** Map call -> direct keyed-item mutation journal used by that one list. */
279
- keyedListMutations: WeakMap<t.CallExpression, KeyedListMutationPlan>;
399
+ keyedListMutations: WeakMap<MapCallExpression, KeyedListMutationPlan>;
280
400
  /** Component -> source root -> journal plan, for handler write analysis. */
281
401
  keyedListMutationSources: Map<string, Map<string, KeyedListMutationPlan>>;
282
402
  /** Sources used by multiple list sites deliberately keep full reconciliation. */
@@ -301,6 +421,10 @@ export interface Ctx {
301
421
  instanceReasonIds: Map<string, Map<string, number>>;
302
422
  /** Components whose local dependency graph has skippable work. */
303
423
  selectiveDerivationComponents: Set<string>;
424
+ /** Components whose rendered output reads state controlled by opaque code. */
425
+ volatileComponents: Set<string>;
426
+ /** Component-local/module bindings whose current value is owned by opaque code. */
427
+ opaqueBindings: Map<string, Set<string>>;
304
428
  /** Compiler-owned reactive effects, in source order per component. */
305
429
  effects: Map<string, EffectSite[]>;
306
430
  /** Module-owned singleton effects, in source order. */
@@ -329,10 +453,19 @@ export interface Ctx {
329
453
  reasonConsts: Map<string, string>;
330
454
  /** Function nodes whose handler analysis already ran (shared declarations). */
331
455
  analyzedFunctions: WeakSet<t.Node>;
456
+ /** Pure callbacks synthesized and owned by compiler derivation/read helpers. */
457
+ compilerOwnedCallbacks: WeakSet<t.Node>;
332
458
  /** Whether a shared handler already emits a commit in its event scope. */
333
459
  handlerHasRootCommit: WeakMap<t.Node, boolean>;
460
+ /**
461
+ * Effects a component-local helper performs on its own parameters, keyed by
462
+ * the helper's function node. Callers fold these through their arguments so
463
+ * row-relative writes route from the call site (whose scope owns the row
464
+ * identifiers) instead of the helper body (which does not).
465
+ */
466
+ localParamEffects: WeakMap<t.Node, ParameterWrite[]>;
334
467
  /** Compiler-wide allocator initialized from the original Program scope. */
335
468
  identifiers: GeneratedIdentifiers | null;
336
469
  }
337
- export declare function createCtx(opts?: MemoDomOptions): Ctx;
470
+ export declare function createCtx(opts?: InternalMemoDomOptions): Ctx;
338
471
  //# sourceMappingURL=model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/context/model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../src/context/model.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,78 @@
1
+ /**
2
+ * Compiler-transparent async data sources.
3
+ *
4
+ * The public binding is typed as ResolvedValue<T>, while generated code keeps
5
+ * the library's source holder. Reads are lowered either to a render gate or an
6
+ * imperative resolution guard; source transitions push the owning component
7
+ * through the ordinary runtime dirty queue.
8
+ */
9
+ import type * as t from './ast/compiler-types';
10
+ import { type Ctx } from './context';
11
+ import { type EmitScope } from './emission/scope';
12
+ /** Resolve provider metadata to local import aliases before module analysis. */
13
+ export declare function scanTransparentSourceImports(ctx: Ctx, programPath: {
14
+ node: t.Program;
15
+ }): void;
16
+ /**
17
+ * Reject eager destructuring of compiler-transparent sources before any
18
+ * source lowering mutates the authored call or its precise source location.
19
+ */
20
+ export declare function rejectTransparentSourceDestructuring(ctx: Ctx, programPath: {
21
+ node: t.Program;
22
+ buildCodeFrameError(message: string, at?: t.Node): Error;
23
+ }): void;
24
+ /** Base source bindings whose transition must update this emitted expression. */
25
+ export declare function transparentExpressionSources(ctx: Ctx, expression: t.Expression): readonly string[];
26
+ /** Register one exact scalar/prop sink under its smallest structural owner. */
27
+ export declare function registerTransparentDataSite(ctx: Ctx, scope: EmitScope, sources: readonly string[], ownerId: t.Expression, render: t.Statement): boolean;
28
+ /** Route a transparent expression to an already-registered structural entity. */
29
+ export declare function subscribeTransparentStructuralSite(ctx: Ctx, scope: EmitScope, expression: t.Expression, entityId: t.Expression): void;
30
+ interface TransparentPolicyRenderer {
31
+ renderer: t.Expression;
32
+ args: t.Expression[];
33
+ }
34
+ export declare function transparentPolicyRenderer(element: t.JSXElement): TransparentPolicyRenderer | null;
35
+ /** Normalize the exact three-child Group form into independent local sites. */
36
+ export declare function lowerTransparentGroups(ctx: Ctx, programPath: {
37
+ node: t.Program;
38
+ buildCodeFrameError(message: string, at?: t.Node): Error;
39
+ }): void;
40
+ /**
41
+ * Source holders are externally changing roots for derivation analysis, but
42
+ * unlike arbitrary opaque values they are push-owned and require no volatile
43
+ * frame polling.
44
+ */
45
+ export declare function registerTransparentSourceRoots(ctx: Ctx): void;
46
+ /**
47
+ * RFC §16.4: lower module-scope transparent declarations into lazy
48
+ * descriptions + stable refs. The description never executes at module
49
+ * evaluation; the first read inside an ApplicationRuntime materializes a
50
+ * request-local instance.
51
+ */
52
+ export declare function scanAndLowerModuleSourceDeclarations(ctx: Ctx, programPath: {
53
+ node: t.Program;
54
+ }): void;
55
+ /**
56
+ * Non-GET server functions mutate server state and therefore cannot execute
57
+ * while a component (or module) is being evaluated. Nested callbacks remain
58
+ * valid event/effect boundaries.
59
+ */
60
+ export declare function rejectNonGetServerFunctionRenderCalls(ctx: Ctx, programPath: {
61
+ node: t.Program;
62
+ buildCodeFrameError(message: string, at?: t.Node): Error;
63
+ }): void;
64
+ /**
65
+ * Component-local `let` variables assigned colorless sources inside event
66
+ * handlers do not exist when the component mounts, so render reads through
67
+ * them (`$track(x)`) need a per-update subscription slot (RFC §2.1).
68
+ */
69
+ export declare function scanEventSourceAssignments(ctx: Ctx): void;
70
+ /** Find direct component-local source declarations and track aliases. */
71
+ export declare function scanTransparentSourceBindings(ctx: Ctx): void;
72
+ export declare function rewriteTransparentDataReads(ctx: Ctx): void;
73
+ /** Private presentation argument supplied to one compiled component call. */
74
+ export declare function transparentCallPolicyArgument(ctx: Ctx, owner: string, element: t.JSXElement): t.ObjectExpression | null;
75
+ /** Component-mount statements granting disposal only to locally-created sources. */
76
+ export declare function transparentSourceMounts(ctx: Ctx, component: string, owner: t.Identifier): t.Statement[];
77
+ export {};
78
+ //# sourceMappingURL=data-sources.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data-sources.d.ts","sourceRoot":"","sources":["../src/data-sources.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type MemoDomOptions } from './compile';
2
+ import { type CompileModulesOptions } from './linker';
3
+ export declare const compilerDiagnosticCode = 98000;
4
+ export declare const compilerDiagnosticSource = "memoized-dom";
5
+ export interface CompilerDiagnostic {
6
+ code: typeof compilerDiagnosticCode;
7
+ source: typeof compilerDiagnosticSource;
8
+ severity: 'error';
9
+ message: string;
10
+ moduleId?: string;
11
+ line?: number;
12
+ column?: number;
13
+ endLine?: number;
14
+ endColumn?: number;
15
+ }
16
+ /** Convert every compiler failure into the package's stable feedback shape. */
17
+ export declare function toCompilerDiagnostic(value: unknown, moduleIds?: readonly string[]): CompilerDiagnostic;
18
+ export declare function diagnose(source: string, options?: MemoDomOptions): CompilerDiagnostic[];
19
+ export declare function diagnoseModules(modules: Readonly<Record<string, string>>, options?: CompileModulesOptions): CompilerDiagnostic[];
20
+ //# sourceMappingURL=diagnostics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diagnostics.d.ts","sourceRoot":"","sources":["../src/diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,WAAW,CAAC;AACzD,OAAO,EAEL,KAAK,qBAAqB,EAC3B,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,sBAAsB,QAAQ,CAAC;AAC5C,eAAO,MAAM,wBAAwB,iBAAiB,CAAC;AAEvD,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,sBAAsB,CAAC;IACpC,MAAM,EAAE,OAAO,wBAAwB,CAAC;IACxC,QAAQ,EAAE,OAAO,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAiCD,+EAA+E;AAC/E,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,OAAO,EACd,SAAS,GAAE,SAAS,MAAM,EAAO,GAChC,kBAAkB,CAuCpB;AAED,wBAAgB,QAAQ,CACtB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE,cAAmB,GAC3B,kBAAkB,EAAE,CAStB;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EACzC,OAAO,GAAE,qBAA0B,GAClC,kBAAkB,EAAE,CAOtB"}
package/dist/effects.d.ts CHANGED
@@ -5,14 +5,21 @@
5
5
  * entities execute only after render entities have drained, and own the latest
6
6
  * teardown returned by the callback.
7
7
  */
8
- import type { NodePath } from '@babel/traverse';
9
- import * as t from '@babel/types';
8
+ import type * as t from './ast/compiler-types';
9
+ import { type BaseNode } from './ast';
10
10
  import { type Ctx, type EffectSite } from './context';
11
11
  import type { EmitScope } from './emission/scope';
12
+ interface DiagnosticPath<TNode extends BaseNode = BaseNode> {
13
+ node: TNode;
14
+ buildCodeFrameError(message: string): Error;
15
+ }
16
+ type ProgramPath = DiagnosticPath<BaseNode & {
17
+ type: 'Program';
18
+ }>;
12
19
  /**
13
20
  * Discover and validate direct component-body effect statements.
14
21
  */
15
- export declare function scanEffects(ctx: Ctx, programPath: NodePath<t.Program>): void;
22
+ export declare function scanEffects(ctx: Ctx, programPath: ProgramPath): void;
16
23
  /**
17
24
  * Dirty local/prop-dependent effect entities after the owner's DOM update.
18
25
  */
@@ -20,7 +27,8 @@ export declare function buildLocalEffectInvalidations(ctx: Ctx, component: strin
20
27
  /** Runtime registrations emitted after the owner's DOM creation statements. */
21
28
  export declare function buildEffectRegistrations(ctx: Ctx, factoryId: string, sites: EffectSite[]): t.Statement[];
22
29
  /** Lower direct module effects to stable singleton registrations. */
23
- export declare function rewriteModuleEffects(ctx: Ctx, programPath: NodePath<t.Program>): void;
30
+ export declare function rewriteModuleEffects(ctx: Ctx, programPath: ProgramPath): void;
24
31
  /** Reject effect syntax that was not consumed by component emission. */
25
- export declare function rejectUnownedEffects(programPath: NodePath<t.Program>): void;
32
+ export declare function rejectUnownedEffects(ctx: Ctx, programPath: ProgramPath): void;
33
+ export {};
26
34
  //# sourceMappingURL=effects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,UAAU,EAEhB,MAAM,WAAW,CAAC;AAInB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AA6flD;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAC/B,IAAI,CAuFN;AAoDD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,UAAU,EAAE,EACnB,KAAK,CAAC,EAAE,SAAS,GAChB,CAAC,CAAC,SAAS,CAkGb;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EAAE,GAClB,CAAC,CAAC,SAAS,EAAE,CA0Bf;AASD,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAC/B,IAAI,CA+DN;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAC/B,IAAI,CAUN"}
1
+ {"version":3,"file":"effects.d.ts","sourceRoot":"","sources":["../src/effects.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,KAAK,CAAC,MAAM,sBAAsB,CAAC;AAG/C,OAAO,EAGL,KAAK,QAAQ,EAGd,MAAM,OAAO,CAAC;AACf,OAAO,EAML,KAAK,GAAG,EACR,KAAK,UAAU,EAEhB,MAAM,WAAW,CAAC;AAInB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElD,UAAU,cAAc,CAAC,KAAK,SAAS,QAAQ,GAAG,QAAQ;IACxD,IAAI,EAAE,KAAK,CAAC;IACZ,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;CAC7C;AAED,KAAK,WAAW,GAAG,cAAc,CAAC,QAAQ,GAAG;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,CAAC,CAAC;AA8kBlE;;GAEG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,GACvB,IAAI,CAkGN;AAqFD;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,KAAK,EAAE,UAAU,EAAE,EACnB,KAAK,CAAC,EAAE,SAAS,GAChB,CAAC,CAAC,SAAS,CAsGb;AAED,+EAA+E;AAC/E,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,UAAU,EAAE,GAClB,CAAC,CAAC,SAAS,EAAE,CA0Bf;AASD,qEAAqE;AACrE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,GACvB,IAAI,CA0DN;AAED,wEAAwE;AACxE,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,GACvB,IAAI,CAWN"}
@@ -5,8 +5,8 @@
5
5
  * replay order, lifecycle registration, and listed-row identity. DOM and
6
6
  * structural-region creation remain in emit.ts.
7
7
  */
8
- import type { NodePath } from '@babel/traverse';
9
- import * as t from '@babel/types';
10
8
  import { type Ctx } from '../context';
11
- export declare function transformComponent(ctx: Ctx, path: NodePath<t.FunctionDeclaration>, name: string): void;
9
+ type ComponentPath = Ctx['compPaths'] extends Map<string, infer TPath> ? TPath : never;
10
+ export declare function transformComponent(ctx: Ctx, path: ComponentPath, name: string): void;
11
+ export {};
12
12
  //# sourceMappingURL=component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/emission/component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAEL,KAAK,GAAG,EAET,MAAM,YAAY,CAAC;AAiCpB,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EACrC,IAAI,EAAE,MAAM,GACX,IAAI,CAqTN"}
1
+ {"version":3,"file":"component.d.ts","sourceRoot":"","sources":["../../src/emission/component.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAMH,OAAO,EAEL,KAAK,GAAG,EAKT,MAAM,YAAY,CAAC;AAwCpB,KAAK,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAClE,KAAK,GACL,KAAK,CAAC;AAkKV,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,MAAM,GACX,IAAI,CA0RN"}
@@ -1,13 +1,14 @@
1
- import type { NodePath } from '@babel/traverse';
2
- import * as t from '@babel/types';
1
+ import type * as t from '../ast/compiler-types';
3
2
  import { type Ctx } from '../context';
4
3
  import type { JsxNode } from '../jsx/children';
5
4
  import { type EmitScope } from './scope';
6
5
  import type { NodeEmitter } from './node-emitter';
6
+ type ComponentPath = Ctx['compPaths'] extends Map<string, infer TPath> ? TPath : never;
7
7
  /** Emit an anchored conditional region owned by a component or row. */
8
- export declare function emitConditionalRegion(ctx: Ctx, scope: EmitScope, expression: t.ConditionalExpression | t.LogicalExpression, parentElementVariable: string, componentName: string, componentPath: NodePath<t.FunctionDeclaration>, emitNode: NodeEmitter, inSvg?: boolean, ownerId?: t.Expression, forwardFromOwner?: boolean): void;
8
+ export declare function emitConditionalRegion(ctx: Ctx, scope: EmitScope, expression: t.ConditionalExpression | t.LogicalExpression, parentElementVariable: string, componentName: string, componentPath: ComponentPath, emitNode: NodeEmitter, inSvg?: boolean, ownerId?: t.Expression, forwardFromOwner?: boolean): void;
9
9
  /** Build a non-entity branch factory with isolated slots and cleanup. */
10
- export declare function buildConditionalBranchCreate(ctx: Ctx, jsx: JsxNode, componentName: string, componentPath: NodePath<t.FunctionDeclaration>, regionId: t.Expression, emitNode: NodeEmitter, inSvg?: boolean, ownerId?: t.Expression, allowConditions?: boolean, usedConditions?: {
10
+ export declare function buildConditionalBranchCreate(ctx: Ctx, jsx: JsxNode, componentName: string, componentPath: ComponentPath, regionId: t.Expression, emitNode: NodeEmitter, inSvg?: boolean, ownerId?: t.Expression, allowConditions?: boolean, usedConditions?: {
11
11
  count: number;
12
- }): t.ArrowFunctionExpression;
12
+ }, coveredTransparentSources?: readonly string[]): t.ArrowFunctionExpression;
13
+ export {};
13
14
  //# sourceMappingURL=conditional-region.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"conditional-region.d.ts","sourceRoot":"","sources":["../../src/emission/conditional-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAEL,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,uEAAuE;AACvE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,iBAAiB,EACzD,qBAAqB,EAAE,MAAM,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,WAAW,EACrB,KAAK,UAAQ,EACb,OAAO,GAAE,CAAC,CAAC,UAA4C,EACvD,gBAAgB,UAAQ,GACvB,IAAI,CA+EN;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,CAAC,CAAC,UAAU,EACtB,QAAQ,EAAE,WAAW,EACrB,KAAK,UAAQ,EACb,OAAO,GAAE,CAAC,CAAC,UAAqB,EAChC,eAAe,UAAQ,EACvB,cAAc,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjC,CAAC,CAAC,uBAAuB,CAwF3B"}
1
+ {"version":3,"file":"conditional-region.d.ts","sourceRoot":"","sources":["../../src/emission/conditional-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAGhD,OAAO,EAEL,KAAK,GAAG,EACT,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAMlD,KAAK,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAClE,KAAK,GACL,KAAK,CAAC;AAEV,uEAAuE;AACvE,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,UAAU,EAAE,CAAC,CAAC,qBAAqB,GAAG,CAAC,CAAC,iBAAiB,EACzD,qBAAqB,EAAE,MAAM,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,WAAW,EACrB,KAAK,UAAQ,EACb,OAAO,GAAE,CAAC,CAAC,UAA4C,EACvD,gBAAgB,UAAQ,GACvB,IAAI,CAwFN;AAED,yEAAyE;AACzE,wBAAgB,4BAA4B,CAC1C,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,OAAO,EACZ,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,CAAC,CAAC,UAAU,EACtB,QAAQ,EAAE,WAAW,EACrB,KAAK,UAAQ,EACb,OAAO,GAAE,CAAC,CAAC,UAAqB,EAChC,eAAe,UAAQ,EACvB,cAAc,CAAC,EAAE;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,EAClC,yBAAyB,GAAE,SAAS,MAAM,EAAO,GAChD,CAAC,CAAC,uBAAuB,CA4F3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"dom-template.d.ts","sourceRoot":"","sources":["../../src/emission/dom-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAkBzC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAoIT"}
1
+ {"version":3,"file":"dom-template.d.ts","sourceRoot":"","sources":["../../src/emission/dom-template.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,EAAa,KAAK,GAAG,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAkBzC,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAqLT"}
@@ -1,10 +1,12 @@
1
- import type { NodePath } from '@babel/traverse';
2
- import * as t from '@babel/types';
1
+ import type * as t from '../ast/compiler-types';
3
2
  import { type Ctx, type RowCtx } from '../context';
3
+ import { type MapCallExpression } from '../lists';
4
4
  import { type JsxChild } from '../components/children';
5
5
  import { type EmitScope } from './scope';
6
6
  import type { NodeEmitter } from './node-emitter';
7
- export type AuthoredChildrenSlotBuilder = (ctx: Ctx, ownerScope: EmitScope, children: readonly JsxChild[], componentName: string, componentPath: NodePath<t.FunctionDeclaration>, nestedIn: 'row' | 'cond' | null, rowContext: RowCtx | undefined, eventOriginId: t.Expression | undefined, inSvg: boolean, ownerId: t.Expression) => t.Identifier;
7
+ type ComponentPath = Ctx['compPaths'] extends Map<string, infer TPath> ? TPath : never;
8
+ export type AuthoredChildrenSlotBuilder = (ctx: Ctx, ownerScope: EmitScope, children: readonly JsxChild[], componentName: string, componentPath: ComponentPath, nestedIn: 'row' | 'cond' | null, rowContext: RowCtx | undefined, eventOriginId: t.Expression | undefined, inSvg: boolean, ownerId: t.Expression) => t.Identifier;
8
9
  /** Emit a keyed list region and its row factory. */
9
- export declare function emitListRegion(ctx: Ctx, scope: EmitScope, call: t.CallExpression, parentElementVariable: string, componentName: string, componentPath: NodePath<t.FunctionDeclaration>, emitNode: NodeEmitter, buildAuthoredChildrenSlot: AuthoredChildrenSlotBuilder, inSvg?: boolean, ownerId?: t.Expression, parentRow?: RowCtx): void;
10
+ export declare function emitListRegion(ctx: Ctx, scope: EmitScope, call: MapCallExpression, parentElementVariable: string, componentName: string, componentPath: ComponentPath, emitNode: NodeEmitter, buildAuthoredChildrenSlot: AuthoredChildrenSlotBuilder, inSvg?: boolean, ownerId?: t.Expression, parentRow?: RowCtx): void;
11
+ export {};
10
12
  //# sourceMappingURL=list-region.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"list-region.d.ts","sourceRoot":"","sources":["../../src/emission/list-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAClC,OAAO,EAIL,KAAK,GAAG,EACR,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AAQpB,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAchC,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAalD,MAAM,MAAM,2BAA2B,GAAG,CACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,CAAC,CAAC,UAAU,GAAG,SAAS,EACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,CAAC,CAAC,UAAU,KAClB,CAAC,CAAC,UAAU,CAAC;AAElB,oDAAoD;AACpD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,CAAC,CAAC,cAAc,EACtB,qBAAqB,EAAE,MAAM,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,WAAW,EACrB,yBAAyB,EAAE,2BAA2B,EACtD,KAAK,UAAQ,EACb,OAAO,GAAE,CAAC,CAAC,UAA4C,EACvD,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAgMN"}
1
+ {"version":3,"file":"list-region.d.ts","sourceRoot":"","sources":["../../src/emission/list-region.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAMhD,OAAO,EAKL,KAAK,GAAG,EACR,KAAK,MAAM,EACZ,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAkB,KAAK,iBAAiB,EAAgB,MAAM,UAAU,CAAC;AAEhF,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,wBAAwB,CAAC;AAchC,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAalD,KAAK,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAClE,KAAK,GACL,KAAK,CAAC;AAEV,MAAM,MAAM,2BAA2B,GAAG,CACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,SAAS,EACrB,QAAQ,EAAE,SAAS,QAAQ,EAAE,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAC/B,UAAU,EAAE,MAAM,GAAG,SAAS,EAC9B,aAAa,EAAE,CAAC,CAAC,UAAU,GAAG,SAAS,EACvC,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,CAAC,CAAC,UAAU,KAClB,CAAC,CAAC,UAAU,CAAC;AAYlB,oDAAoD;AACpD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,iBAAiB,EACvB,qBAAqB,EAAE,MAAM,EAC7B,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,WAAW,EACrB,yBAAyB,EAAE,2BAA2B,EACtD,KAAK,UAAQ,EACb,OAAO,GAAE,CAAC,CAAC,UAA4C,EACvD,SAAS,CAAC,EAAE,MAAM,GACjB,IAAI,CAiNN"}
@@ -1,8 +1,9 @@
1
- import type { NodePath } from '@babel/traverse';
2
- import type * as t from '@babel/types';
1
+ import type * as t from '../ast/compiler-types';
3
2
  import type { Ctx, RowCtx } from '../context';
4
3
  import type { JsxNode } from '../jsx/children';
5
4
  import type { EmitScope } from './scope';
5
+ type ComponentPath = Ctx['compPaths'] extends Map<string, infer TPath> ? TPath : never;
6
6
  /** Shared callback shape used by structural-region emitters. */
7
- export type NodeEmitter = (ctx: Ctx, scope: EmitScope, node: JsxNode, componentName: string, componentPath: NodePath<t.FunctionDeclaration>, nestedIn?: 'row' | 'cond' | null, rowContext?: RowCtx, eventOriginId?: t.Expression, inSvg?: boolean, ownerId?: t.Expression) => string;
7
+ export type NodeEmitter = (ctx: Ctx, scope: EmitScope, node: JsxNode, componentName: string, componentPath: ComponentPath, nestedIn?: 'row' | 'cond' | null, rowContext?: RowCtx, eventOriginId?: t.Expression, inSvg?: boolean, ownerId?: t.Expression) => string;
8
+ export {};
8
9
  //# sourceMappingURL=node-emitter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node-emitter.d.ts","sourceRoot":"","sources":["../../src/emission/node-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAC;AACvC,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAChC,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU,EAC5B,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,KACnB,MAAM,CAAC"}
1
+ {"version":3,"file":"node-emitter.d.ts","sourceRoot":"","sources":["../../src/emission/node-emitter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAChD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC,KAAK,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAClE,KAAK,GACL,KAAK,CAAC;AAEV,gEAAgE;AAChE,MAAM,MAAM,WAAW,GAAG,CACxB,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,SAAS,EAChB,IAAI,EAAE,OAAO,EACb,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,IAAI,EAChC,UAAU,CAAC,EAAE,MAAM,EACnB,aAAa,CAAC,EAAE,CAAC,CAAC,UAAU,EAC5B,KAAK,CAAC,EAAE,OAAO,EACf,OAAO,CAAC,EAAE,CAAC,CAAC,UAAU,KACnB,MAAM,CAAC"}
@@ -1,8 +1,8 @@
1
- import type { NodePath } from '@babel/traverse';
2
- import * as t from '@babel/types';
1
+ import type * as t from '../ast/compiler-types';
3
2
  import { type Ctx } from '../context';
4
3
  import { type EmitScope } from './scope';
5
4
  import type { NodeEmitter } from './node-emitter';
5
+ type ComponentPath = Ctx['compPaths'] extends Map<string, infer TPath> ? TPath : never;
6
6
  /**
7
7
  * Compile one caller-authored render callback into a row-factory adapter.
8
8
  *
@@ -10,5 +10,6 @@ import type { NodeEmitter } from './node-emitter';
10
10
  * live row update closures remain indexed by the lexical caller so caller
11
11
  * state can update rows mounted inside another component's list.
12
12
  */
13
- export declare function buildRenderCallbackAdapter(ctx: Ctx, ownerScope: EmitScope, source: t.Expression, componentName: string, componentPath: NodePath<t.FunctionDeclaration>, emitNode: NodeEmitter, inSvg: boolean, ownerId: t.Expression): t.Identifier;
13
+ export declare function buildRenderCallbackAdapter(ctx: Ctx, ownerScope: EmitScope, source: t.Expression, componentName: string, componentPath: ComponentPath, emitNode: NodeEmitter, inSvg: boolean, ownerId: t.Expression): t.Identifier;
14
+ export {};
14
15
  //# sourceMappingURL=render-callback.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render-callback.d.ts","sourceRoot":"","sources":["../../src/emission/render-callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,CAAC,MAAM,cAAc,CAAC;AAElC,OAAO,EAGL,KAAK,GAAG,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAkBlD;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,QAAQ,CAAC,CAAC,CAAC,mBAAmB,CAAC,EAC9C,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,CAAC,CAAC,UAAU,GACpB,CAAC,CAAC,UAAU,CA8Od"}
1
+ {"version":3,"file":"render-callback.d.ts","sourceRoot":"","sources":["../../src/emission/render-callback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,CAAC,MAAM,uBAAuB,CAAC;AAQhD,OAAO,EAGL,KAAK,GAAG,EAET,MAAM,YAAY,CAAC;AAEpB,OAAO,EAKL,KAAK,SAAS,EACf,MAAM,SAAS,CAAC;AACjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,KAAK,aAAa,GAAG,GAAG,CAAC,WAAW,CAAC,SAAS,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC,GAClE,KAAK,GACL,KAAK,CAAC;AAiBV;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,SAAS,EACrB,MAAM,EAAE,CAAC,CAAC,UAAU,EACpB,aAAa,EAAE,MAAM,EACrB,aAAa,EAAE,aAAa,EAC5B,QAAQ,EAAE,WAAW,EACrB,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,CAAC,CAAC,UAAU,GACpB,CAAC,CAAC,UAAU,CAiPd"}