@kernlang/core 3.3.8 → 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 (89) 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/emitters.d.ts +8 -0
  8. package/dist/codegen/emitters.js +10 -0
  9. package/dist/codegen/emitters.js.map +1 -1
  10. package/dist/codegen/events.js +1 -1
  11. package/dist/codegen/events.js.map +1 -1
  12. package/dist/codegen/functions.js +29 -5
  13. package/dist/codegen/functions.js.map +1 -1
  14. package/dist/codegen/ground-layer.d.ts +1 -0
  15. package/dist/codegen/ground-layer.js +88 -10
  16. package/dist/codegen/ground-layer.js.map +1 -1
  17. package/dist/codegen/helpers.d.ts +3 -1
  18. package/dist/codegen/helpers.js +5 -1
  19. package/dist/codegen/helpers.js.map +1 -1
  20. package/dist/codegen/machines.js +4 -3
  21. package/dist/codegen/machines.js.map +1 -1
  22. package/dist/codegen/modules.d.ts +1 -0
  23. package/dist/codegen/modules.js +52 -1
  24. package/dist/codegen/modules.js.map +1 -1
  25. package/dist/codegen/screens.js +77 -13
  26. package/dist/codegen/screens.js.map +1 -1
  27. package/dist/codegen/stdlib-preamble.d.ts +39 -0
  28. package/dist/codegen/stdlib-preamble.js +213 -0
  29. package/dist/codegen/stdlib-preamble.js.map +1 -0
  30. package/dist/codegen/type-system.d.ts +113 -1
  31. package/dist/codegen/type-system.js +389 -30
  32. package/dist/codegen/type-system.js.map +1 -1
  33. package/dist/codegen-core.d.ts +3 -3
  34. package/dist/codegen-core.js +79 -16
  35. package/dist/codegen-core.js.map +1 -1
  36. package/dist/codegen-expression.d.ts +3 -0
  37. package/dist/codegen-expression.js +93 -0
  38. package/dist/codegen-expression.js.map +1 -0
  39. package/dist/concepts.d.ts +96 -0
  40. package/dist/concepts.js.map +1 -1
  41. package/dist/config.d.ts +19 -0
  42. package/dist/config.js +15 -0
  43. package/dist/config.js.map +1 -1
  44. package/dist/decompiler.js +356 -4
  45. package/dist/decompiler.js.map +1 -1
  46. package/dist/importer.d.ts +1 -0
  47. package/dist/importer.js +574 -34
  48. package/dist/importer.js.map +1 -1
  49. package/dist/index.d.ts +6 -3
  50. package/dist/index.js +9 -3
  51. package/dist/index.js.map +1 -1
  52. package/dist/node-props.d.ts +188 -1
  53. package/dist/node-props.js.map +1 -1
  54. package/dist/parser-core.js +30 -5
  55. package/dist/parser-core.js.map +1 -1
  56. package/dist/parser-diagnostics.js +5 -0
  57. package/dist/parser-diagnostics.js.map +1 -1
  58. package/dist/parser-expression.d.ts +17 -0
  59. package/dist/parser-expression.js +498 -0
  60. package/dist/parser-expression.js.map +1 -0
  61. package/dist/parser-tokenizer.d.ts +5 -3
  62. package/dist/parser-tokenizer.js +97 -16
  63. package/dist/parser-tokenizer.js.map +1 -1
  64. package/dist/parser-validate-effects.d.ts +21 -0
  65. package/dist/parser-validate-effects.js +188 -0
  66. package/dist/parser-validate-effects.js.map +1 -0
  67. package/dist/parser-validate-expressions.d.ts +6 -0
  68. package/dist/parser-validate-expressions.js +41 -0
  69. package/dist/parser-validate-expressions.js.map +1 -0
  70. package/dist/parser-validate-union-kind.d.ts +24 -0
  71. package/dist/parser-validate-union-kind.js +97 -0
  72. package/dist/parser-validate-union-kind.js.map +1 -0
  73. package/dist/scanner.js +12 -9
  74. package/dist/scanner.js.map +1 -1
  75. package/dist/schema.d.ts +1 -1
  76. package/dist/schema.js +403 -37
  77. package/dist/schema.js.map +1 -1
  78. package/dist/semantic-validator.js +73 -8
  79. package/dist/semantic-validator.js.map +1 -1
  80. package/dist/spec.d.ts +5 -2
  81. package/dist/spec.js +27 -2
  82. package/dist/spec.js.map +1 -1
  83. package/dist/types.d.ts +7 -1
  84. package/dist/types.js +7 -1
  85. package/dist/types.js.map +1 -1
  86. package/dist/value-ir.d.ts +69 -0
  87. package/dist/value-ir.js +20 -0
  88. package/dist/value-ir.js.map +1 -0
  89. package/package.json +13 -1
