@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
package/dist/config.d.ts CHANGED
@@ -56,6 +56,10 @@ export interface KernConfig {
56
56
  review?: {
57
57
  /** Show confidence scores in review output (default: false) */
58
58
  showConfidence?: boolean;
59
+ /** Cross-stack review precision mode: guard is high precision, audit is broader. */
60
+ crossStackMode?: 'guard' | 'audit';
61
+ /** Named review posture. `ci` tightens defaults when selected by the CLI. */
62
+ policy?: 'guard' | 'ci' | 'audit';
59
63
  /** Minimum confidence for findings to count in enforcement (default: 0) */
60
64
  minConfidence?: number;
61
65
  /** Maximum cognitive complexity allowed (default: 15) */
@@ -75,6 +79,13 @@ export interface KernConfig {
75
79
  /** Per-symbol overrides in `path#name` form. */
76
80
  symbols?: string[];
77
81
  };
82
+ /** Persist machine-readable review telemetry when enabled. */
83
+ telemetry?: {
84
+ enabled?: boolean;
85
+ outputPath?: string;
86
+ append?: boolean;
87
+ includeFindings?: boolean;
88
+ };
78
89
  };
79
90
  }
80
91
  /** Fully resolved config — all fields required, no optionals */
@@ -118,6 +129,8 @@ export interface ResolvedKernConfig {
118
129
  };
119
130
  review: {
120
131
  showConfidence: boolean;
132
+ crossStackMode: 'guard' | 'audit';
133
+ policy?: 'guard' | 'ci' | 'audit';
121
134
  minConfidence: number;
122
135
  maxComplexity: number;
123
136
  disabledRules: string[];
@@ -126,6 +139,12 @@ export interface ResolvedKernConfig {
126
139
  files: string[];
127
140
  symbols: string[];
128
141
  };
142
+ telemetry: {
143
+ enabled: boolean;
144
+ outputPath?: string;
145
+ append: boolean;
146
+ includeFindings: boolean;
147
+ };
129
148
  };
130
149
  }
131
150
  export declare const DEFAULT_CONFIG: ResolvedKernConfig;
package/dist/config.js CHANGED
@@ -58,6 +58,8 @@ export const DEFAULT_CONFIG = {
58
58
  },
59
59
  review: {
60
60
  showConfidence: false,
61
+ crossStackMode: 'guard',
62
+ policy: undefined,
61
63
  minConfidence: 0,
62
64
  maxComplexity: 15,
63
65
  disabledRules: [],
@@ -66,6 +68,11 @@ export const DEFAULT_CONFIG = {
66
68
  files: [],
67
69
  symbols: [],
68
70
  },
71
+ telemetry: {
72
+ enabled: false,
73
+ append: true,
74
+ includeFindings: false,
75
+ },
69
76
  },
70
77
  };
