@scriptc/compiler 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1243) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +960 -82
  2. package/ambient/scriptc.d.ts +134 -0
  3. package/dist/backend/cycle-analysis.d.ts +1 -1
  4. package/dist/backend/cycle-analysis.js +1 -0
  5. package/dist/backend/cycle-analysis.js.map +1 -1
  6. package/dist/backend/cycle-analysis.test.js +13 -1
  7. package/dist/backend/cycle-analysis.test.js.map +1 -1
  8. package/dist/backend/cycle-mutability.js +16 -5
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +13 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.test.js +1 -1
  13. package/dist/backend/library-pack.js +6 -0
  14. package/dist/backend/library-pack.js.map +1 -1
  15. package/dist/backend/llvm/alloc.d.ts +41 -4
  16. package/dist/backend/llvm/alloc.js +138 -7
  17. package/dist/backend/llvm/alloc.js.map +1 -1
  18. package/dist/backend/llvm/alloc.test.js +30 -1
  19. package/dist/backend/llvm/alloc.test.js.map +1 -1
  20. package/dist/backend/llvm/appended-array-literals.test.js +1 -1
  21. package/dist/backend/llvm/array-search.test.js +1 -1
  22. package/dist/backend/llvm/blocks.d.ts +8 -0
  23. package/dist/backend/llvm/blocks.js +43 -1
  24. package/dist/backend/llvm/blocks.js.map +1 -1
  25. package/dist/backend/llvm/blocks.test.js +22 -1
  26. package/dist/backend/llvm/blocks.test.js.map +1 -1
  27. package/dist/backend/llvm/byte-numbers.js +15 -5
  28. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  29. package/dist/backend/llvm/bytes-alias.d.ts +14 -0
  30. package/dist/backend/llvm/bytes-alias.js +20 -0
  31. package/dist/backend/llvm/bytes-alias.js.map +1 -0
  32. package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
  33. package/dist/backend/llvm/bytes-loop-versions.js +506 -0
  34. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
  35. package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
  36. package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
  37. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
  38. package/dist/backend/llvm/call-lifetimes.js +50 -1
  39. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  40. package/dist/backend/llvm/call-lifetimes.test.js +34 -0
  41. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  42. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  43. package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
  44. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  45. package/dist/backend/llvm/classes.d.ts +11 -0
  46. package/dist/backend/llvm/classes.js +71 -14
  47. package/dist/backend/llvm/classes.js.map +1 -1
  48. package/dist/backend/llvm/classes.test.js +58 -8
  49. package/dist/backend/llvm/classes.test.js.map +1 -1
  50. package/dist/backend/llvm/common.js +1 -0
  51. package/dist/backend/llvm/common.js.map +1 -1
  52. package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
  53. package/dist/backend/llvm/constant-callbacks.js +55 -12
  54. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  55. package/dist/backend/llvm/constant-callbacks.test.js +88 -1
  56. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  57. package/dist/backend/llvm/counted-loops.d.ts +4 -0
  58. package/dist/backend/llvm/counted-loops.js +37 -0
  59. package/dist/backend/llvm/counted-loops.js.map +1 -1
  60. package/dist/backend/llvm/dense-array-access.d.ts +12 -3
  61. package/dist/backend/llvm/dense-array-access.js +72 -14
  62. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  63. package/dist/backend/llvm/dense-array-access.test.js +59 -3
  64. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  65. package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
  66. package/dist/backend/llvm/dense-array-loops.js +162 -0
  67. package/dist/backend/llvm/dense-array-loops.js.map +1 -0
  68. package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
  69. package/dist/backend/llvm/dense-array-loops.test.js +128 -0
  70. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
  71. package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
  72. package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
  73. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
  74. package/dist/backend/llvm/dyn.d.ts +28 -4
  75. package/dist/backend/llvm/dyn.js +324 -179
  76. package/dist/backend/llvm/dyn.js.map +1 -1
  77. package/dist/backend/llvm/emit-function.d.ts +64 -0
  78. package/dist/backend/llvm/emit-function.js +1190 -0
  79. package/dist/backend/llvm/emit-function.js.map +1 -0
  80. package/dist/backend/llvm/emit-module.d.ts +24 -0
  81. package/dist/backend/llvm/emit-module.js +1535 -0
  82. package/dist/backend/llvm/emit-module.js.map +1 -0
  83. package/dist/backend/llvm/emit-statements.d.ts +58 -0
  84. package/dist/backend/llvm/emit-statements.js +1964 -0
  85. package/dist/backend/llvm/emit-statements.js.map +1 -0
  86. package/dist/backend/llvm/emitter.d.ts +576 -268
  87. package/dist/backend/llvm/emitter.js +801 -4447
  88. package/dist/backend/llvm/emitter.js.map +1 -1
  89. package/dist/backend/llvm/emitter.test.js +57 -3
  90. package/dist/backend/llvm/emitter.test.js.map +1 -1
  91. package/dist/backend/llvm/expr-async.js +73 -46
  92. package/dist/backend/llvm/expr-async.js.map +1 -1
  93. package/dist/backend/llvm/expr-async.test.js +1 -1
  94. package/dist/backend/llvm/expr-bytes.d.ts +2 -0
  95. package/dist/backend/llvm/expr-bytes.js +76 -29
  96. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  97. package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
  98. package/dist/backend/llvm/expr-callbacks.js +48 -11
  99. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  100. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  101. package/dist/backend/llvm/expr-calls.js +71 -53
  102. package/dist/backend/llvm/expr-calls.js.map +1 -1
  103. package/dist/backend/llvm/expr-calls.test.js +1 -1
  104. package/dist/backend/llvm/expr-containers.js +39 -15
  105. package/dist/backend/llvm/expr-containers.js.map +1 -1
  106. package/dist/backend/llvm/expr-control.js +16 -16
  107. package/dist/backend/llvm/expr-control.js.map +1 -1
  108. package/dist/backend/llvm/expr-dispatch.js +1 -0
  109. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  110. package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
  111. package/dist/backend/llvm/expr-dynamic.js +92 -63
  112. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  113. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  114. package/dist/backend/llvm/expr-primitives.js +132 -25
  115. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  116. package/dist/backend/llvm/expr-primitives.test.js +2 -2
  117. package/dist/backend/llvm/expr-records.d.ts +1 -1
  118. package/dist/backend/llvm/expr-records.js +32 -11
  119. package/dist/backend/llvm/expr-records.js.map +1 -1
  120. package/dist/backend/llvm/expr-stream-bridges.js +54 -12
  121. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  122. package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
  123. package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
  124. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  125. package/dist/backend/llvm/int32-abi.test.js +2 -2
  126. package/dist/backend/llvm/integer-clones.test.js +3 -3
  127. package/dist/backend/llvm/integer-remainder.d.ts +34 -13
  128. package/dist/backend/llvm/integer-remainder.js +156 -22
  129. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  130. package/dist/backend/llvm/intern-tables.test.js +1 -1
  131. package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
  132. package/dist/backend/llvm/jsval-encoding.js +20 -0
  133. package/dist/backend/llvm/jsval-encoding.js.map +1 -0
  134. package/dist/backend/llvm/jsval.d.ts +12 -0
  135. package/dist/backend/llvm/jsval.js +488 -0
  136. package/dist/backend/llvm/jsval.js.map +1 -0
  137. package/dist/backend/llvm/lazy-captures.d.ts +12 -2
  138. package/dist/backend/llvm/lazy-captures.js +39 -17
  139. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  140. package/dist/backend/llvm/lib-abi.js +1 -1
  141. package/dist/backend/llvm/lib-abi.js.map +1 -1
  142. package/dist/backend/llvm/lib-connect.js +1 -1
  143. package/dist/backend/llvm/lib-connect.js.map +1 -1
  144. package/dist/backend/llvm/lib-datagram.js +14 -8
  145. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  146. package/dist/backend/llvm/lib-dispatch.js +217 -24
  147. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  148. package/dist/backend/llvm/lib-filesystem.js +102 -13
  149. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  150. package/dist/backend/llvm/lib-http2.js +3 -3
  151. package/dist/backend/llvm/lib-http2.js.map +1 -1
  152. package/dist/backend/llvm/lib-lookup.js +2 -2
  153. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  154. package/dist/backend/llvm/lib-network.js +77 -25
  155. package/dist/backend/llvm/lib-network.js.map +1 -1
  156. package/dist/backend/llvm/lib-process.js +100 -50
  157. package/dist/backend/llvm/lib-process.js.map +1 -1
  158. package/dist/backend/llvm/lib-shared.d.ts +12 -0
  159. package/dist/backend/llvm/lib-shared.js +229 -5
  160. package/dist/backend/llvm/lib-shared.js.map +1 -1
  161. package/dist/backend/llvm/lib-stream.js +46 -16
  162. package/dist/backend/llvm/lib-stream.js.map +1 -1
  163. package/dist/backend/llvm/lib-test.js +57 -8
  164. package/dist/backend/llvm/lib-test.js.map +1 -1
  165. package/dist/backend/llvm/lib-tls.js +4 -9
  166. package/dist/backend/llvm/lib-tls.js.map +1 -1
  167. package/dist/backend/llvm/local-array-reads.js +2 -2
  168. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  169. package/dist/backend/llvm/local-extents.d.ts +19 -0
  170. package/dist/backend/llvm/local-extents.js +169 -0
  171. package/dist/backend/llvm/local-extents.js.map +1 -0
  172. package/dist/backend/llvm/local-extents.test.d.ts +1 -0
  173. package/dist/backend/llvm/local-extents.test.js +92 -0
  174. package/dist/backend/llvm/local-extents.test.js.map +1 -0
  175. package/dist/backend/llvm/local-union-storage.js +7 -7
  176. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  177. package/dist/backend/llvm/local-union-storage.test.js +2 -2
  178. package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
  179. package/dist/backend/llvm/map-number-lookup.js +2 -2
  180. package/dist/backend/llvm/map-number-lookup.test.js +2 -2
  181. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  182. package/dist/backend/llvm/narrow-guards.d.ts +38 -0
  183. package/dist/backend/llvm/narrow-guards.js +151 -0
  184. package/dist/backend/llvm/narrow-guards.js.map +1 -0
  185. package/dist/backend/llvm/nullable-unions.d.ts +70 -9
  186. package/dist/backend/llvm/nullable-unions.js +105 -6
  187. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  188. package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
  189. package/dist/backend/llvm/nullable-unions.test.js +65 -0
  190. package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
  191. package/dist/backend/llvm/publish.d.ts +4 -0
  192. package/dist/backend/llvm/publish.js +14 -2
  193. package/dist/backend/llvm/publish.js.map +1 -1
  194. package/dist/backend/llvm/publish.test.js +1 -1
  195. package/dist/backend/llvm/receivers.d.ts +31 -0
  196. package/dist/backend/llvm/receivers.js +395 -0
  197. package/dist/backend/llvm/receivers.js.map +1 -0
  198. package/dist/backend/llvm/record-results.d.ts +13 -2
  199. package/dist/backend/llvm/record-results.js +66 -6
  200. package/dist/backend/llvm/record-results.js.map +1 -1
  201. package/dist/backend/llvm/reference-effects.js +9 -0
  202. package/dist/backend/llvm/reference-effects.js.map +1 -1
  203. package/dist/backend/llvm/reference-writes.d.ts +4 -0
  204. package/dist/backend/llvm/reference-writes.js +143 -6
  205. package/dist/backend/llvm/reference-writes.js.map +1 -1
  206. package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
  207. package/dist/backend/llvm/reference-writes.test.js +88 -0
  208. package/dist/backend/llvm/reference-writes.test.js.map +1 -0
  209. package/dist/backend/llvm/regex-matchers.d.ts +8 -0
  210. package/dist/backend/llvm/regex-matchers.js +33 -0
  211. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  212. package/dist/backend/llvm/regex-matchers.test.js +23 -1
  213. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  214. package/dist/backend/llvm/regions.d.ts +1 -1
  215. package/dist/backend/llvm/regions.js +9 -6
  216. package/dist/backend/llvm/regions.js.map +1 -1
  217. package/dist/backend/llvm/regions.test.js +1 -1
  218. package/dist/backend/llvm/shapes.d.ts +69 -43
  219. package/dist/backend/llvm/shapes.js +285 -21
  220. package/dist/backend/llvm/shapes.js.map +1 -1
  221. package/dist/backend/llvm/shapes.test.js +37 -3
  222. package/dist/backend/llvm/shapes.test.js.map +1 -1
  223. package/dist/backend/llvm/speculative-integers.d.ts +74 -0
  224. package/dist/backend/llvm/speculative-integers.js +571 -0
  225. package/dist/backend/llvm/speculative-integers.js.map +1 -0
  226. package/dist/backend/llvm/speculative-integers.test.d.ts +1 -0
  227. package/dist/backend/llvm/speculative-integers.test.js +148 -0
  228. package/dist/backend/llvm/speculative-integers.test.js.map +1 -0
  229. package/dist/backend/llvm/split-loops.js +2 -2
  230. package/dist/backend/llvm/split-loops.js.map +1 -1
  231. package/dist/backend/llvm/stack-objects.d.ts +26 -6
  232. package/dist/backend/llvm/stack-objects.js +133 -10
  233. package/dist/backend/llvm/stack-objects.js.map +1 -1
  234. package/dist/backend/llvm/stack-objects.test.js +55 -1
  235. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  236. package/dist/backend/llvm/stack-unions.test.js +1 -1
  237. package/dist/backend/llvm/string-construction.test.js +1 -1
  238. package/dist/backend/llvm/string-lifetimes.test.js +15 -14
  239. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  240. package/dist/backend/llvm/string-slices.d.ts +25 -0
  241. package/dist/backend/llvm/string-slices.js +207 -1
  242. package/dist/backend/llvm/string-slices.js.map +1 -1
  243. package/dist/backend/llvm/string-slices.test.js +139 -2
  244. package/dist/backend/llvm/string-slices.test.js.map +1 -1
  245. package/dist/backend/llvm/switch-dispatch.test.js +2 -2
  246. package/dist/backend/llvm/thread-slots.d.ts +5 -0
  247. package/dist/backend/llvm/thread-slots.js +142 -0
  248. package/dist/backend/llvm/thread-slots.js.map +1 -0
  249. package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
  250. package/dist/backend/llvm/thread-slots.test.js +110 -0
  251. package/dist/backend/llvm/thread-slots.test.js.map +1 -0
  252. package/dist/backend/llvm/union-repr.d.ts +7 -7
  253. package/dist/backend/llvm/union-repr.js +18 -2
  254. package/dist/backend/llvm/union-repr.js.map +1 -1
  255. package/dist/backend/llvm/union-retype.test.js +17 -3
  256. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  257. package/dist/backend/llvm/walkers.d.ts +2 -2
  258. package/dist/backend/llvm/walkers.js +51 -26
  259. package/dist/backend/llvm/walkers.js.map +1 -1
  260. package/dist/backend/llvm/wasm-modules.d.ts +16 -0
  261. package/dist/backend/llvm/wasm-modules.js +66 -0
  262. package/dist/backend/llvm/wasm-modules.js.map +1 -0
  263. package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
  264. package/dist/backend/llvm/wrapping-sums.js +11 -3
  265. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  266. package/dist/backend/mangle.d.ts +7 -0
  267. package/dist/backend/mangle.js +11 -0
  268. package/dist/backend/mangle.js.map +1 -1
  269. package/dist/backend/may-throw.d.ts +3 -0
  270. package/dist/backend/may-throw.js +6 -2
  271. package/dist/backend/may-throw.js.map +1 -1
  272. package/dist/backend/may-throw.test.js +1 -1
  273. package/dist/backend/native/contracts.d.ts +37 -0
  274. package/dist/backend/native/executable.js +192 -134
  275. package/dist/backend/native/executable.js.map +1 -1
  276. package/dist/backend/native/library.js +1 -0
  277. package/dist/backend/native/library.js.map +1 -1
  278. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  279. package/dist/backend/native/runtime-inputs.js +2 -0
  280. package/dist/backend/native/runtime-inputs.js.map +1 -1
  281. package/dist/backend/native-link-info-core.d.ts +30 -0
  282. package/dist/backend/native-link-info-core.js.map +1 -1
  283. package/dist/backend/publication.test.js +1 -1
  284. package/dist/backend/runtime-pack-core.d.ts +9 -1
  285. package/dist/backend/runtime-pack-core.js +10 -1
  286. package/dist/backend/runtime-pack-core.js.map +1 -1
  287. package/dist/backend/runtime-pack-native.js +1 -1
  288. package/dist/backend/runtime-pack-native.js.map +1 -1
  289. package/dist/backend/runtime-pack-native.test.d.ts +1 -0
  290. package/dist/backend/runtime-pack-native.test.js +31 -0
  291. package/dist/backend/runtime-pack-native.test.js.map +1 -0
  292. package/dist/backend/runtime-pack-targets.test.js +5 -0
  293. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  294. package/dist/backend/runtime-pack.d.ts +7 -3
  295. package/dist/backend/runtime-pack.js +12 -6
  296. package/dist/backend/runtime-pack.js.map +1 -1
  297. package/dist/backend/runtime-pack.test.js +20 -6
  298. package/dist/backend/runtime-pack.test.js.map +1 -1
  299. package/dist/backend/stack-observations.d.ts +22 -0
  300. package/dist/backend/stack-observations.js +382 -0
  301. package/dist/backend/stack-observations.js.map +1 -0
  302. package/dist/backend/stack-observations.test.d.ts +1 -0
  303. package/dist/backend/stack-observations.test.js +233 -0
  304. package/dist/backend/stack-observations.test.js.map +1 -0
  305. package/dist/backend/target-diagnostics.js +8 -0
  306. package/dist/backend/target-diagnostics.js.map +1 -1
  307. package/dist/backend/target-diagnostics.test.js +1 -1
  308. package/dist/backend/warm-cache.js +5 -0
  309. package/dist/backend/warm-cache.js.map +1 -1
  310. package/dist/backend/young-nursery.d.ts +7 -0
  311. package/dist/backend/young-nursery.js +10 -0
  312. package/dist/backend/young-nursery.js.map +1 -0
  313. package/dist/cli/command.js +44 -4
  314. package/dist/cli/command.js.map +1 -1
  315. package/dist/cli/usage.d.ts +11 -1
  316. package/dist/cli/usage.js +20 -1
  317. package/dist/cli/usage.js.map +1 -1
  318. package/dist/compat/fetch-profile.js +10 -1
  319. package/dist/compat/fetch-profile.js.map +1 -1
  320. package/dist/compile-types.d.ts +13 -0
  321. package/dist/contracts/check.js +25 -6
  322. package/dist/contracts/check.js.map +1 -1
  323. package/dist/contracts/int32-elements.d.ts +115 -0
  324. package/dist/contracts/int32-elements.js +1179 -0
  325. package/dist/contracts/int32-elements.js.map +1 -0
  326. package/dist/coverage/report.d.ts +16 -0
  327. package/dist/coverage/report.js +182 -1
  328. package/dist/coverage/report.js.map +1 -1
  329. package/dist/coverage/surface-manifest.js +19 -6
  330. package/dist/coverage/surface-manifest.js.map +1 -1
  331. package/dist/coverage/verdict-cache.d.ts +2 -0
  332. package/dist/coverage/verdict-cache.js +12 -0
  333. package/dist/coverage/verdict-cache.js.map +1 -1
  334. package/dist/coverage/verdict-cache.test.js +2 -1
  335. package/dist/coverage/verdict-cache.test.js.map +1 -1
  336. package/dist/diagnostics/diagnostic.d.ts +11 -7
  337. package/dist/diagnostics/diagnostic.js +35 -23
  338. package/dist/diagnostics/diagnostic.js.map +1 -1
  339. package/dist/diagnostics/envelope.d.ts +39 -2
  340. package/dist/diagnostics/envelope.js.map +1 -1
  341. package/dist/diagnostics/render.d.ts +7 -0
  342. package/dist/diagnostics/render.js +50 -13
  343. package/dist/diagnostics/render.js.map +1 -1
  344. package/dist/diagnostics/render.test.d.ts +1 -0
  345. package/dist/diagnostics/render.test.js +49 -0
  346. package/dist/diagnostics/render.test.js.map +1 -0
  347. package/dist/executable/executable-cache.d.ts +17 -0
  348. package/dist/executable/executable-cache.js +13 -1
  349. package/dist/executable/executable-cache.js.map +1 -1
  350. package/dist/executable/executable-cache.test.js +7 -1
  351. package/dist/executable/executable-cache.test.js.map +1 -1
  352. package/dist/executable/prepare.js +2 -1
  353. package/dist/executable/prepare.js.map +1 -1
  354. package/dist/frontend/analysis.js +6 -1
  355. package/dist/frontend/analysis.js.map +1 -1
  356. package/dist/frontend/builtin-modules.d.ts +16 -2
  357. package/dist/frontend/builtin-modules.js +40 -7
  358. package/dist/frontend/builtin-modules.js.map +1 -1
  359. package/dist/frontend/cjs-syntax.js +52 -51
  360. package/dist/frontend/cjs-syntax.js.map +1 -1
  361. package/dist/frontend/contract-types.d.ts +3 -0
  362. package/dist/frontend/contract-types.js +36 -7
  363. package/dist/frontend/contract-types.js.map +1 -1
  364. package/dist/frontend/experimental-import.d.ts +5 -1
  365. package/dist/frontend/experimental-import.js +26 -7
  366. package/dist/frontend/experimental-import.js.map +1 -1
  367. package/dist/frontend/fork-target.js +20 -22
  368. package/dist/frontend/fork-target.js.map +1 -1
  369. package/dist/frontend/fork-target.test.js +2 -1
  370. package/dist/frontend/fork-target.test.js.map +1 -1
  371. package/dist/frontend/function-completion.js +6 -6
  372. package/dist/frontend/function-completion.js.map +1 -1
  373. package/dist/frontend/helper-tokens.js +15 -3
  374. package/dist/frontend/helper-tokens.js.map +1 -1
  375. package/dist/frontend/helper-tokens.test.js +7 -1
  376. package/dist/frontend/helper-tokens.test.js.map +1 -1
  377. package/dist/frontend/inferred-js-diagnostics.js +14 -17
  378. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  379. package/dist/frontend/input-tracker.d.ts +3 -0
  380. package/dist/frontend/input-tracker.js +32 -3
  381. package/dist/frontend/input-tracker.js.map +1 -1
  382. package/dist/frontend/lib-contract.js +36 -32
  383. package/dist/frontend/lib-contract.js.map +1 -1
  384. package/dist/frontend/lib-exports.js +3 -3
  385. package/dist/frontend/lib-exports.js.map +1 -1
  386. package/dist/frontend/lowering/array-values.d.ts +8 -3
  387. package/dist/frontend/lowering/array-values.js +60 -11
  388. package/dist/frontend/lowering/array-values.js.map +1 -1
  389. package/dist/frontend/lowering/assert-instances.js +4 -4
  390. package/dist/frontend/lowering/assert-instances.js.map +1 -1
  391. package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
  392. package/dist/frontend/lowering/assertion-identity.js +70 -0
  393. package/dist/frontend/lowering/assertion-identity.js.map +1 -0
  394. package/dist/frontend/lowering/assertion-members.d.ts +28 -0
  395. package/dist/frontend/lowering/assertion-members.js +185 -0
  396. package/dist/frontend/lowering/assertion-members.js.map +1 -0
  397. package/dist/frontend/lowering/binding-analysis.js +27 -20
  398. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  399. package/dist/frontend/lowering/builtin-calls.js +72 -4
  400. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  401. package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
  402. package/dist/frontend/lowering/builtin-function-fences.js +42 -0
  403. package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
  404. package/dist/frontend/lowering/builtins/arguments.js +1 -1
  405. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  406. package/dist/frontend/lowering/builtins/async-context.js +53 -52
  407. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  408. package/dist/frontend/lowering/builtins/atomics.js +6 -6
  409. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  410. package/dist/frontend/lowering/builtins/blob.js +8 -6
  411. package/dist/frontend/lowering/builtins/blob.js.map +1 -1
  412. package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +23 -0
  413. package/dist/frontend/lowering/builtins/builtin-class-dyn.js +156 -0
  414. package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
  415. package/dist/frontend/lowering/builtins/callable-aliases.js +45 -6
  416. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  417. package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
  418. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  419. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
  420. package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
  421. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  422. package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
  423. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  424. package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
  425. package/dist/frontend/lowering/builtins/child-process.js +85 -61
  426. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  427. package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
  428. package/dist/frontend/lowering/builtins/class-values.js +226 -0
  429. package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
  430. package/dist/frontend/lowering/builtins/compression.d.ts +18 -0
  431. package/dist/frontend/lowering/builtins/compression.js +230 -52
  432. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  433. package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
  434. package/dist/frontend/lowering/builtins/constants.js +28 -7
  435. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  436. package/dist/frontend/lowering/builtins/crypto.d.ts +19 -0
  437. package/dist/frontend/lowering/builtins/crypto.js +223 -38
  438. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  439. package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
  440. package/dist/frontend/lowering/builtins/dates.js +92 -16
  441. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  442. package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
  443. package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
  444. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
  445. package/dist/frontend/lowering/builtins/environment.js +3 -3
  446. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  447. package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
  448. package/dist/frontend/lowering/builtins/errors.js +174 -6
  449. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  450. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +4 -0
  451. package/dist/frontend/lowering/builtins/filesystem-calls.js +136 -113
  452. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  453. package/dist/frontend/lowering/builtins/filesystem.d.ts +8 -0
  454. package/dist/frontend/lowering/builtins/filesystem.js +213 -76
  455. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  456. package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
  457. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  458. package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
  459. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
  460. package/dist/frontend/lowering/builtins/hash-stream.d.ts +12 -0
  461. package/dist/frontend/lowering/builtins/hash-stream.js +80 -0
  462. package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -0
  463. package/dist/frontend/lowering/builtins/ipc.js +45 -8
  464. package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
  465. package/dist/frontend/lowering/builtins/json.js +232 -24
  466. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  467. package/dist/frontend/lowering/builtins/key-object.js +4 -4
  468. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  469. package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
  470. package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
  471. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  472. package/dist/frontend/lowering/builtins/module-calls.js +67 -46
  473. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  474. package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
  475. package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
  476. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  477. package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
  478. package/dist/frontend/lowering/builtins/navigator.js +40 -0
  479. package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
  480. package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
  481. package/dist/frontend/lowering/builtins/net-address.js +156 -0
  482. package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
  483. package/dist/frontend/lowering/builtins/numbers.js +25 -9
  484. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  485. package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
  486. package/dist/frontend/lowering/builtins/operating-system.js +25 -12
  487. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  488. package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
  489. package/dist/frontend/lowering/builtins/performance.js +259 -8
  490. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  491. package/dist/frontend/lowering/builtins/process.d.ts +32 -1
  492. package/dist/frontend/lowering/builtins/process.js +468 -99
  493. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  494. package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
  495. package/dist/frontend/lowering/builtins/promises.js +326 -43
  496. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  497. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +37 -0
  498. package/dist/frontend/lowering/builtins/promisify-callback.js +320 -0
  499. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
  500. package/dist/frontend/lowering/builtins/properties.js +37 -1
  501. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  502. package/dist/frontend/lowering/builtins/querystring.js +14 -14
  503. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  504. package/dist/frontend/lowering/builtins/readline.d.ts +55 -13
  505. package/dist/frontend/lowering/builtins/readline.js +931 -69
  506. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  507. package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
  508. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
  509. package/dist/frontend/lowering/builtins/reflection.js +16 -14
  510. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  511. package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
  512. package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
  513. package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
  514. package/dist/frontend/lowering/builtins/strings.js +101 -12
  515. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  516. package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
  517. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  518. package/dist/frontend/lowering/builtins/timers.js +75 -30
  519. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  520. package/dist/frontend/lowering/builtins/url.d.ts +3 -0
  521. package/dist/frontend/lowering/builtins/url.js +120 -17
  522. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  523. package/dist/frontend/lowering/builtins/util-types.js +20 -4
  524. package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
  525. package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
  526. package/dist/frontend/lowering/builtins/v8.js +105 -0
  527. package/dist/frontend/lowering/builtins/v8.js.map +1 -0
  528. package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
  529. package/dist/frontend/lowering/builtins/webassembly.js +388 -0
  530. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
  531. package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
  532. package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
  533. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
  534. package/dist/frontend/lowering/builtins/workers.d.ts +16 -0
  535. package/dist/frontend/lowering/builtins/workers.js +246 -3
  536. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  537. package/dist/frontend/lowering/call-arguments.js +69 -14
  538. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  539. package/dist/frontend/lowering/call-signatures.d.ts +19 -1
  540. package/dist/frontend/lowering/call-signatures.js +254 -47
  541. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  542. package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
  543. package/dist/frontend/lowering/checked-promise-all.js +1 -1
  544. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  545. package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
  546. package/dist/frontend/lowering/cjs-exports-object.js +528 -0
  547. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
  548. package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
  549. package/dist/frontend/lowering/cjs-inline-require.js +314 -0
  550. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
  551. package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
  552. package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
  553. package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
  554. package/dist/frontend/lowering/class-attributes.d.ts +19 -0
  555. package/dist/frontend/lowering/class-attributes.js +378 -0
  556. package/dist/frontend/lowering/class-attributes.js.map +1 -0
  557. package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
  558. package/dist/frontend/lowering/class-callbacks.js +21 -10
  559. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  560. package/dist/frontend/lowering/class-construction.js +49 -4
  561. package/dist/frontend/lowering/class-construction.js.map +1 -1
  562. package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
  563. package/dist/frontend/lowering/class-descriptors.js +8 -8
  564. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  565. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
  566. package/dist/frontend/lowering/class-dynamic-dispatch.js +1115 -89
  567. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  568. package/dist/frontend/lowering/class-instance-constructor.js +1 -1
  569. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  570. package/dist/frontend/lowering/class-iterables.d.ts +11 -0
  571. package/dist/frontend/lowering/class-iterables.js +31 -0
  572. package/dist/frontend/lowering/class-iterables.js.map +1 -0
  573. package/dist/frontend/lowering/class-method-mutations.js +73 -35
  574. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  575. package/dist/frontend/lowering/class-method-values.js +56 -10
  576. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  577. package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
  578. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  579. package/dist/frontend/lowering/class-protocols.d.ts +55 -0
  580. package/dist/frontend/lowering/class-protocols.js +738 -22
  581. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  582. package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
  583. package/dist/frontend/lowering/class-prototypes.js +80 -18
  584. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  585. package/dist/frontend/lowering/class-runtime-statics.js +1 -1
  586. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  587. package/dist/frontend/lowering/class-static-data.js +2 -2
  588. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  589. package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
  590. package/dist/frontend/lowering/class-to-primitive.js +261 -0
  591. package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
  592. package/dist/frontend/lowering/class-unions.d.ts +25 -0
  593. package/dist/frontend/lowering/class-unions.js +102 -1
  594. package/dist/frontend/lowering/class-unions.js.map +1 -1
  595. package/dist/frontend/lowering/code-generation.d.ts +14 -0
  596. package/dist/frontend/lowering/code-generation.js +127 -0
  597. package/dist/frontend/lowering/code-generation.js.map +1 -0
  598. package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
  599. package/dist/frontend/lowering/coercions/function-adapters.js +145 -3
  600. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  601. package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
  602. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  603. package/dist/frontend/lowering/coercions/structural.js +35 -3
  604. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  605. package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
  606. package/dist/frontend/lowering/coercions/unions.js +57 -1
  607. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  608. package/dist/frontend/lowering/collection-ingestion.js +2 -2
  609. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  610. package/dist/frontend/lowering/collection-narrowing.js +2 -4
  611. package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
  612. package/dist/frontend/lowering/construction-escapes.js +8 -8
  613. package/dist/frontend/lowering/construction-escapes.js.map +1 -1
  614. package/dist/frontend/lowering/construction-escapes.test.js +4 -4
  615. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
  616. package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
  617. package/dist/frontend/lowering/constructor-returns.js +477 -0
  618. package/dist/frontend/lowering/constructor-returns.js.map +1 -0
  619. package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
  620. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  621. package/dist/frontend/lowering/containers/array-callbacks.d.ts +9 -0
  622. package/dist/frontend/lowering/containers/array-callbacks.js +266 -100
  623. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  624. package/dist/frontend/lowering/containers/array-concat.js +1 -1
  625. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  626. package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
  627. package/dist/frontend/lowering/containers/array-construction.js +51 -13
  628. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  629. package/dist/frontend/lowering/containers/array-from-async.d.ts +19 -0
  630. package/dist/frontend/lowering/containers/array-from-async.js +427 -0
  631. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -0
  632. package/dist/frontend/lowering/containers/array-methods.js +89 -77
  633. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  634. package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
  635. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  636. package/dist/frontend/lowering/containers/bytes.js +161 -101
  637. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  638. package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
  639. package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
  640. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  641. package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
  642. package/dist/frontend/lowering/containers/collection-grouping.js +219 -27
  643. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  644. package/dist/frontend/lowering/containers/collection-methods.js +81 -48
  645. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  646. package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
  647. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
  648. package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
  649. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
  650. package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
  651. package/dist/frontend/lowering/containers/for-of.js +19 -19
  652. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  653. package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
  654. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  655. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
  656. package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
  657. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  658. package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
  659. package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
  660. package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
  661. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
  662. package/dist/frontend/lowering/containers/string-and-regexp.js +419 -30
  663. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  664. package/dist/frontend/lowering/containers/string-replacement.js +1 -1
  665. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  666. package/dist/frontend/lowering/cycle-initialization.d.ts +4 -0
  667. package/dist/frontend/lowering/cycle-initialization.js +39 -0
  668. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  669. package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
  670. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  671. package/dist/frontend/lowering/devirtualize.d.ts +1 -1
  672. package/dist/frontend/lowering/devirtualize.js +27 -7
  673. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  674. package/dist/frontend/lowering/divergences.d.ts +0 -5
  675. package/dist/frontend/lowering/divergences.js +238 -128
  676. package/dist/frontend/lowering/divergences.js.map +1 -1
  677. package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
  678. package/dist/frontend/lowering/dyn-streams.js +257 -0
  679. package/dist/frontend/lowering/dyn-streams.js.map +1 -0
  680. package/dist/frontend/lowering/error-methods.js +4 -1
  681. package/dist/frontend/lowering/error-methods.js.map +1 -1
  682. package/dist/frontend/lowering/error-name-order.d.ts +19 -0
  683. package/dist/frontend/lowering/error-name-order.js +93 -0
  684. package/dist/frontend/lowering/error-name-order.js.map +1 -0
  685. package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
  686. package/dist/frontend/lowering/expressions/array-literals.js +703 -0
  687. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
  688. package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
  689. package/dist/frontend/lowering/expressions/binary.js +2483 -0
  690. package/dist/frontend/lowering/expressions/binary.js.map +1 -0
  691. package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
  692. package/dist/frontend/lowering/expressions/element-access.js +1797 -0
  693. package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
  694. package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
  695. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  696. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
  697. package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
  698. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
  699. package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
  700. package/dist/frontend/lowering/expressions/identifiers.js +830 -0
  701. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
  702. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +40 -0
  703. package/dist/frontend/lowering/expressions/keyed-field-targets.js +226 -0
  704. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
  705. package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
  706. package/dist/frontend/lowering/expressions/narrowing.js +1322 -0
  707. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
  708. package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
  709. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  710. package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
  711. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  712. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  713. package/dist/frontend/lowering/expressions/object-literals.js +253 -85
  714. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  715. package/dist/frontend/lowering/expressions/optional-chains.d.ts +2 -1
  716. package/dist/frontend/lowering/expressions/optional-chains.js +91 -14
  717. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  718. package/dist/frontend/lowering/expressions/property-access.d.ts +110 -0
  719. package/dist/frontend/lowering/expressions/property-access.js +3544 -0
  720. package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
  721. package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
  722. package/dist/frontend/lowering/expressions/relational.js +1679 -0
  723. package/dist/frontend/lowering/expressions/relational.js.map +1 -0
  724. package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
  725. package/dist/frontend/lowering/expressions/typeof.js +538 -0
  726. package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
  727. package/dist/frontend/lowering/expressions/union-fields.js +1 -1
  728. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  729. package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
  730. package/dist/frontend/lowering/expressions/updates.js +780 -0
  731. package/dist/frontend/lowering/expressions/updates.js.map +1 -0
  732. package/dist/frontend/lowering/function-context.d.ts +10 -0
  733. package/dist/frontend/lowering/function-context.js +11 -1
  734. package/dist/frontend/lowering/function-context.js.map +1 -1
  735. package/dist/frontend/lowering/function-returns.js +52 -28
  736. package/dist/frontend/lowering/function-returns.js.map +1 -1
  737. package/dist/frontend/lowering/general-streams.d.ts +25 -0
  738. package/dist/frontend/lowering/general-streams.js +108 -0
  739. package/dist/frontend/lowering/general-streams.js.map +1 -0
  740. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
  741. package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
  742. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  743. package/dist/frontend/lowering/generic-functions.d.ts +39 -0
  744. package/dist/frontend/lowering/generic-functions.js +393 -75
  745. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  746. package/dist/frontend/lowering/import-meta.js +2 -2
  747. package/dist/frontend/lowering/import-meta.js.map +1 -1
  748. package/dist/frontend/lowering/intern-tables.js +10 -9
  749. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  750. package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
  751. package/dist/frontend/lowering/iterator-adapters.js +331 -3
  752. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  753. package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
  754. package/dist/frontend/lowering/js-class-fields.js +170 -0
  755. package/dist/frontend/lowering/js-class-fields.js.map +1 -0
  756. package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
  757. package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
  758. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
  759. package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
  760. package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
  761. package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
  762. package/dist/frontend/lowering/json-require.d.ts +22 -0
  763. package/dist/frontend/lowering/json-require.js +131 -0
  764. package/dist/frontend/lowering/json-require.js.map +1 -0
  765. package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
  766. package/dist/frontend/lowering/key-order-witness.js +641 -0
  767. package/dist/frontend/lowering/key-order-witness.js.map +1 -0
  768. package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
  769. package/dist/frontend/lowering/key-order-witness.test.js +239 -0
  770. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
  771. package/dist/frontend/lowering/lifetime-regions.js +7 -7
  772. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  773. package/dist/frontend/lowering/lower-assert.js +61 -60
  774. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  775. package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
  776. package/dist/frontend/lowering/lower-async-iteration.js +34 -6
  777. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  778. package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
  779. package/dist/frontend/lowering/lower-builtin-values.js +32 -3
  780. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  781. package/dist/frontend/lowering/lower-calls.js +1298 -452
  782. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  783. package/dist/frontend/lowering/lower-classes.d.ts +50 -3
  784. package/dist/frontend/lowering/lower-classes.js +1499 -456
  785. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  786. package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
  787. package/dist/frontend/lowering/lower-comptime.js +111 -13
  788. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  789. package/dist/frontend/lowering/lower-console.js +13 -11
  790. package/dist/frontend/lowering/lower-console.js.map +1 -1
  791. package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
  792. package/dist/frontend/lowering/lower-dgram.js +179 -8
  793. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  794. package/dist/frontend/lowering/lower-enums.js +113 -14
  795. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  796. package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
  797. package/dist/frontend/lowering/lower-event-emitter.js +268 -71
  798. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  799. package/dist/frontend/lowering/lower-event-target.js +2 -2
  800. package/dist/frontend/lowering/lower-event-target.js.map +1 -1
  801. package/dist/frontend/lowering/lower-expando.js +17 -13
  802. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  803. package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
  804. package/dist/frontend/lowering/lower-exprs.js +1493 -12407
  805. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  806. package/dist/frontend/lowering/lower-functions.js +68 -22
  807. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  808. package/dist/frontend/lowering/lower-generators.d.ts +6 -0
  809. package/dist/frontend/lowering/lower-generators.js +29 -16
  810. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  811. package/dist/frontend/lowering/lower-global-value.js +5 -1
  812. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  813. package/dist/frontend/lowering/lower-inspect.js +354 -99
  814. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  815. package/dist/frontend/lowering/lower-mixins.js +23 -20
  816. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  817. package/dist/frontend/lowering/lower-mock.d.ts +19 -2
  818. package/dist/frontend/lowering/lower-mock.js +557 -74
  819. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  820. package/dist/frontend/lowering/lower-modules.js +268 -61
  821. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  822. package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
  823. package/dist/frontend/lowering/lower-namespaces.js +45 -33
  824. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  825. package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
  826. package/dist/frontend/lowering/lower-node-module.js +147 -14
  827. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  828. package/dist/frontend/lowering/lower-server.d.ts +6 -6
  829. package/dist/frontend/lowering/lower-server.js +638 -105
  830. package/dist/frontend/lowering/lower-server.js.map +1 -1
  831. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  832. package/dist/frontend/lowering/lower-stdlib.js +151 -109
  833. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  834. package/dist/frontend/lowering/lower-stmts.d.ts +28 -2
  835. package/dist/frontend/lowering/lower-stmts.js +1589 -398
  836. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  837. package/dist/frontend/lowering/lower-stream.d.ts +4 -3
  838. package/dist/frontend/lowering/lower-stream.js +714 -75
  839. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  840. package/dist/frontend/lowering/lower-test.d.ts +3 -0
  841. package/dist/frontend/lowering/lower-test.js +574 -100
  842. package/dist/frontend/lowering/lower-test.js.map +1 -1
  843. package/dist/frontend/lowering/lower-timers.js +80 -32
  844. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  845. package/dist/frontend/lowering/lower-url.js +1 -1
  846. package/dist/frontend/lowering/lower-url.js.map +1 -1
  847. package/dist/frontend/lowering/lowerer.d.ts +409 -26
  848. package/dist/frontend/lowering/lowerer.js +1918 -305
  849. package/dist/frontend/lowering/lowerer.js.map +1 -1
  850. package/dist/frontend/lowering/lowerer.test.js +10 -4
  851. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  852. package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
  853. package/dist/frontend/lowering/maybe-promise.js +249 -0
  854. package/dist/frontend/lowering/maybe-promise.js.map +1 -0
  855. package/dist/frontend/lowering/module-member-this.d.ts +3 -0
  856. package/dist/frontend/lowering/module-member-this.js +262 -0
  857. package/dist/frontend/lowering/module-member-this.js.map +1 -0
  858. package/dist/frontend/lowering/module-namespace-elements.js +1 -1
  859. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  860. package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
  861. package/dist/frontend/lowering/nan-coded-reads.js +45 -32
  862. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  863. package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
  864. package/dist/frontend/lowering/narrowing-stability.js +104 -32
  865. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  866. package/dist/frontend/lowering/native-ffi.js +11 -11
  867. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  868. package/dist/frontend/lowering/null-prototype.d.ts +13 -0
  869. package/dist/frontend/lowering/null-prototype.js +33 -0
  870. package/dist/frontend/lowering/null-prototype.js.map +1 -0
  871. package/dist/frontend/lowering/object-factory-new.js +6 -8
  872. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  873. package/dist/frontend/lowering/private-brands.d.ts +46 -0
  874. package/dist/frontend/lowering/private-brands.js +265 -0
  875. package/dist/frontend/lowering/private-brands.js.map +1 -0
  876. package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
  877. package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
  878. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
  879. package/dist/frontend/lowering/require-initialization.d.ts +32 -0
  880. package/dist/frontend/lowering/require-initialization.js +246 -0
  881. package/dist/frontend/lowering/require-initialization.js.map +1 -0
  882. package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
  883. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  884. package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
  885. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  886. package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
  887. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  888. package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
  889. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  890. package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
  891. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
  892. package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
  893. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  894. package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
  895. package/dist/frontend/lowering/runtime-optional-records.js +205 -32
  896. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  897. package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
  898. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
  899. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  900. package/dist/frontend/lowering/split-consumers.js +4 -4
  901. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  902. package/dist/frontend/lowering/static-function-names.d.ts +28 -0
  903. package/dist/frontend/lowering/static-function-names.js +212 -0
  904. package/dist/frontend/lowering/static-function-names.js.map +1 -0
  905. package/dist/frontend/lowering/static-this.js +6 -6
  906. package/dist/frontend/lowering/static-this.js.map +1 -1
  907. package/dist/frontend/lowering/strict-mode.d.ts +5 -0
  908. package/dist/frontend/lowering/strict-mode.js +31 -0
  909. package/dist/frontend/lowering/strict-mode.js.map +1 -0
  910. package/dist/frontend/lowering/string-index-bounds.js +10 -10
  911. package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
  912. package/dist/frontend/lowering/string-index.d.ts +12 -0
  913. package/dist/frontend/lowering/string-index.js +72 -1
  914. package/dist/frontend/lowering/string-index.js.map +1 -1
  915. package/dist/frontend/lowering/surfaces.d.ts +15 -6
  916. package/dist/frontend/lowering/surfaces.js +278 -45
  917. package/dist/frontend/lowering/surfaces.js.map +1 -1
  918. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  919. package/dist/frontend/lowering/symbol-fields.js +204 -36
  920. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  921. package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
  922. package/dist/frontend/lowering/symbol-methods.js +24 -6
  923. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  924. package/dist/frontend/lowering/thread-slots.d.ts +13 -0
  925. package/dist/frontend/lowering/thread-slots.js +208 -0
  926. package/dist/frontend/lowering/thread-slots.js.map +1 -0
  927. package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
  928. package/dist/frontend/lowering/typed-arguments.js +472 -0
  929. package/dist/frontend/lowering/typed-arguments.js.map +1 -0
  930. package/dist/frontend/lowering/union-retag.d.ts +8 -0
  931. package/dist/frontend/lowering/union-retag.js +27 -0
  932. package/dist/frontend/lowering/union-retag.js.map +1 -1
  933. package/dist/frontend/lowering/union-retag.test.js +24 -1
  934. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  935. package/dist/frontend/lowering/var-hoisting.js +6 -6
  936. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  937. package/dist/frontend/lowering/width-lift.d.ts +4 -0
  938. package/dist/frontend/mock-shapes.d.ts +5 -0
  939. package/dist/frontend/mock-shapes.js +39 -7
  940. package/dist/frontend/mock-shapes.js.map +1 -1
  941. package/dist/frontend/module-source-candidates.js +1 -1
  942. package/dist/frontend/module-source-candidates.js.map +1 -1
  943. package/dist/frontend/module-source-candidates.test.js +2 -1
  944. package/dist/frontend/module-source-candidates.test.js.map +1 -1
  945. package/dist/frontend/module-syntax.js +8 -8
  946. package/dist/frontend/module-syntax.js.map +1 -1
  947. package/dist/frontend/npm-static-bundled-chunks.d.ts +51 -0
  948. package/dist/frontend/npm-static-bundled-chunks.js +810 -0
  949. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
  950. package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
  951. package/dist/frontend/npm-static-bundled-chunks.test.js +287 -0
  952. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
  953. package/dist/frontend/npm-static-bundled-cjs.js +24 -23
  954. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  955. package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
  956. package/dist/frontend/npm-static-bundled-esm.js +768 -0
  957. package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
  958. package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
  959. package/dist/frontend/npm-static-bundled-esm.test.js +207 -0
  960. package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
  961. package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
  962. package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
  963. package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
  964. package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
  965. package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
  966. package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
  967. package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
  968. package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
  969. package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
  970. package/dist/frontend/npm-static-declaration-syntax.js +102 -101
  971. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  972. package/dist/frontend/npm-static-prune.js +36 -24
  973. package/dist/frontend/npm-static-prune.js.map +1 -1
  974. package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
  975. package/dist/frontend/npm-static-rewrite-host.js +14 -3
  976. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  977. package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
  978. package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
  979. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  980. package/dist/frontend/npm-static-subtyping.js +7 -9
  981. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  982. package/dist/frontend/npm-static.d.ts +17 -1
  983. package/dist/frontend/npm-static.js +167 -16
  984. package/dist/frontend/npm-static.js.map +1 -1
  985. package/dist/frontend/npm-static.test.js +22 -1
  986. package/dist/frontend/npm-static.test.js.map +1 -1
  987. package/dist/frontend/pipeline.js +164 -26
  988. package/dist/frontend/pipeline.js.map +1 -1
  989. package/dist/frontend/pipeline.test.js +22 -1
  990. package/dist/frontend/pipeline.test.js.map +1 -1
  991. package/dist/frontend/program-analysis.d.ts +6 -1
  992. package/dist/frontend/program-analysis.js +7 -0
  993. package/dist/frontend/program-analysis.js.map +1 -1
  994. package/dist/frontend/program.d.ts +92 -2
  995. package/dist/frontend/program.js +1557 -254
  996. package/dist/frontend/program.js.map +1 -1
  997. package/dist/frontend/program.test.js +76 -6
  998. package/dist/frontend/program.test.js.map +1 -1
  999. package/dist/frontend/resolve.js +36 -2
  1000. package/dist/frontend/resolve.js.map +1 -1
  1001. package/dist/frontend/resolve.test.js +49 -0
  1002. package/dist/frontend/resolve.test.js.map +1 -1
  1003. package/dist/frontend/services.d.ts +20 -1
  1004. package/dist/frontend/services.js +40 -3
  1005. package/dist/frontend/services.js.map +1 -1
  1006. package/dist/frontend/services.test.js +2 -1
  1007. package/dist/frontend/services.test.js.map +1 -1
  1008. package/dist/frontend/threads-import.js +1 -1
  1009. package/dist/frontend/threads-import.js.map +1 -1
  1010. package/dist/frontend/tier-analysis.d.ts +71 -0
  1011. package/dist/frontend/tier-analysis.js +522 -0
  1012. package/dist/frontend/tier-analysis.js.map +1 -0
  1013. package/dist/frontend/ts7/api-conformance.d.ts +234 -0
  1014. package/dist/frontend/ts7/api-conformance.js +7 -0
  1015. package/dist/frontend/ts7/api-conformance.js.map +1 -0
  1016. package/dist/frontend/ts7/ast-guards.generated.js +2 -1
  1017. package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
  1018. package/dist/frontend/ts7/ast-node.d.ts +47 -25
  1019. package/dist/frontend/ts7/ast-node.js +64 -18
  1020. package/dist/frontend/ts7/ast-node.js.map +1 -1
  1021. package/dist/frontend/ts7/ast-node.test.js +36 -12
  1022. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  1023. package/dist/frontend/ts7/ast-types.d.ts +10 -3
  1024. package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
  1025. package/dist/frontend/ts7/ast.d.ts +1 -0
  1026. package/dist/frontend/ts7/ast.js +3 -2
  1027. package/dist/frontend/ts7/ast.js.map +1 -1
  1028. package/dist/frontend/ts7/checker-backend.d.ts +23 -0
  1029. package/dist/frontend/ts7/checker-backend.js +88 -0
  1030. package/dist/frontend/ts7/checker-backend.js.map +1 -0
  1031. package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
  1032. package/dist/frontend/ts7/checker-backend.test.js +63 -0
  1033. package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
  1034. package/dist/frontend/ts7/checker-cache.d.ts +0 -3
  1035. package/dist/frontend/ts7/checker-cache.js +0 -6
  1036. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  1037. package/dist/frontend/ts7/checker.d.ts +18 -11
  1038. package/dist/frontend/ts7/checker.js +42 -55
  1039. package/dist/frontend/ts7/checker.js.map +1 -1
  1040. package/dist/frontend/ts7/checker.test.js +10 -7
  1041. package/dist/frontend/ts7/checker.test.js.map +1 -1
  1042. package/dist/frontend/ts7/diagnostic.d.ts +19 -0
  1043. package/dist/frontend/ts7/diagnostic.js +22 -0
  1044. package/dist/frontend/ts7/diagnostic.js.map +1 -0
  1045. package/dist/frontend/ts7/node-functions.d.ts +8 -0
  1046. package/dist/frontend/ts7/node-functions.js +18 -0
  1047. package/dist/frontend/ts7/node-functions.js.map +1 -0
  1048. package/dist/frontend/ts7/program-host.d.ts +5 -1
  1049. package/dist/frontend/ts7/program-host.js +12 -0
  1050. package/dist/frontend/ts7/program-host.js.map +1 -1
  1051. package/dist/frontend/ts7/rpc-api.d.ts +5 -1
  1052. package/dist/frontend/ts7/rpc-api.js +8 -1
  1053. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  1054. package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
  1055. package/dist/frontend/ts7/semantic-checker.js +26 -8
  1056. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  1057. package/dist/frontend/ts7/semantic-checker.test.js +12 -9
  1058. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  1059. package/dist/frontend/ts7/semantic-model.d.ts +54 -24
  1060. package/dist/frontend/ts7/semantic-model.js +88 -16
  1061. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  1062. package/dist/frontend/ts7/semantic-model.test.js +4 -4
  1063. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  1064. package/dist/frontend/ts7/semantic-types.d.ts +7 -3
  1065. package/dist/frontend/ts7/semantic-types.js +1 -1
  1066. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  1067. package/dist/frontend/ts7/session.d.ts +11 -11
  1068. package/dist/frontend/ts7/session.js +8 -5
  1069. package/dist/frontend/ts7/session.js.map +1 -1
  1070. package/dist/frontend/ts7/session.test.js +9 -5
  1071. package/dist/frontend/ts7/session.test.js.map +1 -1
  1072. package/dist/frontend/ts7/source-parser.d.ts +6 -2
  1073. package/dist/frontend/ts7/source-parser.js +24 -3
  1074. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1075. package/dist/frontend/ts7/source-parser.test.js +38 -17
  1076. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1077. package/dist/frontend/type-mapper.d.ts +122 -2
  1078. package/dist/frontend/type-mapper.js +2612 -695
  1079. package/dist/frontend/type-mapper.js.map +1 -1
  1080. package/dist/frontend/type-only-imports.d.ts +28 -0
  1081. package/dist/frontend/type-only-imports.js +122 -0
  1082. package/dist/frontend/type-only-imports.js.map +1 -0
  1083. package/dist/frontend/worker-target.js +8 -8
  1084. package/dist/frontend/worker-target.js.map +1 -1
  1085. package/dist/index.d.ts +3 -1
  1086. package/dist/index.js +47 -10
  1087. package/dist/index.js.map +1 -1
  1088. package/dist/ir/analysis.js +4 -2
  1089. package/dist/ir/analysis.js.map +1 -1
  1090. package/dist/ir/api.d.ts +1 -1
  1091. package/dist/ir/api.js +1 -1
  1092. package/dist/ir/api.js.map +1 -1
  1093. package/dist/ir/array-length-stability.d.ts +30 -0
  1094. package/dist/ir/array-length-stability.js +236 -0
  1095. package/dist/ir/array-length-stability.js.map +1 -0
  1096. package/dist/ir/array-length-stability.test.d.ts +1 -0
  1097. package/dist/ir/array-length-stability.test.js +113 -0
  1098. package/dist/ir/array-length-stability.test.js.map +1 -0
  1099. package/dist/ir/build.d.ts +2 -2
  1100. package/dist/ir/build.js +1 -1
  1101. package/dist/ir/build.js.map +1 -1
  1102. package/dist/ir/builtin-effects.js +139 -0
  1103. package/dist/ir/builtin-effects.js.map +1 -1
  1104. package/dist/ir/builtin-signatures.d.ts +1 -1
  1105. package/dist/ir/builtin-signatures.js +655 -25
  1106. package/dist/ir/builtin-signatures.js.map +1 -1
  1107. package/dist/ir/byte-numbers.js +3 -0
  1108. package/dist/ir/byte-numbers.js.map +1 -1
  1109. package/dist/ir/callback-specialization.d.ts +37 -0
  1110. package/dist/ir/callback-specialization.js +459 -0
  1111. package/dist/ir/callback-specialization.js.map +1 -0
  1112. package/dist/ir/callback-specialization.test.d.ts +1 -0
  1113. package/dist/ir/callback-specialization.test.js +208 -0
  1114. package/dist/ir/callback-specialization.test.js.map +1 -0
  1115. package/dist/ir/capture-values.d.ts +0 -1
  1116. package/dist/ir/capture-values.js +51 -40
  1117. package/dist/ir/capture-values.js.map +1 -1
  1118. package/dist/ir/constant-globals.test.js +1 -1
  1119. package/dist/ir/constant-tables.test.js +1 -1
  1120. package/dist/ir/field-values.test.js +1 -1
  1121. package/dist/ir/final-fields.test.js +1 -1
  1122. package/dist/ir/function-references.test.js +10 -1
  1123. package/dist/ir/function-references.test.js.map +1 -1
  1124. package/dist/ir/init-only-globals.test.js +1 -1
  1125. package/dist/ir/initializer-bindings.test.js +1 -1
  1126. package/dist/ir/int32-slots.d.ts +14 -0
  1127. package/dist/ir/int32-slots.js +119 -14
  1128. package/dist/ir/int32-slots.js.map +1 -1
  1129. package/dist/ir/int32-slots.test.js +29 -1
  1130. package/dist/ir/int32-slots.test.js.map +1 -1
  1131. package/dist/ir/integer-loop-facts.d.ts +16 -6
  1132. package/dist/ir/integer-loop-facts.js +143 -38
  1133. package/dist/ir/integer-loop-facts.js.map +1 -1
  1134. package/dist/ir/integer-loops.d.ts +1 -1
  1135. package/dist/ir/integer-loops.js +39 -9
  1136. package/dist/ir/integer-loops.js.map +1 -1
  1137. package/dist/ir/integer-loops.test.js +104 -0
  1138. package/dist/ir/integer-loops.test.js.map +1 -1
  1139. package/dist/ir/integer-ranges.d.ts +3 -0
  1140. package/dist/ir/integer-ranges.js +4 -6
  1141. package/dist/ir/integer-ranges.js.map +1 -1
  1142. package/dist/ir/integer-ranges.test.js +142 -1
  1143. package/dist/ir/integer-ranges.test.js.map +1 -1
  1144. package/dist/ir/intrinsic-signatures.js +6 -0
  1145. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1146. package/dist/ir/ir.d.ts +234 -58
  1147. package/dist/ir/ir.js +123 -12
  1148. package/dist/ir/ir.js.map +1 -1
  1149. package/dist/ir/ir.test.js +10 -0
  1150. package/dist/ir/ir.test.js.map +1 -1
  1151. package/dist/ir/jsval.d.ts +8 -0
  1152. package/dist/ir/jsval.js +365 -0
  1153. package/dist/ir/jsval.js.map +1 -0
  1154. package/dist/ir/jsval.test.d.ts +1 -0
  1155. package/dist/ir/jsval.test.js +239 -0
  1156. package/dist/ir/jsval.test.js.map +1 -0
  1157. package/dist/ir/runtime-features.d.ts +150 -33
  1158. package/dist/ir/runtime-features.js +672 -339
  1159. package/dist/ir/runtime-features.js.map +1 -1
  1160. package/dist/ir/runtime-features.test.js +62 -0
  1161. package/dist/ir/runtime-features.test.js.map +1 -1
  1162. package/dist/ir/scalar-records.test.js +1 -1
  1163. package/dist/ir/self-captures.d.ts +33 -0
  1164. package/dist/ir/self-captures.js +245 -0
  1165. package/dist/ir/self-captures.js.map +1 -0
  1166. package/dist/ir/self-captures.test.d.ts +1 -0
  1167. package/dist/ir/self-captures.test.js +135 -0
  1168. package/dist/ir/self-captures.test.js.map +1 -0
  1169. package/dist/ir/serialize.d.ts +1 -1
  1170. package/dist/ir/serialize.js +7 -4
  1171. package/dist/ir/serialize.js.map +1 -1
  1172. package/dist/ir/tiers.d.ts +26 -0
  1173. package/dist/ir/tiers.js +101 -0
  1174. package/dist/ir/tiers.js.map +1 -0
  1175. package/dist/ir/tiers.test.d.ts +1 -0
  1176. package/dist/ir/tiers.test.js +140 -0
  1177. package/dist/ir/tiers.test.js.map +1 -0
  1178. package/dist/ir/traverse.js +107 -94
  1179. package/dist/ir/traverse.js.map +1 -1
  1180. package/dist/ir/traverse.test.js +33 -30
  1181. package/dist/ir/traverse.test.js.map +1 -1
  1182. package/dist/ir/unshare.js +65 -3
  1183. package/dist/ir/unshare.js.map +1 -1
  1184. package/dist/ir/unshare.test.js +1 -1
  1185. package/dist/ir/validate.js +220 -71
  1186. package/dist/ir/validate.js.map +1 -1
  1187. package/dist/ir/validate.test.js +64 -9
  1188. package/dist/ir/validate.test.js.map +1 -1
  1189. package/dist/library/fence-eval.test.js +1 -1
  1190. package/dist/library/int-infer.test.js +4 -4
  1191. package/dist/library/ir-policy.js +18 -0
  1192. package/dist/library/ir-policy.js.map +1 -1
  1193. package/dist/library/library-cache.d.ts +1 -0
  1194. package/dist/library/library-cache.js.map +1 -1
  1195. package/dist/library/library-cache.test.js +5 -5
  1196. package/dist/library/library-profile.d.ts +4 -4
  1197. package/dist/library/library-profile.js +35 -7
  1198. package/dist/library/library-profile.js.map +1 -1
  1199. package/dist/library/prepare.js +13 -1
  1200. package/dist/library/prepare.js.map +1 -1
  1201. package/dist/native/cli.js +5 -0
  1202. package/dist/native/cli.js.map +1 -1
  1203. package/dist/native/compiler.js +2 -2
  1204. package/dist/native/compiler.js.map +1 -1
  1205. package/dist/native/compiler.test.js +2 -2
  1206. package/dist/native/prepare.js +7 -0
  1207. package/dist/native/prepare.js.map +1 -1
  1208. package/dist/native/sanitizer.test.js +12 -0
  1209. package/dist/native/sanitizer.test.js.map +1 -1
  1210. package/dist/native/toolchain.d.ts +2 -0
  1211. package/dist/native/toolchain.js +10 -1
  1212. package/dist/native/toolchain.js.map +1 -1
  1213. package/dist/native/toolchain.test.js +39 -1
  1214. package/dist/native/toolchain.test.js.map +1 -1
  1215. package/dist/startup-cache.d.ts +1 -0
  1216. package/dist/startup-cache.js +1 -0
  1217. package/dist/startup-cache.js.map +1 -1
  1218. package/dist/wasm/base64.d.ts +5 -0
  1219. package/dist/wasm/base64.js +62 -0
  1220. package/dist/wasm/base64.js.map +1 -0
  1221. package/dist/wasm/binary.d.ts +36 -0
  1222. package/dist/wasm/binary.js +1976 -0
  1223. package/dist/wasm/binary.js.map +1 -0
  1224. package/dist/wasm/binary.test.d.ts +1 -0
  1225. package/dist/wasm/binary.test.js +190 -0
  1226. package/dist/wasm/binary.test.js.map +1 -0
  1227. package/dist/wasm/discover.d.ts +38 -0
  1228. package/dist/wasm/discover.js +377 -0
  1229. package/dist/wasm/discover.js.map +1 -0
  1230. package/dist/wasm/discover.test.d.ts +1 -0
  1231. package/dist/wasm/discover.test.js +24 -0
  1232. package/dist/wasm/discover.test.js.map +1 -0
  1233. package/dist/wasm/module.d.ts +151 -0
  1234. package/dist/wasm/module.js +575 -0
  1235. package/dist/wasm/module.js.map +1 -0
  1236. package/dist/wasm/translate.d.ts +48 -0
  1237. package/dist/wasm/translate.js +2129 -0
  1238. package/dist/wasm/translate.js.map +1 -0
  1239. package/dist/wasm/translate.test.d.ts +1 -0
  1240. package/dist/wasm/translate.test.js +207 -0
  1241. package/dist/wasm/translate.test.js.map +1 -0
  1242. package/package.json +21 -20
  1243. package/surface-manifest.json +332 -36
