@barefootjs/jsx 0.16.0 → 0.17.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adapters/env-signal.d.ts +38 -15
- package/dist/adapters/env-signal.d.ts.map +1 -1
- package/dist/adapters/jsx-adapter.d.ts.map +1 -1
- package/dist/adapters/parsed-expr-emitter.d.ts +7 -6
- package/dist/adapters/parsed-expr-emitter.d.ts.map +1 -1
- package/dist/analyzer-context.d.ts +29 -1
- package/dist/analyzer-context.d.ts.map +1 -1
- package/dist/analyzer.d.ts.map +1 -1
- package/dist/builtin-lowering-plugins.d.ts +34 -0
- package/dist/builtin-lowering-plugins.d.ts.map +1 -0
- package/dist/expression-parser.d.ts +219 -163
- package/dist/expression-parser.d.ts.map +1 -1
- package/dist/index.d.ts +7 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6754 -6129
- package/dist/ir-to-client-js/csr-substitute.d.ts.map +1 -1
- package/dist/ir-to-client-js/plan/build-declaration-emit.d.ts.map +1 -1
- package/dist/ir-to-client-js/plan/declaration-emit.d.ts +9 -0
- package/dist/ir-to-client-js/plan/declaration-emit.d.ts.map +1 -1
- package/dist/jsx-to-ir.d.ts.map +1 -1
- package/dist/lowering-registry.d.ts +122 -0
- package/dist/lowering-registry.d.ts.map +1 -0
- package/dist/query-href-lowering.d.ts +63 -0
- package/dist/query-href-lowering.d.ts.map +1 -0
- package/dist/ssr-defaults.d.ts.map +1 -1
- package/dist/types.d.ts +169 -11
- package/dist/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/__tests__/__snapshots__/doc-examples.test.ts.snap +68 -3
- package/src/__tests__/analyzer.test.ts +53 -0
- package/src/__tests__/expression-parser.test.ts +703 -391
- package/src/__tests__/ir-reduce-op.test.ts +18 -21
- package/src/__tests__/ir-sort-comparator.test.ts +19 -20
- package/src/__tests__/lowering-registry.test.ts +141 -0
- package/src/__tests__/primitive-resolver-alias.test.ts +23 -0
- package/src/__tests__/query-href-recognition.test.ts +58 -0
- package/src/__tests__/serialize-parsed-expr.test.ts +204 -0
- package/src/__tests__/unsupported-expression.test.ts +98 -4
- package/src/adapters/env-signal.ts +60 -21
- package/src/adapters/jsx-adapter.ts +17 -0
- package/src/adapters/parsed-expr-emitter.ts +39 -41
- package/src/analyzer-context.ts +72 -27
- package/src/analyzer.ts +226 -9
- package/src/builtin-lowering-plugins.ts +54 -0
- package/src/expression-parser.ts +1183 -927
- package/src/index.ts +26 -3
- package/src/ir-to-client-js/csr-substitute.ts +5 -0
- package/src/ir-to-client-js/plan/build-declaration-emit.ts +16 -0
- package/src/ir-to-client-js/plan/declaration-emit.ts +9 -0
- package/src/ir-to-client-js/stringify/declaration-emit.ts +11 -0
- package/src/jsx-to-ir.ts +182 -43
- package/src/lowering-registry.ts +160 -0
- package/src/query-href-lowering.ts +147 -0
- package/src/ssr-defaults.ts +5 -1
- package/src/types.ts +171 -12
- package/src/__tests__/flatmap-support.test.ts +0 -218
- package/src/__tests__/reduce-op.test.ts +0 -201
|
@@ -13,6 +13,7 @@ export type ParsedExpr = {
|
|
|
13
13
|
kind: 'literal';
|
|
14
14
|
value: string | number | boolean | null;
|
|
15
15
|
literalType: 'string' | 'number' | 'boolean' | 'null';
|
|
16
|
+
raw?: string;
|
|
16
17
|
} | {
|
|
17
18
|
kind: 'call';
|
|
18
19
|
callee: ParsedExpr;
|
|
@@ -49,52 +50,48 @@ export type ParsedExpr = {
|
|
|
49
50
|
kind: 'template-literal';
|
|
50
51
|
parts: TemplatePart[];
|
|
51
52
|
} | {
|
|
52
|
-
kind: 'arrow
|
|
53
|
-
|
|
53
|
+
kind: 'arrow';
|
|
54
|
+
params: string[];
|
|
54
55
|
body: ParsedExpr;
|
|
55
56
|
} | {
|
|
56
|
-
kind: '
|
|
57
|
-
|
|
58
|
-
object: ParsedExpr;
|
|
59
|
-
param: string;
|
|
60
|
-
predicate: ParsedExpr;
|
|
57
|
+
kind: 'regex';
|
|
58
|
+
raw: string;
|
|
61
59
|
} | {
|
|
62
60
|
kind: 'array-literal';
|
|
63
61
|
elements: ParsedExpr[];
|
|
62
|
+
} | {
|
|
63
|
+
kind: 'object-literal';
|
|
64
|
+
properties: ObjectLiteralProperty[];
|
|
65
|
+
raw: string;
|
|
64
66
|
} | {
|
|
65
67
|
kind: 'array-method';
|
|
66
68
|
method: 'join' | 'includes' | 'indexOf' | 'lastIndexOf' | 'at' | 'concat' | 'slice' | 'reverse' | 'toReversed' | 'toLowerCase' | 'toUpperCase' | 'trim' | 'toFixed' | 'split' | 'startsWith' | 'endsWith' | 'replace' | 'repeat' | 'padStart' | 'padEnd';
|
|
67
69
|
object: ParsedExpr;
|
|
68
70
|
args: ParsedExpr[];
|
|
69
|
-
} | {
|
|
70
|
-
kind: 'array-method';
|
|
71
|
-
method: 'sort' | 'toSorted';
|
|
72
|
-
object: ParsedExpr;
|
|
73
|
-
args: [];
|
|
74
|
-
comparator: SortComparator;
|
|
75
|
-
} | {
|
|
76
|
-
kind: 'array-method';
|
|
77
|
-
method: 'reduce' | 'reduceRight';
|
|
78
|
-
object: ParsedExpr;
|
|
79
|
-
args: [];
|
|
80
|
-
reduceOp: ReduceOp;
|
|
81
71
|
} | {
|
|
82
72
|
kind: 'array-method';
|
|
83
73
|
method: 'flat';
|
|
84
74
|
object: ParsedExpr;
|
|
85
75
|
args: [];
|
|
86
76
|
flatDepth: FlatDepth;
|
|
87
|
-
} | {
|
|
88
|
-
kind: 'array-method';
|
|
89
|
-
method: 'flatMap';
|
|
90
|
-
object: ParsedExpr;
|
|
91
|
-
args: [];
|
|
92
|
-
flatMapOp: FlatMapOp;
|
|
93
77
|
} | {
|
|
94
78
|
kind: 'unsupported';
|
|
95
79
|
raw: string;
|
|
96
80
|
reason: string;
|
|
97
81
|
};
|
|
82
|
+
/**
|
|
83
|
+
* One property of an `object-literal` `ParsedExpr`. The key is the
|
|
84
|
+
* resolved (non-computed) property name — for `{ a: 1 }` and shorthand
|
|
85
|
+
* `{ a }` it is `a`; for `{ 'a-b': 1 }` it is `a-b`. Computed keys
|
|
86
|
+
* (`{ [k]: 1 }`) are not represented; such literals fall through to
|
|
87
|
+
* `unsupported` at parse time.
|
|
88
|
+
*/
|
|
89
|
+
export type ObjectLiteralProperty = {
|
|
90
|
+
key: string;
|
|
91
|
+
keyKind?: 'identifier' | 'string' | 'numeric';
|
|
92
|
+
shorthand: boolean;
|
|
93
|
+
value: ParsedExpr;
|
|
94
|
+
};
|
|
98
95
|
/**
|
|
99
96
|
* One comparison key inside a sort comparator. A simple
|
|
100
97
|
* `(a, b) => a.f - b.f` produces a single key; a multi-key
|
|
@@ -112,40 +109,16 @@ export type SortKey = {
|
|
|
112
109
|
direction: 'asc' | 'desc';
|
|
113
110
|
};
|
|
114
111
|
/**
|
|
115
|
-
* Structured form of a JS `(a, b) => …` sort comparator.
|
|
116
|
-
*
|
|
117
|
-
*
|
|
118
|
-
* `
|
|
119
|
-
* `
|
|
112
|
+
* Structured form of a JS `(a, b) => …` sort comparator. Recovered from
|
|
113
|
+
* the generic `arrow` callback body by {@link sortComparatorFromArrow} as
|
|
114
|
+
* the LEGACY fallback for a comparator the runtime evaluator can't model
|
|
115
|
+
* (`localeCompare` string sorts — `serializeParsedExpr` refuses them).
|
|
116
|
+
* Consumed by the adapters' `bf_sort` / `bf->sort` emit. The shape is
|
|
117
|
+
* intentionally finite — see {@link sortComparatorFromArrow} for the
|
|
118
|
+
* accepted catalogue.
|
|
120
119
|
*/
|
|
121
120
|
export type SortComparator = {
|
|
122
121
|
keys: SortKey[];
|
|
123
|
-
raw: string;
|
|
124
|
-
paramA: string;
|
|
125
|
-
paramB: string;
|
|
126
|
-
method: 'sort' | 'toSorted';
|
|
127
|
-
};
|
|
128
|
-
/**
|
|
129
|
-
* Structured form of a JS `.reduce((acc, item) => …, init)` call,
|
|
130
|
-
* built once at parse time and consumed by both template adapters'
|
|
131
|
-
* `reduceMethod()` emit (#1448 Tier C). The shape is intentionally
|
|
132
|
-
* finite — only the arithmetic-fold family is lowerable in a
|
|
133
|
-
* declarative template; arbitrary accumulator bodies are not. See
|
|
134
|
-
* `extractReduceOpFromTS` for the accepted catalogue.
|
|
135
|
-
*/
|
|
136
|
-
export type ReduceOp = {
|
|
137
|
-
op: '+' | '*';
|
|
138
|
-
key: {
|
|
139
|
-
kind: 'self';
|
|
140
|
-
} | {
|
|
141
|
-
kind: 'field';
|
|
142
|
-
field: string;
|
|
143
|
-
};
|
|
144
|
-
type: 'numeric' | 'string';
|
|
145
|
-
init: string;
|
|
146
|
-
raw: string;
|
|
147
|
-
paramAcc: string;
|
|
148
|
-
paramItem: string;
|
|
149
122
|
};
|
|
150
123
|
/**
|
|
151
124
|
* Flatten depth for `.flat(depth?)` (#1448 Tier C). A finite non-negative
|
|
@@ -156,41 +129,6 @@ export type ReduceOp = {
|
|
|
156
129
|
* template time and refuses with BF101.
|
|
157
130
|
*/
|
|
158
131
|
export type FlatDepth = number | 'infinity';
|
|
159
|
-
/**
|
|
160
|
-
* A single non-computed projection leaf on the flatMap callback param —
|
|
161
|
-
* the item itself (`i`) or one of its fields (`i.field`). Shared by the
|
|
162
|
-
* scalar and tuple `FlatMapOp` projections.
|
|
163
|
-
*/
|
|
164
|
-
export type FlatMapLeaf = {
|
|
165
|
-
kind: 'self';
|
|
166
|
-
} | {
|
|
167
|
-
kind: 'field';
|
|
168
|
-
field: string;
|
|
169
|
-
};
|
|
170
|
-
/**
|
|
171
|
-
* Structured form of a value-returning `.flatMap(fn)` callback (#1448
|
|
172
|
-
* Tier C). The accepted catalogue:
|
|
173
|
-
*
|
|
174
|
-
* i => i → self projection (flatten one level)
|
|
175
|
-
* i => i.field → field projection (flatten a per-item array field)
|
|
176
|
-
* i => [i.a, i.b] → tuple projection (gather per-item leaves)
|
|
177
|
-
*
|
|
178
|
-
* The scalar `self` / `field` projections return a value that is then
|
|
179
|
-
* flattened one level (flatMap = map + flat(1)) — a non-array value is
|
|
180
|
-
* kept as-is, matching JS. The `tuple` projection returns an array
|
|
181
|
-
* literal; flat(1) removes only that literal's wrapper, so each leaf is
|
|
182
|
-
* appended verbatim (an array-valued leaf is NOT spread). Leaves outside
|
|
183
|
-
* self / field (literals, `i.a + 1`, calls, deep access) refuse with
|
|
184
|
-
* BF101. See `extractFlatMapOpFromTS`.
|
|
185
|
-
*/
|
|
186
|
-
export type FlatMapOp = {
|
|
187
|
-
projection: FlatMapLeaf | {
|
|
188
|
-
kind: 'tuple';
|
|
189
|
-
elements: FlatMapLeaf[];
|
|
190
|
-
};
|
|
191
|
-
param: string;
|
|
192
|
-
raw: string;
|
|
193
|
-
};
|
|
194
132
|
export type TemplatePart = {
|
|
195
133
|
type: 'string';
|
|
196
134
|
value: string;
|
|
@@ -315,95 +253,72 @@ export declare function parseStyleObjectEntries(source: string): StyleObjectEntr
|
|
|
315
253
|
*/
|
|
316
254
|
export declare function parseExpression(expr: string): ParsedExpr;
|
|
317
255
|
/**
|
|
318
|
-
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
*
|
|
328
|
-
*
|
|
329
|
-
*
|
|
256
|
+
* Convert an already-parsed TypeScript node directly into a {@link ParsedExpr},
|
|
257
|
+
* for a consumer that already holds a `ts.Node` (e.g. a `.sort()` callback at
|
|
258
|
+
* the loop-hoist site) and wants the structured conversion without re-parsing
|
|
259
|
+
* source via `ts.createSourceFile`. An `unsupported` result still carries the
|
|
260
|
+
* node's text in `raw` for debugging (a synthetic node with no source file
|
|
261
|
+
* falls back to '').
|
|
262
|
+
*/
|
|
263
|
+
export declare function tsNodeToParsedExpr(node: ts.Node): ParsedExpr;
|
|
264
|
+
/**
|
|
265
|
+
* Higher-order array methods whose callback body the runtime evaluator drives
|
|
266
|
+
* (#2018). Recognised generically as a `call` whose callee is `<recv>.<method>`
|
|
267
|
+
* and whose first argument is an `arrow`; the adapter serializes the arrow body
|
|
268
|
+
* to the evaluator. `map` is excluded — a JSX-returning `.map` is an IRLoop
|
|
269
|
+
* upstream, and a value-returning `.map` has no template lowering.
|
|
270
|
+
*/
|
|
271
|
+
export declare const CALLBACK_METHODS: ReadonlySet<string>;
|
|
272
|
+
/**
|
|
273
|
+
* A recognised higher-order callback method call: `<object>.<method>(<arrow>,
|
|
274
|
+
* …rest)` where `method ∈` {@link CALLBACK_METHODS} and the first argument is a
|
|
275
|
+
* generic `arrow`. Returns the receiver, the callback arrow, and any trailing
|
|
276
|
+
* args (e.g. the `.reduce` init), or `null` if the shape doesn't match. The
|
|
277
|
+
* single recognition point shared by the support gate and the adapter dispatch.
|
|
278
|
+
*/
|
|
279
|
+
export declare function asCallbackMethodCall(expr: ParsedExpr): {
|
|
280
|
+
method: string;
|
|
281
|
+
object: ParsedExpr;
|
|
282
|
+
arrow: Extract<ParsedExpr, {
|
|
283
|
+
kind: 'arrow';
|
|
284
|
+
}>;
|
|
285
|
+
args: ParsedExpr[];
|
|
286
|
+
} | null;
|
|
287
|
+
/**
|
|
288
|
+
* Recover a {@link SortComparator} from a generic `(a, b) => …` sort callback
|
|
289
|
+
* arrow (#2018 P5). The LEGACY fallback for a comparator the runtime evaluator
|
|
290
|
+
* can't model (`localeCompare` string sorts — `serializeParsedExpr` refuses
|
|
291
|
+
* them); the adapter calls this only when the eval path returns null. Operates
|
|
292
|
+
* on the generic `arrow` ParsedExpr (params + body subtree) — no `ts` re-parse.
|
|
330
293
|
*
|
|
331
|
-
*
|
|
332
|
-
*
|
|
333
|
-
*
|
|
334
|
-
* and function expression. Multi-statement / local-var bodies stay
|
|
335
|
-
* refused (deferred follow-up).
|
|
294
|
+
* The accepted catalogue is finite so the walker stays shallow — no constant
|
|
295
|
+
* folding, no symbol resolution. Returns null if the shape doesn't match
|
|
296
|
+
* exactly, in which case the adapter surfaces BF101.
|
|
336
297
|
*
|
|
337
|
-
* A body is split on top-level `||` into one leaf per operand, giving
|
|
338
|
-
*
|
|
339
|
-
*
|
|
340
|
-
* order):
|
|
298
|
+
* A body is split on top-level `||` into one leaf per operand, giving a
|
|
299
|
+
* multi-key comparator (`a.x - b.x || a.y - b.y` → sort by x, then y). Accepted
|
|
300
|
+
* leaf shapes (each paired ascending / descending by operand order):
|
|
341
301
|
*
|
|
342
302
|
* a.field - b.field → field, numeric
|
|
343
303
|
* a - b → self, numeric
|
|
344
304
|
* a.field.localeCompare(b.field) → field, string
|
|
345
305
|
* a.localeCompare(b) → self, string
|
|
346
306
|
* a.field > b.field ? 1 : -1 → field, auto (relational ternary)
|
|
347
|
-
* a.field < b.field ? -1 : 1 → field, auto
|
|
348
307
|
* a < b ? -1 : a > b ? 1 : 0 → self/field, auto (3-way)
|
|
349
308
|
* a === b ? 0 : <relational ternary> → leading-tie 3-way
|
|
350
309
|
*
|
|
351
|
-
* Function-reference comparators and `localeCompare(b, locale, opts)`
|
|
352
|
-
*
|
|
353
|
-
*/
|
|
354
|
-
export declare function extractSortComparatorFromTS(node: ts.Node, method: 'sort' | 'toSorted'): SortComparator | null;
|
|
355
|
-
/**
|
|
356
|
-
* Recover a `ReduceOp` from the `(reducer, init)` args of
|
|
357
|
-
* `.reduce(...)` (#1448 Tier C). Operates on the raw TS AST because the
|
|
358
|
-
* standard `convertNode` arrow-fn path rejects two-param arrows.
|
|
359
|
-
*
|
|
360
|
-
* The accepted catalogue is intentionally finite — only the
|
|
361
|
-
* arithmetic-fold family lowers to a declarative template:
|
|
362
|
-
*
|
|
363
|
-
* (acc, x) => acc + x → self, numeric (init: number)
|
|
364
|
-
* (acc, x) => acc + x.field → field, numeric (init: number)
|
|
365
|
-
* (acc, x) => acc * x → self, numeric (init: number)
|
|
366
|
-
* (acc, x) => acc * x.field → field, numeric (init: number)
|
|
367
|
-
* (acc, x) => acc + x → self, string (init: string → concat)
|
|
368
|
-
* (acc, x) => acc + x.field → field, string (init: string → concat)
|
|
369
|
-
*
|
|
370
|
-
* The accumulator must be the binary expression's *left* operand
|
|
371
|
-
* (canonical reduce form; reversed operands change string-concat
|
|
372
|
-
* order), the per-item value must be the item param itself or a
|
|
373
|
-
* single non-computed field access on it, and the init must be a
|
|
374
|
-
* number or string literal (negative numbers via prefix `-` allowed).
|
|
375
|
-
* String concatenation requires `+`. Block bodies reduce to a single
|
|
376
|
-
* `return`, mirroring the sort extractor. Anything else returns null
|
|
377
|
-
* and the caller emits `unsupported` (BF101).
|
|
310
|
+
* Function-reference comparators and `localeCompare(b, locale, opts)` (the
|
|
311
|
+
* multi-arg form) return null — deferred follow-ups.
|
|
378
312
|
*/
|
|
379
|
-
export declare function
|
|
380
|
-
/**
|
|
381
|
-
* Recover a `FlatMapOp` from the single-argument callback of a
|
|
382
|
-
* value-returning `.flatMap(fn)` (#1448 Tier C). Operates on the raw TS
|
|
383
|
-
* AST, mirroring `extractReduceOpFromTS`.
|
|
384
|
-
*
|
|
385
|
-
* The accepted catalogue:
|
|
386
|
-
*
|
|
387
|
-
* i => i → self (flatMap(identity) === flat(1))
|
|
388
|
-
* i => i.field → field (flatten a per-item array field)
|
|
389
|
-
* i => [i.a, i.b] → tuple (gather per-item self / field leaves)
|
|
390
|
-
*
|
|
391
|
-
* The callback must take exactly one identifier param (the index / array
|
|
392
|
-
* params can't be expressed in a template projection), and the body must
|
|
393
|
-
* be the param itself, a single non-computed field access on it, or an
|
|
394
|
-
* array literal whose every element is one of those leaves. Block bodies
|
|
395
|
-
* reduce to a single `return`, like the reduce / sort extractors. Any
|
|
396
|
-
* other body (deep access, computed members, calls, arithmetic, a
|
|
397
|
-
* literal element) returns null and the caller emits `unsupported`
|
|
398
|
-
* (BF101).
|
|
399
|
-
*/
|
|
400
|
-
export declare function extractFlatMapOpFromTS(cbNode: ts.Node): FlatMapOp | null;
|
|
313
|
+
export declare function sortComparatorFromArrow(arrow: ParsedExpr): SortComparator | null;
|
|
401
314
|
/**
|
|
402
315
|
* Check if a parsed expression is supported for SSR template conversion.
|
|
403
316
|
*/
|
|
404
317
|
export declare function isSupported(expr: ParsedExpr): SupportResult;
|
|
405
318
|
/**
|
|
406
|
-
* Check if expression contains any higher-order method
|
|
319
|
+
* Check if expression contains any higher-order callback method call
|
|
320
|
+
* (`.filter`/`.sort`/`.reduce`/… with an arrow argument — see
|
|
321
|
+
* {@link asCallbackMethodCall}) anywhere in the tree.
|
|
407
322
|
*/
|
|
408
323
|
export declare function containsHigherOrder(expr: ParsedExpr): boolean;
|
|
409
324
|
/**
|
|
@@ -418,6 +333,118 @@ export declare function containsHigherOrder(expr: ParsedExpr): boolean;
|
|
|
418
333
|
* ```
|
|
419
334
|
*/
|
|
420
335
|
export declare function parseBlockBody(block: ts.Block, sourceFile: ts.SourceFile, getJS: (node: ts.Node) => string): ParsedStatement[] | null;
|
|
336
|
+
/**
|
|
337
|
+
* Like {@link parseBlockBody} but tolerant: a statement `parseStatement` can't
|
|
338
|
+
* represent is **skipped** rather than failing the whole block. Used to carry a
|
|
339
|
+
* block-body memo's structure on the IR for adapters that only pattern-match a
|
|
340
|
+
* recognised prefix of statements (e.g. a `const k = getter(); if (!k) return
|
|
341
|
+
* CONST` guard) and ignore the rest — including a trailing client-directive
|
|
342
|
+
* (`@client`) return that the strict parser would reject. Mirrors the tolerant
|
|
343
|
+
* `continue`-on-unrecognised walks those adapters previously ran over a
|
|
344
|
+
* re-parsed source string, so it never carries a *more* permissive result.
|
|
345
|
+
*/
|
|
346
|
+
export declare function parseBlockBodyTolerant(block: ts.Block, sourceFile: ts.SourceFile, getJS: (node: ts.Node) => string): ParsedStatement[];
|
|
347
|
+
/**
|
|
348
|
+
* The actionable refusal reason for a block body that is not purely-functionally
|
|
349
|
+
* expressible. Carried on the `unsupported` ParsedExpr so adapters surface it as
|
|
350
|
+
* the BF101 message. A loop that mutates a local to accumulate a value is a fold
|
|
351
|
+
* (already expressible via `.reduce`); a loop that does anything else, a `break`,
|
|
352
|
+
* a re-assignment, or a side-effecting/I-O call is genuinely imperative and has
|
|
353
|
+
* no value-position lowering.
|
|
354
|
+
*/
|
|
355
|
+
export declare const IMPERATIVE_BLOCK_REASON: string;
|
|
356
|
+
/**
|
|
357
|
+
* Refusal reason when inlining a `const` binding would capture a free variable
|
|
358
|
+
* of its initializer under a nested callback parameter of the same name. The
|
|
359
|
+
* let-inline substitution is not a hygienic (alpha-renaming) substitution, so
|
|
360
|
+
* rather than silently miscompile the callback we refuse and adapters surface
|
|
361
|
+
* BF101.
|
|
362
|
+
*/
|
|
363
|
+
export declare const CAPTURE_BLOCK_REASON: string;
|
|
364
|
+
/**
|
|
365
|
+
* Refusal reason when a `const` initializer may have side effects (it contains
|
|
366
|
+
* a function/method call) and the binding is NOT used exactly once on a single
|
|
367
|
+
* runtime path. Let-inline substitutes the initializer at each use site, which
|
|
368
|
+
* would drop the effect (zero uses) or duplicate it (multiple uses / a use
|
|
369
|
+
* inside a callback that runs per element) — exactly the side-effecting shape
|
|
370
|
+
* the fold must refuse rather than miscompile.
|
|
371
|
+
*/
|
|
372
|
+
export declare const IMPURE_INLINE_BLOCK_REASON: string;
|
|
373
|
+
/**
|
|
374
|
+
* Options for {@link foldBlockToExpr}.
|
|
375
|
+
*/
|
|
376
|
+
export interface FoldBlockOptions {
|
|
377
|
+
/**
|
|
378
|
+
* Names of zero-argument calls that are idempotent reads with no observable
|
|
379
|
+
* side effect — chiefly reactive getters (signal / memo accessors), which
|
|
380
|
+
* return the same value each time within a render. Inlining such a read at
|
|
381
|
+
* multiple sites is evaluation-count-neutral, so the fold may treat
|
|
382
|
+
* `getter()` as pure. The caller (e.g. `jsx-to-ir`) supplies the set from its
|
|
383
|
+
* analyzer-collected signal/memo names; callers without that context (the
|
|
384
|
+
* plain `convertNode` callback path) omit it and every call stays "possibly
|
|
385
|
+
* impure". A non-empty arg list or a member-call (`a.b()`) is never treated as
|
|
386
|
+
* pure by this set.
|
|
387
|
+
*/
|
|
388
|
+
pureCallNames?: ReadonlySet<string>;
|
|
389
|
+
}
|
|
390
|
+
/**
|
|
391
|
+
* Fold a value-producing block body — a {@link ParsedStatement} sequence of
|
|
392
|
+
* `const` bindings, value-producing `if` / early `return`, and a terminal
|
|
393
|
+
* `return` — into a single {@link ParsedExpr}, so block-bodied memos / derived /
|
|
394
|
+
* callbacks flow through the same expression surface as expression-bodied ones
|
|
395
|
+
* (#2040, carved from #2018 stage 5). This generalizes the per-idiom block-memo
|
|
396
|
+
* recognizers (#1897 / #1945 / #2015) the same way the evaluator replaced the
|
|
397
|
+
* `bf_sort` / `bf_reduce` catalogue: one normalization, no growing pattern list.
|
|
398
|
+
*
|
|
399
|
+
* Transformations:
|
|
400
|
+
* - `const x = <init>; …` → inline `x`'s init into the rest (let-inline).
|
|
401
|
+
* - `if (c) <then> [else <else>] …` → `c ? fold(then-path) : fold(else-path)`,
|
|
402
|
+
* where a branch that does not itself terminate continues into the
|
|
403
|
+
* statements following the `if` (the early-return idiom).
|
|
404
|
+
* - `return <v>` → `<v>`.
|
|
405
|
+
*
|
|
406
|
+
* The rest is folded first, leaving each binding as a free identifier, so its
|
|
407
|
+
* use count can be measured before inlining. Inlining is refused (→ `ok: false`)
|
|
408
|
+
* when it would be unsound:
|
|
409
|
+
* - a possibly-impure init (one containing a call) used zero or more than once
|
|
410
|
+
* on a path would drop or duplicate the side effect (a pure init is always
|
|
411
|
+
* safe to inline any number of times);
|
|
412
|
+
* - a substitution would capture a free variable of the init under a nested
|
|
413
|
+
* callback parameter of the same name (substitution is not hygienic).
|
|
414
|
+
*
|
|
415
|
+
* Returns `{ ok: false }` for a sequence that cannot produce a value on some
|
|
416
|
+
* path (falls through with no `return`) — the genuinely-imperative residue that
|
|
417
|
+
* {@link IMPERATIVE_BLOCK_REASON} describes. The input is assumed to be the
|
|
418
|
+
* STRICT parse ({@link parseBlockBody}, not the tolerant variant): every source
|
|
419
|
+
* statement is represented, so a `false` here reflects the real shape rather
|
|
420
|
+
* than a silently-dropped statement.
|
|
421
|
+
*/
|
|
422
|
+
export declare function foldBlockToExpr(stmts: ParsedStatement[], opts?: FoldBlockOptions): {
|
|
423
|
+
ok: true;
|
|
424
|
+
expr: ParsedExpr;
|
|
425
|
+
} | {
|
|
426
|
+
ok: false;
|
|
427
|
+
reason: string;
|
|
428
|
+
};
|
|
429
|
+
/**
|
|
430
|
+
* Rewrite a ternary whose arms are used in BOOLEAN context — e.g. the result of
|
|
431
|
+
* folding a block-bodied filter predicate (`if (c) return A; return B` →
|
|
432
|
+
* `c ? A : B`) — into an equivalent `&&` / `||` expression, so it flows through
|
|
433
|
+
* the ordinary boolean-expression lowering instead of needing a dedicated
|
|
434
|
+
* block-condition renderer per adapter (#2040). Boolean-literal arms collapse:
|
|
435
|
+
*
|
|
436
|
+
* c ? true : false → c
|
|
437
|
+
* c ? true : f → c || f
|
|
438
|
+
* c ? t : false → c && t
|
|
439
|
+
* c ? false : f → !c && f
|
|
440
|
+
* c ? t : true → !c || t
|
|
441
|
+
* c ? t : f → (c && t) || (!c && f)
|
|
442
|
+
*
|
|
443
|
+
* Arms are flattened recursively (an `else if` chain is a nested ternary); the
|
|
444
|
+
* test is left as-is. Only valid where the consumer interprets the value as a
|
|
445
|
+
* boolean (a filter predicate). Non-conditional input is returned unchanged.
|
|
446
|
+
*/
|
|
447
|
+
export declare function predicateTernaryToLogical(expr: ParsedExpr): ParsedExpr;
|
|
421
448
|
/**
|
|
422
449
|
* Convert ParsedExpr back to a string for debugging.
|
|
423
450
|
*/
|
|
@@ -432,6 +459,35 @@ export declare function exprToString(expr: ParsedExpr): string;
|
|
|
432
459
|
* downstream conversion pipeline.
|
|
433
460
|
*/
|
|
434
461
|
export declare function stringifyParsedExpr(expr: ParsedExpr): string;
|
|
462
|
+
/**
|
|
463
|
+
* Serialize a pure-expression `ParsedExpr` (a higher-order callback body) into
|
|
464
|
+
* the minimal JSON the runtime evaluator consumes — the format pinned by the
|
|
465
|
+
* `eval-vectors` golden cases and read by Go `eval.go` `EvalNode` / Perl
|
|
466
|
+
* `Evaluator.pm` `evaluate`. Only the evaluator-recognized fields are emitted
|
|
467
|
+
* per kind (a literal carries just `value`; `literalType` / `raw` are dropped —
|
|
468
|
+
* the evaluator never reads them; `member.computed` is kept when set so a
|
|
469
|
+
* computed member stays distinguishable), keeping the embedded body blob small
|
|
470
|
+
* and stable.
|
|
471
|
+
*
|
|
472
|
+
* Returns `null` when the tree contains a shape outside the evaluator's surface
|
|
473
|
+
* — a folded `higher-order` / `array-method`, an `arrow-fn`, an `unsupported`
|
|
474
|
+
* node, an operator the evaluator doesn't implement, or a `call` whose callee
|
|
475
|
+
* isn't an allowlisted builtin (`Math.*` / `String` / `Number` / `Boolean`) — so
|
|
476
|
+
* the caller refuses the body (BF101 / `@client`) instead of emitting a blob the
|
|
477
|
+
* evaluator would read as nil. The evaluator's support criterion is
|
|
478
|
+
* purely-functional expressibility; this is its compile-time gate. (#2018)
|
|
479
|
+
*/
|
|
480
|
+
export declare function serializeParsedExpr(expr: ParsedExpr): string | null;
|
|
481
|
+
/**
|
|
482
|
+
* The free variables a higher-order callback body references — every bare
|
|
483
|
+
* identifier in a value position, minus the callback's own `params`. The
|
|
484
|
+
* adapter materializes each into the evaluator's `base_env` (mapping the JS name
|
|
485
|
+
* to its SSR value). Walks exactly the value positions {@link serializeParsedExpr}
|
|
486
|
+
* serializes (so it sees object-literal *values* and template-expression parts,
|
|
487
|
+
* and skips member property names / object keys, which are not references).
|
|
488
|
+
* Returns a sorted, de-duplicated list for stable emit. (#2018)
|
|
489
|
+
*/
|
|
490
|
+
export declare function freeVarsInBody(body: ParsedExpr, params: ReadonlySet<string>): string[];
|
|
435
491
|
/**
|
|
436
492
|
* Extract the textual identifier path from a parsed expression's
|
|
437
493
|
* callee — `{kind:'identifier', name:'String'}` → `"String"`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expression-parser.d.ts","sourceRoot":"","sources":["../src/expression-parser.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAAE,MAAM,YAAY,CAAA;AAM3B,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"expression-parser.d.ts","sourceRoot":"","sources":["../src/expression-parser.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { compileJSX, buildMetadata } from './compiler.ts';
|
|
|
7
7
|
export type { CompileResult, CompileOptions, CompileOptionsWithAdapter, FileOutput } from './compiler.ts';
|
|
8
8
|
export { extractSsrDefaults } from './ssr-defaults.ts';
|
|
9
9
|
export type { SsrDefault } from './ssr-defaults.ts';
|
|
10
|
-
export type { ComponentIR, IRNode, IRElement, IRText, IRExpression, IRConditional, IRLoop, IRLoopChildComponent, IRComponent, IRFragment, IRSlot, IRIfStatement, IRProvider, IRAsync, IRMetadata, AttrValue, LiteralAttr, ExpressionAttr, BooleanAttr, BooleanShorthandAttr, TemplateAttr, SpreadAttr, JsxChildrenAttr, IRTemplatePart, IRProp, ParamInfo, PropertyInfo, TypeInfo, TypeDefinition, SourceLocation, CompilerError, } from './types.ts';
|
|
10
|
+
export type { ComponentIR, IRNode, IRElement, IRText, IRExpression, IRConditional, IRLoop, IRLoopChildComponent, IRComponent, IRFragment, IRSlot, IRIfStatement, IRProvider, IRAsync, IRMetadata, AttrValue, LiteralAttr, ExpressionAttr, BooleanAttr, BooleanShorthandAttr, TemplateAttr, SpreadAttr, JsxChildrenAttr, IRTemplatePart, IRProp, ParamInfo, PropertyInfo, MemoInfo, TypeInfo, TypeDefinition, SourceLocation, CompilerError, } from './types.ts';
|
|
11
11
|
export { analyzeComponent, listComponentFunctions, listComponentFunctions as listExportedComponents, createProgramForFile, needsTypeBasedDetection, REACTIVE_PRIMITIVES, BROWSER_ONLY_CLIENT_APIS, type AnalyzerContext } from './analyzer.ts';
|
|
12
12
|
export { createProgramForCorpus, type SharedProgramOptions } from './shared-program.ts';
|
|
13
13
|
export { jsxToIR } from './jsx-to-ir.ts';
|
|
@@ -20,7 +20,10 @@ export type { JsxAdapterConfig } from './adapters/jsx-adapter.ts';
|
|
|
20
20
|
export { rewriteImportsForTemplate } from './adapters/template-imports.ts';
|
|
21
21
|
export { emitParsedExpr } from './adapters/parsed-expr-emitter.ts';
|
|
22
22
|
export type { ParsedExprEmitter, HigherOrderMethod, ArrayMethod, SortMethod, LiteralType } from './adapters/parsed-expr-emitter.ts';
|
|
23
|
-
export { importsSearchParams, searchParamsLocalNames, matchSearchParamsMethodCall } from './adapters/env-signal.ts';
|
|
23
|
+
export { importsSearchParams, searchParamsLocalNames, queryHrefLocalNames, matchSearchParamsMethodCall } from './adapters/env-signal.ts';
|
|
24
|
+
export { matchQueryHrefCall, queryHrefArgs, type QueryHrefCall, type QueryHrefTriple } from './query-href-lowering.ts';
|
|
25
|
+
export { registerLoweringPlugin, getLoweringPlugins, prepareLoweringMatchers, matchLoweringCall, __resetLoweringPluginsForTest, type LoweringPlugin, type LoweringNode, type LoweringTriple, type LoweringMatcher, } from './lowering-registry.ts';
|
|
26
|
+
export { queryHrefPlugin, registerBuiltinLoweringPlugins, BUILTIN_LOWERING_PLUGINS, } from './builtin-lowering-plugins.ts';
|
|
24
27
|
export { emitIRNode } from './adapters/ir-node-emitter.ts';
|
|
25
28
|
export type { IRNodeEmitter, EmitIRNode } from './adapters/ir-node-emitter.ts';
|
|
26
29
|
export { emitAttrValue } from './adapters/attr-value-emitter.ts';
|
|
@@ -174,9 +177,9 @@ export { AttrValueOf } from './types.ts';
|
|
|
174
177
|
export { applyCssLayerPrefix } from './css-layer-prefixer.ts';
|
|
175
178
|
export { enableCompilerInstrumentation, disableCompilerInstrumentation, resetCompilerCounters, getCompilerCounters, type CompilerCounters, } from './instrumentation.ts';
|
|
176
179
|
export { ErrorCodes, createError, formatError, generateCodeFrame } from './errors.ts';
|
|
177
|
-
export { parseExpression, isSupported, exprToString, stringifyParsedExpr, identifierPath, parseBlockBody, containsHigherOrder, extractArrowBodyExpression, parseStyleObjectEntries, parseProviderObjectLiteral, type ProviderObjectMember } from './expression-parser.ts';
|
|
180
|
+
export { parseExpression, tsNodeToParsedExpr, asCallbackMethodCall, CALLBACK_METHODS, sortComparatorFromArrow, serializeParsedExpr, freeVarsInBody, isSupported, exprToString, stringifyParsedExpr, identifierPath, parseBlockBody, parseBlockBodyTolerant, foldBlockToExpr, predicateTernaryToLogical, containsHigherOrder, extractArrowBodyExpression, parseStyleObjectEntries, parseProviderObjectLiteral, type ProviderObjectMember, type FoldBlockOptions } from './expression-parser.ts';
|
|
178
181
|
export type { StyleObjectEntry } from './expression-parser.ts';
|
|
179
|
-
export type { ParsedExpr, ParsedStatement, SortComparator, SortKey,
|
|
182
|
+
export type { ParsedExpr, ObjectLiteralProperty, ParsedStatement, SortComparator, SortKey, FlatDepth, SupportLevel, SupportResult, TemplatePart } from './expression-parser.ts';
|
|
180
183
|
export { buildLoopChainExpr } from './loop-chain.ts';
|
|
181
184
|
export type { LoopChainInputs } from './loop-chain.ts';
|
|
182
185
|
export { isLowerableObjectRestDestructure } from './loop-destructure.ts';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AACzD,YAAY,EAAE,aAAa,EAAE,cAAc,EAAE,yBAAyB,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAGzG,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AACtD,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAGnD,YAAY,EACV,WAAW,EACX,MAAM,EACN,SAAS,EACT,MAAM,EACN,YAAY,EACZ,aAAa,EACb,MAAM,EACN,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,MAAM,EACN,aAAa,EACb,UAAU,EACV,OAAO,EACP,UAAU,EACV,SAAS,EACT,WAAW,EACX,cAAc,EACd,WAAW,EACX,oBAAoB,EACpB,YAAY,EACZ,UAAU,EACV,eAAe,EACf,cAAc,EACd,MAAM,EACN,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,cAAc,EACd,cAAc,EACd,aAAa,GACd,MAAM,YAAY,CAAA;AAGnB,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,sBAAsB,IAAI,sBAAsB,EAAE,oBAAoB,EAAE,uBAAuB,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAC9O,OAAO,EAAE,sBAAsB,EAAE,KAAK,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAGvF,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAA;AAGxC,OAAO,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG3H,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAGrD,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AACrE,YAAY,EACV,eAAe,EACf,aAAa,EACb,sBAAsB,EACtB,gBAAgB,EAChB,qBAAqB,EACrB,yBAAyB,EACzB,oBAAoB,GACrB,MAAM,yBAAyB,CAAA;AAChC,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAA;AACtD,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAA;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAA;AAClE,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mCAAmC,CAAA;AACnI,OAAO,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,2BAA2B,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|