@kernlang/cli 3.4.6-canary.46.1.19dcfc19 → 3.4.6-canary.53.1.ca3b242b
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.
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
1
|
+
/** Project-wide registry of exported KERN module metadata. Built once before
|
|
2
|
+
* the compile loop; consulted per-file via a
|
|
3
3
|
* caller-specific `ImportResolver` that resolves `use path="…"` strings
|
|
4
4
|
* against the current module's directory.
|
|
5
5
|
*
|
|
6
|
-
* Scope:
|
|
7
|
-
*
|
|
8
|
-
* classifies as `result`/`option`). Imports of any other return shape
|
|
9
|
-
* contribute nothing — the propagation pass leaves those calls alone. */
|
|
6
|
+
* Scope: records exported symbol kinds for target-aware import lowering, and
|
|
7
|
+
* still indexes Result/Option-returning fns for `?` / `!` propagation. */
|
|
10
8
|
import { type ImportResolver, type ModuleExports } from '@kernlang/core';
|
|
11
9
|
/** Walk every `.kern` file in the project once and produce a
|
|
12
10
|
* `Map<absoluteFilePath, ModuleExports>`. Files that fail to parse are
|
|
@@ -1,13 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
*
|
|
1
|
+
/** Project-wide registry of exported KERN module metadata. Built once before
|
|
2
|
+
* the compile loop; consulted per-file via a
|
|
3
3
|
* caller-specific `ImportResolver` that resolves `use path="…"` strings
|
|
4
4
|
* against the current module's directory.
|
|
5
5
|
*
|
|
6
|
-
* Scope:
|
|
7
|
-
*
|
|
8
|
-
|
|
9
|
-
* contribute nothing — the propagation pass leaves those calls alone. */
|
|
10
|
-
import { parseDocument } from '@kernlang/core';
|
|
6
|
+
* Scope: records exported symbol kinds for target-aware import lowering, and
|
|
7
|
+
* still indexes Result/Option-returning fns for `?` / `!` propagation. */
|
|
8
|
+
import { parseDocument, } from '@kernlang/core';
|
|
11
9
|
import { existsSync, readFileSync } from 'fs';
|
|
12
10
|
import { dirname, resolve } from 'path';
|
|
13
11
|
const RESULT_RETURN_RE = /^Result<[\s\S]*>$/;
|
|
@@ -22,29 +20,108 @@ function unwrapPromise(s) {
|
|
|
22
20
|
}
|
|
23
21
|
return { inner: t, wasPromise: false };
|
|
24
22
|
}
|
|
25
|
-
function
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
function emptyExports() {
|
|
24
|
+
return {
|
|
25
|
+
symbols: new Map(),
|
|
26
|
+
resultFns: new Set(),
|
|
27
|
+
optionFns: new Set(),
|
|
28
|
+
asyncResultFns: new Set(),
|
|
29
|
+
asyncOptionFns: new Set(),
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function cloneExports(exports) {
|
|
33
|
+
return {
|
|
34
|
+
symbols: new Map(exports.symbols ?? []),
|
|
35
|
+
resultFns: new Set(exports.resultFns),
|
|
36
|
+
optionFns: new Set(exports.optionFns),
|
|
37
|
+
asyncResultFns: new Set(exports.asyncResultFns ?? []),
|
|
38
|
+
asyncOptionFns: new Set(exports.asyncOptionFns ?? []),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
function copyExportSymbol(target, source, name) {
|
|
42
|
+
const symbol = source.symbols?.get(name);
|
|
43
|
+
if (symbol)
|
|
44
|
+
target.symbols?.set(name, symbol);
|
|
45
|
+
if (source.resultFns.has(name))
|
|
46
|
+
target.resultFns.add(name);
|
|
47
|
+
if (source.optionFns.has(name))
|
|
48
|
+
target.optionFns.add(name);
|
|
49
|
+
if (source.asyncResultFns?.has(name))
|
|
50
|
+
target.asyncResultFns?.add(name);
|
|
51
|
+
if (source.asyncOptionFns?.has(name))
|
|
52
|
+
target.asyncOptionFns?.add(name);
|
|
53
|
+
}
|
|
54
|
+
function mergeAllExports(target, source) {
|
|
55
|
+
for (const name of source.symbols?.keys() ?? []) {
|
|
56
|
+
copyExportSymbol(target, source, name);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
function splitNames(value) {
|
|
60
|
+
return typeof value === 'string'
|
|
61
|
+
? value
|
|
62
|
+
.split(',')
|
|
63
|
+
.map((part) => part.trim())
|
|
64
|
+
.filter(Boolean)
|
|
65
|
+
: [];
|
|
66
|
+
}
|
|
67
|
+
function resolveKernImportPath(currentFileAbs, rawPath) {
|
|
68
|
+
if (!rawPath.startsWith('./') && !rawPath.startsWith('../'))
|
|
69
|
+
return null;
|
|
70
|
+
const withExt = rawPath.endsWith('.kern') ? rawPath : `${rawPath}.kern`;
|
|
71
|
+
const abs = resolve(dirname(currentFileAbs), withExt);
|
|
72
|
+
return existsSync(abs) ? abs : null;
|
|
73
|
+
}
|
|
74
|
+
function classifyDirectExports(root) {
|
|
75
|
+
const moduleExports = emptyExports();
|
|
76
|
+
const symbols = new Map();
|
|
77
|
+
function exportedName(node) {
|
|
78
|
+
const props = node.props || {};
|
|
79
|
+
const name = props.name;
|
|
80
|
+
const exportProp = props.export;
|
|
81
|
+
if (typeof name !== 'string' || exportProp === 'false' || exportProp === false)
|
|
82
|
+
return null;
|
|
83
|
+
return name;
|
|
84
|
+
}
|
|
85
|
+
function symbolKind(node) {
|
|
86
|
+
switch (node.type) {
|
|
87
|
+
case 'fn':
|
|
88
|
+
case 'method':
|
|
89
|
+
return 'fn';
|
|
90
|
+
case 'type':
|
|
91
|
+
case 'interface':
|
|
92
|
+
case 'union':
|
|
93
|
+
case 'enum':
|
|
94
|
+
case 'class':
|
|
95
|
+
case 'service':
|
|
96
|
+
case 'model':
|
|
97
|
+
case 'derive':
|
|
98
|
+
case 'transform':
|
|
99
|
+
case 'action':
|
|
100
|
+
case 'expect':
|
|
101
|
+
case 'dependency':
|
|
102
|
+
return node.type;
|
|
103
|
+
default:
|
|
104
|
+
return null;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
30
107
|
function walk(node) {
|
|
108
|
+
const name = exportedName(node);
|
|
109
|
+
const kind = symbolKind(node);
|
|
110
|
+
if (name && kind) {
|
|
111
|
+
symbols.set(name, { name, kind });
|
|
112
|
+
}
|
|
31
113
|
if (node.type === 'fn' || node.type === 'method') {
|
|
32
114
|
const props = node.props || {};
|
|
33
|
-
const name = typeof props.name === 'string' ? props.name : null;
|
|
34
115
|
const returns = props.returns;
|
|
35
|
-
// KERN fns are exported by default; `export=false` opts out. Only
|
|
36
|
-
// exported names contribute to cross-module recognition.
|
|
37
|
-
const exportProp = props.export;
|
|
38
|
-
const isExported = !(exportProp === 'false' || exportProp === false);
|
|
39
116
|
const isAsync = props.async === true || props.async === 'true';
|
|
40
|
-
if (name &&
|
|
117
|
+
if (name && typeof returns === 'string') {
|
|
41
118
|
const { inner, wasPromise } = unwrapPromise(returns);
|
|
42
119
|
const effectivelyAsync = wasPromise || isAsync;
|
|
43
120
|
if (RESULT_RETURN_RE.test(inner)) {
|
|
44
|
-
(effectivelyAsync ? asyncResultFns : resultFns)
|
|
121
|
+
(effectivelyAsync ? moduleExports.asyncResultFns : moduleExports.resultFns)?.add(name);
|
|
45
122
|
}
|
|
46
123
|
else if (OPTION_RETURN_RE.test(inner)) {
|
|
47
|
-
(effectivelyAsync ? asyncOptionFns : optionFns)
|
|
124
|
+
(effectivelyAsync ? moduleExports.asyncOptionFns : moduleExports.optionFns)?.add(name);
|
|
48
125
|
}
|
|
49
126
|
}
|
|
50
127
|
}
|
|
@@ -53,25 +130,70 @@ function classifyExports(root) {
|
|
|
53
130
|
walk(c);
|
|
54
131
|
}
|
|
55
132
|
walk(root);
|
|
56
|
-
|
|
133
|
+
moduleExports.symbols = symbols;
|
|
134
|
+
return moduleExports;
|
|
135
|
+
}
|
|
136
|
+
function walkExportNodes(root, visit) {
|
|
137
|
+
if (root.type === 'export')
|
|
138
|
+
visit(root);
|
|
139
|
+
for (const child of root.children ?? []) {
|
|
140
|
+
walkExportNodes(child, visit);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
function resolveExportsForFile(fileAbs, roots, direct, resolved, resolving) {
|
|
144
|
+
const cached = resolved.get(fileAbs);
|
|
145
|
+
if (cached)
|
|
146
|
+
return cached;
|
|
147
|
+
const base = cloneExports(direct.get(fileAbs) ?? emptyExports());
|
|
148
|
+
if (resolving.has(fileAbs))
|
|
149
|
+
return base;
|
|
150
|
+
resolving.add(fileAbs);
|
|
151
|
+
const root = roots.get(fileAbs);
|
|
152
|
+
if (root) {
|
|
153
|
+
walkExportNodes(root, (node) => {
|
|
154
|
+
const from = node.props?.from;
|
|
155
|
+
if (typeof from !== 'string')
|
|
156
|
+
return;
|
|
157
|
+
const targetAbs = resolveKernImportPath(fileAbs, from);
|
|
158
|
+
if (!targetAbs || !roots.has(targetAbs))
|
|
159
|
+
return;
|
|
160
|
+
const source = resolveExportsForFile(targetAbs, roots, direct, resolved, resolving);
|
|
161
|
+
const star = node.props?.star === true || node.props?.star === 'true';
|
|
162
|
+
if (star) {
|
|
163
|
+
mergeAllExports(base, source);
|
|
164
|
+
}
|
|
165
|
+
for (const name of [...splitNames(node.props?.names), ...splitNames(node.props?.types)]) {
|
|
166
|
+
copyExportSymbol(base, source, name);
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
resolving.delete(fileAbs);
|
|
171
|
+
resolved.set(fileAbs, base);
|
|
172
|
+
return base;
|
|
57
173
|
}
|
|
58
174
|
/** Walk every `.kern` file in the project once and produce a
|
|
59
175
|
* `Map<absoluteFilePath, ModuleExports>`. Files that fail to parse are
|
|
60
176
|
* skipped silently — their per-file compile will surface its own errors. */
|
|
61
177
|
export function buildCrossModuleRegistry(kernFiles) {
|
|
62
|
-
const
|
|
178
|
+
const roots = new Map();
|
|
179
|
+
const direct = new Map();
|
|
63
180
|
for (const file of kernFiles) {
|
|
64
181
|
try {
|
|
65
182
|
const abs = resolve(file);
|
|
66
183
|
const source = readFileSync(abs, 'utf-8');
|
|
67
184
|
const root = parseDocument(source);
|
|
68
|
-
|
|
185
|
+
roots.set(abs, root);
|
|
186
|
+
direct.set(abs, classifyDirectExports(root));
|
|
69
187
|
}
|
|
70
188
|
catch {
|
|
71
189
|
// Parse failures aren't a registry concern — skip and let the
|
|
72
190
|
// per-file compile surface its diagnostics.
|
|
73
191
|
}
|
|
74
192
|
}
|
|
193
|
+
const registry = new Map();
|
|
194
|
+
for (const abs of roots.keys()) {
|
|
195
|
+
registry.set(abs, resolveExportsForFile(abs, roots, direct, registry, new Set()));
|
|
196
|
+
}
|
|
75
197
|
return registry;
|
|
76
198
|
}
|
|
77
199
|
/** Build a per-file `ImportResolver` that maps `use path="…"` strings to
|
|
@@ -81,13 +203,9 @@ export function buildCrossModuleRegistry(kernFiles) {
|
|
|
81
203
|
* (`zod`, `react`, …) and unresolvable paths return `null`, leaving the
|
|
82
204
|
* call to pass through propagation unchanged. */
|
|
83
205
|
export function makeImportResolverForFile(currentFileAbs, registry) {
|
|
84
|
-
const dir = dirname(currentFileAbs);
|
|
85
206
|
return (path) => {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
const withExt = path.endsWith('.kern') ? path : `${path}.kern`;
|
|
89
|
-
const abs = resolve(dir, withExt);
|
|
90
|
-
if (!existsSync(abs))
|
|
207
|
+
const abs = resolveKernImportPath(currentFileAbs, path);
|
|
208
|
+
if (!abs)
|
|
91
209
|
return null;
|
|
92
210
|
return registry.get(abs) ?? null;
|
|
93
211
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cross-module-registry.js","sourceRoot":"","sources":["../../src/lib/cross-module-registry.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"cross-module-registry.js","sourceRoot":"","sources":["../../src/lib/cross-module-registry.ts"],"names":[],"mappings":"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"}
|
package/dist/shared.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { IRNode, KernTarget, ParseDiagnostic, ResolvedKernConfig, SchemaViolation, ShadowDiagnostic } from '@kernlang/core';
|
|
2
|
-
export declare const GENERATED_HEADER = "// @generated by kern v3.4.6-canary.
|
|
2
|
+
export declare const GENERATED_HEADER = "// @generated by kern v3.4.6-canary.53.1.ca3b242b \u2014 DO NOT EDIT. Source: ";
|
|
3
3
|
export declare function parseCompilerVersion(version: string): [number, number, number] | null;
|
|
4
4
|
/**
|
|
5
5
|
* Check the existing output file's @generated stamp against the current compiler version.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kernlang/cli",
|
|
3
|
-
"version": "3.4.6-canary.
|
|
3
|
+
"version": "3.4.6-canary.53.1.ca3b242b",
|
|
4
4
|
"description": "KERN CLI — transpile, compile, minify, and analyze .kern files",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -29,20 +29,20 @@
|
|
|
29
29
|
"chokidar": "^5.0.0",
|
|
30
30
|
"jiti": "^2.6.1",
|
|
31
31
|
"typescript": "^6.0.3",
|
|
32
|
-
"@kernlang/codemod": "3.4.6-canary.
|
|
33
|
-
"@kernlang/core": "3.4.6-canary.
|
|
34
|
-
"@kernlang/evolve": "3.4.6-canary.
|
|
35
|
-
"@kernlang/express": "3.4.6-canary.
|
|
36
|
-
"@kernlang/fastapi": "3.4.6-canary.
|
|
37
|
-
"@kernlang/
|
|
38
|
-
"@kernlang/
|
|
39
|
-
"@kernlang/
|
|
40
|
-
"@kernlang/react": "3.4.6-canary.
|
|
41
|
-
"@kernlang/review": "3.4.6-canary.
|
|
42
|
-
"@kernlang/review-mcp": "3.4.6-canary.
|
|
43
|
-
"@kernlang/
|
|
44
|
-
"@kernlang/
|
|
45
|
-
"@kernlang/vue": "3.4.6-canary.
|
|
32
|
+
"@kernlang/codemod": "3.4.6-canary.53.1.ca3b242b",
|
|
33
|
+
"@kernlang/core": "3.4.6-canary.53.1.ca3b242b",
|
|
34
|
+
"@kernlang/evolve": "3.4.6-canary.53.1.ca3b242b",
|
|
35
|
+
"@kernlang/express": "3.4.6-canary.53.1.ca3b242b",
|
|
36
|
+
"@kernlang/fastapi": "3.4.6-canary.53.1.ca3b242b",
|
|
37
|
+
"@kernlang/metrics": "3.4.6-canary.53.1.ca3b242b",
|
|
38
|
+
"@kernlang/native": "3.4.6-canary.53.1.ca3b242b",
|
|
39
|
+
"@kernlang/mcp": "3.4.6-canary.53.1.ca3b242b",
|
|
40
|
+
"@kernlang/react": "3.4.6-canary.53.1.ca3b242b",
|
|
41
|
+
"@kernlang/review": "3.4.6-canary.53.1.ca3b242b",
|
|
42
|
+
"@kernlang/review-mcp": "3.4.6-canary.53.1.ca3b242b",
|
|
43
|
+
"@kernlang/terminal": "3.4.6-canary.53.1.ca3b242b",
|
|
44
|
+
"@kernlang/test": "3.4.6-canary.53.1.ca3b242b",
|
|
45
|
+
"@kernlang/vue": "3.4.6-canary.53.1.ca3b242b"
|
|
46
46
|
},
|
|
47
47
|
"scripts": {
|
|
48
48
|
"build": "tsc -b",
|