@nudojs/core 1.4.0 → 1.6.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/{chunk-7QUVTEYZ.js → chunk-I35CHJNO.js} +120 -34
- package/dist/{chunk-LFCF6BLE.js → chunk-LZJC7X5J.js} +2140 -1810
- package/dist/exec.d.ts +5 -3
- package/dist/exec.js +3 -1
- package/dist/index.d.ts +19 -7
- package/dist/index.js +105 -51
- package/dist/internal.d.ts +23 -5
- package/dist/internal.js +108 -16
- package/dist/{check-report-Ci1dDysO.d.ts → projection-budget-CGbs16aX.d.ts} +61 -3
- package/dist/{run-WJfj477N.d.ts → run-Dg7gQO2z.d.ts} +6 -2
- package/package.json +1 -1
package/dist/exec.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { A as Abs, M as MayThrowEffect, b as Phi } from './run-
|
|
2
|
-
export { O as $assignRecord, Q as $call, U as $callNamed, V as $recordBinding, a1 as EvalAbsAssignRecord, a2 as EvalCallRecord, a3 as EvalFallback, f as EvalFallbackStats, a6 as MAX_EVAL_CALL_DEPTH, a7 as MAX_EVAL_TOTAL_CALLS, a8 as RUNTIME_IMPORT_RE, N as RunTranspiledOptions, aa as TranspiledCallResult, ao as bindingsOf, ar as callTranspiledExport, as as callTranspiledExportApply, at as callTranspiledExportFull, g as clearPureCallMemo, h as clearPureMemo, i as enterEvalCallBudgetSession, ay as evalExprAbs, k as exitEvalCallBudgetSession, q as getEvalCallBudgetState, aB as getEvalCallCollector, r as getEvalFallbackStats,
|
|
1
|
+
import { A as Abs, M as MayThrowEffect, b as Phi } from './run-Dg7gQO2z.js';
|
|
2
|
+
export { O as $assignRecord, Q as $call, U as $callNamed, V as $recordBinding, a1 as EvalAbsAssignRecord, a2 as EvalCallRecord, a3 as EvalFallback, f as EvalFallbackStats, a6 as MAX_EVAL_CALL_DEPTH, a7 as MAX_EVAL_TOTAL_CALLS, a8 as RUNTIME_IMPORT_RE, N as RunTranspiledOptions, aa as TranspiledCallResult, ao as bindingsOf, ar as callTranspiledExport, as as callTranspiledExportApply, at as callTranspiledExportFull, g as clearPureCallMemo, h as clearPureMemo, i as enterEvalCallBudgetSession, ay as evalExprAbs, k as exitEvalCallBudgetSession, q as getEvalCallBudgetState, aB as getEvalCallCollector, r as getEvalFallbackStats, aI as isAbsVal, a_ as noteEvalCallRecord, a$ as noteEvalFallback, bg as resetEvalCallBudget, z as resetEvalFallbackStats, bA as routeApplyThrows, bh as runTranspiled, bi as runTranspiledOptionsMemoKey, bj as setEvalAssignCollector, bk as setEvalBindingSink, bl as setEvalCallCollector, bm as setEvalFallbackCollector, bx as tryRunTranspiled, H as withEvalBudgetOverride } from './run-Dg7gQO2z.js';
|
|
3
3
|
import { Node, Expression, File } from '@babel/types';
|
|
4
4
|
|
|
5
5
|
/**
|
|
@@ -584,7 +584,9 @@ declare class NudoUnsupportedError extends Error {
|
|
|
584
584
|
constructor(reason: string, loc?: {
|
|
585
585
|
line: number;
|
|
586
586
|
column: number;
|
|
587
|
-
}
|
|
587
|
+
},
|
|
588
|
+
/** BUG-026:附加辨析面(如 class 碰撞的双方特征)——进 message 随回落观测 */
|
|
589
|
+
detail?: string);
|
|
588
590
|
}
|
|
589
591
|
|
|
590
592
|
export { $add, $arguments, $arr, $arrMutContainer, $arrRest, $arrWithHoles, $async, $asyncReturn, $await, $bitand, $bitnot, $bitor, $bitxor, $catchVal, $class, $classExpr, $collectionForEach, $concat, $copy, $del, $delRes, $div, $dynamicImport, $elems, $eq, $eqLoose, $fnVal, $for, $forInKeys, $forIter, $forOf, $fork, $ge, $gen, $get, $gt, $idx, $idxSet, $importMeta, $in, $instanceof, $instanceofNonIdent, $invoke, $invokeSuper, $isBreakTo, $isForkExit, $join, $le, $len, $lit, $loopBreak, $loopContinue, $loopReturn, $lt, $mod, $mul, $ne, $neLoose, $neg, $new, $not, $nullishTest, $obj, $objAccessor, $objRest, $optionalGet, $optionalInvoke, $orDefault, $pow, $pushLoopExit, $rawThis, $reStateCall, $regex, $rethrowIfNudoReturn, $set, $setKey, $setProto, $shl, $shr, $spread, $staticInvoke, $sub, $super, $switch, $thisGet, $thisSet, $throw, $toNumber, $toNumeric, $tryCurrentMark, $tryDetachSoftCatch, $tryDigestSoftCatch, $tryDiscardSoft, $tryMark, $tryOrphanSoft, $tryPopMark, $tryReleaseSoftCatch, $tryReleaseSoftOut, $tryTakeSince, $typeof, $unknown, $updateAdd, $updateSub, $ushr, $while, $whileSeq, $yield, DEFAULT_MAX_LOOP_ITERS, type EvalClassSpec, NudoLoopSignal, NudoReturn, NudoThrow, NudoUnsupportedError, type TranspileOptions, asAbsVal, callAtFunctionBoundary, clearBClasses, clearStaleTermPred, currentExecPhi, fillTuple, foldRequireSpecArg, foldStaticStringExpr, getEvalClass, isArrMutator, isDefinitelyFalse, isDefinitelyTrue, isNudoBreak, isNudoContinue, isNudoReturn, isNudoThrow, litTruth, lookupObjAccessor, namespaceNameOf, pushLoopExit, pushThrowExit, registerEvalClass, runWithLoopExits, runtimeImportOf, takeLoopExits, takeThrowExits, transpile, transpileBodyNode, transpileExpression, transpileFile, transpileSource, withExecPhi };
|
package/dist/exec.js
CHANGED
|
@@ -140,6 +140,7 @@ import {
|
|
|
140
140
|
getEvalCallCollector,
|
|
141
141
|
getEvalClass,
|
|
142
142
|
getEvalFallbackStats,
|
|
143
|
+
isAbsVal,
|
|
143
144
|
isArrMutator,
|
|
144
145
|
isDefinitelyFalse,
|
|
145
146
|
isDefinitelyTrue,
|
|
@@ -176,7 +177,7 @@ import {
|
|
|
176
177
|
tryRunTranspiled,
|
|
177
178
|
withEvalBudgetOverride,
|
|
178
179
|
withExecPhi
|
|
179
|
-
} from "./chunk-
|
|
180
|
+
} from "./chunk-LZJC7X5J.js";
|
|
180
181
|
export {
|
|
181
182
|
$add,
|
|
182
183
|
$arguments,
|
|
@@ -318,6 +319,7 @@ export {
|
|
|
318
319
|
getEvalCallCollector,
|
|
319
320
|
getEvalClass,
|
|
320
321
|
getEvalFallbackStats,
|
|
322
|
+
isAbsVal,
|
|
321
323
|
isArrMutator,
|
|
322
324
|
isDefinitelyFalse,
|
|
323
325
|
isDefinitelyTrue,
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { c as AstEnv, A as Abs, b as Phi, T as Term, I as HofCollectCtx, C as Confidence, S as Shape, a as Pred, R as RelSource, J as HofSite, K as AbsModuleExports, N as RunTranspiledOptions } from './run-
|
|
2
|
-
export { O as $assignRecord, Q as $call, U as $callNamed, V as $recordBinding, W as AbsApplyNoThrow, X as AbsApplyNoThrowFn, Y as AbsApplyResult, Z as AbsApplyReturn, _ as AbsFnImpl, a0 as AbsSigImpl, a1 as EvalAbsAssignRecord, a2 as EvalCallRecord, a3 as EvalFallback, a4 as ImplicationOracle, a5 as LitValueResult, L as LiteralValue, a6 as MAX_EVAL_CALL_DEPTH, a7 as MAX_EVAL_TOTAL_CALLS, P as PrimName, a8 as RUNTIME_IMPORT_RE, a9 as TYPEOF_NAMES, aa as TranspiledCallResult, ab as TypeofName, ac as abs, ad as absFunction, ae as absOnly, af as absToString, ag as and, ah as anyAbs, ai as anyVar, aj as app, ak as assumeFinite, al as attachFnImpl, am as bigintLit, an as bindImports, ao as bindingsOf, ap as bool, aq as boolLit, ar as callTranspiledExport, as as callTranspiledExportApply, at as callTranspiledExportFull, au as collectAbsExports, av as confJoin, aw as emptyPhi, ax as eq, ay as evalExprAbs, az as ge, aA as geNum, aB as getEvalCallCollector, aC as getFnImpl, aD as getImplicationOracle, aE as gt, aF as gtNum, aG as implies, aH as isAbsApplyResult, aI as
|
|
1
|
+
import { c as AstEnv, A as Abs, b as Phi, T as Term, I as HofCollectCtx, C as Confidence, S as Shape, a as Pred, R as RelSource, J as HofSite, K as AbsModuleExports, N as RunTranspiledOptions } from './run-Dg7gQO2z.js';
|
|
2
|
+
export { O as $assignRecord, Q as $call, U as $callNamed, V as $recordBinding, W as AbsApplyNoThrow, X as AbsApplyNoThrowFn, Y as AbsApplyResult, Z as AbsApplyReturn, _ as AbsFnImpl, a0 as AbsSigImpl, a1 as EvalAbsAssignRecord, a2 as EvalCallRecord, a3 as EvalFallback, a4 as ImplicationOracle, a5 as LitValueResult, L as LiteralValue, a6 as MAX_EVAL_CALL_DEPTH, a7 as MAX_EVAL_TOTAL_CALLS, P as PrimName, a8 as RUNTIME_IMPORT_RE, a9 as TYPEOF_NAMES, aa as TranspiledCallResult, ab as TypeofName, ac as abs, ad as absFunction, ae as absOnly, af as absToString, ag as and, ah as anyAbs, ai as anyVar, aj as app, ak as assumeFinite, al as attachFnImpl, am as bigintLit, an as bindImports, ao as bindingsOf, ap as bool, aq as boolLit, ar as callTranspiledExport, as as callTranspiledExportApply, at as callTranspiledExportFull, au as collectAbsExports, av as confJoin, aw as emptyPhi, ax as eq, ay as evalExprAbs, az as ge, aA as geNum, aB as getEvalCallCollector, aC as getFnImpl, aD as getImplicationOracle, aE as gt, aF as gtNum, aG as implies, aH as isAbsApplyResult, aI as isAbsVal, aJ as isBigPrim, aK as isExactLit, aL as isNumPrim, aM as isStrPrim, aN as le, aO as leNum, aP as lit, aQ as litValue, aR as lt, aS as ltNum, aT as makeAbsApplyResult, aU as markPureFn, aV as namespaceAbsOf, aW as ne, aX as negatePred, aY as never, aZ as not, a_ as noteEvalCallRecord, a$ as noteEvalFallback, b0 as num, b1 as numLit, b2 as numVar, b3 as obj, b4 as or, b5 as pFalse, b6 as pTrue, b7 as phiAnd, b8 as predEquals, b9 as predToString, ba as predVars, bb as primToTypeof, bc as ptypeof, bd as pureFnNameOf, be as relationFingerprint, bf as relationFn, bg as resetEvalCallBudget, bh as runTranspiled, bi as runTranspiledOptionsMemoKey, bj as setEvalAssignCollector, bk as setEvalBindingSink, bl as setEvalCallCollector, bm as setEvalFallbackCollector, bn as setImplicationOracle, bo as shapeOfTerm, bp as shapeOnlyFn, bq as shapeToString, br as simplifyTerm, bs as str, bt as strLit, bu as substPred, bv as termEquals, bw as termToString, bx as tryRunTranspiled, by as unknown, bz as v } from './run-Dg7gQO2z.js';
|
|
3
3
|
import { Node, File } from '@babel/types';
|
|
4
|
-
import { p as parseSource, L as LeakBudget, E as EffectiveInterfaceOpts, b as LoadDepsFingerprint,
|
|
5
|
-
export {
|
|
4
|
+
import { p as parseSource, L as LeakBudget, E as EffectiveInterfaceOpts, b as LoadDepsFingerprint, v as CheckReport, N as NudoConstraint, c as ProjectionBudget } from './projection-budget-CGbs16aX.js';
|
|
5
|
+
export { w as CONSTRAINT_BUILDERS, x as CONSTRAINT_BUILDER_NAMES, y as CONSTRAINT_EXPR_RE, z as CheckAction, C as CheckIssue, A as CheckJson, B as CheckJsonMulti, D as ConstraintBuilder, F as Diagnostic, G as EffectiveInterface, H as GitlabCodeQualityIssue, J as InterfaceDiag, I as InterfaceSource, K as InterfaceTierInfo, a as InterfaceTierOpts, O as NamedImport, Q as NudoField, R as NudoFnConstraint, S as NudoSidecarError, T as NudoSig, U as RefineDiag, V as RefineEntry, W as RefineResolveOpts, X as SELF, Y as actionsForIssue, Z as andC, _ as any, $ as array, a0 as boolean, a1 as checkArg, a2 as checkCall, a3 as constraintAdmitsNullish, a4 as constraintToEntryAbs, a5 as drainPromiseMicros, a6 as effectiveInterface, a7 as enterPromiseExecutorScope, a8 as evalPromiseCtor, a9 as evalPromiseMethod, aa as evalPromiseStatic, ab as execNudoModule, ac as extractDeclaredThrows, ad as extractFnBudget, ae as extractNudoImports, af as extractRefineReturnFromSource, ag as extractRefinesFromSource, ah as fn, ai as fnConstraintToEntryReqs, aj as formatCheckReport, ak as formatConstraint, al as formatDiagnostics, am as formatEffectiveInterfaceDisplay, an as formatGithubAnnotations, ao as formatGitlabCodeQuality, ap as formatInterfaceTierLine, aq as generatedExportNames, ar as getParseSourceCacheSize, as as getTerm, at as instantiateConstraint, au as interfaceDiagCount, av as interfaceSourceOf, aw as interfaceTierOf, ax as isIntFlag, ay as isNodeModulesPath, az as isNudoConstraint, aA as leavePromiseExecutorScope, aB as lenTerm, aC as litC, aD as localNamedExports, aE as notePromiseExecutorFork, aF as nullable, aG as number, aH as omit, aI as partial, aJ as pick, aK as queuePromiseMicro, aL as refineDiagCount, aM as refineToIndexedFull, aN as resetNudoModuleExecCache, aO as resetParseSourceCache, aP as resetSidecarLoadFailureCache, aQ as serializeCheckJson, aR as serializeCheckJsonMulti, aS as setInterfaceDiagCollector, aT as setRefineDiagCollector, aU as shape, aV as sidecarClosureFingerprint, aW as sidecarPathOf, aX as string, aY as takeInterfaceDiags, aZ as takeInterfaceDiagsSince, a_ as takeRefineDiags, a$ as takeRefineDiagsSince, b0 as throwConstraintToKinds, b1 as union } from './projection-budget-CGbs16aX.js';
|
|
6
6
|
export { $add, $arguments, $arr, $arrMutContainer, $arrRest, $arrWithHoles, $async, $asyncReturn, $await, $bitand, $bitnot, $bitor, $bitxor, $catchVal, $class, $classExpr, $collectionForEach, $concat, $copy, $del, $delRes, $div, $dynamicImport, $elems, $eq, $eqLoose, $fnVal, $for, $forInKeys, $forIter, $forOf, $fork, $ge, $gen, $get, $gt, $idx, $idxSet, $importMeta, $in, $instanceof, $instanceofNonIdent, $invoke, $invokeSuper, $isBreakTo, $isForkExit, $join, $le, $len, $lit, $loopBreak, $loopContinue, $loopReturn, $lt, $mod, $mul, $ne, $neLoose, $neg, $new, $not, $nullishTest, $obj, $objAccessor, $objRest, $optionalGet, $optionalInvoke, $orDefault, $pow, $pushLoopExit, $rawThis, $reStateCall, $regex, $rethrowIfNudoReturn, $set, $setKey, $shl, $shr, $spread, $staticInvoke, $sub, $super, $switch, $thisGet, $thisSet, $throw, $toNumber, $toNumeric, $tryCurrentMark, $tryDetachSoftCatch, $tryDigestSoftCatch, $tryDiscardSoft, $tryMark, $tryOrphanSoft, $tryPopMark, $tryReleaseSoftCatch, $tryReleaseSoftOut, $tryTakeSince, $typeof, $unknown, $updateAdd, $updateSub, $ushr, $while, $whileSeq, $yield, DEFAULT_MAX_LOOP_ITERS, EvalClassSpec, NudoLoopSignal, NudoReturn, NudoThrow, NudoUnsupportedError, TranspileOptions, asAbsVal, callAtFunctionBoundary, clearBClasses, clearStaleTermPred, currentExecPhi, fillTuple, foldRequireSpecArg, foldStaticStringExpr, getEvalClass, isArrMutator, isDefinitelyFalse, isDefinitelyTrue, isNudoBreak, isNudoContinue, isNudoReturn, isNudoThrow, litTruth, lookupObjAccessor, namespaceNameOf, pushLoopExit, pushThrowExit, registerEvalClass, runWithLoopExits, runtimeImportOf, takeLoopExits, takeThrowExits, transpile, transpileBodyNode, transpileExpression, transpileFile, transpileSource, withExecPhi } from './exec.js';
|
|
7
7
|
|
|
8
8
|
/**
|
|
@@ -365,7 +365,12 @@ declare function setPropFlags(o: Abs, key: string, f: PropFlags): void;
|
|
|
365
365
|
declare function migrateInvariants(from: Abs, to: Abs): void;
|
|
366
366
|
|
|
367
367
|
/**
|
|
368
|
-
* Math.* — 字面量实参走 ToNumber/ToInt32
|
|
368
|
+
* Math.* — 字面量实参走 ToNumber/ToInt32 后调用原生折叠;非字面量对
|
|
369
|
+
* min/max/round/floor/ceil/trunc 透传数值区间(#68)。
|
|
370
|
+
*
|
|
371
|
+
* NaN 策略(DEC:显式 NaN 臂):操作数可能为 NaN 时结果为
|
|
372
|
+
* `NaN | number@bounds`。契约 `ge(0).le(100)` 对 NaN 臂诚实报违例;
|
|
373
|
+
* `if (Number.isNaN(n)) return …` 假臂的 `ne(n, NaN)` 事实可排除 NaN 臂。
|
|
369
374
|
*/
|
|
370
375
|
|
|
371
376
|
declare function evalMathMethod(name: string, args: Abs[]): Abs | undefined;
|
|
@@ -1101,12 +1106,17 @@ type MockModuleRecord = {
|
|
|
1101
1106
|
*/
|
|
1102
1107
|
declare function parseMockModulePayload(payload: string): MockModuleRecord | undefined;
|
|
1103
1108
|
type NudoImportRecord = {
|
|
1109
|
+
/** 本地绑定名(`a as b` 的 `b`,@nudo:contract 的引用名);namespace 记 `*ns` */
|
|
1104
1110
|
names: string[];
|
|
1111
|
+
/** local → 侧车原始导出名(`a as b` 的 `a`);未写别名的名字不进表 */
|
|
1112
|
+
importedOfLocal: Record<string, string>;
|
|
1105
1113
|
spec: string;
|
|
1106
1114
|
};
|
|
1107
1115
|
/**
|
|
1108
1116
|
* `@nudo:import` 载荷:named `{ a, b as c }` / namespace `* as ns`。
|
|
1109
1117
|
* default 等未识别形态返回 `malformed`(由消费方发诊断)。
|
|
1118
|
+
* import 绑定语义 local ← imported:`a as b` 两个名字都保留——只留 local
|
|
1119
|
+
* 会让查表用错名字(`exports[b]` miss,BUG-016)。
|
|
1110
1120
|
*/
|
|
1111
1121
|
declare function parseNudoImportPayload(payload: string): NudoImportRecord | "malformed-default" | "malformed" | undefined;
|
|
1112
1122
|
declare function extractFileEnvNames(source: string): string[];
|
|
@@ -1197,8 +1207,10 @@ declare function literalMeetsConstraint(lv: number | string | boolean | null | u
|
|
|
1197
1207
|
* lit/and 已消歧;侧车注入键名仍为 lit/and)。
|
|
1198
1208
|
*/
|
|
1199
1209
|
|
|
1200
|
-
/** Abs → 契约;不可表达 → undefined
|
|
1201
|
-
|
|
1210
|
+
/** Abs → 契约;不可表达 → undefined。
|
|
1211
|
+
* `budget`:共享遍历预算(DESIGN-001)——环 / 超深 shape 返回 undefined
|
|
1212
|
+
* (不可表达),调用方走既有 fallback;schema 投影传入与自身共享的实例。 */
|
|
1213
|
+
declare function absToConstraint(a: Abs, budget?: ProjectionBudget): NudoConstraint | undefined;
|
|
1202
1214
|
/**
|
|
1203
1215
|
* 工件聚合投影(设计 §4.2:先 Abs join 折叠再投影)。
|
|
1204
1216
|
* 空列表 → undefined(无证据不产约束)。
|
package/dist/index.js
CHANGED
|
@@ -91,7 +91,7 @@ import {
|
|
|
91
91
|
takeRefineDiagsSince,
|
|
92
92
|
throwConstraintToKinds,
|
|
93
93
|
union
|
|
94
|
-
} from "./chunk-
|
|
94
|
+
} from "./chunk-I35CHJNO.js";
|
|
95
95
|
import {
|
|
96
96
|
$add,
|
|
97
97
|
$arguments,
|
|
@@ -215,6 +215,7 @@ import {
|
|
|
215
215
|
OBJECT_PROTO_METHOD_NAMES,
|
|
216
216
|
PROMISE_MICRO_ERROR_LABEL,
|
|
217
217
|
PROMISE_MICRO_OVERFLOW_LABEL,
|
|
218
|
+
ProjectionBudget,
|
|
218
219
|
RUNTIME_IMPORT_RE,
|
|
219
220
|
TYPEOF_NAMES,
|
|
220
221
|
abs,
|
|
@@ -331,6 +332,7 @@ import {
|
|
|
331
332
|
implies,
|
|
332
333
|
instantiateReturn,
|
|
333
334
|
isAbsApplyResult,
|
|
335
|
+
isAbsVal,
|
|
334
336
|
isArrMutator,
|
|
335
337
|
isBigPrim,
|
|
336
338
|
isDefinitelyFalse,
|
|
@@ -507,7 +509,7 @@ import {
|
|
|
507
509
|
v,
|
|
508
510
|
withExecPhi,
|
|
509
511
|
withVar
|
|
510
|
-
} from "./chunk-
|
|
512
|
+
} from "./chunk-LZJC7X5J.js";
|
|
511
513
|
|
|
512
514
|
// src/environment.ts
|
|
513
515
|
function createEnvironment(parent, bindings = /* @__PURE__ */ new Map()) {
|
|
@@ -768,60 +770,92 @@ function isBoundedEvidenceMissing(ret, constraint) {
|
|
|
768
770
|
if (ret.pred && ret.pred.op !== "true") return false;
|
|
769
771
|
return true;
|
|
770
772
|
}
|
|
773
|
+
function flattenSumArms(ret) {
|
|
774
|
+
if (ret.shape.k !== "sum") return [ret];
|
|
775
|
+
const out = [];
|
|
776
|
+
for (const m of ret.shape.members) {
|
|
777
|
+
if (m.shape.k === "sum") out.push(...flattenSumArms(m));
|
|
778
|
+
else out.push(m);
|
|
779
|
+
}
|
|
780
|
+
return out;
|
|
781
|
+
}
|
|
782
|
+
function isWidenedSumArm(m, parent) {
|
|
783
|
+
return parent.conf === "partial" && m.shape.k === "prim" && !m.term && (!m.pred || m.pred.op === "true");
|
|
784
|
+
}
|
|
771
785
|
function assertImplies(ret, constraint, opts) {
|
|
772
786
|
const phi = opts?.phi ?? pTrue;
|
|
773
787
|
if (ret.shape.k === "never") return proved();
|
|
774
788
|
if (isAnyConstraint(constraint)) return proved();
|
|
775
|
-
const nullishOk = constraintAdmitsNullish(constraint);
|
|
776
|
-
if (isNullishLitAbs(ret)) {
|
|
777
|
-
return nullishOk ? proved() : disproved(`nullish return \u22AD ${formatConstraint(constraint)}`);
|
|
778
|
-
}
|
|
779
|
-
let sumMembers;
|
|
780
|
-
if (ret.shape.k === "sum") {
|
|
781
|
-
const members = ret.shape.members;
|
|
782
|
-
const nullishMembers = members.filter((m) => isNullishLitAbs(m));
|
|
783
|
-
if (nullishMembers.length > 0 && !nullishOk) {
|
|
784
|
-
return disproved(
|
|
785
|
-
`nullish return arm \u22AD ${formatConstraint(constraint)} (contract does not admit nullish)`
|
|
786
|
-
);
|
|
787
|
-
}
|
|
788
|
-
sumMembers = members.filter((m) => !isNullishLitAbs(m));
|
|
789
|
-
}
|
|
790
789
|
if (isValueSetUnknown(ret)) {
|
|
791
790
|
return unprovable(
|
|
792
791
|
ret.shape.k === "any" ? "any does not establish the return contract" : "inference failure (unknown/opaque) \u2014 cannot prove the return contract"
|
|
793
792
|
);
|
|
794
793
|
}
|
|
794
|
+
const arms = flattenSumArms(ret);
|
|
795
|
+
if (arms.length > 1) {
|
|
796
|
+
return assertSumArms(arms, ret, constraint, opts, phi);
|
|
797
|
+
}
|
|
798
|
+
return assertImpliesSingle(arms[0], constraint, opts, phi);
|
|
799
|
+
}
|
|
800
|
+
function assertSumArms(arms, parent, constraint, opts, phi) {
|
|
801
|
+
const hasWidenedArm = arms.some(
|
|
802
|
+
(a) => isValueSetUnknown(a) || isWidenedSumArm(a, parent)
|
|
803
|
+
);
|
|
804
|
+
let sawUnprovable = false;
|
|
805
|
+
for (const arm of arms) {
|
|
806
|
+
if (isNullishLitAbs(arm)) {
|
|
807
|
+
if (!constraintAdmitsNullish(constraint)) {
|
|
808
|
+
return disproved(
|
|
809
|
+
`nullish return arm \u22AD ${formatConstraint(constraint)} (contract does not admit nullish)`
|
|
810
|
+
);
|
|
811
|
+
}
|
|
812
|
+
continue;
|
|
813
|
+
}
|
|
814
|
+
if (isValueSetUnknown(arm) || isWidenedSumArm(arm, parent)) {
|
|
815
|
+
sawUnprovable = true;
|
|
816
|
+
continue;
|
|
817
|
+
}
|
|
818
|
+
const r = assertImpliesSingle(arm, constraint, opts, phi);
|
|
819
|
+
if (r.status === "disproved") {
|
|
820
|
+
if (hasWidenedArm) {
|
|
821
|
+
sawUnprovable = true;
|
|
822
|
+
continue;
|
|
823
|
+
}
|
|
824
|
+
return r;
|
|
825
|
+
}
|
|
826
|
+
if (r.status === "unprovable") sawUnprovable = true;
|
|
827
|
+
}
|
|
828
|
+
return sawUnprovable ? unprovable("sum: some arms unprovable") : proved();
|
|
829
|
+
}
|
|
830
|
+
function assertImpliesSingle(arm, constraint, opts, phi) {
|
|
831
|
+
if (isNullishLitAbs(arm)) {
|
|
832
|
+
return constraintAdmitsNullish(constraint) ? proved() : disproved(`nullish return \u22AD ${formatConstraint(constraint)}`);
|
|
833
|
+
}
|
|
834
|
+
if (isValueSetUnknown(arm)) {
|
|
835
|
+
return unprovable(
|
|
836
|
+
arm.shape.k === "any" ? "any does not establish the return contract" : "inference failure (unknown/opaque) \u2014 cannot prove the return contract"
|
|
837
|
+
);
|
|
838
|
+
}
|
|
795
839
|
if (constraint.members && constraint.members.length > 0) {
|
|
796
840
|
let sawUnprovable = false;
|
|
797
841
|
for (const m of constraint.members) {
|
|
798
|
-
const r = assertImplies(
|
|
842
|
+
const r = assertImplies(arm, m, opts);
|
|
799
843
|
if (r.status === "proved") return proved();
|
|
800
844
|
if (r.status === "unprovable") sawUnprovable = true;
|
|
801
845
|
}
|
|
802
846
|
return sawUnprovable ? unprovable("union: no member proved the return contract") : disproved(`return \u22AD union(${constraint.members.map((m) => formatConstraint(m)).join(", ")})`);
|
|
803
847
|
}
|
|
804
|
-
if (sumMembers && (constraint.fields || constraint.element)) {
|
|
805
|
-
let sawUnprovable = false;
|
|
806
|
-
for (const m of sumMembers) {
|
|
807
|
-
if (isValueSetUnknown(m)) continue;
|
|
808
|
-
const r = assertImplies(m, constraint, opts);
|
|
809
|
-
if (r.status === "disproved") return r;
|
|
810
|
-
if (r.status === "unprovable") sawUnprovable = true;
|
|
811
|
-
}
|
|
812
|
-
return sawUnprovable ? unprovable("sum: some arms unprovable") : proved();
|
|
813
|
-
}
|
|
814
848
|
if (constraint.fields) {
|
|
815
|
-
return assertShapeFields(
|
|
849
|
+
return assertShapeFields(arm, constraint, opts);
|
|
816
850
|
}
|
|
817
851
|
if (constraint.element) {
|
|
818
|
-
if (
|
|
819
|
-
return disproved(`return shape ${
|
|
852
|
+
if (arm.shape.k !== "arr" && arm.shape.k !== "tuple") {
|
|
853
|
+
return disproved(`return shape ${arm.shape.k} \u22AD array(...)`);
|
|
820
854
|
}
|
|
821
855
|
return proved();
|
|
822
856
|
}
|
|
823
857
|
if (constraint.fn) return proved();
|
|
824
|
-
return assertScalar(
|
|
858
|
+
return assertScalar(arm, constraint, phi);
|
|
825
859
|
}
|
|
826
860
|
function isAnyConstraint(c) {
|
|
827
861
|
return !c.prim && c.preds.length === 0 && !c.fields && !c.element && !c.members && !c.fn && !isIntFlag(c);
|
|
@@ -998,8 +1032,17 @@ var ARR_FALLBACK_CONF = /* @__PURE__ */ new Set([
|
|
|
998
1032
|
"path",
|
|
999
1033
|
"widened"
|
|
1000
1034
|
]);
|
|
1001
|
-
function absToConstraint(a) {
|
|
1035
|
+
function absToConstraint(a, budget = new ProjectionBudget()) {
|
|
1002
1036
|
if (!PROJECTABLE_CONF.has(a.conf)) return void 0;
|
|
1037
|
+
const stop = budget.enter(a);
|
|
1038
|
+
if (stop) return void 0;
|
|
1039
|
+
try {
|
|
1040
|
+
return absToConstraintInner(a, budget);
|
|
1041
|
+
} finally {
|
|
1042
|
+
budget.exit();
|
|
1043
|
+
}
|
|
1044
|
+
}
|
|
1045
|
+
function absToConstraintInner(a, budget) {
|
|
1003
1046
|
const s = a.shape;
|
|
1004
1047
|
switch (s.k) {
|
|
1005
1048
|
case "prim":
|
|
@@ -1017,9 +1060,9 @@ function absToConstraint(a) {
|
|
|
1017
1060
|
case "any":
|
|
1018
1061
|
return a.pred?.op === "or" ? projectOrLiterals(a) : void 0;
|
|
1019
1062
|
case "obj":
|
|
1020
|
-
return projectObj(s.slots, s.index, s.open);
|
|
1063
|
+
return projectObj(s.slots, s.index, s.open, budget);
|
|
1021
1064
|
case "arr":
|
|
1022
|
-
return projectArr(s.element);
|
|
1065
|
+
return projectArr(s.element, budget);
|
|
1023
1066
|
case "sum":
|
|
1024
1067
|
return projectSum(s.members);
|
|
1025
1068
|
default:
|
|
@@ -1202,18 +1245,18 @@ function projectOrLiterals(a) {
|
|
|
1202
1245
|
}
|
|
1203
1246
|
return lits.length > 0 ? union(...lits) : void 0;
|
|
1204
1247
|
}
|
|
1205
|
-
function projectObj(slots, index, open) {
|
|
1248
|
+
function projectObj(slots, index, open, budget) {
|
|
1206
1249
|
if (index || open) return void 0;
|
|
1207
1250
|
const fields = {};
|
|
1208
1251
|
for (const [k, slot] of Object.entries(slots)) {
|
|
1209
|
-
const fc = absToConstraint(slot.value);
|
|
1252
|
+
const fc = absToConstraint(slot.value, budget);
|
|
1210
1253
|
if (!fc) return void 0;
|
|
1211
1254
|
fields[k] = { constraint: fc, ...slot.optional ? { optional: true } : {} };
|
|
1212
1255
|
}
|
|
1213
1256
|
return { __nudoConstraint: true, preds: [], fields };
|
|
1214
1257
|
}
|
|
1215
|
-
function projectArr(element) {
|
|
1216
|
-
const ec = absToConstraint(element);
|
|
1258
|
+
function projectArr(element, budget) {
|
|
1259
|
+
const ec = absToConstraint(element, budget);
|
|
1217
1260
|
if (ec) return array(ec);
|
|
1218
1261
|
if (element.shape.k === "prim" && isBuilderPrim(element.shape.type) && (!element.pred || element.pred.op === "true") && ARR_FALLBACK_CONF.has(element.conf)) {
|
|
1219
1262
|
return array(primConstraint(element.shape.type));
|
|
@@ -1693,7 +1736,7 @@ function evalThrowsOf(source, fnName, args, opts = {}, phi = pTrue) {
|
|
|
1693
1736
|
exports = run;
|
|
1694
1737
|
evalRunMemo.set(runKey, exports);
|
|
1695
1738
|
}
|
|
1696
|
-
const
|
|
1739
|
+
const isAbsVal2 = (v2) => !!v2 && typeof v2 === "object" && "shape" in v2 && "conf" in v2;
|
|
1697
1740
|
const call = (name, callArgs) => {
|
|
1698
1741
|
try {
|
|
1699
1742
|
return callTranspiledExportFull(exports, name, callArgs, phi.op === "true" ? void 0 : { phi });
|
|
@@ -1702,11 +1745,11 @@ function evalThrowsOf(source, fnName, args, opts = {}, phi = pTrue) {
|
|
|
1702
1745
|
}
|
|
1703
1746
|
};
|
|
1704
1747
|
try {
|
|
1705
|
-
if (fnName
|
|
1748
|
+
if (Object.hasOwn(exports, fnName)) return call(fnName, args);
|
|
1706
1749
|
if (fnName.includes(".")) {
|
|
1707
1750
|
const [clsName, methodName] = fnName.split(".", 2);
|
|
1708
1751
|
const clsAbs = exports[clsName ?? ""];
|
|
1709
|
-
if (
|
|
1752
|
+
if (isAbsVal2(clsAbs)) {
|
|
1710
1753
|
return invokeAsThrows(() => $staticInvoke(clsAbs, methodName ?? "", args), phi);
|
|
1711
1754
|
}
|
|
1712
1755
|
return void 0;
|
|
@@ -1714,7 +1757,7 @@ function evalThrowsOf(source, fnName, args, opts = {}, phi = pTrue) {
|
|
|
1714
1757
|
if ("default" in exports) {
|
|
1715
1758
|
const d = exports["default"];
|
|
1716
1759
|
if (typeof d === "function") return call("default", args);
|
|
1717
|
-
if (
|
|
1760
|
+
if (isAbsVal2(d)) {
|
|
1718
1761
|
if (d.shape.k === "fn") return call("default", args);
|
|
1719
1762
|
if (d.shape.k === "obj") {
|
|
1720
1763
|
return invokeAsThrows(() => $invoke(d, fnName, args), phi);
|
|
@@ -1733,12 +1776,9 @@ function widenForAssign(a) {
|
|
|
1733
1776
|
if (s.k === "tuple") {
|
|
1734
1777
|
const holes = new Set(s.holes ?? []);
|
|
1735
1778
|
const els = s.elements.filter((_, i) => !holes.has(i));
|
|
1736
|
-
|
|
1737
|
-
if (
|
|
1738
|
-
|
|
1739
|
-
} else if (s.rest) {
|
|
1740
|
-
el = widenForAssign(s.rest);
|
|
1741
|
-
}
|
|
1779
|
+
const parts = els.map(widenForAssign);
|
|
1780
|
+
if (s.rest) parts.push(widenForAssign(s.rest));
|
|
1781
|
+
const el = parts.length > 0 ? parts.reduce((x, y) => joinAbs(x, y)) : anyAbs;
|
|
1742
1782
|
return abs({ k: "arr", element: el }, void 0, void 0, a.conf);
|
|
1743
1783
|
}
|
|
1744
1784
|
if (s.k === "obj") {
|
|
@@ -2214,7 +2254,7 @@ function checkSourceInner(filePath, source, file, phi, opts, issues, signatures,
|
|
|
2214
2254
|
message: `${name} (export): may throw ${gateDisplay}`,
|
|
2215
2255
|
actual: `${name}(\u2026) throws ${gateDisplay}`,
|
|
2216
2256
|
expected: "entry total, or @nudo:throws / try-catch",
|
|
2217
|
-
suggestion: first.cause ? `${first.cause} \u2192 ${first.kind === "ReferenceError" ? "re-export `export { x } from` \u4E0D\u662F\u5C40\u90E8\u7ED1\u5B9A\u2014\u2014\u6539 `import { x }` / @nudo:throws ReferenceError" : `@nudo:throws ${first.kind}
|
|
2257
|
+
suggestion: first.cause ? `${first.cause} \u2192 ${first.kind === "ReferenceError" ? "re-export `export { x } from` \u4E0D\u662F\u5C40\u90E8\u7ED1\u5B9A\u2014\u2014\u6539 `import { x }` / @nudo:throws ReferenceError" : `@nudo:throws ${first.kind} | sidecar: fn({ \u2026 }): shape({ <body-read fields> }) | refine / guard / try-catch`}` : first.kind === "ReferenceError" ? "re-export `export { x } from` \u4E0D\u662F\u5C40\u90E8\u7ED1\u5B9A\u2014\u2014\u6539 `import { x }` / @nudo:throws ReferenceError" : `@nudo:throws ${first.kind} | sidecar: fn({ \u2026 }): shape({ <body-read fields> }) | refine / guard / try-catch`,
|
|
2218
2258
|
fn: name,
|
|
2219
2259
|
...loc.line !== void 0 ? { line: loc.line } : {},
|
|
2220
2260
|
...loc.column !== void 0 ? { column: loc.column } : {}
|
|
@@ -2259,7 +2299,7 @@ function checkSourceInner(filePath, source, file, phi, opts, issues, signatures,
|
|
|
2259
2299
|
message: `${name} (export): may throw ${gateDisplay}`,
|
|
2260
2300
|
actual: `${formatEntrySigLine(name, g, gateDisplay)}`,
|
|
2261
2301
|
expected: "entry total, or @nudo:throws / try-catch",
|
|
2262
|
-
suggestion: first.cause ? `${first.cause} \u2192 ${first.kind === "ReferenceError" ? "re-export `export { x } from` \u4E0D\u662F\u5C40\u90E8\u7ED1\u5B9A\u2014\u2014\u6539 `import { x }` / @nudo:throws ReferenceError" : `@nudo:throws ${first.kind}
|
|
2302
|
+
suggestion: first.cause ? `${first.cause} \u2192 ${first.kind === "ReferenceError" ? "re-export `export { x } from` \u4E0D\u662F\u5C40\u90E8\u7ED1\u5B9A\u2014\u2014\u6539 `import { x }` / @nudo:throws ReferenceError" : `@nudo:throws ${first.kind} | sidecar: fn({ \u2026 }): shape({ <body-read fields> }) | refine / guard / try-catch`}` : first.kind === "ReferenceError" ? "re-export `export { x } from` \u4E0D\u662F\u5C40\u90E8\u7ED1\u5B9A\u2014\u2014\u6539 `import { x }` / @nudo:throws ReferenceError" : `@nudo:throws ${first.kind} | sidecar: fn({ \u2026 }): shape({ <body-read fields> }) | refine / guard / try-catch`,
|
|
2263
2303
|
fn: name,
|
|
2264
2304
|
...loc.line !== void 0 ? { line: loc.line } : {},
|
|
2265
2305
|
...loc.column !== void 0 ? { column: loc.column } : {}
|
|
@@ -2627,6 +2667,19 @@ function actionsForIssue(i) {
|
|
|
2627
2667
|
label: "migration switch: ignore this throw class on L2"
|
|
2628
2668
|
}
|
|
2629
2669
|
];
|
|
2670
|
+
case "nudo:unproven-return":
|
|
2671
|
+
return [
|
|
2672
|
+
{
|
|
2673
|
+
kind: "relax",
|
|
2674
|
+
label: `relax the return contract${i.fn ? ` of ${i.fn}` : ""} to the inferred surface (review the diff \u2014 not a silent green)`,
|
|
2675
|
+
...i.expected ? { hint: i.expected } : {}
|
|
2676
|
+
},
|
|
2677
|
+
draft,
|
|
2678
|
+
{
|
|
2679
|
+
kind: "info",
|
|
2680
|
+
label: "or narrow the return expression / add a precondition so the bound is implied"
|
|
2681
|
+
}
|
|
2682
|
+
];
|
|
2630
2683
|
case "nudo:unknown-inference":
|
|
2631
2684
|
case "nudo:opaque-result":
|
|
2632
2685
|
return [
|
|
@@ -3166,6 +3219,7 @@ export {
|
|
|
3166
3219
|
interfaceSourceOf,
|
|
3167
3220
|
interfaceTierOf,
|
|
3168
3221
|
isAbsApplyResult,
|
|
3222
|
+
isAbsVal,
|
|
3169
3223
|
isArrMutator,
|
|
3170
3224
|
isBigPrim,
|
|
3171
3225
|
isDefinitelyFalse,
|
package/dist/internal.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { I as InterfaceSource, a as InterfaceTierOpts, p as parseSource, C as CheckIssue } from './
|
|
2
|
-
export { L as LeakBudget, b as LoadDepsFingerprint, M as MAX_PROMISE_MICROS, d as
|
|
3
|
-
import { A as Abs, T as Term, c as AstEnv } from './run-
|
|
4
|
-
export { $ as $tryDigestSoft, d as $tryMarkSoft, e as $tryReleaseSoft, E as ERROR_FAMILY, f as EvalFallbackStats, M as MayThrowEffect, g as clearPureCallMemo, h as clearPureMemo, i as enterEvalCallBudgetSession, j as errorTypeAbs, k as exitEvalCallBudgetSession, l as filterDeclaredThrows, m as filterGateThrows, n as filterIgnoredThrows, o as flushMayThrowEffects, p as formatThrowsAbs, q as getEvalCallBudgetState, r as getEvalFallbackStats, s as getMayThrowCollector, t as isThrowsIgnored, u as mayThrowEffectsToAbs, v as orphanMayThrowEffects, w as popMayThrowFrame, x as pushMayThrowFrame, y as recordMayThrow, z as resetEvalFallbackStats, B as runWithMayThrowSession, D as setMayThrowCollector, F as throwAbsToKinds, G as throwsKindCovered, H as withEvalBudgetOverride } from './run-
|
|
1
|
+
import { I as InterfaceSource, a as InterfaceTierOpts, p as parseSource, C as CheckIssue } from './projection-budget-CGbs16aX.js';
|
|
2
|
+
export { L as LeakBudget, b as LoadDepsFingerprint, M as MAX_PROMISE_MICROS, P as PROJECTION_MAX_DEPTH, c as ProjectionBudget, d as ProjectionStopReason, e as defaultLeakBudget, f as exceedsBudget, g as exportedNameOfLocal, h as extractAllLoadSpecs, i as getPromiseMicrosLength, l as leakIfNeeded, j as loadModuleDepsFingerprint, m as maybeLeak, n as normPath, r as resetLeakCounter, k as resolveDepPath, s as sidecarSpecsOf, o as stablePathKey, q as stablePathKeyGraph, t as termDepth, u as termNodes } from './projection-budget-CGbs16aX.js';
|
|
3
|
+
import { A as Abs, T as Term, c as AstEnv } from './run-Dg7gQO2z.js';
|
|
4
|
+
export { $ as $tryDigestSoft, d as $tryMarkSoft, e as $tryReleaseSoft, E as ERROR_FAMILY, f as EvalFallbackStats, M as MayThrowEffect, g as clearPureCallMemo, h as clearPureMemo, i as enterEvalCallBudgetSession, j as errorTypeAbs, k as exitEvalCallBudgetSession, l as filterDeclaredThrows, m as filterGateThrows, n as filterIgnoredThrows, o as flushMayThrowEffects, p as formatThrowsAbs, q as getEvalCallBudgetState, r as getEvalFallbackStats, s as getMayThrowCollector, t as isThrowsIgnored, u as mayThrowEffectsToAbs, v as orphanMayThrowEffects, w as popMayThrowFrame, x as pushMayThrowFrame, y as recordMayThrow, z as resetEvalFallbackStats, B as runWithMayThrowSession, D as setMayThrowCollector, F as throwAbsToKinds, G as throwsKindCovered, H as withEvalBudgetOverride } from './run-Dg7gQO2z.js';
|
|
5
5
|
import { File, Node } from '@babel/types';
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -414,8 +414,26 @@ declare function denoteGuard(a: Abs, v: string): string;
|
|
|
414
414
|
* - member access: `recv.key` for idents, `recv["key"]` otherwise
|
|
415
415
|
* - template literal type fixed segments: escape `\` `` ` `` `$`
|
|
416
416
|
* - comment bodies: neutralize block-comment close, line breaks, control chars
|
|
417
|
+
* - binding names (`export const/function`, params): ident + non-reserved
|
|
417
418
|
*/
|
|
418
419
|
declare function isJsIdent(name: string): boolean;
|
|
420
|
+
/**
|
|
421
|
+
* True when `name` is legal as a `const` / `function` / `class` binding
|
|
422
|
+
* (or a `.d.ts` param / type-param name): IdentifierName shape and not
|
|
423
|
+
* a reserved word. Unlike `isJsIdent`, accepts Unicode identifiers and
|
|
424
|
+
* rejects `class` / `default` / `let` / `eval` / …
|
|
425
|
+
*/
|
|
426
|
+
declare function isJsBindingIdent(name: string): boolean;
|
|
427
|
+
/**
|
|
428
|
+
* Binding name for a generated `export const` / `export function` slot.
|
|
429
|
+
*
|
|
430
|
+
* - already a legal binding → unchanged (Unicode names preserved)
|
|
431
|
+
* - reserved word → `_` prefix (`class` → `_class`)
|
|
432
|
+
* - otherwise sanitize: non-ident chars → `_`, leading non-start → `_` prefix
|
|
433
|
+
* - `used` (when given) de-duplicates within one generated module
|
|
434
|
+
* (`a_b`, `a_b_2`, …) so cleaned names cannot collide
|
|
435
|
+
*/
|
|
436
|
+
declare function toJsBindingIdent(name: string, used?: Set<string>): string;
|
|
419
437
|
/**
|
|
420
438
|
* Object-literal / type-member key: bare ident or canonical integer,
|
|
421
439
|
* otherwise JSON-quoted. Leading-zero digit keys (`01`) stay quoted — bare
|
|
@@ -651,4 +669,4 @@ declare function runWithEvalMissingSlot<T>(enabled: boolean, body: () => T): T;
|
|
|
651
669
|
*/
|
|
652
670
|
declare function noteObjSlotMissing(recv: Abs | undefined, name: string, loc?: [number, number]): boolean;
|
|
653
671
|
|
|
654
|
-
export { type AbsBudgetStats, type AbsInlay, type ArgDerivation, type ClassDef, type CollectAbsInlaysOpts, type DerivationNode, type EvalMemberDiag, FORK_TRUNCATION_LABEL, type FnFp, HOST_EFFECT_LABEL_PREFIX, type InjectedDomainEvidenceOpts, type InjectedDomainRecord, MAX_CALL_DEPTH, MAX_EVAL_TOTAL_FORKS, MAX_TOTAL_CALLS, type MethodDef, OBJECT_PROTO_NAMES, PROMISE_MICRO_ERROR_LABEL, PROMISE_MICRO_OVERFLOW_LABEL, type StringLiteralSpan, type TemplateMeta, type TemplatePartDesc, type TemplatePartView, type TemplatePredicateDecision, abortDerivationSession, absTemplateViews, allFixedTextOfViews, anyMemberResult, awaitAbs, beginDerivationSession, bumpEvalForkBudget, callBudgetKey, canSkipLiteralCallScan, checkInjectedDomainEvidence, classChainNames, classFromMethods, coerceAsyncReturn, collectAbsInlays, concatString, createTemplateAbs, decideEndsWith, decideIncludes, decideStartsWith, defineClass, definitelyUncallableMember, denoteGuard, derivationChain, endDerivationSession, enterCall, escapeTemplateTypeFixed, exitCall, fixedLengthOfViews, fnFingerprints, formatObjectKey, formatTemplateNameViews, generalizeSourceKeyPart, getAbsCallBudgetStats, getAbsOrigin, getClass, getClassChain, getDerivation, getEvalForkBudgetLimit, getEvalForkCount, getFnNameAndBodies, hasDerivationSession, hashSource, instanceOf, instantiateClass, isEvalMissingSlotEnabled, isJsIdent, isNullishAbs, isTemplateLike, knownPrefixOfViews, knownSuffixOfViews, listTopFunctions, lookupMethod, lookupMethodWithOwner, lookupSuperMethod, maskCommentsAndStrings, mergeAdjacentFixedViews, noteAbsTruncation, noteAnyMemberMayThrow, noteDerivationAdd, noteDerivationJoin, noteEvalForkTruncation, noteHostEffectBlocked, noteMemberDispatchMiss, noteNullishMemberThrows, noteObjSlotMissing, notePrimMemberMissing, noteUnknownMemberMissing, popCallLoc, projectBrand, projectDerivationDsl, pushCallLoc, recordMemberDiag, resetAbsCallBudget, resetEvalForkBudget, resetFnFpCache, resetHashSourceCache, runWithEvalMissingSlot, safeMemberAccess, sanitizeCommentText, scanStringLiterals, setAbsTruncationCollector, setDerivation, setDerivationCollector, setEvalForkBudgetLimit, setEvalMissingSlotEnabled, setMemberDiagCollector, sourceHasCjsExports, sourceHasModuleDependency, sourceHasRequireCall, stableAnalyzeKeySource, stableCallId, stripCommentsAndStrings, stripStringsKeepComments, superNameOf, tagAbsOrigin, tagDerivationRoot, templateMatchesValue, templatePartsOf, termKey, truncatedAbs, viewTemplateParts, withFnBudgetOverride, wrapPromise };
|
|
672
|
+
export { type AbsBudgetStats, type AbsInlay, type ArgDerivation, type ClassDef, type CollectAbsInlaysOpts, type DerivationNode, type EvalMemberDiag, FORK_TRUNCATION_LABEL, type FnFp, HOST_EFFECT_LABEL_PREFIX, type InjectedDomainEvidenceOpts, type InjectedDomainRecord, MAX_CALL_DEPTH, MAX_EVAL_TOTAL_FORKS, MAX_TOTAL_CALLS, type MethodDef, OBJECT_PROTO_NAMES, PROMISE_MICRO_ERROR_LABEL, PROMISE_MICRO_OVERFLOW_LABEL, type StringLiteralSpan, type TemplateMeta, type TemplatePartDesc, type TemplatePartView, type TemplatePredicateDecision, abortDerivationSession, absTemplateViews, allFixedTextOfViews, anyMemberResult, awaitAbs, beginDerivationSession, bumpEvalForkBudget, callBudgetKey, canSkipLiteralCallScan, checkInjectedDomainEvidence, classChainNames, classFromMethods, coerceAsyncReturn, collectAbsInlays, concatString, createTemplateAbs, decideEndsWith, decideIncludes, decideStartsWith, defineClass, definitelyUncallableMember, denoteGuard, derivationChain, endDerivationSession, enterCall, escapeTemplateTypeFixed, exitCall, fixedLengthOfViews, fnFingerprints, formatObjectKey, formatTemplateNameViews, generalizeSourceKeyPart, getAbsCallBudgetStats, getAbsOrigin, getClass, getClassChain, getDerivation, getEvalForkBudgetLimit, getEvalForkCount, getFnNameAndBodies, hasDerivationSession, hashSource, instanceOf, instantiateClass, isEvalMissingSlotEnabled, isJsBindingIdent, isJsIdent, isNullishAbs, isTemplateLike, knownPrefixOfViews, knownSuffixOfViews, listTopFunctions, lookupMethod, lookupMethodWithOwner, lookupSuperMethod, maskCommentsAndStrings, mergeAdjacentFixedViews, noteAbsTruncation, noteAnyMemberMayThrow, noteDerivationAdd, noteDerivationJoin, noteEvalForkTruncation, noteHostEffectBlocked, noteMemberDispatchMiss, noteNullishMemberThrows, noteObjSlotMissing, notePrimMemberMissing, noteUnknownMemberMissing, popCallLoc, projectBrand, projectDerivationDsl, pushCallLoc, recordMemberDiag, resetAbsCallBudget, resetEvalForkBudget, resetFnFpCache, resetHashSourceCache, runWithEvalMissingSlot, safeMemberAccess, sanitizeCommentText, scanStringLiterals, setAbsTruncationCollector, setDerivation, setDerivationCollector, setEvalForkBudgetLimit, setEvalMissingSlotEnabled, setMemberDiagCollector, sourceHasCjsExports, sourceHasModuleDependency, sourceHasRequireCall, stableAnalyzeKeySource, stableCallId, stripCommentsAndStrings, stripStringsKeepComments, superNameOf, tagAbsOrigin, tagDerivationRoot, templateMatchesValue, templatePartsOf, termKey, toJsBindingIdent, truncatedAbs, viewTemplateParts, withFnBudgetOverride, wrapPromise };
|