71
78
  /**
@@ -135,6 +142,8 @@ export function resolveConfig(user) {
135
142
  },
136
143
  review: {
137
144
  showConfidence: user.review?.showConfidence ?? DEFAULT_CONFIG.review.showConfidence,
145
+ crossStackMode: user.review?.crossStackMode ?? DEFAULT_CONFIG.review.crossStackMode,
146
+ policy: user.review?.policy ?? DEFAULT_CONFIG.review.policy,
138
147
  minConfidence: user.review?.minConfidence ?? DEFAULT_CONFIG.review.minConfidence,
139
148
  maxComplexity: user.review?.maxComplexity ?? DEFAULT_CONFIG.review.maxComplexity,
140
149
  disabledRules: user.review?.disabledRules ?? DEFAULT_CONFIG.review.disabledRules,
@@ -143,6 +152,12 @@ export function resolveConfig(user) {
143
152
  files: user.review?.publicApi?.files ?? DEFAULT_CONFIG.review.publicApi.files,
144
153
  symbols: user.review?.publicApi?.symbols ?? DEFAULT_CONFIG.review.publicApi.symbols,
145
154
  },
155
+ telemetry: {
156
+ enabled: user.review?.telemetry?.enabled ?? DEFAULT_CONFIG.review.telemetry.enabled,
157
+ outputPath: user.review?.telemetry?.outputPath ?? DEFAULT_CONFIG.review.telemetry.outputPath,
158
+ append: user.review?.telemetry?.append ?? DEFAULT_CONFIG.review.telemetry.append,
159
+ includeFindings: user.review?.telemetry?.includeFindings ?? DEFAULT_CONFIG.review.telemetry.includeFindings,
160
+ },
146
161
  },
147
162
  };
148
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -33,6 +33,39 @@ export function decompile(root) {
33
33
  renderLet(node, indent);
34
34
  return;
35
35
  }
36
+ if (node.type === 'field') {
37
+ renderField(node, indent);
38
+ return;
39
+ }
40
+ if (node.type === 'param') {
41
+ renderParam(node, indent);
42
+ return;
43
+ }
44
+ if (node.type === 'destructure') {
45
+ renderDestructure(node, indent);
46
+ return;
47
+ }
48
+ if (node.type === 'binding' || node.type === 'element') {
49
+ // Standalone render path — only hit when these appear outside a
50
+ // `destructure` parent. Inside a parent, `renderDestructure` handles
51
+ // them inline.
52
+ renderDestructureChild(node, indent);
53
+ return;
54
+ }
55
+ if (node.type === 'mapLit') {
56
+ renderMapLit(node, indent);
57
+ return;
58
+ }
59
+ if (node.type === 'setLit') {
60
+ renderSetLit(node, indent);
61
+ return;
62
+ }
63
+ if (node.type === 'mapEntry' || node.type === 'setItem') {
64
+ // Children of mapLit/setLit — handled inline by their parent renderer.
65
+ // Standalone render path covers the orphan case for completeness.
66
+ renderMapSetChild(node, indent);
67
+ return;
68
+ }
36
69
  const name = props.name || '';
37
70
  const type = node.type.charAt(0).toUpperCase() + node.type.slice(1);
38
71
  // Style description
@@ -69,12 +102,25 @@ export function decompile(root) {
69
102
  function renderLet(node, indent) {
70
103
  const props = node.props || {};
71
104
  const name = props.name || 'binding';
105
+ // Codex hold #3: prefer `value=` if the let node carries one (slice 3a).
106
+ // Without this, a let authored with `value=42` would round-trip to
107
+ // `expr=""` and lose its assignment entirely.
108
+ const rawValue = props.value;
72
109
  const rawExpr = props.expr;
73
- const expr = rawExpr && typeof rawExpr === 'object' && rawExpr.__expr
74
- ? rawExpr.code
75
- : rawExpr || '';
76
110
  const t = props.type;
77
- const parts = [`let name=${name}`, `expr=${JSON.stringify(expr)}`];
111
+ const parts = [`let name=${name}`];
112
+ if (rawValue !== undefined) {
113
+ const valueText = typeof rawValue === 'object' && rawValue.__expr
114
+ ? `{{${rawValue.code}}}`
115
+ : JSON.stringify(rawValue);
116
+ parts.push(`value=${valueText}`);
117
+ }
118
+ else {
119
+ const expr = rawExpr && typeof rawExpr === 'object' && rawExpr.__expr
120
+ ? rawExpr.code
121
+ : rawExpr || '';
122
+ parts.push(`expr=${JSON.stringify(expr)}`);
123
+ }
78
124
  if (t)
79
125
  parts.push(`type=${t}`);
80
126
  lines.push(`${indent}${parts.join(' ')}`);
@@ -85,6 +131,312 @@ export function decompile(root) {
85
131
  }
86
132
  }
87
133
  }
134
+ function renderField(node, indent) {
135
+ // Slice 3b: emit `field` re-parseably so canonical `value={{...}}` forms
136
+ // survive the IR → text round-trip. Without this, the generic JSON.stringify
137
+ // path would emit `value={"__expr":true,"code":"foo()"}` for any class field
138
+ // imported from TS — un-re-parseable.
139
+ //
140
+ // String prop emission honours __quotedProps so a bare `value=42` (numeric
141
+ // literal) round-trips as bare and codegens to `42`, whereas a quoted
142
+ // `value="42"` round-trips quoted and codegens to `"42"` (string literal).
143
+ // Without this distinction, all bare values would gain spurious quotes on
144
+ // every decompile + re-parse cycle.
145
+ const props = node.props || {};
146
+ const quoted = node.__quotedProps ?? [];
147
+ const name = props.name || 'field';
148
+ const parts = [`field name=${name}`];
149
+ function renderStringProp(propName, raw) {
150
+ if (typeof raw === 'object' && raw.__expr) {
151
+ return `${propName}={{${raw.code}}}`;
152
+ }
153
+ const s = raw;
154
+ // Bare-emit only when the source was unquoted AND the value matches a
155
+ // strict whitelist of identifier-shape characters (alphanumeric, `_`,
156
+ // `.`, `-`). Codex hold #2: a permissive blacklist (e.g. `/[\s=]/`)
157
+ // would emit values like `'draft'|'done'` or `{id:string}` bare, which
158
+ // the parser then truncates at the embedded quote or treats as a
159
+ // style block. The whitelist covers numeric literals, identifiers, and
160
+ // dotted member chains — the cases ValueIR canonicalises — and forces
161
+ // JSON.stringify on anything else (type unions, object shorthands,
162
+ // strings with punctuation, etc.).
163
+ const wasQuoted = quoted.includes(propName);
164
+ const safeBare = !wasQuoted && s !== '' && /^[\w.-]+$/.test(s);
165
+ return `${propName}=${safeBare ? s : JSON.stringify(s)}`;
166
+ }
167
+ const t = props.type;
168
+ if (t !== undefined)
169
+ parts.push(renderStringProp('type', t));
170
+ const opt = props.optional;
171
+ if (opt === true || opt === 'true')
172
+ parts.push('optional=true');
173
+ const priv = props.private;
174
+ if (priv === true || priv === 'true')
175
+ parts.push('private=true');
176
+ const ro = props.readonly;
177
+ if (ro === true || ro === 'true')
178
+ parts.push('readonly=true');
179
+ const stat = props.static;
180
+ if (stat === true || stat === 'true')
181
+ parts.push('static=true');
182
+ const rawValue = props.value;
183
+ const rawDefault = props.default;
184
+ if (rawValue !== undefined) {
185
+ parts.push(renderStringProp('value', rawValue));
186
+ }
187
+ else if (rawDefault !== undefined) {
188
+ parts.push(renderStringProp('default', rawDefault));
189
+ }
190
+ lines.push(`${indent}${parts.join(' ')}`);
191
+ if (node.children) {
192
+ for (const child of node.children) {
193
+ render(child, `${indent} `);
194
+ }
195
+ }
196
+ }
197
+ function renderParam(node, indent) {
198
+ // Slice 3c: emit `param` re-parseably so canonical `value={{...}}` forms
199
+ // (and ValueIR-canonicalised bare values) survive IR → text round-trip.
200
+ // Mirrors renderField — same __quotedProps-aware bare/quoted policy.
201
+ //
202
+ // `param` is used in two contexts: (a) MCP tool/resource/prompt params
203
+ // (description/required/min/max apply); (b) fn/method/constructor
204
+ // parameter defaults via slice 3c (value/default apply). Both share this
205
+ // emitter so a node round-trips correctly regardless of parent context.
206
+ const props = node.props || {};
207
+ const quoted = node.__quotedProps ?? [];
208
+ // Slice 3c-extension #3: destructured params omit `name=`; the LHS pattern
209
+ // is encoded in `binding`/`element` children. Detect by child presence so
210
+ // round-trips of importer-emitted destructured params don't gain a bogus
211
+ // `name=param` attribute that would re-parse to a `param name="param"`.
212
+ const hasDestructure = (node.children ?? []).some((c) => c.type === 'binding' || c.type === 'element');
213
+ const name = props.name;
214
+ const parts = ['param'];
215
+ if (!hasDestructure && name)
216
+ parts[0] = `param name=${name}`;
217
+ else if (!hasDestructure)
218
+ parts[0] = 'param name=param';
219
+ function renderStringProp(propName, raw) {
220
+ if (typeof raw === 'object' && raw.__expr) {
221
+ return `${propName}={{${raw.code}}}`;
222
+ }
223
+ const s = raw;
224
+ // Bare-emit only when source was unquoted AND value matches the
225
+ // identifier-shape whitelist (mirrors renderField — see Codex hold #2).
226
+ const wasQuoted = quoted.includes(propName);
227
+ const safeBare = !wasQuoted && s !== '' && /^[\w.-]+$/.test(s);
228
+ return `${propName}=${safeBare ? s : JSON.stringify(s)}`;
229
+ }
230
+ const t = props.type;
231
+ if (t !== undefined)
232
+ parts.push(renderStringProp('type', t));
233
+ const required = props.required;
234
+ if (required === true || required === 'true')
235
+ parts.push('required=true');
236
+ // Slice 3c-extension: TS-style optional `?` round-trips via `optional=true`.
237
+ const optional = props.optional;
238
+ if (optional === true || optional === 'true')
239
+ parts.push('optional=true');
240
+ // Slice 3c-extension: TS-style variadic `...` round-trips via `variadic=true`.
241
+ const variadic = props.variadic;
242
+ if (variadic === true || variadic === 'true')
243
+ parts.push('variadic=true');
244
+ const rawValue = props.value;
245
+ const rawDefault = props.default;
246
+ if (rawValue !== undefined) {
247
+ parts.push(renderStringProp('value', rawValue));
248
+ }
249
+ else if (rawDefault !== undefined) {
250
+ parts.push(renderStringProp('default', rawDefault));
251
+ }
252
+ const description = props.description;
253
+ if (typeof description === 'string')
254
+ parts.push(`description=${JSON.stringify(description)}`);
255
+ const min = props.min;
256
+ if (min !== undefined)
257
+ parts.push(`min=${min}`);
258
+ const max = props.max;
259
+ if (max !== undefined)
260
+ parts.push(`max=${max}`);
261
+ lines.push(`${indent}${parts.join(' ')}`);
262
+ if (node.children) {
263
+ for (const child of node.children) {
264
+ render(child, `${indent} `);
265
+ }
266
+ }
267
+ }
268
+ function renderDestructure(node, indent) {
269
+ // Slice 3d: emit `destructure` re-parseably so structured `binding`/
270
+ // `element` children plus the `expr={{...}}` escape hatch survive
271
+ // IR → text round-trip. Mirrors renderParam's __quotedProps-aware
272
+ // bare-vs-quoted policy on `source`.
273
+ const props = node.props || {};
274
+ const quoted = node.__quotedProps ?? [];
275
+ const parts = ['destructure'];
276
+ // Escape-hatch path: raw statement carried verbatim. When present, all
277
+ // other props are ignored (codegen also ignores them — see generateDestructure).
278
+ const rawExpr = props.expr;
279
+ if (rawExpr !== undefined) {
280
+ if (typeof rawExpr === 'object' && rawExpr.__expr) {
281
+ parts.push(`expr={{${rawExpr.code}}}`);
282
+ }
283
+ else {
284
+ parts.push(`expr=${JSON.stringify(rawExpr)}`);
285
+ }
286
+ lines.push(`${indent}${parts.join(' ')}`);
287
+ return;
288
+ }
289
+ const kind = props.kind;
290
+ if (kind && kind !== 'const')
291
+ parts.push(`kind=${kind}`);
292
+ const t = props.type;
293
+ if (t !== undefined) {
294
+ const wasQuoted = quoted.includes('type');
295
+ const safeBare = !wasQuoted && /^[\w.<>[\]|&,\s-]+$/.test(t) && !/\s/.test(t.trim());
296
+ parts.push(`type=${safeBare ? t : JSON.stringify(t)}`);
297
+ }
298
+ const rawSource = props.source;
299
+ if (rawSource !== undefined) {
300
+ if (typeof rawSource === 'object' && rawSource.__expr) {
301
+ parts.push(`source={{${rawSource.code}}}`);
302
+ }
303
+ else {
304
+ const s = rawSource;
305
+ const wasQuoted = quoted.includes('source');
306
+ const safeBare = !wasQuoted && /^[\w.-]+$/.test(s);
307
+ parts.push(`source=${safeBare ? s : JSON.stringify(s)}`);
308
+ }
309
+ }
310
+ const exported = props.export;
311
+ if (exported === true || exported === 'true')
312
+ parts.push('export=true');
313
+ lines.push(`${indent}${parts.join(' ')}`);
314
+ if (node.children) {
315
+ for (const child of node.children) {
316
+ renderDestructureChild(child, `${indent} `);
317
+ }
318
+ }
319
+ }
320
+ function renderDestructureChild(node, indent) {
321
+ const props = node.props || {};
322
+ const name = props.name || '?';
323
+ if (node.type === 'binding') {
324
+ const parts = [`binding name=${name}`];
325
+ const key = props.key;
326
+ if (key)
327
+ parts.push(`key=${key}`);
328
+ lines.push(`${indent}${parts.join(' ')}`);
329
+ return;
330
+ }
331
+ if (node.type === 'element') {
332
+ const parts = [`element name=${name}`];
333
+ const idx = props.index;
334
+ if (idx !== undefined)
335
+ parts.push(`index=${idx}`);
336
+ lines.push(`${indent}${parts.join(' ')}`);
337
+ return;
338
+ }
339
+ // Unknown — should never hit; fall through to generic render.
340
+ render(node, indent);
341
+ }
342
+ function renderMapLit(node, indent) {
343
+ // Slice 3e: emit `mapLit` re-parseably with `mapEntry` children inline.
344
+ // Mirrors renderDestructure escape-hatch + __quotedProps policy.
345
+ const props = node.props || {};
346
+ const quoted = node.__quotedProps ?? [];
347
+ const name = props.name || 'unknownMap';
348
+ const parts = [`mapLit name=${name}`];
349
+ // Escape-hatch path — raw statement carried verbatim. Other props ignored.
350
+ const rawExpr = props.expr;
351
+ if (rawExpr !== undefined) {
352
+ const exprText = typeof rawExpr === 'object' && rawExpr.__expr
353
+ ? `{{${rawExpr.code}}}`
354
+ : JSON.stringify(rawExpr);
355
+ lines.push(`${indent}mapLit name=${name} expr=${exprText}`);
356
+ return;
357
+ }
358
+ const t = props.type;
359
+ if (t !== undefined) {
360
+ const wasQuoted = quoted.includes('type');
361
+ const safeBare = !wasQuoted && /^[\w.<>[\]|&,\s-]+$/.test(t) && !/\s/.test(t.trim());
362
+ parts.push(`type=${safeBare ? t : JSON.stringify(t)}`);
363
+ }
364
+ const kind = props.kind;
365
+ if (kind && kind !== 'const')
366
+ parts.push(`kind=${kind}`);
367
+ if (props.export === true || props.export === 'true')
368
+ parts.push('export=true');
369
+ lines.push(`${indent}${parts.join(' ')}`);
370
+ if (node.children) {
371
+ for (const child of node.children) {
372
+ renderMapSetChild(child, `${indent} `);
373
+ }
374
+ }
375
+ }
376
+ function renderSetLit(node, indent) {
377
+ const props = node.props || {};
378
+ const quoted = node.__quotedProps ?? [];
379
+ const name = props.name || 'unknownSet';
380
+ const parts = [`setLit name=${name}`];
381
+ const rawExpr = props.expr;
382
+ if (rawExpr !== undefined) {
383
+ const exprText = typeof rawExpr === 'object' && rawExpr.__expr
384
+ ? `{{${rawExpr.code}}}`
385
+ : JSON.stringify(rawExpr);
386
+ lines.push(`${indent}setLit name=${name} expr=${exprText}`);
387
+ return;
388
+ }
389
+ const t = props.type;
390
+ if (t !== undefined) {
391
+ const wasQuoted = quoted.includes('type');
392
+ const safeBare = !wasQuoted && /^[\w.<>[\]|&,\s-]+$/.test(t) && !/\s/.test(t.trim());
393
+ parts.push(`type=${safeBare ? t : JSON.stringify(t)}`);
394
+ }
395
+ const kind = props.kind;
396
+ if (kind && kind !== 'const')
397
+ parts.push(`kind=${kind}`);
398
+ if (props.export === true || props.export === 'true')
399
+ parts.push('export=true');
400
+ lines.push(`${indent}${parts.join(' ')}`);
401
+ if (node.children) {
402
+ for (const child of node.children) {
403
+ renderMapSetChild(child, `${indent} `);
404
+ }
405
+ }
406
+ }
407
+ function renderMapSetChild(node, indent) {
408
+ const props = node.props || {};
409
+ const quoted = node.__quotedProps ?? [];
410
+ function renderExprProp(propName, raw) {
411
+ if (typeof raw === 'object' && raw !== null && raw.__expr) {
412
+ return `${propName}={{${raw.code}}}`;
413
+ }
414
+ const s = raw;
415
+ const wasQuoted = quoted.includes(propName);
416
+ const safeBare = !wasQuoted && typeof s === 'string' && s !== '' && /^[\w.-]+$/.test(s);
417
+ return `${propName}=${safeBare ? s : JSON.stringify(s)}`;
418
+ }
419
+ if (node.type === 'mapEntry') {
420
+ const key = props.key;
421
+ const val = props.value;
422
+ const parts = ['mapEntry'];
423
+ if (key !== undefined)
424
+ parts.push(renderExprProp('key', key));
425
+ if (val !== undefined)
426
+ parts.push(renderExprProp('value', val));
427
+ lines.push(`${indent}${parts.join(' ')}`);
428
+ return;
429
+ }
430
+ if (node.type === 'setItem') {
431
+ const val = props.value;
432
+ const parts = ['setItem'];
433
+ if (val !== undefined)
434
+ parts.push(renderExprProp('value', val));
435
+ lines.push(`${indent}${parts.join(' ')}`);
436
+ return;
437
+ }
438
+ render(node, indent);
439
+ }
88
440
  function renderEach(node, indent) {
89
441
  const props = node.props || {};
90
442
  const name = props.name || 'item';
@@ -1 +1 @@
1
- {"version":3,"file":"decompiler.js","sourceRoot":"","sources":["../src/decompiler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"decompiler.js","sourceRoot":"","sources":["../src/decompiler.ts"],"names":[],"mappings":"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"}
@@ -25,6 +25,7 @@ export interface ImportResult {
25
25
  components: number;
26
26
  };
27
27
  }
28
+ export declare function escapeKernString(s: string): string;
28
29
  /**
29
30
  * Import TypeScript source code and produce .kern output.
30
31
  *