@@ -6,7 +6,8 @@
6
6
  */
7
7
  import { propsOf } from '../node-props.js';
8
8
  import { emitIdentifier, emitTemplateSafe } from './emitters.js';
9
- import { exportPrefix, getChildren, getProps, handlerCode, parseParamList } from './helpers.js';
9
+ import { exportPrefix, getChildren, getProps, handlerCode } from './helpers.js';
10
+ import { emitParamList } from './type-system.js';
10
11
  const _p = getProps;
11
12
  const kids = getChildren;
12
13
  // ── State Machine ────────────────────────────────────────────────────────
@@ -61,7 +62,6 @@ export function generateMachine(node) {
61
62
  const tname = emitIdentifier(tp.name, 'transition', t);
62
63
  const from = tp.from || '';
63
64
  const to = tp.to || '';
64
- const paramsStr = tp.params;
65
65
  const rawGuard = tp.guard;
66
66
  const guardExpr = rawGuard && typeof rawGuard === 'object' && rawGuard.__expr
67
67
  ? rawGuard.code
@@ -72,7 +72,8 @@ export function generateMachine(node) {
72
72
  const code = handlerCode(t);
73
73
  // Parse params the same way `fn` / `action` do — routes through the
74
74
  // shared validator so malformed param lists fail at codegen.
75
- const paramList = paramsStr ? parseParamList(paramsStr) : '';
75
+ // Slice 3c: structured `param` child nodes win over legacy `params="..."`.
76
+ const paramList = emitParamList(t);
76
77
  const signatureParams = paramList ? `entity: T, ${paramList}` : 'entity: T';
77
78
  lines.push(`/** ${from} → ${to} */`);
78
79
  lines.push(`${exp}function ${fnName}<T extends { state: ${stateType} }>(${signatureParams}): T {`);
@@ -1 +1 @@
1
- {"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/codegen/machines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/codegen/machines.ts"],"names":[],"mappings":"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"}
@@ -8,3 +8,4 @@
8
8
  */
9
9
  import type { IRNode } from '../types.js';
10
10
  export declare function generateImport(node: IRNode): string[];
11
+ export declare function generateUse(node: IRNode): string[];
@@ -8,8 +8,9 @@
8
8
  */
9
9
  import { propsOf } from '../node-props.js';
10
10
  import { emitIdentifier, emitImportSpecifier } from './emitters.js';
11
- import { getProps } from './helpers.js';
11
+ import { getChildren, getProps } from './helpers.js';
12
12
  const _p = getProps;
13
+ const kids = getChildren;
13
14
  // ── Import ──────────────────────────────────────────────────────────────
14
15
  export function generateImport(node) {
15
16
  const props = propsOf(node);
@@ -40,4 +41,54 @@ export function generateImport(node) {
40
41
  // Side-effect import
41
42
  return [`import '${safePath}';`];
42
43
  }
44
+ // ── Use (cross-`.kern` symbol resolution) ───────────────────────────────
45
+ /** Translate a `.kern` source path to its compiled `.js` output path. */
46
+ function kernPathToJs(path) {
47
+ return path.endsWith('.kern') ? `${path.slice(0, -'.kern'.length)}.js` : path;
48
+ }
49
+ export function generateUse(node) {
50
+ const props = propsOf(node);
51
+ const path = props.path;
52
+ if (!path)
53
+ return [];
54
+ const safePath = emitImportSpecifier(kernPathToJs(path), node);
55
+ const fromChildren = kids(node, 'from');
56
+ if (fromChildren.length === 0) {
57
+ // Side-effect-only `use path="..."` is unusual but legal — emits a
58
+ // bare import for parity with the import node's side-effect form.
59
+ return [`import '${safePath}';`];
60
+ }
61
+ // Every `from` child creates a local binding. `export=true` is an
62
+ // ADDITIONAL re-export marker — it does not replace the local import.
63
+ // (TS `export { x } from '...'` is a forwarding re-export and does NOT
64
+ // create a local binding, so the two lines are independent: an import
65
+ // line for the local binding, plus an export-from line for forwarding.)
66
+ const importBindings = [];
67
+ const reExportBindings = [];
68
+ for (const child of fromChildren) {
69
+ const cp = propsOf(child);
70
+ const name = cp.name;
71
+ if (!name)
72
+ continue;
73
+ const safeName = emitIdentifier(name, 'imported', child);
74
+ const aliasRaw = cp.as;
75
+ const safeAlias = aliasRaw ? emitIdentifier(aliasRaw, 'alias', child) : '';
76
+ const isReExport = cp.export === 'true' || cp.export === true;
77
+ const binding = safeAlias ? `${safeName} as ${safeAlias}` : safeName;
78
+ importBindings.push(binding);
79
+ if (isReExport) {
80
+ // Mirror the same `name as alias` form so the re-exported name matches
81
+ // what consumers will see (`bar`, not `foo`) when an alias is set.
82
+ reExportBindings.push(binding);
83
+ }
84
+ }
85
+ const lines = [];
86
+ if (importBindings.length > 0) {
87
+ lines.push(`import { ${importBindings.join(', ')} } from '${safePath}';`);
88
+ }
89
+ if (reExportBindings.length > 0) {
90
+ lines.push(`export { ${reExportBindings.join(', ')} } from '${safePath}';`);
91
+ }
92
+ return lines;
93
+ }
43
94
  //# sourceMappingURL=modules.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/codegen/modules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,EAAE,GAAG,QAAQ,CAAC;AAEpB,2EAA2E;AAE3E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,OAAO,CAAW,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IAElE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,KAAK;aACF,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC;aACpD,IAAI,CAAC,IAAI,CAAC;QACf,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,UAAU,MAAM,GAAG,WAAW,OAAO,SAAS,YAAY,QAAQ,IAAI,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,UAAU,MAAM,GAAG,WAAW,UAAU,QAAQ,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,UAAU,MAAM,KAAK,SAAS,YAAY,QAAQ,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,qBAAqB;IACrB,OAAO,CAAC,WAAW,QAAQ,IAAI,CAAC,CAAC;AACnC,CAAC"}
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/codegen/modules.ts"],"names":[],"mappings":"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"}
@@ -26,8 +26,9 @@
26
26
  * }
27
27
  */
28
28
  import { KernCodegenError } from '../errors.js';
29
- import { emitIdentifier, emitTypeAnnotation } from './emitters.js';
29
+ import { emitFmtTemplate, emitIdentifier, emitTypeAnnotation } from './emitters.js';
30
30
  import { exportPrefix, getChildren, getFirstChild, getProps } from './helpers.js';
31
+ import { emitConstValue } from './type-system.js';
31
32
  function propsOf(node) {
32
33
  return node.props || {};
33
34
  }
@@ -215,7 +216,11 @@ export function emitRender(renderNode, lines) {
215
216
  lines.push(` return null;`);
216
217
  return;
217
218
  }
218
- const hasJsxChild = getChildren(renderNode).some((c) => RENDER_JSX_CHILD_TYPES.has(c.type));
219
+ // Any `fmt` child triggers composed mode so the inline/non-inline
220
+ // distinction is resolved at piece-collection time. A binding-form `fmt`
221
+ // here is invalid — `collectComposedPieces` throws with a clear message
222
+ // instead of sliding through to the raw-handler path where it'd vanish.
223
+ const hasJsxChild = getChildren(renderNode).some((c) => RENDER_JSX_CHILD_TYPES.has(c.type) || c.type === 'fmt');
219
224
  const hasWrapper = !!propsOf(renderNode).wrapper;
220
225
  // A `local` child alone implies the author wants composed mode even if no
221
226
  // each/conditional is present — the locals need to hoist as statements and
@@ -294,7 +299,10 @@ function emitRenderComposed(renderNode, lines) {
294
299
  *
295
300
  * Skips `local` and metadata children — locals hoist at render scope (handled
296
301
  * before the return by `emitRenderComposed`), and metadata doesn't produce
297
- * JSX. `group` children recurse through `generateGroupJSX`.
302
+ * JSX. `group` children recurse through `generateGroupJSX`. A `fmt` child
303
+ * with no `name` and no `return=true` is the inline-JSX form: it emits as
304
+ * `{\`${template}\`}` and stands in for a handler-wrapped interpolated
305
+ * text node.
298
306
  */
299
307
  function collectComposedPieces(parent) {
300
308
  const pieces = [];
@@ -308,6 +316,16 @@ function collectComposedPieces(parent) {
308
316
  else if (child.type === 'group') {
309
317
  pieces.push(generateGroupJSX(child));
310
318
  }
319
+ else if (child.type === 'fmt') {
320
+ if (!isFmtInlineForm(child)) {
321
+ // Binding or return form inside composed-JSX walk has no consumer —
322
+ // binding-form `fmt name=X` emits `const X = …;` which is a
323
+ // statement, and return-form emits `return …;` which must live in
324
+ // a `fn` body. Both forms would be silently dropped here otherwise.
325
+ throw new KernCodegenError('`fmt` child of `render`/`group` must be the inline-JSX form (no `name`, no `return=true`). Move binding-form `fmt name=X` to `local`/screen scope, or use a nameless `fmt template="…"` here.', child);
326
+ }
327
+ pieces.push([generateFmtInline(child)]);
328
+ }
311
329
  else if (child.type === 'handler') {
312
330
  // In composed mode the handler contributes a JSX fragment, not a
313
331
  // `return`-wrapped expression. Strip a leading `return (...);` so authors
@@ -315,10 +333,35 @@ function collectComposedPieces(parent) {
315
333
  const raw = propsOf(child).code || '';
316
334
  pieces.push(stripReturnWrapper(raw).split('\n'));
317
335
  }
318
- // local + metadata children skipped here.
336
+ // local + metadata children skipped here. A `fmt` child with `name=` or
337
+ // `return=true` also falls through here — those are statement-form and
338
+ // get dispatched by the core codegen when they appear at the right scope,
339
+ // not inside a composed-JSX walk.
319
340
  }
320
341
  return pieces;
321
342
  }
343
+ /**
344
+ * True when a `fmt` node is in its inline-JSX form — no `name`, no
345
+ * `return=true`. That form only makes sense as a direct child of
346
+ * `render`/`group` where it emits `{\`${template}\`}` as a JSX expression.
347
+ */
348
+ function isFmtInlineForm(node) {
349
+ const p = propsOf(node);
350
+ const returnMode = p.return === true || p.return === 'true';
351
+ return !returnMode && p.name === undefined;
352
+ }
353
+ /**
354
+ * Emit an inline-JSX `fmt` as a single line: `{\`${template}\`}`. Reuses the
355
+ * same backtick-escape rule as the statement-form `generateFmt` so a raw
356
+ * backtick in the template can't close the literal.
357
+ */
358
+ function generateFmtInline(node) {
359
+ const template = propsOf(node).template;
360
+ if (template === undefined || template === null) {
361
+ throw new KernCodegenError("fmt node requires a 'template' prop", node);
362
+ }
363
+ return `{\`${emitFmtTemplate(String(template))}\`}`;
364
+ }
322
365
  /**
323
366
  * Emit a `group wrapper="<Tag attrs>"` node as nested JSX inside a composed
324
367
  * render. Unlike `render`, `group` has no locals to hoist — its only job is
@@ -553,23 +596,44 @@ function generateConditionalJSX(node) {
553
596
  return lines;
554
597
  }
555
598
  /**
556
- * Render a single `let` node as a `const name[: type] = expr;` line. Name and
599
+ * Render a single `let` node as a `const name[: type] = <rhs>;` line. Name and
557
600
  * type are routed through the schema emitters so invalid identifiers or type
558
- * annotations raise KernCodegenError instead of producing broken TSX like
559
- * `const is-selected = …;`. The expression is raw by design (rawExpr).
601
+ * annotations raise KernCodegenError instead of producing broken TSX.
602
+ *
603
+ * RHS is sourced in this priority:
604
+ * 1. `value=` (slice 3a, native ValueIR-canonicalised — JSON-quoted for
605
+ * quoted-string literals, parsed+re-emitted for bare expressions, raw
606
+ * for `{{...}}` ExprObject escape hatch). Mirrors `const.value`.
607
+ * 2. `expr=` (raw passthrough — kept for back-compat).
608
+ * One of the two must be present.
560
609
  */
561
610
  function renderLetBinding(node) {
562
611
  const lp = propsOf(node);
563
612
  const lname = emitIdentifier(lp.name, 'binding', node);
613
+ let rhs;
614
+ const rawValue = lp.value;
564
615
  const rawExpr = lp.expr;
565
- const expr = rawExpr && typeof rawExpr === 'object' && rawExpr.__expr
566
- ? rawExpr.code
567
- : rawExpr || '';
568
- if (!expr) {
569
- throw new KernCodegenError("let node requires an 'expr' prop", node);
616
+ // `value=""` (quoted empty string, __quotedProps tracks 'value') must be
617
+ // treated as a legal explicit string literal — emitConstValue routes it
618
+ // through JSON.stringify and emits `const x = "";`. But an unquoted-empty
619
+ // `value=` (no __quotedProps) is NOT a literal; routing it through
620
+ // emitConstValue throws inside parseExpression('') and falls back to '',
621
+ // producing invalid TS `const x: T = ;`. Mirrors slice 3b's gate.
622
+ const valuePresent = rawValue !== undefined && (rawValue !== '' || node.__quotedProps?.includes('value') === true);
623
+ if (valuePresent) {
624
+ rhs = emitConstValue(node, rawValue);
625
+ }
626
+ else if (rawExpr !== undefined && rawExpr !== '') {
627
+ rhs =
628
+ typeof rawExpr === 'object' && rawExpr.__expr
629
+ ? rawExpr.code
630
+ : rawExpr;
631
+ }
632
+ else {
633
+ throw new KernCodegenError("let node requires a 'value' or 'expr' prop", node);
570
634
  }
571
635
  const t = lp.type;
572
636
  const typeAnn = t ? `: ${emitTypeAnnotation(t, 'unknown', node)}` : '';
573
- return `const ${lname}${typeAnn} = ${expr};`;
637
+ return `const ${lname}${typeAnn} = ${rhs};`;
574
638
  }
575
639
  //# sourceMappingURL=screens.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/codegen/screens.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"screens.js","sourceRoot":"","sources":["../../src/codegen/screens.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ /** Slice 4 layer 2 — stdlib preamble for Result / Option compact form.
2
+ *
3
+ * Spec: docs/language/result-option-spec.md.
4
+ *
5
+ * When a kern module references the reserved type names `Result<T,E>` or
6
+ * `Option<T>` in any type-annotation position, the generated TS module needs
7
+ * the corresponding type alias in scope. This module provides:
8
+ *
9
+ * 1. `detectKernStdlibUsage(root)` — walks the IR and flags whether each
10
+ * reserved name appears in any string prop value (typeAnnotation, params,
11
+ * generics, etc.). Skips the synthesised type alias itself if already
12
+ * present at the root, so a re-emission stays idempotent.
13
+ *
14
+ * 2. `kernStdlibPreamble(usage)` — returns the TS preamble lines to prepend
15
+ * to the generated module. Empty when no usage detected.
16
+ *
17
+ * Scope: TS-family targets only in this slice. The lib transpiler in
18
+ * packages/cli/src/shared.ts is the first integrator; web / native /
19
+ * nextjs / express / mcp / terminal pick this up in follow-up commits with
20
+ * the same call pattern.
21
+ *
22
+ * NOT in scope here:
23
+ * - Helper functions (`ok`, `err`, `some`, `none`, `map`, …) — usage
24
+ * detection inside handler bodies is name-collision risky and is its
25
+ * own design (deferred to a follow-up slice).
26
+ * - Python / Vue codegen — Python's `generateType` does not yet handle
27
+ * generic type aliases, so injecting `Result<T,E>` would regress.
28
+ * The explicit `union name=X kind=result …` form already works on
29
+ * every target. */
30
+ import type { IRNode } from '../types.js';
31
+ export interface KernStdlibUsage {
32
+ /** Module references `Result<…>` somewhere in a type annotation. */
33
+ result: boolean;
34
+ /** Module references `Option<…>` somewhere in a type annotation. */
35
+ option: boolean;
36
+ }
37
+ export declare function detectKernStdlibUsage(root: IRNode): KernStdlibUsage;
38
+ export declare function kernStdlibPreamble(usage: KernStdlibUsage): string[];
39
+ export declare function injectKernStdlibPreamble(code: string, preamble: string[]): string;
@@ -0,0 +1,213 @@
1
+ /** Slice 4 layer 2 — stdlib preamble for Result / Option compact form.
2
+ *
3
+ * Spec: docs/language/result-option-spec.md.
4
+ *
5
+ * When a kern module references the reserved type names `Result<T,E>` or
6
+ * `Option<T>` in any type-annotation position, the generated TS module needs
7
+ * the corresponding type alias in scope. This module provides:
8
+ *
9
+ * 1. `detectKernStdlibUsage(root)` — walks the IR and flags whether each
10
+ * reserved name appears in any string prop value (typeAnnotation, params,
11
+ * generics, etc.). Skips the synthesised type alias itself if already
12
+ * present at the root, so a re-emission stays idempotent.
13
+ *
14
+ * 2. `kernStdlibPreamble(usage)` — returns the TS preamble lines to prepend
15
+ * to the generated module. Empty when no usage detected.
16
+ *
17
+ * Scope: TS-family targets only in this slice. The lib transpiler in
18
+ * packages/cli/src/shared.ts is the first integrator; web / native /
19
+ * nextjs / express / mcp / terminal pick this up in follow-up commits with
20
+ * the same call pattern.
21
+ *
22
+ * NOT in scope here:
23
+ * - Helper functions (`ok`, `err`, `some`, `none`, `map`, …) — usage
24
+ * detection inside handler bodies is name-collision risky and is its
25
+ * own design (deferred to a follow-up slice).
26
+ * - Python / Vue codegen — Python's `generateType` does not yet handle
27
+ * generic type aliases, so injecting `Result<T,E>` would regress.
28
+ * The explicit `union name=X kind=result …` form already works on
29
+ * every target. */
30
+ /** Regex anchored on word boundary + opening angle so a user identifier
31
+ * like `Resulting` or `Options` does NOT trip the detector. The compact
32
+ * form is always parameterised, so requiring `<` after the name is the
33
+ * load-bearing safety check. */
34
+ const RESULT_REGEX = /\bResult\s*</;
35
+ const OPTION_REGEX = /\bOption\s*</;
36
+ function scanString(s, usage) {
37
+ if (!usage.result && RESULT_REGEX.test(s))
38
+ usage.result = true;
39
+ if (!usage.option && OPTION_REGEX.test(s))
40
+ usage.option = true;
41
+ }
42
+ function scanProps(props, usage) {
43
+ if (!props)
44
+ return;
45
+ for (const value of Object.values(props)) {
46
+ if (typeof value === 'string')
47
+ scanString(value, usage);
48
+ // ExprObject `{ __expr: true, code: '…' }` and other shapes are ignored
49
+ // — types never carry expression values, and scanning code would risk
50
+ // matching `Result<` / `Option<` inside string literals or comments
51
+ // (the same false-positive class slice 6's effects walker handles by
52
+ // stripping comments and strings — re-applied here would be overkill
53
+ // for type-name detection).
54
+ }
55
+ }
56
+ export function detectKernStdlibUsage(root) {
57
+ const usage = { result: false, option: false };
58
+ function walk(node) {
59
+ scanProps(node.props, usage);
60
+ if (usage.result && usage.option)
61
+ return; // both flagged — short-circuit
62
+ if (node.children) {
63
+ for (const child of node.children) {
64
+ walk(child);
65
+ if (usage.result && usage.option)
66
+ return;
67
+ }
68
+ }
69
+ }
70
+ walk(root);
71
+ return usage;
72
+ }
73
+ /** Preamble lines for the TS-family targets. Inlined into each generated
74
+ * module — duplication across modules is fine (TS allows identical type
75
+ * aliases in separate scopes). When a vendored runtime file is added in a
76
+ * later slice this becomes an `import …` instead.
77
+ *
78
+ * Layer 3 emits the helper companion objects alongside each type. The
79
+ * spec asks for "pure helper functions exported from a vendored module";
80
+ * we ship them as a frozen `const Result = { ok, err, … }` companion to
81
+ * the type alias instead. The companion-object pattern lets TS hold a
82
+ * type AND a value of the same name in scope (chosen unanimously by the
83
+ * Codex/Gemini synthesis brainstorm — see commit message). User calls
84
+ * look like `Result.ok(value)` / `Option.map(f, o)`, eliminating the name
85
+ * collisions a bare `function map(...)` would cause with array methods
86
+ * and user code.
87
+ *
88
+ * Slice 7's `?` / `!` propagation operators do NOT depend on these
89
+ * helpers — they desugar directly against the discriminant
90
+ * (`if (r.kind === 'err') return r;`), so the helper API can evolve
91
+ * independently. */
92
+ const RESULT_HELPERS = [
93
+ 'const Result = Object.freeze({',
94
+ ' ok<T>(value: T): Result<T, never> { return { kind: "ok", value }; },',
95
+ ' err<E>(error: E): Result<never, E> { return { kind: "err", error }; },',
96
+ ' isOk<T, E>(r: Result<T, E>): r is { kind: "ok"; value: T } { return r.kind === "ok"; },',
97
+ ' isErr<T, E>(r: Result<T, E>): r is { kind: "err"; error: E } { return r.kind === "err"; },',
98
+ ' map<T, E, U>(f: (v: T) => U, r: Result<T, E>): Result<U, E> { return r.kind === "ok" ? { kind: "ok", value: f(r.value) } : r; },',
99
+ ' mapErr<T, E, F>(f: (e: E) => F, r: Result<T, E>): Result<T, F> { return r.kind === "err" ? { kind: "err", error: f(r.error) } : r; },',
100
+ ' andThen<T, E, U>(f: (v: T) => Result<U, E>, r: Result<T, E>): Result<U, E> { return r.kind === "ok" ? f(r.value) : r; },',
101
+ ' unwrapOr<T, E>(fallback: T, r: Result<T, E>): T { return r.kind === "ok" ? r.value : fallback; },',
102
+ '});',
103
+ ];
104
+ const OPTION_HELPERS = [
105
+ 'const Option = Object.freeze({',
106
+ ' some<T>(value: T): Option<T> { return { kind: "some", value }; },',
107
+ ' none<T = never>(): Option<T> { return { kind: "none" }; },',
108
+ ' isSome<T>(o: Option<T>): o is { kind: "some"; value: T } { return o.kind === "some"; },',
109
+ ' isNone<T>(o: Option<T>): o is { kind: "none" } { return o.kind === "none"; },',
110
+ ' map<T, U>(f: (v: T) => U, o: Option<T>): Option<U> { return o.kind === "some" ? { kind: "some", value: f(o.value) } : o; },',
111
+ ' andThen<T, U>(f: (v: T) => Option<U>, o: Option<T>): Option<U> { return o.kind === "some" ? f(o.value) : o; },',
112
+ ' unwrapOr<T>(fallback: T, o: Option<T>): T { return o.kind === "some" ? o.value : fallback; },',
113
+ '});',
114
+ ];
115
+ export function kernStdlibPreamble(usage) {
116
+ if (!usage.result && !usage.option)
117
+ return [];
118
+ const lines = ['// ── KERN stdlib (auto-emitted) ──────────────────────────────────────'];
119
+ if (usage.result) {
120
+ lines.push("type Result<T, E> = { kind: 'ok'; value: T } | { kind: 'err'; error: E };");
121
+ lines.push(...RESULT_HELPERS);
122
+ }
123
+ if (usage.option) {
124
+ lines.push("type Option<T> = { kind: 'some'; value: T } | { kind: 'none' };");
125
+ lines.push(...OPTION_HELPERS);
126
+ }
127
+ lines.push('');
128
+ return lines;
129
+ }
130
+ /** Smart-insert the preamble into a finished TS module string. Skips the
131
+ * leading prologue (hashbang, directives, single-line and multi-line
132
+ * comments, blank lines) so the preamble lands AFTER required-first lines
133
+ * but BEFORE imports / declarations.
134
+ *
135
+ * Why not just prepend? React/Next.js parse `'use client';` only when it's
136
+ * the literal first non-comment statement in the file. Putting `type
137
+ * Result<…>` ahead of it silently drops the directive and the bundler
138
+ * treats the module as a server component — invisible breakage. Same for
139
+ * hashbangs in `target=cli` and Ink entry artifacts: `#!/usr/bin/env node`
140
+ * must stay on line 1 or the binary stops being executable.
141
+ *
142
+ * Multi-line block comments need careful skipping — the prior naive
143
+ * `startsWith('/*')` check broke after the opening line and injected the
144
+ * preamble inside the comment, corrupting JSDoc-style headers. We track
145
+ * the open block and only stop at the next real statement.
146
+ *
147
+ * Caveats this layer does NOT handle: SFC formats (.vue) where the script
148
+ * lives inside a `<script>` block — those need format-aware injection.
149
+ * The dispatcher excludes them by file-extension filter; full vue/nuxt
150
+ * support is a follow-up slice. */
151
+ // Tolerates an optional trailing `// …` or `/* … */` after the directive
152
+ // so that hand-edited modules don't silently lose the preamble's directive
153
+ // skip. (Gemini review fix.)
154
+ const DIRECTIVE_RE = /^\s*['"]use [a-z]+['"];?\s*(?:\/\/.*|\/\*[\s\S]*?\*\/)?\s*$/;
155
+ export function injectKernStdlibPreamble(code, preamble) {
156
+ if (preamble.length === 0)
157
+ return code;
158
+ if (code.length === 0)
159
+ return preamble.join('\n');
160
+ const lines = code.split('\n');
161
+ // Find the index of the first real statement, skipping past:
162
+ // - hashbang on line 1
163
+ // - directives (`'use client';` etc.) — possibly multiple
164
+ // - blank lines
165
+ // - line comments (`// …`)
166
+ // - block comments (`/* … */`) including multi-line JSDoc
167
+ // Anything else (`import …`, `export …`, `type …`, `function …`, …)
168
+ // ends the prologue.
169
+ let i = 0;
170
+ let inBlockComment = false;
171
+ while (i < lines.length) {
172
+ const line = lines[i];
173
+ const trimmed = line.trim();
174
+ // Inside an open /* … */: keep skipping until the closing `*/` line.
175
+ if (inBlockComment) {
176
+ if (trimmed.includes('*/'))
177
+ inBlockComment = false;
178
+ i++;
179
+ continue;
180
+ }
181
+ if (trimmed === '') {
182
+ i++;
183
+ continue;
184
+ }
185
+ // Hashbang only legal on line 1 (Codex review fix). Always skip when found.
186
+ if (i === 0 && trimmed.startsWith('#!')) {
187
+ i++;
188
+ continue;
189
+ }
190
+ // Single-line comment.
191
+ if (trimmed.startsWith('//')) {
192
+ i++;
193
+ continue;
194
+ }
195
+ // Block comment — may close on same line or span multiple lines.
196
+ if (trimmed.startsWith('/*')) {
197
+ if (!trimmed.includes('*/'))
198
+ inBlockComment = true;
199
+ i++;
200
+ continue;
201
+ }
202
+ if (DIRECTIVE_RE.test(line)) {
203
+ i++;
204
+ continue;
205
+ }
206
+ break;
207
+ }
208
+ if (i === 0) {
209
+ return [...preamble, ...lines].join('\n');
210
+ }
211
+ return [...lines.slice(0, i), ...preamble, ...lines.slice(i)].join('\n');
212
+ }
213
+ //# sourceMappingURL=stdlib-preamble.js.map