@reactra/babel-plugin 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (99) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +17 -0
  3. package/dist/ast/index.d.ts +2 -0
  4. package/dist/ast/index.d.ts.map +1 -0
  5. package/dist/ast/index.js +3 -0
  6. package/dist/ast/index.js.map +1 -0
  7. package/dist/ast/nodes.d.ts +437 -0
  8. package/dist/ast/nodes.d.ts.map +1 -0
  9. package/dist/ast/nodes.js +35 -0
  10. package/dist/ast/nodes.js.map +1 -0
  11. package/dist/behaviours/index.d.ts +18 -0
  12. package/dist/behaviours/index.d.ts.map +1 -0
  13. package/dist/behaviours/index.js +36 -0
  14. package/dist/behaviours/index.js.map +1 -0
  15. package/dist/behaviours/plugin.d.ts +22 -0
  16. package/dist/behaviours/plugin.d.ts.map +1 -0
  17. package/dist/behaviours/plugin.js +70 -0
  18. package/dist/behaviours/plugin.js.map +1 -0
  19. package/dist/behaviours/replayable.d.ts +10 -0
  20. package/dist/behaviours/replayable.d.ts.map +1 -0
  21. package/dist/behaviours/replayable.js +86 -0
  22. package/dist/behaviours/replayable.js.map +1 -0
  23. package/dist/behaviours/types.d.ts +77 -0
  24. package/dist/behaviours/types.d.ts.map +1 -0
  25. package/dist/behaviours/types.js +10 -0
  26. package/dist/behaviours/types.js.map +1 -0
  27. package/dist/behaviours/undoable.d.ts +10 -0
  28. package/dist/behaviours/undoable.d.ts.map +1 -0
  29. package/dist/behaviours/undoable.js +62 -0
  30. package/dist/behaviours/undoable.js.map +1 -0
  31. package/dist/compile.d.ts +69 -0
  32. package/dist/compile.d.ts.map +1 -0
  33. package/dist/compile.js +75 -0
  34. package/dist/compile.js.map +1 -0
  35. package/dist/conventions/index.d.ts +110 -0
  36. package/dist/conventions/index.d.ts.map +1 -0
  37. package/dist/conventions/index.js +193 -0
  38. package/dist/conventions/index.js.map +1 -0
  39. package/dist/index.d.ts +48 -0
  40. package/dist/index.d.ts.map +1 -0
  41. package/dist/index.js +77 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/passes/index.d.ts +5 -0
  44. package/dist/passes/index.d.ts.map +1 -0
  45. package/dist/passes/index.js +6 -0
  46. package/dist/passes/index.js.map +1 -0
  47. package/dist/passes/pass-1-parse.d.ts +3 -0
  48. package/dist/passes/pass-1-parse.d.ts.map +1 -0
  49. package/dist/passes/pass-1-parse.js +21 -0
  50. package/dist/passes/pass-1-parse.js.map +1 -0
  51. package/dist/passes/pass-2-extract.d.ts +4 -0
  52. package/dist/passes/pass-2-extract.d.ts.map +1 -0
  53. package/dist/passes/pass-2-extract.js +762 -0
  54. package/dist/passes/pass-2-extract.js.map +1 -0
  55. package/dist/passes/pass-3-readset.d.ts +11 -0
  56. package/dist/passes/pass-3-readset.d.ts.map +1 -0
  57. package/dist/passes/pass-3-readset.js +338 -0
  58. package/dist/passes/pass-3-readset.js.map +1 -0
  59. package/dist/passes/pass-9-codegen.d.ts +27 -0
  60. package/dist/passes/pass-9-codegen.d.ts.map +1 -0
  61. package/dist/passes/pass-9-codegen.js +2755 -0
  62. package/dist/passes/pass-9-codegen.js.map +1 -0
  63. package/dist/preprocess/helpers.d.ts +71 -0
  64. package/dist/preprocess/helpers.d.ts.map +1 -0
  65. package/dist/preprocess/helpers.js +342 -0
  66. package/dist/preprocess/helpers.js.map +1 -0
  67. package/dist/preprocess/index.d.ts +6 -0
  68. package/dist/preprocess/index.d.ts.map +1 -0
  69. package/dist/preprocess/index.js +11 -0
  70. package/dist/preprocess/index.js.map +1 -0
  71. package/dist/preprocess/keywords.d.ts +28 -0
  72. package/dist/preprocess/keywords.d.ts.map +1 -0
  73. package/dist/preprocess/keywords.js +99 -0
  74. package/dist/preprocess/keywords.js.map +1 -0
  75. package/dist/preprocess/lexer.d.ts +8 -0
  76. package/dist/preprocess/lexer.d.ts.map +1 -0
  77. package/dist/preprocess/lexer.js +143 -0
  78. package/dist/preprocess/lexer.js.map +1 -0
  79. package/dist/preprocess/preprocess.d.ts +3 -0
  80. package/dist/preprocess/preprocess.d.ts.map +1 -0
  81. package/dist/preprocess/preprocess.js +568 -0
  82. package/dist/preprocess/preprocess.js.map +1 -0
  83. package/dist/preprocess/rewriters.d.ts +35 -0
  84. package/dist/preprocess/rewriters.d.ts.map +1 -0
  85. package/dist/preprocess/rewriters.js +1391 -0
  86. package/dist/preprocess/rewriters.js.map +1 -0
  87. package/dist/preprocess/source-map.d.ts +70 -0
  88. package/dist/preprocess/source-map.d.ts.map +1 -0
  89. package/dist/preprocess/source-map.js +253 -0
  90. package/dist/preprocess/source-map.js.map +1 -0
  91. package/dist/preprocess/types.d.ts +57 -0
  92. package/dist/preprocess/types.d.ts.map +1 -0
  93. package/dist/preprocess/types.js +7 -0
  94. package/dist/preprocess/types.js.map +1 -0
  95. package/dist/sidecar.d.ts +137 -0
  96. package/dist/sidecar.d.ts.map +1 -0
  97. package/dist/sidecar.js +172 -0
  98. package/dist/sidecar.js.map +1 -0
  99. package/package.json +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-2-extract.js","sourceRoot":"","sources":["../../src/passes/pass-2-extract.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as t from "@babel/types";
