@kernlang/core 3.5.9-canary.220.1.c398cd95 → 4.0.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 (104) hide show
  1. package/dist/capability-matrix.js +8 -6
  2. package/dist/capability-matrix.js.map +1 -1
  3. package/dist/closure-eligibility.d.ts +104 -0
  4. package/dist/closure-eligibility.js +443 -0
  5. package/dist/closure-eligibility.js.map +1 -0
  6. package/dist/closure-python-lowering.d.ts +26 -0
  7. package/dist/closure-python-lowering.js +132 -22
  8. package/dist/closure-python-lowering.js.map +1 -1
  9. package/dist/codegen/body-ts.js +13 -0
  10. package/dist/codegen/body-ts.js.map +1 -1
  11. package/dist/codegen/type-system.js +50 -3
  12. package/dist/codegen/type-system.js.map +1 -1
  13. package/dist/codegen-core.js +29 -0
  14. package/dist/codegen-core.js.map +1 -1
  15. package/dist/codegen-expression.js +7 -0
  16. package/dist/codegen-expression.js.map +1 -1
  17. package/dist/constructor-super.d.ts +34 -0
  18. package/dist/constructor-super.js +122 -0
  19. package/dist/constructor-super.js.map +1 -0
  20. package/dist/core-contracts/boolean.d.ts +147 -0
  21. package/dist/core-contracts/boolean.js +110 -0
  22. package/dist/core-contracts/boolean.js.map +1 -0
  23. package/dist/core-contracts/function.d.ts +6 -0
  24. package/dist/core-contracts/function.js +7 -0
  25. package/dist/core-contracts/function.js.map +1 -0
  26. package/dist/core-contracts/index.d.ts +1032 -0
  27. package/dist/core-contracts/index.js +30 -0
  28. package/dist/core-contracts/index.js.map +1 -0
  29. package/dist/core-contracts/list.d.ts +87 -0
  30. package/dist/core-contracts/list.js +54 -0
  31. package/dist/core-contracts/list.js.map +1 -0
  32. package/dist/core-contracts/nullish.d.ts +12 -0
  33. package/dist/core-contracts/nullish.js +13 -0
  34. package/dist/core-contracts/nullish.js.map +1 -0
  35. package/dist/core-contracts/number.d.ts +291 -0
  36. package/dist/core-contracts/number.js +214 -0
  37. package/dist/core-contracts/number.js.map +1 -0
  38. package/dist/core-contracts/record.d.ts +60 -0
  39. package/dist/core-contracts/record.js +32 -0
  40. package/dist/core-contracts/record.js.map +1 -0
  41. package/dist/core-contracts/schema.d.ts +71 -0
  42. package/dist/core-contracts/schema.js +98 -0
  43. package/dist/core-contracts/schema.js.map +1 -0
  44. package/dist/core-contracts/semantics.d.ts +7 -0
  45. package/dist/core-contracts/semantics.js +221 -0
  46. package/dist/core-contracts/semantics.js.map +1 -0
  47. package/dist/core-contracts/string.d.ts +414 -0
  48. package/dist/core-contracts/string.js +335 -0
  49. package/dist/core-contracts/string.js.map +1 -0
  50. package/dist/core-runtime/contract-adapter.d.ts +8 -0
  51. package/dist/core-runtime/contract-adapter.js +73 -0
  52. package/dist/core-runtime/contract-adapter.js.map +1 -0
  53. package/dist/core-runtime/index.d.ts +109 -0
  54. package/dist/core-runtime/index.js +1946 -0
  55. package/dist/core-runtime/index.js.map +1 -0
  56. package/dist/core-runtime/shape-validator.d.ts +61 -0
  57. package/dist/core-runtime/shape-validator.js +564 -0
  58. package/dist/core-runtime/shape-validator.js.map +1 -0
  59. package/dist/core-runtime/value-brand.d.ts +2 -0
  60. package/dist/core-runtime/value-brand.js +6 -0
  61. package/dist/core-runtime/value-brand.js.map +1 -0
  62. package/dist/decompiler.js +46 -0
  63. package/dist/decompiler.js.map +1 -1
  64. package/dist/eligibility-taxonomy.d.ts +58 -0
  65. package/dist/eligibility-taxonomy.generated.d.ts +472 -0
  66. package/dist/eligibility-taxonomy.generated.js +566 -0
  67. package/dist/eligibility-taxonomy.generated.js.map +1 -0
  68. package/dist/eligibility-taxonomy.js +55 -0
  69. package/dist/eligibility-taxonomy.js.map +1 -0
  70. package/dist/index.d.ts +19 -2
  71. package/dist/index.js +17 -1
  72. package/dist/index.js.map +1 -1
  73. package/dist/instanceof-rhs.d.ts +53 -0
  74. package/dist/instanceof-rhs.js +74 -0
  75. package/dist/instanceof-rhs.js.map +1 -0
  76. package/dist/ir/semantics/lambda.js +9 -1
  77. package/dist/ir/semantics/lambda.js.map +1 -1
  78. package/dist/native-eligibility-ast.d.ts +5 -0
  79. package/dist/native-eligibility-ast.js +242 -63
  80. package/dist/native-eligibility-ast.js.map +1 -1
  81. package/dist/parser-expression.d.ts +1 -1
  82. package/dist/parser-expression.js +90 -1
  83. package/dist/parser-expression.js.map +1 -1
  84. package/dist/rag-assertions.d.ts +3 -0
  85. package/dist/rag-assertions.js +15 -0
  86. package/dist/rag-assertions.js.map +1 -0
  87. package/dist/rag-runtime.d.ts +169 -0
  88. package/dist/rag-runtime.js +823 -0
  89. package/dist/rag-runtime.js.map +1 -0
  90. package/dist/schema.d.ts +1 -0
  91. package/dist/schema.js +197 -2
  92. package/dist/schema.js.map +1 -1
  93. package/dist/semantic-substrate.d.ts +108 -0
  94. package/dist/semantic-substrate.js +263 -0
  95. package/dist/semantic-substrate.js.map +1 -0
  96. package/dist/semantic-validator.d.ts +332 -0
  97. package/dist/semantic-validator.js +3387 -0
  98. package/dist/semantic-validator.js.map +1 -1
  99. package/dist/spec.d.ts +2 -2
  100. package/dist/spec.js +15 -1
  101. package/dist/spec.js.map +1 -1
  102. package/dist/value-ir.d.ts +11 -1
  103. package/dist/value-ir.js.map +1 -1
  104. package/package.json +5 -1