@@ -80,21 +80,54 @@ declare namespace NodeJS {
80
80
  path?: string | undefined;
81
81
  syscall?: string | undefined;
82
82
  }
83
- /* The piped child-output stream (child.stdout / child.stderr under
84
- * stdio ["ignore", "pipe", "pipe"]): 'data' fires one Buffer chunk per
85
- * read (≤64KB, consumer-driven — no listener, no read), 'end' fires
86
- * once at EOF and always BEFORE the child's 'exit'. A flowing stream
87
- * keeps the loop alive. */
83
+ /* The readable-stream interface every Node stream implements. The
84
+ * piped child-output stream (child.stdout / child.stderr under stdio
85
+ * ["ignore", "pipe", "pipe"]) is declared with it: 'data' fires one
86
+ * Buffer chunk per read (≤64KB, consumer-driven — no listener, no
87
+ * read), 'end' fires once at EOF and always BEFORE the child's 'exit'. A
88
+ * flowing stream keeps the loop alive. A program that also passes
89
+ * other streams (fs, zlib, node:stream) where this interface is
90
+ * expected compiles it as the node:stream Readable, with child output
91
+ * bridged into one. */
88
92
  interface ReadableStream {
89
93
  on(event: "data", listener: (chunk: Buffer) => void): void;
90
94
  on(event: "data", listener: (chunk: string) => void): void;
91
95
  on(event: "end", listener: () => void): void;
96
+ on(event: string, listener: (...args: any[]) => void): void;
92
97
  once(event: "data", listener: (chunk: Buffer) => void): void;
93
98
  once(event: "data", listener: (chunk: string) => void): void;
94
99
  once(event: "end", listener: () => void): void;
100
+ once(event: string, listener: (...args: any[]) => void): void;
95
101
  /* setEncoding('utf8') makes subsequent data chunks strings, including
96
102
  * multibyte sequences split across native pipe reads. */
97
103
  setEncoding(encoding: string): this;
104
+ readonly readable: boolean;
105
+ pause(): this;
106
+ resume(): this;
107
+ isPaused(): boolean;
108
+ pipe<T extends WritableStream>(destination: T, options?: { end?: boolean }): T;
109
+ unpipe(destination?: WritableStream): this;
110
+ [Symbol.asyncIterator](): AsyncIterableIterator<string | Buffer>;
111
+ }
112
+ /* The writable-stream interface every Node stream implements:
113
+ * process.stdout/process.stderr, fs.WriteStream and the node:stream
114
+ * Writable family. Written only to the process streams, it compiles as
115
+ * their descriptor; with other streams flowing into it, as the
116
+ * node:stream Writable (the process streams convert into one). */
117
+ interface WritableStream {
118
+ readonly writable: boolean;
119
+ write(data: string | Uint8Array, callback?: (error?: Error | null) => void): boolean;
120
+ write(
121
+ data: string | Uint8Array,
122
+ encoding: BufferEncoding,
123
+ callback?: (error?: Error | null) => void,
124
+ ): boolean;
125
+ end(callback?: () => void): void;
126
+ end(data: string | Uint8Array, callback?: () => void): void;
127
+ end(data: string | Uint8Array, encoding: BufferEncoding, callback?: () => void): void;
128
+ /* Node's EventEmitter signature: listeners take untyped arguments. */
129
+ on(event: string, listener: (...args: any[]) => void): void;
130
+ once(event: string, listener: (...args: any[]) => void): void;
98
131
  }
