@kernlang/core 3.3.8 → 3.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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/emitters.d.ts +8 -0
- package/dist/codegen/emitters.js +10 -0
- package/dist/codegen/emitters.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.d.ts +1 -0
- package/dist/codegen/ground-layer.js +88 -10
- 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 +77 -13
- 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 +3 -3
- package/dist/codegen-core.js +79 -16
- 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 +96 -0
- package/dist/concepts.js.map +1 -1
- package/dist/config.d.ts +19 -0
- package/dist/config.js +15 -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 +188 -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/scanner.js +12 -9
- package/dist/scanner.js.map +1 -1
- package/dist/schema.d.ts +1 -1
- package/dist/schema.js +403 -37
- package/dist/schema.js.map +1 -1
- package/dist/semantic-validator.js +73 -8
- package/dist/semantic-validator.js.map +1 -1
- package/dist/spec.d.ts +5 -2
- package/dist/spec.js +27 -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 +13 -1
package/dist/types.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export interface ExprObject {
|
|
|
12
12
|
__expr: true;
|
|
13
13
|
code: string;
|
|
14
14
|
}
|
|
15
|
+
/** Type guard for ExprObject — matches the ExprObject contract exactly. */
|
|
16
|
+
export declare function isExprObject(value: unknown): value is ExprObject;
|
|
15
17
|
/** Base node in the IR tree */
|
|
16
18
|
export interface IRNode {
|
|
17
19
|
/** Node type identifier — known types have autocomplete, custom/evolved types accepted as string */
|
|
@@ -22,6 +24,10 @@ export interface IRNode {
|
|
|
22
24
|
children?: IRNode[];
|
|
23
25
|
/** Node-specific properties */
|
|
24
26
|
props?: Record<string, unknown>;
|
|
27
|
+
/** Names of props whose values originated from a quoted token (e.g. value="hello world").
|
|
28
|
+
* Used by the post-parse validator to skip expression validation on string literals.
|
|
29
|
+
* Stored as string[] (not Set) so it survives JSON serialization in decompile/sourcemap flows. */
|
|
30
|
+
__quotedProps?: string[];
|
|
25
31
|
}
|
|
26
32
|
/** Source location tracking */
|
|
27
33
|
export interface IRSourceLocation {
|
|
@@ -89,7 +95,7 @@ export interface TranspileResult {
|
|
|
89
95
|
/** Node-level diagnostics (never silently drop) */
|
|
90
96
|
diagnostics?: TranspileDiagnostic[];
|
|
91
97
|
}
|
|
92
|
-
export type ParseErrorCode = 'UNCLOSED_EXPR' | 'UNCLOSED_STYLE' | 'UNCLOSED_STRING' | 'UNEXPECTED_TOKEN' | 'EMPTY_DOCUMENT' | 'INVALID_INDENT' | 'UNKNOWN_NODE_TYPE' | 'INDENT_JUMP' | 'DUPLICATE_PROP' | 'DROPPED_LINE';
|
|
98
|
+
export type ParseErrorCode = 'UNCLOSED_EXPR' | 'UNCLOSED_STYLE' | 'UNCLOSED_STRING' | 'UNEXPECTED_TOKEN' | 'EMPTY_DOCUMENT' | 'INVALID_INDENT' | 'UNKNOWN_NODE_TYPE' | 'INDENT_JUMP' | 'DUPLICATE_PROP' | 'DROPPED_LINE' | 'INVALID_BIGINT' | 'INVALID_EXPRESSION' | 'INVALID_EFFECTS' | 'INVALID_UNION_KIND' | 'KIND_SHAPE_VIOLATION';
|
|
93
99
|
export type ParseDiagnosticSeverity = 'error' | 'warning' | 'info';
|
|
94
100
|
export interface ParseDiagnostic {
|
|
95
101
|
code: ParseErrorCode;
|
package/dist/types.js
CHANGED
|
@@ -7,5 +7,11 @@
|
|
|
7
7
|
* 3. A decompiler that converts IRNode tree → human-readable TypeScript
|
|
8
8
|
* 4. Source map generation for debugging
|
|
9
9
|
*/
|
|
10
|
-
|
|
10
|
+
/** Type guard for ExprObject — matches the ExprObject contract exactly. */
|
|
11
|
+
export function isExprObject(value) {
|
|
12
|
+
return (typeof value === 'object' &&
|
|
13
|
+
value !== null &&
|
|
14
|
+
value.__expr === true &&
|
|
15
|
+
typeof value.code === 'string');
|
|
16
|
+
}
|
|
11
17
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAQH,2EAA2E;AAC3E,MAAM,UAAU,YAAY,CAAC,KAAc;IACzC,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"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/** Expression value AST. Mirrors TS/JS precedence semantics for round-trip safety. */
|
|
2
|
+
import type { IRSourceLocation } from './types.js';
|
|
3
|
+
export type BinaryOp = '+' | '-' | '*' | '/' | '%' | '**' | '==' | '!=' | '===' | '!==' | '<' | '<=' | '>' | '>=' | '&&' | '||' | '??' | '&' | '|' | '^' | '<<' | '>>' | '>>>';
|
|
4
|
+
export type UnaryOp = '!' | '-' | '+' | '~' | 'typeof' | 'void';
|
|
5
|
+
export type ValueIR = {
|
|
6
|
+
kind: 'numLit';
|
|
7
|
+
value: number;
|
|
8
|
+
bigint?: boolean;
|
|
9
|
+
raw: string;
|
|
10
|
+
loc?: IRSourceLocation;
|
|
11
|
+
} | {
|
|
12
|
+
kind: 'strLit';
|
|
13
|
+
value: string;
|
|
14
|
+
quote: '"' | "'";
|
|
15
|
+
loc?: IRSourceLocation;
|
|
16
|
+
} | {
|
|
17
|
+
kind: 'tmplLit';
|
|
18
|
+
quasis: string[];
|
|
19
|
+
expressions: ValueIR[];
|
|
20
|
+
loc?: IRSourceLocation;
|
|
21
|
+
} | {
|
|
22
|
+
kind: 'boolLit';
|
|
23
|
+
value: boolean;
|
|
24
|
+
loc?: IRSourceLocation;
|
|
25
|
+
} | {
|
|
26
|
+
kind: 'nullLit';
|
|
27
|
+
loc?: IRSourceLocation;
|
|
28
|
+
} | {
|
|
29
|
+
kind: 'undefLit';
|
|
30
|
+
loc?: IRSourceLocation;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'regexLit';
|
|
33
|
+
pattern: string;
|
|
34
|
+
flags: string;
|
|
35
|
+
loc?: IRSourceLocation;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'ident';
|
|
38
|
+
name: string;
|
|
39
|
+
loc?: IRSourceLocation;
|
|
40
|
+
} | {
|
|
41
|
+
kind: 'member';
|
|
42
|
+
object: ValueIR;
|
|
43
|
+
property: string;
|
|
44
|
+
optional: boolean;
|
|
45
|
+
loc?: IRSourceLocation;
|
|
46
|
+
} | {
|
|
47
|
+
kind: 'call';
|
|
48
|
+
callee: ValueIR;
|
|
49
|
+
args: ValueIR[];
|
|
50
|
+
optional: boolean;
|
|
51
|
+
loc?: IRSourceLocation;
|
|
52
|
+
} | {
|
|
53
|
+
kind: 'binary';
|
|
54
|
+
op: BinaryOp;
|
|
55
|
+
left: ValueIR;
|
|
56
|
+
right: ValueIR;
|
|
57
|
+
loc?: IRSourceLocation;
|
|
58
|
+
} | {
|
|
59
|
+
kind: 'unary';
|
|
60
|
+
op: UnaryOp;
|
|
61
|
+
argument: ValueIR;
|
|
62
|
+
loc?: IRSourceLocation;
|
|
63
|
+
} | {
|
|
64
|
+
kind: 'spread';
|
|
65
|
+
argument: ValueIR;
|
|
66
|
+
loc?: IRSourceLocation;
|
|
67
|
+
};
|
|
68
|
+
export type ValueIRKind = ValueIR['kind'];
|
|
69
|
+
export declare function isValueIR(x: unknown): x is ValueIR;
|
package/dist/value-ir.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/** Expression value AST. Mirrors TS/JS precedence semantics for round-trip safety. */
|
|
2
|
+
export function isValueIR(x) {
|
|
3
|
+
if (typeof x !== 'object' || x === null)
|
|
4
|
+
return false;
|
|
5
|
+
const k = x.kind;
|
|
6
|
+
return (k === 'numLit' ||
|
|
7
|
+
k === 'strLit' ||
|
|
8
|
+
k === 'tmplLit' ||
|
|
9
|
+
k === 'boolLit' ||
|
|
10
|
+
k === 'nullLit' ||
|
|
11
|
+
k === 'undefLit' ||
|
|
12
|
+
k === 'regexLit' ||
|
|
13
|
+
k === 'ident' ||
|
|
14
|
+
k === 'member' ||
|
|
15
|
+
k === 'call' ||
|
|
16
|
+
k === 'binary' ||
|
|
17
|
+
k === 'unary' ||
|
|
18
|
+
k === 'spread');
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=value-ir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value-ir.js","sourceRoot":"","sources":["../src/value-ir.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAgDtF,MAAM,UAAU,SAAS,CAAC,CAAU;IAClC,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,CAAC,GAAI,CAAwB,CAAC,IAAI,CAAC;IACzC,OAAO,CACL,CAAC,KAAK,QAAQ;QACd,CAAC,KAAK,QAAQ;QACd,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,SAAS;QACf,CAAC,KAAK,UAAU;QAChB,CAAC,KAAK,UAAU;QAChB,CAAC,KAAK,OAAO;QACb,CAAC,KAAK,QAAQ;QACd,CAAC,KAAK,MAAM;QACZ,CAAC,KAAK,QAAQ;QACd,CAAC,KAAK,OAAO;QACb,CAAC,KAAK,QAAQ,CACf,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernlang/core",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "Kern core — parser, types, spec, config, style engines, codegen",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,6 +26,18 @@
|
|
|
26
26
|
"types": "./dist/runtime.d.ts",
|
|
27
27
|
"default": "./dist/runtime.js"
|
|
28
28
|
},
|
|
29
|
+
"./config": {
|
|
30
|
+
"types": "./dist/config.d.ts",
|
|
31
|
+
"default": "./dist/config.js"
|
|
32
|
+
},
|
|
33
|
+
"./parser": {
|
|
34
|
+
"types": "./dist/parser.d.ts",
|
|
35
|
+
"default": "./dist/parser.js"
|
|
36
|
+
},
|
|
37
|
+
"./utils": {
|
|
38
|
+
"types": "./dist/utils.d.ts",
|
|
39
|
+
"default": "./dist/utils.js"
|
|
40
|
+
},
|
|
29
41
|
"./schema": {
|
|
30
42
|
"types": "./dist/schema.d.ts",
|
|
31
43
|
"default": "./dist/schema.js"
|