@scriptc/compiler 0.0.9 → 0.0.11

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.
Files changed (97) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +54 -9
  2. package/dist/backend/emission/emit-exprs.js +170 -14
  3. package/dist/backend/emission/emit-exprs.js.map +1 -1
  4. package/dist/backend/emission/emit-walkers.js +29 -2
  5. package/dist/backend/emission/emit-walkers.js.map +1 -1
  6. package/dist/backend/emission/emitter.js +25 -1
  7. package/dist/backend/emission/emitter.js.map +1 -1
  8. package/dist/backend/llvm/dyn.d.ts +1 -0
  9. package/dist/backend/llvm/dyn.js +83 -1
  10. package/dist/backend/llvm/dyn.js.map +1 -1
  11. package/dist/backend/llvm/emitter.js +210 -13
  12. package/dist/backend/llvm/emitter.js.map +1 -1
  13. package/dist/coverage/surface-manifest.js +16 -2
  14. package/dist/coverage/surface-manifest.js.map +1 -1
  15. package/dist/diagnostics/diagnostic.d.ts +41 -14
  16. package/dist/diagnostics/diagnostic.js +79 -27
  17. package/dist/diagnostics/diagnostic.js.map +1 -1
  18. package/dist/diagnostics/render.js +8 -0
  19. package/dist/diagnostics/render.js.map +1 -1
  20. package/dist/frontend/lowering/lib-boundary.js +11 -1
  21. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  22. package/dist/frontend/lowering/lower-builtins.d.ts +69 -0
  23. package/dist/frontend/lowering/lower-builtins.js +380 -4
  24. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  25. package/dist/frontend/lowering/lower-calls.d.ts +41 -0
  26. package/dist/frontend/lowering/lower-calls.js +559 -11
  27. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  28. package/dist/frontend/lowering/lower-classes.d.ts +7 -0
  29. package/dist/frontend/lowering/lower-classes.js +51 -1
  30. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  31. package/dist/frontend/lowering/lower-containers.d.ts +21 -0
  32. package/dist/frontend/lowering/lower-containers.js +262 -17
  33. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  34. package/dist/frontend/lowering/lower-dgram.js +92 -17
  35. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  36. package/dist/frontend/lowering/lower-emitter.d.ts +70 -3
  37. package/dist/frontend/lowering/lower-emitter.js +436 -29
  38. package/dist/frontend/lowering/lower-emitter.js.map +1 -1
  39. package/dist/frontend/lowering/lower-exprs.d.ts +80 -5
  40. package/dist/frontend/lowering/lower-exprs.js +651 -23
  41. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  42. package/dist/frontend/lowering/lower-modules.d.ts +8 -5
  43. package/dist/frontend/lowering/lower-modules.js +144 -19
  44. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  45. package/dist/frontend/lowering/lower-namespaces.d.ts +39 -11
  46. package/dist/frontend/lowering/lower-namespaces.js +166 -24
  47. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  48. package/dist/frontend/lowering/lower-server.js +211 -4
  49. package/dist/frontend/lowering/lower-server.js.map +1 -1
  50. package/dist/frontend/lowering/lower-stmts.d.ts +1 -5
  51. package/dist/frontend/lowering/lower-stmts.js +293 -10
  52. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  53. package/dist/frontend/lowering/lower-stream.js +178 -10
  54. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  55. package/dist/frontend/lowering/lowerer.d.ts +53 -1
  56. package/dist/frontend/lowering/lowerer.js +210 -19
  57. package/dist/frontend/lowering/lowerer.js.map +1 -1
  58. package/dist/frontend/lowering/surfaces.d.ts +44 -0
  59. package/dist/frontend/lowering/surfaces.js +234 -3
  60. package/dist/frontend/lowering/surfaces.js.map +1 -1
  61. package/dist/frontend/npm.d.ts +12 -0
  62. package/dist/frontend/npm.js +30 -0
  63. package/dist/frontend/npm.js.map +1 -1
  64. package/dist/frontend/program.d.ts +25 -0
  65. package/dist/frontend/program.js +144 -135
  66. package/dist/frontend/program.js.map +1 -1
  67. package/dist/frontend/shared.d.ts +1 -1
  68. package/dist/frontend/shared.js +1 -1
  69. package/dist/frontend/shared.js.map +1 -1
  70. package/dist/frontend/types.d.ts +13 -0
  71. package/dist/frontend/types.js +84 -7
  72. package/dist/frontend/types.js.map +1 -1
  73. package/dist/index.d.ts +2 -1
  74. package/dist/index.js +157 -12
  75. package/dist/index.js.map +1 -1
  76. package/dist/ir/nodes.d.ts +163 -13
  77. package/dist/ir/nodes.js +65 -6
  78. package/dist/ir/nodes.js.map +1 -1
  79. package/dist/ir/validate.js +64 -5
  80. package/dist/ir/validate.js.map +1 -1
  81. package/dist/library/fence-eval.d.ts +77 -0
  82. package/dist/library/fence-eval.js +395 -0
  83. package/dist/library/fence-eval.js.map +1 -0
  84. package/dist/library/int-infer.d.ts +119 -0
  85. package/dist/library/int-infer.js +1301 -0
  86. package/dist/library/int-infer.js.map +1 -0
  87. package/dist/library/int-infer.test.d.ts +1 -0
  88. package/dist/library/int-infer.test.js +279 -0
  89. package/dist/library/int-infer.test.js.map +1 -0
  90. package/dist/library/profile.d.ts +43 -6
  91. package/dist/library/profile.js +179 -31
  92. package/dist/library/profile.js.map +1 -1
  93. package/dist/library/sidecar.d.ts +23 -0
  94. package/dist/library/sidecar.js +150 -16
  95. package/dist/library/sidecar.js.map +1 -1
  96. package/package.json +2 -2
  97. package/surface-manifest.json +208 -10