99
132
  }
100
133
 
@@ -299,7 +332,7 @@ declare var process: {
299
332
  stdout: import("tty").WriteStream;
300
333
  stderr: import("tty").WriteStream;
301
334
  /* The stdin stream, the piped-input slice: the TTY probe, the
302
- * data/end/error events (on and once — a 'data' listener keeps the
335
+ * data/end/error events and readline's 'keypress' (on and once — a 'data' listener keeps the
303
336
  * event loop alive until EOF, like Node's flowing stdin), destroy()
304
337
  * (full teardown: nothing fires after, the loop stops waiting), and
305
338
  * async iteration (`for await (const chunk of process.stdin)` — chunks
@@ -310,9 +343,18 @@ declare var process: {
310
343
  on(event: "data", listener: (chunk: Uint8Array) => void): void;
311
344
  on(event: "end", listener: () => void): void;
312
345
  on(event: "error", listener: (err: Error) => void): void;
346
+ /* readline.emitKeypressEvents(process.stdin)'s keys */
347
+ on(
348
+ event: "keypress",
349
+ listener: (str: string | undefined, key: import("readline").Key) => void,
350
+ ): void;
313
351
  once(event: "data", listener: (chunk: Uint8Array) => void): void;
314
352
  once(event: "end", listener: () => void): void;
315
353
  once(event: "error", listener: (err: Error) => void): void;
354
+ once(
355
+ event: "keypress",
356
+ listener: (str: string | undefined, key: import("readline").Key) => void,
357
+ ): void;
316
358
  destroy(): void;
317
359
  setEncoding(encoding: "utf8"): void;
318
360
  /* Termios raw mode on a TTY stdin (libuv's UV_TTY_MODE_RAW, the mode
@@ -502,14 +544,119 @@ declare var DOMException: {
502
544
  readonly prototype: DOMException;
503
545
  };
504
546
 
505
- /* Capability-gated globals harness code probes behind feature guards
506
- * (globalThis.crypto under a hasCrypto check, the SQLite-backed storage
507
- * pair): typed `unknown` — no lowering exists, the guard is expected to
508
- * be false in a compiled binary, and any reached use fences per site. */
509
- declare var crypto: unknown;
547
+ /* WebCrypto's HMAC slice (scr_webcrypto.c): crypto.subtle's importKey for
548
+ * raw HMAC keys, HMAC sign/verify and the SHA-1/SHA-2 digests, typed as
549
+ * exactly that surface (the declarations mirror @types/node's webcrypto
550
+ * shapes). Every other SubtleCrypto method and crypto member is absent,
551
+ * so a use is an honest type error. CryptoKey values are native handles
552
+ * whose four members read through the handle. */
553
+ declare var crypto: Crypto;
554
+ /* The Crypto and SubtleCrypto constructors (feature probes only) stay
555
+ * `unknown`; the values keep this declaration order. */
510
556
  declare var Crypto: unknown;
511
- declare var CryptoKey: unknown;
557
+ declare var CryptoKey: {
558
+ prototype: CryptoKey;
559
+ new (): CryptoKey;
560
+ };
512
561
  declare var SubtleCrypto: unknown;
562
+ type KeyUsage =
563
+ | "encrypt"
564
+ | "decrypt"
565
+ | "sign"
566
+ | "verify"
567
+ | "deriveKey"
568
+ | "deriveBits"
569
+ | "encapsulateBits"
570
+ | "decapsulateBits"
571
+ | "encapsulateKey"
572
+ | "decapsulateKey"
573
+ | "wrapKey"
574
+ | "unwrapKey";
575
+ type KeyType = "private" | "public" | "secret";
576
+ interface Algorithm {
577
+ name: string;
578
+ }
579
+ type AlgorithmIdentifier = Algorithm | string;
580
+ type HashAlgorithmIdentifier = AlgorithmIdentifier;
581
+ interface HmacImportParams extends Algorithm {
582
+ hash: HashAlgorithmIdentifier;
583
+ length?: number;
584
+ }
585
+ interface KeyAlgorithm {
586
+ name: string;
587
+ }
588
+ interface HmacKeyAlgorithm extends KeyAlgorithm {
589
+ hash: KeyAlgorithm;
590
+ length: number;
591
+ }
592
+ interface CryptoKey {
593
+ readonly algorithm: KeyAlgorithm;
594
+ readonly extractable: boolean;
595
+ readonly type: KeyType;
596
+ readonly usages: KeyUsage[];
597
+ }
598
+ type KeyFormat =
599
+ | "jwk"
600
+ | "pkcs8"
601
+ | "raw"
602
+ | "raw-private"
603
+ | "raw-public"
604
+ | "raw-secret"
605
+ | "raw-seed"
606
+ | "spki";
607
+ interface JsonWebKey {
608
+ alg?: string;
609
+ crv?: string;
610
+ d?: string;
611
+ dp?: string;
612
+ dq?: string;
613
+ e?: string;
614
+ ext?: boolean;
615
+ k?: string;
616
+ key_ops?: string[];
617
+ kty?: string;
618
+ n?: string;
619
+ p?: string;
620
+ q?: string;
621
+ qi?: string;
622
+ use?: string;
623
+ x?: string;
624
+ y?: string;
625
+ }
626
+ /* The 'jwk' form type-checks like @types/node's; the compiler refuses it
627
+ * (the JsonWebKey import is not implemented). */
628
+ interface SubtleCrypto {
629
+ digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
630
+ importKey(
631
+ format: "jwk",
632
+ keyData: JsonWebKey,
633
+ algorithm: AlgorithmIdentifier | HmacImportParams,
634
+ extractable: boolean,
635
+ keyUsages: readonly KeyUsage[],
636
+ ): Promise<CryptoKey>;
637
+ importKey(
638
+ format: Exclude<KeyFormat, "jwk">,
639
+ keyData: BufferSource,
640
+ algorithm: AlgorithmIdentifier | HmacImportParams,
641
+ extractable: boolean,
642
+ keyUsages: readonly KeyUsage[],
643
+ ): Promise<CryptoKey>;
644
+ sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
645
+ verify(
646
+ algorithm: AlgorithmIdentifier,
647
+ key: CryptoKey,
648
+ signature: BufferSource,
649
+ data: BufferSource,
650
+ ): Promise<boolean>;
651
+ }
652
+ interface Crypto {
653
+ readonly subtle: SubtleCrypto;
654
+ }
655
+
656
+ /* Capability-gated globals harness code probes behind feature guards
657
+ * (the SQLite-backed storage pair): typed `unknown` — no lowering exists,
658
+ * the guard is expected to be false in a compiled binary, and any reached
659
+ * use fences per site. */
513
660
  declare var localStorage: unknown;
514
661
  declare var sessionStorage: unknown;
515
662
 
@@ -699,6 +846,7 @@ interface MessageEvent<T = unknown> extends Event {
699
846
  readonly data: T;
700
847
  readonly origin: string;
701
848
  readonly lastEventId: string;
849
+ readonly source: unknown;
702
850
  readonly ports: readonly MessagePort[];
703
851
  }
704
852
  declare var MessageEvent: {
@@ -1017,7 +1165,7 @@ declare module "node:timers/promises" {
1017
1165
  options?: unknown,
1018
1166
  ): AsyncGenerator<T, void, undefined>;
1019
1167
  export const scheduler: {
1020
- wait(delay?: number): Promise<void>;
1168
+ wait(delay?: number, options?: TimerOptions): Promise<void>;
1021
1169
  yield(): Promise<void>;
1022
1170
  };
1023
1171
  }
@@ -1156,8 +1304,37 @@ declare module "node:perf_hooks" {
1156
1304
  getEntriesByType(type: EntryType): PerformanceEntry[];
1157
1305
  clearMarks(name?: string): void;
1158
1306
  clearMeasures(name?: string): void;
1307
+ eventLoopUtilization(
1308
+ utilization1?: EventLoopUtilization,
1309
+ utilization2?: EventLoopUtilization,
1310
+ ): EventLoopUtilization;
1159
1311
  }
1160
1312
  export const performance: Performance;
1313
+ /* Event-loop metrics: utilization (idle/active ms since the loop started)
1314
+ * and monitorEventLoopDelay's sampling histogram (nanoseconds). */
1315
+ export interface EventLoopUtilization {
1316
+ idle: number;
1317
+ active: number;
1318
+ utilization: number;
1319
+ }
1320
+ export interface EventLoopMonitorOptions {
1321
+ resolution?: number | undefined;
1322
+ }
1323
+ export interface Histogram {
1324
+ readonly count: number;
1325
+ readonly exceeds: number;
1326
+ readonly max: number;
1327
+ readonly mean: number;
1328
+ readonly min: number;
1329
+ readonly stddev: number;
1330
+ percentile(percentile: number): number;
1331
+ reset(): void;
1332
+ }
1333
+ export interface IntervalHistogram extends Histogram {
1334
+ enable(): boolean;
1335
+ disable(): boolean;
1336
+ }
1337
+ export function monitorEventLoopDelay(options?: EventLoopMonitorOptions): IntervalHistogram;
1161
1338
  }
