@kernlang/core 3.1.5 → 3.1.6

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 (93) hide show
  1. package/LICENSE +17 -0
  2. package/README.md +5 -2
  3. package/dist/codegen/data-layer.d.ts +12 -0
  4. package/dist/codegen/data-layer.js +292 -0
  5. package/dist/codegen/data-layer.js.map +1 -0
  6. package/dist/codegen/events.d.ts +9 -0
  7. package/dist/codegen/events.js +158 -0
  8. package/dist/codegen/events.js.map +1 -0
  9. package/dist/codegen/functions.d.ts +8 -0
  10. package/dist/codegen/functions.js +147 -0
  11. package/dist/codegen/functions.js.map +1 -0
  12. package/dist/codegen/ground-layer.d.ts +22 -0
  13. package/dist/codegen/ground-layer.js +317 -0
  14. package/dist/codegen/ground-layer.js.map +1 -0
  15. package/dist/codegen/machines.d.ts +9 -0
  16. package/dist/codegen/machines.js +127 -0
  17. package/dist/codegen/machines.js.map +1 -0
  18. package/dist/codegen/modules.d.ts +10 -0
  19. package/dist/codegen/modules.js +40 -0
  20. package/dist/codegen/modules.js.map +1 -0
  21. package/dist/codegen/semantic-types.d.ts +14 -0
  22. package/dist/codegen/semantic-types.js +31 -0
  23. package/dist/codegen/semantic-types.js.map +1 -0
  24. package/dist/codegen/test-gen.d.ts +7 -0
  25. package/dist/codegen/test-gen.js +56 -0
  26. package/dist/codegen/test-gen.js.map +1 -0
  27. package/dist/codegen/type-system.d.ts +11 -0
  28. package/dist/codegen/type-system.js +162 -0
  29. package/dist/codegen/type-system.js.map +1 -0
  30. package/dist/codegen-core.d.ts +26 -33
  31. package/dist/codegen-core.js +58 -1367
  32. package/dist/codegen-core.js.map +1 -1
  33. package/dist/config.d.ts +20 -1
  34. package/dist/config.js +23 -3
  35. package/dist/config.js.map +1 -1
  36. package/dist/coverage-gap.js +6 -2
  37. package/dist/coverage-gap.js.map +1 -1
  38. package/dist/decompiler.d.ts +9 -0
  39. package/dist/decompiler.js +17 -2
  40. package/dist/decompiler.js.map +1 -1
  41. package/dist/errors.d.ts +5 -0
  42. package/dist/errors.js +10 -0
  43. package/dist/errors.js.map +1 -1
  44. package/dist/index.d.ts +11 -4
  45. package/dist/index.js +9 -3
  46. package/dist/index.js.map +1 -1
  47. package/dist/node-props.d.ts +253 -0
  48. package/dist/node-props.js +35 -0
  49. package/dist/node-props.js.map +1 -0
  50. package/dist/parser-core.d.ts +5 -0
  51. package/dist/parser-core.js +363 -0
  52. package/dist/parser-core.js.map +1 -0
  53. package/dist/parser-diagnostics.d.ts +14 -0
  54. package/dist/parser-diagnostics.js +31 -0
  55. package/dist/parser-diagnostics.js.map +1 -0
  56. package/dist/parser-keywords.d.ts +5 -0
  57. package/dist/parser-keywords.js +135 -0
  58. package/dist/parser-keywords.js.map +1 -0
  59. package/dist/parser-style.d.ts +3 -0
  60. package/dist/parser-style.js +73 -0
  61. package/dist/parser-style.js.map +1 -0
  62. package/dist/parser-token-stream.d.ts +27 -0
  63. package/dist/parser-token-stream.js +69 -0
  64. package/dist/parser-token-stream.js.map +1 -0
  65. package/dist/parser-tokenizer.d.ts +11 -0
  66. package/dist/parser-tokenizer.js +188 -0
  67. package/dist/parser-tokenizer.js.map +1 -0
  68. package/dist/parser.d.ts +59 -12
  69. package/dist/parser.js +51 -862
  70. package/dist/parser.js.map +1 -1
  71. package/dist/schema.d.ts +7 -2
  72. package/dist/schema.js +7 -2
  73. package/dist/schema.js.map +1 -1
  74. package/dist/source-map.d.ts +27 -0
  75. package/dist/source-map.js +82 -0
  76. package/dist/source-map.js.map +1 -0
  77. package/dist/spec.d.ts +1 -1
  78. package/dist/spec.js +2 -0
  79. package/dist/spec.js.map +1 -1
  80. package/dist/styles-tailwind.d.ts +10 -0
  81. package/dist/styles-tailwind.js +10 -0
  82. package/dist/styles-tailwind.js.map +1 -1
  83. package/dist/template-engine.d.ts +10 -5
  84. package/dist/template-engine.js +10 -5
  85. package/dist/template-engine.js.map +1 -1
  86. package/dist/types.d.ts +8 -3
  87. package/dist/utils.d.ts +20 -0
  88. package/dist/utils.js +20 -0
  89. package/dist/utils.js.map +1 -1
  90. package/dist/walk.d.ts +40 -0
  91. package/dist/walk.js +107 -0
  92. package/dist/walk.js.map +1 -0
  93. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"machines.js","sourceRoot":"","sources":["../../src/codegen/machines.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Module Generators — import.
3
+ *
4
+ * NOTE: generateModule remains in codegen-core.ts because it calls
5
+ * generateCoreNode recursively for inline child definitions.
6
+ *
7
+ * Extracted from codegen-core.ts for modular codegen architecture.
8
+ */
9
+ import type { IRNode } from '../types.js';
10
+ export declare function generateImport(node: IRNode): string[];
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Module Generators — import.
3
+ *
4
+ * NOTE: generateModule remains in codegen-core.ts because it calls
5
+ * generateCoreNode recursively for inline child definitions.
6
+ *
7
+ * Extracted from codegen-core.ts for modular codegen architecture.
8
+ */
9
+ import { propsOf } from '../node-props.js';
10
+ import { emitIdentifier, emitImportSpecifier } from './emitters.js';
11
+ import { getProps } from './helpers.js';
12
+ const p = getProps;
13
+ // ── Import ──────────────────────────────────────────────────────────────
14
+ export function generateImport(node) {
15
+ const props = propsOf(node);
16
+ const from = props.from;
17
+ const names = props.names;
18
+ const defaultImport = props.default;
19
+ const isTypeOnly = props.types === 'true' || props.types === true;
20
+ if (!from)
21
+ return [];
22
+ const safePath = emitImportSpecifier(from, node);
23
+ const typeKw = isTypeOnly ? 'type ' : '';
24
+ const safeDefault = defaultImport ? emitIdentifier(defaultImport, 'default', node) : '';
25
+ const namedList = names
26
+ ? names.split(',').map(s => emitIdentifier(s.trim(), 'import', node)).join(', ')
27
+ : '';
28
+ if (safeDefault && namedList) {
29
+ return [`import ${typeKw}${safeDefault}, { ${namedList} } from '${safePath}';`];
30
+ }
31
+ if (safeDefault) {
32
+ return [`import ${typeKw}${safeDefault} from '${safePath}';`];
33
+ }
34
+ if (namedList) {
35
+ return [`import ${typeKw}{ ${namedList} } from '${safePath}';`];
36
+ }
37
+ // Side-effect import
38
+ return [`import '${safePath}';`];
39
+ }
40
+ //# sourceMappingURL=modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modules.js","sourceRoot":"","sources":["../../src/codegen/modules.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAExC,MAAM,CAAC,GAAG,QAAQ,CAAC;AAEnB,2EAA2E;AAE3E,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAG,OAAO,CAAW,IAAI,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IAC1B,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC;IACpC,MAAM,UAAU,GAAG,KAAK,CAAC,KAAK,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC;IAElE,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IAErB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjD,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,WAAW,GAAG,aAAa,CAAC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACxF,MAAM,SAAS,GAAG,KAAK;QACrB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QAChF,CAAC,CAAC,EAAE,CAAC;IAEP,IAAI,WAAW,IAAI,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,UAAU,MAAM,GAAG,WAAW,OAAO,SAAS,YAAY,QAAQ,IAAI,CAAC,CAAC;IAClF,CAAC;IACD,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,CAAC,UAAU,MAAM,GAAG,WAAW,UAAU,QAAQ,IAAI,CAAC,CAAC;IAChE,CAAC;IACD,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,CAAC,UAAU,MAAM,KAAK,SAAS,YAAY,QAAQ,IAAI,CAAC,CAAC;IAClE,CAAC;IACD,qBAAqB;IACrB,OAAO,CAAC,WAAW,QAAQ,IAAI,CAAC,CAAC;AACnC,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Semantic Type Map — cross-target type mappings for KERN's semantic types.
3
+ *
4
+ * Maps KERN column/field types to target-specific output types:
5
+ * Prisma schema, SQLAlchemy/SQLModel, Pydantic, TypeScript.
6
+ */
7
+ export interface SemanticTypeMapping {
8
+ prisma: string;
9
+ sqlalchemy: string;
10
+ pydantic: string;
11
+ typescript: string;
12
+ }
13
+ export declare const SEMANTIC_TYPE_MAP: Record<string, SemanticTypeMapping>;
14
+ export declare function mapSemanticType(kernType: string, target: keyof SemanticTypeMapping): string;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Semantic Type Map — cross-target type mappings for KERN's semantic types.
3
+ *
4
+ * Maps KERN column/field types to target-specific output types:
5
+ * Prisma schema, SQLAlchemy/SQLModel, Pydantic, TypeScript.
6
+ */
7
+ export const SEMANTIC_TYPE_MAP = {
8
+ uuid: { prisma: 'String @db.Uuid', sqlalchemy: 'UUID', pydantic: 'UUID', typescript: 'string' },
9
+ string: { prisma: 'String', sqlalchemy: 'String', pydantic: 'str', typescript: 'string' },
10
+ text: { prisma: 'String', sqlalchemy: 'Text', pydantic: 'str', typescript: 'string' },
11
+ Email: { prisma: 'String', sqlalchemy: 'String(254)', pydantic: 'EmailStr', typescript: 'string' },
12
+ URL: { prisma: 'String', sqlalchemy: 'String(2048)', pydantic: 'AnyHttpUrl', typescript: 'string' },
13
+ PhoneNumber: { prisma: 'String', sqlalchemy: 'String(20)', pydantic: 'str', typescript: 'string' },
14
+ PersonName: { prisma: 'String', sqlalchemy: 'String(255)', pydantic: 'str', typescript: 'string' },
15
+ int: { prisma: 'Int', sqlalchemy: 'Integer', pydantic: 'int', typescript: 'number' },
16
+ integer: { prisma: 'Int', sqlalchemy: 'Integer', pydantic: 'int', typescript: 'number' },
17
+ float: { prisma: 'Float', sqlalchemy: 'Float', pydantic: 'float', typescript: 'number' },
18
+ decimal: { prisma: 'Decimal', sqlalchemy: 'Numeric(19, 4)', pydantic: 'Decimal', typescript: 'number' },
19
+ Money: { prisma: 'Decimal', sqlalchemy: 'Numeric(19, 4)', pydantic: 'Decimal', typescript: 'number' },
20
+ boolean: { prisma: 'Boolean', sqlalchemy: 'Boolean', pydantic: 'bool', typescript: 'boolean' },
21
+ bool: { prisma: 'Boolean', sqlalchemy: 'Boolean', pydantic: 'bool', typescript: 'boolean' },
22
+ date: { prisma: 'DateTime', sqlalchemy: 'Date', pydantic: 'date', typescript: 'Date' },
23
+ datetime: { prisma: 'DateTime', sqlalchemy: 'DateTime', pydantic: 'datetime', typescript: 'Date' },
24
+ timestamp: { prisma: 'DateTime', sqlalchemy: 'DateTime', pydantic: 'datetime', typescript: 'Date' },
25
+ Timestamp: { prisma: 'DateTime', sqlalchemy: 'DateTime', pydantic: 'datetime', typescript: 'Date' },
26
+ json: { prisma: 'Json', sqlalchemy: 'JSON', pydantic: 'dict[str, Any]', typescript: 'Record<string, unknown>' },
27
+ };
28
+ export function mapSemanticType(kernType, target) {
29
+ return SEMANTIC_TYPE_MAP[kernType]?.[target] ?? kernType;
30
+ }
31
+ //# sourceMappingURL=semantic-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"semantic-types.js","sourceRoot":"","sources":["../../src/codegen/semantic-types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Test Generator — test.
3
+ *
4
+ * Extracted from codegen-core.ts for modular codegen architecture.
5
+ */
6
+ import type { IRNode } from '../types.js';
7
+ export declare function generateTest(node: IRNode): string[];
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Test Generator — test.
3
+ *
4
+ * Extracted from codegen-core.ts for modular codegen architecture.
5
+ */
6
+ import { propsOf } from '../node-props.js';
7
+ import { emitTemplateSafe } from './emitters.js';
8
+ import { getProps, getChildren, handlerCode } from './helpers.js';
9
+ const p = getProps;
10
+ const kids = getChildren;
11
+ // ── Test ─────────────────────────────────────────────────────────────────
12
+ export function generateTest(node) {
13
+ const props = propsOf(node);
14
+ const name = emitTemplateSafe(props.name || 'UnknownTest');
15
+ const lines = [];
16
+ lines.push(`import { describe, it, expect } from 'vitest';`);
17
+ lines.push('');
18
+ // Top-level setup handler
19
+ const setup = handlerCode(node);
20
+ if (setup) {
21
+ for (const line of setup.split('\n'))
22
+ lines.push(line);
23
+ lines.push('');
24
+ }
25
+ lines.push(`describe('${name}', () => {`);
26
+ // 'describe' and 'it' children don't have typed interfaces in NodePropsMap
27
+ for (const desc of kids(node, 'describe')) {
28
+ const dname = emitTemplateSafe(p(desc).name || 'describe');
29
+ lines.push(` describe('${dname}', () => {`);
30
+ for (const test of kids(desc, 'it')) {
31
+ const tname = emitTemplateSafe(p(test).name || 'test');
32
+ const code = handlerCode(test);
33
+ lines.push(` it('${tname}', () => {`);
34
+ if (code) {
35
+ for (const line of code.split('\n'))
36
+ lines.push(` ${line}`);
37
+ }
38
+ lines.push(` });`);
39
+ }
40
+ lines.push(` });`);
41
+ }
42
+ // Top-level it blocks
43
+ for (const test of kids(node, 'it')) {
44
+ const tname = emitTemplateSafe(p(test).name || 'test');
45
+ const code = handlerCode(test);
46
+ lines.push(` it('${tname}', () => {`);
47
+ if (code) {
48
+ for (const line of code.split('\n'))
49
+ lines.push(` ${line}`);
50
+ }
51
+ lines.push(` });`);
52
+ }
53
+ lines.push('});');
54
+ return lines;
55
+ }
56
+ //# sourceMappingURL=test-gen.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-gen.js","sourceRoot":"","sources":["../../src/codegen/test-gen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Type System Generators — type, interface, union, service, const.
3
+ *
4
+ * Extracted from codegen-core.ts for modular codegen architecture.
5
+ */
6
+ import type { IRNode } from '../types.js';
7
+ export declare function generateType(node: IRNode): string[];
8
+ export declare function generateInterface(node: IRNode): string[];
9
+ export declare function generateUnion(node: IRNode): string[];
10
+ export declare function generateService(node: IRNode): string[];
11
+ export declare function generateConst(node: IRNode): string[];
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Type System Generators — type, interface, union, service, const.
3
+ *
4
+ * Extracted from codegen-core.ts for modular codegen architecture.
5
+ */
6
+ import { propsOf } from '../node-props.js';
7
+ import { emitIdentifier, emitTemplateSafe, emitTypeAnnotation } from './emitters.js';
8
+ import { getProps, getChildren, getFirstChild, handlerCode, exportPrefix, parseParamList } from './helpers.js';
9
+ const p = getProps;
10
+ const kids = getChildren;
11
+ const firstChild = getFirstChild;
12
+ // ── Type Alias ───────────────────────────────────────────────────────────
13
+ // type name=PlanState values="draft|approved|running|paused|completed|failed|cancelled"
14
+ // → export type PlanState = 'draft' | 'approved' | 'running' | ...;
15
+ export function generateType(node) {
16
+ const props = propsOf(node);
17
+ const name = emitIdentifier(props.name, 'UnknownType', node);
18
+ const { values, alias } = props;
19
+ const exp = exportPrefix(node);
20
+ if (values) {
21
+ const members = values.split('|').map(v => `'${emitTemplateSafe(v.trim())}'`).join(' | ');
22
+ return [`${exp}type ${name} = ${members};`];
23
+ }
24
+ if (alias) {
25
+ return [`${exp}type ${name} = ${emitTypeAnnotation(alias, 'unknown', node)};`];
26
+ }
27
+ return [`${exp}type ${name} = unknown;`];
28
+ }
29
+ // ── Interface ────────────────────────────────────────────────────────────
30
+ export function generateInterface(node) {
31
+ const props = propsOf(node);
32
+ const name = emitIdentifier(props.name, 'UnknownInterface', node);
33
+ const ext = props.extends ? ` extends ${emitTypeAnnotation(props.extends, 'unknown', node)}` : '';
34
+ const exp = exportPrefix(node);
35
+ const lines = [];
36
+ lines.push(`${exp}interface ${name}${ext} {`);
37
+ for (const field of kids(node, 'field')) {
38
+ const fp = propsOf(field);
39
+ const fieldName = emitIdentifier(fp.name, 'field', field);
40
+ const opt = fp.optional === 'true' || fp.optional === true ? '?' : '';
41
+ lines.push(` ${fieldName}${opt}: ${emitTypeAnnotation(fp.type, 'unknown', field)};`);
42
+ }
43
+ lines.push('}');
44
+ return lines;
45
+ }
46
+ // ── Discriminated Union ──────────────────────────────────────────────────
47
+ export function generateUnion(node) {
48
+ const props = propsOf(node);
49
+ const name = emitIdentifier(props.name, 'UnknownUnion', node);
50
+ const discriminant = emitIdentifier(props.discriminant, 'type', node);
51
+ const exp = exportPrefix(node);
52
+ const variants = kids(node, 'variant');
53
+ if (variants.length === 0) {
54
+ return [`${exp}type ${name} = never;`];
55
+ }
56
+ const lines = [`${exp}type ${name} =`];
57
+ for (let i = 0; i < variants.length; i++) {
58
+ const vp = propsOf(variants[i]);
59
+ const vname = emitIdentifier(vp.name, 'variant', variants[i]);
60
+ const fields = kids(variants[i], 'field');
61
+ const fieldParts = [`${discriminant}: '${emitTemplateSafe(vname)}'`];
62
+ for (const field of fields) {
63
+ const fp = propsOf(field);
64
+ const opt = fp.optional === 'true' || fp.optional === true ? '?' : '';
65
+ fieldParts.push(`${emitIdentifier(fp.name, 'field', field)}${opt}: ${emitTypeAnnotation(fp.type, 'unknown', field)}`);
66
+ }
67
+ const semi = i === variants.length - 1 ? ';' : '';
68
+ lines.push(` | { ${fieldParts.join('; ')} }${semi}`);
69
+ }
70
+ return lines;
71
+ }
72
+ // ── Service (Class) ─────────────────────────────────────────────────────
73
+ export function generateService(node) {
74
+ const props = propsOf(node);
75
+ const name = emitIdentifier(props.name, 'UnknownService', node);
76
+ const impl = props.implements;
77
+ const exp = exportPrefix(node);
78
+ const lines = [];
79
+ const implClause = impl ? ` implements ${emitTypeAnnotation(impl, 'unknown', node)}` : '';
80
+ lines.push(`${exp}class ${name}${implClause} {`);
81
+ // Fields
82
+ for (const field of kids(node, 'field')) {
83
+ const fp = propsOf(field);
84
+ const fieldName = emitIdentifier(fp.name, 'field', field);
85
+ const vis = fp.private === 'true' || fp.private === true ? 'private ' : '';
86
+ const readonly = fp.readonly === 'true' || fp.readonly === true ? 'readonly ' : '';
87
+ const typeAnnotation = fp.type ? `: ${emitTypeAnnotation(fp.type, 'unknown', field)}` : '';
88
+ const defaultVal = fp.default;
89
+ // default values are by-design raw code (escape hatch) — documented, not sanitized
90
+ const init = defaultVal !== undefined ? ` = ${defaultVal}` : '';
91
+ lines.push(` ${vis}${readonly}${fieldName}${typeAnnotation}${init};`);
92
+ }
93
+ // Constructor (if any constructor child exists)
94
+ const ctorNode = firstChild(node, 'constructor');
95
+ if (ctorNode) {
96
+ const ctorProps = p(ctorNode);
97
+ const ctorParams = ctorProps.params ? parseParamList(ctorProps.params) : '';
98
+ const ctorCode = handlerCode(ctorNode);
99
+ lines.push('');
100
+ lines.push(` constructor(${ctorParams}) {`);
101
+ if (ctorCode) {
102
+ for (const line of ctorCode.split('\n')) {
103
+ lines.push(` ${line}`);
104
+ }
105
+ }
106
+ lines.push(' }');
107
+ }
108
+ // Methods
109
+ for (const method of kids(node, 'method')) {
110
+ const mp = propsOf(method);
111
+ const mname = emitIdentifier(mp.name, 'method', method);
112
+ const mparams = mp.params ? parseParamList(mp.params) : '';
113
+ const isAsync = mp.async === 'true' || mp.async === true;
114
+ const isStream = mp.stream === 'true' || mp.stream === true;
115
+ const isStatic = mp.static === 'true' || mp.static === true;
116
+ const vis = mp.private === 'true' || mp.private === true ? 'private ' : '';
117
+ const staticKw = isStatic ? 'static ' : '';
118
+ const star = isStream ? '*' : '';
119
+ const asyncKw = (isAsync || isStream) ? 'async ' : '';
120
+ const mcode = handlerCode(method);
121
+ // stream=true → AsyncGenerator return type
122
+ const mreturns = isStream
123
+ ? `: AsyncGenerator<${emitTypeAnnotation(mp.returns, 'unknown', method)}>`
124
+ : mp.returns ? `: ${emitTypeAnnotation(mp.returns, 'unknown', method)}` : '';
125
+ lines.push('');
126
+ lines.push(` ${vis}${staticKw}${asyncKw}${star}${mname}(${mparams})${mreturns} {`);
127
+ if (mcode) {
128
+ for (const line of mcode.split('\n')) {
129
+ lines.push(` ${line}`);
130
+ }
131
+ }
132
+ lines.push(' }');
133
+ }
134
+ lines.push('}');
135
+ // Singleton instances
136
+ for (const singleton of kids(node, 'singleton')) {
137
+ const sp = p(singleton);
138
+ const sname = emitIdentifier(sp.name, 'instance', singleton);
139
+ const stype = emitIdentifier(sp.type, name, singleton);
140
+ lines.push('');
141
+ lines.push(`${exp}const ${sname} = new ${stype}();`);
142
+ }
143
+ return lines;
144
+ }
145
+ // ── Const ───────────────────────────────────────────────────────────────
146
+ export function generateConst(node) {
147
+ const props = propsOf(node);
148
+ const name = emitIdentifier(props.name, 'unknownConst', node);
149
+ const constType = props.type;
150
+ const value = props.value;
151
+ const exp = exportPrefix(node);
152
+ const code = handlerCode(node);
153
+ const typeAnnotation = constType ? `: ${emitTypeAnnotation(constType, 'unknown', node)}` : '';
154
+ if (code) {
155
+ return [`${exp}const ${name}${typeAnnotation} = ${code.trim()};`];
156
+ }
157
+ if (value) {
158
+ return [`${exp}const ${name}${typeAnnotation} = ${value};`];
159
+ }
160
+ return [`${exp}const ${name}${typeAnnotation};`];
161
+ }
162
+ //# sourceMappingURL=type-system.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"type-system.js","sourceRoot":"","sources":["../../src/codegen/type-system.ts"],"names":[],"mappings":"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"}
@@ -5,11 +5,25 @@
5
5
  * These are target-agnostic — they compile to TypeScript regardless of target.
6
6
  *
7
7
  * Machine nodes are KERN's killer feature: 12 lines of KERN → 140+ lines of TS.
8
+ *
9
+ * Generator implementations are split into domain modules under codegen/.
10
+ * This file is the thin dispatcher: imports, re-exports, and generateCoreNode switch.
11
+ * Generators that call generateCoreNode recursively remain here to avoid circular imports.
8
12
  */
9
13
  import type { IRNode } from './types.js';
10
14
  import { type KernRuntime } from './runtime.js';
11
15
  export { emitIdentifier, emitStringLiteral, emitPath, emitTemplateSafe, emitTypeAnnotation, emitImportSpecifier } from './codegen/emitters.js';
12
16
  export { getProps, getChildren, getFirstChild, getStyles, getPseudoStyles, getThemeRefs, dedent, cssPropertyName, handlerCode, exportPrefix, capitalize, parseParamList, emitReasonAnnotations, emitLowConfidenceTodo } from './codegen/helpers.js';
17
+ export { generateType, generateInterface, generateUnion, generateService, generateConst } from './codegen/type-system.js';
18
+ export { generateFunction, generateError } from './codegen/functions.js';
19
+ export { generateMachine, generateMachineReducer } from './codegen/machines.js';
20
+ export { generateConfig, generateStore, generateRepository, generateCache, generateDependency, generateModel } from './codegen/data-layer.js';
21
+ export { generateDerive, generateTransform, generateAction, generateGuard, generateAssume, generateInvariant, generateCollect, generateResolve, generateExpect, generateRecover, generatePattern, generateApply } from './codegen/ground-layer.js';
22
+ export { generateEvent, generateOn, generateWebSocket } from './codegen/events.js';
23
+ export { generateImport } from './codegen/modules.js';
24
+ export { generateTest } from './codegen/test-gen.js';
25
+ export { mapSemanticType, SEMANTIC_TYPE_MAP } from './codegen/semantic-types.js';
26
+ export type { SemanticTypeMapping } from './codegen/semantic-types.js';
13
27
  /** Register an evolved generator (called at startup). */
14
28
  export declare function registerEvolvedGenerator(keyword: string, fn: (node: IRNode) => string[]): void;
15
29
  /** Register a target-specific evolved generator (called at startup). */
@@ -20,45 +34,24 @@ export declare function unregisterEvolvedGenerator(keyword: string): void;
20
34
  export declare function clearEvolvedGenerators(): void;
21
35
  /** Check if an evolved generator exists for a type. */
22
36
  export declare function hasEvolvedGenerator(type: string): boolean;
23
- export declare function generateType(node: IRNode): string[];
24
- export declare function generateInterface(node: IRNode): string[];
25
- export declare function generateUnion(node: IRNode): string[];
26
- export declare function generateService(node: IRNode): string[];
27
- export declare function generateFunction(node: IRNode): string[];
28
- export declare function generateError(node: IRNode): string[];
29
- export declare function generateMachine(node: IRNode): string[];
30
- export declare function generateMachineReducer(node: IRNode): string[];
31
- export declare function generateConfig(node: IRNode): string[];
32
- export declare function generateStore(node: IRNode): string[];
33
- export declare function generateTest(node: IRNode): string[];
34
- export declare function generateEvent(node: IRNode): string[];
35
- export declare function generateOn(node: IRNode): string[];
36
- export declare function generateWebSocket(node: IRNode): string[];
37
37
  export declare function generateModule(node: IRNode): string[];
38
- export declare function generateImport(node: IRNode): string[];
39
- export declare function generateConst(node: IRNode): string[];
40
- export declare function generateDerive(node: IRNode): string[];
41
- export declare function generateTransform(node: IRNode): string[];
42
- export declare function generateAction(node: IRNode): string[];
43
- export declare function generateGuard(node: IRNode): string[];
44
- export declare function generateAssume(node: IRNode): string[];
45
- export declare function generateInvariant(node: IRNode): string[];
46
38
  export declare function generateEach(node: IRNode): string[];
47
- export declare function generateCollect(node: IRNode): string[];
48
39
  export declare function generateBranch(node: IRNode): string[];
49
- export declare function generateResolve(node: IRNode): string[];
50
- export declare function generateExpect(node: IRNode): string[];
51
- export declare function generateRecover(node: IRNode): string[];
52
- export declare function generatePattern(node: IRNode): string[];
53
- export declare function generateApply(node: IRNode, _depth?: number): string[];
54
40
  export declare function generateConditional(node: IRNode): string[];
55
41
  export declare function generateSelect(node: IRNode): string[];
56
- export declare function generateModel(node: IRNode): string[];
57
- export declare function generateRepository(node: IRNode): string[];
58
- export declare function generateDependency(node: IRNode): string[];
59
- export declare function generateCache(node: IRNode): string[];
60
42
  export declare const CORE_NODE_TYPES: Set<string>;
61
43
  /** Check if a node type is a core language construct. */
62
44
  export declare function isCoreNode(type: string): boolean;
63
- /** Generate TypeScript for any core language node. */
45
+ /**
46
+ * Generate TypeScript lines for a core IR node (type system, functions, machines, etc.).
47
+ *
48
+ * Returns an empty array if the node type is unknown and no evolved generator is registered.
49
+ * Template nodes are expanded automatically via the template engine.
50
+ *
51
+ * @param node - The IR node to generate code for
52
+ * @param target - Optional target hint (e.g., `'ink'` for machine → useReducer)
53
+ * @param runtime - Optional KernRuntime instance
54
+ * @returns Array of TypeScript source lines
55
+ * @throws {KernCodegenError} For nodes with invalid/missing required props
56
+ */
64
57
  export declare function generateCoreNode(node: IRNode, target?: string, runtime?: KernRuntime): string[];