@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
@@ -28,6 +28,7 @@
28
28
  import { KernCodegenError } from '../errors.js';
29
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
  }
@@ -595,23 +596,44 @@ function generateConditionalJSX(node) {
595
596
  return lines;
596
597
  }
597
598
  /**
598
- * 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
599
600
  * type are routed through the schema emitters so invalid identifiers or type
600
- * annotations raise KernCodegenError instead of producing broken TSX like
601
- * `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.
602
609
  */
603
610
  function renderLetBinding(node) {
604
611
  const lp = propsOf(node);
605
612
  const lname = emitIdentifier(lp.name, 'binding', node);
613
+ let rhs;
614
+ const rawValue = lp.value;
606
615
  const rawExpr = lp.expr;
607
- const expr = rawExpr && typeof rawExpr === 'object' && rawExpr.__expr
608
- ? rawExpr.code
609
- : rawExpr || '';
610
- if (!expr) {
611
- 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);
612
634
  }
613
635
  const t = lp.type;
614
636
  const typeAnn = t ? `: ${emitTypeAnnotation(t, 'unknown', node)}` : '';
615
- return `const ${lname}${typeAnn} = ${expr};`;
637
+ return `const ${lname}${typeAnn} = ${rhs};`;
616
638
  }
617
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stdlib-preamble.js","sourceRoot":"","sources":["../../src/codegen/stdlib-preamble.ts"],"names":[],"mappings":"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"}
@@ -3,10 +3,122 @@
3
3
  *
4
4
  * Extracted from codegen-core.ts for modular codegen architecture.
5
5
  */
6
- import type { IRNode } from '../types.js';
6
+ import { type IRNode } from '../types.js';
7
7
  export declare function generateType(node: IRNode): string[];
8
8
  export declare function generateInterface(node: IRNode): string[];
9
9
  export declare function generateUnion(node: IRNode): string[];
10
10
  export declare function generateClass(node: IRNode): string[];
11
11
  export declare function generateService(node: IRNode): string[];
12
+ export declare function generateEnum(node: IRNode): string[];
12
13
  export declare function generateConst(node: IRNode): string[];
