@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.
- package/dist/capability-matrix.d.ts +15 -0
- package/dist/capability-matrix.js +245 -0
- package/dist/capability-matrix.js.map +1 -0
- package/dist/codegen/data-layer.d.ts +1 -1
- package/dist/codegen/data-layer.js +59 -23
- package/dist/codegen/data-layer.js.map +1 -1
- package/dist/codegen/events.js +1 -1
- package/dist/codegen/events.js.map +1 -1
- package/dist/codegen/functions.js +29 -5
- package/dist/codegen/functions.js.map +1 -1
- package/dist/codegen/ground-layer.js +10 -6
- package/dist/codegen/ground-layer.js.map +1 -1
- package/dist/codegen/helpers.d.ts +3 -1
- package/dist/codegen/helpers.js +5 -1
- package/dist/codegen/helpers.js.map +1 -1
- package/dist/codegen/machines.js +4 -3
- package/dist/codegen/machines.js.map +1 -1
- package/dist/codegen/modules.d.ts +1 -0
- package/dist/codegen/modules.js +52 -1
- package/dist/codegen/modules.js.map +1 -1
- package/dist/codegen/screens.js +31 -9
- package/dist/codegen/screens.js.map +1 -1
- package/dist/codegen/stdlib-preamble.d.ts +39 -0
- package/dist/codegen/stdlib-preamble.js +213 -0
- package/dist/codegen/stdlib-preamble.js.map +1 -0
- package/dist/codegen/type-system.d.ts +113 -1
- package/dist/codegen/type-system.js +389 -30
- package/dist/codegen/type-system.js.map +1 -1
- package/dist/codegen-core.d.ts +2 -2
- package/dist/codegen-core.js +58 -10
- package/dist/codegen-core.js.map +1 -1
- package/dist/codegen-expression.d.ts +3 -0
- package/dist/codegen-expression.js +93 -0
- package/dist/codegen-expression.js.map +1 -0
- package/dist/concepts.d.ts +3 -3
- package/dist/config.d.ts +16 -0
- package/dist/config.js +13 -0
- package/dist/config.js.map +1 -1
- package/dist/decompiler.js +356 -4
- package/dist/decompiler.js.map +1 -1
- package/dist/importer.d.ts +1 -0
- package/dist/importer.js +574 -34
- package/dist/importer.js.map +1 -1
- package/dist/index.d.ts +6 -3
- package/dist/index.js +9 -3
- package/dist/index.js.map +1 -1
- package/dist/node-props.d.ts +177 -1
- package/dist/node-props.js.map +1 -1
- package/dist/parser-core.js +30 -5
- package/dist/parser-core.js.map +1 -1
- package/dist/parser-diagnostics.js +5 -0
- package/dist/parser-diagnostics.js.map +1 -1
- package/dist/parser-expression.d.ts +17 -0
- package/dist/parser-expression.js +498 -0
- package/dist/parser-expression.js.map +1 -0
- package/dist/parser-tokenizer.d.ts +5 -3
- package/dist/parser-tokenizer.js +97 -16
- package/dist/parser-tokenizer.js.map +1 -1
- package/dist/parser-validate-effects.d.ts +21 -0
- package/dist/parser-validate-effects.js +188 -0
- package/dist/parser-validate-effects.js.map +1 -0
- package/dist/parser-validate-expressions.d.ts +6 -0
- package/dist/parser-validate-expressions.js +41 -0
- package/dist/parser-validate-expressions.js.map +1 -0
- package/dist/parser-validate-union-kind.d.ts +24 -0
- package/dist/parser-validate-union-kind.js +97 -0
- package/dist/parser-validate-union-kind.js.map +1 -0
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +373 -27
- package/dist/schema.js.map +1 -1
- package/dist/semantic-validator.js +15 -8
- package/dist/semantic-validator.js.map +1 -1
- package/dist/spec.d.ts +5 -2
- package/dist/spec.js +24 -2
- package/dist/spec.js.map +1 -1
- package/dist/types.d.ts +7 -1
- package/dist/types.js +7 -1
- package/dist/types.js.map +1 -1
- package/dist/value-ir.d.ts +69 -0
- package/dist/value-ir.js +20 -0
- package/dist/value-ir.js.map +1 -0
- 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}${
|
|
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
|
-
|
|
151
|
-
//
|
|
152
|
-
//
|
|
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 (
|
|
178
|
+
if (valuePresent) {
|
|
179
|
+
return ` = ${emitConstValue(field, rawValue)}`;
|
|
180
|
+
}
|
|
181
|
+
if (rawDefault === undefined || rawDefault === '')
|
|
155
182
|
return '';
|
|
156
|
-
if (isExprObject(
|
|
157
|
-
return ` = ${
|
|
158
|
-
return ` = ${
|
|
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 =
|
|
166
|
-
const ctorParams =
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE3C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACrF,OAAO,EACL,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,EACb,QAAQ,EACR,WAAW,EACX,cAAc,GACf,MAAM,cAAc,CAAC;AAEtB,MAAM,CAAC,GAAG,QAAQ,CAAC;AACnB,MAAM,IAAI,GAAG,WAAW,CAAC;AACzB,MAAM,UAAU,GAAG,aAAa,CAAC;AAEjC,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACb,KAA8B,CAAC,MAAM,KAAK,IAAI;QAC/C,OAAQ,KAA4B,CAAC,IAAI,KAAK,QAAQ,CACvD,CAAC;AACJ,CAAC;AAED,4EAA4E;AAC5E,wFAAwF;AACxF,oEAAoE;AAEpE,MAAM,UAAU,YAAY,CAAC,IAAY;IACvC,MAAM,KAAK,GAAG,OAAO,CAAS,IAAI,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,CAAC;IAC7D,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC;IAChC,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,MAAM;aACnB,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,gBAAgB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC;aAC7C,IAAI,CAAC,KAAK,CAAC,CAAC;QACf,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,MAAM,OAAO,GAAG,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,MAAM,kBAAkB,CAAC,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,aAAa,CAAC,CAAC;AACpD,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,MAAM,KAAK,GAAG,OAAO,CAAc,IAAI,CAAC,CAAC;IACzC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;IAClE,MAAM,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAClG,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,KAAK,GAAa,CAAC,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,CAAC;IAElD,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,aAAa,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC;IAC9C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,OAAO,CAAU,KAAK,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS,GAAG,GAAG,KAAK,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IACxF,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,OAAO,KAAK,CAAC;AACf,CAAC;AAED,4EAA4E;AAE5E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,OAAO,CAAU,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACtE,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;IACvC,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAElC,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,WAAW,CAAC,CAAC;IAClD,CAAC;IAED,MAAM,KAAK,GAAa,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,QAAQ,IAAI,IAAI,CAAC,CAAC;IAC1D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,OAAO,CAAY,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC1C,MAAM,IAAI,GAAG,CAAC,KAAK,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAElD,kFAAkF;QAClF,IAAI,EAAE,CAAC,IAAI,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACnC,KAAK,CAAC,IAAI,CAAC,OAAO,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;YAChF,SAAS;QACX,CAAC;QAED,yFAAyF;QACzF,MAAM,KAAK,GAAG,gBAAgB,CAAC,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,IAAI,IAAI,SAAS,CAAC,CAAC;QAChE,MAAM,UAAU,GAAG,CAAC,GAAG,YAAY,MAAM,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrE,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,MAAM,EAAE,GAAG,OAAO,CAAU,KAAK,CAAC,CAAC;YACnC,MAAM,GAAG,GAAG,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACtE,UAAU,CAAC,IAAI,CACb,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,GAAG,KAAK,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CACrG,CAAC;QACJ,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,SAAS,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,2EAA2E;AAC3E,EAAE;AACF,0EAA0E;AAC1E,6EAA6E;AAC7E,mEAAmE;AACnE,gEAAgE;AAChE,+DAA+D;AAC/D,6EAA6E;AAE7E,SAAS,eAAe,CACtB,IAAY,EACZ,YAAoB;IAEpB,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAiF,CAAC;IACtG,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IAC5D,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5G,MAAM,gBAAgB,GAAG,KAAK,CAAC,UAAU;QACvC,CAAC,CAAC,eAAe,kBAAkB,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE;QACxE,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,KAAK,MAAM,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;IAE3F,OAAO;QACL,GAAG;QACH,IAAI;QACJ,IAAI;QACJ,MAAM,EAAE,GAAG,GAAG,GAAG,UAAU,SAAS,IAAI,GAAG,aAAa,GAAG,gBAAgB,IAAI;KAChF,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IAC1E,MAAM,KAAK,GAAa,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC5E,MAAM,KAAK,GAAa,CAAC,GAAG,IAAI,CAAC,CAAC;IAClC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACnB,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IAC3B,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAChB,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,cAAc,CAAC,IAAY,EAAE,KAAe,EAAE,SAAiB,EAAE,GAAW;IACnF,KAAK,MAAM,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC;QACxB,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAc,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;QACvE,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAc,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,SAAS,KAAK,UAAU,KAAK,KAAK,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,KAAe;IAClD,SAAS;IACT,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,OAAO,CAAU,KAAK,CAAC,CAAC;QACnC,MAAM,SAAS,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;QAC1D,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC7E,MAAM,QAAQ,GAAG,EAAE,CAAC,QAAQ,KAAK,MAAM,IAAI,EAAE,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,CAAC;QACnF,MAAM,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3F,MAAM,UAAU,GAAI,EAA4B,CAAC,OAAO,CAAC;QACzD,mEAAmE;QACnE,0EAA0E;QAC1E,MAAM,IAAI,GAAG,CAAC,GAAG,EAAE;YACjB,IAAI,UAAU,KAAK,SAAS,IAAI,UAAU,KAAK,EAAE;gBAAE,OAAO,EAAE,CAAC;YAC7D,IAAI,YAAY,CAAC,UAAU,CAAC;gBAAE,OAAO,MAAM,UAAU,CAAC,IAAI,EAAE,CAAC;YAC7D,OAAO,MAAM,UAAU,EAAE,CAAC;QAC5B,CAAC,CAAC,EAAE,CAAC;QACL,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC;IACpF,CAAC;IAED,gDAAgD;IAChD,MAAM,QAAQ,GAAG,UAAU,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC;IACjD,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,SAAS,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC;QAC9B,MAAM,UAAU,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,SAAS,CAAC,MAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACtF,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC,CAAC;QACvC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,iBAAiB,UAAU,KAAK,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,UAAU;IACV,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,OAAO,CAAW,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAI,EAA8B,CAAC,KAAK,KAAK,MAAM,IAAK,EAA8B,CAAC,KAAK,KAAK,IAAI,CAAC;QACnH,MAAM,QAAQ,GACX,EAA8B,CAAC,MAAM,KAAK,MAAM,IAAK,EAA8B,CAAC,MAAM,KAAK,IAAI,CAAC;QACvG,MAAM,WAAW,GACd,EAA8B,CAAC,SAAS,KAAK,MAAM,IAAK,EAA8B,CAAC,SAAS,KAAK,IAAI,CAAC;QAC7G,MAAM,QAAQ,GACX,EAA8B,CAAC,MAAM,KAAK,MAAM,IAAK,EAA8B,CAAC,MAAM,KAAK,IAAI,CAAC;QACvG,MAAM,GAAG,GACN,EAA8B,CAAC,OAAO,KAAK,MAAM,IAAK,EAA8B,CAAC,OAAO,KAAK,IAAI;YACpG,CAAC,CAAC,UAAU;YACZ,CAAC,CAAC,EAAE,CAAC;QACT,MAAM,QAAQ,GAAG,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3C,MAAM,IAAI,GAAG,QAAQ,IAAI,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;QAChD,MAAM,OAAO,GAAG,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;QACpD,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAElC,0EAA0E;QAC1E,8EAA8E;QAC9E,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAChF,MAAM,UAAU,GAAG,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;QAC9D,MAAM,QAAQ,GAAG,QAAQ;YACvB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;gBACjC,CAAC,CAAC,KAAK,GAAG,EAAE;gBACZ,CAAC,CAAC,oBAAoB,GAAG,IAAI,SAAS,GAAG;YAC3C,CAAC,CAAC,WAAW,IAAI,EAAE,CAAC,OAAO;gBACzB,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC;oBACjE,CAAC,CAAC,KAAK,GAAG,EAAE;oBACZ,CAAC,CAAC,KAAK,UAAU,GAAG,GAAG,GAAG;gBAC5B,CAAC,CAAC,EAAE,CAAC,OAAO;oBACV,CAAC,CAAC,KAAK,GAAG,EAAE;oBACZ,CAAC,CAAC,EAAE,CAAC;QAEX,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,QAAQ,GAAG,OAAO,GAAG,IAAI,GAAG,KAAK,IAAI,OAAO,IAAI,QAAQ,IAAI,CAAC,CAAC;QACpF,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,qCAAqC;IACrC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,OAAO,CAAW,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5F,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,CAAC;QAC7D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED,sCAAsC;IACtC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,CAAC;QAC1C,MAAM,EAAE,GAAG,OAAO,CAAW,MAAM,CAAC,CAAC;QACrC,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACxD,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,IAAI,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,KAAK,MAAM,IAAI,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;QAC5E,MAAM,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;QACzE,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;QAClC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,KAAK,IAAI,GAAG,OAAO,OAAO,KAAK,IAAI,OAAO,KAAK,CAAC,CAAC;QAC5D,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrC,KAAK,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAC5B,CAAC;QACH,CAAC;QACD,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;AACH,CAAC;AAED,2EAA2E;AAE3E,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,KAAK,GAAG,OAAO,CAAU,IAAI,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC9D,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC;IAC7B,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC;IAC7B,MAAM,GAAG,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC;IAElC,MAAM,cAAc,GAAG,SAAS,CAAC,CAAC,CAAC,KAAK,kBAAkB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9F,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,SAAS,IAAI,GAAG,cAAc,MAAM,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IAC7E,CAAC;IACD,IAAI,QAAQ,KAAK,SAAS,IAAI,QAAQ,KAAK,EAAE,EAAE,CAAC;QAC9C,sEAAsE;QACtE,uDAAuD;QACvD,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC;QAChE,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,SAAS,IAAI,GAAG,cAAc,MAAM,KAAK,GAAG,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,CAAC,GAAG,IAAI,EAAE,GAAG,GAAG,SAAS,IAAI,GAAG,cAAc,GAAG,CAAC,CAAC;AAC5D,CAAC"}
|
|
1
|
+
{"version":3,"file":"type-system.js","sourceRoot":"","sources":["../../src/codegen/type-system.ts"],"names":[],"mappings":"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"}
|
package/dist/codegen-core.d.ts
CHANGED
|
@@ -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). */
|