@scriptc/compiler 0.3.2 → 0.3.4

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 (454) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +1202 -64
  2. package/dist/backend/cycle-analysis.js +6 -1
  3. package/dist/backend/cycle-analysis.js.map +1 -1
  4. package/dist/backend/cycle-mutability.d.ts +5 -0
  5. package/dist/backend/cycle-mutability.js +62 -3
  6. package/dist/backend/cycle-mutability.js.map +1 -1
  7. package/dist/backend/executable-features.js +1 -0
  8. package/dist/backend/executable-features.js.map +1 -1
  9. package/dist/backend/library-pack.js +1 -0
  10. package/dist/backend/library-pack.js.map +1 -1
  11. package/dist/backend/llvm/alloc.js +24 -10
  12. package/dist/backend/llvm/alloc.js.map +1 -1
  13. package/dist/backend/llvm/alloc.test.js +47 -1
  14. package/dist/backend/llvm/alloc.test.js.map +1 -1
  15. package/dist/backend/llvm/array-search.d.ts +8 -0
  16. package/dist/backend/llvm/array-search.js +52 -0
  17. package/dist/backend/llvm/array-search.js.map +1 -0
  18. package/dist/backend/llvm/array-search.test.d.ts +1 -0
  19. package/dist/backend/llvm/array-search.test.js +72 -0
  20. package/dist/backend/llvm/array-search.test.js.map +1 -0
  21. package/dist/backend/llvm/call-lifetimes.d.ts +12 -1
  22. package/dist/backend/llvm/call-lifetimes.js +41 -11
  23. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  24. package/dist/backend/llvm/call-lifetimes.test.js +85 -1
  25. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  26. package/dist/backend/llvm/classes.js +87 -36
  27. package/dist/backend/llvm/classes.js.map +1 -1
  28. package/dist/backend/llvm/common.d.ts +6 -1
  29. package/dist/backend/llvm/common.js +8 -1
  30. package/dist/backend/llvm/common.js.map +1 -1
  31. package/dist/backend/llvm/dense-array-access.d.ts +5 -0
  32. package/dist/backend/llvm/dense-array-access.js +3 -3
  33. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  34. package/dist/backend/llvm/dyn.d.ts +44 -1
  35. package/dist/backend/llvm/dyn.js +251 -36
  36. package/dist/backend/llvm/dyn.js.map +1 -1
  37. package/dist/backend/llvm/emitter.d.ts +77 -14
  38. package/dist/backend/llvm/emitter.js +461 -108
  39. package/dist/backend/llvm/emitter.js.map +1 -1
  40. package/dist/backend/llvm/emitter.test.js +26 -3
  41. package/dist/backend/llvm/emitter.test.js.map +1 -1
  42. package/dist/backend/llvm/expr-async.js +52 -1
  43. package/dist/backend/llvm/expr-async.js.map +1 -1
  44. package/dist/backend/llvm/expr-bytes.d.ts +9 -0
  45. package/dist/backend/llvm/expr-bytes.js +169 -63
  46. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  47. package/dist/backend/llvm/expr-callbacks.js +16 -2
  48. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  49. package/dist/backend/llvm/expr-calls.d.ts +3 -1
  50. package/dist/backend/llvm/expr-calls.js +57 -2
  51. package/dist/backend/llvm/expr-calls.js.map +1 -1
  52. package/dist/backend/llvm/expr-containers.js +57 -19
  53. package/dist/backend/llvm/expr-containers.js.map +1 -1
  54. package/dist/backend/llvm/expr-dynamic.js +19 -8
  55. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  56. package/dist/backend/llvm/expr-primitives.js +28 -30
  57. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  58. package/dist/backend/llvm/expr-records.js +8 -4
  59. package/dist/backend/llvm/expr-records.js.map +1 -1
  60. package/dist/backend/llvm/expr-stream-bridges.js +35 -32
  61. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  62. package/dist/backend/llvm/expr-stream-callbacks.d.ts +13 -2
  63. package/dist/backend/llvm/expr-stream-callbacks.js +80 -5
  64. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  65. package/dist/backend/llvm/inline-unions.d.ts +48 -0
  66. package/dist/backend/llvm/inline-unions.js +134 -0
  67. package/dist/backend/llvm/inline-unions.js.map +1 -0
  68. package/dist/backend/llvm/inline-unions.test.d.ts +1 -0
  69. package/dist/backend/llvm/inline-unions.test.js +124 -0
  70. package/dist/backend/llvm/inline-unions.test.js.map +1 -0
  71. package/dist/backend/llvm/integer-remainder.d.ts +28 -5
  72. package/dist/backend/llvm/integer-remainder.js +80 -9
  73. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  74. package/dist/backend/llvm/intern-tables.test.d.ts +1 -0
  75. package/dist/backend/llvm/intern-tables.test.js +77 -0
  76. package/dist/backend/llvm/intern-tables.test.js.map +1 -0
  77. package/dist/backend/llvm/lib-datagram.js +10 -0
  78. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  79. package/dist/backend/llvm/lib-dispatch.js +255 -29
  80. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  81. package/dist/backend/llvm/lib-filesystem.js +176 -7
  82. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  83. package/dist/backend/llvm/lib-network.js +25 -6
  84. package/dist/backend/llvm/lib-network.js.map +1 -1
  85. package/dist/backend/llvm/lib-process.js +2 -2
  86. package/dist/backend/llvm/lib-process.js.map +1 -1
  87. package/dist/backend/llvm/lib-shared.d.ts +5 -0
  88. package/dist/backend/llvm/lib-shared.js +212 -1
  89. package/dist/backend/llvm/lib-shared.js.map +1 -1
  90. package/dist/backend/llvm/lib-stream.js +184 -0
  91. package/dist/backend/llvm/lib-stream.js.map +1 -1
  92. package/dist/backend/llvm/lib-test.js +9 -0
  93. package/dist/backend/llvm/lib-test.js.map +1 -1
  94. package/dist/backend/llvm/local-array-reads.js +7 -3
  95. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  96. package/dist/backend/llvm/local-array-reads.test.js +6 -3
  97. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  98. package/dist/backend/llvm/local-union-storage.d.ts +2 -0
  99. package/dist/backend/llvm/local-union-storage.js +5 -0
  100. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  101. package/dist/backend/llvm/local-union-storage.test.js +1 -0
  102. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  103. package/dist/backend/llvm/loop-array-borrows.d.ts +8 -2
  104. package/dist/backend/llvm/loop-array-borrows.js +93 -13
  105. package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
  106. package/dist/backend/llvm/map-number-lookup.d.ts +24 -0
  107. package/dist/backend/llvm/map-number-lookup.js +88 -0
  108. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  109. package/dist/backend/llvm/map-number-lookup.test.d.ts +1 -0
  110. package/dist/backend/llvm/map-number-lookup.test.js +158 -0
  111. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -0
  112. package/dist/backend/llvm/map-read-lifetimes.d.ts +9 -0
  113. package/dist/backend/llvm/map-read-lifetimes.js +90 -1
  114. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  115. package/dist/backend/llvm/map-read-lifetimes.test.js +129 -1
  116. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  117. package/dist/backend/llvm/publish.d.ts +9 -0
  118. package/dist/backend/llvm/publish.js +25 -4
  119. package/dist/backend/llvm/publish.js.map +1 -1
  120. package/dist/backend/llvm/record-results.d.ts +8 -5
  121. package/dist/backend/llvm/record-results.js +20 -12
  122. package/dist/backend/llvm/record-results.js.map +1 -1
  123. package/dist/backend/llvm/reference-effects.js +13 -0
  124. package/dist/backend/llvm/reference-effects.js.map +1 -1
  125. package/dist/backend/llvm/reference-writes.js +19 -2
  126. package/dist/backend/llvm/reference-writes.js.map +1 -1
  127. package/dist/backend/llvm/regions.d.ts +5 -1
  128. package/dist/backend/llvm/regions.js +24 -10
  129. package/dist/backend/llvm/regions.js.map +1 -1
  130. package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
  131. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  132. package/dist/backend/llvm/shapes.d.ts +56 -10
  133. package/dist/backend/llvm/shapes.js +178 -39
  134. package/dist/backend/llvm/shapes.js.map +1 -1
  135. package/dist/backend/llvm/shapes.test.js +61 -3
  136. package/dist/backend/llvm/shapes.test.js.map +1 -1
  137. package/dist/backend/llvm/stack-objects.js +16 -4
  138. package/dist/backend/llvm/stack-objects.js.map +1 -1
  139. package/dist/backend/llvm/stack-objects.test.js +3 -0
  140. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  141. package/dist/backend/llvm/string-reads.js +2 -2
  142. package/dist/backend/llvm/string-reads.js.map +1 -1
  143. package/dist/backend/llvm/string-slices.js +2 -2
  144. package/dist/backend/llvm/string-slices.js.map +1 -1
  145. package/dist/backend/llvm/walkers.d.ts +11 -0
  146. package/dist/backend/llvm/walkers.js +106 -10
  147. package/dist/backend/llvm/walkers.js.map +1 -1
  148. package/dist/backend/may-throw.js +13 -4
  149. package/dist/backend/may-throw.js.map +1 -1
  150. package/dist/backend/native/contracts.d.ts +5 -2
  151. package/dist/backend/native/executable.js +27 -8
  152. package/dist/backend/native/executable.js.map +1 -1
  153. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  154. package/dist/backend/native/runtime-inputs.js +2 -0
  155. package/dist/backend/native/runtime-inputs.js.map +1 -1
  156. package/dist/backend/native-codegen-core.d.ts +4 -4
  157. package/dist/backend/native-codegen-core.js +4 -6
  158. package/dist/backend/native-codegen-core.js.map +1 -1
  159. package/dist/backend/native-codegen.test.js +7 -8
  160. package/dist/backend/native-codegen.test.js.map +1 -1
  161. package/dist/backend/native-link-info-core.d.ts +3 -0
  162. package/dist/backend/native-link-info-core.js.map +1 -1
  163. package/dist/backend/native-toolchain.test.js +1 -1
  164. package/dist/backend/native-toolchain.test.js.map +1 -1
  165. package/dist/backend/publication.js +3 -1
  166. package/dist/backend/publication.js.map +1 -1
  167. package/dist/backend/runtime-abi.d.ts +2 -2
  168. package/dist/backend/runtime-abi.js +2 -2
  169. package/dist/backend/runtime-pack-targets.test.js +2 -1
  170. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  171. package/dist/backend/runtime-pack.test.js +2 -1
  172. package/dist/backend/runtime-pack.test.js.map +1 -1
  173. package/dist/backend/target-diagnostics.js +11 -1
  174. package/dist/backend/target-diagnostics.js.map +1 -1
  175. package/dist/backend/target-diagnostics.test.js +4 -1
  176. package/dist/backend/target-diagnostics.test.js.map +1 -1
  177. package/dist/backend/warm-cache.js +1 -0
  178. package/dist/backend/warm-cache.js.map +1 -1
  179. package/dist/compat/fetch-profile.js +4 -4
  180. package/dist/compat/fetch-profile.js.map +1 -1
  181. package/dist/contracts/check.js +2 -0
  182. package/dist/contracts/check.js.map +1 -1
  183. package/dist/coverage/report.js +1 -1
  184. package/dist/coverage/report.js.map +1 -1
  185. package/dist/diagnostics/diagnostic.d.ts +6 -5
  186. package/dist/diagnostics/diagnostic.js +7 -6
  187. package/dist/diagnostics/diagnostic.js.map +1 -1
  188. package/dist/executable/executable-cache.d.ts +1 -0
  189. package/dist/executable/executable-cache.js +1 -0
  190. package/dist/executable/executable-cache.js.map +1 -1
  191. package/dist/executable/executable-cache.test.js +1 -0
  192. package/dist/executable/executable-cache.test.js.map +1 -1
  193. package/dist/frontend/builtin-modules.d.ts +1 -1
  194. package/dist/frontend/builtin-modules.js +1 -0
  195. package/dist/frontend/builtin-modules.js.map +1 -1
  196. package/dist/frontend/comptime-node.js +2 -2
  197. package/dist/frontend/comptime-node.js.map +1 -1
  198. package/dist/frontend/experimental-import.d.ts +5 -1
  199. package/dist/frontend/experimental-import.js +28 -3
  200. package/dist/frontend/experimental-import.js.map +1 -1
  201. package/dist/frontend/lowering/assert-instances.d.ts +38 -0
  202. package/dist/frontend/lowering/assert-instances.js +269 -0
  203. package/dist/frontend/lowering/assert-instances.js.map +1 -0
  204. package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
  205. package/dist/frontend/lowering/binding-analysis.js +1 -1
  206. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  207. package/dist/frontend/lowering/builtins/arguments.js +8 -4
  208. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  209. package/dist/frontend/lowering/builtins/blob.d.ts +20 -0
  210. package/dist/frontend/lowering/builtins/blob.js +167 -0
  211. package/dist/frontend/lowering/builtins/blob.js.map +1 -0
  212. package/dist/frontend/lowering/builtins/child-process-async.d.ts +2 -2
  213. package/dist/frontend/lowering/builtins/child-process-async.js +2 -2
  214. package/dist/frontend/lowering/builtins/child-process-methods.js +1 -1
  215. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  216. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -1
  217. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  218. package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
  219. package/dist/frontend/lowering/builtins/compression.js +178 -4
  220. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  221. package/dist/frontend/lowering/builtins/constants.js +7 -2
  222. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  223. package/dist/frontend/lowering/builtins/crypto.d.ts +6 -0
  224. package/dist/frontend/lowering/builtins/crypto.js +526 -121
  225. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  226. package/dist/frontend/lowering/builtins/errors.js +23 -0
  227. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  228. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +10 -0
  229. package/dist/frontend/lowering/builtins/filesystem-calls.js +89 -1
  230. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  231. package/dist/frontend/lowering/builtins/filesystem.d.ts +16 -7
  232. package/dist/frontend/lowering/builtins/filesystem.js +97 -15
  233. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  234. package/dist/frontend/lowering/builtins/fs-glob.d.ts +23 -0
  235. package/dist/frontend/lowering/builtins/fs-glob.js +224 -0
  236. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -0
  237. package/dist/frontend/lowering/builtins/key-object.d.ts +13 -0
  238. package/dist/frontend/lowering/builtins/key-object.js +56 -0
  239. package/dist/frontend/lowering/builtins/key-object.js.map +1 -0
  240. package/dist/frontend/lowering/builtins/module-calls.js +44 -11
  241. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  242. package/dist/frontend/lowering/builtins/performance.d.ts +25 -3
  243. package/dist/frontend/lowering/builtins/performance.js +340 -5
  244. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  245. package/dist/frontend/lowering/builtins/process.d.ts +2 -2
  246. package/dist/frontend/lowering/builtins/process.js +107 -14
  247. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  248. package/dist/frontend/lowering/builtins/properties.d.ts +0 -7
  249. package/dist/frontend/lowering/builtins/properties.js +39 -11
  250. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  251. package/dist/frontend/lowering/builtins/readline.d.ts +23 -8
  252. package/dist/frontend/lowering/builtins/readline.js +266 -90
  253. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  254. package/dist/frontend/lowering/builtins/timers.d.ts +3 -0
  255. package/dist/frontend/lowering/builtins/timers.js +109 -23
  256. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  257. package/dist/frontend/lowering/builtins/url.d.ts +8 -0
  258. package/dist/frontend/lowering/builtins/url.js +36 -0
  259. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  260. package/dist/frontend/lowering/call-arguments.js +1 -1
  261. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  262. package/dist/frontend/lowering/call-signatures.js +26 -2
  263. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  264. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +2 -0
  265. package/dist/frontend/lowering/class-dynamic-dispatch.js +171 -13
  266. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  267. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +1 -0
  268. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  269. package/dist/frontend/lowering/class-protocol-dispatch.d.ts +45 -0
  270. package/dist/frontend/lowering/class-protocol-dispatch.js +516 -0
  271. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -0
  272. package/dist/frontend/lowering/coercions/structural-plans.js +2 -1
  273. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  274. package/dist/frontend/lowering/coercions/structural.js +3 -3
  275. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  276. package/dist/frontend/lowering/collation-repertoire.js +6 -5
  277. package/dist/frontend/lowering/collation-repertoire.js.map +1 -1
  278. package/dist/frontend/lowering/containers/array-callbacks.js +4 -7
  279. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  280. package/dist/frontend/lowering/containers/array-methods.d.ts +0 -7
  281. package/dist/frontend/lowering/containers/array-methods.js +43 -2
  282. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  283. package/dist/frontend/lowering/containers/bytes.js +38 -26
  284. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  285. package/dist/frontend/lowering/containers/for-of.d.ts +1 -1
  286. package/dist/frontend/lowering/containers/for-of.js +5 -1
  287. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  288. package/dist/frontend/lowering/containers/indexed-objects.js +1 -1
  289. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  290. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  291. package/dist/frontend/lowering/crypto-tables.js +77 -12
  292. package/dist/frontend/lowering/crypto-tables.js.map +1 -1
  293. package/dist/frontend/lowering/expressions/nullish-assignment.js +10 -0
  294. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  295. package/dist/frontend/lowering/expressions/object-literals.js +16 -12
  296. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  297. package/dist/frontend/lowering/generic-functions.d.ts +2 -2
  298. package/dist/frontend/lowering/generic-functions.js +2 -2
  299. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  300. package/dist/frontend/lowering/http2-constants.js +1 -1
  301. package/dist/frontend/lowering/intern-tables.d.ts +13 -0
  302. package/dist/frontend/lowering/intern-tables.js +536 -0
  303. package/dist/frontend/lowering/intern-tables.js.map +1 -0
  304. package/dist/frontend/lowering/lower-array-sort.d.ts +12 -1
  305. package/dist/frontend/lowering/lower-array-sort.js +561 -191
  306. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  307. package/dist/frontend/lowering/lower-array-sort.test.js +4 -2
  308. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  309. package/dist/frontend/lowering/lower-assert.js +702 -63
  310. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  311. package/dist/frontend/lowering/lower-async-iteration.d.ts +6 -3
  312. package/dist/frontend/lowering/lower-async-iteration.js +259 -4
  313. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  314. package/dist/frontend/lowering/lower-calls.js +118 -12
  315. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  316. package/dist/frontend/lowering/lower-classes.d.ts +11 -2
  317. package/dist/frontend/lowering/lower-classes.js +76 -9
  318. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  319. package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
  320. package/dist/frontend/lowering/lower-comptime.js +4 -4
  321. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  322. package/dist/frontend/lowering/lower-dgram.js +77 -52
  323. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  324. package/dist/frontend/lowering/lower-event-target.d.ts +63 -0
  325. package/dist/frontend/lowering/lower-event-target.js +362 -0
  326. package/dist/frontend/lowering/lower-event-target.js.map +1 -0
  327. package/dist/frontend/lowering/lower-expando.js +2 -2
  328. package/dist/frontend/lowering/lower-exprs.js +124 -22
  329. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  330. package/dist/frontend/lowering/lower-inspect.d.ts +6 -0
  331. package/dist/frontend/lowering/lower-inspect.js +240 -49
  332. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  333. package/dist/frontend/lowering/lower-mixins.js +1 -1
  334. package/dist/frontend/lowering/lower-mock.d.ts +11 -0
  335. package/dist/frontend/lowering/lower-mock.js +504 -0
  336. package/dist/frontend/lowering/lower-mock.js.map +1 -0
  337. package/dist/frontend/lowering/lower-modules.d.ts +1 -1
  338. package/dist/frontend/lowering/lower-modules.js +14 -3
  339. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  340. package/dist/frontend/lowering/lower-namespaces.d.ts +2 -2
  341. package/dist/frontend/lowering/lower-namespaces.js +2 -2
  342. package/dist/frontend/lowering/lower-server.d.ts +3 -0
  343. package/dist/frontend/lowering/lower-server.js +419 -44
  344. package/dist/frontend/lowering/lower-server.js.map +1 -1
  345. package/dist/frontend/lowering/lower-stdlib.d.ts +7 -1
  346. package/dist/frontend/lowering/lower-stdlib.js +10 -3
  347. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  348. package/dist/frontend/lowering/lower-stmts.d.ts +2 -2
  349. package/dist/frontend/lowering/lower-stmts.js +69 -14
  350. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  351. package/dist/frontend/lowering/lower-stream.d.ts +10 -6
  352. package/dist/frontend/lowering/lower-stream.js +1020 -49
  353. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  354. package/dist/frontend/lowering/lower-test.js +86 -8
  355. package/dist/frontend/lowering/lower-test.js.map +1 -1
  356. package/dist/frontend/lowering/lower-timers.js +1 -1
  357. package/dist/frontend/lowering/lowerer.d.ts +45 -5
  358. package/dist/frontend/lowering/lowerer.js +317 -48
  359. package/dist/frontend/lowering/lowerer.js.map +1 -1
  360. package/dist/frontend/lowering/native-ffi.js +2 -2
  361. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  362. package/dist/frontend/lowering/pairs-snapshot.d.ts +6 -0
  363. package/dist/frontend/lowering/pairs-snapshot.js +49 -0
  364. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  365. package/dist/frontend/lowering/runtime-optional-records.d.ts +115 -0
  366. package/dist/frontend/lowering/runtime-optional-records.js +715 -0
  367. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -0
  368. package/dist/frontend/lowering/runtime-optional-records.test.d.ts +1 -0
  369. package/dist/frontend/lowering/runtime-optional-records.test.js +175 -0
  370. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -0
  371. package/dist/frontend/lowering/surfaces.d.ts +11 -3
  372. package/dist/frontend/lowering/surfaces.js +334 -37
  373. package/dist/frontend/lowering/surfaces.js.map +1 -1
  374. package/dist/frontend/lowering/zlib-constants.d.ts +1 -0
  375. package/dist/frontend/lowering/zlib-constants.js +181 -0
  376. package/dist/frontend/lowering/zlib-constants.js.map +1 -0
  377. package/dist/frontend/mock-shapes.d.ts +10 -0
  378. package/dist/frontend/mock-shapes.js +76 -0
  379. package/dist/frontend/mock-shapes.js.map +1 -0
  380. package/dist/frontend/module-syntax.d.ts +1 -1
  381. package/dist/frontend/module-syntax.js +1 -1
  382. package/dist/frontend/npm-static-prune.js +1 -1
  383. package/dist/frontend/npm-static-prune.js.map +1 -1
  384. package/dist/frontend/npm-static-rewrite-syntax.js +4 -3
  385. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  386. package/dist/frontend/pipeline.js +6 -4
  387. package/dist/frontend/pipeline.js.map +1 -1
  388. package/dist/frontend/program.d.ts +3 -3
  389. package/dist/frontend/program.js +25 -18
  390. package/dist/frontend/program.js.map +1 -1
  391. package/dist/frontend/resolve.d.ts +4 -0
  392. package/dist/frontend/resolve.js +15 -1
  393. package/dist/frontend/resolve.js.map +1 -1
  394. package/dist/frontend/ts7/adapter.js +1 -1
  395. package/dist/frontend/ts7/ast-bytes.d.ts +1 -1
  396. package/dist/frontend/ts7/ast-bytes.js +1 -1
  397. package/dist/frontend/ts7/semantic-json.d.ts +1 -1
  398. package/dist/frontend/ts7/semantic-json.js +1 -1
  399. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  400. package/dist/frontend/ts7/world-check.js +1 -1
  401. package/dist/frontend/tsc-codes.js +3 -2
  402. package/dist/frontend/tsc-codes.js.map +1 -1
  403. package/dist/frontend/type-mapper.d.ts +21 -1
  404. package/dist/frontend/type-mapper.js +245 -27
  405. package/dist/frontend/type-mapper.js.map +1 -1
  406. package/dist/index.js +7 -5
  407. package/dist/index.js.map +1 -1
  408. package/dist/ir/analysis.d.ts +12 -6
  409. package/dist/ir/analysis.js +26 -10
  410. package/dist/ir/analysis.js.map +1 -1
  411. package/dist/ir/analysis.test.js +15 -3
  412. package/dist/ir/analysis.test.js.map +1 -1
  413. package/dist/ir/builtin-effects.js +115 -0
  414. package/dist/ir/builtin-effects.js.map +1 -1
  415. package/dist/ir/builtin-signatures.d.ts +1 -1
  416. package/dist/ir/builtin-signatures.js +438 -46
  417. package/dist/ir/builtin-signatures.js.map +1 -1
  418. package/dist/ir/int32-slots.js +1 -0
  419. package/dist/ir/int32-slots.js.map +1 -1
  420. package/dist/ir/ir.d.ts +84 -17
  421. package/dist/ir/ir.js +54 -1
  422. package/dist/ir/ir.js.map +1 -1
  423. package/dist/ir/runtime-features.d.ts +1 -0
  424. package/dist/ir/runtime-features.js +111 -7
  425. package/dist/ir/runtime-features.js.map +1 -1
  426. package/dist/ir/serialize.js +1 -1
  427. package/dist/ir/serialize.js.map +1 -1
  428. package/dist/ir/traverse.js +1 -0
  429. package/dist/ir/traverse.js.map +1 -1
  430. package/dist/ir/validate.js +295 -14
  431. package/dist/ir/validate.js.map +1 -1
  432. package/dist/ir/validate.test.js +60 -0
  433. package/dist/ir/validate.test.js.map +1 -1
  434. package/dist/library/fence-eval.d.ts +1 -1
  435. package/dist/library/fence-eval.js +5 -4
  436. package/dist/library/fence-eval.js.map +1 -1
  437. package/dist/library/ir-policy.js +11 -4
  438. package/dist/library/ir-policy.js.map +1 -1
  439. package/dist/library/library-profile.js +13 -13
  440. package/dist/library/library-profile.js.map +1 -1
  441. package/dist/library/prepare.js +1 -1
  442. package/dist/library/prepare.js.map +1 -1
  443. package/dist/library/sidecar.js +3 -3
  444. package/dist/library/sidecar.js.map +1 -1
  445. package/dist/native/cli.js +1 -0
  446. package/dist/native/cli.js.map +1 -1
  447. package/dist/native/compiler.js +1 -3
  448. package/dist/native/compiler.js.map +1 -1
  449. package/dist/native/prepare.js +4 -2
  450. package/dist/native/prepare.js.map +1 -1
  451. package/dist/native/sanitizer.test.js +1 -0
  452. package/dist/native/sanitizer.test.js.map +1 -1
  453. package/package.json +20 -20
  454. package/surface-manifest.json +1279 -221