14
+ /**
15
+ * Slice 3d — emit a TS destructuring statement from a `destructure` node.
16
+ *
17
+ * Two paths:
18
+ * (1) `expr={{...}}` escape hatch — emit the carried code verbatim. Used
19
+ * by the importer for complex patterns (rest `...`, defaults `=v`,
20
+ * nested `{a:{b}}`, computed keys) where structured children would
21
+ * lose information.
22
+ * (2) Structured children — `binding` for object patterns (with optional
23
+ * `key=` for renames) or `element` for array patterns (with `index=`
24
+ * for ordered position). Codegen detects which child kind dominates
25
+ * and emits `{a, b: alias} = src` or `[a, b, , c] = src` (holes from
26
+ * index gaps).
27
+ *
28
+ * `kind` defaults to `const` when omitted. `type` (optional) flows through
29
+ * `emitTypeAnnotation` and is appended after the LHS pattern.
30
+ */
31
+ export declare function generateDestructure(node: IRNode): string[];
32
+ /**
33
+ * Slice 3c-extension #3 / shared with slice 3d destructure: format the LHS
34
+ * pattern (`{a, b: alias}` or `[x, , y]`) from a node's `binding` (object)
35
+ * or `element` (array) children. Returns null when neither is present (used
36
+ * by the destructure node validator); throws when the node mixes both.
37
+ *
38
+ * Used by:
39
+ * - `generateDestructure` (slice 3d) — full statement: `const {a,b} = src;`
40
+ * - `parseParamListFromChildren` (slice 3c-extension #3) — pattern-only LHS
41
+ * of a destructured fn parameter: `{a, b}: Point` or `[x, y]`.
42
+ */
43
+ export declare function formatBindingPatternFromChildren(node: IRNode): string | null;
44
+ /**
45
+ * Slice 3e — emit a TS Map literal from a `mapLit` node.
46
+ *
47
+ * mapLit name=cache type="Map<string, number>"
48
+ * mapEntry key="foo" value=1
49
+ * mapEntry key="bar" value=2
50
+ *
51
+ * → `const cache: Map<string, number> = new Map([['foo', 1], ['bar', 2]]);`
52
+ *
53
+ * `expr={{...}}` escape hatch carries a raw TS statement verbatim — used
54
+ * by the importer fallback when a Map literal contains shapes the
55
+ * structured emitter can't represent (computed keys, conditional entries,
56
+ * spread). Mirrors slice 3d destructure escape-hatch policy.
57
+ */
58
+ export declare function generateMapLit(node: IRNode): string[];
59
+ /**
60
+ * Slice 3e — emit a TS Set literal from a `setLit` node.
61
+ *
62
+ * setLit name=allowed type="Set<string>"
63
+ * setItem value="admin"
64
+ * setItem value="user"
65
+ *
66
+ * → `const allowed: Set<string> = new Set(['admin', 'user']);`
67
+ *
68
+ * Same `expr={{...}}` escape-hatch policy as `mapLit`/`destructure`.
69
+ */
70
+ export declare function generateSetLit(node: IRNode): string[];
71
+ /** Emit the right-hand side of an expression-typed prop (e.g. `const.value`,
72
+ * `let.value`) from its raw IR form.
73
+ *
74
+ * - `<prop>={{ expr }}` (ExprObject) — emit `.code` raw (escape hatch for arbitrary TS).
75
+ * - `<prop>="literal"` (quoted, tracked in __quotedProps) — emit as JSON-quoted string
76
+ * so output is valid TS even when the literal contains expression-illegal characters.
77
+ * - bare `<prop>=...` — try ValueIR parse + emit for canonicalization. Fall back to raw
78
+ * string on parse failure (validator emits INVALID_EXPRESSION but codegen still ships).
79
+ *
80
+ * Slice 3e — `propName` parameter (default 'value') lets non-`value` props
81
+ * participate in the same quoted-vs-bare distinction. `mapEntry.key` and
82
+ * `mapEntry.value` both flow through this with their own __quotedProps key. */
83
+ export declare function emitConstValue(node: IRNode, rawValue: unknown, propName?: string): string;
84
+ /**
85
+ * Slice 3c — produce a TS parameter-list string from `param` child IR nodes.
86
+ *
87
+ * Mirrors `parseParamList` (which parses the legacy `params="..."` string)
88
+ * but reads structured child nodes so each parameter's `value=` flows through
89
+ * `emitConstValue` for ValueIR canonicalisation. Identifier/type annotations
90
+ * are routed through the schema emitters so authored bad input raises
91
+ * KernCodegenError instead of producing broken TS.
92
+ *
93
+ * Per child:
94
+ * - `value=` (slice 3c, ValueIR-canonicalised) — JSON-quoted for quoted
95
+ * string literals, parsed+re-emitted for bare expressions, raw for
96
+ * `{{...}}` ExprObject. Same routing as slice 3b field.value.
97
+ * - `default=` (rawExpr passthrough) — kept for back-compat / MCP usage.
98
+ * - When both set, `value` wins. The slice 3a/3b gate treats unquoted
99
+ * empty `value=` as absent so it doesn't trigger the
100
+ * `parseExpression('')` throw → empty fallback → `name: T = ;` bug.
101
+ *
102
+ * `options.stripDefaults`: TS forbids parameter initializers in overload
103
+ * signatures — the implementation alone may carry defaults. Same flag as
104
+ * the sibling `parseParamList`.
105
+ */
106
+ export declare function parseParamListFromChildren(paramNodes: IRNode[], options?: {
107
+ stripDefaults?: boolean;
108
+ }): string;
109
+ /**
110
+ * Slice 3c — unified TS parameter-list emitter for any callable IR node.
111
+ *
112
+ * Reads the node's `param` children first (canonical, ValueIR-routed). If
113
+ * none, falls back to the legacy `params="..."` string. If neither, returns
114
+ * the fallback (default empty).
115
+ *
116
+ * Children win when present. Mixed mode is intentionally unsupported — a
117
+ * signature is either fully-structured-children or fully-legacy-string.
118
+ * Producers (importer, migrate-class-body) emit children all-or-nothing
119
+ * per signature; consumers don't need to reconcile partial states.
120
+ */
121
+ export declare function emitParamList(node: IRNode, options?: {
122
+ stripDefaults?: boolean;
123
+ fallback?: string;
124
+ }): string;