@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/internal.js CHANGED
@@ -1,6 +1,7 @@
1
1
  import {
2
2
  canSkipLiteralCallScan,
3
3
  checkInjectedDomainEvidence,
4
+ exportedNameOfLocal,
4
5
  extractAllLoadSpecs,
5
6
  fnFingerprints,
6
7
  generalizeFromAst,
@@ -18,7 +19,7 @@ import {
18
19
  stableAnalyzeKeySource,
19
20
  stablePathKey,
20
21
  stablePathKeyGraph
21
- } from "./chunk-7QUVTEYZ.js";
22
+ } from "./chunk-I35CHJNO.js";
22
23
  import {
23
24
  $tryDigestSoft,
24
25
  $tryMarkSoft,
@@ -31,8 +32,10 @@ import {
31
32
  MAX_PROMISE_MICROS,
32
33
  MAX_TOTAL_CALLS,
33
34
  OBJECT_PROTO_NAMES,
35
+ PROJECTION_MAX_DEPTH,
34
36
  PROMISE_MICRO_ERROR_LABEL,
35
37
  PROMISE_MICRO_OVERFLOW_LABEL,
38
+ ProjectionBudget,
36
39
  abortDerivationSession,
37
40
  absTemplateViews,
38
41
  allFixedTextOfViews,
@@ -157,7 +160,7 @@ import {
157
160
  withEvalBudgetOverride,
158
161
  withFnBudgetOverride,
159
162
  wrapPromise
160
- } from "./chunk-LFCF6BLE.js";
163
+ } from "./chunk-LZJC7X5J.js";
161
164
 
162
165
  // src/algebra/inlay.ts
163
166
  function listFunctions(source) {
@@ -311,10 +314,85 @@ function collectAbsInlays(source, opts) {
311
314
 
312
315
  // src/algebra/codegen-escape.ts
313
316
  var JS_IDENT = /^[A-Za-z_$][A-Za-z0-9_$]*$/;
317
+ var JS_BINDING_IDENT = /^(?:[$_\p{ID_Start}])(?:[$\u200C\u200D\p{ID_Continue}])*$/u;
318
+ var JS_BINDING_RESERVED = /* @__PURE__ */ new Set([
319
+ // ECMA-262 keywords
320
+ "break",
321
+ "case",
322
+ "catch",
323
+ "class",
324
+ "const",
325
+ "continue",
326
+ "debugger",
327
+ "default",
328
+ "delete",
329
+ "do",
330
+ "else",
331
+ "enum",
332
+ "export",
333
+ "extends",
334
+ "false",
335
+ "finally",
336
+ "for",
337
+ "function",
338
+ "if",
339
+ "import",
340
+ "in",
341
+ "instanceof",
342
+ "new",
343
+ "null",
344
+ "return",
345
+ "super",
346
+ "switch",
347
+ "this",
348
+ "throw",
349
+ "true",
350
+ "try",
351
+ "typeof",
352
+ "var",
353
+ "void",
354
+ "while",
355
+ "with",
356
+ "yield",
357
+ // strict mode / module-code reserved
358
+ "let",
359
+ "static",
360
+ "await",
361
+ "implements",
362
+ "interface",
363
+ "package",
364
+ "private",
365
+ "protected",
366
+ "public",
367
+ // never legal bindings in strict / module code
368
+ "eval",
369
+ "arguments"
370
+ ]);
314
371
  var JS_CANONICAL_INT = /^(?:0|[1-9]\d*)$/;
315
372
  function isJsIdent(name) {
316
373
  return JS_IDENT.test(name);
317
374
  }
375
+ function isJsBindingIdent(name) {
376
+ return JS_BINDING_IDENT.test(name) && !JS_BINDING_RESERVED.has(name);
377
+ }
378
+ function toJsBindingIdent(name, used) {
379
+ let base = name;
380
+ if (!JS_BINDING_IDENT.test(base)) {
381
+ base = base.replace(/[^\p{ID_Continue}$\u200C\u200D]/gu, "_");
382
+ if (base.length === 0) base = "_";
383
+ else if (!/^[$_\p{ID_Start}]/u.test(base)) base = `_${base}`;
384
+ }
385
+ if (JS_BINDING_RESERVED.has(base)) base = `_${base}`;
386
+ if (!used) return base;
387
+ let n = base;
388
+ let i = 2;
389
+ while (used.has(n)) {
390
+ n = `${base}_${i}`;
391
+ i++;
392
+ }
393
+ used.add(n);
394
+ return n;
395
+ }
318
396
  function formatObjectKey(k) {
319
397
  if (JS_IDENT.test(k)) return k;
320
398
  if (JS_CANONICAL_INT.test(k)) return k;
@@ -332,16 +410,25 @@ function sanitizeCommentText(text) {
332
410
 
333
411
  // src/algebra/denote.ts
334
412
  function denoteGuard(a, v) {
335
- if (a.term?.op === "lit" && (!a.pred || a.pred.op === "true")) {
336
- return eqGuard(v, a.term.value);
413
+ return denoteGuardB(a, v, new ProjectionBudget());
414
+ }
415
+ function denoteGuardB(a, v, budget) {
416
+ const stop = budget.enter(a);
417
+ if (stop) return `/* nudo:truncated:${stop} */ true`;
418
+ try {
419
+ if (a.term?.op === "lit" && (!a.pred || a.pred.op === "true")) {
420
+ return eqGuard(v, a.term.value);
421
+ }
422
+ const shape = denoteShape(a.shape, v, budget);
423
+ const pred = denotePred(a, v);
424
+ if (shape === "true") return pred;
425
+ if (pred === "true") return shape;
426
+ return `(${shape}) && (${pred})`;
427
+ } finally {
428
+ budget.exit();
337
429
  }
338
- const shape = denoteShape(a.shape, v);
339
- const pred = denotePred(a, v);
340
- if (shape === "true") return pred;
341
- if (pred === "true") return shape;
342
- return `(${shape}) && (${pred})`;
343
430
  }
344
- function denoteShape(s, v) {
431
+ function denoteShape(s, v, budget) {
345
432
  switch (s.k) {
346
433
  case "never":
347
434
  return "false";
@@ -367,7 +454,7 @@ function denoteShape(s, v) {
367
454
  const checks = [`typeof ${v} === "object"`, `${v} !== null`];
368
455
  for (const [key, slot] of Object.entries(s.slots)) {
369
456
  const access = safeMemberAccess(v, key);
370
- const inner = denoteGuard(slot.value, access);
457
+ const inner = denoteGuardB(slot.value, access, budget);
371
458
  if (slot.optional) {
372
459
  if (inner !== "true") checks.push(`(${access} === undefined || ${inner})`);
373
460
  } else {
@@ -377,7 +464,7 @@ function denoteShape(s, v) {
377
464
  return checks.join(" && ");
378
465
  }
379
466
  case "arr":
380
- return `Array.isArray(${v}) && ${v}.every((item) => ${denoteGuard(s.element, "item")})`;
467
+ return `Array.isArray(${v}) && ${v}.every((item) => ${denoteGuardB(s.element, "item", budget)})`;
381
468
  case "tuple": {
382
469
  const checks = [`Array.isArray(${v})`];
383
470
  const minLen = s.elements.length;
@@ -388,14 +475,14 @@ function denoteShape(s, v) {
388
475
  checks.push(`!(${i} in ${v})`);
389
476
  return;
390
477
  }
391
- const inner = denoteGuard(el, `${v}[${i}]`);
478
+ const inner = denoteGuardB(el, `${v}[${i}]`, budget);
392
479
  if (inner !== "true") checks.push(inner);
393
480
  });
394
481
  for (const i of holes) {
395
482
  if (i >= minLen) checks.push(`!(${i} in ${v})`);
396
483
  }
397
484
  if (s.rest) {
398
- const rest = denoteGuard(s.rest, "item");
485
+ const rest = denoteGuardB(s.rest, "item", budget);
399
486
  if (rest !== "true") {
400
487
  checks.push(`${v}.slice(${minLen}).every((item) => ${rest})`);
401
488
  }
@@ -408,10 +495,10 @@ function denoteShape(s, v) {
408
495
  if (s.eff === "promise") return `${v} instanceof Promise`;
409
496
  return "true";
410
497
  case "brand":
411
- return denoteShape(s.shape.shape, v);
498
+ return denoteShape(s.shape.shape, v, budget);
412
499
  case "sum": {
413
500
  if (s.members.length === 0) return "false";
414
- const parts = s.members.map((m) => denoteGuard(m, v));
501
+ const parts = s.members.map((m) => denoteGuardB(m, v, budget));
415
502
  return `(${parts.join(" || ")})`;
416
503
  }
417
504
  }
@@ -513,8 +600,10 @@ export {
513
600
  MAX_PROMISE_MICROS,
514
601
  MAX_TOTAL_CALLS,
515
602
  OBJECT_PROTO_NAMES,
603
+ PROJECTION_MAX_DEPTH,
516
604
  PROMISE_MICRO_ERROR_LABEL,
517
605
  PROMISE_MICRO_OVERFLOW_LABEL,
606
+ ProjectionBudget,
518
607
  abortDerivationSession,
519
608
  absTemplateViews,
520
609
  allFixedTextOfViews,
@@ -549,6 +638,7 @@ export {
549
638
  exceedsBudget,
550
639
  exitCall,
551
640
  exitEvalCallBudgetSession,
641
+ exportedNameOfLocal,
552
642
  extractAllLoadSpecs,
553
643
  filterDeclaredThrows,
554
644
  filterGateThrows,
@@ -577,6 +667,7 @@ export {
577
667
  instanceOf,
578
668
  instantiateClass,
579
669
  isEvalMissingSlotEnabled,
670
+ isJsBindingIdent,
580
671
  isJsIdent,
581
672
  isNullishAbs,
582
673
  isTemplateLike,
@@ -653,6 +744,7 @@ export {
653
744
  termNodes,
654
745
  throwAbsToKinds,
655
746
  throwsKindCovered,
747
+ toJsBindingIdent,
656
748
  truncatedAbs,
657
749
  viewTemplateParts,
658
750
  withEvalBudgetOverride,
@@ -1,5 +1,5 @@
1
1
  import { File } from '@babel/types';
2
- import { A as Abs, T as Term, P as PrimName, a as Pred, L as LiteralValue, b as Phi, C as Confidence } from './run-WJfj477N.js';
2
+ import { A as Abs, T as Term, P as PrimName, a as Pred, L as LiteralValue, b as Phi, C as Confidence } from './run-Dg7gQO2z.js';
3
3
 
4
4
  declare function resetParseSourceCache(): void;
5
5
  declare function getParseSourceCacheSize(): number;
@@ -217,6 +217,11 @@ declare const CONSTRAINT_BUILDER_NAMES: readonly string[];
217
217
  /**
218
218
  * 约束表达式头:`name(` 形态。由 CONSTRAINT_BUILDER_NAMES 生成——
219
219
  * 名单只在 CONSTRAINT_BUILDERS 一处维护。
220
+ *
221
+ * 注意:这只是**前缀预筛**(快速判定「像不像构建器调用」),不是安全门禁。
222
+ * 整条表达式在进入 execNudoModule/new Function 前必须过 AST 白名单
223
+ * (parser 的 isSafeTypeExprSource)——否则 `number(), process.exit(1)`
224
+ * 这类拼接可以借前缀骗过本正则并执行任意 JS。
220
225
  */
221
226
  declare const CONSTRAINT_EXPR_RE: RegExp;
222
227
  /** 把模板绑定到参数名:self → paramName;shape 展开为字段访问 Pred */
@@ -268,7 +273,8 @@ type NamedImport = {
268
273
  };
269
274
  /**
270
275
  * `@nudo:import` 命名/namespace 导入(D5=F1:文法在 directive-scan 单源)。
271
- * default 等未识别形态发 nudo:contract-syntax,不再静默丢弃。
276
+ * `names` 是本地绑定名(契约引用名);别名→导出名的映射留在
277
+ * `NudoImportRecord.importedOfLocal`(查表口 collectConstraints 消费)。
272
278
  */
273
279
  declare function extractNudoImports(source: string): NamedImport[];
274
280
  /** refine 侧车加载诊断(severity 由消费方按 code 定档,形状对齐 Issue 子集) */
@@ -411,11 +417,23 @@ type InterfaceSource = "handwritten" | "generated" | "implicit";
411
417
  * 排除 re-export(`export {x} from` / `export *`)。
412
418
  */
413
419
  declare function localNamedExports(source: string): Set<string>;
420
+ /**
421
+ * `export { local as exported }`(含 string 导出名 `export { x as "a-b" }`)
422
+ * 的本地声明名 → 导出名查询(DESIGN-003:契约身份=导出名)。声明形态
423
+ * (exported === local)与 default 形态不进表——default 走 C4.4 的
424
+ * 本地名/default 双键绑定,身份保持本地名。解析失败 / 无别名子句 →
425
+ * undefined。
426
+ */
427
+ declare function exportedNameOfLocal(source: string, localName: string): string | undefined;
414
428
  /**
415
429
  * 侧车源码的生成段导出名:export 之前(跳过紧邻的 import/const 链)的注释
416
430
  * 行含 `@generated` → 该名为 generated。组合式下行段(§5.3)形态为
417
431
  * `import` + `@generated 头` + prelude + export;callsite 段则是头紧贴
418
432
  * export。隔了其他代码行 / 无标记 / re-export 列表均不算。
433
+ *
434
+ * DESIGN-003 别名段:导出名不是合法绑定名(保留字 / 非 ident)时发射为
435
+ * `const _nudo_1 = …; export { _nudo_1 as class };` —— 身份恒为**导出名**
436
+ * (`class` / string 名),不是绑定别名。
419
437
  */
420
438
  declare function generatedExportNames(sidecarSrc: string): Set<string>;
421
439
  type EffectiveInterfaceOpts = RefineResolveOpts & {
@@ -735,4 +753,44 @@ declare function formatGitlabCodeQuality(r: CheckReport, opts?: {
735
753
  workspaceRoot?: string;
736
754
  }): GitlabCodeQualityIssue[];
737
755
 
738
- export { constraintAdmitsNullish as $, type EffectiveInterface as A, type InterfaceDiag as B, type CheckIssue as C, type Diagnostic as D, type EffectiveInterfaceOpts as E, type InterfaceTierInfo as F, type GitlabCodeQualityIssue as G, type NamedImport as H, type InterfaceSource as I, type NudoField as J, type NudoFnConstraint as K, type LeakBudget as L, MAX_PROMISE_MICROS as M, type NudoConstraint as N, NudoSidecarError as O, type NudoSig as P, type RefineEntry as Q, type RefineDiag as R, type RefineResolveOpts as S, SELF as T, actionsForIssue as U, andC as V, any as W, array as X, boolean as Y, checkArg as Z, checkCall as _, type InterfaceTierOpts as a, constraintToEntryAbs as a0, drainPromiseMicros as a1, effectiveInterface as a2, enterPromiseExecutorScope as a3, evalPromiseCtor as a4, evalPromiseMethod as a5, evalPromiseStatic as a6, execNudoModule as a7, extractDeclaredThrows as a8, extractFnBudget as a9, notePromiseExecutorFork as aA, nullable as aB, number as aC, omit as aD, partial as aE, pick as aF, queuePromiseMicro as aG, refineDiagCount as aH, refineToIndexedFull as aI, resetNudoModuleExecCache as aJ, resetParseSourceCache as aK, resetSidecarLoadFailureCache as aL, serializeCheckJson as aM, serializeCheckJsonMulti as aN, setInterfaceDiagCollector as aO, setRefineDiagCollector as aP, shape as aQ, sidecarClosureFingerprint as aR, sidecarPathOf as aS, string as aT, takeInterfaceDiags as aU, takeInterfaceDiagsSince as aV, takeRefineDiags as aW, takeRefineDiagsSince as aX, throwConstraintToKinds as aY, union as aZ, extractNudoImports as aa, extractRefineReturnFromSource as ab, extractRefinesFromSource as ac, fn as ad, fnConstraintToEntryReqs as ae, formatCheckReport as af, formatConstraint as ag, formatDiagnostics as ah, formatEffectiveInterfaceDisplay as ai, formatGithubAnnotations as aj, formatGitlabCodeQuality as ak, formatInterfaceTierLine as al, generatedExportNames as am, getParseSourceCacheSize as an, getTerm as ao, instantiateConstraint as ap, interfaceDiagCount as aq, interfaceSourceOf as ar, interfaceTierOf as as, isIntFlag as at, isNodeModulesPath as au, isNudoConstraint as av, leavePromiseExecutorScope as aw, lenTerm as ax, litC as ay, localNamedExports as az, type LoadDepsFingerprint as b, extractAllLoadSpecs as c, defaultLeakBudget as d, exceedsBudget as e, loadModuleDepsFingerprint as f, getPromiseMicrosLength as g, resolveDepPath as h, stablePathKey as i, stablePathKeyGraph as j, termNodes as k, leakIfNeeded as l, maybeLeak as m, normPath as n, type CheckReport as o, parseSource as p, CONSTRAINT_BUILDERS as q, resetLeakCounter as r, sidecarSpecsOf as s, termDepth as t, CONSTRAINT_BUILDER_NAMES as u, CONSTRAINT_EXPR_RE as v, type CheckAction as w, type CheckJson as x, type CheckJsonMulti as y, type ConstraintBuilder as z };
756
+ /**
757
+ * 投影/格式化层共享的 Abs 遍历预算(DESIGN-001)。
758
+ *
759
+ * Abs 是可计算值:shape 图可环(evaluator 对 `const a = {}; a.self = a` 产出
760
+ * 真环)、可深(深层嵌套结构 / harvest 链)。所有外延出口(formatShape /
761
+ * absToString / absToTSType / absToSchemaNode / denoteGuard / absToConstraint /
762
+ * serializeCaseArg)必须有界——absStableKey / absShapeKey 的 "cycle" 哨兵早已
763
+ * 承认该不变量,本模块是它的共享抽象。
764
+ *
765
+ * 语义:
766
+ * - enter/exit 按「当前路径」记账(进栈/出栈):只有祖先重复才算环。
767
+ * 兄弟复用同一子树(DAG 共享)不误判——与 absStableKey 的累积 seen 不同,
768
+ * 那是键生成口径,渲染需要完整兄弟分支,不能沿用。
769
+ * - 深度 = 当前路径长度;达到 maxDepth 返回 "depth"。
770
+ * - truncated 粘性记录本次投影是否截断及原因,供 dropped 台账 / 注释标记
771
+ * 消费(与 load-deps-fp truncated → noCache 同风格:截断必须可观测)。
772
+ *
773
+ * 本模块零依赖(Abs/Shape 都是普通 object),供 core 各层与 service emit
774
+ * 共同 import,不引入环。
775
+ */
776
+ /** 投影深度上限。BUG-014 给手写 case 实参文法 32 层(合法用例 ~4 层);
777
+ * 渲染面消费的是机器生成的 shape(evaluator 嵌套 / env harvest),取 2×
778
+ * 余量 64:足够深到覆盖真实结构,又把最坏输出/栈框钉在有界。 */
779
+ declare const PROJECTION_MAX_DEPTH = 64;
780
+ type ProjectionStopReason = "cycle" | "depth";
781
+ declare class ProjectionBudget {
782
+ #private;
783
+ /** 粘性:本次投影是否发生过截断("cycle" / "depth"),供台账记录 */
784
+ truncated: ProjectionStopReason | undefined;
785
+ constructor(maxDepth?: number);
786
+ /**
787
+ * 进入一个 Abs(或 Shape)子树。返回 null → 继续递归,之后必须配对
788
+ * `exit()`;返回 "cycle" | "depth" → 不得递归,按出口各自的约定渲染
789
+ * 截断标记(不调用 exit——本次 enter 没有入栈)。
790
+ */
791
+ enter(a: object): ProjectionStopReason | null;
792
+ /** 离开子树(与返回 null 的 enter 严格配对)。 */
793
+ exit(): void;
794
+ }
795
+
796
+ export { array as $, type CheckJson as A, type CheckJsonMulti as B, type CheckIssue as C, type ConstraintBuilder as D, type EffectiveInterfaceOpts as E, type Diagnostic as F, type EffectiveInterface as G, type GitlabCodeQualityIssue as H, type InterfaceSource as I, type InterfaceDiag as J, type InterfaceTierInfo as K, type LeakBudget as L, MAX_PROMISE_MICROS as M, type NudoConstraint as N, type NamedImport as O, PROJECTION_MAX_DEPTH as P, type NudoField as Q, type NudoFnConstraint as R, NudoSidecarError as S, type NudoSig as T, type RefineDiag as U, type RefineEntry as V, type RefineResolveOpts as W, SELF as X, actionsForIssue as Y, andC as Z, any as _, type InterfaceTierOpts as a, takeRefineDiagsSince as a$, boolean as a0, checkArg as a1, checkCall as a2, constraintAdmitsNullish as a3, constraintToEntryAbs as a4, drainPromiseMicros as a5, effectiveInterface as a6, enterPromiseExecutorScope as a7, evalPromiseCtor as a8, evalPromiseMethod as a9, leavePromiseExecutorScope as aA, lenTerm as aB, litC as aC, localNamedExports as aD, notePromiseExecutorFork as aE, nullable as aF, number as aG, omit as aH, partial as aI, pick as aJ, queuePromiseMicro as aK, refineDiagCount as aL, refineToIndexedFull as aM, resetNudoModuleExecCache as aN, resetParseSourceCache as aO, resetSidecarLoadFailureCache as aP, serializeCheckJson as aQ, serializeCheckJsonMulti as aR, setInterfaceDiagCollector as aS, setRefineDiagCollector as aT, shape as aU, sidecarClosureFingerprint as aV, sidecarPathOf as aW, string as aX, takeInterfaceDiags as aY, takeInterfaceDiagsSince as aZ, takeRefineDiags as a_, evalPromiseStatic as aa, execNudoModule as ab, extractDeclaredThrows as ac, extractFnBudget as ad, extractNudoImports as ae, extractRefineReturnFromSource as af, extractRefinesFromSource as ag, fn as ah, fnConstraintToEntryReqs as ai, formatCheckReport as aj, formatConstraint as ak, formatDiagnostics as al, formatEffectiveInterfaceDisplay as am, formatGithubAnnotations as an, formatGitlabCodeQuality as ao, formatInterfaceTierLine as ap, generatedExportNames as aq, getParseSourceCacheSize as ar, getTerm as as, instantiateConstraint as at, interfaceDiagCount as au, interfaceSourceOf as av, interfaceTierOf as aw, isIntFlag as ax, isNodeModulesPath as ay, isNudoConstraint as az, type LoadDepsFingerprint as b, throwConstraintToKinds as b0, union as b1, ProjectionBudget as c, type ProjectionStopReason as d, defaultLeakBudget as e, exceedsBudget as f, exportedNameOfLocal as g, extractAllLoadSpecs as h, getPromiseMicrosLength as i, loadModuleDepsFingerprint as j, resolveDepPath as k, leakIfNeeded as l, maybeLeak as m, normPath as n, stablePathKey as o, parseSource as p, stablePathKeyGraph as q, resetLeakCounter as r, sidecarSpecsOf as s, termDepth as t, termNodes as u, type CheckReport as v, CONSTRAINT_BUILDERS as w, CONSTRAINT_BUILDER_NAMES as x, CONSTRAINT_EXPR_RE as y, type CheckAction as z };
@@ -366,7 +366,10 @@ type EvalCallRecord = {
366
366
  line: number;
367
367
  column: number;
368
368
  };
369
- threw?: boolean;
369
+ /** BUG-028:必填——漏设时异常 payload 会被当成功结果
370
+ * (resultAbs=payload、throwsAbs=never,isLeakedCallRecord
371
+ * 的 never+never 拦不住)。5 处 emitter 均已显式设置。 */
372
+ threw: boolean;
370
373
  };
371
374
  /** 清空 pureCallMemo(宿主入口 / 会话缓存失效) */
372
375
  declare function clearPureCallMemo(): void;
@@ -748,6 +751,7 @@ type TranspiledCallResult = {
748
751
  /** 非 never 表示函数可能 throw 该类型 */
749
752
  throws: Abs;
750
753
  };
754
+ declare function isAbsVal(v: unknown): v is Abs;
751
755
  /** 调用 runTranspiled 导出(捕获 $throw)。opts.phi:入口 Φ 种子
752
756
  * (instantiate/symbolic 的约束入口——eval 侧路径条件收窄)。
753
757
  * 嵌套进入(导出桥 apply)继承外层预算;仅最外层宿主入口重置。 */
@@ -766,4 +770,4 @@ declare function callTranspiledExport(exports: Record<string, unknown>, name: st
766
770
  */
767
771
  declare function callTranspiledExportApply(exports: Record<string, unknown> | (() => Record<string, unknown>), name: string): (args: Abs[], thisVal?: Abs) => AbsApplyResult;
768
772
 
769
- export { $tryDigestSoft as $, type Abs as A, runWithMayThrowSession as B, type Confidence as C, setMayThrowCollector as D, ERROR_FAMILY as E, throwAbsToKinds as F, throwsKindCovered as G, withEvalBudgetOverride as H, type HofCollectCtx as I, type HofSite as J, type AbsModuleExports as K, type LiteralValue as L, type MayThrowEffect as M, type RunTranspiledOptions as N, $assignRecord as O, type PrimName as P, $call as Q, type RelSource as R, type Shape as S, type Term as T, $callNamed as U, $recordBinding as V, type AbsApplyNoThrow as W, type AbsApplyNoThrowFn as X, type AbsApplyResult as Y, type AbsApplyReturn as Z, type AbsFnImpl as _, type Pred as a, num as a$, type AbsSigImpl as a0, type EvalAbsAssignRecord as a1, type EvalCallRecord as a2, type EvalFallback as a3, type ImplicationOracle as a4, type LitValueResult as a5, MAX_EVAL_CALL_DEPTH as a6, MAX_EVAL_TOTAL_CALLS as a7, RUNTIME_IMPORT_RE as a8, TYPEOF_NAMES as a9, geNum as aA, getEvalCallCollector as aB, getFnImpl as aC, getImplicationOracle as aD, gt as aE, gtNum as aF, implies as aG, isAbsApplyResult as aH, isBigPrim as aI, isExactLit as aJ, isNumPrim as aK, isStrPrim as aL, le as aM, leNum as aN, lit as aO, litValue as aP, lt as aQ, ltNum as aR, makeAbsApplyResult as aS, markPureFn as aT, namespaceAbsOf as aU, ne as aV, negatePred as aW, never as aX, not as aY, noteEvalCallRecord as aZ, noteEvalFallback as a_, type TranspiledCallResult as aa, type TypeofName as ab, abs as ac, absFunction as ad, absOnly as ae, absToString as af, and as ag, anyAbs as ah, anyVar as ai, app as aj, assumeFinite as ak, attachFnImpl as al, bigintLit as am, bindImports as an, bindingsOf as ao, bool as ap, boolLit as aq, callTranspiledExport as ar, callTranspiledExportApply as as, callTranspiledExportFull as at, collectAbsExports as au, confJoin as av, emptyPhi as aw, eq as ax, evalExprAbs as ay, ge as az, type Phi as b, numLit as b0, numVar as b1, obj as b2, or as b3, pFalse as b4, pTrue as b5, phiAnd as b6, predEquals as b7, predToString as b8, predVars as b9, primToTypeof as ba, ptypeof as bb, pureFnNameOf as bc, relationFingerprint as bd, relationFn as be, resetEvalCallBudget as bf, runTranspiled as bg, runTranspiledOptionsMemoKey as bh, setEvalAssignCollector as bi, setEvalBindingSink as bj, setEvalCallCollector as bk, setEvalFallbackCollector as bl, setImplicationOracle as bm, shapeOfTerm as bn, shapeOnlyFn as bo, shapeToString as bp, simplifyTerm as bq, str as br, strLit as bs, substPred as bt, termEquals as bu, termToString as bv, tryRunTranspiled as bw, unknown as bx, v as by, routeApplyThrows as bz, type AstEnv as c, $tryMarkSoft as d, $tryReleaseSoft as e, type EvalFallbackStats as f, clearPureCallMemo as g, clearPureMemo as h, enterEvalCallBudgetSession as i, errorTypeAbs as j, exitEvalCallBudgetSession as k, filterDeclaredThrows as l, filterGateThrows as m, filterIgnoredThrows as n, flushMayThrowEffects as o, formatThrowsAbs as p, getEvalCallBudgetState as q, getEvalFallbackStats as r, getMayThrowCollector as s, isThrowsIgnored as t, mayThrowEffectsToAbs as u, orphanMayThrowEffects as v, popMayThrowFrame as w, pushMayThrowFrame as x, recordMayThrow as y, resetEvalFallbackStats as z };
773
+ export { $tryDigestSoft as $, type Abs as A, runWithMayThrowSession as B, type Confidence as C, setMayThrowCollector as D, ERROR_FAMILY as E, throwAbsToKinds as F, throwsKindCovered as G, withEvalBudgetOverride as H, type HofCollectCtx as I, type HofSite as J, type AbsModuleExports as K, type LiteralValue as L, type MayThrowEffect as M, type RunTranspiledOptions as N, $assignRecord as O, type PrimName as P, $call as Q, type RelSource as R, type Shape as S, type Term as T, $callNamed as U, $recordBinding as V, type AbsApplyNoThrow as W, type AbsApplyNoThrowFn as X, type AbsApplyResult as Y, type AbsApplyReturn as Z, type AbsFnImpl as _, type Pred as a, noteEvalFallback as a$, type AbsSigImpl as a0, type EvalAbsAssignRecord as a1, type EvalCallRecord as a2, type EvalFallback as a3, type ImplicationOracle as a4, type LitValueResult as a5, MAX_EVAL_CALL_DEPTH as a6, MAX_EVAL_TOTAL_CALLS as a7, RUNTIME_IMPORT_RE as a8, TYPEOF_NAMES as a9, geNum as aA, getEvalCallCollector as aB, getFnImpl as aC, getImplicationOracle as aD, gt as aE, gtNum as aF, implies as aG, isAbsApplyResult as aH, isAbsVal as aI, isBigPrim as aJ, isExactLit as aK, isNumPrim as aL, isStrPrim as aM, le as aN, leNum as aO, lit as aP, litValue as aQ, lt as aR, ltNum as aS, makeAbsApplyResult as aT, markPureFn as aU, namespaceAbsOf as aV, ne as aW, negatePred as aX, never as aY, not as aZ, noteEvalCallRecord as a_, type TranspiledCallResult as aa, type TypeofName as ab, abs as ac, absFunction as ad, absOnly as ae, absToString as af, and as ag, anyAbs as ah, anyVar as ai, app as aj, assumeFinite as ak, attachFnImpl as al, bigintLit as am, bindImports as an, bindingsOf as ao, bool as ap, boolLit as aq, callTranspiledExport as ar, callTranspiledExportApply as as, callTranspiledExportFull as at, collectAbsExports as au, confJoin as av, emptyPhi as aw, eq as ax, evalExprAbs as ay, ge as az, type Phi as b, num as b0, numLit as b1, numVar as b2, obj as b3, or as b4, pFalse as b5, pTrue as b6, phiAnd as b7, predEquals as b8, predToString as b9, routeApplyThrows as bA, predVars as ba, primToTypeof as bb, ptypeof as bc, pureFnNameOf as bd, relationFingerprint as be, relationFn as bf, resetEvalCallBudget as bg, runTranspiled as bh, runTranspiledOptionsMemoKey as bi, setEvalAssignCollector as bj, setEvalBindingSink as bk, setEvalCallCollector as bl, setEvalFallbackCollector as bm, setImplicationOracle as bn, shapeOfTerm as bo, shapeOnlyFn as bp, shapeToString as bq, simplifyTerm as br, str as bs, strLit as bt, substPred as bu, termEquals as bv, termToString as bw, tryRunTranspiled as bx, unknown as by, v as bz, type AstEnv as c, $tryMarkSoft as d, $tryReleaseSoft as e, type EvalFallbackStats as f, clearPureCallMemo as g, clearPureMemo as h, enterEvalCallBudgetSession as i, errorTypeAbs as j, exitEvalCallBudgetSession as k, filterDeclaredThrows as l, filterGateThrows as m, filterIgnoredThrows as n, flushMayThrowEffects as o, formatThrowsAbs as p, getEvalCallBudgetState as q, getEvalFallbackStats as r, getMayThrowCollector as s, isThrowsIgnored as t, mayThrowEffectsToAbs as u, orphanMayThrowEffects as v, popMayThrowFrame as w, pushMayThrowFrame as x, recordMayThrow as y, resetEvalFallbackStats as z };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nudojs/core",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "engines": {
5
5
  "node": ">=20"
6
6
  },