@kernlang/core 3.4.3-canary.7.1.88c06dcc → 3.4.3
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/codegen/body-ts.js +19 -0
- package/dist/codegen/body-ts.js.map +1 -1
- package/dist/codegen/kern-stdlib.d.ts +1 -1
- package/dist/codegen/kern-stdlib.js +12 -1
- package/dist/codegen/kern-stdlib.js.map +1 -1
- package/dist/codegen-expression.js +27 -0
- package/dist/codegen-expression.js.map +1 -1
- package/dist/concepts.d.ts +53 -0
- package/dist/concepts.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/native-eligibility-ast.d.ts +52 -0
- package/dist/native-eligibility-ast.js +189 -0
- package/dist/native-eligibility-ast.js.map +1 -0
- package/dist/native-eligibility.d.ts +29 -18
- package/dist/native-eligibility.js +24 -26
- package/dist/native-eligibility.js.map +1 -1
- package/dist/parser-expression.d.ts +4 -2
- package/dist/parser-expression.js +72 -11
- package/dist/parser-expression.js.map +1 -1
- package/dist/parser-validate-body-statements.d.ts +6 -6
- package/dist/parser-validate-body-statements.js +7 -6
- package/dist/parser-validate-body-statements.js.map +1 -1
- package/dist/parser-validate-native-eligible.d.ts +11 -6
- package/dist/parser-validate-native-eligible.js +12 -7
- package/dist/parser-validate-native-eligible.js.map +1 -1
- package/dist/schema.js +11 -4
- package/dist/schema.js.map +1 -1
- package/dist/spec.d.ts +1 -1
- package/dist/spec.js +1 -1
- package/dist/spec.js.map +1 -1
- package/dist/value-ir.d.ts +6 -0
- package/dist/value-ir.js +2 -1
- package/dist/value-ir.js.map +1 -1
- package/package.json +1 -1
package/dist/codegen/body-ts.js
CHANGED
|
@@ -177,6 +177,10 @@ function emitChildrenTS(children, ctx, indent) {
|
|
|
177
177
|
for (const line of emitThrowTS(child, ctx))
|
|
178
178
|
lines.push(`${indent}${line}`);
|
|
179
179
|
}
|
|
180
|
+
else if (child.type === 'do') {
|
|
181
|
+
for (const line of emitDoTS(child, ctx))
|
|
182
|
+
lines.push(`${indent}${line}`);
|
|
183
|
+
}
|
|
180
184
|
else if (child.type === 'each') {
|
|
181
185
|
// Slice 4d — each loop.
|
|
182
186
|
// Slice 4c+4d review fix (Codex P1): the schema's `each` already
|
|
@@ -258,4 +262,19 @@ function emitThrowTS(node, ctx) {
|
|
|
258
262
|
}
|
|
259
263
|
return [`throw ${emitExpression(valueIR)};`];
|
|
260
264
|
}
|
|
265
|
+
function emitDoTS(node, ctx) {
|
|
266
|
+
const props = (node.props ?? {});
|
|
267
|
+
const rawValue = props.value;
|
|
268
|
+
if (rawValue === undefined || rawValue === '') {
|
|
269
|
+
return [];
|
|
270
|
+
}
|
|
271
|
+
const valueIR = parseExpression(String(rawValue));
|
|
272
|
+
if (valueIR.kind === 'propagate' && valueIR.op === '?') {
|
|
273
|
+
rejectPropagationInsideTry(ctx);
|
|
274
|
+
const tmp = `__k_t${++ctx.gensymCounter}`;
|
|
275
|
+
const inner = emitExpression(valueIR.argument);
|
|
276
|
+
return [`const ${tmp} = ${inner};`, `if (${tmp}.kind === 'err') return ${tmp};`];
|
|
277
|
+
}
|
|
278
|
+
return [`${emitExpression(valueIR)};`];
|
|
279
|
+
}
|
|
261
280
|
//# sourceMappingURL=body-ts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-ts.js","sourceRoot":"","sources":["../../src/codegen/body-ts.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"body-ts.js","sourceRoot":"","sources":["../../src/codegen/body-ts.ts"],"names":[],"mappings":"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"}
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* - 2a: Text upper/lower/length/trim
|
|
27
27
|
* - 2b: Text+ (includes, startsWith, endsWith, split, replace);
|
|
28
28
|
* List (length, isEmpty, includes, first, last, indexOf, join);
|
|
29
|
-
* Map (has, get, size); Number (round, floor, ceil, abs).
|
|
29
|
+
* Map (has, get, size); Number (round, floor, ceil, abs, isFinite, isNaN).
|
|
30
30
|
* Future slices may extend further (List.map / List.filter need closures,
|
|
31
31
|
* so they're deferred until closure support — currently never).
|
|
32
32
|
*
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
* - 2a: Text upper/lower/length/trim
|
|
27
27
|
* - 2b: Text+ (includes, startsWith, endsWith, split, replace);
|
|
28
28
|
* List (length, isEmpty, includes, first, last, indexOf, join);
|
|
29
|
-
* Map (has, get, size); Number (round, floor, ceil, abs).
|
|
29
|
+
* Map (has, get, size); Number (round, floor, ceil, abs, isFinite, isNaN).
|
|
30
30
|
* Future slices may extend further (List.map / List.filter need closures,
|
|
31
31
|
* so they're deferred until closure support — currently never).
|
|
32
32
|
*
|
|
@@ -90,6 +90,17 @@ export const KERN_STDLIB = {
|
|
|
90
90
|
floor: { arity: 1, ts: 'Math.floor($0)', py: '__k_math.floor($0)', requires: { py: 'math' } },
|
|
91
91
|
ceil: { arity: 1, ts: 'Math.ceil($0)', py: '__k_math.ceil($0)', requires: { py: 'math' } },
|
|
92
92
|
abs: { arity: 1, ts: 'Math.abs($0)', py: 'abs($0)' },
|
|
93
|
+
// `Number.isFinite($0)` returns false for NaN, +∞, -∞ on both targets.
|
|
94
|
+
// The TS lowering uses `Number.isFinite` (NOT the global `isFinite`) so
|
|
95
|
+
// non-number arguments deterministically return false rather than being
|
|
96
|
+
// coerced. Python's `math.isfinite` matches that semantic on float inputs;
|
|
97
|
+
// KERN's type system rejects non-number arguments at AST validation, so
|
|
98
|
+
// Python's `TypeError` on non-numerics is unreachable from typed bodies.
|
|
99
|
+
isFinite: { arity: 1, ts: 'Number.isFinite($0)', py: '__k_math.isfinite($0)', requires: { py: 'math' } },
|
|
100
|
+
// `Number.isNaN($0)` returns true ONLY for the NaN value itself (no
|
|
101
|
+
// coercion). Python's `math.isnan` matches that strict shape. Use `Number`
|
|
102
|
+
// (not the global `isNaN`) so the TS output is the strict, type-safe form.
|
|
103
|
+
isNaN: { arity: 1, ts: 'Number.isNaN($0)', py: '__k_math.isnan($0)', requires: { py: 'math' } },
|
|
93
104
|
},
|
|
94
105
|
};
|
|
95
106
|
export const KERN_STDLIB_MODULES = new Set(Object.keys(KERN_STDLIB));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kern-stdlib.js","sourceRoot":"","sources":["../../src/codegen/kern-stdlib.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"kern-stdlib.js","sourceRoot":"","sources":["../../src/codegen/kern-stdlib.ts"],"names":[],"mappings":"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"}
|
|
@@ -113,6 +113,16 @@ export function emitExpression(node) {
|
|
|
113
113
|
}
|
|
114
114
|
case 'arrayLit':
|
|
115
115
|
return `[${node.items.map(emitExpression).join(', ')}]`;
|
|
116
|
+
case 'conditional': {
|
|
117
|
+
// Slice α-2: ternary `test ? consequent : alternate`. Right-associative
|
|
118
|
+
// and lower precedence than every binary op — paren-wrap any non-atomic
|
|
119
|
+
// child to keep the round-tripped TS unambiguous to humans and tools.
|
|
120
|
+
const test = emitExpression(node.test);
|
|
121
|
+
const consequent = emitExpression(node.consequent);
|
|
122
|
+
const alternate = emitExpression(node.alternate);
|
|
123
|
+
const wrap = (child, emitted) => needsConditionalChildParens(child) ? `(${emitted})` : emitted;
|
|
124
|
+
return `${wrap(node.test, test)} ? ${wrap(node.consequent, consequent)} : ${wrap(node.alternate, alternate)}`;
|
|
125
|
+
}
|
|
116
126
|
case 'propagate':
|
|
117
127
|
throw new Error(`Propagation '${node.op}' is only allowed at statement level (top of \`let value=\` or \`return value=\`). ` +
|
|
118
128
|
`Mid-expression \`${node.op}\` (e.g., \`Text.upper(call()${node.op})\`) is rejected — bind the call to a \`let\` first, then use the bound name.`);
|
|
@@ -146,6 +156,23 @@ function needsParens(child, parentOp, side) {
|
|
|
146
156
|
function needsReceiverParens(child) {
|
|
147
157
|
return child.kind === 'binary' || child.kind === 'unary' || child.kind === 'spread';
|
|
148
158
|
}
|
|
159
|
+
/** Slice α-2: paren-wrap predicate for ternary children. Ternary has very
|
|
160
|
+
* low precedence — only `,` and assignment are lower. Atoms (idents,
|
|
161
|
+
* literals, calls, members, parenthesized) emit without extra parens.
|
|
162
|
+
* Binary/unary/await/spread/new/conditional get wrapped for clarity. */
|
|
163
|
+
function needsConditionalChildParens(child) {
|
|
164
|
+
switch (child.kind) {
|
|
165
|
+
case 'binary':
|
|
166
|
+
case 'unary':
|
|
167
|
+
case 'spread':
|
|
168
|
+
case 'await':
|
|
169
|
+
case 'new':
|
|
170
|
+
case 'conditional':
|
|
171
|
+
return true;
|
|
172
|
+
default:
|
|
173
|
+
return false;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
149
176
|
function escapeTemplateQuasi(s) {
|
|
150
177
|
return s.replace(/\\/g, '\\\\').replace(/`/g, '\\`').replace(/\$\{/g, '\\${');
|
|
151
178
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"codegen-expression.js","sourceRoot":"","sources":["../src/codegen-expression.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"codegen-expression.js","sourceRoot":"","sources":["../src/codegen-expression.ts"],"names":[],"mappings":"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"}
|
package/dist/concepts.d.ts
CHANGED
|
@@ -169,6 +169,26 @@ export interface EffectPayload {
|
|
|
169
169
|
* the server-side `bodyFieldsResolved` are true.
|
|
170
170
|
*/
|
|
171
171
|
sentFieldsResolved?: boolean;
|
|
172
|
+
/**
|
|
173
|
+
* For `network` subtype only — coarse type tag per `sentFields` entry.
|
|
174
|
+
* Same key set as `sentFields`. Each tag is one of:
|
|
175
|
+
* - `'string' | 'number' | 'boolean' | 'null'` — primitive literals
|
|
176
|
+
* - `'object' | 'array'` — nested structured values
|
|
177
|
+
* - `'unknown'` — value position present but type couldn't be inferred
|
|
178
|
+
* (fallback so the key isn't silently dropped from the type map)
|
|
179
|
+
*
|
|
180
|
+
* The tag is intentionally coarse — no string-literal narrowing
|
|
181
|
+
* (`'admin' | 'user'`), no nested object shape, no generics. Powers
|
|
182
|
+
* cross-stack rules that want "names + types match" precision (e.g.
|
|
183
|
+
* `body-shape-drift` upgrading from "name overlap" to "name + type
|
|
184
|
+
* overlap"). Without this every `userId: string` (client) would silently
|
|
185
|
+
* "match" a `userId: number` (server) just because the names overlap.
|
|
186
|
+
*
|
|
187
|
+
* Populated only when `sentFieldsResolved === true`. Field-set is a
|
|
188
|
+
* subset of `sentFields` (we never emit a tag for a field name that
|
|
189
|
+
* isn't already in the names list).
|
|
190
|
+
*/
|
|
191
|
+
sentFieldTypes?: Readonly<Record<string, 'string' | 'number' | 'boolean' | 'null' | 'object' | 'array' | 'unknown'>>;
|
|
172
192
|
/**
|
|
173
193
|
* For `network` subtype only. `true` when the call-site has a local error
|
|
174
194
|
* path (try/catch, `.catch`, `response.ok`/status check, or known error UI);
|
|
@@ -191,6 +211,39 @@ export interface EffectPayload {
|
|
|
191
211
|
* True when the mapper could fully inspect query parameters on the target URL.
|
|
192
212
|
*/
|
|
193
213
|
queryParamsResolved?: boolean;
|
|
214
|
+
/**
|
|
215
|
+
* For `network` subtype only. Lower-case host extracted from the call's URL
|
|
216
|
+
* when it was an absolute URL (`https://api.example.com/users` → `api.example.com`,
|
|
217
|
+
* `http://localhost:8080/x` → `localhost:8080`). Undefined for relative
|
|
218
|
+
* URLs (`/api/users`), template literals where the host is interpolated
|
|
219
|
+
* (`https://${HOST}/api`), and unresolved expressions.
|
|
220
|
+
*
|
|
221
|
+
* Captured but not yet consumed by cross-stack rules. Phase 1 of the
|
|
222
|
+
* surface-fingerprinting work — phase 2 will let cross-stack rules use
|
|
223
|
+
* this to filter out third-party hosts (e.g. a frontend `fetch` to
|
|
224
|
+
* `stripe.com/api/charges` should not match against the partner backend's
|
|
225
|
+
* `/api/charges` route).
|
|
226
|
+
*/
|
|
227
|
+
host?: string;
|
|
228
|
+
/**
|
|
229
|
+
* For `network` subtype only. The set of HTTP status codes the call-site
|
|
230
|
+
* EXPLICITLY branches on — extracted from `response.status === N`,
|
|
231
|
+
* `err.status === N`, `err.response?.status === N`, or `case N:` in a
|
|
232
|
+
* switch over one of those expressions. Excludes generic catch-all
|
|
233
|
+
* handlers (`catch (e) { log(e); }`), `response.ok` checks, and
|
|
234
|
+
* status-range tests (`status >= 400`).
|
|
235
|
+
*
|
|
236
|
+
* Empty list means we saw the network call but no explicit status
|
|
237
|
+
* dispatch — the call-site treats every failure identically. Undefined
|
|
238
|
+
* means the analysis was inconclusive (response variable escaped the
|
|
239
|
+
* scope, dynamic status check, etc).
|
|
240
|
+
*
|
|
241
|
+
* Phase 1 of the `error-contract-drift` work — phase 2 will compare
|
|
242
|
+
* this against the server-side `errorStatusCodes` to flag PRs that add
|
|
243
|
+
* a server status the client doesn't handle. Captured but not yet
|
|
244
|
+
* consumed.
|
|
245
|
+
*/
|
|
246
|
+
handledErrorStatusCodes?: readonly number[];
|
|
194
247
|
}
|
|
195
248
|
export interface StateMutationPayload {
|
|
196
249
|
readonly kind: 'state_mutation';
|
package/dist/concepts.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concepts.js","sourceRoot":"","sources":["../src/concepts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"concepts.js","sourceRoot":"","sources":["../src/concepts.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AA2WH,4EAA4E;AAE5E,MAAM,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAY,EAAE,MAAc;IACtE,OAAO,GAAG,QAAQ,IAAI,IAAI,IAAI,MAAM,EAAE,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,SAAiB,EACjB,QAAgB,EAChB,OAAgB,EAChB,MAAe;IAEf,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,EAAE,CAAC;AAClG,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ export type { GapCategory, GapClassification } from './migrate-literals.js';
|
|
|
25
25
|
export { classifyHandlerGap, isInlineSafeExpression, isInlineSafeLiteral } from './migrate-literals.js';
|
|
26
26
|
export type { EligibilityResult, FileEligibilityReport, RawBody } from './native-eligibility.js';
|
|
27
27
|
export { classifyHandlerBody, extractRawBodies, scanFileForEligibility } from './native-eligibility.js';
|
|
28
|
+
export type { AstEligibilityResult } from './native-eligibility-ast.js';
|
|
29
|
+
export { classifyHandlerBodyAst, hasComments, isValidKernExpression, } from './native-eligibility-ast.js';
|
|
28
30
|
export type { ActionProps, AssumeProps, BranchProps, CacheProps, CollectProps, ColumnProps, ConditionalProps, ConfigProps, ConstProps, DependencyProps, DeriveProps, EachProps, ErrorProps, EventProps, ExpectProps, FieldProps, FnProps, GuardProps, ImportProps, InterfaceProps, InvariantProps, MachineProps, MemoProps, MethodProps, ModelProps, ModuleProps, NodePropsMap, OnProps, OptionProps, PatternProps, RecoverProps, RelationProps, RepositoryProps, ResolveProps, SelectProps, ServiceProps, StateProps, StoreProps, TestProps, TransformProps, TransitionProps, TypeProps, UnionProps, VariantProps, WebSocketProps, } from './node-props.js';
|
|
29
31
|
export { propsOf, propsUntyped } from './node-props.js';
|
|
30
32
|
export type { Token, TokenKind } from './parser.js';
|
package/dist/index.js
CHANGED
|
@@ -35,6 +35,7 @@ export { KernCodegenError, KernConfigError, KernParseError } from './errors.js';
|
|
|
35
35
|
export { escapeKernString, importTypeScript } from './importer.js';
|
|
36
36
|
export { classifyHandlerGap, isInlineSafeExpression, isInlineSafeLiteral } from './migrate-literals.js';
|
|
37
37
|
export { classifyHandlerBody, extractRawBodies, scanFileForEligibility } from './native-eligibility.js';
|
|
38
|
+
export { classifyHandlerBodyAst, hasComments, isValidKernExpression, } from './native-eligibility-ast.js';
|
|
38
39
|
// Typed node props
|
|
39
40
|
export { propsOf, propsUntyped } from './node-props.js';
|
|
40
41
|
// Core
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,oBAAoB,EAAE,+BAA+B,EAAE,MAAM,sBAAsB,CAAC;AAE7F,OAAO,EACL,aAAa,EACb,WAAW,EACX,mBAAmB,EACnB,YAAY,EACZ,mBAAmB,GACpB,MAAM,0BAA0B,CAAC;AAElC,8EAA8E;AAC9E,OAAO,EACL,qBAAqB,EACrB,wBAAwB,EACxB,+BAA+B,EAC/B,kBAAkB,GACnB,MAAM,8BAA8B,CAAC;AAEtC,gCAAgC;AAChC,OAAO,EACL,eAAe,EACf,UAAU,EACV,sBAAsB,EACtB,eAAe,EACf,MAAM;AACN,4CAA4C;AAC5C,cAAc,EACd,mBAAmB,EACnB,qBAAqB;AACrB,kFAAkF;AAClF,aAAa,EACb,QAAQ,EACR,qBAAqB;AACrB,yEAAyE;AACzE,yEAAyE;AACzE,wEAAwE;AACxE,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,YAAY,EACZ,gBAAgB,EAChB,sBAAsB,EACtB,WAAW,EACX,aAAa;AACb,uDAAuD;AACvD,QAAQ,EACR,eAAe,EACf,SAAS,EACT,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,cAAc,EACd,0BAA0B;AAC1B,uDAAuD;AACvD,wBAAwB,EACxB,8BAA8B,EAC9B,iBAAiB,EACjB,aAAa,EACb,0BAA0B,GAC3B,MAAM,mBAAmB,CAAC;AAC3B,0EAA0E;AAC1E,0EAA0E;AAC1E,yEAAyE;AACzE,oDAAoD;AACpD,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAoB5F,mDAAmD;AACnD,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AASvD,SAAS;AACT,OAAO,EACL,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,GACd,MAAM,aAAa,CAAC;AAErB,4BAA4B;AAC5B,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC7F,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEnE,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAIxG,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/** Native KERN handler-body AST eligibility — slice α-3.
|
|
2
|
+
*
|
|
3
|
+
* Replaces slice 5a's regex pre-screen (in `native-eligibility.ts`) with a
|
|
4
|
+
* TS-AST walk that mirrors the migrator's `mapStatement` rules in
|
|
5
|
+
* `packages/cli/src/commands/migrate-native-handlers.ts`. After this slice,
|
|
6
|
+
* the diagnostic and the migrator agree by construction:
|
|
7
|
+
*
|
|
8
|
+
* classifyHandlerBodyAst(body).eligible === true
|
|
9
|
+
* ⟺ kern migrate native-handlers will emit a `lang="kern"` rewrite for it.
|
|
10
|
+
*
|
|
11
|
+
* Why this matters: the slice 5a regex disagreed with the migrator's deeper
|
|
12
|
+
* TS-AST shape check on ~34% of "eligible" bodies (agon scan, 2026-05-04).
|
|
13
|
+
* Promoting the diagnostic from `info` to `warn` at that disagreement rate
|
|
14
|
+
* would surface fix-or-suppress noise on bodies the migrator silently bails
|
|
15
|
+
* on — exactly the no-unused-vars trust-collapse pattern. AST agreement is
|
|
16
|
+
* the prerequisite for the future warn promotion.
|
|
17
|
+
*
|
|
18
|
+
* The reason strings here are deliberately specific (e.g. `var-destructure`,
|
|
19
|
+
* `try-finally`, `expr-stmt-mutation`) so users running
|
|
20
|
+
* `kern migrate native-handlers` and `kern review` see actionable hints
|
|
21
|
+
* instead of a generic "ineligible". */
|
|
22
|
+
export interface AstEligibilityResult {
|
|
23
|
+
eligible: boolean;
|
|
24
|
+
/** When eligible: 'empty' | 'ok'.
|
|
25
|
+
* When ineligible: a short kebab-case slug naming the first blocking shape.
|
|
26
|
+
* Examples: 'comments-present', 'ts-parse-error', 'var-destructure',
|
|
27
|
+
* 'var-non-const', 'try-finally', 'for-stmt', 'expr-stmt-mutation',
|
|
28
|
+
* 'return-bad-expr', 'unsupported-stmt-<Kind>'. */
|
|
29
|
+
reason: string;
|
|
30
|
+
}
|
|
31
|
+
/** True when `exprText` parses cleanly under KERN's parser-expression. The
|
|
32
|
+
* multi-line guard catches body-statement attributes (`value="…"`) where
|
|
33
|
+
* raw newlines would break the line shape.
|
|
34
|
+
*
|
|
35
|
+
* Exported so the migrator (`migrate-native-handlers.ts`) shares the
|
|
36
|
+
* same predicate the classifier uses — slice α-3 gemini review pulled
|
|
37
|
+
* the formerly duplicated helper into core to prevent the migrator's
|
|
38
|
+
* bail conditions from drifting away from the classifier's pass
|
|
39
|
+
* conditions. */
|
|
40
|
+
export declare function isValidKernExpression(exprText: string): boolean;
|
|
41
|
+
/** True when `bodyText` contains any line or block comment. The migrator
|
|
42
|
+
* drops comments silently on rewrite, so a body containing them is
|
|
43
|
+
* ineligible — preserving the comment is the user's responsibility.
|
|
44
|
+
* Exported (slice α-3 gemini review) so the migrator imports the same
|
|
45
|
+
* scanner predicate and comment-detection cannot diverge between the
|
|
46
|
+
* two sides. */
|
|
47
|
+
export declare function hasComments(bodyText: string): boolean;
|
|
48
|
+
/** Classify a raw `<<<…>>>` handler body — the AST-aware replacement for
|
|
49
|
+
* the slice 5a regex pass. Returns `eligible: true` only if every top-level
|
|
50
|
+
* statement (and every nested if/try branch) maps to a body-statement form
|
|
51
|
+
* the migrator can emit. */
|
|
52
|
+
export declare function classifyHandlerBodyAst(rawBody: string): AstEligibilityResult;
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/** Native KERN handler-body AST eligibility — slice α-3.
|
|
2
|
+
*
|
|
3
|
+
* Replaces slice 5a's regex pre-screen (in `native-eligibility.ts`) with a
|
|
4
|
+
* TS-AST walk that mirrors the migrator's `mapStatement` rules in
|
|
5
|
+
* `packages/cli/src/commands/migrate-native-handlers.ts`. After this slice,
|
|
6
|
+
* the diagnostic and the migrator agree by construction:
|
|
7
|
+
*
|
|
8
|
+
* classifyHandlerBodyAst(body).eligible === true
|
|
9
|
+
* ⟺ kern migrate native-handlers will emit a `lang="kern"` rewrite for it.
|
|
10
|
+
*
|
|
11
|
+
* Why this matters: the slice 5a regex disagreed with the migrator's deeper
|
|
12
|
+
* TS-AST shape check on ~34% of "eligible" bodies (agon scan, 2026-05-04).
|
|
13
|
+
* Promoting the diagnostic from `info` to `warn` at that disagreement rate
|
|
14
|
+
* would surface fix-or-suppress noise on bodies the migrator silently bails
|
|
15
|
+
* on — exactly the no-unused-vars trust-collapse pattern. AST agreement is
|
|
16
|
+
* the prerequisite for the future warn promotion.
|
|
17
|
+
*
|
|
18
|
+
* The reason strings here are deliberately specific (e.g. `var-destructure`,
|
|
19
|
+
* `try-finally`, `expr-stmt-mutation`) so users running
|
|
20
|
+
* `kern migrate native-handlers` and `kern review` see actionable hints
|
|
21
|
+
* instead of a generic "ineligible". */
|
|
22
|
+
import ts from 'typescript';
|
|
23
|
+
import { parseExpression } from './parser-expression.js';
|
|
24
|
+
/** True when `exprText` parses cleanly under KERN's parser-expression. The
|
|
25
|
+
* multi-line guard catches body-statement attributes (`value="…"`) where
|
|
26
|
+
* raw newlines would break the line shape.
|
|
27
|
+
*
|
|
28
|
+
* Exported so the migrator (`migrate-native-handlers.ts`) shares the
|
|
29
|
+
* same predicate the classifier uses — slice α-3 gemini review pulled
|
|
30
|
+
* the formerly duplicated helper into core to prevent the migrator's
|
|
31
|
+
* bail conditions from drifting away from the classifier's pass
|
|
32
|
+
* conditions. */
|
|
33
|
+
export function isValidKernExpression(exprText) {
|
|
34
|
+
if (/\n/.test(exprText))
|
|
35
|
+
return false;
|
|
36
|
+
try {
|
|
37
|
+
parseExpression(exprText);
|
|
38
|
+
return true;
|
|
39
|
+
}
|
|
40
|
+
catch {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/** True when `bodyText` contains any line or block comment. The migrator
|
|
45
|
+
* drops comments silently on rewrite, so a body containing them is
|
|
46
|
+
* ineligible — preserving the comment is the user's responsibility.
|
|
47
|
+
* Exported (slice α-3 gemini review) so the migrator imports the same
|
|
48
|
+
* scanner predicate and comment-detection cannot diverge between the
|
|
49
|
+
* two sides. */
|
|
50
|
+
export function hasComments(bodyText) {
|
|
51
|
+
const scanner = ts.createScanner(ts.ScriptTarget.Latest, /*skipTrivia*/ false);
|
|
52
|
+
scanner.setText(bodyText);
|
|
53
|
+
while (true) {
|
|
54
|
+
const kind = scanner.scan();
|
|
55
|
+
if (kind === ts.SyntaxKind.EndOfFileToken)
|
|
56
|
+
return false;
|
|
57
|
+
if (kind === ts.SyntaxKind.SingleLineCommentTrivia || kind === ts.SyntaxKind.MultiLineCommentTrivia)
|
|
58
|
+
return true;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
/** Classify a single statement. Returns null if the migrator can emit it,
|
|
62
|
+
* otherwise a kebab-case reason. Recurses through if/try branches. */
|
|
63
|
+
function classifyStmt(stmt, sf) {
|
|
64
|
+
if (ts.isVariableStatement(stmt)) {
|
|
65
|
+
const flags = stmt.declarationList.flags;
|
|
66
|
+
if (!(flags & ts.NodeFlags.Const))
|
|
67
|
+
return 'var-non-const';
|
|
68
|
+
const decls = stmt.declarationList.declarations;
|
|
69
|
+
if (decls.length !== 1)
|
|
70
|
+
return 'var-multi-decl';
|
|
71
|
+
const decl = decls[0];
|
|
72
|
+
if (!ts.isIdentifier(decl.name))
|
|
73
|
+
return 'var-destructure';
|
|
74
|
+
if (!decl.initializer)
|
|
75
|
+
return 'var-no-init';
|
|
76
|
+
if (decl.type)
|
|
77
|
+
return 'var-typed';
|
|
78
|
+
if (!isValidKernExpression(decl.initializer.getText(sf)))
|
|
79
|
+
return 'var-bad-expr';
|
|
80
|
+
return null;
|
|
81
|
+
}
|
|
82
|
+
if (ts.isReturnStatement(stmt)) {
|
|
83
|
+
if (!stmt.expression)
|
|
84
|
+
return null;
|
|
85
|
+
if (!isValidKernExpression(stmt.expression.getText(sf)))
|
|
86
|
+
return 'return-bad-expr';
|
|
87
|
+
return null;
|
|
88
|
+
}
|
|
89
|
+
if (ts.isThrowStatement(stmt)) {
|
|
90
|
+
if (!stmt.expression)
|
|
91
|
+
return 'throw-no-expr';
|
|
92
|
+
if (!isValidKernExpression(stmt.expression.getText(sf)))
|
|
93
|
+
return 'throw-bad-expr';
|
|
94
|
+
return null;
|
|
95
|
+
}
|
|
96
|
+
if (ts.isIfStatement(stmt)) {
|
|
97
|
+
if (!isValidKernExpression(stmt.expression.getText(sf)))
|
|
98
|
+
return 'if-bad-cond';
|
|
99
|
+
const thenReason = classifyBranch(stmt.thenStatement, sf);
|
|
100
|
+
if (thenReason !== null)
|
|
101
|
+
return thenReason;
|
|
102
|
+
if (stmt.elseStatement) {
|
|
103
|
+
// `else if (…)` is a nested IfStatement here. The migrator's mapIf
|
|
104
|
+
// recurses for it, and the body emitters (TS + Python) collapse the
|
|
105
|
+
// resulting `else > if` shape back to `else if` / `elif` (commit
|
|
106
|
+
// 88c06dcc on dev). classifyBranch handles the nested IfStatement
|
|
107
|
+
// by re-entering classifyStmt, so the recursion is automatic.
|
|
108
|
+
const elseReason = classifyBranch(stmt.elseStatement, sf);
|
|
109
|
+
if (elseReason !== null)
|
|
110
|
+
return elseReason;
|
|
111
|
+
}
|
|
112
|
+
return null;
|
|
113
|
+
}
|
|
114
|
+
if (ts.isTryStatement(stmt)) {
|
|
115
|
+
if (!stmt.catchClause)
|
|
116
|
+
return 'try-no-catch';
|
|
117
|
+
if (stmt.finallyBlock)
|
|
118
|
+
return 'try-finally';
|
|
119
|
+
const cc = stmt.catchClause;
|
|
120
|
+
if (cc.variableDeclaration && !ts.isIdentifier(cc.variableDeclaration.name))
|
|
121
|
+
return 'try-destruct-catch';
|
|
122
|
+
const tryReason = classifyBranch(stmt.tryBlock, sf);
|
|
123
|
+
if (tryReason !== null)
|
|
124
|
+
return tryReason;
|
|
125
|
+
return classifyBranch(cc.block, sf);
|
|
126
|
+
}
|
|
127
|
+
if (ts.isExpressionStatement(stmt)) {
|
|
128
|
+
// Slice α-1: ExpressionStatement → `do value="…"`. Reject mutation
|
|
129
|
+
// (assignments, ++, --) here so the classifier matches what the migrator
|
|
130
|
+
// emits — the migrator has the same defensive guards.
|
|
131
|
+
if (ts.isBinaryExpression(stmt.expression)) {
|
|
132
|
+
const op = stmt.expression.operatorToken.kind;
|
|
133
|
+
if (op >= ts.SyntaxKind.FirstAssignment && op <= ts.SyntaxKind.LastAssignment)
|
|
134
|
+
return 'expr-stmt-assignment';
|
|
135
|
+
}
|
|
136
|
+
if (ts.isPostfixUnaryExpression(stmt.expression) || ts.isPrefixUnaryExpression(stmt.expression)) {
|
|
137
|
+
const op = stmt.expression.operator;
|
|
138
|
+
if (op === ts.SyntaxKind.PlusPlusToken || op === ts.SyntaxKind.MinusMinusToken)
|
|
139
|
+
return 'expr-stmt-mutation';
|
|
140
|
+
}
|
|
141
|
+
if (!isValidKernExpression(stmt.expression.getText(sf)))
|
|
142
|
+
return 'expr-stmt-bad-expr';
|
|
143
|
+
return null;
|
|
144
|
+
}
|
|
145
|
+
if (ts.isForStatement(stmt) || ts.isForOfStatement(stmt) || ts.isForInStatement(stmt))
|
|
146
|
+
return 'for-stmt';
|
|
147
|
+
if (ts.isWhileStatement(stmt) || ts.isDoStatement(stmt))
|
|
148
|
+
return 'while-do-stmt';
|
|
149
|
+
if (ts.isSwitchStatement(stmt))
|
|
150
|
+
return 'switch-stmt';
|
|
151
|
+
if (ts.isBlock(stmt))
|
|
152
|
+
return 'bare-block';
|
|
153
|
+
// Fallback — the TS SyntaxKind name surfaces in diagnostics so users have
|
|
154
|
+
// a starting point when they hit something exotic (label, with, debugger).
|
|
155
|
+
return `unsupported-stmt-${ts.SyntaxKind[stmt.kind]}`;
|
|
156
|
+
}
|
|
157
|
+
function classifyBranch(node, sf) {
|
|
158
|
+
const stmts = ts.isBlock(node) ? Array.from(node.statements) : [node];
|
|
159
|
+
for (const s of stmts) {
|
|
160
|
+
const r = classifyStmt(s, sf);
|
|
161
|
+
if (r !== null)
|
|
162
|
+
return r;
|
|
163
|
+
}
|
|
164
|
+
return null;
|
|
165
|
+
}
|
|
166
|
+
/** Classify a raw `<<<…>>>` handler body — the AST-aware replacement for
|
|
167
|
+
* the slice 5a regex pass. Returns `eligible: true` only if every top-level
|
|
168
|
+
* statement (and every nested if/try branch) maps to a body-statement form
|
|
169
|
+
* the migrator can emit. */
|
|
170
|
+
export function classifyHandlerBodyAst(rawBody) {
|
|
171
|
+
const trimmed = rawBody.trim();
|
|
172
|
+
if (trimmed === '')
|
|
173
|
+
return { eligible: true, reason: 'empty' };
|
|
174
|
+
if (hasComments(rawBody))
|
|
175
|
+
return { eligible: false, reason: 'comments-present' };
|
|
176
|
+
const sf = ts.createSourceFile('__handler.ts', rawBody, ts.ScriptTarget.Latest, true);
|
|
177
|
+
// ts.SourceFile carries `parseDiagnostics` despite not exposing it on the
|
|
178
|
+
// public type — the migrator reads it the same way.
|
|
179
|
+
const diags = sf.parseDiagnostics;
|
|
180
|
+
if (diags && diags.length > 0)
|
|
181
|
+
return { eligible: false, reason: 'ts-parse-error' };
|
|
182
|
+
for (const stmt of sf.statements) {
|
|
183
|
+
const r = classifyStmt(stmt, sf);
|
|
184
|
+
if (r !== null)
|
|
185
|
+
return { eligible: false, reason: r };
|
|
186
|
+
}
|
|
187
|
+
return { eligible: true, reason: 'ok' };
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=native-eligibility-ast.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"native-eligibility-ast.js","sourceRoot":"","sources":["../src/native-eligibility-ast.ts"],"names":[],"mappings":"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"}
|