1162
1339
  declare module "perf_hooks" {
1163
1340
  export * from "node:perf_hooks";
@@ -1251,6 +1428,45 @@ declare module "node:fs" {
1251
1428
  path: string | Uint8Array | URL,
1252
1429
  type?: string | null,
1253
1430
  ): void;
1431
+ /* fs.cpSync / fs.cp: copies a file, symlink or (with recursive) a
1432
+ * directory tree. filter decides per path; the callback and promise
1433
+ * forms complete the copy before reporting. */
1434
+ export interface CopySyncOptions {
1435
+ dereference?: boolean;
1436
+ errorOnExist?: boolean;
1437
+ filter?: (source: string, destination: string) => boolean;
1438
+ force?: boolean;
1439
+ mode?: number;
1440
+ preserveTimestamps?: boolean;
1441
+ recursive?: boolean;
1442
+ verbatimSymlinks?: boolean;
1443
+ }
1444
+ export interface CopyOptions {
1445
+ dereference?: boolean;
1446
+ errorOnExist?: boolean;
1447
+ filter?: (source: string, destination: string) => boolean | Promise<boolean>;
1448
+ force?: boolean;
1449
+ mode?: number;
1450
+ preserveTimestamps?: boolean;
1451
+ recursive?: boolean;
1452
+ verbatimSymlinks?: boolean;
1453
+ }
1454
+ export function cpSync(
1455
+ source: string | URL,
1456
+ destination: string | URL,
1457
+ options?: CopySyncOptions,
1458
+ ): void;
1459
+ export function cp(
1460
+ source: string | URL,
1461
+ destination: string | URL,
1462
+ callback: (err: NodeJS.ErrnoException | null) => void,
1463
+ ): void;
1464
+ export function cp(
1465
+ source: string | URL,
1466
+ destination: string | URL,
1467
+ options: CopyOptions,
1468
+ callback: (err: NodeJS.ErrnoException | null) => void,
1469
+ ): void;
1254
1470
  export function symlink(
1255
1471
  target: string | Uint8Array | URL,
1256
1472
  path: string | Uint8Array | URL,
@@ -1441,6 +1657,54 @@ declare module "node:fs" {
1441
1657
  readonly O_NONBLOCK: number;
1442
1658
  readonly O_TRUNC: number;
1443
1659
  readonly O_APPEND: number;
1660
+ readonly COPYFILE_EXCL: number;
1661
+ readonly COPYFILE_FICLONE: number;
1662
+ readonly COPYFILE_FICLONE_FORCE: number;
1663
+ readonly UV_FS_SYMLINK_DIR: number;
1664
+ readonly UV_FS_SYMLINK_JUNCTION: number;
1665
+ readonly UV_DIRENT_UNKNOWN: number;
1666
+ readonly UV_DIRENT_FILE: number;
1667
+ readonly UV_DIRENT_DIR: number;
1668
+ readonly UV_DIRENT_LINK: number;
1669
+ readonly UV_DIRENT_FIFO: number;
1670
+ readonly UV_DIRENT_SOCKET: number;
1671
+ readonly UV_DIRENT_CHAR: number;
1672
+ readonly UV_DIRENT_BLOCK: number;
1673
+ readonly UV_FS_O_FILEMAP: number;
1674
+ readonly UV_FS_O_TEMPORARY: number;
1675
+ readonly UV_FS_O_SHORT_LIVED: number;
1676
+ readonly UV_FS_O_SEQUENTIAL: number;
1677
+ readonly UV_FS_O_RANDOM: number;
1678
+ readonly UV_FS_COPYFILE_EXCL: number;
1679
+ readonly UV_FS_COPYFILE_FICLONE: number;
1680
+ readonly UV_FS_COPYFILE_FICLONE_FORCE: number;
1681
+ readonly S_IFMT: number;
1682
+ readonly S_IFREG: number;
1683
+ readonly S_IFDIR: number;
1684
+ readonly S_IFCHR: number;
1685
+ readonly S_IFBLK: number;
1686
+ readonly S_IFIFO: number;
1687
+ readonly S_IFLNK: number;
1688
+ readonly S_IFSOCK: number;
1689
+ readonly O_NOCTTY: number;
1690
+ readonly O_DIRECTORY: number;
1691
+ readonly O_NOATIME: number;
1692
+ readonly O_SYNC: number;
1693
+ readonly O_DSYNC: number;
1694
+ readonly O_SYMLINK: number;
1695
+ readonly O_DIRECT: number;
1696
+ readonly S_IRWXU: number;
1697
+ readonly S_IRUSR: number;
1698
+ readonly S_IWUSR: number;
1699
+ readonly S_IXUSR: number;
1700
+ readonly S_IRWXG: number;
1701
+ readonly S_IRGRP: number;
1702
+ readonly S_IWGRP: number;
1703
+ readonly S_IXGRP: number;
1704
+ readonly S_IRWXO: number;
1705
+ readonly S_IROTH: number;
1706
+ readonly S_IWOTH: number;
1707
+ readonly S_IXOTH: number;
1444
1708
  };
1445
1709
  /* A stat(2) snapshot (statSync follows symlinks, lstatSync does not —
1446
1710
  * Node's split) — immutable; the supported surface is exactly these
@@ -1474,8 +1738,37 @@ declare module "node:fs" {
1474
1738
  readonly ctime: Date;
1475
1739
  readonly birthtime: Date;
1476
1740
  }
1477
- export function statSync(path: string): Stats;
1478
- export function lstatSync(path: string): Stats;
1741
+ /* throwIfNoEntry: false answers undefined for a missing entry (ENOENT or
1742
+ * ENOTDIR) instead of throwing. BigIntStats (bigint: true) has no
1743
+ * lowering. */
1744
+ export interface StatSyncOptions {
1745
+ bigint?: boolean;
1746
+ throwIfNoEntry?: boolean;
1747
+ }
1748
+ export function statSync(path: string, options?: undefined): Stats;
1749
+ export function statSync(
1750
+ path: string,
1751
+ options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false },
1752
+ ): Stats | undefined;
1753
+ export function statSync(
1754
+ path: string,
1755
+ options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true },
1756
+ ): Stats;
1757
+ /* bigint: true type-checks so the lowering can name it as unsupported. */
1758
+ export function statSync(path: string, options: StatSyncOptions & { bigint: true }): Stats;
1759
+ export function statSync(path: string, options: StatSyncOptions): Stats | undefined;
1760
+ export function lstatSync(path: string, options?: undefined): Stats;
1761
+ export function lstatSync(
1762
+ path: string,
1763
+ options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false },
1764
+ ): Stats | undefined;
1765
+ export function lstatSync(
1766
+ path: string,
1767
+ options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true },
1768
+ ): Stats;
1769
+ /* bigint: true type-checks so the lowering can name it as unsupported. */
1770
+ export function lstatSync(path: string, options: StatSyncOptions & { bigint: true }): Stats;
1771
+ export function lstatSync(path: string, options: StatSyncOptions): Stats | undefined;
1479
1772
  /* The fd pair behind spawn's fd-stdio form: openSync(path, flags) →
1480
1773
  * the raw fd. Numeric flags use an inline OR of the O_* constants. */