@@ -37,6 +37,7 @@
37
37
  * statement is not modeled — same as top-level const reads through early
38
38
  * calls). */
39
39
  import * as ts from "../ts7/adapter.js";
40
+ import { boundIdentifiersOf } from "./lowerer.js";
40
41
  import { locOf, resolveImport } from "../program.js";
41
42
  import { F64, STRING } from "../../ir/nodes.js";
42
43
  /** True when this module declaration produces NO runtime construct at all:
@@ -332,49 +333,190 @@ export function ambientNsRootOf(L, e) {
332
333
  }
333
334
  return root;
334
335
  }
335
- /** The ROOT identifier of a property/element-access chain that names an
336
- * initializer-less AMBIENT variable (`declare const x: T;`, `declare var`)
337
- * in a user program file — the `declare const __VERSION__` stance's CHAIN
338
- * form. Node erases the declaration entirely, so the ROOT read throws the
339
- * catchable ReferenceError "<name> is not defined" BEFORE any member or
340
- * element key matters; callers lower the whole chain to that throw, typed
341
- * by the use site. Mappable roots never need this (their bare-read
342
- * undefRead composes through ordinary member lowerings); this serves the
343
- * roots whose declared type has no mapping. Null for stdlib/@types roots
344
- * (their own chokepoints stand), optional chains (conservative — the
345
- * ordinary fences keep them), and anything declared with a value. */
336
+ /** The ROOT identifier of an expression whose FIRST runtime step is a read
337
+ * Node cannot serve — the `declare const __VERSION__` stance's CHAIN form,
338
+ * widened over every chain shape whose root evaluates first. Three root
339
+ * families qualify:
340
+ *
341
+ * - an initializer-less AMBIENT variable (`declare const/let/var x: T;`)
342
+ * in a user program file — Node erases the declaration entirely, so
343
+ * the root read throws the catchable ReferenceError "<name> is not
344
+ * defined";
345
+ * - an ambient `declare function` nothing defines (the same erasure,
346
+ * ambientUndefinedFnSymbolOf);
347
+ * - a TRAP BINDING (L.trapBindings) — a binding whose own initializer
348
+ * provably threw before producing a value, so module init unwound and
349
+ * no reference to it can ever execute (any lowering is sound there;
350
+ * the trap keeps the shape honest if reachability analysis is wrong).
351
+ *
352
+ * The walk steps through parens, non-null/as/satisfies assertions,
353
+ * property and element accesses (OPTIONAL chains included — `?.` guards
354
+ * null/undefined AFTER a successful read; it cannot guard the root's own
355
+ * ReferenceError), calls and `new` (the callee evaluates before any
356
+ * argument), instantiation expressions, and tagged templates (the tag
357
+ * evaluates first). Callers lower the WHOLE expression to the root's
358
+ * throw, typed by the use site — and never lower the arguments, exactly
359
+ * the order Node dies in. Null for stdlib/@types roots (their own
360
+ * chokepoints stand) and anything declared with a value. */
346
361
  export function ambientUndefVarRootOf(L, e) {
347
362
  let root = e;
348
363
  for (;;) {
349
- if (ts.isParenthesizedExpression(root) || ts.isNonNullExpression(root)) {
364
+ if (ts.isParenthesizedExpression(root) ||
365
+ ts.isNonNullExpression(root) ||
366
+ ts.isAsExpression(root) ||
367
+ ts.isSatisfiesExpression(root) ||
368
+ ts.isTypeAssertion(root)) {
369
+ root = root.expression;
370
+ continue;
371
+ }
372
+ if (ts.isPropertyAccessExpression(root) || ts.isElementAccessExpression(root)) {
350
373
  root = root.expression;
351
374
  continue;
352
375
  }
353
- if ((ts.isPropertyAccessExpression(root) || ts.isElementAccessExpression(root)) &&
354
- root.questionDotToken === undefined) {
376
+ if (ts.isCallExpression(root) || ts.isNewExpression(root)) {
355
377
  root = root.expression;
356
378
  continue;
357
379
  }
380
+ if (ts.isExpressionWithTypeArguments(root)) {
381
+ root = root.expression;
382
+ continue;
383
+ }
384
+ if (ts.isTaggedTemplateExpression(root)) {
385
+ root = root.tag;
386
+ continue;
387
+ }
358
388
  break;
359
389
  }
360
390
  if (!ts.isIdentifier(root))
361
391
  return null;
362
- const sym = L.resolveValueSymbol(root);
363
- if (!sym || L.isStdlibSymbol(sym))
392
+ // PROBE resolution: every caller asks "is this chain ambient-rooted?"
393
+ // and proceeds to its ordinary lowering on a null answer — so the
394
+ // question must not carry resolution's side effects. Bare
395
+ // resolveValueSymbol flushes the root's DEFERRED collection
396
+ // diagnostics onto the build (reached-only-by-the-probe declarations
397
+ // reported eagerly — collectGlobals runs this walk on every
398
+ // initializer) and throws the cross-block merged-namespace fence's
399
+ // PoisonError out of collection entirely. The collect-phase guard
400
+ // suppresses both; the ordinary lowering that follows a null answer
401
+ // re-resolves with full effects at its own site.
402
+ const wasCollecting = L.collecting;
403
+ L.collecting = true;
404
+ try {
405
+ const sym = L.resolveValueSymbol(root);
406
+ if (!sym)
407
+ return null;
408
+ if (L.trapBindings.has(sym))
409
+ return root;
410
+ if (L.isStdlibSymbol(sym))
411
+ return null;
412
+ if (ambientUndefinedFnSymbolOf(L, root) !== null)
413
+ return root;
414
+ const decls = L.checker.declarationsOf(sym);
415
+ if (decls.length === 0)
416
+ return null;
417
+ for (const d of decls) {
418
+ if (!ts.isVariableDeclaration(d) || d.initializer !== undefined)
419
+ return null;
420
+ if (d.getSourceFile().isDeclarationFile)
421
+ return null; // lib/@types keep their own fences
422
+ if (!(ts.getCombinedModifierFlags(d) & ts.ModifierFlags.Ambient))
423
+ return null;
424
+ }
425
+ return root;
426
+ }
427
+ finally {
428
+ L.collecting = wasCollecting;
429
+ }
430
+ }
431
+ /** The declaration-classification form of ambientUndefVarRootOf: the root
432
+ * that makes `decl` a TRAP BINDING — its initializer provably throws the
433
+ * root's ReferenceError, so the binding never holds a value and needs no
434
+ * storage — with the storage question answered honestly: a binding the
435
+ * program WRITES anywhere keeps ordinary storage instead, because the
436
+ * no-storage stance would fence every write site ("assignment to 'x'
437
+ * (not a writable local or module global)") where the ordinary lowering
438
+ * compiles them (`declare const numLiteral: 0; let t1 = numLiteral;
439
+ * t1 = t1 + 42` — the literal-widening corpus shape). The writes still
440
+ * never RUN either way — module init unwinds at the declaration's throw,
441
+ * which the initializer READ lowers to through the ordinary chain walk
442
+ * (lower-exprs) — so runtime semantics are identical; only the binding's
443
+ * storage story changes. */
444
+ export function trapDeclRootOf(L, decl) {
445
+ if (decl.initializer === undefined)
364
446
  return null;
365
- const decls = L.checker.declarationsOf(sym);
366
- if (decls.length === 0)
447
+ const root = ambientUndefVarRootOf(L, decl.initializer);
448
+ if (root === null)
367
449
  return null;
368
- for (const d of decls) {
369
- if (!ts.isVariableDeclaration(d) || d.initializer !== undefined)
370
- return null;
371
- if (d.getSourceFile().isDeclarationFile)
372
- return null; // lib/@types keep their own fences
373
- if (!(ts.getCombinedModifierFlags(d) & ts.ModifierFlags.Ambient))
450
+ for (const nameNode of boundIdentifiersOf(decl.name)) {
451
+ const sym = L.checker.getSymbolAtLocation(nameNode);
452
+ if (sym && bindingEverWritten(L, sym, decl.getSourceFile()))
374
453
  return null;
375
454
  }
376
455
  return root;
377
456
  }
457
+ /** True when any identifier resolving to `sym` sits in a WRITE position in
458
+ * `sf` (module-scope bindings cannot be written from other modules — ESM
459
+ * imported bindings are read-only): an assignment LHS (compound forms
460
+ * included), a destructuring-assignment element, ++/--, or a bare
461
+ * for-in/of cursor. Resolution is plain getSymbolAtLocation — a probe
462
+ * must not flush deferred diagnostics or fence. */
463
+ function bindingEverWritten(L, sym, sf) {
464
+ const symText = sym.name;
465
+ const namesSym = (e) => ts.isIdentifier(e) && e.text === symText && L.checker.getSymbolAtLocation(e) === sym;
466
+ const patternWrites = (target) => {
467
+ if (namesSym(target))
468
+ return true;
469
+ let hit = false;
470
+ const walk = (m) => {
471
+ if (hit)
472
+ return;
473
+ if (namesSym(m))
474
+ hit = true;
475
+ else
476
+ m.forEachChild(walk);
477
+ };
478
+ target.forEachChild(walk);
479
+ return hit;
480
+ };
481
+ let written = false;
482
+ const visit = (n) => {
483
+ if (written)
484
+ return;
485
+ if (ts.isBinaryExpression(n)) {
486
+ const k = n.operatorToken.kind;
487
+ if (k >= ts.SyntaxKind.FirstAssignment && k <= ts.SyntaxKind.LastAssignment) {
488
+ let lhs = n.left;
489
+ while (ts.isParenthesizedExpression(lhs))
490
+ lhs = lhs.expression;
491
+ if (namesSym(lhs))
492
+ written = true;
493
+ else if (ts.isArrayLiteralExpression(lhs) || ts.isObjectLiteralExpression(lhs)) {
494
+ if (patternWrites(lhs))
495
+ written = true;
496
+ }
497
+ }
498
+ }
499
+ else if ((ts.isPrefixUnaryExpression(n) || ts.isPostfixUnaryExpression(n)) &&
500
+ (n.operator === ts.SyntaxKind.PlusPlusToken || n.operator === ts.SyntaxKind.MinusMinusToken)) {
501
+ let op = n.operand;
502
+ while (ts.isParenthesizedExpression(op))
503
+ op = op.expression;
504
+ if (namesSym(op))
505
+ written = true;
506
+ }
507
+ else if ((ts.isForOfStatement(n) || ts.isForInStatement(n)) && !ts.isVariableDeclarationList(n.initializer)) {
508
+ let t = n.initializer;
509
+ while (ts.isParenthesizedExpression(t))
510
+ t = t.expression;
511
+ if (namesSym(t) || ((ts.isArrayLiteralExpression(t) || ts.isObjectLiteralExpression(t)) && patternWrites(t))) {
512
+ written = true;
513
+ }
514
+ }
515
+ n.forEachChild(visit);
516
+ };
517
+ sf.forEachChild(visit);
518
+ return written;
519
+ }
378
520
  /** ambientUndefReadType's CONTEXTUAL fallback: when the use site's own
379
521
  * type has no mapping (an `any`-typed member off a narrowed ambient), the
380
522
  * type the value flows INTO types the throw instead — sound because the
@@ -1 +1 @@
1
- {"version":3,"file":"lower-namespaces.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-namespaces.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lower-namespaces.js","sourceRoot":"","sources":["../../../src/frontend/lowering/lower-namespaces.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,8 @@
9
9
  * beyond these shapes fences member-qualified — never a generic
10
10
  * rejection, never silence. */
11
11
  import * as ts from "../ts7/adapter.js";
12
- import { locOf } from "../program.js";
12
+ import { ladderFenceExpr, nodeThrowExpr } from "./lowerer.js";
13
+ import { isJsSourceFile, locOf } from "../program.js";
13
14
  import { arrayOf, BOOL, BYTES_U8, canBoxFuncIntoDyn, canConvertToDyn, DYN, DYN_HANDLE_KINDS, F64, funcOf, HTTP2SESSION_T, HTTP2STREAM_T, HTTPCLIENTREQ_T, HTTPREQ_T, HTTPRES_T, NETSERVER_T, NETSOCKET_T, NULL_T, SECURECTX_T, STRING, UNDEFINED_T, typeKey, VOID } from "../../ir/nodes.js";
14
15
  import { builtinFenceHintOf, builtinModuleFnOf, fenceOrDropOptionKey, HTTP_CLIENT_DOCUMENTED_OPTIONS, HTTP_SERVER_DOCUMENTED_OPTIONS, HTTP2_SECURE_SERVER_DOCUMENTED_OPTIONS, HTTPS_CLIENT_DOCUMENTED_OPTIONS, sideEffectFreeOptionValue, TLS_SERVER_DOCUMENTED_OPTIONS, } from "./surfaces.js";
15
16
  import { conditionalSpreadOf } from "./lower-exprs.js";
@@ -420,6 +421,28 @@ export function lowerNetModuleCall(L, expr, bi, loc) {
420
421
  return { kind: "libCall", fn: "net.createServer", args: [], type: NETSERVER_T, loc };
421
422
  }
422
423
  if (args.length === 1) {
424
+ // A provably-non-object, non-function argument (the invalid-input
425
+ // probes: createServer('path'), createServer(0)): Node throws
426
+ // ERR_INVALID_ARG_TYPE on 'options' before any server exists. DYN
427
+ // result — the checked-dynamic lane's concise arrows box it, and
428
+ // the throw means it never materializes.
429
+ if (isJsSourceFile(expr.getSourceFile())) {
430
+ const t = L.mapTypeOf(L.typeOf(args[0]));
431
+ if (t !== null && (t.kind === "string" || t.kind === "f64" || t.kind === "bool")) {
432
+ const raw = L.lowerExpr(args[0]);
433
+ return {
434
+ kind: "libCall",
435
+ fn: "error.argTypeThrow",
436
+ args: [
437
+ { kind: "strLit", value: "options", type: STRING, loc },
438
+ { kind: "strLit", value: "of type object", type: STRING, loc },
439
+ { kind: "dynFrom", value: raw, type: DYN, loc },
440
+ ],
441
+ type: NETSERVER_T,
442
+ loc,
443
+ };
444
+ }
445
+ }
423
446
  const { cb } = lowerCallbackArg(L, args[0], "connection handlers", 1, (p) => p.kind === "netSocket", "use (socket) or ()", [NETSOCKET_T]);
424
447
  return { kind: "libCall", fn: "net.createServerCb", args: [cb], type: NETSERVER_T, loc };
425
448
  }
@@ -438,6 +461,26 @@ export function lowerNetModuleCall(L, expr, bi, loc) {
438
461
  if (args.length >= 1 && ts.isObjectLiteralExpression(args[0])) {
439
462
  return lowerNetConnectOptions(L, expr, bi.member, loc);
440
463
  }
464
+ // A RUNTIME option bag (a record binding or dyn value — the
465
+ // invalid-input probes build theirs with computed keys): the
466
+ // checked-dynamic walk validates Node-order and the compiler-rendered
467
+ // fence is the post-validation tail.
468
+ if (args.length === 1 && isJsSourceFile(expr.getSourceFile())) {
469
+ const t = L.mapTypeOf(L.typeOf(args[0]));
470
+ if (t !== null && (t.kind === "dyn" || t.kind === "record")) {
471
+ const raw = L.lowerExpr(args[0]);
472
+ if (raw.type.kind === "dyn" || L.dynConvertible(raw.type)) {
473
+ const bag = raw.type.kind === "dyn" ? raw : { kind: "dynFrom", value: raw, type: DYN, loc };
474
+ return {
475
+ kind: "libCall",
476
+ fn: "net.connectOptsChk",
477
+ args: [bag, ladderFenceExpr(L, `${bi.member} with a runtime options record`, expr, "pass the options as an object literal — port, host, autoSelectFamily, autoSelectFamilyAttemptTimeout, and lookup are the supported options")],
478
+ type: NETSOCKET_T,
479
+ loc,
480
+ };
481
+ }
482
+ }
483
+ }
441
484
  if (args.length < 1 || args.length > 3) {
442
485
  L.noLowering(`${bi.member} with ${args.length} arguments`, expr, `the supported form is ${bi.member}(port, host?, connectListener?)`);
443
486
  }
@@ -510,10 +553,49 @@ function lookupFnShapeOk(L, t) {
510
553
  function lowerNetConnectOptions(L, expr, member, loc) {
511
554
  const args = expr.arguments;
512
555
  const optsNode = args[0];
556
+ const isJs = isJsSourceFile(expr.getSourceFile());
557
+ // The checked-dynamic option-bag route (JS sources): a literal with
558
+ // computed keys (the invalid-input probes' spelling) or an objectMode-
559
+ // trio member rides WHOLE to the runtime walk — Node's Socket-ctor
560
+ // validation order (the trio's ERR_INVALID_ARG_VALUE first, then
561
+ // port/host/autoSelectFamily), with the compiler-rendered fence as the
562
+ // post-validation tail.
563
+ if (isJs) {
564
+ const needsBag = optsNode.properties.some((p) => (!ts.isPropertyAssignment(p) && !ts.isShorthandPropertyAssignment(p)) ||
565
+ (ts.isPropertyAssignment(p) && ts.isComputedPropertyName(p.name)) ||
566
+ ["objectMode", "readableObjectMode", "writableObjectMode"].includes((ts.isPropertyAssignment(p) || ts.isShorthandPropertyAssignment(p)) &&
567
+ (ts.isIdentifier(p.name) || ts.isStringLiteral(p.name)) ? p.name.text : ""));
568
+ if (needsBag) {
569
+ const raw = L.lowerExpr(optsNode);
570
+ if (raw.type.kind === "dyn" || L.dynConvertible(raw.type)) {
571
+ const bag = raw.type.kind === "dyn" ? raw : { kind: "dynFrom", value: raw, type: DYN, loc };
572
+ return {
573
+ kind: "libCall",
574
+ fn: "net.connectOptsChk",
575
+ args: [bag, ladderFenceExpr(L, `${member} with these options`, optsNode, "port, host, autoSelectFamily, autoSelectFamilyAttemptTimeout, and lookup are the supported options")],
576
+ type: NETSOCKET_T,
577
+ loc,
578
+ };
579
+ }
580
+ }
581
+ }
513
582
  let port = null;
514
583
  let host = null;
515
584
  let lookup = null;
516
585
  let autoSelect = false;
586
+ let attempt = null;
587
+ let optionThrow = null;
588
+ const propThrow = (name, expected, got) => ({
589
+ kind: "libCall",
590
+ fn: "error.propTypeThrow",
591
+ args: [
592
+ { kind: "strLit", value: name, type: STRING, loc },
593
+ { kind: "strLit", value: expected, type: STRING, loc },
594
+ got.type.kind === "dyn" ? got : { kind: "dynFrom", value: got, type: DYN, loc },
595
+ ],
596
+ type: NETSOCKET_T,
597
+ loc,
598
+ });
517
599
  for (const prop of optsNode.properties) {
518
600
  let initializer;
519
601
  if (ts.isPropertyAssignment(prop) &&
@@ -539,6 +621,13 @@ function lowerNetConnectOptions(L, expr, member, loc) {
539
621
  else if (key === "host") {
540
622
  host = lowerVal();
541
623
  if (host.type.kind !== "string") {
624
+ // A provably-non-string host (the invalid-input probes): Node's
625
+ // lookupAndConnect throws ERR_INVALID_ARG_TYPE at connect time.
626
+ if (isJs && (host.type.kind === "dyn" || L.dynConvertible(host.type))) {
627
+ optionThrow ??= propThrow("options.host", "of type string", host);
628
+ host = null;
629
+ continue;
630
+ }
542
631
  L.noLowering(`a ${member} 'host' option of '${L.fmt(host.type)}' values`, prop, "the host is a string here");
543
632
  }
544
633
  }
@@ -547,10 +636,28 @@ function lowerNetConnectOptions(L, expr, member, loc) {
547
636
  // dial below (false/dynamic would mean Node's single-address dial,
548
637
  // which the lookup form does not implement).
549
638
  if (initializer === null || initializer.kind !== ts.SyntaxKind.TrueKeyword) {
639
+ // A provably-non-boolean value throws Node's validateBoolean
640
+ // ladder instead of fencing.
641
+ const raw = initializer !== null && isJs ? L.lowerExpr(initializer) : null;
642
+ if (raw !== null && raw.type.kind !== "bool" &&
643
+ (raw.type.kind === "dyn" || L.dynConvertible(raw.type))) {
644
+ optionThrow ??= propThrow("options.autoSelectFamily", "of type boolean", raw);
645
+ continue;
646
+ }
550
647
  L.noLowering(`${member} with a non-literal autoSelectFamily option`, prop, "the lowered form is autoSelectFamily: true beside a lookup function");
551
648
  }
552
649
  autoSelect = true;
553
650
  }
651
+ else if (key === "autoSelectFamilyAttemptTimeout") {
652
+ // The attempt budget validates at runtime (Node's validateInt32-
653
+ // from-1 ladder) and is then inert — the single dial has nothing
654
+ // to time, the autoSelectFamily simplification's sibling.
655
+ const raw = lowerVal();
656
+ if (!(raw.type.kind === "dyn" || raw.kind === "unitLit" || L.dynConvertible(raw.type))) {
657
+ L.noLowering(`a ${member} 'autoSelectFamilyAttemptTimeout' option of '${L.fmt(raw.type)}' values`, prop, "the budget is a number here");
658
+ }
659
+ attempt = raw.type.kind === "dyn" ? raw : { kind: "dynFrom", value: raw, type: DYN, loc };
660
+ }
554
661
  else if (key === "lookup") {
555
662
  if (initializer === null) {
556
663
  L.noLowering(`${member} with a shorthand lookup option`, prop, "spell it out: lookup: theResolver");
@@ -564,10 +671,21 @@ function lowerNetConnectOptions(L, expr, member, loc) {
564
671
  L.noLowering(`${member} option '${key}'`, prop, "port, host, autoSelectFamily, and lookup are the supported options");
565
672
  }
566
673
  }
674
+ // A collected option-contract violation replaces the whole call: Node
675
+ // throws it from Socket.connect before dialing (port validation held —
676
+ // the port arm above fenced non-number ports already).
677
+ if (optionThrow !== null)
678
+ return optionThrow;
567
679
  if (port === null) {
568
680
  L.noLowering(`${member} options without a port`, optsNode, "the supported options object is { port, host?, autoSelectFamily?, lookup? }");
569
681
  }
570
682
  host ??= { kind: "strLit", value: "localhost", type: STRING, loc };
683
+ if (attempt !== null) {
684
+ if (lookup !== null || args.length !== 1) {
685
+ L.noLowering(`${member} with an autoSelectFamilyAttemptTimeout beside a lookup or connect listener`, expr, "the validated-budget form is the bare options call — register listeners separately");
686
+ }
687
+ return { kind: "libCall", fn: "net.connectAttempt", args: [port, host, attempt], type: NETSOCKET_T, loc };
688
+ }
571
689
  if (lookup !== null) {
572
690
  if (!autoSelect) {
573
691
  L.noLowering(`${member} with a lookup but no autoSelectFamily: true`, optsNode, "the lookup form dials every answered address in order — Node does that under autoSelectFamily: true, so spell it");
@@ -771,6 +889,30 @@ function lowerNetServerMethodCall(L, call, access) {
771
889
  v6only = v;
772
890
  }
773
891
  }
892
+ else if (key === "signal" && ts.isPropertyAssignment(prop) &&
893
+ isJsSourceFile(call.getSourceFile())) {
894
+ // A provably-non-AbortSignal signal (the invalid-input probes:
895
+ // strings, numbers, plain records) throws Node's
896
+ // validateAbortSignal ladder; plausible signal values keep the
897
+ // fence — abort-driven close has no lowering yet.
898
+ const raw = L.lowerExpr(prop.initializer);
899
+ const provablyNot = raw.type.kind === "string" || raw.type.kind === "f64" ||
900
+ raw.type.kind === "bool" || raw.type.kind === "record" || raw.type.kind === "array";
901
+ if (provablyNot && L.dynConvertible(raw.type)) {
902
+ return {
903
+ kind: "libCall",
904
+ fn: "error.propTypeThrow",
905
+ args: [
906
+ { kind: "strLit", value: "options.signal", type: STRING, loc },
907
+ { kind: "strLit", value: "an instance of AbortSignal", type: STRING, loc },
908
+ { kind: "dynFrom", value: raw, type: DYN, loc },
909
+ ],
910
+ type: ts.isExpressionStatement(call.parent) ? VOID : NETSERVER_T,
911
+ loc,
912
+ };
913
+ }
914
+ L.noLowering(`listen option 'signal'`, prop, "abort-driven close has no lowering yet — port, host, and ipv6Only are the supported listen options");
915
+ }
774
916
  else {
775
917
  L.noLowering(`listen option '${key}'`, prop, "port, host, and ipv6Only are the supported listen options");
776
918
  }
@@ -1022,6 +1164,31 @@ function lowerNetSocketMethodCall(L, call, access) {
1022
1164
  const args = call.arguments;
1023
1165
  if (name === "write" || name === "end") {
1024
1166
  requireStatementPosition(L, call, `socket.${name}(...)`);
1167
+ // write(chunk, encoding) — the two-argument encoding form: 'buffer'
1168
+ // beside a string chunk is Node's stream_base typecheck ("Second
1169
+ // argument must be a buffer", thrown synchronously on an established
1170
+ // socket — the invalid-input probes' shape); utf8 spellings are the
1171
+ // plain write (that IS the encoding written); a Buffer chunk ignores
1172
+ // the encoding like Node does. Other encodings keep the fence.
1173
+ if (name === "write" && args.length === 2) {
1174
+ const encT = L.typeOf(args[1]);
1175
+ const chunkT = L.mapTypeOf(L.typeOf(args[0]));
1176
+ if (encT.isStringLiteralType() && chunkT !== null) {
1177
+ if (encT.value === "buffer" && chunkT.kind === "string" &&
1178
+ isJsSourceFile(call.getSourceFile())) {
1179
+ L.lowerExpr(args[0]); // evaluation order (effect-free in practice)
1180
+ return nodeThrowExpr(1, "ERR_INVALID_ARG_TYPE", "Second argument must be a buffer", VOID, loc);
1181
+ }
1182
+ const passthrough = (chunkT.kind === "string" && (encT.value === "utf8" || encT.value === "utf-8")) ||
1183
+ (chunkT.kind === "bytes" && chunkT.elem === "u8");
1184
+ if (passthrough) {
1185
+ const receiver2 = handleReceiver(L, access.expression, NETSOCKET_T);
1186
+ const data2 = L.lowerExpr(args[0]);
1187
+ const fn = data2.type.kind === "string" ? "net.sockWrite" : "net.sockWriteBytes";
1188
+ return { kind: "libCall", fn, args: [receiver2, data2], type: VOID, loc };
1189
+ }
1190
+ }
1191
+ }
1025
1192
  const maxArgs = name === "write" ? 1 : 1;
1026
1193
  const minArgs = name === "write" ? 1 : 0;
1027
1194
  if (args.length < minArgs || args.length > maxArgs) {
@@ -1981,9 +2148,29 @@ function lowerTlsServerOptions(L, node, what) {
1981
2148
  * checked-dynamic JS lane's record — passes whole to the runtime walk
1982
2149
  * (scr_tls_srv_opts_walk: same member split, fences thrown at runtime,
1983
2150
  * the divergence-66 stance); anything else keeps the compile fence. */
2151
+ /** The option keys whose Node argument contracts the runtime walker
2152
+ * validates (scr_tls_opts_validate) — a literal carrying any of them
2153
+ * rides WHOLE to the walker so the typed ladders run in Node's order
2154
+ * (the static walk would fence them before validating). */
2155
+ const TLS_VALIDATED_OPTIONS = new Set([
2156
+ "ciphers", "passphrase", "ecdhCurve", "sessionIdContext",
2157
+ "clientCertEngine", "privateKeyEngine", "privateKeyIdentifier",
2158
+ "minVersion", "maxVersion", "handshakeTimeout", "keepAliveInitialDelay",
2159
+ "sessionTimeout", "ticketKeys",
2160
+ ]);
2161
+ /** True when a literal options bag carries a runtime-validated key (and
2162
+ * the source is JS — TypeScript keeps its compile fences). */
2163
+ function tlsLiteralNeedsRuntimeWalk(node) {
2164
+ if (!isJsSourceFile(node.getSourceFile()))
2165
+ return false;
2166
+ return node.properties.some((p) => (ts.isPropertyAssignment(p) || ts.isShorthandPropertyAssignment(p)) &&
2167
+ (ts.isIdentifier(p.name) || ts.isStringLiteral(p.name)) &&
2168
+ TLS_VALIDATED_OPTIONS.has(p.name.text));
2169
+ }
1984
2170
  function lowerTlsServerOptionsOrDyn(L, node, what) {
1985
- if (ts.isObjectLiteralExpression(node))
2171
+ if (ts.isObjectLiteralExpression(node) && !tlsLiteralNeedsRuntimeWalk(node)) {
1986
2172
  return lowerTlsServerOptions(L, node, what);
2173
+ }
1987
2174
  const v = L.lowerExpr(node);
1988
2175
  if (v.type.kind === "dyn")
1989
2176
  return { dyn: v };
@@ -2123,6 +2310,23 @@ function lowerTlsModuleCall(L, expr, bi, loc) {
2123
2310
  if (bi.member === "connect") {
2124
2311
  return lowerTlsConnectCall(L, expr, loc);
2125
2312
  }
2313
+ if (bi.member === "getCACertificates" && args.length === 1 && !args.some(ts.isSpreadElement) &&
2314
+ isJsSourceFile(expr.getSourceFile())) {
2315
+ // The type-argument ladder (validateString + the documented name
2316
+ // set); the real CA list has no lowering, so a valid name meets the
2317
+ // compiler-rendered fence after the validation.
2318
+ const raw = L.lowerExpr(args[0]);
2319
+ if (raw.type.kind === "dyn" || raw.kind === "unitLit" || L.dynConvertible(raw.type)) {
2320
+ const t = raw.type.kind === "dyn" ? raw : { kind: "dynFrom", value: raw, type: DYN, loc };
2321
+ return {
2322
+ kind: "libCall",
2323
+ fn: "tls.caCertsChk",
2324
+ args: [t, ladderFenceExpr(L, "tls.getCACertificates", expr)],
2325
+ type: L.mapTypeOf(L.typeOf(expr)) ?? DYN,
2326
+ loc,
2327
+ };
2328
+ }
2329
+ }
2126
2330
  if (bi.member === "createSecureContext") {
2127
2331
  // createSecureContext({ cert, key }) → the opaque SecureContext handle
2128
2332
  // an SNI callback answers with. The minimal honest form: exactly the
@@ -2131,8 +2335,11 @@ function lowerTlsModuleCall(L, expr, bi, loc) {
2131
2335
  if (args.length !== 1) {
2132
2336
  L.noLowering(`createSecureContext with ${args.length} arguments`, expr, "the supported form is createSecureContext({ cert, key })");
2133
2337
  }
2134
- const { cert, key } = lowerTlsServerOptions(L, args[0], "tls.createSecureContext");
2135
- return { kind: "libCall", fn: "tls.createSecureContext", args: [cert, key], type: SECURECTX_T, loc };
2338
+ const opts = lowerTlsServerOptionsOrDyn(L, args[0], "tls.createSecureContext");
2339
+ if (opts.dyn !== undefined) {
2340
+ return { kind: "libCall", fn: "tls.createSecureContextDyn", args: [opts.dyn], type: SECURECTX_T, loc };
2341
+ }
2342
+ return { kind: "libCall", fn: "tls.createSecureContext", args: [opts.cert, opts.key], type: SECURECTX_T, loc };
2136
2343
  }
2137
2344
  L.noLowering(`tls.${bi.member}`, expr, builtinFenceHintOf("tls", bi.member) ??
2138
2345
  "createServer({ cert, key }, handler) and createSecureContext({ cert, key }) are the lowered tls module functions", L.resolveValueSymbol(expr.expression));