@@ -1,5 +1,5 @@
1
1
  import { BIGINT_T } from "./ir.js";
2
- import { arrayOf, BOOL, BYTES_U8, bytesOf, CHILD_T, CHILDSTREAM_T, CHILDWRITER_T, CRYPTOHASH_T, CRYPTOHMAC_T, DATE_T, DGRAMSOCK_T, DYN, F64, FILEHANDLE_T, FSWATCHER_T, HTTP2SESSION_T, HTTP2STREAM_T, HTTPCLIENTREQ_T, HTTPREQ_T, HTTPRES_T, NETSERVER_T, NETSOCKET_T, PROCSTREAM_T, REGEX, SEARCH_PARAMS_T, SECURECTX_T, SPAWNRES_T, STATS_T, STRING, SYMBOL_T, TESTCTX_T, URL_T, VOID, } from "./ir.js";
2
+ import { arrayOf, BOOL, BYTES_U8, bytesOf, CHILD_T, CHILDSTREAM_T, CHILDWRITER_T, CRYPTOHASH_T, CRYPTOHMAC_T, DATE_T, DIR_T, DGRAMSOCK_T, DYN, F64, FILEHANDLE_T, FSWATCHER_T, HTTP2SESSION_T, HTTP2STREAM_T, HTTPCLIENTREQ_T, HTTPREQ_T, HTTPRES_T, NETSERVER_T, NETSOCKET_T, PROCSTREAM_T, REGEX, SEARCH_PARAMS_T, SECURECTX_T, SPAWNRES_T, STATS_T, STRING, SYMBOL_T, TESTCTX_T, URL_T, VOID, } from "./ir.js";
3
3
  /** Preserve the closed names while giving every entry the same slot type. */