2
+ import type { FileGraph } from "../ast/nodes.ts";
3
+ /**
4
+ * Populate `deps` on every component `DerivedNode` / `ActionNode` in the graph.
5
+ * Mutates the nodes in place; safe to run between Pass 2 (extract) and Pass 9
6
+ * (codegen). Store containers are skipped — their derived/action emit through
7
+ * the factory closure (mutable `let`), not `useMemo`/`useCallback`, so they
8
+ * have no React dependency array.
9
+ */
10
+ export declare const analyzeReadSets: (ast: t.File, graph: FileGraph) => void;
11
+ //# sourceMappingURL=pass-3-readset.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-3-readset.d.ts","sourceRoot":"","sources":["../../src/passes/pass-3-readset.ts"],"names":[],"mappings":"AA8BA,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AAEjC,OAAO,KAAK,EAA0C,SAAS,EAAE,MAAM,iBAAiB,CAAA;AAaxF;;;;;;GAMG;AACH,eAAO,MAAM,eAAe,GAAI,KAAK,CAAC,CAAC,IAAI,EAAE,OAAO,SAAS,KAAG,IAoC/D,CAAA"}
@@ -0,0 +1,338 @@
1
+ // Pass 3 — Read-set analysis.
2
+ //
3
+ // Spec: reactra-compiler-spec.md §4 Pass 3. Populates `DerivedNode.deps` and
4
+ // `ActionNode.deps` (component containers only) — the dependency arrays that
5
+ // Pass 9 emits for `useMemo` (derived) and `useCallback` (action).
6
+ //
7
+ // Why this exists: without it, Pass 9 emitted `useMemo(fn, [])` / `useCallback(
8
+ // fn, [])` with EMPTY deps, so any read of reactive state was frozen at the
9
+ // first render (a counter stuck at 1; `derived` of changing state never updated).
10
+ // See backlogs/component-action-stale-closure.md.
11
+ //
12
+ // The rule (architect-reviewed): an identifier read inside a `derived` thunk or
13
+ // `action` arrow is a dependency IFF its name is in the container's *reactive
14
+ // set* AND it is not bound locally inside the arrow. Everything else — state
15
+ // setters (`setX`), `action`/`ref`/`inject service` names, imports, globals,
16
+ // arrow params, locals — is excluded by the whitelist default.
17
+ //
18
+ // Reactive set (all from Pass 2 `ContainerNode`): `state`, `derived`, `param`,
19
+ // `query`, `resource` names, plus store bindings — field-selection
20
+ // `inject store X { a, b }` contributes the fields `a`,`b`; namespace
21
+ // `inject store X` contributes `X` (member reads `X.field` collect `X`).
22
+ //
23
+ // Note: this runs on the PREPROCESSED AST, where `state`/`derived`/… are marker
24
+ // calls, not `useState` bindings — so reactive names appear as FREE identifiers
25
+ // (no Babel binding), while locals/params have bindings inside the arrow. That
26
+ // makes the local-vs-reactive split a simple "is there a binding inside the
27
+ // arrow?" check.
28
+ import _traverse from "@babel/traverse";
29
+ import * as t from "@babel/types";
30
+ import { fieldLocal } from "../ast/nodes.js";
31
+ // CJS/ESM interop: under NodeNext the default import is the module namespace (not
32
+ // callable). The runtime `.default` unwrap recovers it. Dev typecheck validates types.
33
+ const traverse = (_traverse.default ?? _traverse);
34
+ /**
35
+ * Populate `deps` on every component `DerivedNode` / `ActionNode` in the graph.
36
+ * Mutates the nodes in place; safe to run between Pass 2 (extract) and Pass 9
37
+ * (codegen). Store containers are skipped — their derived/action emit through
38
+ * the factory closure (mutable `let`), not `useMemo`/`useCallback`, so they
39
+ * have no React dependency array.
40
+ */
41
+ export const analyzeReadSets = (ast, graph) => {
42
+ // Map each target arrow node to its (node, reactive-set) so the single AST
43
+ // walk can dispatch by node identity.
44
+ const byArrow = new Map();
45
+ for (const c of graph.containers) {
46
+ if (c.kind !== "component")
47
+ continue;
48
+ analyzeUnstableResourceDeps(c); // R028 (advisory) — see below
49
+ analyzeKeylessMaps(c); // R029 (advisory) — see below
50
+ const reactive = reactiveSetOf(c);
51
+ // `derived` thunks see only the reactive set. They emit BEFORE actions, so
52
+ // listing an action would TDZ; a pure `derived` referencing an action is
53
+ // also degenerate. Action arrows additionally see the *callback set* (other
54
+ // actions + the undoable `undo`/`redo`/`clearHistory`) so an action that
55
+ // calls another action lists it as a dep and never captures it stale (BUG-2
56
+ // Direction A). The callee's identity changes with its own deps; without the
57
+ // dep the caller would freeze the first-render callee.
58
+ for (const d of c.deriveds)
59
+ byArrow.set(d.thunk, { node: d, reactive });
60
+ const callbacks = callbackSetOf(c);
61
+ for (const a of c.actions) {
62
+ // Exclude the action's OWN name — self-recursion uses the same closure and
63
+ // listing yourself in your own dep array is a TDZ reference.
64
+ const own = new Set([...reactive, ...callbacks]);
65
+ own.delete(a.name);
66
+ byArrow.set(a.arrow, { node: a, reactive: own });
67
+ }
68
+ }
69
+ if (byArrow.size === 0)
70
+ return;
71
+ traverse(ast, {
72
+ ArrowFunctionExpression(path) {
73
+ const target = byArrow.get(path.node);
74
+ if (target === undefined)
75
+ return;
76
+ target.node.deps = collectDeps(path, target.reactive);
77
+ path.skip(); // the target's interior is fully handled; don't re-descend
78
+ },
79
+ });
80
+ };
81
+ /**
82
+ * The in-component *callback* names an `action` body may reference and must list
83
+ * as deps so it calls the current version (BUG-2 Direction A): every other
84
+ * `action`, plus the `undoable`-emitted `undo`/`redo`/`clearHistory` (each a
85
+ * `useCallback` whose identity changes with state). Excludes nothing here — the
86
+ * caller filters out its own name (self-recursion). The undoable callbacks are
87
+ * emitted before the action loop, so they carry no ordering constraint; only
88
+ * action→action edges drive the Pass-9 topological emit.
89
+ */
90
+ const callbackSetOf = (c) => {
91
+ const set = new Set(c.actions.map((a) => a.name));
92
+ if (c.uses?.names.includes("undoable")) {
93
+ set.add("undo");
94
+ set.add("redo");
95
+ set.add("clearHistory");
96
+ }
97
+ return set;
98
+ };
99
+ /** The reactive names a component's derived/action reads can depend on. */
100
+ const reactiveSetOf = (c) => {
101
+ const reactive = new Set();
102
+ for (const s of c.states)
103
+ reactive.add(s.name);
104
+ for (const d of c.deriveds)
105
+ reactive.add(d.name);
106
+ for (const p of c.params)
107
+ reactive.add(p.name);
108
+ for (const q of c.queries)
109
+ reactive.add(q.name);
110
+ for (const r of c.resources)
111
+ reactive.add(r.name);
112
+ for (const cmd of c.commands)
113
+ reactive.add(cmd.name); // command handle (.pending/.result/.error)
114
+ for (const su of c.storeUses) {
115
+ if (su.fields && su.fields.length > 0) {
116
+ for (const f of su.fields)
117
+ reactive.add(fieldLocal(f)); // local name (rename-aware)
118
+ }
119
+ else {
120
+ // namespace binding — `X.field` (or the alias `Y.field`) reads collect the binding
121
+ reactive.add(su.alias ?? su.storeName);
122
+ }
123
+ }
124
+ // §1.1 — component props: destructured binding names are individual reactive
125
+ // reads; the bag identifier `props` absorbs `props.x` member reads (so a
126
+ // `derived` over the bag deps on the whole object — the §1.1 rule-4 caveat).
127
+ if (c.propNames)
128
+ for (const n of c.propNames)
129
+ reactive.add(n);
130
+ return reactive;
131
+ };
132
+ /**
133
+ * Walk an arrow body, returning the reactive reads in first-encounter (stable,
134
+ * deterministic) order, deduplicated.
135
+ */
136
+ const collectDeps = (arrowPath, reactive) => {
137
+ const arrowScope = arrowPath.scope;
138
+ const deps = [];
139
+ const seen = new Set();
140
+ arrowPath.traverse({
141
+ Identifier(idPath) {
142
+ const name = idPath.node.name;
143
+ if (seen.has(name) || !reactive.has(name))
144
+ return;
145
+ const parent = idPath.parent;
146
+ // The LHS of a plain `x = …` assignment is a write target, not a read —
147
+ // Pass 9 lowers it to `setX(…)`, so `x` never appears in the callback.
148
+ // Compound assignments (`x += …`) read AND write, so they are NOT skipped.
149
+ if (t.isAssignmentExpression(parent) && parent.left === idPath.node && parent.operator === "=") {
150
+ return;
151
+ }
152
+ // `obj.NAME` — the property is not a read (only `obj` is).
153
+ if (t.isMemberExpression(parent) && parent.property === idPath.node && !parent.computed)
154
+ return;
155
+ // `{ NAME: … }` object key — not a read (but `{ NAME }` shorthand IS).
156
+ if (t.isObjectProperty(parent) &&
157
+ parent.key === idPath.node &&
158
+ !parent.computed &&
159
+ !parent.shorthand) {
160
+ return;
161
+ }
162
+ // Locally bound inside the arrow (param / local / nested) — shadows the
163
+ // reactive name; not a dependency.
164
+ if (isBoundInArrow(idPath, name, arrowScope))
165
+ return;
166
+ seen.add(name);
167
+ deps.push(name);
168
+ },
169
+ });
170
+ return deps;
171
+ };
172
+ /**
173
+ * True when `name` resolves to a binding at or inside the arrow's scope (an
174
+ * arrow param, a local `const`/`let`, or a nested-scope local). Reactive names
175
+ * have no binding in the preprocessed AST (they're free identifiers), so this
176
+ * returns false for them.
177
+ */
178
+ const isBoundInArrow = (idPath, name, arrowScope) => {
179
+ const binding = idPath.scope.getBinding(name);
180
+ if (binding === undefined)
181
+ return false;
182
+ let s = binding.scope;
183
+ while (s) {
184
+ if (s === arrowScope)
185
+ return true;
186
+ s = s.parent;
187
+ }
188
+ return false;
189
+ };
190
+ // ---------------------------------------------------------------------------
191
+ // R028 — resource dep is a non-identity-stable value (Component DSL §2.4 / §2.2).
192
+ //
193
+ // A `resource r(dep)` whose dep mints a fresh object/array reference per render
194
+ // never key-equals across renders: the resource layer keys object/array deps by
195
+ // a WeakMap identity id (resource/src/index.ts), so a fresh reference is a
196
+ // permanent `depsToKey` cache miss + unbounded id growth. Two shapes are caught:
197
+ // (a) an inline `{ … }` / `[ … ]` literal dep, and
198
+ // (b) an identifier naming a same-container `derived` whose (unwrapped) thunk
199
+ // RHS is an object/array literal (the documented A6/C2 footgun — e.g.
200
+ // `derived f = { q, page }` then `resource r(f)`).
201
+ // Detection reuses ONLY existing graph data (`ResourceNode.depsThunk`,
202
+ // `DerivedNode.thunk`) — no new AST plumbing (C4). Pass 9 emits the warning.
203
+ const analyzeUnstableResourceDeps = (c) => {
204
+ // Same-container derived name -> its (unwrapped) thunk body, for case (b).
205
+ const derivedByName = new Map();
206
+ for (const d of c.deriveds)
207
+ derivedByName.set(d.name, unwrapThunkBody(d.thunk.body));
208
+ for (const r of c.resources) {
209
+ const body = r.depsThunk.body;
210
+ const offenders = [];
211
+ // The deps thunk body is the verbatim `(deps)` text the user wrote between
212
+ // the resource parens. One dep -> the expression itself; `r(a, b)` -> a
213
+ // SequenceExpression; `r([a, b])` -> an ArrayExpression of identifiers.
214
+ for (const dep of depExpressions(body)) {
215
+ const name = unstableDepName(dep, derivedByName);
216
+ if (name !== null)
217
+ offenders.push(name);
218
+ }
219
+ if (offenders.length > 0)
220
+ r.unstableDeps = offenders;
221
+ }
222
+ };
223
+ /**
224
+ * The individual dep expressions inside a resource deps-thunk body. A
225
+ * `SequenceExpression` (`r(a, b)` -> `(a, b)`) is split into its members;
226
+ * anything else is a single dep. An inline array literal is left whole — it is
227
+ * itself the (fresh-each-render) dep value, not a list of deps.
228
+ */
229
+ const depExpressions = (body) => {
230
+ if (t.isSequenceExpression(body))
231
+ return body.expressions;
232
+ return t.isExpression(body) ? [body] : [];
233
+ };
234
+ /**
235
+ * Returns the offending dep name when `dep` is non-identity-stable, else null.
236
+ * An inline object/array literal reports a synthetic marker (it has no name);
237
+ * an identifier naming a fresh-object/array `derived` reports the derived name.
238
+ */
239
+ const unstableDepName = (dep, derivedByName) => {
240
+ if (t.isObjectExpression(dep))
241
+ return "(inline object literal)";
242
+ if (t.isArrayExpression(dep))
243
+ return "(inline array literal)";
244
+ if (t.isIdentifier(dep)) {
245
+ const rhs = derivedByName.get(dep.name);
246
+ if (rhs && (t.isObjectExpression(rhs) || t.isArrayExpression(rhs)))
247
+ return dep.name;
248
+ }
249
+ return null;
250
+ };
251
+ /**
252
+ * Strip a derived thunk body down to the value it ultimately produces:
253
+ * a parenthesized expression is already unwrapped by the parser, and the
254
+ * `{ … return v }` block form lowers to an IIFE (`(() => { … return v })()`),
255
+ * so unwrap to that final `return` argument. Anything else is returned as-is.
256
+ */
257
+ const unwrapThunkBody = (body) => {
258
+ if (!t.isCallExpression(body))
259
+ return body;
260
+ const callee = body.callee;
261
+ if (!t.isArrowFunctionExpression(callee) && !t.isFunctionExpression(callee))
262
+ return body;
263
+ if (!t.isBlockStatement(callee.body))
264
+ return callee.body;
265
+ const last = callee.body.body[callee.body.body.length - 1];
266
+ if (last && t.isReturnStatement(last) && last.argument)
267
+ return last.argument;
268
+ return body;
269
+ };
270
+ // ---------------------------------------------------------------------------
271
+ // R029 — `.map()` in a view returning keyless JSX (Component DSL §7).
272
+ //
273
+ // The classic React reconciliation footgun: a list-rendering `X.map(cb)` whose
274
+ // callback returns a `JSXElement` without a `key` attribute. We flag ONLY when
275
+ // the returned element has no `key` AND no `JSXSpreadAttribute` (a spread may
276
+ // carry `key`); fragment shorthand `<>…</>` (`JSXFragment`) is skipped — it
277
+ // cannot take a key. A manual recursive walk over the view arrow body (no scope
278
+ // rebuild, `@babel/types` only — Node-portable). Pass 9 emits the warning.
279
+ const analyzeKeylessMaps = (c) => {
280
+ if (!c.view)
281
+ return;
282
+ let count = 0;
283
+ walkForKeylessMaps(c.view.body.body, () => count++);
284
+ if (count > 0)
285
+ c.view.keylessMaps = count;
286
+ };
287
+ /** True when `node` is a `X.map(…)` member call (non-computed `.map`). */
288
+ const isMapCall = (node) => t.isCallExpression(node) &&
289
+ t.isMemberExpression(node.callee) &&
290
+ !node.callee.computed &&
291
+ t.isIdentifier(node.callee.property, { name: "map" });
292
+ /** The expression a map callback returns, unwrapping a `{ … return v }` body. */
293
+ const mapCallbackReturn = (call) => {
294
+ const cb = call.arguments[0];
295
+ if (!cb || (!t.isArrowFunctionExpression(cb) && !t.isFunctionExpression(cb)))
296
+ return null;
297
+ if (!t.isBlockStatement(cb.body))
298
+ return cb.body;
299
+ const last = cb.body.body[cb.body.body.length - 1];
300
+ return last && t.isReturnStatement(last) ? (last.argument ?? null) : null;
301
+ };
302
+ /** A `JSXElement` with neither a `key` attribute nor a spread (which may carry one). */
303
+ const isKeylessElement = (node) => {
304
+ if (!t.isJSXElement(node))
305
+ return false; // JSXFragment shorthand can't take a key
306
+ for (const attr of node.openingElement.attributes) {
307
+ if (t.isJSXSpreadAttribute(attr))
308
+ return false; // a spread may carry `key`
309
+ if (t.isJSXAttribute(attr) && t.isJSXIdentifier(attr.name, { name: "key" }))
310
+ return false;
311
+ }
312
+ return true;
313
+ };
314
+ /**
315
+ * Manual recursive AST walk reporting each `.map()` whose callback returns a
316
+ * keyless JSX element. Visits child nodes via `@babel/types`' VISITOR_KEYS so
317
+ * nested maps inside other expressions are reached. No Babel scope is built.
318
+ */
319
+ const walkForKeylessMaps = (node, onHit) => {
320
+ if (!node || typeof node.type !== "string")
321
+ return;
322
+ if (isMapCall(node)) {
323
+ const ret = mapCallbackReturn(node);
324
+ if (ret && isKeylessElement(ret))
325
+ onHit();
326
+ }
327
+ for (const key of t.VISITOR_KEYS[node.type] ?? []) {
328
+ const child = node[key];
329
+ if (Array.isArray(child)) {
330
+ for (const el of child)
331
+ walkForKeylessMaps(el, onHit);
332
+ }
333
+ else if (child && typeof child === "object") {
334
+ walkForKeylessMaps(child, onHit);
335
+ }
336
+ }
337
+ };
338
+ //# sourceMappingURL=pass-3-readset.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-3-readset.js","sourceRoot":"","sources":["../../src/passes/pass-3-readset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import type { FileGraph } from "../ast/nodes.ts";
2
+ /** A mapped slice: `at` is a char offset into the owning `Emitted.text`. */
3
+ export interface CodegenMark {
4
+ readonly at: number;
5
+ /** byte offset of the slice's origin in the preprocessed source */
6
+ readonly ppOffset: number;
7
+ }
8
+ /** Emitted text plus the origins of any user-code slices inside it. */
9
+ export interface Emitted {
10
+ readonly text: string;
11
+ readonly marks: readonly CodegenMark[];
12
+ }
13
+ /**
14
+ * Top-level codegen: imports + every container's emission.
15
+ *
16
+ * Backlog 1a: store-name resolution no longer consults the `.reactra.json`
17
+ * sidecar — `inject store X` binds via `import type { X }` (cross-file) or a
18
+ * same-file declaration, so codegen needs no project-wide index.
19
+ */
20
+ /** Codegen result: the compiled text plus the user-code source marks (#10-followup). */
21
+ export interface CodegenResult {
22
+ readonly code: string;
23
+ /** Each mark: a char offset into `code` → its origin byte offset in the preprocessed source. */
24
+ readonly marks: readonly CodegenMark[];
25
+ }
26
+ export declare const codegen: (graph: FileGraph) => CodegenResult;
27
+ //# sourceMappingURL=pass-9-codegen.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pass-9-codegen.d.ts","sourceRoot":"","sources":["../../src/passes/pass-9-codegen.ts"],"names":[],"mappings":"AAqBA,OAAO,KAAK,EAMV,SAAS,EAOV,MAAM,iBAAiB,CAAA;AAqCxB,4EAA4E;AAC5E,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,mEAAmE;IACnE,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;CAC1B;AAED,uEAAuE;AACvE,MAAM,WAAW,OAAO;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;CACvC;AAm2FD;;;;;;GAMG;AACH,wFAAwF;AACxF,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,gGAAgG;IAChG,QAAQ,CAAC,KAAK,EAAE,SAAS,WAAW,EAAE,CAAA;CACvC;AAED,eAAO,MAAM,OAAO,GAAI,OAAO,SAAS,KAAG,aA0H1C,CAAA"}