@kernlang/core 3.3.9 → 3.4.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 (82) hide show
  1. package/dist/capability-matrix.d.ts +15 -0
  2. package/dist/capability-matrix.js +245 -0
  3. package/dist/capability-matrix.js.map +1 -0
  4. package/dist/codegen/data-layer.d.ts +1 -1
  5. package/dist/codegen/data-layer.js +59 -23
  6. package/dist/codegen/data-layer.js.map +1 -1
  7. package/dist/codegen/events.js +1 -1
  8. package/dist/codegen/events.js.map +1 -1
  9. package/dist/codegen/functions.js +29 -5
  10. package/dist/codegen/functions.js.map +1 -1
  11. package/dist/codegen/ground-layer.js +10 -6
  12. package/dist/codegen/ground-layer.js.map +1 -1
  13. package/dist/codegen/helpers.d.ts +3 -1
  14. package/dist/codegen/helpers.js +5 -1
  15. package/dist/codegen/helpers.js.map +1 -1
  16. package/dist/codegen/machines.js +4 -3
  17. package/dist/codegen/machines.js.map +1 -1
  18. package/dist/codegen/modules.d.ts +1 -0
  19. package/dist/codegen/modules.js +52 -1
  20. package/dist/codegen/modules.js.map +1 -1
  21. package/dist/codegen/screens.js +31 -9
  22. package/dist/codegen/screens.js.map +1 -1
  23. package/dist/codegen/stdlib-preamble.d.ts +39 -0
  24. package/dist/codegen/stdlib-preamble.js +213 -0
  25. package/dist/codegen/stdlib-preamble.js.map +1 -0
  26. package/dist/codegen/type-system.d.ts +113 -1
  27. package/dist/codegen/type-system.js +389 -30
  28. package/dist/codegen/type-system.js.map +1 -1
  29. package/dist/codegen-core.d.ts +2 -2
  30. package/dist/codegen-core.js +58 -10
  31. package/dist/codegen-core.js.map +1 -1
  32. package/dist/codegen-expression.d.ts +3 -0
  33. package/dist/codegen-expression.js +93 -0
  34. package/dist/codegen-expression.js.map +1 -0
  35. package/dist/concepts.d.ts +3 -3
  36. package/dist/config.d.ts +16 -0
  37. package/dist/config.js +13 -0
  38. package/dist/config.js.map +1 -1
  39. package/dist/decompiler.js +356 -4
  40. package/dist/decompiler.js.map +1 -1
  41. package/dist/importer.d.ts +1 -0
  42. package/dist/importer.js +574 -34
  43. package/dist/importer.js.map +1 -1
  44. package/dist/index.d.ts +6 -3
  45. package/dist/index.js +9 -3
  46. package/dist/index.js.map +1 -1
  47. package/dist/node-props.d.ts +177 -1
  48. package/dist/node-props.js.map +1 -1
  49. package/dist/parser-core.js +30 -5
  50. package/dist/parser-core.js.map +1 -1
  51. package/dist/parser-diagnostics.js +5 -0
  52. package/dist/parser-diagnostics.js.map +1 -1
  53. package/dist/parser-expression.d.ts +17 -0
  54. package/dist/parser-expression.js +498 -0
  55. package/dist/parser-expression.js.map +1 -0
  56. package/dist/parser-tokenizer.d.ts +5 -3
  57. package/dist/parser-tokenizer.js +97 -16
  58. package/dist/parser-tokenizer.js.map +1 -1
  59. package/dist/parser-validate-effects.d.ts +21 -0
  60. package/dist/parser-validate-effects.js +188 -0
  61. package/dist/parser-validate-effects.js.map +1 -0
  62. package/dist/parser-validate-expressions.d.ts +6 -0
  63. package/dist/parser-validate-expressions.js +41 -0
  64. package/dist/parser-validate-expressions.js.map +1 -0
  65. package/dist/parser-validate-union-kind.d.ts +24 -0
  66. package/dist/parser-validate-union-kind.js +97 -0
  67. package/dist/parser-validate-union-kind.js.map +1 -0
  68. package/dist/schema.d.ts +1 -1
  69. package/dist/schema.js +373 -27
  70. package/dist/schema.js.map +1 -1
  71. package/dist/semantic-validator.js +15 -8
  72. package/dist/semantic-validator.js.map +1 -1
  73. package/dist/spec.d.ts +5 -2
  74. package/dist/spec.js +24 -2
  75. package/dist/spec.js.map +1 -1
  76. package/dist/types.d.ts +7 -1
  77. package/dist/types.js +7 -1
  78. package/dist/types.js.map +1 -1
  79. package/dist/value-ir.d.ts +69 -0
  80. package/dist/value-ir.js +20 -0
  81. package/dist/value-ir.js.map +1 -0
  82. package/package.json +1 -1