1481
1774
  export function openSync(path: string, flags: string): number;
@@ -1647,6 +1940,13 @@ declare module "node:fs" {
1647
1940
  declare module "fs" {
1648
1941
  export * from "node:fs";
1649
1942
  }
1943
+ /* graceful-fs — served as node:fs (it monkeypatches fs and retries on
1944
+ * EMFILE/ENFILE; compiled programs call fs directly, without the retry
1945
+ * queue). gracefulify is a no-op statement. The @types/graceful-fs shape. */
1946
+ declare module "graceful-fs" {
1947
+ export * from "node:fs";
1948
+ export function gracefulify<T>(fsModule: T): T;
1949
+ }
1650
1950
 
1651
1951
  /* fs/promises — the SAME synchronous operations behind already-settled
1652
1952
  * promises: success fulfills, failure REJECTS with the would-be thrown
@@ -1760,6 +2060,11 @@ declare module "fs/promises" {
1760
2060
  path: string | Uint8Array | URL,
1761
2061
  type?: string | null,
1762
2062
  ): Promise<void>;
2063
+ export function cp(
2064
+ source: string | URL,
2065
+ destination: string | URL,
2066
+ options?: import("node:fs").CopyOptions,
2067
+ ): Promise<void>;
1763
2068
  export function readlink(
1764
2069
  path: string | Uint8Array | URL,
1765
2070
  options: "buffer" | { encoding: "buffer" },
@@ -2024,6 +2329,8 @@ declare module "os" {
2024
2329
  export function version(): string;
2025
2330
  export function endianness(): "BE" | "LE";
2026
2331
  export function getPriority(pid?: number): number;
2332
+ export function setPriority(priority: number): void;
2333
+ export function setPriority(pid: number, priority: number): void;
2027
2334
  /* The TARGET platform's null device ("\\\\.\\nul" under a win32 triple). */
2028
2335
  export const devNull: string;
2029
2336
  /* The platform's constants: null-prototype objects with read-only
@@ -2376,6 +2683,7 @@ declare module "node:url" {
2376
2683
 
2377
2684
  /* node:crypto: the static hashing/MAC/random/key-derivation utility slice. */
2378
2685
  declare module "crypto" {
2686
+ import { Transform } from "stream";
2379
2687
  export type KeyObjectType = "secret" | "public" | "private";
2380
2688
  export interface JsonWebKey {
2381
2689
  kty?: string;
@@ -2418,14 +2726,16 @@ declare module "crypto" {
2418
2726
  export interface HashOptions {
2419
2727
  outputLength?: number | undefined;
2420
2728
  }
2421
- export interface Hash {
2729
+ /* Hash and Hmac are Transforms: written chunks update the digest, which
2730
+ * the readable side delivers once the writable side ends. */
2731
+ export interface Hash extends Transform {
2422
2732
  copy(options?: HashOptions): Hash;
2423
2733
  update(data: string | ArrayBufferView): Hash;
2424
2734
  update(data: string, inputEncoding: Encoding): Hash;
2425
2735
  digest(): Buffer;
2426
2736
  digest(encoding: BinaryToTextEncoding): string;
2427
2737
  }
2428
- export interface Hmac {
2738
+ export interface Hmac extends Transform {
2429
2739
  update(data: string | ArrayBufferView): Hmac;
2430
2740
  update(data: string, inputEncoding: Encoding): Hmac;
2431
2741
  digest(): Buffer;
@@ -2466,6 +2776,23 @@ declare module "crypto" {
2466
2776
  a: ArrayBufferView | ArrayBufferLike,
2467
2777
  b: ArrayBufferView | ArrayBufferLike,
2468
2778
  ): boolean;
2779
+ /* WebCrypto's getRandomValues (also the webcrypto object's): integer
2780
+ * typed arrays, filled in place and returned. The crypto GLOBAL stays
2781
+ * unknown in fallback builds. */
2782
+ type RandomValuesArray =
2783
+ | Int8Array
2784
+ | Uint8Array
2785
+ | Uint8ClampedArray
2786
+ | Int16Array
2787
+ | Uint16Array
2788
+ | Int32Array
2789
+ | Uint32Array
2790
+ | BigInt64Array
2791
+ | BigUint64Array;
2792
+ export function getRandomValues<T extends RandomValuesArray>(typedArray: T): T;
2793
+ export const webcrypto: {
2794
+ getRandomValues<T extends RandomValuesArray>(typedArray: T): T;
2795
+ };
2469
2796
  export function randomFillSync<T extends ArrayBufferView | ArrayBufferLike>(
2470
2797
  buffer: T,
2471
2798
  offset?: number,
@@ -2801,8 +3128,10 @@ declare module "child_process" {
2801
3128
  destroy(): void;
2802
3129
  on(event: "drain" | "finish", listener: () => void): void;
2803
3130
  on(event: "error", listener: (err: Error) => void): void;
3131
+ on(event: string, listener: (...args: any[]) => void): void;
2804
3132
  once(event: "drain" | "finish", listener: () => void): void;
2805
3133
  once(event: "error", listener: (err: Error) => void): void;
3134
+ once(event: string, listener: (...args: any[]) => void): void;
2806
3135
  }
2807
3136
 
2808
3137
  export interface ChildProcess extends Disposable {
@@ -2942,10 +3271,10 @@ declare module "child_process" {
2942
3271
  args?: string[] | null,
2943
3272
  options?: ExecSyncOptions,
2944
3273
  ): unknown;
2945
- /* The async shell form — declared surface without full lowering (the
2946
- * type-level tolerance story): harness code on paths tests don't reach
2947
- * must typecheck; a reached call fences at its site. util.promisify
2948
- * recognizes it statically, as it does execFile. */
3274
+ /* The async shell form. The callback forms lower like execFile's, with
3275
+ * the command line run by /bin/sh -c, and util.promisify recognizes it
3276
+ * statically, as it does execFile; reached calls without a callback
3277
+ * fence at their site. */
2949
3278
  export function exec(
2950
3279
  command: string,
2951
3280
  options?: ExecSyncOptions | ((error: Error | null, stdout: string, stderr: string) => void),
@@ -3033,6 +3362,12 @@ declare module "util" {
3033
3362
  export type TextDecoder = globalThis.TextDecoder;
3034
3363
  export var TextEncoder: typeof globalThis.TextEncoder;
3035
3364
  export var TextDecoder: typeof globalThis.TextDecoder;
3365
+ /* stream.pipeline's (...streams: unknown[]) => unknown is assignable to
3366
+ * every other target's parameter type, so its overload comes first; no
3367
+ * other target is assignable to it. */
3368
+ export function promisify(
3369
+ fn: typeof import("node:stream").pipeline,
3370
+ ): typeof import("node:stream/promises").pipeline;
3036
3371
  export function promisify(
3037
3372
  fn: typeof import("node:fs").readFile,
3038
3373
  ): (path: string, encoding: "utf8" | "utf-8") => Promise<string>;
@@ -3051,6 +3386,12 @@ declare module "util" {
3051
3386
  windowsHide?: boolean;
3052
3387
  },
3053
3388
  ) => Promise<{ stdout: string; stderr: string }>;
3389
+ export function promisify(
3390
+ fn: typeof globalThis.setTimeout,
3391
+ ): typeof import("node:timers/promises").setTimeout;
3392
+ export function promisify(
3393
+ fn: typeof globalThis.setImmediate,
3394
+ ): typeof import("node:timers/promises").setImmediate;
3054
3395
  export function promisify(fn: typeof import("node:child_process").exec): (
3055
3396
  command: string,
3056
3397
  options?: {
@@ -3063,6 +3404,84 @@ declare module "util" {
3063
3404
  windowsHide?: boolean;
3064
3405
  },
3065
3406
  ) => Promise<{ stdout: string; stderr: string }>;
3407
+ /* The zlib callback one-shots (deflate, inflate, deflateRaw, inflateRaw,
3408
+ * gzip, gunzip, unzip) share one type. */
3409
+ export function promisify(
3410
+ fn: typeof import("node:zlib").gzip,
3411
+ ): (data: string | Uint8Array, options?: import("node:zlib").ZlibOptions) => Promise<Buffer>;
3412
+ export function promisify(
3413
+ fn: typeof import("node:stream").finished,
3414
+ ): typeof import("node:stream/promises").finished;
3415
+ /* The crypto callback functions: the promise settles with the callback's
3416
+ * value. */
3417
+ export function promisify(
3418
+ fn: typeof import("node:crypto").randomBytes,
3419
+ ): (size: number) => Promise<Buffer>;
3420
+ export function promisify(
3421
+ fn: typeof import("node:crypto").pbkdf2,
3422
+ ): (
3423
+ password: string | Uint8Array,
3424
+ salt: string | Uint8Array,
3425
+ iterations: number,
3426
+ keylen: number,
3427
+ digest: string,
3428
+ ) => Promise<Buffer>;
3429
+ export function promisify(
3430
+ fn: typeof import("node:crypto").scrypt,
3431
+ ): (
3432
+ password: import("node:crypto").BinaryLike,
3433
+ salt: import("node:crypto").BinaryLike,
3434
+ keylen: number,
3435
+ options?: import("node:crypto").ScryptOptions,
3436
+ ) => Promise<Buffer>;
3437
+ export function promisify(
3438
+ fn: typeof import("node:crypto").hkdf,
3439
+ ): (
3440
+ digest: string,
3441
+ ikm: import("node:crypto").BinaryLike | import("node:crypto").KeyObject,
3442
+ salt: import("node:crypto").BinaryLike,
3443
+ info: import("node:crypto").BinaryLike,
3444
+ keylen: number,
3445
+ ) => Promise<ArrayBuffer>;
3446
+ /* A callback-only function (`obj.close.bind(obj)`): before the targets
3447
+ * whose leading parameters would otherwise capture it. Builtins that take
3448
+ * arguments before their callback never match these. */
3449
+ export function promisify<TResult>(
3450
+ fn: (callback: (err: any, result: TResult) => void) => void,
3451
+ ): () => Promise<TResult>;
3452
+ export function promisify(fn: (callback: (err?: any) => void) => void): () => Promise<void>;
3453
+ export function promisify(
3454
+ fn: typeof import("node:crypto").randomFill,
3455
+ ): <T extends ArrayBufferView | ArrayBufferLike>(
3456
+ buffer: T,
3457
+ offset?: number,
3458
+ size?: number,
3459
+ ) => Promise<T>;
3460
+ export function promisify(fn: typeof import("node:crypto").randomInt): {
3461
+ (max: number): Promise<number>;
3462
+ (min: number, max: number): Promise<number>;
3463
+ };
3464
+ export function promisify(
3465
+ fn: typeof import("node:crypto").generateKey,
3466
+ ): (
3467
+ type: "hmac" | "aes",
3468
+ options: { length: number },
3469
+ ) => Promise<import("node:crypto").KeyObject>;
3470
+ /* dns.lookup's promise settles with { address, family } (the address
3471
+ * array with options.all), and lookupService's with { hostname, service }. */
3472
+ export function promisify(fn: typeof import("node:dns").lookup): {
3473
+ (
3474
+ hostname: string,
3475
+ options: import("node:dns").LookupAllOptions,
3476
+ ): Promise<import("node:dns").LookupAddress[]>;
3477
+ (
3478
+ hostname: string,
3479
+ options?: number | import("node:dns").LookupOneOptions,
3480
+ ): Promise<import("node:dns").LookupAddress>;
3481
+ };
3482
+ export function promisify(
3483
+ fn: typeof import("node:dns").lookupService,
3484
+ ): (address: string, port: number) => Promise<{ hostname: string; service: string }>;
3066
3485
  /* Declared surface without full lowering (the type-level tolerance
3067
3486
  * story: guarded/diagnostic-path code must TYPECHECK; a reached use
3068
3487
  * without a lowering fences at its site). inspect's options carry the
@@ -3142,6 +3561,7 @@ declare module "util/types" {
3142
3561
  export function isInt8Array(value: unknown): value is Int8Array;
3143
3562
  export function isInt16Array(value: unknown): value is Int16Array;
3144
3563
  export function isInt32Array(value: unknown): value is Int32Array;
3564
+ export function isFloat16Array(value: unknown): value is Float16Array;
3145
3565
  export function isFloat32Array(value: unknown): value is Float32Array;
3146
3566
  export function isFloat64Array(value: unknown): value is Float64Array;
3147
3567
  export function isMap(value: unknown): value is Map<unknown, unknown>;
@@ -3156,6 +3576,21 @@ declare module "util/types" {
3156
3576
  export function isGeneratorFunction(value: unknown): boolean;
3157
3577
  export function isGeneratorObject(value: unknown): boolean;
3158
3578
  export function isModuleNamespaceObject(value: unknown): boolean;
3579
+ export function isDate(value: unknown): value is Date;
3580
+ export function isSharedArrayBuffer(value: unknown): value is SharedArrayBuffer;
3581
+ export function isMapIterator(value: unknown): boolean;
3582
+ export function isSetIterator(value: unknown): boolean;
3583
+ export function isKeyObject(value: unknown): boolean;
3584
+ export function isNumberObject(value: unknown): boolean;
3585
+ export function isStringObject(value: unknown): boolean;
3586
+ export function isBooleanObject(value: unknown): boolean;
3587
+ export function isBigIntObject(value: unknown): boolean;
3588
+ export function isSymbolObject(value: unknown): boolean;
3589
+ export function isBoxedPrimitive(value: unknown): boolean;
3590
+ export function isBigInt64Array(value: unknown): value is BigInt64Array;
3591
+ export function isBigUint64Array(value: unknown): value is BigUint64Array;
3592
+ export function isCryptoKey(value: unknown): boolean;
3593
+ export function isExternal(value: unknown): boolean;
3159
3594
  }
3160
3595
  declare module "node:util/types" {
3161
3596
  export * from "util/types";
@@ -3185,8 +3620,18 @@ declare module "node:util/types" {
3185
3620
  * suites typecheck but fence at their use sites (no lowering). */
3186
3621
  declare module "node:test" {
3187
3622
  type TestFn = (t: TestContext) => void | Promise<void>;
3188
- type SuiteFn = () => void;
3189
- type HookFn = () => void | Promise<void>;
3623
+ type SuiteFn = (s: SuiteContext) => void;
3624
+ type HookFn = (c: TestContext | SuiteContext) => void | Promise<void>;
3625
+ /* The describe/suite callback's context, and the before/after hook
3626
+ * context of a suite. */
3627
+ interface SuiteContext {
3628
+ readonly name: string;
3629
+ readonly fullName: string;
3630
+ readonly filePath: string | undefined;
3631
+ readonly attempt: number;
3632
+ readonly passed: boolean;
3633
+ diagnostic(message: string): void;
3634
+ }
3190
3635
  interface TestOptions {
3191
3636
  skip?: boolean | string;
3192
3637
  todo?: boolean | string;
@@ -3198,10 +3643,17 @@ declare module "node:test" {
3198
3643
  interface TestContext {
3199
3644
  readonly name: string;
3200
3645
  readonly fullName: string;
3646
+ readonly filePath: string | undefined;
3647
+ readonly attempt: number;
3648
+ readonly passed: boolean;
3649
+ readonly workerId: number | undefined;
3650
+ readonly tags: readonly string[];
3201
3651
  readonly assert: TestContextAssert;
3202
3652
  readonly mock: MockTracker;
3203
- test(name: string, fn?: TestFn): Promise<void>;
3204
- test(name: string, options: TestOptions, fn?: TestFn): Promise<void>;
3653
+ test(name?: string, fn?: TestFn): Promise<void>;
3654
+ test(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;
3655
+ test(options?: TestOptions, fn?: TestFn): Promise<void>;
3656
+ test(fn?: TestFn): Promise<void>;
3205
3657
  skip(message?: string): void;
3206
3658
  todo(message?: string): void;
3207
3659
  diagnostic(message: string): void;
@@ -3211,7 +3663,12 @@ declare module "node:test" {
3211
3663
  beforeEach(fn: HookFn): void;
3212
3664
  afterEach(fn: HookFn): void;
3213
3665
  }
3666
+ interface AssertSnapshotOptions {
3667
+ readonly serializers?: ReadonlyArray<(value: any) => any> | undefined;
3668
+ }
3214
3669
  interface TestContextAssert {
3670
+ snapshot(value: any, options?: AssertSnapshotOptions): void;
3671
+ fileSnapshot(value: any, path: string, options?: AssertSnapshotOptions): void;
3215
3672
  ok(value: unknown, message?: string): void;
3216
3673
  strictEqual(actual: unknown, expected: unknown, message?: string): void;
3217
3674
  notStrictEqual(actual: unknown, expected: unknown, message?: string): void;
@@ -3226,31 +3683,53 @@ declare module "node:test" {
3226
3683
  match(value: string, regExp: RegExp, message?: string): void;
3227
3684
  doesNotMatch(value: string, regExp: RegExp, message?: string): void;
3228
3685
  }
3229
- function test(name: string, fn?: TestFn): Promise<void>;
3230
- function test(name: string, options: TestOptions, fn?: TestFn): Promise<void>;
3686
+ /* The name, options and function are each optional, as in Node: a test
3687
+ * without a name takes the function's name, or "<anonymous>". */
3688
+ function test(name?: string, fn?: TestFn): Promise<void>;
3689
+ function test(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;
3690
+ function test(options?: TestOptions, fn?: TestFn): Promise<void>;
3691
+ function test(fn?: TestFn): Promise<void>;
3231
3692
  namespace test {
3232
- function skip(name: string, fn?: TestFn): Promise<void>;
3233
- function skip(name: string, options: TestOptions, fn?: TestFn): Promise<void>;
3234
- function todo(name: string, fn?: TestFn): Promise<void>;
3235
- function todo(name: string, options: TestOptions, fn?: TestFn): Promise<void>;
3236
- function only(name: string, fn?: TestFn): Promise<void>;
3237
- function only(name: string, options: TestOptions, fn?: TestFn): Promise<void>;
3693
+ function skip(name?: string, fn?: TestFn): Promise<void>;
3694
+ function skip(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;
3695
+ function skip(options?: TestOptions, fn?: TestFn): Promise<void>;
3696
+ function skip(fn?: TestFn): Promise<void>;
3697
+ function todo(name?: string, fn?: TestFn): Promise<void>;
3698
+ function todo(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;
3699
+ function todo(options?: TestOptions, fn?: TestFn): Promise<void>;
3700
+ function todo(fn?: TestFn): Promise<void>;
3701
+ function only(name?: string, fn?: TestFn): Promise<void>;
3702
+ function only(name?: string, options?: TestOptions, fn?: TestFn): Promise<void>;
3703
+ function only(options?: TestOptions, fn?: TestFn): Promise<void>;
3704
+ function only(fn?: TestFn): Promise<void>;
3238
3705
  }
3239
3706
  const it: typeof test;
3240
- function describe(name: string, fn?: SuiteFn): void;
3241
- function describe(name: string, options: TestOptions, fn?: SuiteFn): void;
3707
+ function describe(name?: string, fn?: SuiteFn): void;
3708
+ function describe(name?: string, options?: TestOptions, fn?: SuiteFn): void;
3709
+ function describe(options?: TestOptions, fn?: SuiteFn): void;
3710
+ function describe(fn?: SuiteFn): void;
3242
3711
  namespace describe {
3243
- function skip(name: string, fn?: SuiteFn): void;
3244
- function todo(name: string, fn?: SuiteFn): void;
3245
- function only(name: string, fn?: SuiteFn): void;
3712
+ function skip(name?: string, fn?: SuiteFn): void;
3713
+ function skip(name?: string, options?: TestOptions, fn?: SuiteFn): void;
3714
+ function skip(options?: TestOptions, fn?: SuiteFn): void;
3715
+ function skip(fn?: SuiteFn): void;
3716
+ function todo(name?: string, fn?: SuiteFn): void;
3717
+ function todo(name?: string, options?: TestOptions, fn?: SuiteFn): void;
3718
+ function todo(options?: TestOptions, fn?: SuiteFn): void;
3719
+ function todo(fn?: SuiteFn): void;
3720
+ function only(name?: string, fn?: SuiteFn): void;
3721
+ function only(name?: string, options?: TestOptions, fn?: SuiteFn): void;
3722
+ function only(options?: TestOptions, fn?: SuiteFn): void;
3723
+ function only(fn?: SuiteFn): void;
3246
3724
  }
3247
3725
  const suite: typeof describe;
3248
3726
  function before(fn: HookFn): void;
3249
3727
  function after(fn: HookFn): void;
3250
3728
  function beforeEach(fn: HookFn): void;
3251
3729
  function afterEach(fn: HookFn): void;
3252
- /* The mock function surface: mock.fn and t.mock.fn, with the calls log
3253
- * and the implementation controls on fn.mock. */
3730
+ /* The mock function surface: mock.fn, mock.method and their t.mock
3731
+ * twins, the tracker's restoreAll and reset, and the calls log and the
3732
+ * implementation controls on fn.mock. */
3254
3733
  interface MockFunctionCall<
3255
3734
  F extends Function,
3256
3735
  ReturnType = F extends (...args: any) => infer T ? T : unknown,
@@ -3270,21 +3749,55 @@ declare module "node:test" {
3270
3749
  restore(): void;
3271
3750
  }
3272
3751
  type Mock<F extends Function> = F & { mock: MockFunctionContext<F> };
3752
+ interface MockFunctionOptions {
3753
+ times?: number;
3754
+ }
3755
+ type FunctionPropertyNames<T> = {
3756
+ [K in keyof T]: T[K] extends Function ? K : never;
3757
+ }[keyof T];
3273
3758
  interface MockTracker {
3274
3759
  fn<F extends Function = (...args: any[]) => undefined>(original?: F): Mock<F>;
3275
3760
  fn<F extends Function = (...args: any[]) => undefined, Implementation extends Function = F>(
3276
3761
  original?: F,
3277
3762
  implementation?: Implementation,
3278
3763
  ): Mock<F | Implementation>;
3279
- method<MockedObject extends object>(
3764
+ method<MockedObject extends object, MethodName extends FunctionPropertyNames<MockedObject>>(
3765
+ object: MockedObject,
3766
+ methodName: MethodName,
3767
+ options?: MockFunctionOptions,
3768
+ ): MockedObject[MethodName] extends Function ? Mock<MockedObject[MethodName]> : never;
3769
+ method<
3770
+ MockedObject extends object,
3771
+ MethodName extends FunctionPropertyNames<MockedObject>,
3772
+ Implementation extends Function,
3773
+ >(
3280
3774
  object: MockedObject,
3281
- methodName: keyof MockedObject,
3282
- implementation?: Function,
3283
- ): Mock<Function>;
3775
+ methodName: MethodName,
3776
+ implementation: Implementation,
3777
+ options?: MockFunctionOptions,
3778
+ ): MockedObject[MethodName] extends Function
3779
+ ? Mock<MockedObject[MethodName] | Implementation>
3780
+ : never;
3284
3781
  reset(): void;
3285
3782
  restoreAll(): void;
3783
+ readonly timers: MockTimers;
3784
+ }
3785
+ interface MockTimersOptions {
3786
+ apis: ReadonlyArray<"setInterval" | "setTimeout" | "setImmediate" | "Date">;
3787
+ now?: number | Date | undefined;
3788
+ }
3789
+ interface MockTimers {
3790
+ enable(options?: MockTimersOptions): void;
3791
+ setTime(milliseconds?: number): void;
3792
+ reset(): void;
3793
+ tick(milliseconds?: number): void;
3794
+ runAll(): void;
3795
+ [Symbol.dispose](): void;
3286
3796
  }
3287
3797
  const mock: MockTracker;
3798
+ /* The context of the test, suite or hook running in the current async
3799
+ * context; undefined outside one. */
3800
+ function getTestContext(): TestContext | SuiteContext | undefined;
3288
3801
  /* Declared for typechecking only — every use fences (no lowering).
3289
3802
  * `assert` is the module-level custom-assertion registry (v24's
3290
3803
  * `const { assert } = require('node:test')`), not TestContext.assert. */
@@ -3302,14 +3815,18 @@ declare module "node:test" {
3302
3815
  afterEach,
3303
3816
  mock,
3304
3817
  assert,
3818
+ getTestContext,
3305
3819
  run,
3306
3820
  snapshot,
3307
3821
  TestContext,
3822
+ SuiteContext,
3308
3823
  TestOptions,
3309
3824
  Mock,
3310
3825
  MockFunctionContext,
3311
3826
  MockFunctionCall,
3312
3827
  MockTracker,
3828
+ MockTimers,
3829
+ MockTimersOptions,
3313
3830
  };
3314
3831
  export default test;
3315
3832
  }
@@ -3491,7 +4008,8 @@ declare module "querystring" {
3491
4008
  | string
3492
4009
  | number
3493
4010
  | boolean
3494
- | ReadonlyArray<string | number | boolean>
4011
+ | bigint
4012
+ | ReadonlyArray<string | number | boolean | bigint>
3495
4013
  | null
3496
4014
  | undefined;
3497
4015
  }
@@ -3516,6 +4034,39 @@ declare module "node:querystring" {
3516
4034
  export * from "querystring";
3517
4035
  }
3518
4036
 
4037
+ /* node:punycode (deprecated, DEP0040) — punycode.js 2.1.0: decode and
4038
+ * toUnicode throw its RangeErrors on malformed input; ucs2 converts
4039
+ * between strings and UTF-16 code point arrays. */
4040
+ declare module "punycode" {
4041
+ export function decode(string: string): string;
4042
+ export function encode(string: string): string;
4043
+ export function toUnicode(domain: string): string;
4044
+ export function toASCII(domain: string): string;
4045
+ export namespace ucs2 {
4046
+ function decode(string: string): number[];
4047
+ function encode(codePoints: readonly number[]): string;
4048
+ }
4049
+ export const version: string;
4050
+ }
4051
+ declare module "node:punycode" {
4052
+ export * from "punycode";
4053
+ }
4054
+
4055
+ /* node:constants (deprecated, DEP0008) — one frozen object: os.constants'
4056
+ * dlopen, errno, priority and signals groups, fs.constants, and
4057
+ * crypto.constants. A platform's missing constant reads as undefined. */
4058
+ declare module "constants" {
4059
+ const constants: { readonly [name: string]: number } & {
4060
+ readonly defaultCoreCipherList: string;
4061
+ readonly defaultCipherList: string;
4062
+ };
4063
+ export = constants;
4064
+ }
4065
+ declare module "node:constants" {
4066
+ import constants = require("constants");
4067
+ export = constants;
4068
+ }
4069
+
3519
4070
  /* node:readline — the question/close slice: createInterface over exactly
3520
4071
  * { input: process.stdin, output: process.stdout }, question(query, cb)
3521
4072
  * (the query writes to stdout, the callback gets the next line's text),
@@ -3523,10 +4074,34 @@ declare module "node:querystring" {
3523
4074
  * on("close", cb). An open interface keeps the process alive until
3524
4075
  * close()/EOF, Node's semantics; lines split on \n and \r\n. */
3525
4076
  declare module "readline" {
3526
- /* The non-terminal Interface over process.stdin or a stream input
3527
- * (scr_readline.c). Listener registrations are statements: chaining
3528
- * on()/once() results has no lowering. */
3529
- export interface Interface extends Disposable {
4077
+ /* The Interface over process.stdin or a stream input (scr_readline.c;
4078
+ * terminal mode in scr_readline_tty.c). Listener registrations are
4079
+ * statements: chaining on()/once() results has no lowering. */
4080
+ export interface Key {
4081
+ sequence?: string;
4082
+ name?: string;
4083
+ ctrl?: boolean;
4084
+ meta?: boolean;
4085
+ shift?: boolean;
4086
+ }
4087
+ export class Interface implements Disposable {
4088
+ /* createInterface creates interfaces; instanceof tells the two
4089
+ * modules' classes apart. */
4090
+ protected constructor();
4091
+ /* terminal says whether the interface edits lines as a terminal;
4092
+ * line and cursor are the terminal's (line is '' otherwise). history
4093
+ * is the history option itself (or the interface's own empty array);
4094
+ * a terminal records the lines it reads. */
4095
+ readonly terminal: boolean;
4096
+ readonly line: string;
4097
+ readonly cursor: number;
4098
+ getCursorPos(): CursorPos;
4099
+ history: string[];
4100
+ readonly historySize: number;
4101
+ readonly historyIndex: number;
4102
+ readonly crlfDelay: number;
4103
+ readonly tabSize: number;
4104
+ readonly escapeCodeTimeout: number;
3530
4105
  question(query: string, callback: (answer: string) => void): void;
3531
4106
  close(): void;
3532
4107
  pause(): this;
@@ -3534,16 +4109,28 @@ declare module "readline" {
3534
4109
  prompt(preserveCursor?: boolean): void;
3535
4110
  setPrompt(prompt: string): void;
3536
4111
  getPrompt(): string;
3537
- write(data: string): void;
4112
+ write(data: string | null | undefined, key?: Key): void;
3538
4113
  on(event: "line", listener: (input: string) => void): this;
3539
- on(event: "close" | "pause" | "resume", listener: () => void): this;
4114
+ on(
4115
+ event: "close" | "pause" | "resume" | "SIGINT" | "SIGTSTP" | "SIGCONT",
4116
+ listener: () => void,
4117
+ ): this;
3540
4118
  on(event: "error", listener: (err: Error) => void): this;
4119
+ on(event: "history", listener: (history: string[]) => void): this;
3541
4120
  once(event: "line", listener: (input: string) => void): this;
3542
- once(event: "close" | "pause" | "resume", listener: () => void): this;
4121
+ once(
4122
+ event: "close" | "pause" | "resume" | "SIGINT" | "SIGTSTP" | "SIGCONT",
4123
+ listener: () => void,
4124
+ ): this;
3543
4125
  once(event: "error", listener: (err: Error) => void): this;
4126
+ once(event: "history", listener: (history: string[]) => void): this;
3544
4127
  addListener(event: "line", listener: (input: string) => void): this;
3545
- addListener(event: "close" | "pause" | "resume", listener: () => void): this;
4128
+ addListener(
4129
+ event: "close" | "pause" | "resume" | "SIGINT" | "SIGTSTP" | "SIGCONT",
4130
+ listener: () => void,
4131
+ ): this;
3546
4132
  addListener(event: "error", listener: (err: Error) => void): this;
4133
+ addListener(event: "history", listener: (history: string[]) => void): this;
3547
4134
  [Symbol.asyncIterator](): AsyncIterableIterator<string>;
3548
4135
  [Symbol.dispose](): void;
3549
4136
  }
@@ -3553,26 +4140,86 @@ declare module "readline" {
3553
4140
  terminal?: boolean;
3554
4141
  /* Node's crlfDelay: a \n arriving within this many ms (at least 100)
3555
4142
  * after a line ended by \r is dropped. completer and the history
3556
- * knobs fence by name (no interactive terminal). The options-record
4143
+ * options are validated and kept; a terminal interface uses them.
4144
+ * The options-record
3557
4145
  * stance (see http.RequestOptions) admits every key; the walk
3558
4146
  * decides. */
3559
4147
  crlfDelay?: number;
3560
4148
  completer?: unknown;
3561
4149
  signal?: AbortSignal;
4150
+ history?: string[];
4151
+ historySize?: number;
4152
+ removeHistoryDuplicates?: boolean;
4153
+ tabSize?: number;
4154
+ escapeCodeTimeout?: number;
3562
4155
  [option: string]: unknown;
3563
4156
  }
3564
4157
  export function createInterface(options: ReadLineOptions): Interface;
3565
- export function createInterface(input: unknown, output?: unknown): Interface;
4158
+ export function createInterface(
4159
+ input: unknown,
4160
+ output?: unknown,
4161
+ completer?: unknown,
4162
+ terminal?: boolean,
4163
+ ): Interface;
4164
+ export interface CursorPos {
4165
+ rows: number;
4166
+ cols: number;
4167
+ }
4168
+ /* The escape-sequence helpers over process.stdout, process.stderr, a
4169
+ * writable stream, or null/undefined (nothing is written). */
4170
+ export function cursorTo(stream: unknown, x: number, y?: number, callback?: () => void): boolean;
4171
+ export function cursorTo(stream: unknown, x: number, callback: () => void): boolean;
4172
+ export function moveCursor(
4173
+ stream: unknown,
4174
+ dx: number,
4175
+ dy: number,
4176
+ callback?: () => void,
4177
+ ): boolean;
4178
+ export function clearLine(stream: unknown, dir: -1 | 0 | 1, callback?: () => void): boolean;
4179
+ export function clearScreenDown(stream: unknown, callback?: () => void): boolean;
4180
+ /* 'keypress' events (str, key) on process.stdin or a readable stream */
4181
+ export function emitKeypressEvents(stream: unknown, readlineInterface?: unknown): void;
4182
+ /* the same object as node:readline/promises */
4183
+ export const promises: typeof import("node:readline/promises");
3566
4184
  }
3567
4185
  declare module "node:readline" {
3568
4186
  export * from "readline";
3569
4187
  }
3570
4188
  declare module "readline/promises" {
3571
- import { ReadLineOptions } from "readline";
4189
+ import { CursorPos, Key, ReadLineOptions } from "readline";
4190
+ /* The escape-sequence builder over process.stdout, process.stderr or a
4191
+ * writable stream: actions queue until commit(), or are written on the
4192
+ * next tick with autoCommit. */
4193
+ export class Readline {
4194
+ constructor(stream: unknown, options?: { autoCommit?: boolean });
4195
+ clearLine(dir: -1 | 0 | 1): this;
4196
+ clearScreenDown(): this;
4197
+ commit(): Promise<void>;
4198
+ cursorTo(x: number, y?: number): this;
4199
+ moveCursor(dx: number, dy: number): this;
4200
+ rollback(): this;
4201
+ }
3572
4202
  /* The readline Interface with the promise question: it resolves with
3573
4203
  * the next line, rejects with an AbortError when options.signal aborts,
3574
4204
  * and with ERR_USE_AFTER_CLOSE after close(). */
3575
- export interface Interface extends Disposable {
4205
+ export class Interface implements Disposable {
4206
+ /* createInterface creates interfaces; instanceof tells the two
4207
+ * modules' classes apart. */
4208
+ protected constructor();
4209
+ /* terminal says whether the interface edits lines as a terminal;
4210
+ * line and cursor are the terminal's (line is '' otherwise). history
4211
+ * is the history option itself (or the interface's own empty array);
4212
+ * a terminal records the lines it reads. */
4213
+ readonly terminal: boolean;
4214
+ readonly line: string;
4215
+ readonly cursor: number;
4216
+ getCursorPos(): CursorPos;
4217
+ history: string[];
4218
+ readonly historySize: number;
4219
+ readonly historyIndex: number;
4220
+ readonly crlfDelay: number;
4221
+ readonly tabSize: number;
4222
+ readonly escapeCodeTimeout: number;
3576
4223
  question(query: string, options?: { signal?: AbortSignal }): Promise<string>;
3577
4224
  close(): void;
3578
4225
  pause(): this;
@@ -3580,21 +4227,38 @@ declare module "readline/promises" {
3580
4227
  prompt(preserveCursor?: boolean): void;
3581
4228
  setPrompt(prompt: string): void;
3582
4229
  getPrompt(): string;
3583
- write(data: string): void;
4230
+ write(data: string | null | undefined, key?: Key): void;
3584
4231
  on(event: "line", listener: (input: string) => void): this;
3585
- on(event: "close" | "pause" | "resume", listener: () => void): this;
4232
+ on(
4233
+ event: "close" | "pause" | "resume" | "SIGINT" | "SIGTSTP" | "SIGCONT",
4234
+ listener: () => void,
4235
+ ): this;
3586
4236
  on(event: "error", listener: (err: Error) => void): this;
4237
+ on(event: "history", listener: (history: string[]) => void): this;
3587
4238
  once(event: "line", listener: (input: string) => void): this;
3588
- once(event: "close" | "pause" | "resume", listener: () => void): this;
4239
+ once(
4240
+ event: "close" | "pause" | "resume" | "SIGINT" | "SIGTSTP" | "SIGCONT",
4241
+ listener: () => void,
4242
+ ): this;
3589
4243
  once(event: "error", listener: (err: Error) => void): this;
4244
+ once(event: "history", listener: (history: string[]) => void): this;
3590
4245
  addListener(event: "line", listener: (input: string) => void): this;
3591
- addListener(event: "close" | "pause" | "resume", listener: () => void): this;
4246
+ addListener(
4247
+ event: "close" | "pause" | "resume" | "SIGINT" | "SIGTSTP" | "SIGCONT",
4248
+ listener: () => void,
4249
+ ): this;
3592
4250
  addListener(event: "error", listener: (err: Error) => void): this;
4251
+ addListener(event: "history", listener: (history: string[]) => void): this;
3593
4252
  [Symbol.asyncIterator](): AsyncIterableIterator<string>;
3594
4253
  [Symbol.dispose](): void;
3595
4254
  }
3596
4255
  export function createInterface(options: ReadLineOptions): Interface;
3597
- export function createInterface(input: unknown, output?: unknown): Interface;
4256
+ export function createInterface(
4257
+ input: unknown,
4258
+ output?: unknown,
4259
+ completer?: unknown,
4260
+ terminal?: boolean,
4261
+ ): Interface;
3598
4262
  }
3599
4263
  declare module "node:readline/promises" {
3600
4264
  export * from "readline/promises";
@@ -4094,6 +4758,11 @@ declare module "net" {
4094
4758
  on(event: "close", listener: (hadError: boolean) => void): void;
4095
4759
  on(event: "error", listener: (err: Error) => void): void;
4096
4760
  on(event: "session", listener: (session: Buffer) => void): void;
4761
+ /* The host name's resolution, before the connect. */
4762
+ on(
4763
+ event: "lookup",
4764
+ listener: (err: Error | null, address: string, family: number, host: string) => void,
4765
+ ): void;
4097
4766
  /* addListener IS on (Node aliases them) — the suite spells both. */
4098
4767
  addListener(event: "data", listener: (chunk: Buffer) => void): void;
4099
4768
  /* After setEncoding the chunk is a string. */
@@ -4105,6 +4774,11 @@ declare module "net" {
4105
4774
  addListener(event: "close", listener: (hadError: boolean) => void): void;
4106
4775
  addListener(event: "error", listener: (err: Error) => void): void;
4107
4776
  addListener(event: "session", listener: (session: Buffer) => void): void;
4777
+ /* The host name's resolution, before the connect. */
4778
+ addListener(
4779
+ event: "lookup",
4780
+ listener: (err: Error | null, address: string, family: number, host: string) => void,
4781
+ ): void;
4108
4782
  once(event: "data", listener: (chunk: Buffer) => void): void;
4109
4783
  /* After setEncoding the chunk is a string. */
4110
4784
  once(event: "data", listener: (chunk: string) => void): void;
@@ -4115,6 +4789,11 @@ declare module "net" {
4115
4789
  once(event: "close", listener: (hadError: boolean) => void): void;
4116
4790
  once(event: "error", listener: (err: Error) => void): void;
4117
4791
  once(event: "session", listener: (session: Buffer) => void): void;
4792
+ /* The host name's resolution, before the connect. */
4793
+ once(
4794
+ event: "lookup",
4795
+ listener: (err: Error | null, address: string, family: number, host: string) => void,
4796
+ ): void;
4118
4797
  }
4119
4798
  export interface Server {
4120
4799
  /* Whether the server keeps the event loop alive (ref'd by default). */
@@ -4133,6 +4812,8 @@ declare module "net" {
4133
4812
  /* The positional bind address (the options form's host in argument
4134
4813
  * spelling). */
4135
4814
  listen(port: number, host: string, callback?: () => void): Server;
4815
+ /* A Unix-socket server; the socket file is removed when it closes. */
4816
+ listen(path: string, callback?: () => void): Server;
4136
4817
  /* The explicit-interface bind: host is an IP literal (absent = the
4137
4818
  * host-less dual-stack any); ipv6Only sets IPV6_V6ONLY and reusePort
4138
4819
  * requests kernel connection distribution where Node supports it. */
@@ -4161,7 +4842,7 @@ declare module "net" {
4161
4842
  /* http.createServer(handler)'s event twin (a no-parser net server
4162
4843
  * never fires it, like Node). */
4163
4844
  on(
4164
- event: "request",
4845
+ event: "request" | "checkContinue" | "checkExpectation",
4165
4846
  listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void,
4166
4847
  ): void;
4167
4848
  /* addListener IS on (Node aliases them) — the suite spells both. */
@@ -4175,7 +4856,7 @@ declare module "net" {
4175
4856
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
4176
4857
  ): void;
4177
4858
  addListener(
4178
- event: "request",
4859
+ event: "request" | "checkContinue" | "checkExpectation",
4179
4860
  listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void,
4180
4861
  ): void;
4181
4862
  once(event: "connection" | "secureConnection", listener: (socket: Socket) => void): void;
@@ -4188,7 +4869,7 @@ declare module "net" {
4188
4869
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
4189
4870
  ): void;
4190
4871
  once(
4191
- event: "request",
4872
+ event: "request" | "checkContinue" | "checkExpectation",
4192
4873
  listener: (req: import("http").IncomingMessage, res: import("http").ServerResponse) => void,
4193
4874
  ): void;
4194
4875
  }
@@ -4202,6 +4883,48 @@ declare module "net" {
4202
4883
  remoteFamily?: string;
4203
4884
  }
4204
4885
  export type AddressInfo = import("node:dgram").AddressInfo;
4886
+ export type IPVersion = "ipv4" | "ipv6";
4887
+ export interface SocketAddressInitOptions {
4888
+ address?: string;
4889
+ family?: IPVersion;
4890
+ flowlabel?: number;
4891
+ port?: number;
4892
+ }
4893
+ /* A native handle (scr_net.c); the getters read its parsed address. */
4894
+ export class SocketAddress {
4895
+ constructor(options?: SocketAddressInitOptions);
4896
+ readonly address: string;
4897
+ readonly family: IPVersion;
4898
+ readonly port: number;
4899
+ readonly flowlabel: number;
4900
+ toJSON(): { address: string; port: number; family: IPVersion; flowlabel: number };
4901
+ /* undefined when the input is not "<ip>[:<port>]" */
4902
+ static parse(input: string): SocketAddress | undefined;
4903
+ static isSocketAddress(value: unknown): value is SocketAddress;
4904
+ }
4905
+ /* Address, range and subnet rules; check() matches IPv4 addresses
4906
+ * against IPv6 rules through their IPv4-mapped form, as Node does. */
4907
+ export class BlockList {
4908
+ constructor();
4909
+ readonly rules: readonly string[];
4910
+ readonly size: number;
4911
+ addAddress(address: string | SocketAddress, type?: IPVersion): void;
4912
+ addAddresses(addresses: readonly (string | SocketAddress)[], type?: IPVersion): void;
4913
+ addRange(start: string | SocketAddress, end: string | SocketAddress, type?: IPVersion): void;
4914
+ addSubnet(net: string | SocketAddress, prefix: number, type?: IPVersion): void;
4915
+ addCIDR(cidr: string): void;
4916
+ addCIDRs(cidrs: readonly string[]): void;
4917
+ removeAddress(address: string | SocketAddress, type?: IPVersion): void;
4918
+ removeRange(start: string | SocketAddress, end: string | SocketAddress, type?: IPVersion): void;
4919
+ removeSubnet(net: string | SocketAddress, prefix: number, type?: IPVersion): void;
4920
+ removeCIDR(cidr: string): void;
4921
+ clear(): void;
4922
+ check(address: string | SocketAddress, type?: IPVersion): boolean;
4923
+ toJSON(): string[];
4924
+ fromJSON(data: string | readonly string[]): void;
4925
+ static isBlockList(value: unknown): value is BlockList;
4926
+ static readonly PRIVATE_RANGES: readonly string[];
4927
+ }
4205
4928
  /* Node's IPv4Reg and IPv6Reg tests: 4, 6, or 0 for isIP. */
4206
4929
  export function isIP(input: string): number;
4207
4930
  export function isIPv4(input: string): boolean;
@@ -4309,6 +5032,7 @@ declare module "http" {
4309
5032
  requireHostHeader?: boolean;
4310
5033
  joinDuplicateHeaders?: boolean;
4311
5034
  keepAliveTimeoutBuffer?: number;
5035
+ maxHeaderSize?: number;
4312
5036
  [option: string]: unknown;
4313
5037
  }
4314
5038
  /* The outgoing-header shape, @types/node's matrix: numbers format via
@@ -4413,10 +5137,11 @@ declare module "http" {
4413
5137
  * callback receives the response as an IncomingMessage (statusCode,
4414
5138
  * headers, body via on("data"/"end")). */
4415
5139
  export interface RequestOptions {
4416
- hostname?: string;
4417
- host?: string;
4418
- port?: number;
4419
- path?: string;
5140
+ hostname?: string | null;
5141
+ host?: string | null;
5142
+ /* A string port (a URL's .port) is accepted, as by Node. */
5143
+ port?: number | string | null;
5144
+ path?: string | null;
4420
5145
  method?: string;
4421
5146
  timeout?: number;
4422
5147
  headers?: OutgoingHttpHeaders;
@@ -4428,6 +5153,10 @@ declare module "http" {
4428
5153
  * Agent VALUE threads through (getName-keyed maxSockets accounting
4429
5154
  * over one-dial-per-request connections). */
4430
5155
  agent?: Agent | boolean | null;
5156
+ /* Aborting destroys the request with an AbortError. */
5157
+ signal?: AbortSignal;
5158
+ /* HTTP over the Unix socket at this path instead of host:port. */
5159
+ socketPath?: string;
4431
5160
  /* The options-record stance: Node ignores an options record's
4432
5161
  * unknown keys, so every key typechecks here — the option WALK in
4433
5162
  * the lowering decides per key (lower, fence by name, or drop
@@ -4437,17 +5166,16 @@ declare module "http" {
4437
5166
  /* The Agent lowers to a checked-dynamic HANDLE: option parsing at the
4438
5167
  * literal construction site, getName, destroy, the sockets/requests/
4439
5168
  * freeSockets snapshots, and REAL maxSockets accounting (over-limit
4440
- * requests defer their dial and queue). keepAlive: true throws the
4441
- * named pooling fence — this client dials one connection per request
4442
- * and closes it with the response, so freeSockets is always
4443
- * empty. */
5169
+ * requests defer their dial and queue). keepAlive: true keeps finished
5170
+ * connections in freeSockets for the next request to the same name,
5171
+ * taken in `scheduling` order. */
4444
5172
  export interface AgentOptions {
4445
5173
  keepAlive?: boolean;
4446
5174
  keepAliveMsecs?: number;
4447
5175
  maxSockets?: number;
4448
5176
  maxFreeSockets?: number;
4449
5177
  maxTotalSockets?: number;
4450
- scheduling?: string;
5178
+ scheduling?: "fifo" | "lifo";
4451
5179
  timeout?: number;
4452
5180
  port?: number;
4453
5181
  [option: string]: unknown;
@@ -4477,6 +5205,7 @@ declare module "http" {
4477
5205
  readonly freeSockets: { [key: string]: unknown[] };
4478
5206
  readonly requests: { [key: string]: unknown[] };
4479
5207
  }
5208
+ /* Node's keepAlive global agent for requests without an agent option. */
4480
5209
  export const globalAgent: Agent;
4481
5210
  export interface ClientRequest {
4482
5211
  readonly destroyed: boolean;
@@ -4509,7 +5238,7 @@ declare module "http" {
4509
5238
  setTimeout(timeout: number, callback?: () => void): this;
4510
5239
  write(data: string | Uint8Array): void;
4511
5240
  end(data?: string | Uint8Array): void;
4512
- destroy(): void;
5241
+ destroy(error?: Error): void;
4513
5242
  abort(): void;
4514
5243
  on(event: "response", listener: (res: IncomingMessage) => void): void;
4515
5244
  on(event: "socket", listener: (socket: Socket) => void): void;
@@ -4517,7 +5246,7 @@ declare module "http" {
4517
5246
  event: "upgrade",
4518
5247
  listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void,
4519
5248
  ): void;
4520
- on(event: "timeout" | "close" | "finish" | "abort", listener: () => void): void;
5249
+ on(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void;
4521
5250
  on(event: "error", listener: (err: Error) => void): void;
4522
5251
  /* addListener IS on (Node aliases them) — the suite spells both. */
4523
5252
  addListener(event: "response", listener: (res: IncomingMessage) => void): void;
@@ -4534,7 +5263,7 @@ declare module "http" {
4534
5263
  event: "upgrade",
4535
5264
  listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void,
4536
5265
  ): void;
4537
- once(event: "timeout" | "close" | "finish" | "abort", listener: () => void): void;
5266
+ once(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void;
4538
5267
  once(event: "error", listener: (err: Error) => void): void;
4539
5268
  }
4540
5269
  export function createServer(
@@ -4613,6 +5342,8 @@ declare module "tls" {
4613
5342
  getProtocol(): string | null;
4614
5343
  /* OpenSSL's suite name, the IANA name and the suite's version */
4615
5344
  getCipher(): CipherNameAndProtocol;
5345
+ /* whether the handshake resumed a cached session */
5346
+ isSessionReused(): boolean;
4616
5347
  }
4617
5348
  export interface CipherNameAndProtocol {
4618
5349
  name: string;
@@ -4680,6 +5411,8 @@ declare module "https" {
4680
5411
  import { Server } from "http";
4681
5412
  import { Agent, ClientRequest, IncomingMessage, ServerResponse } from "http";
4682
5413
  export { Agent, Server };
5414
+ /* Node's keepAlive global agent for requests without an agent option. */
5415
+ export const globalAgent: Agent;
4683
5416
  export interface ServerOptions {
4684
5417
  cert: string | Uint8Array;
4685
5418
  key: string | Uint8Array;
@@ -4697,6 +5430,9 @@ declare module "https" {
4697
5430
  rejectUnauthorized?: boolean;
4698
5431
  ca?: string | Uint8Array;
4699
5432
  agent?: Agent | boolean | null;
5433
+ /* Aborting destroys the request with an AbortError. */
5434
+ signal?: AbortSignal;
5435
+ socketPath?: string;
4700
5436
  /* The options-record stance (see http.RequestOptions). */
4701
5437
  [option: string]: unknown;
4702
5438
  }
@@ -5514,10 +6250,79 @@ declare module "dns" {
5514
6250
  export function getServers(): string[];
5515
6251
  export function getDefaultResultOrder(): "ipv4first" | "ipv6first" | "verbatim";
5516
6252
  export function setDefaultResultOrder(order: "ipv4first" | "ipv6first" | "verbatim"): void;
6253
+ /* The promise forms (node:dns/promises). */
6254
+ export const promises: typeof import("dns/promises");
5517
6255
  }
5518
6256
  declare module "node:dns" {
5519
6257
  export * from "dns";
5520
6258
  }
6259
+ /* node:dns/promises — lookup and lookupService as promises over the same
6260
+ * resolution as the callback forms: argument errors throw synchronously,
6261
+ * failures reject with the callbacks' errors. */
6262
+ declare module "dns/promises" {
6263
+ import type { LookupAddress, LookupAllOptions, LookupOneOptions, LookupOptions } from "dns";
6264
+ export function lookup(hostname: string, family: number): Promise<LookupAddress>;
6265
+ export function lookup(hostname: string, options: LookupOneOptions): Promise<LookupAddress>;
6266
+ export function lookup(hostname: string, options: LookupAllOptions): Promise<LookupAddress[]>;
6267
+ export function lookup(
6268
+ hostname: string,
6269
+ options: LookupOptions,
6270
+ ): Promise<LookupAddress | LookupAddress[]>;
6271
+ export function lookup(hostname: string): Promise<LookupAddress>;
6272
+ export function lookupService(
6273
+ address: string,
6274
+ port: number,
6275
+ ): Promise<{ hostname: string; service: string }>;
6276
+ export function getServers(): string[];
6277
+ export function getDefaultResultOrder(): "ipv4first" | "ipv6first" | "verbatim";
6278
+ export function setDefaultResultOrder(order: "ipv4first" | "ipv6first" | "verbatim"): void;
6279
+ }
6280
+ declare module "node:dns/promises" {
6281
+ export * from "dns/promises";
6282
+ }
6283
+
6284
+ /* node:v8 — importable for the packages that require it at top level.
6285
+ * getHeapStatistics answers allocator-derived figures in Node's shape
6286
+ * (approximate: the runtime heap's total and used bytes, the machine's
6287
+ * memory as the limit; V8-only figures are 0). The other members observe
6288
+ * V8 itself and fence at their use with the by-design reason; they are
6289
+ * declared so programs that type-check under their own tsc reach that
6290
+ * fence. */
6291
+ declare module "v8" {
6292
+ type DoesZapCodeSpaceFlag = 0 | 1;
6293
+ export interface HeapInfo {
6294
+ total_heap_size: number;
6295
+ total_heap_size_executable: number;
6296
+ total_physical_size: number;
6297
+ total_available_size: number;
6298
+ used_heap_size: number;
6299
+ heap_size_limit: number;
6300
+ malloced_memory: number;
6301
+ peak_malloced_memory: number;
6302
+ does_zap_garbage: DoesZapCodeSpaceFlag;
6303
+ number_of_native_contexts: number;
6304
+ number_of_detached_contexts: number;
6305
+ total_global_handles_size: number;
6306
+ used_global_handles_size: number;
6307
+ external_memory: number;
6308
+ }
6309
+ export function getHeapStatistics(): HeapInfo;
6310
+ export function cachedDataVersionTag(): number;
6311
+ export function getHeapSpaceStatistics(): unknown[];
6312
+ export function getHeapCodeStatistics(): unknown;
6313
+ export function getHeapSnapshot(options?: unknown): unknown;
6314
+ export function writeHeapSnapshot(fileName?: string, options?: unknown): string;
6315
+ export function setFlagsFromString(flags: string): void;
6316
+ export function setHeapSnapshotNearHeapLimit(limit: number): void;
6317
+ export function serialize(value: unknown): Buffer;
6318
+ export function deserialize(buffer: Uint8Array): unknown;
6319
+ export function takeCoverage(): void;
6320
+ export function stopCoverage(): void;
6321
+ export function isStringOneByteRepresentation(content: string): boolean;
6322
+ }
6323
+ declare module "node:v8" {
6324
+ export * from "v8";
6325
+ }
5521
6326
 
5522
6327
  /* node:worker_threads — native workers use statically compiled entry points.
5523
6328
  * Lowering and runtime diagnostics define the supported options and methods. */
@@ -5525,19 +6330,42 @@ declare module "worker_threads" {
5525
6330
  export const isMainThread: boolean;
5526
6331
  export const isInternalThread: boolean;
5527
6332
  export const threadId: number;
6333
+ export interface ResourceLimits {
6334
+ maxYoungGenerationSizeMb?: number;
6335
+ maxOldGenerationSizeMb?: number;
6336
+ codeRangeSizeMb?: number;
6337
+ stackSizeMb?: number;
6338
+ }
6339
+ /* {} in the main thread */
6340
+ export const resourceLimits: ResourceLimits;
6341
+ /* the Worker's name option, trimmed ("WorkerThread" by default); "" in the main thread */
6342
+ export const threadName: string | null;
5528
6343
  export interface WorkerOptions {
5529
6344
  workerData?: unknown;
5530
6345
  transferList?: readonly unknown[];
5531
6346
  argv?: readonly unknown[];
5532
6347
  name?: string;
6348
+ resourceLimits?: ResourceLimits;
6349
+ stdout?: boolean;
6350
+ stderr?: boolean;
6351
+ stdin?: boolean;
5533
6352
  [option: string]: unknown;
5534
6353
  }
5535
6354
  export class Worker {
5536
6355
  constructor(filename: string | URL, options?: WorkerOptions);
5537
6356
  readonly threadId: number;
6357
+ readonly resourceLimits?: ResourceLimits;
6358
+ readonly threadName: string | null;
6359
+ /* with the stdout/stderr options: the worker's writes to those streams */
6360
+ readonly stdout: import("stream").Readable;
6361
+ readonly stderr: import("stream").Readable;
6362
+ /* with the stdin option: what the worker reads from process.stdin */
6363
+ readonly stdin: import("stream").Writable | null;
6364
+ /* terminate(), resolving with undefined once the worker exited */
6365
+ [Symbol.asyncDispose](): Promise<void>;
5538
6366
  on(event: "online", listener: () => void): this;
5539
6367
  on(event: "message", listener: (value: any) => void): this;
5540
- on(event: "error", listener: (error: Error) => void): this;
6368
+ on(event: "error", listener: (error: any) => void): this;
5541
6369
  on(event: "exit", listener: (code: number) => void): this;
5542
6370
  on(event: string, listener: (...args: any[]) => void): this;
5543
6371
  once(event: string, listener: (...args: any[]) => void): this;
@@ -5572,6 +6400,34 @@ declare module "worker_threads" {
5572
6400
  removeAllListeners(event?: string): this;
5573
6401
  listenerCount(event: string, listener?: (...args: any[]) => void): number;
5574
6402
  }
6403
+ /* Two entangled ports; a port moves to another thread through a
6404
+ * postMessage or workerData transferList. */
6405
+ export class MessageChannel {
6406
+ readonly port1: MessagePort;
6407
+ readonly port2: MessagePort;
6408
+ }
6409
+ export function receiveMessageOnPort(port: MessagePort): { message: any } | undefined;
6410
+ /* This thread's environment data; each new Worker starts from a clone. */
6411
+ export function setEnvironmentData(key: any, value?: any): void;
6412
+ export function getEnvironmentData(key: any): any;
6413
+ /* A marked object cannot be listed in a transfer list. */
6414
+ export function markAsUntransferable(object: any): void;
6415
+ /* structuredClone and postMessage throw DataCloneError for a marked
6416
+ * object, error or class instance */
6417
+ export function markAsUncloneable(object: any): void;
6418
+ export function isMarkedAsUntransferable(object: any): boolean;
6419
+ /* Delivers each message to every other open channel with the name, in
6420
+ * any thread, as a 'message' MessageEvent. */
6421
+ export class BroadcastChannel extends EventTarget {
6422
+ constructor(name: string);
6423
+ readonly name: string;
6424
+ onmessage: ((event: MessageEvent) => void) | null;
6425
+ onmessageerror: ((event: MessageEvent) => void) | null;
6426
+ postMessage(message: unknown): void;
6427
+ close(): void;
6428
+ ref(): this;
6429
+ unref(): this;
6430
+ }
5575
6431
  export const parentPort: MessagePort | null;
5576
6432
  export const workerData: any;
5577
6433
  }
@@ -5622,7 +6478,7 @@ declare module "node:cluster" {
5622
6478
  /* node:tty — the fd probe (the same isatty(3) behind process.*.isTTY)
5623
6479
  * and the supported structural view of a process output stream. */
5624
6480
  declare module "tty" {
5625
- export interface WriteStream {
6481
+ export interface WriteStream extends NodeJS.WritableStream {
5626
6482
  write(data: string | Uint8Array, callback?: (error?: Error | null) => void): boolean;
5627
6483
  write(
5628
6484
  data: string | Uint8Array,
@@ -5713,10 +6569,16 @@ declare module "events" {
5713
6569
  export { internal as EventEmitter };
5714
6570
  // The event's arguments, as checked-dynamic values.
5715
6571
  export function once(
5716
- emitter: EventEmitter,
6572
+ emitter: EventEmitter | NodeJS.ReadableStream | NodeJS.WritableStream,
5717
6573
  eventName: string,
5718
6574
  options?: { signal?: AbortSignal },
5719
6575
  ): Promise<unknown[]>;
6576
+ /* The emitter's own listenerCount/getMaxListeners/setMaxListeners/
6577
+ * listeners, over EventEmitter instances. */
6578
+ export function listenerCount(emitter: EventEmitter, eventName: string | symbol): number;
6579
+ export function getMaxListeners(emitter: EventEmitter): number;
6580
+ export function setMaxListeners(n?: number, ...eventTargets: EventEmitter[]): void;
6581
+ export function getEventListeners(emitter: EventEmitter, name: string): Array<() => void>;
5720
6582
  }
5721
6583
  export = EventEmitter;
5722
6584
  }
@@ -5866,8 +6728,8 @@ declare module "stream" {
5866
6728
  resume(): this;
5867
6729
  isPaused(): boolean;
5868
6730
  setEncoding(encoding: string): this;
5869
- pipe<T extends Writable>(destination: T, options?: { end?: boolean }): T;
5870
- unpipe(destination?: Writable): this;
6731
+ pipe<T extends NodeJS.WritableStream>(destination: T, options?: { end?: boolean }): T;
6732
+ unpipe(destination?: NodeJS.WritableStream): this;
5871
6733
  destroy(error?: Error): this;
5872
6734
  readonly readable: boolean;
5873
6735
  readonly readableEnded: boolean;
@@ -6250,6 +7112,22 @@ declare module "node:stream/consumers" {
6250
7112
  import streamConsumers = require("stream/consumers");
6251
7113
  export = streamConsumers;
6252
7114
  }
7115
+ /* node:stream/web — the module exports the web stream globals themselves
7116
+ * (require("stream/web").ReadableStream === globalThis.ReadableStream).
7117
+ * ReadableStream is the implemented class; its reader and controller are
7118
+ * exported as types. */
7119
+ declare module "stream/web" {
7120
+ export const ReadableStream: typeof globalThis.ReadableStream;
7121
+ export type ReadableStream<T = unknown> = globalThis.ReadableStream<T>;
7122
+ export type ReadableStreamDefaultReader<T = unknown> = globalThis.ReadableStreamDefaultReader<T>;
7123
+ export type ReadableStreamDefaultController<T = unknown> =
7124
+ globalThis.ReadableStreamDefaultController<T>;
7125
+ export type UnderlyingSource<T = unknown> = globalThis.UnderlyingSource<T>;
7126
+ export type QueuingStrategy<T = unknown> = globalThis.QueuingStrategy<T>;
7127
+ }
7128
+ declare module "node:stream/web" {
7129
+ export * from "stream/web";
7130
+ }
6253
7131
  interface ErrorConstructor {
6254
7132
  stackTraceLimit: number;
6255
7133
  }