@@ -0,0 +1,564 @@
1
+ /**
2
+ * Validate a runtime record or class instance against a declared interface shape.
3
+ * V1 supports primitives, arrays, nested interfaces, extends, and indexers.
4
+ * Class instances are checked against initialized fields only; getters and
5
+ * methods are not invoked during validation.
6
+ */
7
+ export function validateCoreShape(value, interfaceName, rootOrNodes) {
8
+ const registry = collectShapeRegistry(rootOrNodes);
9
+ const diagnostics = [];
10
+ const shape = registry.interfaces.get(interfaceName);
11
+ diagnostics.push(...interfaceDuplicateDiagnostics(registry, interfaceName));
12
+ if (!shape) {
13
+ diagnostics.push({
14
+ code: 'shape-interface-not-found',
15
+ message: `KERN core shape '${interfaceName}' is not declared.`,
16
+ interfaceName,
17
+ });
18
+ return { passed: false, interfaceName, diagnostics };
19
+ }
20
+ diagnostics.push(...validateAgainstInterface(value, shape, registry, interfaceName, [], new WeakMap()));
21
+ const uniqueDiagnostics = dedupeDiagnostics(diagnostics);
22
+ return { passed: uniqueDiagnostics.length === 0, interfaceName, diagnostics: uniqueDiagnostics };
23
+ }
24
+ export function assertCoreShape(value, interfaceName, rootOrNodes) {
25
+ const result = validateCoreShape(value, interfaceName, rootOrNodes);
26
+ if (result.passed)
27
+ return;
28
+ throw new Error(`KERN core shape validation failed for ${interfaceName}:\n${result.diagnostics
29
+ .map((diagnostic) => diagnostic.message)
30
+ .join('\n')}`);
31
+ }
32
+ /**
33
+ * Collect review/substrate facts for declared interface shapes without
34
+ * changing runtime behavior. The facts include effective inherited fields and
35
+ * indexers plus diagnostics for unsupported v1 contracts.
36
+ */
37
+ export function collectCoreShapeFacts(rootOrNodes) {
38
+ const registry = collectShapeRegistry(rootOrNodes);
39
+ const resolvedByName = new Map();
40
+ const resolvedShape = (shape) => {
41
+ const cached = resolvedByName.get(shape.name);
42
+ if (cached)
43
+ return cached;
44
+ const resolved = resolveShape(shape, registry, []);
45
+ resolvedByName.set(shape.name, resolved);
46
+ return resolved;
47
+ };
48
+ const interfaces = Array.from(registry.interfaces.values()).map((shape) => {
49
+ const resolved = resolvedShape(shape);
50
+ const unsupportedReasons = shapeUnsupportedReasons(shape, resolved, registry);
51
+ return {
52
+ name: shape.name,
53
+ extends: [...shape.extendsNames],
54
+ fields: resolved.fields.map((field) => ({ ...field })),
55
+ indexers: resolved.indexers.map((indexer) => ({ ...indexer })),
56
+ generic: shape.generic,
57
+ validatorAvailable: unsupportedReasons.length === 0,
58
+ unsupportedReasons,
59
+ };
60
+ });
61
+ return {
62
+ interfaces,
63
+ extendsEdges: Array.from(registry.interfaces.values()).flatMap((shape) => shape.extendsNames.map((base) => ({
64
+ from: shape.name,
65
+ to: base,
66
+ resolved: registry.interfaces.has(base) && !extendsEdgeParticipatesInCycle(shape.name, base, registry),
67
+ }))),
68
+ validationDiagnostics: dedupeDiagnostics([
69
+ ...registry.diagnostics,
70
+ ...Array.from(registry.interfaces.values()).flatMap((shape) => resolvedShape(shape).diagnostics),
71
+ ]),
72
+ };
73
+ }
74
+ function collectShapeRegistry(rootOrNodes) {
75
+ const diagnostics = [];
76
+ const interfaces = new Map();
77
+ for (const node of interfaceNodes(rootOrNodes)) {
78
+ if (node.type !== 'interface')
79
+ continue;
80
+ const name = stringProp(node.props?.name);
81
+ if (!name)
82
+ continue;
83
+ if (interfaces.has(name)) {
84
+ diagnostics.push({
85
+ code: 'shape-interface-duplicate',
86
+ message: `KERN core shape '${name}' is declared more than once; the last declaration is used.`,
87
+ interfaceName: name,
88
+ });
89
+ }
90
+ const shape = {
91
+ name,
92
+ extendsNames: splitExtends(node.props?.extends),
93
+ fields: (node.children ?? [])
94
+ .filter((child) => child.type === 'field' && !trueFlag(child.props?.static))
95
+ .map((field) => shapeField(field)),
96
+ indexers: (node.children ?? [])
97
+ .filter((child) => child.type === 'indexer')
98
+ .map((indexer) => shapeIndexer(indexer)),
99
+ generic: !!stringProp(node.props?.generics),
100
+ };
101
+ if (shape.generic) {
102
+ diagnostics.push({
103
+ code: 'shape-generic-unsupported',
104
+ message: `KERN core shape '${shape.name}' uses generics, which are not executable shape contracts in v1.`,
105
+ interfaceName: shape.name,
106
+ });
107
+ }
108
+ interfaces.set(name, shape);
109
+ }
110
+ return { interfaces, diagnostics };
111
+ }
112
+ function validateAgainstInterface(value, shape, registry, path, stack, visited) {
113
+ const diagnostics = [];
114
+ if (shape.generic) {
115
+ diagnostics.push({
116
+ code: 'shape-generic-unsupported',
117
+ message: `KERN core shape '${shape.name}' uses generics, which are not executable shape contracts in v1.`,
118
+ interfaceName: shape.name,
119
+ path,
120
+ });
121
+ }
122
+ const object = recordEntries(value);
123
+ if (!object) {
124
+ return [
125
+ {
126
+ code: 'shape-object-expected',
127
+ message: `KERN core shape '${shape.name}' expected a record or instance at ${path}.`,
128
+ interfaceName: shape.name,
129
+ path,
130
+ expected: shape.name,
131
+ actual: value.kind,
132
+ },
133
+ ];
134
+ }
135
+ const activeForValue = visited.get(object) ?? new Set();
136
+ if (activeForValue.has(shape.name)) {
137
+ return [
138
+ {
139
+ code: 'shape-value-cycle',
140
+ message: `KERN core shape '${shape.name}' encountered a recursive value at ${path}.`,
141
+ interfaceName: shape.name,
142
+ path,
143
+ },
144
+ ];
145
+ }
146
+ activeForValue.add(shape.name);
147
+ visited.set(object, activeForValue);
148
+ const resolved = resolveShape(shape, registry, stack);
149
+ diagnostics.push(...resolved.diagnostics);
150
+ try {
151
+ const declaredFieldNames = new Set(resolved.fields.map((field) => field.name));
152
+ for (const field of resolved.fields) {
153
+ if (!Object.hasOwn(object, field.name)) {
154
+ if (!field.optional) {
155
+ diagnostics.push({
156
+ code: 'shape-field-missing',
157
+ message: `KERN core shape '${shape.name}' missing required field ${fieldPath(path, field.name)}.`,
158
+ interfaceName: shape.name,
159
+ fieldName: field.name,
160
+ path: fieldPath(path, field.name),
161
+ expected: field.type,
162
+ });
163
+ }
164
+ continue;
165
+ }
166
+ const value = object[field.name] ?? kUndefinedValue();
167
+ if (field.optional && value.kind === 'undefined')
168
+ continue;
169
+ diagnostics.push(...validateType(value, field.type, registry, fieldPath(path, field.name), stack, visited));
170
+ }
171
+ for (const [key, entry] of Object.entries(object)) {
172
+ if (declaredFieldNames.has(key))
173
+ continue;
174
+ const matchingIndexers = resolved.indexers.filter((candidate) => keyMatchesIndexer(key, candidate));
175
+ if (matchingIndexers.length === 0) {
176
+ diagnostics.push({
177
+ code: 'shape-unexpected-field',
178
+ message: `KERN core shape '${shape.name}' does not declare field ${fieldPath(path, key)}.`,
179
+ interfaceName: shape.name,
180
+ fieldName: key,
181
+ path: fieldPath(path, key),
182
+ });
183
+ continue;
184
+ }
185
+ for (const indexer of matchingIndexers) {
186
+ diagnostics.push(...validateType(entry, indexer.type, registry, fieldPath(path, key), stack, visited));
187
+ }
188
+ }
189
+ }
190
+ finally {
191
+ activeForValue.delete(shape.name);
192
+ if (activeForValue.size === 0)
193
+ visited.delete(object);
194
+ }
195
+ return diagnostics;
196
+ }
197
+ function validateType(value, rawType, registry, path, stack, visited) {
198
+ const type = normalizeType(rawType);
199
+ if (!type || type === 'any' || type === 'unknown')
200
+ return [];
201
+ if (type.endsWith('[]'))
202
+ return validateArrayType(value, type.slice(0, -2), registry, path, stack, visited);
203
+ const arrayMatch = /^Array<(.+)>$/.exec(type);
204
+ if (arrayMatch)
205
+ return validateArrayType(value, arrayMatch[1] ?? '', registry, path, stack, visited);
206
+ if (isPrimitiveType(type)) {
207
+ if (value.kind === type)
208
+ return [];
209
+ return [
210
+ {
211
+ code: 'shape-field-type',
212
+ message: `KERN core shape expected ${path} to be ${type}, got ${value.kind}.`,
213
+ path,
214
+ expected: type,
215
+ actual: value.kind,
216
+ },
217
+ ];
218
+ }
219
+ if (isSimpleIdentifier(type)) {
220
+ const nested = registry.interfaces.get(type);
221
+ if (!nested) {
222
+ return [
223
+ {
224
+ code: 'shape-type-reference-unknown',
225
+ message: `KERN core shape field ${path} references unknown interface '${type}'.`,
226
+ path,
227
+ expected: type,
228
+ },
229
+ ];
230
+ }
231
+ return [
232
+ ...interfaceDuplicateDiagnostics(registry, type),
233
+ ...validateAgainstInterface(value, nested, registry, path, stack, visited),
234
+ ];
235
+ }
236
+ return [
237
+ {
238
+ code: 'shape-type-unsupported',
239
+ message: `KERN core shape field ${path} uses unsupported v1 type '${type}'.`,
240
+ path,
241
+ expected: type,
242
+ actual: value.kind,
243
+ },
244
+ ];
245
+ }
246
+ function validateArrayType(value, itemType, registry, path, stack, visited) {
247
+ if (value.kind !== 'array') {
248
+ return [
249
+ {
250
+ code: 'shape-field-type',
251
+ message: `KERN core shape expected ${path} to be array, got ${value.kind}.`,
252
+ path,
253
+ expected: `${itemType}[]`,
254
+ actual: value.kind,
255
+ },
256
+ ];
257
+ }
258
+ return value.items.flatMap((item, index) => validateType(item, itemType, registry, `${path}[${index}]`, stack, visited));
259
+ }
260
+ function resolveShape(shape, registry, stack) {
261
+ const diagnostics = [];
262
+ if (stack.includes(shape.name)) {
263
+ return {
264
+ fields: [],
265
+ indexers: [],
266
+ diagnostics: [
267
+ {
268
+ code: 'shape-extends-cycle',
269
+ message: `KERN core shape inheritance cycle: ${[...stack, shape.name].join(' -> ')}.`,
270
+ interfaceName: shape.name,
271
+ },
272
+ ],
273
+ };
274
+ }
275
+ const fields = new Map();
276
+ const indexers = [];
277
+ for (const baseName of shape.extendsNames) {
278
+ const base = registry.interfaces.get(baseName);
279
+ if (!base) {
280
+ diagnostics.push({
281
+ code: 'shape-extends-unknown',
282
+ message: `KERN core shape '${shape.name}' extends unknown interface '${baseName}'.`,
283
+ interfaceName: shape.name,
284
+ expected: baseName,
285
+ });
286
+ continue;
287
+ }
288
+ diagnostics.push(...registry.diagnostics.filter((diagnostic) => diagnostic.code === 'shape-interface-duplicate' && diagnostic.interfaceName === baseName));
289
+ const resolved = resolveShape(base, registry, [...stack, shape.name]);
290
+ diagnostics.push(...resolved.diagnostics);
291
+ for (const field of resolved.fields) {
292
+ const inheritedField = { ...field, inheritedFrom: field.inheritedFrom ?? base.name };
293
+ const existing = fields.get(field.name);
294
+ if (existing && !sameShapeField(existing, inheritedField)) {
295
+ diagnostics.push({
296
+ code: 'shape-field-conflict',
297
+ message: `KERN core shape '${shape.name}' has conflicting inherited field '${field.name}'.`,
298
+ interfaceName: shape.name,
299
+ fieldName: field.name,
300
+ expected: existing.type,
301
+ actual: field.type,
302
+ });
303
+ continue;
304
+ }
305
+ fields.set(field.name, inheritedField);
306
+ }
307
+ indexers.push(...resolved.indexers);
308
+ }
309
+ const ownFieldNames = new Set();
310
+ for (const field of shape.fields) {
311
+ if (ownFieldNames.has(field.name)) {
312
+ diagnostics.push({
313
+ code: 'shape-field-duplicate',
314
+ message: `KERN core shape '${shape.name}' declares duplicate field '${field.name}'.`,
315
+ interfaceName: shape.name,
316
+ fieldName: field.name,
317
+ expected: field.type,
318
+ actual: field.type,
319
+ });
320
+ continue;
321
+ }
322
+ ownFieldNames.add(field.name);
323
+ const existing = fields.get(field.name);
324
+ if (existing && (existing.type !== field.type || existing.optional !== field.optional)) {
325
+ diagnostics.push({
326
+ code: 'shape-field-conflict',
327
+ message: `KERN core shape '${shape.name}' conflicts with inherited field '${field.name}'.`,
328
+ interfaceName: shape.name,
329
+ fieldName: field.name,
330
+ expected: existing.type,
331
+ actual: field.type,
332
+ });
333
+ }
334
+ fields.set(field.name, field);
335
+ }
336
+ indexers.push(...shape.indexers);
337
+ diagnostics.push(...indexers.flatMap((indexer) => validateIndexerShape(shape.name, indexer)));
338
+ return { fields: Array.from(fields.values()), indexers, diagnostics };
339
+ }
340
+ function validateIndexerShape(interfaceName, indexer) {
341
+ if (indexer.keyType === 'string' || indexer.keyType === 'number')
342
+ return [];
343
+ return [
344
+ {
345
+ code: 'shape-indexer-key-unsupported',
346
+ message: `KERN core shape '${interfaceName}' indexer key type '${indexer.keyType}' is not supported in v1.`,
347
+ interfaceName,
348
+ expected: 'string|number',
349
+ actual: indexer.keyType,
350
+ },
351
+ ];
352
+ }
353
+ function shapeUnsupportedReasons(shape, resolved, registry) {
354
+ const reasons = new Set();
355
+ if (shape.generic)
356
+ reasons.add('generic-interface');
357
+ for (const diagnostic of interfaceDuplicateDiagnostics(registry, shape.name))
358
+ reasons.add(diagnostic.code);
359
+ for (const diagnostic of resolved.diagnostics)
360
+ reasons.add(diagnostic.code);
361
+ for (const field of resolved.fields) {
362
+ for (const issue of unsupportedTypeReasons(field.type, registry))
363
+ reasons.add(issue);
364
+ }
365
+ for (const indexer of resolved.indexers) {
366
+ if (indexer.keyType !== 'string' && indexer.keyType !== 'number')
367
+ reasons.add('shape-indexer-key-unsupported');
368
+ for (const issue of unsupportedTypeReasons(indexer.type, registry))
369
+ reasons.add(issue);
370
+ }
371
+ return [...reasons].sort();
372
+ }
373
+ function interfaceDuplicateDiagnostics(registry, interfaceName) {
374
+ return registry.diagnostics.filter((diagnostic) => diagnostic.interfaceName === interfaceName && diagnostic.code === 'shape-interface-duplicate');
375
+ }
376
+ function unsupportedTypeReasons(rawType, registry) {
377
+ const type = normalizeType(rawType);
378
+ if (!type || type === 'any' || type === 'unknown' || isPrimitiveType(type))
379
+ return [];
380
+ if (type.endsWith('[]'))
381
+ return unsupportedTypeReasons(type.slice(0, -2), registry);
382
+ const arrayMatch = /^Array<(.+)>$/.exec(type);
383
+ if (arrayMatch)
384
+ return unsupportedTypeReasons(arrayMatch[1], registry);
385
+ if (isSimpleIdentifier(type)) {
386
+ if (!registry.interfaces.has(type))
387
+ return [`unknown-type:${type}`];
388
+ return interfaceDuplicateDiagnostics(registry, type).map((diagnostic) => diagnostic.code);
389
+ }
390
+ return [`unsupported-type:${type}`];
391
+ }
392
+ function interfaceNodes(rootOrNodes) {
393
+ const found = [];
394
+ for (const node of topLevelNodes(rootOrNodes))
395
+ visitInterfaceNodes(node, found);
396
+ return found;
397
+ }
398
+ function topLevelNodes(rootOrNodes) {
399
+ return isIRNodeArray(rootOrNodes) ? rootOrNodes : [rootOrNodes];
400
+ }
401
+ function visitInterfaceNodes(node, found) {
402
+ if (node.type === 'interface')
403
+ found.push(node);
404
+ for (const child of node.children ?? [])
405
+ visitInterfaceNodes(child, found);
406
+ }
407
+ function isIRNodeArray(value) {
408
+ return Array.isArray(value);
409
+ }
410
+ function shapeField(node) {
411
+ return {
412
+ name: stringProp(node.props?.name) ?? '',
413
+ type: stringProp(node.props?.type),
414
+ optional: trueFlag(node.props?.optional),
415
+ };
416
+ }
417
+ function shapeIndexer(node) {
418
+ return {
419
+ keyName: stringProp(node.props?.keyName) ?? 'key',
420
+ keyType: normalizeType(stringProp(node.props?.keyType)) ?? '',
421
+ type: normalizeType(stringProp(node.props?.type)) ?? '',
422
+ readonly: trueFlag(node.props?.readonly),
423
+ };
424
+ }
425
+ function recordEntries(value) {
426
+ if (value.kind === 'record')
427
+ return value.entries;
428
+ if (value.kind === 'instance')
429
+ return instanceEntries(value);
430
+ return undefined;
431
+ }
432
+ function instanceEntries(value) {
433
+ return value.fields;
434
+ }
435
+ function sameShapeField(left, right) {
436
+ return left.type === right.type && left.optional === right.optional;
437
+ }
438
+ function keyMatchesIndexer(key, indexer) {
439
+ if (indexer.keyType === 'string')
440
+ return true;
441
+ return indexer.keyType === 'number' && /^-?(?:0|[1-9]\d*)$/.test(key);
442
+ }
443
+ function fieldPath(path, field) {
444
+ return `${path}.${field}`;
445
+ }
446
+ function isPrimitiveType(type) {
447
+ return type === 'string' || type === 'number' || type === 'boolean' || type === 'null' || type === 'undefined';
448
+ }
449
+ function isSimpleIdentifier(type) {
450
+ return /^[A-Za-z_$][\w$]*$/.test(type);
451
+ }
452
+ function normalizeType(value) {
453
+ const trimmed = value?.trim();
454
+ return trimmed ? trimmed : undefined;
455
+ }
456
+ function splitExtends(value) {
457
+ const raw = stringProp(value);
458
+ if (!raw)
459
+ return [];
460
+ return splitTopLevelCommas(raw);
461
+ }
462
+ function splitTopLevelCommas(value) {
463
+ const parts = [];
464
+ let current = '';
465
+ let angleDepth = 0;
466
+ let parenDepth = 0;
467
+ let bracketDepth = 0;
468
+ let braceDepth = 0;
469
+ let quote;
470
+ let escaped = false;
471
+ for (const char of value) {
472
+ if (quote) {
473
+ current += char;
474
+ if (escaped) {
475
+ escaped = false;
476
+ continue;
477
+ }
478
+ if (char === '\\') {
479
+ escaped = true;
480
+ continue;
481
+ }
482
+ if (char === quote)
483
+ quote = undefined;
484
+ continue;
485
+ }
486
+ if (char === '"' || char === "'" || char === '`') {
487
+ quote = char;
488
+ current += char;
489
+ continue;
490
+ }
491
+ if (char === '<')
492
+ angleDepth += 1;
493
+ else if (char === '>' && angleDepth > 0)
494
+ angleDepth -= 1;
495
+ else if (char === '(')
496
+ parenDepth += 1;
497
+ else if (char === ')' && parenDepth > 0)
498
+ parenDepth -= 1;
499
+ else if (char === '[')
500
+ bracketDepth += 1;
501
+ else if (char === ']' && bracketDepth > 0)
502
+ bracketDepth -= 1;
503
+ else if (char === '{')
504
+ braceDepth += 1;
505
+ else if (char === '}' && braceDepth > 0)
506
+ braceDepth -= 1;
507
+ if (char === ',' && angleDepth === 0 && parenDepth === 0 && bracketDepth === 0 && braceDepth === 0) {
508
+ const part = current.trim();
509
+ if (part)
510
+ parts.push(part);
511
+ current = '';
512
+ continue;
513
+ }
514
+ current += char;
515
+ }
516
+ const part = current.trim();
517
+ if (part)
518
+ parts.push(part);
519
+ return parts;
520
+ }
521
+ function extendsEdgeParticipatesInCycle(from, to, registry) {
522
+ return reachesInterface(to, from, registry, new Set());
523
+ }
524
+ function reachesInterface(current, target, registry, seen) {
525
+ if (current === target)
526
+ return true;
527
+ if (seen.has(current))
528
+ return false;
529
+ seen.add(current);
530
+ const shape = registry.interfaces.get(current);
531
+ if (!shape)
532
+ return false;
533
+ return shape.extendsNames.some((base) => reachesInterface(base, target, registry, seen));
534
+ }
535
+ function dedupeDiagnostics(diagnostics) {
536
+ const seen = new Set();
537
+ const unique = [];
538
+ for (const diagnostic of diagnostics) {
539
+ const key = [
540
+ diagnostic.code,
541
+ diagnostic.interfaceName,
542
+ diagnostic.fieldName,
543
+ diagnostic.path,
544
+ diagnostic.expected,
545
+ diagnostic.actual,
546
+ diagnostic.message,
547
+ ].join('\0');
548
+ if (seen.has(key))
549
+ continue;
550
+ seen.add(key);
551
+ unique.push(diagnostic);
552
+ }
553
+ return unique;
554
+ }
555
+ function stringProp(value) {
556
+ return typeof value === 'string' ? value : undefined;
557
+ }
558
+ function trueFlag(value) {
559
+ return value === true || value === 'true';
560
+ }
561
+ function kUndefinedValue() {
562
+ return { kind: 'undefined' };
563
+ }
564
+ //# sourceMappingURL=shape-validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shape-validator.js","sourceRoot":"","sources":["../../src/core-runtime/shape-validator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export declare const KERN_VALUE_BRAND: unique symbol;
2
+ export declare function brandValue<T extends object>(value: T): T;
@@ -0,0 +1,6 @@
1
+ export const KERN_VALUE_BRAND = Symbol('KERN core runtime value');
2
+ export function brandValue(value) {
3
+ Object.defineProperty(value, KERN_VALUE_BRAND, { value: true });
4
+ return value;
5
+ }
6
+ //# sourceMappingURL=value-brand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"value-brand.js","sourceRoot":"","sources":["../../src/core-runtime/value-brand.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,gBAAgB,GAAkB,MAAM,CAAC,yBAAyB,CAAC,CAAC;AAEjF,MAAM,UAAU,UAAU,CAAmB,KAAQ;IACnD,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC;AACf,CAAC"}