4
4
  function defineLibFnSignatures(signatures) {
5
5
  return signatures;
@@ -26,7 +26,37 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
26
26
  "event.new": { argTypes: [DYN], result: DYN },
27
27
  "event.customNew": { argTypes: [DYN], result: DYN },
28
28
  "event.is": { argTypes: [DYN, F64], result: BOOL },
29
+ /** Compiled EventTarget and Event subclasses: the receiver is the
30
+ * instance (an object rooted at %EventTarget / %Event). targetInit and
31
+ * init are super() (init takes the argument vector as one dyn array
32
+ * and throws the constructor's validation errors; initType is the
33
+ * super(type) form with a string); targetCall runs an EventTarget method
34
+ * with the instance's own capsule as `self` (targetDispatch is its
35
+ * dispatchEvent(event) form, answering the bool); call, get and set
36
+ * reach the Event members. */
37
+ "event.targetInit": { argTypes: [null], result: VOID },
38
+ "event.init": { argTypes: [null, DYN], result: VOID },
39
+ "event.initType": { argTypes: [null, STRING], result: VOID },
40
+ /** %main hands the engine the compiled `listener.handleEvent` reader
41
+ * (lower-event-target.ts noteEventListeners). */
42
+ "event.handleEventReader": { argTypes: [DYN], result: VOID },
43
+ "event.targetDispatch": { argTypes: [null, DYN, DYN], result: BOOL },
44
+ "event.targetCall": { argTypes: [null, DYN, STRING, DYN], result: DYN },
45
+ "event.call": { argTypes: [null, STRING, DYN], result: DYN },
46
+ "event.get": { argTypes: [null, STRING], result: DYN },
47
+ "event.set": { argTypes: [null, STRING, DYN], result: VOID },
29
48
  "events.addAbortListener": { argTypes: [DYN, DYN], result: DYN },
49
+ /** Blob / File (scr_blob.c): the constructors and slice() take their
50
+ * argument vector as one dyn array and throw Node's validation errors;
51
+ * the readers settle on Node's microtask turn for the Blob's parts.
52
+ * `blob.is` is `v instanceof Blob` (kind 0) or `File` (1). */
53
+ "blob.new": { argTypes: [DYN], result: DYN },
54
+ "blob.fileNew": { argTypes: [DYN], result: DYN },
55
+ "blob.slice": { argTypes: [DYN, DYN], result: DYN },
56
+ "blob.text": { argTypes: [DYN], result: { kind: "promise", inner: STRING } },
57
+ "blob.bytes": { argTypes: [DYN], result: { kind: "promise", inner: BYTES_U8 } },
58
+ "blob.arrayBuffer": { argTypes: [DYN], result: { kind: "promise", inner: DYN } },
59
+ "blob.is": { argTypes: [DYN, F64], result: BOOL },
30
60
  "abort.timeout": { argTypes: [DYN], result: DYN },
31
61
  "abort.now": { argTypes: [DYN], result: DYN },
32
62
  "abort.any": { argTypes: [DYN], result: DYN },
@@ -62,8 +92,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
62
92
  * "Cannot set properties of undefined (setting 'k')"; every other kind
63
93
  * throws Node's STRICT-mode "Cannot create property 'k' on <kind>" —
64
94
  * primitives quoting their rendering, V8's "on number '5'"
65
- * (sloppy mode would silently ignore — suite tests are 'use strict';
66
- * SEMANTICS.md notes the sloppy divergence: loud, never silent). Void
95
+ * (sloppy mode would ignore the write — suite tests are 'use strict';
96
+ * SEMANTICS.md notes the sloppy divergence: the write throws). Void
67
97
  * result; in the may-throw seed set. */
68
98
  "dyn.keySet": { argTypes: [DYN, STRING, DYN], result: VOID },
69
99
  "dyn.keySetComputed": { argTypes: [DYN, DYN, DYN], result: VOID },
@@ -81,6 +111,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
81
111
  "dyn.globalSymbolDelete": { argTypes: [SYMBOL_T], result: VOID },
82
112
  /** Exact native class capsule identity, without materializing its fields. */
83
113
  "dyn.typedRefIs": { argTypes: [DYN, STRING], result: BOOL },
114
+ /** A capsule boxed by this program from exactly this class: one key
115
+ * pointer test, false for equal keys boxed elsewhere. Guards fast paths
116
+ * whose fallback handles every other value. The key is a literal. */
117
+ "dyn.typedRefKeyIs": { argTypes: [DYN, STRING], result: BOOL },
84
118
  "dyn.classIs": { argTypes: [DYN, STRING], result: BOOL },
85
119
  /** Destructuring pack over a dyn source — `const [a, b] = d`, a
86
120
  * destructured dyn callback param (args: the source and the STATIC
@@ -135,7 +169,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
135
169
  * Value descriptors become own properties on OBJ and FUNC targets;
136
170
  * OBJ targets preserve data attributes. get/set
137
171
  * descriptors and non-object targets/descriptors throw catchably
138
- * (Node's TypeError texts; accessors the loud unsupported Error). In
172
+ * (Node's TypeError texts; accessors the "not supported yet" Error). In
139
173
  * the may-throw seed set. */
140
174
  "dyn.defineProps": { argTypes: [DYN, DYN], result: DYN },
141
175
  "dyn.defineProperty": { argTypes: [DYN, DYN, DYN], result: DYN },
@@ -251,6 +285,34 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
251
285
  "process.uptime": { argTypes: [], result: F64 },
252
286
  /** perf_hooks performance.now(): fractional ms since process start. */
253
287
  "perf.now": { argTypes: [], result: F64 },
288
+ /** perf_hooks user timing over the thread's performance timeline. The
289
+ * producing calls take the call's whole argument vector as one dyn
290
+ * array (Node's validation and errors run in the runtime, MAY THROW):
291
+ * mark/measure answer 1, entries(args, which) the entry count of
292
+ * getEntries (0), getEntriesByName (1) or getEntriesByType (2). The
293
+ * entryName/Type/Start/Duration/Detail accessors read entry i of that
294
+ * answer; the frontend builds a new entry's record from them and hands
295
+ * it to entryKeep (a typed reference capsule), and the getters read the
296
+ * kept records back through entryRef, so entries keep their identity. */
297
+ "perf.mark": { argTypes: [DYN], result: F64 },
298
+ "perf.measure": { argTypes: [DYN], result: F64 },
299
+ "perf.entries": { argTypes: [DYN, F64], result: F64 },
300
+ "perf.clearMarks": { argTypes: [DYN], result: VOID },
301
+ "perf.clearMeasures": { argTypes: [DYN], result: VOID },
302
+ "perf.entryName": { argTypes: [F64], result: STRING },
303
+ "perf.entryType": { argTypes: [F64], result: STRING },
304
+ "perf.entryStart": { argTypes: [F64], result: F64 },
305
+ "perf.entryDuration": { argTypes: [F64], result: F64 },
306
+ "perf.entryDetail": { argTypes: [F64], result: DYN },
307
+ "perf.entryKeep": { argTypes: [DYN], result: VOID },
308
+ "perf.entryRef": { argTypes: [F64], result: DYN },
309
+ /** process.memoryUsage(): memoryUsageTake samples the resident set and
310
+ * the runtime heap once (MAY THROW Node's uv_resident_set_memory error)
311
+ * and memoryUsageField(k) reads that sample (0 rss, 1 heapTotal, 2
312
+ * heapUsed, 3 external, 4 arrayBuffers). rss is memoryUsage.rss(). */
313
+ "process.memoryUsageTake": { argTypes: [], result: VOID },
314
+ "process.memoryUsageField": { argTypes: [F64], result: F64 },
315
+ "process.rss": { argTypes: [], result: F64 },
254
316
  "process.availableMemory": { argTypes: [], result: F64 },
255
317
  "process.constrainedMemory": { argTypes: [], result: F64 },
256
318
  "process.cpuUser": { argTypes: [], result: F64 },
@@ -268,8 +330,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
268
330
  "timers.immediateRef": { argTypes: [F64], result: F64 },
269
331
  "timers.immediateHasRef": { argTypes: [F64], result: BOOL },
270
332
  /** The tolerated non-handle clear (`clearTimeout(null)`,
271
- * `clearInterval({})`, zero-argument forms): Node silently ignores
272
- * anything that is not a live handle — a VOID no-op the emitter drops
333
+ * `clearInterval({})`, zero-argument forms): Node ignores anything
334
+ * that is not a live handle without an error — a VOID no-op the emitter drops
273
335
  * (only syntactically side-effect-free arguments take this path). */
274
336
  "timers.clearNoop": { argTypes: [], result: VOID },
275
337
  // Signal listeners are zero-param (the ambient shape); exit/stdin
@@ -314,7 +376,8 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
314
376
  "fs.readFileSyncBuf": { argTypes: [STRING], result: BYTES_U8 },
315
377
  /** readFileSync(path, enc) with a RUNTIME encoding (an untyped JS
316
378
  * parameter): undefined/null answer Buffers, utf8 a string, other real
317
- * encodings fence loudly, unknown names throw ERR_UNKNOWN_ENCODING. */
379
+ * encodings throw the "not supported yet" Error, unknown names throw
380
+ * ERR_UNKNOWN_ENCODING. */
318
381
  "fs.readFileSyncDyn": { argTypes: [STRING, DYN], result: DYN },
319
382
  "fs.writeFileSync": { argTypes: [STRING, STRING], result: VOID },
320
383
  "fs.appendFileSync": { argTypes: [STRING, STRING], result: VOID },
@@ -330,12 +393,40 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
330
393
  * to lstat, Node's getDirents rule). The result type is the call site's
331
394
  * interned Dirent record array (name, parentPath, hidden %dtype in
332
395
  * libuv's UV_DIRENT encoding) — verified by the frontend; the emitter
333
- * assembles the rows from the snapshot. OS order, no "."/"..". Throws
396
+ * assembles the rows from the snapshot. Byte order on POSIX (libuv
397
+ * sorts), the directory's order on Windows; no "."/"..". Throws
334
398
  * Node's scandir errno error (may-throw seed set); fresh +1 array. */
335
399
  "fs.readdirTypesSync": { argTypes: [STRING], result: VOID },
400
+ /** fs.globSync / fs.glob / fs/promises glob (scr_glob.c, Node's
401
+ * lib/internal/fs/glob.js walk): pattern and options are dyn values the
402
+ * runtime validates in Node's order. The string forms answer string[];
403
+ * the Dirent forms answer the call site's Dirent record array (validated
404
+ * in validate.ts) assembled from the snapshot; fs.callbackGlob takes the
405
+ * argument vector and calls back with string[]. */
406
+ "fs.globSync": { argTypes: [DYN, DYN], result: arrayOf(STRING) },
407
+ "fs.globTypesSync": { argTypes: [DYN, DYN], result: VOID },
408
+ "fs.callbackGlob": { argTypes: [DYN], result: VOID },
409
+ "fsp.globStrings": { argTypes: [DYN, DYN], result: arrayOf(STRING) },
410
+ "fsp.globTypes": { argTypes: [DYN, DYN], result: VOID },
411
+ /** The error an fs/promises glob walk ended with (undefined when none),
412
+ * read once right after fsp.globStrings / fsp.globTypes. */
413
+ "fsp.globError": { argTypes: [], result: DYN },
414
+ /** fs.Dir (scr_lib.c): opendirSync(path, bufferSize) throws Node's
415
+ * opendir error (or the options.bufferSize RangeError); dir.readSync
416
+ * answers the call site's `Dirent | null` (VOID here — the emitter builds
417
+ * the row like readdirTypesSync) and dir.read is its promise twin;
418
+ * readSync and closeSync throw ERR_DIR_CLOSED on a closed Dir, read and
419
+ * close reject with it. */
420
+ "fs.opendirSync": { argTypes: [STRING, F64], result: DIR_T },
421
+ "fsp.opendir": { argTypes: [STRING, F64], result: { kind: "promise", inner: DIR_T } },
422
+ "dir.path": { argTypes: [DIR_T], result: STRING },
423
+ "dir.readSync": { argTypes: [DIR_T], result: VOID },
424
+ "dir.read": { argTypes: [DIR_T], result: { kind: "promise", inner: VOID } },
425
+ "dir.closeSync": { argTypes: [DIR_T], result: VOID },
426
+ "dir.close": { argTypes: [DIR_T], result: { kind: "promise", inner: VOID } },
336
427
  /** node:path (scr_path.c ports BOTH of Node's implementations
337
428
  * function-by-function): the `path.*` family is posix, the
338
- * `path.win32*` family is Node v24's path.win32 byte-for-byte — the
429
+ * `path.win32*` family is Node v24's path.win32 ported exactly — the
339
430
  * frontend binds the bare module to the TARGET platform's family
340
431
  * (Node on Windows IS path.win32) and the path.posix / path.win32
341
432
  * namespaces to their own family everywhere. join and resolve take ONE
@@ -699,6 +790,18 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
699
790
  "url.fileURLToPathUrl": { argTypes: [URL_T], result: STRING },
700
791
  "url.fileURLToPathChecked": { argTypes: [DYN], result: STRING },
701
792
  "url.fileURLToPathOptions": { argTypes: [DYN, DYN], result: STRING },
793
+ /** node:url's legacy API (scr_url_legacy.c): parse(url, parseQueryString,
794
+ * slashesDenoteHost) answers the checked-dynamic Url instance; format
795
+ * takes the urlObject (a Url-shaped object, a string, or a URL) and the
796
+ * URL form's options; resolve takes (from, to). The trailing bool says
797
+ * whether the call site emits DEP0169. domainToASCII/domainToUnicode
798
+ * take the domain and whether it was omitted. Node's validation errors
799
+ * throw catchably. */
800
+ "url.legacyParse": { argTypes: [DYN, DYN, DYN, BOOL], result: DYN },
801
+ "url.legacyFormat": { argTypes: [DYN, DYN, BOOL], result: STRING },
802
+ "url.legacyResolve": { argTypes: [DYN, DYN, BOOL], result: STRING },
803
+ "url.domainToASCII": { argTypes: [DYN, BOOL], result: STRING },
804
+ "url.domainToUnicode": { argTypes: [DYN, BOOL], result: STRING },
702
805
  "url.fileURLToPathBuffer": { argTypes: [DYN, DYN], result: BYTES_U8 },
703
806
  "url.pathToFileURLChecked": { argTypes: [DYN, DYN], result: URL_T },
704
807
  "url.fileURLToPathStr": { argTypes: [STRING], result: STRING },
@@ -883,6 +986,21 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
883
986
  "stats.atimeMs": { argTypes: [STATS_T], result: F64 },
884
987
  "stats.mtimeMs": { argTypes: [STATS_T], result: F64 },
885
988
  "stats.ctimeMs": { argTypes: [STATS_T], result: F64 },
989
+ "stats.birthtimeMs": { argTypes: [STATS_T], result: F64 },
990
+ "stats.mode": { argTypes: [STATS_T], result: F64 },
991
+ "stats.uid": { argTypes: [STATS_T], result: F64 },
992
+ "stats.gid": { argTypes: [STATS_T], result: F64 },
993
+ "stats.rdev": { argTypes: [STATS_T], result: F64 },
994
+ "stats.blksize": { argTypes: [STATS_T], result: F64 },
995
+ "stats.isBlockDevice": { argTypes: [STATS_T], result: BOOL },
996
+ "stats.isCharacterDevice": { argTypes: [STATS_T], result: BOOL },
997
+ "stats.isFIFO": { argTypes: [STATS_T], result: BOOL },
998
+ "stats.isSocket": { argTypes: [STATS_T], result: BOOL },
999
+ /** The Date fields: the *Ms value rounded (Node's dateFromMs). */
1000
+ "stats.atime": { argTypes: [STATS_T], result: DATE_T },
1001
+ "stats.mtime": { argTypes: [STATS_T], result: DATE_T },
1002
+ "stats.ctime": { argTypes: [STATS_T], result: DATE_T },
1003
+ "stats.birthtime": { argTypes: [STATS_T], result: DATE_T },
886
1004
  // The wider sync fs slice (unlink/chmod/chown/copyfile and the
887
1005
  // mode-carrying write/mkdir forms).
888
1006
  /** The wider sync fs slice (scr_lib.c), all throwing catchably with
@@ -905,6 +1023,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
905
1023
  "fs.unlinkSync": { argTypes: [STRING], result: VOID },
906
1024
  "fs.chmodSync": { argTypes: [STRING, F64], result: VOID },
907
1025
  "fs.chownSync": { argTypes: [STRING, F64, F64], result: VOID },
1026
+ "fs.lchownSync": { argTypes: [STRING, F64, F64], result: VOID },
1027
+ "fs.fchownSync": { argTypes: [F64, F64, F64], result: VOID },
1028
+ /** truncateSync opens the path with 'r+', then truncates (len checked and
1029
+ * clamped like ftruncateSync's) and closes it. */
1030
+ "fs.truncateSync": { argTypes: [STRING, F64], result: VOID },
908
1031
  "fs.copyFileSync": { argTypes: [STRING, STRING], result: VOID },
909
1032
  /** renameSync is the direct two-path syscall wrapper. renameCb defers
910
1033
  * the operation to the loop and fires a program-shaped Error | null
@@ -1013,6 +1136,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1013
1136
  },
1014
1137
  "net.serverPort": { argTypes: [NETSERVER_T], result: F64 },
1015
1138
  "net.serverListening": { argTypes: [NETSERVER_T], result: BOOL },
1139
+ /** socket.ref()/unref() and server.ref()/unref(): whether the handle
1140
+ * keeps the event loop alive. */
1141
+ "net.sockSetRef": { argTypes: [NETSOCKET_T, BOOL], result: VOID },
1142
+ "net.serverSetRef": { argTypes: [NETSERVER_T, BOOL], result: VOID },
1016
1143
  // net.serverAddress's record result is shape-checked in the libCall case
1017
1144
  // (the dgram.address sentinel pattern).
1018
1145
  /** server.address() as the full AddressInfo record (the dgram.address
@@ -1165,6 +1292,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1165
1292
  result: VOID,
1166
1293
  },
1167
1294
  "dns.lookup": { argTypes: [STRING, F64, null], result: VOID },
1295
+ /** Node's argument forms with dyn callbacks: lookup(hostname, options,
1296
+ * callback) and lookupService(address, port, callback). */
1297
+ "dns.lookupDyn": { argTypes: [DYN, DYN, DYN, BOOL], result: VOID },
1298
+ "dns.lookupService": { argTypes: [DYN, DYN, DYN, BOOL], result: VOID },
1299
+ "dns.getServers": { argTypes: [], result: DYN },
1300
+ "dns.getDefaultResultOrder": { argTypes: [], result: STRING },
1301
+ "dns.setDefaultResultOrder": { argTypes: [DYN], result: VOID },
1168
1302
  // node:test (scr_test.c). Bodies are program-dependent closures (0 or
1169
1303
  // 1 testCtx param, void or Promise<void> result — the spoke pinned the
1170
1304
  // shape): null slots. sub's result is the settled Promise<void> the
@@ -1184,7 +1318,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1184
1318
  "test.register": { argTypes: [STRING, F64, STRING, null, F64, STRING], result: VOID },
1185
1319
  "test.registerEmpty": { argTypes: [STRING, F64, STRING, F64, STRING], result: VOID },
1186
1320
  "test.suite": {
1187
- argTypes: [STRING, F64, STRING, { kind: "func", params: [], ret: VOID }, STRING],
1321
+ argTypes: [STRING, F64, STRING, { kind: "func", params: [], ret: VOID }, STRING, F64],
1188
1322
  result: VOID,
1189
1323
  },
1190
1324
  "test.hook": { argTypes: [F64, null, F64], result: VOID },
@@ -1197,6 +1331,13 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1197
1331
  "test.ctxTodo": { argTypes: [TESTCTX_T, STRING], result: VOID },
1198
1332
  "test.ctxDiagnostic": { argTypes: [TESTCTX_T, STRING], result: VOID },
1199
1333
  "test.ctxName": { argTypes: [TESTCTX_T], result: STRING },
1334
+ "test.ctxFullName": { argTypes: [TESTCTX_T], result: STRING },
1335
+ // t.before/t.after/t.beforeEach/t.afterEach (which: 0 before, 1 after,
1336
+ // 2 beforeEach, 3 afterEach); a throwing t.before is captured on the test.
1337
+ "test.ctxHook": { argTypes: [TESTCTX_T, F64, null, F64], result: VOID },
1338
+ // t.plan(count), and the count of one t.assert call.
1339
+ "test.ctxPlan": { argTypes: [TESTCTX_T, F64], result: VOID },
1340
+ "test.ctxCount": { argTypes: [TESTCTX_T], result: VOID },
1200
1341
  // node:http (scr_http.c over scr_net.c). The handler and the data
1201
1342
  // listeners are program-dependent closures (null slots, checked in the
1202
1343
  // libCall case); reqHeader's result is the interned string|undefined
@@ -1242,8 +1383,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1242
1383
  /** The ServerResponse member surface: statusCode/statusMessage reads
1243
1384
  * and assignments (Node's writable properties), the header CRUD trio
1244
1385
  * (getHeader answers `string | undefined` like reqHeader), and
1245
- * end(cb)'s finish slot (resOnFinish registers, the end call follows —
1246
- * the callback fires deferred, Node's 'finish' emit). writeHead's
1386
+ * end(cb)'s callback slot (resOnEndCallback registers, the end call
1387
+ * follows — the callback fires deferred, just before Node's 'finish'
1388
+ * emit; resOnFinish is the 'finish' listener slot). writeHead's
1247
1389
  * statusMessage forms compose in interned helpers: resStatusMsgSet
1248
1390
  * then the ordinary writeHead entry. */
1249
1391
  "http.resStatusGet": { argTypes: [HTTPRES_T], result: F64 },
@@ -1265,6 +1407,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1265
1407
  // resGetHeader answers the interned `string | undefined` union — the
1266
1408
  // reqHeader/envGet sentinel pattern (VOID here, checked specially).
1267
1409
  "http.resGetHeader": { argTypes: [HTTPRES_T, STRING], result: VOID },
1410
+ /** getHeader as Node answers it: the number, string or string[] that was
1411
+ * set, or undefined, as a checked-dynamic value. */
1412
+ "http.resGetHeaderDyn": { argTypes: [HTTPRES_T, STRING], result: DYN },
1268
1413
  "http.resGetHeaderNames": { argTypes: [HTTPRES_T], result: arrayOf(STRING) },
1269
1414
  "http.resGetRawHeaderNames": { argTypes: [HTTPRES_T], result: arrayOf(STRING) },
1270
1415
  "http.resGetHeaders": { argTypes: [HTTPRES_T], result: DYN },
@@ -1274,6 +1419,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1274
1419
  argTypes: [HTTPRES_T, { kind: "func", params: [], ret: VOID }],
1275
1420
  result: VOID,
1276
1421
  },
1422
+ "http.resOnEndCallback": {
1423
+ argTypes: [HTTPRES_T, { kind: "func", params: [], ret: VOID }],
1424
+ result: VOID,
1425
+ },
1277
1426
  "http.reqUrl": { argTypes: [HTTPREQ_T], result: STRING },
1278
1427
  "http.reqMethod": { argTypes: [HTTPREQ_T], result: STRING },
1279
1428
  "http.reqHeader": { argTypes: [HTTPREQ_T, STRING], result: VOID },
@@ -1286,6 +1435,10 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1286
1435
  result: VOID,
1287
1436
  },