@@ -3,18 +3,15 @@
3
3
  *
4
4
  * Extracted from codegen-core.ts for modular codegen architecture.
5
5
  */
6
+ import { emitExpression } from '../codegen-expression.js';
6
7
  import { propsOf } from '../node-props.js';
8
+ import { parseExpression } from '../parser-expression.js';
9
+ import { isExprObject } from '../types.js';
7
10
  import { emitIdentifier, emitTemplateSafe, emitTypeAnnotation } from './emitters.js';
8
11
  import { emitDocComment, exportPrefix, getChildren, getFirstChild, getProps, handlerCode, parseParamList, } from './helpers.js';
9
12
  const p = getProps;
10
13
  const kids = getChildren;
11
14
  const firstChild = getFirstChild;
12
- function isExprObject(value) {
13
- return (typeof value === 'object' &&
14
- value !== null &&
15
- value.__expr === true &&
16
- typeof value.code === 'string');
17
- }
18
15
  // ── Type Alias ───────────────────────────────────────────────────────────
19
16
  // type name=PlanState values="draft|approved|running|paused|completed|failed|cancelled"
20
17
  // → export type PlanState = 'draft' | 'approved' | 'running' | ...;
@@ -22,6 +19,7 @@ export function generateType(node) {
22
19
  const props = propsOf(node);
23
20
  const name = emitIdentifier(props.name, 'UnknownType', node);
24
21
  const { values, alias } = props;
22
+ const generics = props.generics ? emitTypeAnnotation(props.generics, '', node) : '';
25
23
  const exp = exportPrefix(node);
26
24
  const docs = emitDocComment(node);
27
25
  if (values) {
@@ -29,27 +27,37 @@ export function generateType(node) {
29
27
  .split('|')
30
28
  .map((v) => `'${emitTemplateSafe(v.trim())}'`)
31
29
  .join(' | ');
32
- return [...docs, `${exp}type ${name} = ${members};`];
30
+ return [...docs, `${exp}type ${name}${generics} = ${members};`];
33
31
  }
34
32
  if (alias) {
35
- return [...docs, `${exp}type ${name} = ${emitTypeAnnotation(alias, 'unknown', node)};`];
33
+ return [...docs, `${exp}type ${name}${generics} = ${emitTypeAnnotation(alias, 'unknown', node)};`];
36
34
  }
37
- return [...docs, `${exp}type ${name} = unknown;`];
35
+ return [...docs, `${exp}type ${name}${generics} = unknown;`];
38
36
  }
39
37
  // ── Interface ────────────────────────────────────────────────────────────
40
38
  export function generateInterface(node) {
41
39
  const props = propsOf(node);
42
40
  const name = emitIdentifier(props.name, 'UnknownInterface', node);
41
+ const generics = props.generics ? emitTypeAnnotation(props.generics, '', node) : '';
43
42
  const ext = props.extends ? ` extends ${emitTypeAnnotation(props.extends, 'unknown', node)}` : '';
44
43
  const exp = exportPrefix(node);
45
44
  const lines = [...emitDocComment(node)];
46
- lines.push(`${exp}interface ${name}${ext} {`);
45
+ lines.push(`${exp}interface ${name}${generics}${ext} {`);
47
46
  for (const field of kids(node, 'field')) {
48
47
  const fp = propsOf(field);
49
48
  const fieldName = emitIdentifier(fp.name, 'field', field);
50
49
  const opt = fp.optional === 'true' || fp.optional === true ? '?' : '';
51
50
  lines.push(` ${fieldName}${opt}: ${emitTypeAnnotation(fp.type, 'unknown', field)};`);
52
51
  }
52
+ for (const idx of kids(node, 'indexer')) {
53
+ const ip = propsOf(idx);
54
+ // `||` (not `??`) so an empty-string keyName also falls back to 'key'.
55
+ const keyName = emitIdentifier(ip.keyName || 'key', 'key', idx);
56
+ const keyType = emitTypeAnnotation(ip.keyType, 'string', idx);
57
+ const valType = emitTypeAnnotation(ip.type, 'unknown', idx);
58
+ const ro = ip.readonly === 'true' || ip.readonly === true ? 'readonly ' : '';
59
+ lines.push(` ${ro}[${keyName}: ${keyType}]: ${valType};`);
60
+ }
53
61
  lines.push('}');
54
62
  return lines;
55
63
  }
@@ -99,16 +107,18 @@ function emitClassHeader(node, fallbackName) {
99
107
  const name = emitIdentifier(props.name, fallbackName, node);
100
108
  const exp = exportPrefix(node);
101
109
  const docs = emitDocComment(node);
110
+ const generics = props.generics ? emitTypeAnnotation(props.generics, '', node) : '';
102
111
  const extendsClause = props.extends ? ` extends ${emitTypeAnnotation(props.extends, 'unknown', node)}` : '';
103
112
  const implementsClause = props.implements
104
113
  ? ` implements ${emitTypeAnnotation(props.implements, 'unknown', node)}`
105
114
  : '';
106
115
  const abstractKw = props.abstract === 'true' || props.abstract === true ? 'abstract ' : '';
116
+ const classKw = node.type === 'service' ? 'class ' : `${abstractKw}class `;
107
117
  return {
108
118
  exp,
109
119
  name,
110
120
  docs,
111
- header: `${exp}${abstractKw}class ${name}${extendsClause}${implementsClause} {`,
121
+ header: `${exp}${classKw}${name}${generics}${extendsClause}${implementsClause} {`,
112
122
  };
113
123
  }
114
124
  export function generateClass(node) {
@@ -147,26 +157,44 @@ function emitClassBody(node, lines) {
147
157
  const staticKw = fp.static === 'true' || fp.static === true ? 'static ' : '';
148
158
  const readonly = fp.readonly === 'true' || fp.readonly === true ? 'readonly ' : '';
149
159
  const typeAnnotation = fp.type ? `: ${emitTypeAnnotation(fp.type, 'unknown', field)}` : '';
150
- const defaultVal = fp.default;
151
- // `default={{ expr }}` parses as an ExprObject; emit its raw code.
152
- // Bare `default=0` arrives as a string. Either way it's by-design raw TS.
160
+ // Slice 3b: `value` (native ValueIR) takes precedence over `default`
161
+ // (rawExpr passthrough). `value` routes through emitConstValue for
162
+ // ValueIR canonicalisation + __quotedProps-aware string-literal handling;
163
+ // `default` keeps the original raw passthrough so existing seeds with
164
+ // bare-string defaults (e.g. `default=plan` for a string-typed field)
165
+ // continue to compile unchanged.
166
+ //
167
+ // Codex-hold guard from slice 3a: presence is `=== undefined` only —
168
+ // empty-string `value=""` is a legal explicit string literal when the
169
+ // source had it quoted (__quotedProps tracks it), and emitConstValue
170
+ // JSON.stringifies it to `""`. Slice 3b Codex hold #1: an unquoted
171
+ // empty `value=` (no __quotedProps) must NOT be routed through
172
+ // emitConstValue — parseExpression('') throws and returns '', producing
173
+ // invalid TS like `x: string = ;`. Treat unquoted-empty as absent.
174
+ const rawValue = fp.value;
175
+ const rawDefault = fp.default;
176
+ const valuePresent = rawValue !== undefined && (rawValue !== '' || field.__quotedProps?.includes('value') === true);
153
177
  const init = (() => {
154
- if (defaultVal === undefined || defaultVal === '')
178
+ if (valuePresent) {
179
+ return ` = ${emitConstValue(field, rawValue)}`;
180
+ }
181
+ if (rawDefault === undefined || rawDefault === '')
155
182
  return '';
156
- if (isExprObject(defaultVal))
157
- return ` = ${defaultVal.code}`;
158
- return ` = ${defaultVal}`;
183
+ if (isExprObject(rawDefault))
184
+ return ` = ${rawDefault.code}`;
185
+ return ` = ${rawDefault}`;
159
186
  })();
160
187
  lines.push(` ${vis}${staticKw}${readonly}${fieldName}${typeAnnotation}${init};`);
161
188
  }
162
189
  // Constructor (if any constructor child exists)
163
190
  const ctorNode = firstChild(node, 'constructor');
164
191
  if (ctorNode) {
165
- const ctorProps = p(ctorNode);
166
- const ctorParams = ctorProps.params ? parseParamList(ctorProps.params) : '';
192
+ const ctorProps = propsOf(ctorNode);
193
+ const ctorParams = emitParamList(ctorNode);
194
+ const generics = ctorProps.generics ? emitTypeAnnotation(ctorProps.generics, '', ctorNode) : '';
167
195
  const ctorCode = handlerCode(ctorNode);
168
196
  lines.push('');
169
- lines.push(` constructor(${ctorParams}) {`);
197
+ lines.push(` constructor${generics}(${ctorParams}) {`);
170
198
  if (ctorCode) {
171
199
  for (const line of ctorCode.split('\n')) {
172
200
  lines.push(` ${line}`);
@@ -178,14 +206,13 @@ function emitClassBody(node, lines) {
178
206
  for (const method of kids(node, 'method')) {
179
207
  const mp = propsOf(method);
180
208
  const mname = emitIdentifier(mp.name, 'method', method);
181
- const mparams = mp.params ? parseParamList(mp.params) : '';
209
+ const mparams = emitParamList(method);
210
+ const generics = mp.generics ? emitTypeAnnotation(mp.generics, '', method) : '';
182
211
  const isAsync = mp.async === 'true' || mp.async === true;
183
212
  const isStream = mp.stream === 'true' || mp.stream === true;
184
213
  const isGenerator = mp.generator === 'true' || mp.generator === true;
185
214
  const isStatic = mp.static === 'true' || mp.static === true;
186
- const vis = mp.private === 'true' || mp.private === true
187
- ? 'private '
188
- : '';
215
+ const vis = mp.private === 'true' || mp.private === true ? 'private ' : '';
189
216
  const staticKw = isStatic ? 'static ' : '';
190
217
  const star = isStream || isGenerator ? '*' : '';
191
218
  const asyncKw = isAsync || isStream ? 'async ' : '';
@@ -206,7 +233,7 @@ function emitClassBody(node, lines) {
206
233
  ? `: ${mrt}`
207
234
  : '';
208
235
  lines.push('');
209
- lines.push(` ${vis}${staticKw}${asyncKw}${star}${mname}(${mparams})${mreturns} {`);
236
+ lines.push(` ${vis}${staticKw}${asyncKw}${star}${mname}${generics}(${mparams})${mreturns} {`);
210
237
  if (mcode) {
211
238
  for (const line of mcode.split('\n')) {
212
239
  lines.push(` ${line}`);
@@ -237,7 +264,7 @@ function emitClassBody(node, lines) {
237
264
  const sname = emitIdentifier(sp.name, 'setter', setter);
238
265
  const svis = sp.private === 'true' || sp.private === true ? 'private ' : '';
239
266
  const sstatic = sp.static === 'true' || sp.static === true ? 'static ' : '';
240
- const sparams = sp.params ? parseParamList(sp.params) : 'value: unknown';
267
+ const sparams = emitParamList(setter, { fallback: 'value: unknown' });
241
268
  const scode = handlerCode(setter);
242
269
  lines.push('');
243
270
  lines.push(` ${svis}${sstatic}set ${sname}(${sparams}) {`);
@@ -249,6 +276,63 @@ function emitClassBody(node, lines) {
249
276
  lines.push(' }');
250
277
  }
251
278
  }
279
+ // ── Enum ────────────────────────────────────────────────────────────────
280
+ // enum name=Status values="Pending|Active|Done"
281
+ // → export enum Status { Pending, Active, Done }
282
+ //
283
+ // enum name=Direction
284
+ // member name=Up value="UP"
285
+ // member name=Down value="DOWN"
286
+ // → export enum Direction { Up = "UP", Down = "DOWN" }
287
+ //
288
+ // enum name=Flag const=true values="On|Off"
289
+ // → export const enum Flag { On, Off }
290
+ export function generateEnum(node) {
291
+ const props = propsOf(node);
292
+ const name = emitIdentifier(props.name, 'UnknownEnum', node);
293
+ const exp = exportPrefix(node);
294
+ const isConst = props.const === 'true' || props.const === true;
295
+ const constKw = isConst ? 'const ' : '';
296
+ const docs = emitDocComment(node);
297
+ // Member children take precedence over `values=`. If both are provided, members win
298
+ // (and `values=` is silently ignored — the user picked the more expressive form).
299
+ const memberChildren = kids(node, 'member');
300
+ if (memberChildren.length > 0) {
301
+ const lines = [...docs, `${exp}${constKw}enum ${name} {`];
302
+ for (const m of memberChildren) {
303
+ const mp = propsOf(m);
304
+ const mname = emitIdentifier(mp.name, 'unknownMember', m);
305
+ const rawVal = mp.value;
306
+ // Quoted strings keep their string form; bare values pass through as-is.
307
+ // (Slice 1i/1j contract: __quotedProps tracks origin; here we honour it.)
308
+ let valueStr;
309
+ if (rawVal === undefined || rawVal === '') {
310
+ valueStr = '';
311
+ }
312
+ else if (isExprObject(rawVal)) {
313
+ valueStr = ` = ${rawVal.code}`;
314
+ }
315
+ else if (typeof rawVal === 'string') {
316
+ const isQuoted = m.__quotedProps?.includes('value');
317
+ valueStr = ` = ${isQuoted ? JSON.stringify(rawVal) : rawVal}`;
318
+ }
319
+ else {
320
+ valueStr = ` = ${String(rawVal)}`;
321
+ }
322
+ lines.push(` ${mname}${valueStr},`);
323
+ }
324
+ lines.push('}');
325
+ return lines;
326
+ }
327
+ if (props.values) {
328
+ const members = props.values
329
+ .split('|')
330
+ .map((v) => emitIdentifier(v.trim(), 'unknownMember', node))
331
+ .join(', ');
332
+ return [...docs, `${exp}${constKw}enum ${name} { ${members} }`];
333
+ }
334
+ return [...docs, `${exp}${constKw}enum ${name} {}`];
335
+ }
252
336
  // ── Const ───────────────────────────────────────────────────────────────
253
337
  export function generateConst(node) {
254
338
  const props = propsOf(node);
@@ -263,11 +347,286 @@ export function generateConst(node) {
263
347
  return [...docs, `${exp}const ${name}${typeAnnotation} = ${code.trim()};`];
264
348
  }
265
349
  if (rawValue !== undefined && rawValue !== '') {
266
- // `value={{ expr }}` is parsed as ExprObject; emit the raw code. Bare
267
- // literal values (`value=42`) come through as strings.
268
- const value = isExprObject(rawValue) ? rawValue.code : rawValue;
350
+ const value = emitConstValue(node, rawValue);
269
351
  return [...docs, `${exp}const ${name}${typeAnnotation} = ${value};`];
270
352
  }
271
353
  return [...docs, `${exp}const ${name}${typeAnnotation};`];
272
354
  }
355
+ // ── Destructure (slice 3d) ──────────────────────────────────────────────
356
+ /**
357
+ * Slice 3d — emit a TS destructuring statement from a `destructure` node.
358
+ *
359
+ * Two paths:
360
+ * (1) `expr={{...}}` escape hatch — emit the carried code verbatim. Used
361
+ * by the importer for complex patterns (rest `...`, defaults `=v`,
362
+ * nested `{a:{b}}`, computed keys) where structured children would
363
+ * lose information.
364
+ * (2) Structured children — `binding` for object patterns (with optional
365
+ * `key=` for renames) or `element` for array patterns (with `index=`
366
+ * for ordered position). Codegen detects which child kind dominates
367
+ * and emits `{a, b: alias} = src` or `[a, b, , c] = src` (holes from
368
+ * index gaps).
369
+ *
370
+ * `kind` defaults to `const` when omitted. `type` (optional) flows through
371
+ * `emitTypeAnnotation` and is appended after the LHS pattern.
372
+ */
373
+ export function generateDestructure(node) {
374
+ const props = propsOf(node);
375
+ const docs = emitDocComment(node);
376
+ const exp = exportPrefix(node);
377
+ const kind = props.kind === 'let' ? 'let' : 'const';
378
+ // Escape-hatch path for unsupported patterns (rest/defaults/nested).
379
+ // Importer falls back to this when ts.ObjectBindingPattern / ts.ArrayBindingPattern
380
+ // contain features the structured emitter can't represent. The raw text is
381
+ // expected to be a full statement (including `const`/`let` and any `export`
382
+ // prefix), so we DON'T re-prepend `exp` or `kind` here.
383
+ if (props.expr !== undefined) {
384
+ const raw = isExprObject(props.expr) ? props.expr.code : String(props.expr);
385
+ return [...docs, raw];
386
+ }
387
+ if (props.source === undefined || props.source === '') {
388
+ throw new Error('destructure node requires either `source=...` or `expr={{...}}`');
389
+ }
390
+ const sourceCode = emitConstValue(node, props.source);
391
+ const typeAnn = props.type ? `: ${emitTypeAnnotation(props.type, 'unknown', node)}` : '';
392
+ const pattern = formatBindingPatternFromChildren(node);
393
+ if (pattern === null) {
394
+ throw new Error('destructure node has no `binding` or `element` children — use `expr={{...}}` instead for empty patterns');
395
+ }
396
+ return [...docs, `${exp}${kind} ${pattern}${typeAnn} = ${sourceCode};`];
397
+ }
398
+ /**
399
+ * Slice 3c-extension #3 / shared with slice 3d destructure: format the LHS
400
+ * pattern (`{a, b: alias}` or `[x, , y]`) from a node's `binding` (object)
401
+ * or `element` (array) children. Returns null when neither is present (used
402
+ * by the destructure node validator); throws when the node mixes both.
403
+ *
404
+ * Used by:
405
+ * - `generateDestructure` (slice 3d) — full statement: `const {a,b} = src;`
406
+ * - `parseParamListFromChildren` (slice 3c-extension #3) — pattern-only LHS
407
+ * of a destructured fn parameter: `{a, b}: Point` or `[x, y]`.
408
+ */
409
+ export function formatBindingPatternFromChildren(node) {
410
+ const children = node.children || [];
411
+ const bindings = children.filter((c) => c.type === 'binding');
412
+ const elements = children.filter((c) => c.type === 'element');
413
+ if (bindings.length === 0 && elements.length === 0)
414
+ return null;
415
+ if (bindings.length > 0 && elements.length > 0) {
416
+ throw new Error(`${node.type} mixes \`binding\` (object) and \`element\` (array) children — use one or the other`);
417
+ }
418
+ if (bindings.length > 0) {
419
+ // Object pattern: {a, b: rename, c}
420
+ const parts = bindings.map((child) => {
421
+ const cp = propsOf(child);
422
+ const name = emitIdentifier(cp.name, 'unknownBinding', child);
423
+ if (cp.key) {
424
+ const key = emitIdentifier(cp.key, 'unknownKey', child);
425
+ return `${key}: ${name}`;
426
+ }
427
+ return name;
428
+ });
429
+ return `{ ${parts.join(', ')} }`;
430
+ }
431
+ // Array pattern: ordered by `index=`, gaps emit holes (`, ,`).
432
+ const indexed = elements.map((child) => {
433
+ const cp = propsOf(child);
434
+ const idx = cp.index !== undefined ? Number.parseInt(cp.index, 10) : Number.NaN;
435
+ return { idx, child, props: cp };
436
+ });
437
+ if (indexed.some((e) => Number.isNaN(e.idx))) {
438
+ throw new Error(`${node.type} \`element\` children require numeric \`index=\` props`);
439
+ }
440
+ indexed.sort((a, b) => a.idx - b.idx);
441
+ const max = indexed[indexed.length - 1].idx;
442
+ const slots = [];
443
+ for (let i = 0; i <= max; i++) {
444
+ const match = indexed.find((e) => e.idx === i);
445
+ if (match) {
446
+ slots.push(emitIdentifier(match.props.name, 'unknownElement', match.child));
447
+ }
448
+ else {
449
+ slots.push('');
450
+ }
451
+ }
452
+ return `[${slots.join(', ')}]`;
453
+ }
454
+ // ── Map / Set literals (slice 3e) ───────────────────────────────────────
455
+ /**
456
+ * Slice 3e — emit a TS Map literal from a `mapLit` node.
457
+ *
458
+ * mapLit name=cache type="Map<string, number>"
459
+ * mapEntry key="foo" value=1
460
+ * mapEntry key="bar" value=2
461
+ *
462
+ * → `const cache: Map<string, number> = new Map([['foo', 1], ['bar', 2]]);`
463
+ *
464
+ * `expr={{...}}` escape hatch carries a raw TS statement verbatim — used
465
+ * by the importer fallback when a Map literal contains shapes the
466
+ * structured emitter can't represent (computed keys, conditional entries,
467
+ * spread). Mirrors slice 3d destructure escape-hatch policy.
468
+ */
469
+ export function generateMapLit(node) {
470
+ const props = propsOf(node);
471
+ const docs = emitDocComment(node);
472
+ const exp = exportPrefix(node);
473
+ if (props.expr !== undefined) {
474
+ const raw = isExprObject(props.expr) ? props.expr.code : String(props.expr);
475
+ return [...docs, raw];
476
+ }
477
+ const name = emitIdentifier(props.name, 'unknownMap', node);
478
+ const kind = props.kind === 'let' ? 'let' : 'const';
479
+ const typeAnn = props.type ? `: ${emitTypeAnnotation(props.type, 'Map<unknown, unknown>', node)}` : '';
480
+ const entries = (node.children || []).filter((c) => c.type === 'mapEntry');
481
+ const pairs = entries.map((child) => {
482
+ const cp = propsOf(child);
483
+ if (cp.key === undefined) {
484
+ throw new Error('mapEntry requires a `key=` prop');
485
+ }
486
+ if (cp.value === undefined) {
487
+ throw new Error('mapEntry requires a `value=` prop');
488
+ }
489
+ const k = emitConstValue(child, cp.key, 'key');
490
+ const v = emitConstValue(child, cp.value, 'value');
491
+ return `[${k}, ${v}]`;
492
+ });
493
+ return [...docs, `${exp}${kind} ${name}${typeAnn} = new Map([${pairs.join(', ')}]);`];
494
+ }
495
+ /**
496
+ * Slice 3e — emit a TS Set literal from a `setLit` node.
497
+ *
498
+ * setLit name=allowed type="Set<string>"
499
+ * setItem value="admin"
500
+ * setItem value="user"
501
+ *
502
+ * → `const allowed: Set<string> = new Set(['admin', 'user']);`
503
+ *
504
+ * Same `expr={{...}}` escape-hatch policy as `mapLit`/`destructure`.
505
+ */
506
+ export function generateSetLit(node) {
507
+ const props = propsOf(node);
508
+ const docs = emitDocComment(node);
509
+ const exp = exportPrefix(node);
510
+ if (props.expr !== undefined) {
511
+ const raw = isExprObject(props.expr) ? props.expr.code : String(props.expr);
512
+ return [...docs, raw];
513
+ }
514
+ const name = emitIdentifier(props.name, 'unknownSet', node);
515
+ const kind = props.kind === 'let' ? 'let' : 'const';
516
+ const typeAnn = props.type ? `: ${emitTypeAnnotation(props.type, 'Set<unknown>', node)}` : '';
517
+ const items = (node.children || []).filter((c) => c.type === 'setItem');
518
+ const values = items.map((child) => {
519
+ const cp = propsOf(child);
520
+ if (cp.value === undefined) {
521
+ throw new Error('setItem requires a `value=` prop');
522
+ }
523
+ return emitConstValue(child, cp.value, 'value');
524
+ });
525
+ return [...docs, `${exp}${kind} ${name}${typeAnn} = new Set([${values.join(', ')}]);`];
526
+ }
527
+ /** Emit the right-hand side of an expression-typed prop (e.g. `const.value`,
528
+ * `let.value`) from its raw IR form.
529
+ *
530
+ * - `<prop>={{ expr }}` (ExprObject) — emit `.code` raw (escape hatch for arbitrary TS).
531
+ * - `<prop>="literal"` (quoted, tracked in __quotedProps) — emit as JSON-quoted string
532
+ * so output is valid TS even when the literal contains expression-illegal characters.
533
+ * - bare `<prop>=...` — try ValueIR parse + emit for canonicalization. Fall back to raw
534
+ * string on parse failure (validator emits INVALID_EXPRESSION but codegen still ships).
535
+ *
536
+ * Slice 3e — `propName` parameter (default 'value') lets non-`value` props
537
+ * participate in the same quoted-vs-bare distinction. `mapEntry.key` and
538
+ * `mapEntry.value` both flow through this with their own __quotedProps key. */
539
+ export function emitConstValue(node, rawValue, propName = 'value') {
540
+ if (isExprObject(rawValue))
541
+ return rawValue.code;
542
+ if (typeof rawValue !== 'string')
543
+ return String(rawValue);
544
+ if (node.__quotedProps?.includes(propName))
545
+ return JSON.stringify(rawValue);
546
+ try {
547
+ return emitExpression(parseExpression(rawValue));
548
+ }
549
+ catch {
550
+ return rawValue;
551
+ }
552
+ }
553
+ /**
554
+ * Slice 3c — produce a TS parameter-list string from `param` child IR nodes.
555
+ *
556
+ * Mirrors `parseParamList` (which parses the legacy `params="..."` string)
557
+ * but reads structured child nodes so each parameter's `value=` flows through
558
+ * `emitConstValue` for ValueIR canonicalisation. Identifier/type annotations
559
+ * are routed through the schema emitters so authored bad input raises
560
+ * KernCodegenError instead of producing broken TS.
561
+ *
562
+ * Per child:
563
+ * - `value=` (slice 3c, ValueIR-canonicalised) — JSON-quoted for quoted
564
+ * string literals, parsed+re-emitted for bare expressions, raw for
565
+ * `{{...}}` ExprObject. Same routing as slice 3b field.value.
566
+ * - `default=` (rawExpr passthrough) — kept for back-compat / MCP usage.
567
+ * - When both set, `value` wins. The slice 3a/3b gate treats unquoted
568
+ * empty `value=` as absent so it doesn't trigger the
569
+ * `parseExpression('')` throw → empty fallback → `name: T = ;` bug.
570
+ *
571
+ * `options.stripDefaults`: TS forbids parameter initializers in overload
572
+ * signatures — the implementation alone may carry defaults. Same flag as
573
+ * the sibling `parseParamList`.
574
+ */
575
+ export function parseParamListFromChildren(paramNodes, options) {
576
+ if (paramNodes.length === 0)
577
+ return '';
578
+ return paramNodes
579
+ .map((paramNode) => {
580
+ const pp = propsOf(paramNode);
581
+ // Slice 3c-extension #3: destructured params via `binding`/`element`
582
+ // children — the pattern (`{a, b}` / `[x, y]`) replaces the name in
583
+ // the LHS. Slice 3d shares the same children, so the same formatter
584
+ // serves both contexts. When a destructure pattern is present, `name=`
585
+ // is ignored (and the importer omits it).
586
+ const destructurePattern = formatBindingPatternFromChildren(paramNode);
587
+ const rawName = destructurePattern ?? emitIdentifier(pp.name, 'parameter', paramNode);
588
+ // Slice 3c-extension: TS-style variadic `...` prepended to name.
589
+ const variadic = pp.variadic === true || pp.variadic === 'true' ? '...' : '';
590
+ const pname = `${variadic}${rawName}`;
591
+ // Slice 3c-extension: TS-style optional `?` between name and type.
592
+ const optional = pp.optional === true || pp.optional === 'true' ? '?' : '';
593
+ const typeAnn = pp.type ? `: ${emitTypeAnnotation(pp.type, 'unknown', paramNode)}` : '';
594
+ if (options?.stripDefaults)
595
+ return `${pname}${optional}${typeAnn}`;
596
+ const rawValue = pp.value;
597
+ const rawDefault = pp.default;
598
+ const valuePresent = rawValue !== undefined && (rawValue !== '' || paramNode.__quotedProps?.includes('value') === true);
599
+ if (valuePresent) {
600
+ return `${pname}${optional}${typeAnn} = ${emitConstValue(paramNode, rawValue)}`;
601
+ }
602
+ if (rawDefault === undefined || rawDefault === '')
603
+ return `${pname}${optional}${typeAnn}`;
604
+ if (isExprObject(rawDefault))
605
+ return `${pname}${optional}${typeAnn} = ${rawDefault.code}`;
606
+ return `${pname}${optional}${typeAnn} = ${rawDefault}`;
607
+ })
608
+ .join(', ');
609
+ }
610
+ /**
611
+ * Slice 3c — unified TS parameter-list emitter for any callable IR node.
612
+ *
613
+ * Reads the node's `param` children first (canonical, ValueIR-routed). If
614
+ * none, falls back to the legacy `params="..."` string. If neither, returns
615
+ * the fallback (default empty).
616
+ *
617
+ * Children win when present. Mixed mode is intentionally unsupported — a
618
+ * signature is either fully-structured-children or fully-legacy-string.
619
+ * Producers (importer, migrate-class-body) emit children all-or-nothing
620
+ * per signature; consumers don't need to reconcile partial states.
621
+ */
622
+ export function emitParamList(node, options) {
623
+ const paramChildren = kids(node, 'param');
624
+ if (paramChildren.length > 0) {
625
+ return parseParamListFromChildren(paramChildren, options);
626
+ }
627
+ const params = p(node).params ?? '';
628
+ if (params)
629
+ return parseParamList(params, options);
630
+ return options?.fallback ?? '';
631
+ }
273
632
  //# sourceMappingURL=type-system.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-system.js","sourceRoot":"","sources":["../../src/codegen/type-system.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"type-system.js","sourceRoot":"","sources":["../../src/codegen/type-system.ts"],"names":[],"mappings":"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"}
@@ -19,12 +19,12 @@ export { generateError, generateFunction } from './codegen/functions.js';
19
19
  export { generateAction, generateActionRegistry, generateApply, generateAssume, generateAsync, generateAt, generateAvg, generateChunk, generateCollect, generateCompact, generateConcat, generateCountBy, generateDerive, generateDrop, generateEvery, generateExpect, generateFilter, generateFind, generateFindIndex, generateFindLast, generateFindLastIndex, generateFlat, generateFlatMap, generateFmt, generateForEach, generateGroupBy, generateGuard, generateIncludes, generateIndexBy, generateIndexOf, generateIntersect, generateInvariant, generateJoin, generateLastIndexOf, generateMap, generateMax, generateMaxBy, generateMin, generateMinBy, generatePartition, generatePattern, generatePluck, generateRange, generateRecover, generateReduce, generateResolve, generateReverse, generateSlice, generateSome, generateSort, generateSum, generateSumBy, generateTake, generateTransform, generateTry, generateUnique, generateUniqueBy, generateZip, } from './codegen/ground-layer.js';
20
20
  export { capitalize, cssPropertyName, dedent, emitLowConfidenceTodo, emitReasonAnnotations, exportPrefix, getChildren, getFirstChild, getProps, getPseudoStyles, getStyles, getThemeRefs, handlerCode, parseParamList, sourceComment, } from './codegen/helpers.js';
21
21
  export { generateMachine, generateMachineReducer } from './codegen/machines.js';
22
- export { generateImport } from './codegen/modules.js';
22
+ export { generateImport, generateUse } from './codegen/modules.js';
23
23
  export { emitRender, generateScreen } from './codegen/screens.js';
24
24
  export type { SemanticTypeMapping } from './codegen/semantic-types.js';
25
25
  export { mapSemanticType, SEMANTIC_TYPE_MAP } from './codegen/semantic-types.js';
26
26
  export { generateTest } from './codegen/test-gen.js';
27
- export { generateClass, generateConst, generateInterface, generateService, generateType, generateUnion, } from './codegen/type-system.js';
27
+ export { emitConstValue, emitParamList, generateClass, generateConst, generateDestructure, generateEnum, generateInterface, generateMapLit, generateService, generateSetLit, generateType, generateUnion, parseParamListFromChildren, } from './codegen/type-system.js';
28
28
  /** Register an evolved generator (called at startup). */
29
29
  export declare function registerEvolvedGenerator(keyword: string, fn: (node: IRNode) => string[]): void;
30
30
  /** Register a target-specific evolved generator (called at startup). */