1288
1437
  "http.resSetHeader": { argTypes: [HTTPRES_T, STRING, STRING], result: VOID },
1438
+ /** setHeader / appendHeader with a number, string or array value; the
1439
+ * stored value keeps its type for getHeader/getHeaders. MAY THROW. */
1440
+ "http.resSetHeaderDyn": { argTypes: [HTTPRES_T, STRING, DYN], result: VOID },
1441
+ "http.resAppendHeader": { argTypes: [HTTPRES_T, STRING, DYN], result: VOID },
1289
1442
  "http.resWriteHead": { argTypes: [HTTPRES_T, F64], result: VOID },
1290
1443
  "http.resWriteHeadN": {
1291
1444
  argTypes: [HTTPRES_T, F64, arrayOf(STRING), arrayOf(STRING)],
@@ -1344,6 +1497,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1344
1497
  * ...] pairs in arrival order — the interned %headers.snapshot helper
1345
1498
  * builds the record over it, exactly the process.envPairs pattern. */
1346
1499
  "http.reqHeaderPairs": { argTypes: [HTTPREQ_T], result: arrayOf(STRING) },
1500
+ /** Every value of one header in arrival order (empty when absent): the
1501
+ * set-cookie array of a `{ ...req.headers }` snapshot. */
1502
+ "http.reqHeaderList": { argTypes: [HTTPREQ_T, STRING], result: arrayOf(STRING) },
1347
1503
  "http.reqRawTrailers": { argTypes: [HTTPREQ_T], result: arrayOf(STRING) },
1348
1504
  "http.reqTrailerPairs": { argTypes: [HTTPREQ_T], result: arrayOf(STRING) },
1349
1505
  "net.sockDestroyed": { argTypes: [NETSOCKET_T], result: BOOL },
@@ -1407,11 +1563,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1407
1563
  },
1408
1564
  "http.resWriteHeadPairs": { argTypes: [HTTPRES_T, F64, arrayOf(STRING)], result: VOID },
1409
1565
  /** writeHead(status, headers) with a checked-dynamic headers value —
1410
- * the runtime OBJ walk (string/number values; loud fences otherwise;
1411
- * may throw). */
1566
+ * the runtime OBJ walk (string/number values; other values throw
1567
+ * Node's invalid-argument TypeError; may throw). */
1412
1568
  "http.resWriteHeadDyn": { argTypes: [HTTPRES_T, F64, DYN], result: VOID },
1413
1569
  "net.sockSetTimeout": { argTypes: [NETSOCKET_T, F64], result: VOID },
1414
- /** setEncoding('utf8') — 'data' delivers strings inside the chunk-encoding window; other real encodings fence loudly, unknown names throw ERR_UNKNOWN_ENCODING (may throw). */
1570
+ /** setEncoding('utf8') — 'data' delivers strings inside the chunk-encoding window; other real encodings throw the "not supported yet" Error, unknown names throw ERR_UNKNOWN_ENCODING (may throw). */
1415
1571
  "net.sockSetEncoding": { argTypes: [NETSOCKET_T, STRING], result: VOID },
1416
1572
  "http.reqSetEncoding": { argTypes: [HTTPREQ_T, STRING], result: VOID },
1417
1573
  "net.sockOnTimeout": {
@@ -1505,6 +1661,38 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1505
1661
  "net.sockSetNoDelay": { argTypes: [NETSOCKET_T, BOOL], result: NETSOCKET_T },
1506
1662
  "net.sockDestroySoon": { argTypes: [NETSOCKET_T], result: VOID },
1507
1663
  "net.sockBytesWritten": { argTypes: [NETSOCKET_T], result: F64 },
1664
+ /** remotePort (0), remoteFamily (1), localAddress (2), localPort (3),
1665
+ * localFamily (4): dyn values, undefined when unknown. */
1666
+ "net.sockAddrField": { argTypes: [NETSOCKET_T, F64], result: DYN },
1667
+ "net.sockBytesRead": { argTypes: [NETSOCKET_T], result: F64 },
1668
+ "net.sockConnecting": { argTypes: [NETSOCKET_T], result: BOOL },
1669
+ "net.sockPending": { argTypes: [NETSOCKET_T], result: BOOL },
1670
+ "net.sockReadyState": { argTypes: [NETSOCKET_T], result: STRING },
1671
+ "net.sockSetKeepAlive": { argTypes: [NETSOCKET_T, BOOL, F64], result: NETSOCKET_T },
1672
+ "net.sockOnReady": {
1673
+ argTypes: [NETSOCKET_T, { kind: "func", params: [], ret: VOID }, BOOL],
1674
+ result: VOID,
1675
+ },
1676
+ /** Listeners with a parameter, as dyn functions: close(hadError),
1677
+ * write's cb(err) and end's cb. */
1678
+ "net.sockOnCloseDyn": { argTypes: [NETSOCKET_T, DYN, BOOL], result: VOID },
1679
+ "net.sockOnWriteFlush": {
1680
+ argTypes: [NETSOCKET_T, { kind: "func", params: [], ret: VOID }],
1681
+ result: VOID,
1682
+ },
1683
+ "net.sockOnWriteFlushDyn": { argTypes: [NETSOCKET_T, DYN], result: VOID },
1684
+ "net.sockOnFinishDyn": { argTypes: [NETSOCKET_T, DYN], result: VOID },
1685
+ "net.sockSetTimeoutCb": {
1686
+ argTypes: [NETSOCKET_T, F64, { kind: "func", params: [], ret: VOID }],
1687
+ result: VOID,
1688
+ },
1689
+ "net.isIP": { argTypes: [DYN], result: F64 },
1690
+ "net.isIPv4": { argTypes: [DYN], result: BOOL },
1691
+ "net.isIPv6": { argTypes: [DYN], result: BOOL },
1692
+ "net.serverMaxConnectionsGet": { argTypes: [NETSERVER_T], result: DYN },
1693
+ "net.serverMaxConnectionsSet": { argTypes: [NETSERVER_T, DYN], result: VOID },
1694
+ "net.serverOnDrop": { argTypes: [NETSERVER_T, DYN, BOOL], result: VOID },
1695
+ "net.serverGetConnections": { argTypes: [NETSERVER_T, DYN], result: VOID },
1508
1696
  "net.sockReadable": { argTypes: [NETSOCKET_T], result: BOOL },
1509
1697
  /** socket.on('finish', cb) / end(cb): fires once when the FIN goes out
1510
1698
  * (sweep-deferred, never the registering stack). */
@@ -1638,7 +1826,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
1638
1826
  * for the server_name extension BEFORE the TLS handshake begins, calls
1639
1827
  * the callback with (servername, answer-closure), and resumes the
1640
1828
  * handshake when the answer arrives — cb(err) tears the socket down
1641
- * silently (Node's 'tlsClientError' default), cb(null, ctx) serves
1829
+ * without an error event (Node's 'tlsClientError' default), cb(null, ctx) serves
1642
1830
  * ctx's cert/key, cb(null, undefined) serves the default pair. */
1643
1831
  "http2.createSecureServerSni": { argTypes: [null, null, null, BOOL], result: NETSERVER_T },
1644
1832
  // The ALPN=h2 server (createSecureServer without allowHTTP1): the real
@@ -2113,11 +2301,15 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2113
2301
  "crypto.hashDigestStr": { argTypes: [STRING, STRING, STRING], result: STRING },
2114
2302
  "crypto.hashDigestBytes": { argTypes: [STRING, BYTES_U8, STRING], result: STRING },
2115
2303
  /** First-class static Hash/Hmac handles. Constructors validate the
2116
- * runtime algorithm string (MD5, SHA-1, or SHA-2); update returns the same
2304
+ * runtime algorithm string (every digest Node 24 lists); update returns the same
2117
2305
  * handle by retained identity, copy snapshots Hash state, and digest
2118
2306
  * finalizes the handle and returns either a Buffer or encoded string. */
2119
2307
  "crypto.native": { argTypes: [], result: DYN },
2120
2308
  "crypto.hashNew": { argTypes: [STRING], result: CRYPTOHASH_T },
2309
+ /** createCipheriv (false) / createDecipheriv (true) over checked-dynamic
2310
+ * cipher, key, iv and options arguments (scr_cipher.c): a native
2311
+ * Cipheriv/Decipheriv handle whose methods dispatch through dynInvoke. */
2312
+ "crypto.cipherNew": { argTypes: [BOOL, DYN, DYN, DYN, DYN], result: DYN },
2121
2313
  "crypto.hmacNewStr": { argTypes: [STRING, STRING], result: CRYPTOHMAC_T },
2122
2314
  "crypto.hmacNewBytes": { argTypes: [STRING, BYTES_U8], result: CRYPTOHMAC_T },
2123
2315
  "crypto.hashUpdateStr": { argTypes: [CRYPTOHASH_T, STRING], result: CRYPTOHASH_T },
@@ -2129,10 +2321,46 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2129
2321
  "crypto.hashDigestBuffer": { argTypes: [CRYPTOHASH_T], result: BYTES_U8 },
2130
2322
  "crypto.hmacDigestString": { argTypes: [CRYPTOHMAC_T, STRING], result: STRING },
2131
2323
  "crypto.hmacDigestBuffer": { argTypes: [CRYPTOHMAC_T], result: BYTES_U8 },
2132
- "crypto.timingSafeEqual": { argTypes: [BYTES_U8, BYTES_U8], result: BOOL },
2324
+ /** The option and any-value forms, with Node's checks at run time. The
2325
+ * Dyn digests return a string or a Buffer, and crypto.hash's Dyn form
2326
+ * either one by its outputEncoding. */
2327
+ "crypto.hashNewOpts": { argTypes: [STRING, DYN], result: CRYPTOHASH_T },
2328
+ "crypto.hmacNewDyn": { argTypes: [STRING, DYN, DYN], result: CRYPTOHMAC_T },
2329
+ "crypto.hashCopyOpts": { argTypes: [CRYPTOHASH_T, DYN], result: CRYPTOHASH_T },
2330
+ "crypto.hashUpdateEnc": { argTypes: [CRYPTOHASH_T, STRING, STRING], result: CRYPTOHASH_T },
2331
+ "crypto.hmacUpdateEnc": { argTypes: [CRYPTOHMAC_T, STRING, STRING], result: CRYPTOHMAC_T },
2332
+ "crypto.hashUpdateDyn": { argTypes: [CRYPTOHASH_T, DYN, DYN], result: CRYPTOHASH_T },
2333
+ "crypto.hmacUpdateDyn": { argTypes: [CRYPTOHMAC_T, DYN, DYN], result: CRYPTOHMAC_T },
2334
+ "crypto.hashDigestDyn": { argTypes: [CRYPTOHASH_T, DYN], result: DYN },
2335
+ "crypto.hmacDigestDyn": { argTypes: [CRYPTOHMAC_T, DYN], result: DYN },
2336
+ "crypto.hashOneshot": { argTypes: [STRING, DYN, DYN], result: DYN },
2337
+ /** Views of any element kind (the validator checks both are views). */
2338
+ "crypto.timingSafeEqual": { argTypes: [null, null], result: BOOL },
2339
+ "crypto.timingSafeEqualDyn": { argTypes: [DYN, DYN], result: BOOL },
2133
2340
  "crypto.randomFill": { argTypes: [BYTES_U8, F64, F64], result: BYTES_U8 },
2134
2341
  "crypto.randomFillRest": { argTypes: [BYTES_U8, F64], result: BYTES_U8 },
2135
2342
  "crypto.randomInt": { argTypes: [F64, F64], result: F64 },
2343
+ "crypto.randomIntMax": { argTypes: [F64], result: F64 },
2344
+ /** randomFillSync over any view returns that view at its own type (the
2345
+ * validator checks the result against the first argument). The Dyn form
2346
+ * takes ArrayBuffers and other values. The callback forms carry
2347
+ * randomFill's argument count before the callback; randomIntCb carries
2348
+ * whether min was given. */
2349
+ "crypto.randomFillView": { argTypes: [null, F64, F64], result: BYTES_U8 },
2350
+ "crypto.randomFillViewRest": { argTypes: [null, F64], result: BYTES_U8 },
2351
+ "crypto.randomFillSyncDyn": { argTypes: [DYN, DYN, DYN], result: DYN },
2352
+ "crypto.randomFillCb": { argTypes: [null, F64, F64, F64, null], result: VOID },
2353
+ "crypto.randomFillCbDyn": { argTypes: [DYN, DYN, DYN, F64, null], result: VOID },
2354
+ "crypto.randomIntCb": { argTypes: [F64, F64, F64, null], result: VOID },
2355
+ "crypto.randomUUIDOpts": { argTypes: [DYN], result: STRING },
2356
+ /** Secret KeyObjects: native handles whose getters and methods dispatch
2357
+ * through the handle. keyObjectInput reads a key's bytes for hkdf. */
2358
+ "crypto.createSecretKey": { argTypes: [DYN, DYN], result: DYN },
2359
+ "crypto.generateKeySync": { argTypes: [DYN, DYN], result: DYN },
2360
+ "crypto.generateKeyCb": { argTypes: [DYN, DYN, null], result: VOID },
2361
+ "crypto.keyObjectInput": { argTypes: [DYN], result: BYTES_U8 },
2362
+ "crypto.isKeyObject": { argTypes: [DYN], result: BOOL },
2363
+ "crypto.randomUUIDv7": { argTypes: [DYN], result: STRING },
2136
2364
  "crypto.pbkdf2": { argTypes: [BYTES_U8, BYTES_U8, F64, F64, STRING], result: BYTES_U8 },
2137
2365
  "crypto.randomBytesCb": { argTypes: [F64, null], result: VOID },
2138
2366
  "crypto.pbkdf2Cb": { argTypes: [BYTES_U8, BYTES_U8, F64, F64, STRING, null], result: VOID },
@@ -2263,6 +2491,21 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2263
2491
  "zlib.gunzipCb": { argTypes: [BYTES_U8, null], result: VOID },
2264
2492
  "zlib.unzipCb": { argTypes: [BYTES_U8, null], result: VOID },
2265
2493
  "zlib.crc32": { argTypes: [BYTES_U8, F64], result: F64 },
2494
+ /** The stream classes (scr_zlib_stream.c, linked with the stream unit):
2495
+ * streamNew takes Node's node_zlib_mode number and the options value
2496
+ * (undefined when absent), validates it with Node's ladder, and answers
2497
+ * the +1 %Transform stream. flush takes the kind value, params the level
2498
+ * and strategy values; the Cb forms move their () => void callback. The
2499
+ * receivers are borrowed. */
2500
+ "zlib.streamNew": { argTypes: [F64, DYN], result: VOID },
2501
+ "zlib.streamBytesWritten": { argTypes: [null], result: F64 },
2502
+ "zlib.streamFlush": { argTypes: [null, DYN], result: VOID },
2503
+ "zlib.streamFlushCb": { argTypes: [null, DYN, null], result: VOID },
2504
+ "zlib.streamParams": { argTypes: [null, DYN, DYN], result: VOID },
2505
+ "zlib.streamParamsCb": { argTypes: [null, DYN, DYN, null], result: VOID },
2506
+ "zlib.streamClose": { argTypes: [null], result: VOID },
2507
+ "zlib.streamCloseCb": { argTypes: [null, null], result: VOID },
2508
+ "zlib.streamReset": { argTypes: [null], result: VOID },
2266
2509
  /** The Buffer overloads of the raw stream writes — same promptly
2267
2510
  * submitted streams as process.stdoutWrite/stderrWrite, constantly true.
2268
2511
  * The encoding arg is evaluated but ignored for bytes, like Node. The Cb
@@ -2291,6 +2534,17 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2291
2534
  "fsp.mkdirRecursiveMode": { argTypes: [STRING, F64], result: { kind: "promise", inner: VOID } },
2292
2535
  "fsp.unlink": { argTypes: [STRING], result: { kind: "promise", inner: VOID } },
2293
2536
  "fsp.chmod": { argTypes: [STRING, F64], result: { kind: "promise", inner: VOID } },
2537
+ "fsp.chown": { argTypes: [STRING, F64, F64], result: { kind: "promise", inner: VOID } },
2538
+ "fsp.lchown": { argTypes: [STRING, F64, F64], result: { kind: "promise", inner: VOID } },
2539
+ "fsp.access": { argTypes: [STRING, F64], result: { kind: "promise", inner: VOID } },
2540
+ "fsp.truncate": { argTypes: [STRING, F64], result: { kind: "promise", inner: VOID } },
2541
+ "fsp.appendFile": { argTypes: [STRING, STRING], result: { kind: "promise", inner: VOID } },
2542
+ "fsp.appendFileBytes": { argTypes: [STRING, BYTES_U8], result: { kind: "promise", inner: VOID } },
2543
+ "fsp.copyFile": { argTypes: [STRING, STRING], result: { kind: "promise", inner: VOID } },
2544
+ "fsp.mkdtemp": { argTypes: [STRING], result: { kind: "promise", inner: STRING } },
2545
+ /** readFile(path, encoding | { encoding }) for any runtime encoding name. */
2546
+ "fsp.readFileEncoded": { argTypes: [STRING, STRING], result: { kind: "promise", inner: STRING } },
2547
+ "fsp.rmdir": { argTypes: [STRING], result: { kind: "promise", inner: VOID } },
2294
2548
  "fsp.link": { argTypes: [DYN, DYN], result: { kind: "promise", inner: VOID } },
2295
2549
  "fsp.symlink": { argTypes: [DYN, DYN, DYN], result: { kind: "promise", inner: VOID } },
2296
2550
  "fsp.readlink": { argTypes: [DYN, DYN], result: { kind: "promise", inner: DYN } },
@@ -2410,6 +2664,24 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2410
2664
  "dyn.generatorThis": { argTypes: [], result: DYN },
2411
2665
  "process.getuid": { argTypes: [], result: F64 },
2412
2666
  "process.getgid": { argTypes: [], result: F64 },
2667
+ /** geteuid(2) / getegid(2) / getgroups(2) (the effective gid appended
2668
+ * when the list lacks it, like Node). Windows has no such members: the
2669
+ * calls throw the TypeError a missing member does (MAY THROW). */
2670
+ "process.geteuid": { argTypes: [], result: F64 },
2671
+ "process.getegid": { argTypes: [], result: F64 },
2672
+ "process.getgroups": { argTypes: [], result: arrayOf(F64) },
2673
+ /** process.ppid: the parent's pid at the read. Never throws. */
2674
+ "process.ppid": { argTypes: [], result: F64 },
2675
+ /** process.title: libuv's process title (argv[0] until set); setTitle
2676
+ * writes it (truncated to the original argument area on POSIX, the
2677
+ * console title on Windows). Never throw. */
2678
+ "process.title": { argTypes: [], result: STRING },
2679
+ "process.setTitle": { argTypes: [STRING], result: VOID },
2680
+ /** process.argv0: the original argv[0]. Never throws. */
2681
+ "process.argv0": { argTypes: [], result: STRING },
2682
+ /** process.release: the compatibility target's stable release object
2683
+ * (name, lts, sourceUrl, headersUrl, and libUrl on Windows). +1. */
2684
+ "process.release": { argTypes: [], result: DYN },
2413
2685
  /** process.execPath: the compiled binary's own resolved absolute path
2414
2686
  * (one interned string, +1 per read) — the honest answer where Node's
2415
2687
  * is the node executable's (SEMANTICS.md divergence 12). Never throws. */
@@ -2738,6 +3010,9 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2738
3010
  "dyn.seal": { argTypes: [DYN], result: DYN },
2739
3011
  "dyn.isSealed": { argTypes: [DYN], result: BOOL },
2740
3012
  "dyn.objValues": { argTypes: [DYN], result: DYN },
3013
+ /** Object.values as a native vector of checked values, for results the
3014
+ * program consumes directly (for-of, index reads, read-only methods). */
3015
+ "dyn.objValueList": { argTypes: [DYN], result: arrayOf(DYN) },
2741
3016
  "dyn.objEntries": { argTypes: [DYN], result: DYN },
2742
3017
  /** structuredClone over the checked-dynamic tree (scr_json.c): the JSON-safe subset plus
2743
3018
  * bytes (a fresh copy — a Buffer clones as a plain Uint8Array, like
@@ -2906,17 +3181,62 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2906
3181
  * propagates the first error by destroying the rest, calls cb after the
2907
3182
  * last 'close'; answers the destination +1. The Dyn twins take the
2908
3183
  * callback as a checked-dynamic VALUE (mustCall wrappers). */
3184
+ /** stream.addAbortSignal: [stream, signal] — the constructors' signal
3185
+ * option, chained over the fresh stream (falsy signals are ignored);
3186
+ * stream.addAbortSignalFn: [signal, stream] — addAbortSignal(signal,
3187
+ * stream). Both answer the stream (+1) and throw ERR_INVALID_ARG_TYPE
3188
+ * for a value that is not an AbortSignal; they link the event-target
3189
+ * unit (addAbortListener). */
3190
+ "stream.addAbortSignal": { argTypes: [null, DYN], result: VOID },
3191
+ "stream.addAbortSignalFn": { argTypes: [DYN, null], result: VOID },
2909
3192
  "stream.finished": { argTypes: [null, null], result: VOID },
2910
3193
  "stream.finishedDyn": { argTypes: [null, DYN], result: VOID },
2911
3194
  "stream.pipeline": { argTypes: [F64], result: VOID },
2912
3195
  "stream.pipelineDyn": { argTypes: [F64], result: VOID },
3196
+ "stream.pipelineStages": { argTypes: [F64, F64, F64, F64, F64], result: VOID },
3197
+ "stream.pipelineStagesDyn": { argTypes: [F64, F64, F64, F64, F64], result: VOID },
3198
+ /** stream.compose(count, s1..sn): the Duplex over a pipeline of the
3199
+ * streams (+1). MAY THROW (ERR_INVALID_ARG_VALUE for a stream that is
3200
+ * no longer readable or writable). */
3201
+ "stream.compose": { argTypes: [F64], result: VOID },
2913
3202
  /** node:stream/promises — the promise forms over the same machinery:
2914
3203
  * sp.finished: (s) → a pending void promise the terminal watcher
2915
3204
  * settles; sp.pipeline: (count, s1..sn) → the callback pipeline's
2916
3205
  * chaining/destroyer semantics settling a void promise (fulfilled on a
2917
3206
  * clean finish, rejected with the finish status otherwise). */
2918
3207
  "sp.finished": { argTypes: [null], result: { kind: "promise", inner: VOID } },
3208
+ /** The options forms: finished(s, { readable, writable, error, cleanup,
3209
+ * signal }) as [s, readable, writable, error, cleanup, signal?] —
3210
+ * readable/writable -1 (absent), 0 or 1 — and pipeline(...streams,
3211
+ * { signal, end }) as [count, s1..sn, end, signal?]. The Signal forms
3212
+ * link the event-target unit (addAbortListener). The callback form
3213
+ * stream.finishedOpts: [s, readable, writable, error, signal?, cb] →
3214
+ * the cleanup closure. */
3215
+ "sp.finishedOpts": {
3216
+ argTypes: [null, F64, F64, BOOL, BOOL],
3217
+ result: { kind: "promise", inner: VOID },
3218
+ },
3219
+ "sp.finishedOptsSignal": {
3220
+ argTypes: [null, F64, F64, BOOL, BOOL, DYN],
3221
+ result: { kind: "promise", inner: VOID },
3222
+ },
3223
+ "sp.pipelineOpts": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3224
+ "sp.pipelineOptsSignal": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3225
+ "stream.finishedOpts": { argTypes: [null, F64, F64, BOOL, null], result: VOID },
3226
+ "stream.finishedOptsSignal": { argTypes: [null, F64, F64, BOOL, DYN, null], result: VOID },
2919
3227
  "sp.pipeline": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3228
+ /** pipeline with a run of function stages: [n, at, k, flags, mask,
3229
+ * s1..sn, stage1..stagek, (next, read, return)?, box?, (signal,
3230
+ * abort)?] (+ the callback for the stream.* forms): the user's stage
3231
+ * functions, the frontend's helpers over the pumped generator or a
3232
+ * promise destination's box, and the pipeline's AbortSignal with its
3233
+ * abort closure; flags names which groups are present
3234
+ * (scr_stream_pipeline_stages). A promise destination's promise type is
3235
+ * sp.pipelineStages' result. */
3236
+ "sp.pipelineStages": {
3237
+ argTypes: [F64, F64, F64, F64, F64],
3238
+ result: { kind: "promise", inner: VOID },
3239
+ },
2920
3240
  /** node:stream/consumers — the promise consumers over the readable
2921
3241
  * machinery: (s) → a pending promise settled at the terminal point
2922
3242
  * with the accumulated result (sc.text: the utf8 decode, sc.json: the
@@ -2973,11 +3293,40 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
2973
3293
  * +1 promise of the next chunk — buffered content, the EOF sentinel
2974
3294
  * (empty Buffer / dyn undefined), or a rejection with the stream's
2975
3295
  * error. The Dyn twin boxes chunks by runtime tag (the JS lane).
2976
- * readable.fromArr is Readable.from(array): a fully-seeded object-
2977
- * entry stream (one whole chunk per element; strings per the flag). */
3296
+ * readable.fromArr is Readable.from over a typed array, string or
3297
+ * Buffer: [array, SCR_FROM_* flags, highWaterMark]. readable.fromDyn is
3298
+ * the JS lane's [source, options]. */
2978
3299
  "readable.nextChunk": { argTypes: [null], result: VOID },
2979
3300
  "readable.nextChunkDyn": { argTypes: [null], result: VOID },
2980
- "readable.fromArr": { argTypes: [null, BOOL], result: VOID },
3301
+ "readable.fromArr": { argTypes: [null, F64, F64], result: VOID },
3302
+ "readable.fromDyn": { argTypes: [DYN, DYN], result: VOID },
3303
+ /** Readable.from over a compiled generator: [generator, next, return,
3304
+ * throw, flags, highWaterMark] (sync) or [generator, next, read,
3305
+ * return, throw, flags, highWaterMark] (async), the helpers being the
3306
+ * frontend's interned closures. readable.fromDone is the done marker
3307
+ * the helpers answer. */
3308
+ "readable.fromGen": { argTypes: [null, null, null, null, F64, F64], result: VOID },
3309
+ "readable.fromAsyncGen": { argTypes: [null, null, null, null, null, F64, F64], result: VOID },
3310
+ "readable.fromDone": { argTypes: [], result: DYN },
3311
+ /** The Readable operators (scr_stream_ops.c): [stream, ...] with every
3312
+ * other argument a checked-dynamic value (the callback, the count, the
3313
+ * options). map/filter/flatMap/drop/take answer the object-mode output
3314
+ * stream (validated as a stream class; THROW Node's validation errors);
3315
+ * toArray settles a dyn array, find a dyn value, some/every a boolean,
3316
+ * forEach nothing; reduce: [stream, fn, init, hasInit, options, kind]
3317
+ * with the payload kind (0 dyn, 1 number, 2 boolean, 3 string). The
3318
+ * promise-returning ones reject instead of throwing. */
3319
+ "readable.opMap": { argTypes: [null, DYN, DYN], result: VOID },
3320
+ "readable.opFilter": { argTypes: [null, DYN, DYN], result: VOID },
3321
+ "readable.opFlatMap": { argTypes: [null, DYN, DYN], result: VOID },
3322
+ "readable.opDrop": { argTypes: [null, DYN, DYN], result: VOID },
3323
+ "readable.opTake": { argTypes: [null, DYN, DYN], result: VOID },
3324
+ "readable.opToArray": { argTypes: [null, DYN], result: { kind: "promise", inner: DYN } },
3325
+ "readable.opForEach": { argTypes: [null, DYN, DYN], result: { kind: "promise", inner: VOID } },
3326
+ "readable.opSome": { argTypes: [null, DYN, DYN], result: { kind: "promise", inner: BOOL } },
3327
+ "readable.opEvery": { argTypes: [null, DYN, DYN], result: { kind: "promise", inner: BOOL } },
3328
+ "readable.opFind": { argTypes: [null, DYN, DYN], result: { kind: "promise", inner: DYN } },
3329
+ "readable.opReduce": { argTypes: [null, DYN, DYN, BOOL, DYN, F64], result: VOID },
2981
3330
  "readable.resume": { argTypes: [null], result: VOID },
2982
3331
  "readable.isPaused": { argTypes: [null], result: BOOL },
2983
3332
  "readable.pipe": { argTypes: [null, null, BOOL], result: VOID },
@@ -3051,7 +3400,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3051
3400
  * the rendering enumerable) or the custom message.
3052
3401
  * assert.throwsRegex: (regex, error, msg, hasMsg) — the
3053
3402
  * assert.throws(fn, /re/) check over String(error), Node's
3054
- * regex-mismatch message. assert.regexErrTest: doesNotReject's silent
3403
+ * regex-mismatch message. assert.regexErrTest: doesNotReject's
3055
3404
  * regex predicate over String(error) (never throws).
3056
3405
  * assert.unwantedRejection: (error, msg, hasMsg) — doesNotReject's
3057
3406
  * "Got unwanted rejection" throw.
@@ -3060,12 +3409,22 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3060
3409
  * the value's inspection) — the frontend routes null/undefined to a
3061
3410
  * no-op and everything else here (Node throws for falsy values too).
3062
3411
  * All arguments are borrowed. */
3063
- "assert.ok": { argTypes: [BOOL, STRING], result: VOID },
3412
+ "assert.ok": { argTypes: [BOOL, STRING, BOOL], result: VOID },
3413
+ /** The next AssertionError's actual, expected and operator, recorded on
3414
+ * a failure branch. */
3415
+ "assert.record": { argTypes: [DYN, DYN, STRING], result: VOID },
3416
+ "assert.errorNew": { argTypes: [DYN], result: { kind: "object", className: "%AssertionError" } },
3064
3417
  "assert.eqF64": { argTypes: [F64, F64, BOOL, BOOL, STRING, BOOL], result: VOID },
3065
3418
  "assert.eqBigInt": { argTypes: [BIGINT_T, BIGINT_T, BOOL, BOOL, STRING, BOOL], result: VOID },
3066
3419
  "assert.eqStr": { argTypes: [STRING, STRING, BOOL, BOOL, STRING, BOOL], result: VOID },
3067
3420
  "assert.eqBool": { argTypes: [BOOL, BOOL, BOOL, BOOL, STRING, BOOL], result: VOID },
3068
3421
  "assert.deepResult": { argTypes: [BOOL, BOOL, STRING, BOOL], result: VOID },
3422
+ "assert.looseDeepResult": { argTypes: [BOOL, BOOL, STRING, BOOL], result: VOID },
3423
+ "assert.looseDeepDyn": { argTypes: [DYN, DYN, BOOL, STRING, BOOL], result: VOID },
3424
+ "assert.partialDeepDyn": { argTypes: [DYN, DYN, STRING, BOOL], result: VOID },
3425
+ "assert.partialDeepResult": { argTypes: [BOOL, BOOL, STRING, BOOL], result: VOID },
3426
+ "assert.partialEqDyn": { argTypes: [DYN, DYN], result: BOOL },
3427
+ "assert.looseF64Eq": { argTypes: [F64, F64], result: BOOL },
3069
3428
  "assert.sameValue": { argTypes: [F64, F64], result: BOOL },
3070
3429
  // The deep-equality pair memo: both slots are program-dependent
3071
3430
  // (any cycle-capable record/array/map type).
@@ -3077,11 +3436,11 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3077
3436
  "assert.match": { argTypes: [STRING, REGEX, BOOL, STRING, BOOL], result: VOID },
3078
3437
  "assert.throwsNone": { argTypes: [BOOL, STRING, BOOL, STRING, BOOL], result: VOID },
3079
3438
  "assert.throwsMismatch": {
3080
- argTypes: [STRING, { kind: "object", className: "%Error" }, STRING, BOOL],
3439
+ argTypes: [STRING, { kind: "object", className: "%Error" }, STRING, BOOL, BOOL],
3081
3440
  result: VOID,
3082
3441
  },
3083
3442
  "assert.throwsRegex": {
3084
- argTypes: [REGEX, { kind: "object", className: "%Error" }, STRING, BOOL],
3443
+ argTypes: [REGEX, { kind: "object", className: "%Error" }, STRING, BOOL, BOOL],
3085
3444
  result: VOID,
3086
3445
  },
3087
3446
  // Symbol strict equality (pointer identity; scr_symbol.c).
@@ -3099,7 +3458,7 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3099
3458
  "assert.shapeBegin": { argTypes: [{ kind: "object", className: "%Error" }], result: VOID },
3100
3459
  "assert.shapeStr": { argTypes: [F64, STRING], result: VOID },
3101
3460
  "assert.shapeRe": { argTypes: [F64, REGEX], result: VOID },
3102
- "assert.shapeEnd": { argTypes: [STRING, BOOL], result: VOID },
3461
+ "assert.shapeEnd": { argTypes: [STRING, BOOL, BOOL], result: VOID },
3103
3462
  "assert.regexErrTest": {
3104
3463
  argTypes: [REGEX, { kind: "object", className: "%Error" }],
3105
3464
  result: BOOL,
@@ -3131,12 +3490,14 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3131
3490
  "assert.refEqBytes": { argTypes: [null, null, BOOL, BOOL, STRING, BOOL], result: VOID },
3132
3491
  "assert.refEqFn": { argTypes: [null, null, BOOL, STRING, BOOL], result: VOID },
3133
3492
  "assert.bytesDeepEq": { argTypes: [null, null, BOOL], result: BOOL },
3493
+ "assert.looseBytesEq": { argTypes: [null, null], result: BOOL },
3134
3494
  // util.inspect: the error receiver is program-dependent (a builtin or
3135
3495
  // user error class — the error.toString precedent, null slot).
3136
3496
  "insp.f64": { argTypes: [F64], result: STRING },
3137
3497
  /** util.format %j over a checked-dynamic argument: the runtime dyn
3138
3498
  * walk (JS-exact stringify; root undefined/function prints
3139
- * "undefined"; a handle in the tree throws the loud fence). */
3499
+ * "undefined"; a handle in the tree throws the "not supported yet"
3500
+ * Error). */
3140
3501
  "insp.jsonDyn": { argTypes: [DYN], result: STRING },
3141
3502
  "insp.str": { argTypes: [STRING], result: STRING },
3142
3503
  "insp.regex": { argTypes: [REGEX], result: STRING },
@@ -3160,6 +3521,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3160
3521
  "insp.key": { argTypes: [STRING], result: STRING },
3161
3522
  "insp.moreItems": { argTypes: [F64], result: STRING },
3162
3523
  "insp.end": { argTypes: [STRING, STRING, STRING, F64, BOOL, BOOL], result: STRING },
3524
+ /** A nested inspect inside a custom rendering (PerformanceEntry's
3525
+ * `${name} ${inspect(toJSON)}`): nestedBegin starts a fresh inspect
3526
+ * context, nestedEnd(prefix, inner) restores the caller's and answers
3527
+ * `prefix inner` re-indented at the caller's level (+1). */
3528
+ "insp.nestedBegin": { argTypes: [], result: VOID },
3529
+ "insp.nestedEnd": { argTypes: [STRING, STRING], result: STRING },
3163
3530
  /** node:string_decoder's utf8 StringDecoder (scr_string.c): the decoder
3164
3531
  * value is a one-field record whose f64 PACKS the pending partial
3165
3532
  * sequence (count + up to 3 raw bytes — Node buffers at most 3 for
@@ -3173,27 +3540,46 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3173
3540
  "strdec.next": { argTypes: [STRING, F64, BYTES_U8], result: F64 },
3174
3541
  "strdec.end": { argTypes: [STRING, F64], result: STRING },
3175
3542
  // node:readline: the interface handle is f64; the callbacks' func types
3176
- // are program-dependent (zero-param or (answer: string) — the emitter
3177
- // picks the adapter), so those slots are null like child.onExit's.
3178
- /** node:readline's question/close slice (scr_readline.c, linked under
3179
- * the events gate — these fns imply moduleUsesProcessEvents). The
3180
- * interface value is an f64 handle (the Timeout-id precedent).
3181
- * rl.create: [] → f64 — createInterface({ input: process.stdin,
3182
- * output: process.stdout }), registering the unit's shared stdin
3183
- * consumer (an OPEN interface keeps the loop alive until close/EOF,
3184
- * Node's semantics). rl.question: [handle, query, cb] — writes the
3185
- * query to stdout (Node writes under pipes too) and delivers the next
3186
- * line's text through a backend-picked adapter (zero-param or
3187
- * (answer: string)); THROWS Node's "readline was closed" on a closed
3188
- * interface (may-throw). rl.close: [handle] — fires 'close' listeners
3189
- * SYNCHRONOUSLY (Node's inline emit) and detaches the consumer (the
3190
- * loop stops waiting on fd 0). rl.onClose: [handle, cb] — a zero-arg
3191
- * listener (moves); stdin EOF closes every open interface with the
3192
- * buffered partial line DISCARDED, like Node. */
3193
- "rl.create": { argTypes: [], result: F64 },
3543
+ // are program-dependent (the emitter picks the adapter by parameter
3544
+ // count), so those slots are null like child.onExit's.
3545
+ /** node:readline and node:readline/promises (scr_readline.c, linked
3546
+ * under the events gate — these fns imply moduleUsesProcessEvents; a
3547
+ * stream input or output adds scr_stream.c's bridge). The interface
3548
+ * value is an f64 handle (the Timeout-id precedent); an open interface
3549
+ * on stdin keeps the loop alive until close/EOF.
3550
+ * rl.create: [mode, input?, output?, crlfDelay, prompt?] → f64, mode
3551
+ * bits 1 stream input, 2 stream output, 4 stdout output, 16 prompt
3552
+ * (lowerReadlineCreateCall); rl.createSignal: the same plus the
3553
+ * trailing AbortSignal (mode bit 8), which links the event-target unit
3554
+ * for addAbortListener. rl.question: [handle, query, cb] — the callback
3555
+ * form; THROWS ERR_USE_AFTER_CLOSE on a closed interface (may-throw).
3556
+ * rl.questionAsync(Signal): [handle, query, signal?] → promise<string>,
3557
+ * rejecting instead of throwing. rl.close/pause/resume/prompt:
3558
+ * [handle] (pause/resume/prompt throw ERR_USE_AFTER_CLOSE when
3559
+ * closed); rl.setPrompt/getPrompt; rl.write: [handle, data] (throws
3560
+ * when closed). rl.on: [handle, event, cb, once] — the event number
3561
+ * (0 'line', 1 'close', 2 'pause', 3 'resume', 4 'error') and the
3562
+ * listener (moves). rl.iterOpen/iterNext/iterReturn: the async
3563
+ * iterator — iterNext answers promise<dyn> of the line or undefined. */
3564
+ "rl.create": { argTypes: [F64], result: F64 },
3565
+ "rl.createSignal": { argTypes: [F64], result: F64 },
3194
3566
  "rl.question": { argTypes: [F64, STRING, null], result: VOID },
3567
+ "rl.questionAsync": { argTypes: [F64, STRING], result: { kind: "promise", inner: STRING } },
3568
+ "rl.questionAsyncSignal": {
3569
+ argTypes: [F64, STRING, DYN],
3570
+ result: { kind: "promise", inner: STRING },
3571
+ },
3195
3572
  "rl.close": { argTypes: [F64], result: VOID },
3196
- "rl.onClose": { argTypes: [F64, null], result: VOID },
3573
+ "rl.pause": { argTypes: [F64], result: VOID },
3574
+ "rl.resume": { argTypes: [F64], result: VOID },
3575
+ "rl.prompt": { argTypes: [F64], result: VOID },
3576
+ "rl.setPrompt": { argTypes: [F64, STRING], result: VOID },
3577
+ "rl.getPrompt": { argTypes: [F64], result: STRING },
3578
+ "rl.write": { argTypes: [F64, STRING], result: VOID },
3579
+ "rl.on": { argTypes: [F64, F64, null, BOOL], result: VOID },
3580
+ "rl.iterOpen": { argTypes: [F64], result: VOID },
3581
+ "rl.iterNext": { argTypes: [F64], result: { kind: "promise", inner: DYN } },
3582
+ "rl.iterReturn": { argTypes: [F64], result: VOID },
3197
3583
  /** node:timers/promises — the promisified pair (scr_async.c, beside
3198
3584
  * the timer heap they ride): tp.setTimeout: [ms] → a pending void
3199
3585
  * promise a one-shot heap timer fulfills (the loop's timer phase, FIFO
@@ -3202,6 +3588,12 @@ export const LIB_FN_SIGS = defineLibFnSignatures({
3202
3588
  * turns, Node's check phase). Neither throws. */
3203
3589
  "tp.setTimeout": { argTypes: [F64], result: { kind: "promise", inner: VOID } },
3204
3590
  "tp.setImmediate": { argTypes: [], result: { kind: "promise", inner: VOID } },
3591
+ /** The resolve-value forms: [ms?, value, ref] → a pending promise of the
3592
+ * value's type that copies the borrowed already-resolved `value` promise
3593
+ * when the timer (or immediate) fires; ref false unrefs it. The result
3594
+ * type follows the value promise. */
3595
+ "tp.setTimeoutValue": { argTypes: [F64, null, BOOL], result: VOID },
3596
+ "tp.setImmediateValue": { argTypes: [null, BOOL], result: VOID },
3205
3597
  /** node:diagnostics_channel (scr_dc.c, linked when any dc.* appears —
3206
3598
  * the zlib gating precedent): a process-global name→channel registry;
3207
3599
  * channel values are f64 handles (type-mapper.ts maps Channel to F64, the