@scriptc/compiler 0.4.7 → 0.4.8

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 (776) hide show
  1. package/ambient/node-fallback/child_process.d.ts +71 -22
  2. package/ambient/node-fallback/crypto.d.ts +15 -7
  3. package/ambient/node-fallback/events.d.ts +23 -5
  4. package/ambient/node-fallback/fs.d.ts +3 -2
  5. package/ambient/node-fallback/http.d.ts +23 -17
  6. package/ambient/node-fallback/https.d.ts +5 -2
  7. package/ambient/node-fallback/net.d.ts +6 -0
  8. package/ambient/node-fallback/os.d.ts +11 -1
  9. package/ambient/node-fallback/path-posix.d.ts +6 -0
  10. package/ambient/node-fallback/path-win32.d.ts +5 -0
  11. package/ambient/node-fallback/path.d.ts +2 -0
  12. package/ambient/node-fallback/zlib.d.ts +31 -2
  13. package/ambient/scriptc-node-fallback.d.ts +37 -7
  14. package/ambient/scriptc.d.ts +7 -2
  15. package/dist/backend/executable-features.js +11 -3
  16. package/dist/backend/executable-features.js.map +1 -1
  17. package/dist/backend/library-pack.d.ts +6 -0
  18. package/dist/backend/library-pack.js +17 -6
  19. package/dist/backend/library-pack.js.map +1 -1
  20. package/dist/backend/library-pack.test.d.ts +1 -0
  21. package/dist/backend/library-pack.test.js +28 -0
  22. package/dist/backend/library-pack.test.js.map +1 -0
  23. package/dist/backend/linker.d.ts +9 -2
  24. package/dist/backend/linker.js +190 -32
  25. package/dist/backend/linker.js.map +1 -1
  26. package/dist/backend/lld.d.ts +8 -4
  27. package/dist/backend/lld.js +19 -13
  28. package/dist/backend/lld.js.map +1 -1
  29. package/dist/backend/lld.test.js +3 -1
  30. package/dist/backend/lld.test.js.map +1 -1
  31. package/dist/backend/llvm/alloc.d.ts +15 -2
  32. package/dist/backend/llvm/alloc.js +172 -36
  33. package/dist/backend/llvm/alloc.js.map +1 -1
  34. package/dist/backend/llvm/alloc.test.js +69 -1
  35. package/dist/backend/llvm/alloc.test.js.map +1 -1
  36. package/dist/backend/llvm/arenas.d.ts +17 -4
  37. package/dist/backend/llvm/arenas.js +105 -10
  38. package/dist/backend/llvm/arenas.js.map +1 -1
  39. package/dist/backend/llvm/arenas.test.js +229 -0
  40. package/dist/backend/llvm/arenas.test.js.map +1 -1
  41. package/dist/backend/llvm/bytes-alias.js +10 -1
  42. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  43. package/dist/backend/llvm/bytes-headers.js +6 -0
  44. package/dist/backend/llvm/bytes-headers.js.map +1 -1
  45. package/dist/backend/llvm/bytes-loop-versions.test.js +25 -0
  46. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  47. package/dist/backend/llvm/call-lifetimes.js +10 -0
  48. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  49. package/dist/backend/llvm/classes.d.ts +16 -9
  50. package/dist/backend/llvm/classes.js +142 -37
  51. package/dist/backend/llvm/classes.js.map +1 -1
  52. package/dist/backend/llvm/classes.test.js +42 -0
  53. package/dist/backend/llvm/classes.test.js.map +1 -1
  54. package/dist/backend/llvm/cpu-dispatch.d.ts +15 -5
  55. package/dist/backend/llvm/cpu-dispatch.js +31 -7
  56. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  57. package/dist/backend/llvm/dyn.d.ts +12 -3
  58. package/dist/backend/llvm/dyn.js +31 -7
  59. package/dist/backend/llvm/dyn.js.map +1 -1
  60. package/dist/backend/llvm/emit-function.js +67 -4
  61. package/dist/backend/llvm/emit-function.js.map +1 -1
  62. package/dist/backend/llvm/emit-module.js +90 -39
  63. package/dist/backend/llvm/emit-module.js.map +1 -1
  64. package/dist/backend/llvm/emit-module.test.d.ts +1 -0
  65. package/dist/backend/llvm/emit-module.test.js +52 -0
  66. package/dist/backend/llvm/emit-module.test.js.map +1 -0
  67. package/dist/backend/llvm/emit-statements.js +99 -15
  68. package/dist/backend/llvm/emit-statements.js.map +1 -1
  69. package/dist/backend/llvm/emitter.d.ts +113 -8
  70. package/dist/backend/llvm/emitter.js +438 -67
  71. package/dist/backend/llvm/emitter.js.map +1 -1
  72. package/dist/backend/llvm/emitter.test.js +31 -3
  73. package/dist/backend/llvm/emitter.test.js.map +1 -1
  74. package/dist/backend/llvm/expr-async.js +19 -1
  75. package/dist/backend/llvm/expr-async.js.map +1 -1
  76. package/dist/backend/llvm/expr-bytes.js +16 -1
  77. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  78. package/dist/backend/llvm/expr-calls.js +18 -2
  79. package/dist/backend/llvm/expr-calls.js.map +1 -1
  80. package/dist/backend/llvm/expr-dynamic.js +31 -10
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  82. package/dist/backend/llvm/expr-primitives.js +31 -3
  83. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  84. package/dist/backend/llvm/expr-records.d.ts +1 -1
  85. package/dist/backend/llvm/expr-records.js +124 -56
  86. package/dist/backend/llvm/expr-records.js.map +1 -1
  87. package/dist/backend/llvm/expr-stream-bridges.js +17 -0
  88. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  89. package/dist/backend/llvm/js-groups.d.ts +21 -0
  90. package/dist/backend/llvm/js-groups.js +277 -0
  91. package/dist/backend/llvm/js-groups.js.map +1 -0
  92. package/dist/backend/llvm/js-ic.d.ts +19 -1
  93. package/dist/backend/llvm/js-ic.js +96 -23
  94. package/dist/backend/llvm/js-ic.js.map +1 -1
  95. package/dist/backend/llvm/lib-dispatch.js +132 -1
  96. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  97. package/dist/backend/llvm/lib-network.js +33 -6
  98. package/dist/backend/llvm/lib-network.js.map +1 -1
  99. package/dist/backend/llvm/lib-process.js +44 -3
  100. package/dist/backend/llvm/lib-process.js.map +1 -1
  101. package/dist/backend/llvm/lib-shared.js +69 -2
  102. package/dist/backend/llvm/lib-shared.js.map +1 -1
  103. package/dist/backend/llvm/local-union-storage.test.js +32 -0
  104. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  105. package/dist/backend/llvm/loop-state.js +7 -2
  106. package/dist/backend/llvm/loop-state.js.map +1 -1
  107. package/dist/backend/llvm/map-entry-fusion.d.ts +8 -0
  108. package/dist/backend/llvm/map-entry-fusion.js +3 -3
  109. package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
  110. package/dist/backend/llvm/map-number-lookup.test.js +6 -6
  111. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  112. package/dist/backend/llvm/nullable-unions.js +7 -6
  113. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  114. package/dist/backend/llvm/nullable-unions.test.js +4 -1
  115. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  116. package/dist/backend/llvm/receivers.js +3 -0
  117. package/dist/backend/llvm/receivers.js.map +1 -1
  118. package/dist/backend/llvm/record-entry-fusion.d.ts +32 -0
  119. package/dist/backend/llvm/record-entry-fusion.js +217 -0
  120. package/dist/backend/llvm/record-entry-fusion.js.map +1 -0
  121. package/dist/backend/llvm/record-results.d.ts +5 -2
  122. package/dist/backend/llvm/record-results.js +13 -12
  123. package/dist/backend/llvm/record-results.js.map +1 -1
  124. package/dist/backend/llvm/record-views.js +12 -6
  125. package/dist/backend/llvm/record-views.js.map +1 -1
  126. package/dist/backend/llvm/reference-effects.js +1 -0
  127. package/dist/backend/llvm/reference-effects.js.map +1 -1
  128. package/dist/backend/llvm/reference-writes.js +3 -0
  129. package/dist/backend/llvm/reference-writes.js.map +1 -1
  130. package/dist/backend/llvm/region-ir.js +1 -0
  131. package/dist/backend/llvm/region-ir.js.map +1 -1
  132. package/dist/backend/llvm/region-sites.d.ts +18 -0
  133. package/dist/backend/llvm/region-sites.js +79 -1
  134. package/dist/backend/llvm/region-sites.js.map +1 -1
  135. package/dist/backend/llvm/runtime-registries.test.js +53 -6
  136. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  137. package/dist/backend/llvm/serialized-ir-emission.test.js +3 -1
  138. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  139. package/dist/backend/llvm/shapes.d.ts +33 -3
  140. package/dist/backend/llvm/shapes.js +183 -13
  141. package/dist/backend/llvm/shapes.js.map +1 -1
  142. package/dist/backend/llvm/stack-objects.d.ts +1 -2
  143. package/dist/backend/llvm/stack-objects.js +8 -5
  144. package/dist/backend/llvm/stack-objects.js.map +1 -1
  145. package/dist/backend/llvm/walkers.d.ts +12 -0
  146. package/dist/backend/llvm/walkers.js +46 -2
  147. package/dist/backend/llvm/walkers.js.map +1 -1
  148. package/dist/backend/may-throw.js +12 -2
  149. package/dist/backend/may-throw.js.map +1 -1
  150. package/dist/backend/may-throw.test.js +13 -0
  151. package/dist/backend/may-throw.test.js.map +1 -1
  152. package/dist/backend/native/contracts.d.ts +48 -8
  153. package/dist/backend/native/executable.js +55 -13
  154. package/dist/backend/native/executable.js.map +1 -1
  155. package/dist/backend/native/helper-identity-record.d.ts +11 -0
  156. package/dist/backend/native/helper-identity-record.js +76 -0
  157. package/dist/backend/native/helper-identity-record.js.map +1 -0
  158. package/dist/backend/native/helper-identity-record.test.d.ts +1 -0
  159. package/dist/backend/native/helper-identity-record.test.js +101 -0
  160. package/dist/backend/native/helper-identity-record.test.js.map +1 -0
  161. package/dist/backend/native/library.js +9 -1
  162. package/dist/backend/native/library.js.map +1 -1
  163. package/dist/backend/native/runtime-inputs.js +4 -1
  164. package/dist/backend/native/runtime-inputs.js.map +1 -1
  165. package/dist/backend/native/vendor.d.ts +1 -1
  166. package/dist/backend/native/vendor.js +1 -1
  167. package/dist/backend/native/vendor.js.map +1 -1
  168. package/dist/backend/native-codegen-core.d.ts +13 -10
  169. package/dist/backend/native-codegen-core.js +26 -13
  170. package/dist/backend/native-codegen-core.js.map +1 -1
  171. package/dist/backend/native-codegen.js +27 -8
  172. package/dist/backend/native-codegen.js.map +1 -1
  173. package/dist/backend/native-codegen.test.js +110 -14
  174. package/dist/backend/native-codegen.test.js.map +1 -1
  175. package/dist/backend/native-link-info-core.d.ts +37 -8
  176. package/dist/backend/native-link-info-core.js.map +1 -1
  177. package/dist/backend/runtime-pack-core.d.ts +17 -2
  178. package/dist/backend/runtime-pack-core.js +18 -3
  179. package/dist/backend/runtime-pack-core.js.map +1 -1
  180. package/dist/backend/runtime-pack-targets.test.js +1 -1
  181. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  182. package/dist/backend/runtime-pack.test.js +211 -2
  183. package/dist/backend/runtime-pack.test.js.map +1 -1
  184. package/dist/backend/tree-classes.d.ts +42 -0
  185. package/dist/backend/tree-classes.js +723 -0
  186. package/dist/backend/tree-classes.js.map +1 -0
  187. package/dist/backend/tree-classes.test.d.ts +1 -0
  188. package/dist/backend/tree-classes.test.js +338 -0
  189. package/dist/backend/tree-classes.test.js.map +1 -0
  190. package/dist/backend/vendor-archives.d.ts +5 -1
  191. package/dist/backend/vendor-archives.js +51 -7
  192. package/dist/backend/vendor-archives.js.map +1 -1
  193. package/dist/backend/vendor-inputs.d.ts +25 -4
  194. package/dist/backend/vendor-inputs.js +68 -4
  195. package/dist/backend/vendor-inputs.js.map +1 -1
  196. package/dist/backend/vendor-inputs.test.js +35 -1
  197. package/dist/backend/vendor-inputs.test.js.map +1 -1
  198. package/dist/backend/warm-cache.js +1 -1
  199. package/dist/backend/warm-cache.js.map +1 -1
  200. package/dist/compat/fetch-profile.js +2 -2
  201. package/dist/coverage/report.js +47 -0
  202. package/dist/coverage/report.js.map +1 -1
  203. package/dist/coverage/surface-manifest.js +1 -1
  204. package/dist/diagnostics/codes.d.ts +8 -0
  205. package/dist/diagnostics/codes.js +8 -0
  206. package/dist/diagnostics/codes.js.map +1 -1
  207. package/dist/diagnostics/diagnostic.d.ts +27 -9
  208. package/dist/diagnostics/diagnostic.js +60 -19
  209. package/dist/diagnostics/diagnostic.js.map +1 -1
  210. package/dist/diagnostics/envelope.d.ts +18 -0
  211. package/dist/diagnostics/envelope.js.map +1 -1
  212. package/dist/executable/executable-cache.d.ts +21 -2
  213. package/dist/executable/executable-cache.js +21 -1
  214. package/dist/executable/executable-cache.js.map +1 -1
  215. package/dist/executable/executable-cache.test.js +123 -1
  216. package/dist/executable/executable-cache.test.js.map +1 -1
  217. package/dist/executable/prepare.js +199 -248
  218. package/dist/executable/prepare.js.map +1 -1
  219. package/dist/frontend/analysis.js +200 -18
  220. package/dist/frontend/analysis.js.map +1 -1
  221. package/dist/frontend/builtin-modules.d.ts +4 -0
  222. package/dist/frontend/builtin-modules.js +10 -0
  223. package/dist/frontend/builtin-modules.js.map +1 -1
  224. package/dist/frontend/early-errors.d.ts +12 -2
  225. package/dist/frontend/early-errors.js +535 -4
  226. package/dist/frontend/early-errors.js.map +1 -1
  227. package/dist/frontend/early-errors.test.js +165 -0
  228. package/dist/frontend/early-errors.test.js.map +1 -1
  229. package/dist/frontend/inferred-js-diagnostics.test.js +65 -0
  230. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  231. package/dist/frontend/jsx-opinion-sites.test.d.ts +1 -0
  232. package/dist/frontend/jsx-opinion-sites.test.js +86 -0
  233. package/dist/frontend/jsx-opinion-sites.test.js.map +1 -0
  234. package/dist/frontend/lib-exports.d.ts +23 -4
  235. package/dist/frontend/lib-exports.js +98 -26
  236. package/dist/frontend/lib-exports.js.map +1 -1
  237. package/dist/frontend/lowering/binding-analysis.js +21 -3
  238. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  239. package/dist/frontend/lowering/buffers.d.ts +8 -0
  240. package/dist/frontend/lowering/buffers.js +43 -0
  241. package/dist/frontend/lowering/buffers.js.map +1 -0
  242. package/dist/frontend/lowering/builtin-calls.js +4 -0
  243. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  244. package/dist/frontend/lowering/builtin-namespaces.d.ts +3 -2
  245. package/dist/frontend/lowering/builtin-namespaces.js +24 -3
  246. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  247. package/dist/frontend/lowering/builtin-statics.d.ts +24 -0
  248. package/dist/frontend/lowering/builtin-statics.js +407 -0
  249. package/dist/frontend/lowering/builtin-statics.js.map +1 -0
  250. package/dist/frontend/lowering/builtins/arguments.d.ts +4 -0
  251. package/dist/frontend/lowering/builtins/arguments.js +12 -0
  252. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  253. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -1
  254. package/dist/frontend/lowering/builtins/atomics.js +87 -1
  255. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  256. package/dist/frontend/lowering/builtins/child-process-methods.js +2 -2
  257. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  258. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +13 -0
  259. package/dist/frontend/lowering/builtins/child-process-sync.js +1 -13
  260. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  261. package/dist/frontend/lowering/builtins/child-process.d.ts +10 -4
  262. package/dist/frontend/lowering/builtins/child-process.js +560 -27
  263. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  264. package/dist/frontend/lowering/builtins/compression.d.ts +2 -2
  265. package/dist/frontend/lowering/builtins/compression.js +41 -21
  266. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  267. package/dist/frontend/lowering/builtins/constants.js +7 -2
  268. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  269. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -0
  270. package/dist/frontend/lowering/builtins/filesystem-calls.js +28 -2
  271. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  272. package/dist/frontend/lowering/builtins/json.js +4 -0
  273. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  274. package/dist/frontend/lowering/builtins/module-calls.js +3 -1
  275. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  276. package/dist/frontend/lowering/builtins/numbers.d.ts +4 -1
  277. package/dist/frontend/lowering/builtins/numbers.js +10 -2
  278. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  279. package/dist/frontend/lowering/builtins/operating-system.d.ts +6 -3
  280. package/dist/frontend/lowering/builtins/operating-system.js +96 -16
  281. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  282. package/dist/frontend/lowering/builtins/process.d.ts +2 -2
  283. package/dist/frontend/lowering/builtins/process.js +103 -8
  284. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  285. package/dist/frontend/lowering/builtins/promises.js +169 -8
  286. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  287. package/dist/frontend/lowering/builtins/properties.js +6 -2
  288. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  289. package/dist/frontend/lowering/builtins/readline.d.ts +6 -4
  290. package/dist/frontend/lowering/builtins/readline.js +180 -36
  291. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  292. package/dist/frontend/lowering/builtins/url.js +35 -12
  293. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  294. package/dist/frontend/lowering/builtins/webassembly.js +2 -0
  295. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  296. package/dist/frontend/lowering/call-arguments.d.ts +10 -0
  297. package/dist/frontend/lowering/call-arguments.js +37 -2
  298. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  299. package/dist/frontend/lowering/call-signatures.d.ts +10 -0
  300. package/dist/frontend/lowering/call-signatures.js +103 -0
  301. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  302. package/dist/frontend/lowering/class-construction.d.ts +14 -2
  303. package/dist/frontend/lowering/class-construction.js +99 -5
  304. package/dist/frontend/lowering/class-construction.js.map +1 -1
  305. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +9 -0
  306. package/dist/frontend/lowering/class-dynamic-dispatch.js +1283 -1030
  307. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  308. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +158 -0
  309. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  310. package/dist/frontend/lowering/class-prototypes.js +20 -15
  311. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  312. package/dist/frontend/lowering/class-runtime-statics.d.ts +8 -0
  313. package/dist/frontend/lowering/class-runtime-statics.js +20 -1
  314. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  315. package/dist/frontend/lowering/class-unions.js +21 -4
  316. package/dist/frontend/lowering/class-unions.js.map +1 -1
  317. package/dist/frontend/lowering/coercions/function-adapters.js +9 -0
  318. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  319. package/dist/frontend/lowering/coercions/state.d.ts +8 -0
  320. package/dist/frontend/lowering/coercions/state.js +17 -0
  321. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  322. package/dist/frontend/lowering/coercions/structural-plans.js +20 -5
  323. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  324. package/dist/frontend/lowering/coercions/structural.js +10 -1
  325. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  326. package/dist/frontend/lowering/coercions/unions.d.ts +2 -1
  327. package/dist/frontend/lowering/coercions/unions.js +54 -10
  328. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  329. package/dist/frontend/lowering/constructor-returns.d.ts +23 -2
  330. package/dist/frontend/lowering/constructor-returns.js +284 -58
  331. package/dist/frontend/lowering/constructor-returns.js.map +1 -1
  332. package/dist/frontend/lowering/containers/array-callbacks.js +156 -62
  333. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  334. package/dist/frontend/lowering/containers/array-construction.js +21 -3
  335. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  336. package/dist/frontend/lowering/containers/array-from-async.js +139 -3
  337. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  338. package/dist/frontend/lowering/containers/array-iteration.d.ts +14 -4
  339. package/dist/frontend/lowering/containers/array-iteration.js +24 -7
  340. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -1
  341. package/dist/frontend/lowering/containers/array-methods.js +14 -11
  342. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  343. package/dist/frontend/lowering/containers/bytes.d.ts +6 -0
  344. package/dist/frontend/lowering/containers/bytes.js +446 -86
  345. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  346. package/dist/frontend/lowering/containers/callback-arguments.d.ts +5 -0
  347. package/dist/frontend/lowering/containers/callback-arguments.js +21 -12
  348. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  349. package/dist/frontend/lowering/containers/collection-grouping.js +421 -2
  350. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  351. package/dist/frontend/lowering/containers/collection-methods.js +52 -17
  352. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  353. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +23 -0
  354. package/dist/frontend/lowering/containers/iterator-helpers.js +176 -10
  355. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  356. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +5 -2
  357. package/dist/frontend/lowering/containers/string-and-regexp.js +45 -11
  358. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  359. package/dist/frontend/lowering/crypto-tables.d.ts +3 -3
  360. package/dist/frontend/lowering/crypto-tables.js +5 -5
  361. package/dist/frontend/lowering/dispatch-sites.js +3 -0
  362. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  363. package/dist/frontend/lowering/divergences.d.ts +40 -0
  364. package/dist/frontend/lowering/divergences.js +239 -20
  365. package/dist/frontend/lowering/divergences.js.map +1 -1
  366. package/dist/frontend/lowering/effect-free.d.ts +12 -0
  367. package/dist/frontend/lowering/effect-free.js +44 -0
  368. package/dist/frontend/lowering/effect-free.js.map +1 -0
  369. package/dist/frontend/lowering/expressions/array-literals.d.ts +10 -0
  370. package/dist/frontend/lowering/expressions/array-literals.js +62 -0
  371. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  372. package/dist/frontend/lowering/expressions/binary.js +115 -5
  373. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  374. package/dist/frontend/lowering/expressions/element-access.js +151 -7
  375. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  376. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +15 -0
  377. package/dist/frontend/lowering/expressions/hosted-narrowing.js +54 -1
  378. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  379. package/dist/frontend/lowering/expressions/identifiers.js +31 -2
  380. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  381. package/dist/frontend/lowering/expressions/narrowing.d.ts +3 -0
  382. package/dist/frontend/lowering/expressions/narrowing.js +175 -22
  383. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  384. package/dist/frontend/lowering/expressions/object-literals.js +173 -11
  385. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  386. package/dist/frontend/lowering/expressions/optional-chains.js +5 -1
  387. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  388. package/dist/frontend/lowering/expressions/property-access.d.ts +8 -0
  389. package/dist/frontend/lowering/expressions/property-access.js +379 -109
  390. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  391. package/dist/frontend/lowering/expressions/relational.js +237 -7
  392. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  393. package/dist/frontend/lowering/expressions/typeof.js +8 -0
  394. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  395. package/dist/frontend/lowering/expressions/union-fields.d.ts +20 -1
  396. package/dist/frontend/lowering/expressions/union-fields.js +103 -13
  397. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  398. package/dist/frontend/lowering/expressions/updates.js +74 -55
  399. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  400. package/dist/frontend/lowering/function-returns.js +37 -10
  401. package/dist/frontend/lowering/function-returns.js.map +1 -1
  402. package/dist/frontend/lowering/general-streams.js +5 -0
  403. package/dist/frontend/lowering/general-streams.js.map +1 -1
  404. package/dist/frontend/lowering/generator-delegation.d.ts +15 -7
  405. package/dist/frontend/lowering/generator-delegation.js +301 -118
  406. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  407. package/dist/frontend/lowering/generic-functions.d.ts +27 -1
  408. package/dist/frontend/lowering/generic-functions.js +432 -18
  409. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  410. package/dist/frontend/lowering/global-function-values.d.ts +25 -0
  411. package/dist/frontend/lowering/global-function-values.js +193 -0
  412. package/dist/frontend/lowering/global-function-values.js.map +1 -0
  413. package/dist/frontend/lowering/global-values.d.ts +6 -4
  414. package/dist/frontend/lowering/global-values.js +24 -10
  415. package/dist/frontend/lowering/global-values.js.map +1 -1
  416. package/dist/frontend/lowering/host-global-values.d.ts +31 -0
  417. package/dist/frontend/lowering/host-global-values.js +121 -0
  418. package/dist/frontend/lowering/host-global-values.js.map +1 -0
  419. package/dist/frontend/lowering/host-globals.d.ts +74 -0
  420. package/dist/frontend/lowering/host-globals.js +344 -0
  421. package/dist/frontend/lowering/host-globals.js.map +1 -0
  422. package/dist/frontend/lowering/http2-constants.js +1 -1
  423. package/dist/frontend/lowering/iterator-adapters.js +46 -17
  424. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  425. package/dist/frontend/lowering/iterator-prototype.d.ts +30 -0
  426. package/dist/frontend/lowering/iterator-prototype.js +160 -0
  427. package/dist/frontend/lowering/iterator-prototype.js.map +1 -0
  428. package/dist/frontend/lowering/key-order-witness.js +43 -22
  429. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  430. package/dist/frontend/lowering/key-order-witness.test.js +1 -0
  431. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  432. package/dist/frontend/lowering/lib-boundary.js +11 -3
  433. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  434. package/dist/frontend/lowering/lower-assert.js +30 -15
  435. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  436. package/dist/frontend/lowering/lower-async-iteration.d.ts +11 -0
  437. package/dist/frontend/lowering/lower-async-iteration.js +15 -0
  438. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  439. package/dist/frontend/lowering/lower-builtin-values.js +11 -1
  440. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  441. package/dist/frontend/lowering/lower-calls.d.ts +25 -0
  442. package/dist/frontend/lowering/lower-calls.js +929 -227
  443. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  444. package/dist/frontend/lowering/lower-calls.test.js +59 -16
  445. package/dist/frontend/lowering/lower-calls.test.js.map +1 -1
  446. package/dist/frontend/lowering/lower-classes.d.ts +20 -0
  447. package/dist/frontend/lowering/lower-classes.js +468 -44
  448. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  449. package/dist/frontend/lowering/lower-event-emitter.d.ts +6 -2
  450. package/dist/frontend/lowering/lower-event-emitter.js +253 -83
  451. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  452. package/dist/frontend/lowering/lower-exprs.d.ts +1 -1
  453. package/dist/frontend/lowering/lower-exprs.js +71 -20
  454. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  455. package/dist/frontend/lowering/lower-functions.js +25 -6
  456. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  457. package/dist/frontend/lowering/lower-generators.js +57 -10
  458. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  459. package/dist/frontend/lowering/lower-global-value.d.ts +6 -0
  460. package/dist/frontend/lowering/lower-global-value.js +14 -5
  461. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  462. package/dist/frontend/lowering/lower-inspect.d.ts +4 -0
  463. package/dist/frontend/lowering/lower-inspect.js +638 -64
  464. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  465. package/dist/frontend/lowering/lower-modules.js +48 -2
  466. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  467. package/dist/frontend/lowering/lower-namespaces.js +18 -0
  468. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  469. package/dist/frontend/lowering/lower-node-island.js +16 -6
  470. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  471. package/dist/frontend/lowering/lower-server.js +303 -87
  472. package/dist/frontend/lowering/lower-server.js.map +1 -1
  473. package/dist/frontend/lowering/lower-stdlib.js +45 -0
  474. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  475. package/dist/frontend/lowering/lower-stmts.d.ts +14 -11
  476. package/dist/frontend/lowering/lower-stmts.js +270 -52
  477. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  478. package/dist/frontend/lowering/lower-timers.js +110 -27
  479. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  480. package/dist/frontend/lowering/lower-url.js +6 -3
  481. package/dist/frontend/lowering/lower-url.js.map +1 -1
  482. package/dist/frontend/lowering/lowerer.d.ts +227 -21
  483. package/dist/frontend/lowering/lowerer.js +651 -92
  484. package/dist/frontend/lowering/lowerer.js.map +1 -1
  485. package/dist/frontend/lowering/lowerer.test.js +18 -0
  486. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  487. package/dist/frontend/lowering/lowering-facts.d.ts +110 -0
  488. package/dist/frontend/lowering/lowering-facts.js +323 -0
  489. package/dist/frontend/lowering/lowering-facts.js.map +1 -0
  490. package/dist/frontend/lowering/lowering-facts.test.d.ts +1 -0
  491. package/dist/frontend/lowering/lowering-facts.test.js +100 -0
  492. package/dist/frontend/lowering/lowering-facts.test.js.map +1 -0
  493. package/dist/frontend/lowering/nan-coded-reads.d.ts +27 -4
  494. package/dist/frontend/lowering/nan-coded-reads.js +112 -9
  495. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  496. package/dist/frontend/lowering/optional-arguments.d.ts +4 -0
  497. package/dist/frontend/lowering/optional-arguments.js +26 -2
  498. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  499. package/dist/frontend/lowering/partial-assertions.d.ts +0 -3
  500. package/dist/frontend/lowering/partial-assertions.js +9 -15
  501. package/dist/frontend/lowering/partial-assertions.js.map +1 -1
  502. package/dist/frontend/lowering/primitive-throws.d.ts +100 -0
  503. package/dist/frontend/lowering/primitive-throws.js +241 -0
  504. package/dist/frontend/lowering/primitive-throws.js.map +1 -0
  505. package/dist/frontend/lowering/primitive-wrappers.js +1 -0
  506. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
  507. package/dist/frontend/lowering/record-inherited.d.ts +17 -1
  508. package/dist/frontend/lowering/record-inherited.js +16 -2
  509. package/dist/frontend/lowering/record-inherited.js.map +1 -1
  510. package/dist/frontend/lowering/record-links.d.ts +73 -0
  511. package/dist/frontend/lowering/record-links.js +797 -0
  512. package/dist/frontend/lowering/record-links.js.map +1 -0
  513. package/dist/frontend/lowering/runtime-optional-provenance.d.ts +27 -7
  514. package/dist/frontend/lowering/runtime-optional-provenance.js +25 -11
  515. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  516. package/dist/frontend/lowering/runtime-optional-report.d.ts +40 -0
  517. package/dist/frontend/lowering/runtime-optional-report.js +300 -0
  518. package/dist/frontend/lowering/runtime-optional-report.js.map +1 -0
  519. package/dist/frontend/lowering/scoped-type-memo.test.d.ts +1 -0
  520. package/dist/frontend/lowering/scoped-type-memo.test.js +86 -0
  521. package/dist/frontend/lowering/scoped-type-memo.test.js.map +1 -0
  522. package/dist/frontend/lowering/static-typeof.d.ts +3 -1
  523. package/dist/frontend/lowering/static-typeof.js +6 -1
  524. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  525. package/dist/frontend/lowering/strict-mode.d.ts +1 -5
  526. package/dist/frontend/lowering/strict-mode.js +4 -30
  527. package/dist/frontend/lowering/strict-mode.js.map +1 -1
  528. package/dist/frontend/lowering/structural-instances.d.ts +7 -0
  529. package/dist/frontend/lowering/structural-instances.js +23 -0
  530. package/dist/frontend/lowering/structural-instances.js.map +1 -1
  531. package/dist/frontend/lowering/surfaces.d.ts +15 -1
  532. package/dist/frontend/lowering/surfaces.js +78 -10
  533. package/dist/frontend/lowering/surfaces.js.map +1 -1
  534. package/dist/frontend/lowering/union-retag.d.ts +13 -1
  535. package/dist/frontend/lowering/union-retag.js +55 -1
  536. package/dist/frontend/lowering/union-retag.js.map +1 -1
  537. package/dist/frontend/lowering/union-retag.test.js +51 -0
  538. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  539. package/dist/frontend/lowering/unit-journal.d.ts +8 -0
  540. package/dist/frontend/lowering/unit-journal.js +14 -0
  541. package/dist/frontend/lowering/unit-journal.js.map +1 -1
  542. package/dist/frontend/lowering/unit-journal.test.js +36 -1
  543. package/dist/frontend/lowering/unit-journal.test.js.map +1 -1
  544. package/dist/frontend/lowering/zlib-constants.js +3 -2
  545. package/dist/frontend/lowering/zlib-constants.js.map +1 -1
  546. package/dist/frontend/npm-static.js +78 -9
  547. package/dist/frontend/npm-static.js.map +1 -1
  548. package/dist/frontend/npm-static.test.js +95 -2
  549. package/dist/frontend/npm-static.test.js.map +1 -1
  550. package/dist/frontend/pipeline.d.ts +5 -4
  551. package/dist/frontend/pipeline.js +94 -31
  552. package/dist/frontend/pipeline.js.map +1 -1
  553. package/dist/frontend/pipeline.test.js +68 -11
  554. package/dist/frontend/pipeline.test.js.map +1 -1
  555. package/dist/frontend/program.d.ts +62 -2
  556. package/dist/frontend/program.js +695 -422
  557. package/dist/frontend/program.js.map +1 -1
  558. package/dist/frontend/program.test.js +37 -1
  559. package/dist/frontend/program.test.js.map +1 -1
  560. package/dist/frontend/services-node.d.ts +7 -0
  561. package/dist/frontend/services-node.js +32 -1
  562. package/dist/frontend/services-node.js.map +1 -1
  563. package/dist/frontend/services-node.test.js +51 -0
  564. package/dist/frontend/services-node.test.js.map +1 -1
  565. package/dist/frontend/shape-inference/overlay.js +68 -2
  566. package/dist/frontend/shape-inference/overlay.js.map +1 -1
  567. package/dist/frontend/tier-analysis.d.ts +9 -0
  568. package/dist/frontend/tier-analysis.js +1 -0
  569. package/dist/frontend/tier-analysis.js.map +1 -1
  570. package/dist/frontend/tsc-codes.d.ts +57 -3
  571. package/dist/frontend/tsc-codes.js +935 -150
  572. package/dist/frontend/tsc-codes.js.map +1 -1
  573. package/dist/frontend/tsc-codes.test.js +221 -12
  574. package/dist/frontend/tsc-codes.test.js.map +1 -1
  575. package/dist/frontend/type-mapper.d.ts +91 -9
  576. package/dist/frontend/type-mapper.js +622 -181
  577. package/dist/frontend/type-mapper.js.map +1 -1
  578. package/dist/index.d.ts +1 -1
  579. package/dist/index.js +80 -15
  580. package/dist/index.js.map +1 -1
  581. package/dist/index.test.d.ts +1 -0
  582. package/dist/index.test.js +60 -0
  583. package/dist/index.test.js.map +1 -0
  584. package/dist/ir/builtin-effects.js +43 -0
  585. package/dist/ir/builtin-effects.js.map +1 -1
  586. package/dist/ir/builtin-signatures.d.ts +1 -1
  587. package/dist/ir/builtin-signatures.js +242 -16
  588. package/dist/ir/builtin-signatures.js.map +1 -1
  589. package/dist/ir/callback-specialization.d.ts +3 -2
  590. package/dist/ir/callback-specialization.js +35 -25
  591. package/dist/ir/callback-specialization.js.map +1 -1
  592. package/dist/ir/capture-values.d.ts +8 -4
  593. package/dist/ir/capture-values.js +9 -6
  594. package/dist/ir/capture-values.js.map +1 -1
  595. package/dist/ir/char-unit-locals.d.ts +6 -2
  596. package/dist/ir/char-unit-locals.js +11 -2
  597. package/dist/ir/char-unit-locals.js.map +1 -1
  598. package/dist/ir/class-key-index.d.ts +18 -0
  599. package/dist/ir/class-key-index.js +29 -0
  600. package/dist/ir/class-key-index.js.map +1 -0
  601. package/dist/ir/class-key-index.test.d.ts +1 -0
  602. package/dist/ir/class-key-index.test.js +25 -0
  603. package/dist/ir/class-key-index.test.js.map +1 -0
  604. package/dist/ir/codec.generated.d.ts +1 -1
  605. package/dist/ir/codec.generated.js +724 -648
  606. package/dist/ir/codec.generated.js.map +1 -1
  607. package/dist/ir/constant-globals.d.ts +5 -2
  608. package/dist/ir/constant-globals.js +25 -27
  609. package/dist/ir/constant-globals.js.map +1 -1
  610. package/dist/ir/expression-inlining.d.ts +4 -2
  611. package/dist/ir/expression-inlining.js +8 -2
  612. package/dist/ir/expression-inlining.js.map +1 -1
  613. package/dist/ir/field-values.d.ts +5 -2
  614. package/dist/ir/field-values.js +32 -21
  615. package/dist/ir/field-values.js.map +1 -1
  616. package/dist/ir/fields.generated.d.ts +11 -2
  617. package/dist/ir/fields.generated.js +8 -0
  618. package/dist/ir/fields.generated.js.map +1 -1
  619. package/dist/ir/final-fields.js +1 -1
  620. package/dist/ir/final-fields.js.map +1 -1
  621. package/dist/ir/function-references.d.ts +5 -4
  622. package/dist/ir/function-references.js +7 -4
  623. package/dist/ir/function-references.js.map +1 -1
  624. package/dist/ir/function-references.test.js +7 -0
  625. package/dist/ir/function-references.test.js.map +1 -1
  626. package/dist/ir/init-only-globals.d.ts +4 -2
  627. package/dist/ir/init-only-globals.js +17 -18
  628. package/dist/ir/init-only-globals.js.map +1 -1
  629. package/dist/ir/inline-array-views.js +1 -0
  630. package/dist/ir/inline-array-views.js.map +1 -1
  631. package/dist/ir/int32-slots.js +7 -0
  632. package/dist/ir/int32-slots.js.map +1 -1
  633. package/dist/ir/ir.d.ts +59 -4
  634. package/dist/ir/ir.js +7 -0
  635. package/dist/ir/ir.js.map +1 -1
  636. package/dist/ir/js-groups.d.ts +51 -0
  637. package/dist/ir/js-groups.js +394 -0
  638. package/dist/ir/js-groups.js.map +1 -0
  639. package/dist/ir/js-groups.test.d.ts +1 -0
  640. package/dist/ir/js-groups.test.js +555 -0
  641. package/dist/ir/js-groups.test.js.map +1 -0
  642. package/dist/ir/js-ic.js +30 -5
  643. package/dist/ir/js-ic.js.map +1 -1
  644. package/dist/ir/js-ic.test.js +27 -1
  645. package/dist/ir/js-ic.test.js.map +1 -1
  646. package/dist/ir/node-index.d.ts +23 -6
  647. package/dist/ir/node-index.js +126 -49
  648. package/dist/ir/node-index.js.map +1 -1
  649. package/dist/ir/numeric-call-specialization.d.ts +4 -2
  650. package/dist/ir/numeric-call-specialization.js +40 -26
  651. package/dist/ir/numeric-call-specialization.js.map +1 -1
  652. package/dist/ir/paired-while-loops.d.ts +4 -2
  653. package/dist/ir/paired-while-loops.js +8 -2
  654. package/dist/ir/paired-while-loops.js.map +1 -1
  655. package/dist/ir/parameter-versions.d.ts +13 -4
  656. package/dist/ir/parameter-versions.js +63 -42
  657. package/dist/ir/parameter-versions.js.map +1 -1
  658. package/dist/ir/property-bags.d.ts +4 -2
  659. package/dist/ir/property-bags.js +22 -17
  660. package/dist/ir/property-bags.js.map +1 -1
  661. package/dist/ir/row-pairs.d.ts +4 -2
  662. package/dist/ir/row-pairs.js +12 -11
  663. package/dist/ir/row-pairs.js.map +1 -1
  664. package/dist/ir/runtime-features.d.ts +87 -12
  665. package/dist/ir/runtime-features.js +263 -160
  666. package/dist/ir/runtime-features.js.map +1 -1
  667. package/dist/ir/runtime-features.test.js +109 -139
  668. package/dist/ir/runtime-features.test.js.map +1 -1
  669. package/dist/ir/runtime-jam-loops.d.ts +35 -0
  670. package/dist/ir/runtime-jam-loops.js +604 -0
  671. package/dist/ir/runtime-jam-loops.js.map +1 -0
  672. package/dist/ir/runtime-jam-loops.test.d.ts +1 -0
  673. package/dist/ir/runtime-jam-loops.test.js +565 -0
  674. package/dist/ir/runtime-jam-loops.test.js.map +1 -0
  675. package/dist/ir/saturating-loop-jams.d.ts +4 -2
  676. package/dist/ir/saturating-loop-jams.js +11 -10
  677. package/dist/ir/saturating-loop-jams.js.map +1 -1
  678. package/dist/ir/scalar-records.d.ts +5 -2
  679. package/dist/ir/scalar-records.js +12 -2
  680. package/dist/ir/scalar-records.js.map +1 -1
  681. package/dist/ir/self-captures.d.ts +4 -2
  682. package/dist/ir/self-captures.js +32 -27
  683. package/dist/ir/self-captures.js.map +1 -1
  684. package/dist/ir/serialize.d.ts +6 -1
  685. package/dist/ir/serialize.js +87 -23
  686. package/dist/ir/serialize.js.map +1 -1
  687. package/dist/ir/serialize.test.js +26 -0
  688. package/dist/ir/serialize.test.js.map +1 -1
  689. package/dist/ir/tiers.js +1 -0
  690. package/dist/ir/tiers.js.map +1 -1
  691. package/dist/ir/traverse.js +4 -0
  692. package/dist/ir/traverse.js.map +1 -1
  693. package/dist/ir/typed-argument-clones.d.ts +30 -0
  694. package/dist/ir/typed-argument-clones.js +789 -0
  695. package/dist/ir/typed-argument-clones.js.map +1 -0
  696. package/dist/ir/union-arm-loops.d.ts +3 -0
  697. package/dist/ir/union-arm-loops.js +373 -0
  698. package/dist/ir/union-arm-loops.js.map +1 -0
  699. package/dist/ir/union-arm-loops.test.d.ts +1 -0
  700. package/dist/ir/union-arm-loops.test.js +230 -0
  701. package/dist/ir/union-arm-loops.test.js.map +1 -0
  702. package/dist/ir/validate.js +88 -18
  703. package/dist/ir/validate.js.map +1 -1
  704. package/dist/library/compiler-self-identity.d.ts +8 -2
  705. package/dist/library/compiler-self-identity.js +92 -18
  706. package/dist/library/compiler-self-identity.js.map +1 -1
  707. package/dist/library/compiler-self-identity.test.js +150 -3
  708. package/dist/library/compiler-self-identity.test.js.map +1 -1
  709. package/dist/library/int-infer.d.ts +5 -0
  710. package/dist/library/int-infer.js +15 -3
  711. package/dist/library/int-infer.js.map +1 -1
  712. package/dist/library/ir-policy.js +1 -0
  713. package/dist/library/ir-policy.js.map +1 -1
  714. package/dist/library/library-cache.d.ts +4 -0
  715. package/dist/library/library-cache.js +2 -0
  716. package/dist/library/library-cache.js.map +1 -1
  717. package/dist/library/library-cache.test.js +26 -0
  718. package/dist/library/library-cache.test.js.map +1 -1
  719. package/dist/library/prepare.js +99 -31
  720. package/dist/library/prepare.js.map +1 -1
  721. package/dist/native/cache.d.ts +7 -0
  722. package/dist/native/cache.js +47 -0
  723. package/dist/native/cache.js.map +1 -1
  724. package/dist/native/cache.test.js +13 -1
  725. package/dist/native/cache.test.js.map +1 -1
  726. package/dist/native/cli.js +1 -1
  727. package/dist/native/cli.js.map +1 -1
  728. package/dist/native/compiler.js +18 -3
  729. package/dist/native/compiler.js.map +1 -1
  730. package/dist/native/executable-cache-open.test.js +31 -5
  731. package/dist/native/executable-cache-open.test.js.map +1 -1
  732. package/dist/native/executable-cache.d.ts +6 -1
  733. package/dist/native/executable-cache.js +7 -1
  734. package/dist/native/executable-cache.js.map +1 -1
  735. package/dist/native/prepare.d.ts +3 -0
  736. package/dist/native/prepare.js +43 -26
  737. package/dist/native/prepare.js.map +1 -1
  738. package/dist/native/prepare.test.js +25 -3
  739. package/dist/native/prepare.test.js.map +1 -1
  740. package/dist/native/sanitizer.js +10 -1
  741. package/dist/native/sanitizer.js.map +1 -1
  742. package/dist/native/sanitizer.test.js +7 -2
  743. package/dist/native/sanitizer.test.js.map +1 -1
  744. package/dist/node-islands/boundary.d.ts +12 -0
  745. package/dist/node-islands/boundary.js +38 -6
  746. package/dist/node-islands/boundary.js.map +1 -1
  747. package/dist/node-islands/boundary.test.d.ts +1 -0
  748. package/dist/node-islands/boundary.test.js +76 -0
  749. package/dist/node-islands/boundary.test.js.map +1 -0
  750. package/dist/node-islands/detect.d.ts +9 -0
  751. package/dist/node-islands/detect.js +110 -0
  752. package/dist/node-islands/detect.js.map +1 -1
  753. package/dist/node-islands/detect.test.js +24 -0
  754. package/dist/node-islands/detect.test.js.map +1 -1
  755. package/dist/node-islands/graph-islands.d.ts +40 -0
  756. package/dist/node-islands/graph-islands.js +128 -0
  757. package/dist/node-islands/graph-islands.js.map +1 -0
  758. package/dist/node-islands/growth.d.ts +57 -0
  759. package/dist/node-islands/growth.js +205 -0
  760. package/dist/node-islands/growth.js.map +1 -0
  761. package/dist/node-islands/report.d.ts +12 -0
  762. package/dist/node-islands/report.js +28 -0
  763. package/dist/node-islands/report.js.map +1 -1
  764. package/dist/node-islands/report.test.js +2 -0
  765. package/dist/node-islands/report.test.js.map +1 -1
  766. package/dist/node-islands/rules.js +5 -0
  767. package/dist/node-islands/rules.js.map +1 -1
  768. package/dist/node-islands/scan.d.ts +11 -2
  769. package/dist/node-islands/scan.js +61 -9
  770. package/dist/node-islands/scan.js.map +1 -1
  771. package/dist/wasm/translate.js +11 -5
  772. package/dist/wasm/translate.js.map +1 -1
  773. package/dist/wasm/translate.test.js +35 -0
  774. package/dist/wasm/translate.test.js.map +1 -1
  775. package/package.json +20 -20
  776. package/surface-manifest.json +184 -117
@@ -1,13 +1,16 @@
1
+ /// <reference path="./stream.d.ts" />
2
+
1
3
  /* node:child_process — the synchronous slice: spawnSync(command, args?)
2
4
  * runs the child to completion (posix_spawn + waitpid) with stdout/stderr
3
5
  * captured as utf8 strings. `status` is the exit code, or null when the
4
6
  * child died to a signal OR could not be spawned at all (nonexistent
5
- * binary, permission denied) — Node reports spawn failure through the
6
- * result's `error` property, which this surface does not carry, and types
7
- * stdout/stderr null there where scriptc returns "" (SEMANTICS.md).
8
- * No shell, no options object: the command runs directly (PATH-searched,
9
- * like Node). */
7
+ * binary, permission denied). A spawn failure is DATA on the result, never
8
+ * a throw: `error` is the Error Node builds ("spawnSync <file> ENOENT",
9
+ * `code` stamped, or ETIMEDOUT after a timeout kill) and both outputs are
10
+ * "" where Node types them null (SEMANTICS.md). */
10
11
  declare module "child_process" {
12
+ import type { Readable, Writable } from "stream";
13
+
11
14
  export interface SpawnSyncReturns {
12
15
  readonly status: number | null;
13
16
  readonly stdout: string;
@@ -29,7 +32,15 @@ declare module "child_process" {
29
32
  * the signal, never a throw), killSignal (a signal NAME literal),
30
33
  * stdio ("ignore"/"inherit"/"pipe" or a 3-tuple of those — captures
31
34
  * read "" for non-piped streams), env (replaces the child's
32
- * environment), and windowsHide (a POSIX no-op). */
35
+ * environment), cwd (the child's directory), input (the string piped
36
+ * to its stdin — `| undefined` means the option is absent, "" pipes an
37
+ * empty stdin), shell (the complete command line in `command`, with a
38
+ * statically empty args list, run by /bin/sh -c), and windowsHide (a
39
+ * POSIX no-op).
40
+ * The shell form takes no separate args: Node warns DEP0190 because it
41
+ * concatenates them unescaped, and a native build has no warning
42
+ * channel, so the compiler REFUSES `shell: true` with a non-empty args
43
+ * list. */
33
44
  export function spawnSync(
34
45
  command: string,
35
46
  args?: string[],
@@ -39,10 +50,42 @@ declare module "child_process" {
39
50
  killSignal?: string;
40
51
  stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[];
41
52
  env?: { [k: string]: string | undefined };
53
+ cwd?: string;
54
+ /* Piped to the child's stdin. undefined is an ABSENT option (no
55
+ * pipe, fd 0 is /dev/null or inherited per stdio); "" is an EMPTY
56
+ * stdin, which the child reads as immediate EOF — Node's reading. */
57
+ input?: string | undefined;
42
58
  windowsHide?: boolean;
59
+ /* Node's shell form: the complete command line in `command`, with
60
+ * an empty args list, runs through /bin/sh -c, so quoting and
61
+ * operators follow the shell's rules. A non-empty args list with
62
+ * shell: true is a compile error (Node warns DEP0190 for unescaped
63
+ * shell arguments). */
64
+ shell?: boolean;
43
65
  },
44
66
  ): SpawnSyncReturns;
45
67
 
68
+ /* The named options interface for the string-encoding spawnSync form —
69
+ * @types/node's SpawnSyncOptionsWithStringEncoding, narrowed to the
70
+ * honestly-implemented members (env and killSignal keep the inline
71
+ * literal form: a runtime record cannot carry a replacement
72
+ * environment). VALUES of this type are a real record (type-mapper.ts
73
+ * interns the shape), so a typed const or a runner function's options
74
+ * parameter flows to spawnSync at runtime with its members read at the
75
+ * call. */
76
+ export interface SpawnSyncOptionsWithStringEncoding {
77
+ encoding: "utf8" | "utf-8";
78
+ cwd?: string;
79
+ input?: string;
80
+ stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[];
81
+ timeout?: number;
82
+ windowsHide?: boolean;
83
+ /* Read at the call. The call then takes the command-line form only:
84
+ * a statically non-empty args list is a compile error (Node warns
85
+ * DEP0190 for unescaped shell arguments). */
86
+ shell?: boolean;
87
+ }
88
+
46
89
  /* The asynchronous slice: spawn with stdio "ignore"/"inherit"/fd/"pipe"
47
90
  * tuples (piped stdin is writable through child.stdin; piped stdout/stderr
48
91
  * deliver through child.stdout/stderr) and the terminal events. "exit"
@@ -57,18 +100,19 @@ declare module "child_process" {
57
100
  * loop quiescence (SEMANTICS.md documents the divergence). An "error"
58
101
  * event with no registered listener prints the error and exits 1,
59
102
  * exactly the unhandled-'error' EventEmitter behavior. */
60
- export interface ChildStdin {
61
- readonly writable: boolean;
62
- write(chunk: string | Uint8Array): boolean;
63
- end(): void;
64
- destroy(): void;
65
- on(event: "drain" | "finish", listener: () => void): void;
66
- on(event: "error", listener: (err: Error) => void): void;
67
- on(event: string, listener: (...args: any[]) => void): void;
68
- once(event: "drain" | "finish", listener: () => void): void;
69
- once(event: "error", listener: (err: Error) => void): void;
70
- once(event: string, listener: (...args: any[]) => void): void;
71
- }
103
+ /* The piped child stdin is the node:stream Writable Node's typings give
104
+ * it, so it flows into any Writable slot and back. Members the direct
105
+ * handle does not lower (the underscored hooks, cork, an encoding, a
106
+ * third argument) typecheck and need the general stream
107
+ * representation. */
108
+ export interface ChildStdin extends Writable {}
109
+
110
+ /* The piped child output is the node:stream Readable Node's typings
111
+ * give it. The direct handle delivers one chunk per pipe read (a
112
+ * Buffer, or a string after setEncoding); the rest of the Readable
113
+ * surface typechecks and needs the general stream representation to
114
+ * lower. */
115
+ export interface ChildStdout extends Readable {}
72
116
 
73
117
  export interface ChildProcess extends Disposable {
74
118
  ref(): void;
@@ -125,10 +169,11 @@ declare module "child_process" {
125
169
  disconnect(): void;
126
170
  [Symbol.dispose](): void;
127
171
  /* The piped streams — non-null exactly when the matching stdio slot
128
- * was "pipe" (Node's shape). */
172
+ * was "pipe" (Node's shape; the node:stream classes, narrowed to the
173
+ * members the direct handles deliver). */
129
174
  readonly stdin: ChildStdin | null;
130
- readonly stdout: NodeJS.ReadableStream | null;
131
- readonly stderr: NodeJS.ReadableStream | null;
175
+ readonly stdout: ChildStdout | null;
176
+ readonly stderr: ChildStdout | null;
132
177
  }
133
178
  export interface SpawnOptions {
134
179
  /* The 3-tuple form admits number fds in the stdout/stderr slots —
@@ -140,7 +185,9 @@ declare module "child_process" {
140
185
  /* detached gives the child its own session and process group
141
186
  * (POSIX_SPAWN_SETSID); env REPLACES the child environment; cwd
142
187
  * sets its working directory; windowsHide is a POSIX no-op; shell
143
- * runs the complete command string through /bin/sh or cmd.exe. */
188
+ * runs the complete command string through /bin/sh or cmd.exe (with
189
+ * an empty args list — a non-empty one is a compile error, because
190
+ * Node warns DEP0190 for unescaped shell arguments). */
144
191
  detached?: boolean;
145
192
  env?: { [k: string]: string | undefined };
146
193
  cwd?: string;
@@ -186,6 +233,8 @@ declare module "child_process" {
186
233
  maxBuffer?: number;
187
234
  killSignal?: string;
188
235
  windowsHide?: boolean;
236
+ /* Runs the complete command line through /bin/sh -c; it takes an
237
+ * empty args list (Node warns DEP0190 for unescaped shell args). */
189
238
  shell?: boolean;
190
239
  }
191
240
  /* The named options interface for the string-encoding exec form —
@@ -277,14 +277,20 @@ declare module "crypto" {
277
277
  copy(options?: HashOptions): Hash;
278
278
  update(data: string | ArrayBufferView): Hash;
279
279
  update(data: string, inputEncoding: Encoding): Hash;
280
+ /* A digest is Buffer.toString(encoding): Node answers every Buffer
281
+ * encoding, the character and legacy ones included (a hash's bytes are
282
+ * arbitrary, so utf8 spells the undecodable sequences U+FFFD).
283
+ * @types/node narrows this parameter to BinaryToTextEncoding (a cast
284
+ * there); the runtime decodes each spelling listed in Encoding and no
285
+ * other, so the parameter admits exactly that set. */
280
286
  digest(): Buffer;
281
- digest(encoding: BinaryToTextEncoding): string;
287
+ digest(encoding: Encoding): string;
282
288
  }
283
289
  export interface Hmac extends Transform {
284
290
  update(data: string | ArrayBufferView): Hmac;
285
291
  update(data: string, inputEncoding: Encoding): Hmac;
286
292
  digest(): Buffer;
287
- digest(encoding: BinaryToTextEncoding): string;
293
+ digest(encoding: Encoding): string;
288
294
  }
289
295
  export function createHash(algorithm: string, options?: HashOptions): Hash;
290
296
  export function createHmac(
@@ -292,12 +298,14 @@ declare module "crypto" {
292
298
  key: BinaryLike | KeyObject,
293
299
  options?: { encoding?: BufferEncoding | undefined },
294
300
  ): Hmac;
301
+ /* crypto.hash's output encoding is the same Buffer conversion digest()
302
+ * makes, so it takes the same Encoding set. */
295
303
  export interface OneShotDigestOptions {
296
- outputEncoding?: BinaryToTextEncoding | "buffer" | undefined;
304
+ outputEncoding?: Encoding | "buffer" | undefined;
297
305
  outputLength?: number | undefined;
298
306
  }
299
307
  export interface OneShotDigestOptionsWithStringEncoding extends OneShotDigestOptions {
300
- outputEncoding?: BinaryToTextEncoding | undefined;
308
+ outputEncoding?: Encoding | undefined;
301
309
  }
302
310
  export interface OneShotDigestOptionsWithBufferEncoding extends OneShotDigestOptions {
303
311
  outputEncoding: "buffer";
@@ -305,7 +313,7 @@ declare module "crypto" {
305
313
  export function hash(
306
314
  algorithm: string,
307
315
  data: string | ArrayBufferView,
308
- options?: OneShotDigestOptionsWithStringEncoding | BinaryToTextEncoding,
316
+ options?: OneShotDigestOptionsWithStringEncoding | Encoding,
309
317
  ): string;
310
318
  export function hash(
311
319
  algorithm: string,
@@ -315,7 +323,7 @@ declare module "crypto" {
315
323
  export function hash(
316
324
  algorithm: string,
317
325
  data: string | ArrayBufferView,
318
- options: OneShotDigestOptions | BinaryToTextEncoding | "buffer",
326
+ options: OneShotDigestOptions | Encoding | "buffer",
319
327
  ): string | Buffer;
320
328
  export function timingSafeEqual(
321
329
  a: ArrayBufferView | ArrayBufferLike,
@@ -771,7 +779,7 @@ declare module "crypto" {
771
779
  * stance). Every ACCESS bakes as its literal at lowering; the object
772
780
  * itself never materializes (bare crypto.constants value uses fence). */
773
781
  export interface CryptoConstants {
774
- readonly OPENSSL_VERSION_NUMBER: 810549376;
782
+ readonly OPENSSL_VERSION_NUMBER: 810549392;
775
783
  readonly SSL_OP_ALL: 2147485776;
776
784
  readonly SSL_OP_ALLOW_NO_DHE_KEX: 1024;
777
785
  readonly SSL_OP_ALLOW_UNSAFE_LEGACY_RENEGOTIATION: 262144;
@@ -50,11 +50,29 @@ declare module "events" {
50
50
  options?: { signal?: AbortSignal },
51
51
  ): Promise<unknown[]>;
52
52
  /* The emitter's own listenerCount/getMaxListeners/setMaxListeners/
53
- * listeners, over EventEmitter instances. */
54
- export function listenerCount(emitter: EventEmitter, eventName: string | symbol): number;
55
- export function getMaxListeners(emitter: EventEmitter): number;
56
- export function setMaxListeners(n?: number, ...eventTargets: EventEmitter[]): void;
57
- export function getEventListeners(emitter: EventEmitter, name: string): Array<() => void>;
53
+ * listeners, over EventEmitter instances and EventTargets. */
54
+ export function listenerCount(
55
+ emitterOrTarget: EventEmitter | EventTarget,
56
+ eventName: string | symbol,
57
+ ): number;
58
+ export function getMaxListeners(emitterOrTarget: EventEmitter | EventTarget): number;
59
+ export function setMaxListeners(
60
+ n?: number,
61
+ ...eventTargets: Array<EventEmitter | EventTarget>
62
+ ): void;
63
+ /* An EventEmitter's listeners are functions, so their array is
64
+ * statically consumable. An EventTarget's listeners come back as
65
+ * registered (Node's `Function[]`): a listener object with
66
+ * handleEvent is itself, not a function, so that array's elements
67
+ * stay checked-dynamic. */
68
+ export function getEventListeners(
69
+ emitter: EventEmitter,
70
+ name: string | symbol,
71
+ ): Array<() => void>;
72
+ export function getEventListeners(
73
+ emitterOrTarget: EventEmitter | EventTarget,
74
+ name: string | symbol,
75
+ ): Array<any>;
58
76
  }
59
77
  export = EventEmitter;
60
78
  }
@@ -471,8 +471,9 @@ declare module "node:fs" {
471
471
  ): BigIntStats;
472
472
  export function lstatSync(path: string | URL, options: StatSyncOptions): Stats | undefined;
473
473
  /* The fd pair behind spawn's fd-stdio form: openSync(path, flags) →
474
- * the raw fd. Numeric flags use an inline OR of the O_* constants. */
475
- export function openSync(path: string | URL, flags: string): number;
474
+ * the raw fd. Numeric flags use an inline OR of the O_* constants. The
475
+ * mode is open(2)'s creation mode and applies to both flag forms. */
476
+ export function openSync(path: string | URL, flags: string, mode?: number): number;
476
477
  export function openSync(path: string | URL, flags: number, mode?: number): number;
477
478
  export function closeSync(fd: number): void;
478
479
  export function fdatasyncSync(fd: number): void;
@@ -265,31 +265,32 @@ declare module "http" {
265
265
  end(data?: string | Uint8Array): void;
266
266
  destroy(error?: Error): void;
267
267
  abort(): void;
268
- on(event: "response", listener: (res: IncomingMessage) => void): void;
269
- on(event: "socket", listener: (socket: Socket) => void): void;
268
+ on(event: "response", listener: (res: IncomingMessage) => void): this;
269
+ on(event: "socket", listener: (socket: Socket) => void): this;
270
270
  on(
271
271
  event: "upgrade",
272
272
  listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void,
273
- ): void;
274
- on(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void;
275
- on(event: "error", listener: (err: Error) => void): void;
276
- /* addListener IS on (Node aliases them) — the suite spells both. */
277
- addListener(event: "response", listener: (res: IncomingMessage) => void): void;
278
- addListener(event: "socket", listener: (socket: Socket) => void): void;
273
+ ): this;
274
+ on(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): this;
275
+ on(event: "error", listener: (err: Error) => void): this;
276
+ /* addListener IS on (Node aliases them) — the suite spells both. Each
277
+ * answers the request, as Node's does. */
278
+ addListener(event: "response", listener: (res: IncomingMessage) => void): this;
279
+ addListener(event: "socket", listener: (socket: Socket) => void): this;
279
280
  addListener(
280
281
  event: "upgrade",
281
282
  listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void,
282
- ): void;
283
- addListener(event: "timeout" | "close" | "finish" | "abort", listener: () => void): void;
284
- addListener(event: "error", listener: (err: Error) => void): void;
285
- once(event: "response", listener: (res: IncomingMessage) => void): void;
286
- once(event: "socket", listener: (socket: Socket) => void): void;
283
+ ): this;
284
+ addListener(event: "timeout" | "close" | "finish" | "abort", listener: () => void): this;
285
+ addListener(event: "error", listener: (err: Error) => void): this;
286
+ once(event: "response", listener: (res: IncomingMessage) => void): this;
287
+ once(event: "socket", listener: (socket: Socket) => void): this;
287
288
  once(
288
289
  event: "upgrade",
289
290
  listener: (res: IncomingMessage, socket: Socket, head: Buffer) => void,
290
- ): void;
291
- once(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): void;
292
- once(event: "error", listener: (err: Error) => void): void;
291
+ ): this;
292
+ once(event: "timeout" | "close" | "finish" | "abort" | "continue", listener: () => void): this;
293
+ once(event: "error", listener: (err: Error) => void): this;
293
294
  }
294
295
  export function createServer(
295
296
  requestListener?: (req: IncomingMessage, res: ServerResponse) => void,
@@ -310,13 +311,18 @@ declare module "http" {
310
311
  * `target` is a URL string or URL object (the spelling a from-scratch
311
312
  * client reaches for first — dialed directly, with a non-http scheme
312
313
  * an ERR_INVALID_PROTOCOL at runtime rather than a type error), or
313
- * the options record. */
314
+ * the options record. A URL target's second argument is the response
315
+ * callback or the options value the runtime merges under the URL's
316
+ * fields (`request(url, options[, callback])`); the lowering tells
317
+ * the two apart by the argument's own type. */
314
318
  export function request(
315
319
  target: RequestOptions | string | URL,
320
+ optionsOrCallback?: RequestOptions | ((res: IncomingMessage) => void),
316
321
  callback?: (res: IncomingMessage) => void,
317
322
  ): ClientRequest;
318
323
  export function get(
319
324
  target: RequestOptions | string | URL,
325
+ optionsOrCallback?: RequestOptions | ((res: IncomingMessage) => void),
320
326
  callback?: (res: IncomingMessage) => void,
321
327
  ): ClientRequest;
322
328
  export function validateHeaderName(name: string, label?: string): void;
@@ -41,15 +41,18 @@ declare module "https" {
41
41
  requestListener: (req: IncomingMessage, res: ServerResponse) => void,
42
42
  ): Server;
43
43
  /* One signature with a union first parameter, for the request-fn
44
- * ternary's sake (see the http block). A URL target takes no options,
45
- * which means Node's defaults — the certificate is verified against
44
+ * ternary's sake (see the http block). The URL target takes an
45
+ * optional options value the runtime merges under its fields; without
46
+ * one it takes Node's defaults — the certificate is verified against
46
47
  * the default trust anchors. */
47
48
  export function request(
48
49
  target: RequestOptions | string | URL,
50
+ optionsOrCallback?: RequestOptions | ((res: IncomingMessage) => void),
49
51
  callback?: (res: IncomingMessage) => void,
50
52
  ): ClientRequest;
51
53
  export function get(
52
54
  target: RequestOptions | string | URL,
55
+ optionsOrCallback?: RequestOptions | ((res: IncomingMessage) => void),
53
56
  callback?: (res: IncomingMessage) => void,
54
57
  ): ClientRequest;
55
58
  }
@@ -209,6 +209,8 @@ declare module "net" {
209
209
  on(event: "drop", listener: (data?: DropArgument) => void): void;
210
210
  on(event: "timeout", listener: (socket: Socket) => void): void;
211
211
  on(event: "error", listener: (err: Error) => void): void;
212
+ /* http servers: a request the parser rejects, or a connection error */
213
+ on(event: "clientError", listener: (err: Error, socket: Socket) => void): void;
212
214
  /* The WebSocket handover: fires INSTEAD of 'request' for
213
215
  * Connection: upgrade requests, with the raw socket + head bytes;
214
216
  * 'connect' is its twin for CONNECT requests (HTTP tunneling). */
@@ -233,6 +235,8 @@ declare module "net" {
233
235
  addListener(event: "drop", listener: (data?: DropArgument) => void): void;
234
236
  addListener(event: "timeout", listener: (socket: Socket) => void): void;
235
237
  addListener(event: "error", listener: (err: Error) => void): void;
238
+ /* http servers: a request the parser rejects, or a connection error */
239
+ addListener(event: "clientError", listener: (err: Error, socket: Socket) => void): void;
236
240
  addListener(
237
241
  event: "upgrade" | "connect",
238
242
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
@@ -251,6 +255,8 @@ declare module "net" {
251
255
  once(event: "drop", listener: (data?: DropArgument) => void): void;
252
256
  once(event: "timeout", listener: (socket: Socket) => void): void;
253
257
  once(event: "error", listener: (err: Error) => void): void;
258
+ /* http servers: a request the parser rejects, or a connection error */
259
+ once(event: "clientError", listener: (err: Error, socket: Socket) => void): void;
254
260
  once(
255
261
  event: "upgrade" | "connect",
256
262
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
@@ -27,7 +27,17 @@ declare module "os" {
27
27
  shell: string | null;
28
28
  homedir: string;
29
29
  }
30
- export function userInfo(): UserInfo;
30
+ /* userInfo({ encoding: 'buffer' }): the same passwd fields with the
31
+ * three strings as Buffers (Node's own switch on the encoding). */
32
+ export interface BufferUserInfo {
33
+ username: Buffer;
34
+ uid: number;
35
+ gid: number;
36
+ shell: Buffer;
37
+ homedir: Buffer;
38
+ }
39
+ export function userInfo(options: { encoding: "buffer" }): BufferUserInfo;
40
+ export function userInfo(options?: { encoding?: string }): UserInfo;
31
41
  /* The TARGET platform's line terminator (a compile-time constant:
32
42
  * "\r\n" under a win32 triple, "\n" everywhere else). */
33
43
  export const EOL: "\r\n" | "\n";
@@ -13,8 +13,14 @@ declare module "path/posix" {
13
13
  export function matchesGlob(path: string, pattern: string): boolean;
14
14
  export function parse(path: string): import("path").ParsedPath;
15
15
  export function format(pathObject: import("path").FormatInputPathObject): string;
16
+ /* Node's deprecated alias of toNamespacedPath (identity on posix). */
17
+ export function _makeLong(path: string): string;
16
18
  export const sep: "/";
17
19
  export const delimiter: ":";
20
+ /* Node's posix object carries the other namespace too (the same object
21
+ * require("path/posix") answers). */
22
+ export const posix: typeof import("path/posix");
23
+ export const win32: typeof import("path/win32");
18
24
  }
19
25
 
20
26
  declare module "node:path/posix" {
@@ -13,8 +13,13 @@ declare module "path/win32" {
13
13
  export function matchesGlob(path: string, pattern: string): boolean;
14
14
  export function parse(path: string): import("path").ParsedPath;
15
15
  export function format(pathObject: import("path").FormatInputPathObject): string;
16
+ /* Node's deprecated alias of toNamespacedPath. */
17
+ export function _makeLong(path: string): string;
16
18
  export const sep: "\\";
17
19
  export const delimiter: ";";
20
+ /* Node's win32 object carries the other namespace too. */
21
+ export const posix: typeof import("path/posix");
22
+ export const win32: typeof import("path/win32");
18
23
  }
19
24
 
20
25
  declare module "node:path/win32" {
@@ -16,6 +16,8 @@ declare module "path" {
16
16
  export function isAbsolute(path: string): boolean;
17
17
  export function relative(from: string, to: string): string;
18
18
  export function toNamespacedPath(path: string): string;
19
+ /* Node's deprecated alias of toNamespacedPath (POSIX identity). */
20
+ export function _makeLong(path: string): string;
19
21
  /* matchesGlob() is Node's glob matcher: brace expansion, extglobs, POSIX
20
22
  * classes and the ** and dot rules. */
21
23
  export function matchesGlob(path: string, pattern: string): boolean;
@@ -5,8 +5,8 @@
5
5
  * binaries. Callback forms use the executable worker pool. Options stay
6
6
  * declared so reached uses receive a named SC2020 refusal. The Deflate,
7
7
  * Inflate, Gzip, Gunzip, DeflateRaw, InflateRaw, Unzip, BrotliCompress
8
- * and BrotliDecompress streams are runtime Transform streams; Zstd remains
9
- * outside the lowered surface. */
8
+ * BrotliDecompress, ZstdCompress and ZstdDecompress streams are runtime
9
+ * Transform streams. */
10
10
  declare module "zlib" {
11
11
  import { Transform } from "stream";
12
12
  export interface ZlibOptions {
@@ -82,6 +82,26 @@ declare module "zlib" {
82
82
  callback: ZlibCallback,
83
83
  ): void;
84
84
  export function brotliDecompressSync(data: string | Uint8Array, options?: BrotliOptions): Buffer;
85
+ /* Zstd over the vendored zstd 1.5.7 (scr_zstd.c): `params` keys are the
86
+ * numeric ZSTD_c_* and ZSTD_d_* constants, and `dictionary` and
87
+ * `pledgedSrcSize` take Node's values. */
88
+ export interface ZstdOptions {
89
+ [option: string]: unknown;
90
+ }
91
+ export function zstdCompress(data: string | Uint8Array, callback: ZlibCallback): void;
92
+ export function zstdCompress(
93
+ data: string | Uint8Array,
94
+ options: ZstdOptions,
95
+ callback: ZlibCallback,
96
+ ): void;
97
+ export function zstdCompressSync(data: string | Uint8Array, options?: ZstdOptions): Buffer;
98
+ export function zstdDecompress(data: string | Uint8Array, callback: ZlibCallback): void;
99
+ export function zstdDecompress(
100
+ data: string | Uint8Array,
101
+ options: ZstdOptions,
102
+ callback: ZlibCallback,
103
+ ): void;
104
+ export function zstdDecompressSync(data: string | Uint8Array, options?: ZstdOptions): Buffer;
85
105
  /* The stream classes: runtime Transform streams over the zlib engine
86
106
  * (scr_zlib_stream.c). createGzip(options) and new Gzip(options) build
87
107
  * the same stream; options are validated at runtime with Node's rules.
@@ -104,6 +124,14 @@ declare module "zlib" {
104
124
  }
105
125
  export function createBrotliCompress(options?: BrotliOptions): BrotliCompress;
106
126
  export function createBrotliDecompress(options?: BrotliOptions): BrotliDecompress;
127
+ export class ZstdCompress extends ZlibBase {
128
+ constructor(options?: ZstdOptions);
129
+ }
130
+ export class ZstdDecompress extends ZlibBase {
131
+ constructor(options?: ZstdOptions);
132
+ }
133
+ export function createZstdCompress(options?: ZstdOptions): ZstdCompress;
134
+ export function createZstdDecompress(options?: ZstdOptions): ZstdDecompress;
107
135
  export class Deflate extends Zlib {
108
136
  constructor(options?: ZlibOptions);
109
137
  }
@@ -236,6 +264,7 @@ declare module "zlib" {
236
264
  readonly BROTLI_DECODER_ERROR_FORMAT_PADDING_1: -14;
237
265
  readonly BROTLI_DECODER_ERROR_FORMAT_PADDING_2: -15;
238
266
  readonly BROTLI_DECODER_ERROR_FORMAT_DISTANCE: -16;
267
+ readonly BROTLI_DECODER_ERROR_FORMAT_BLOCK_SWITCH: -17;
239
268
  readonly BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET: -19;
240
269
  readonly BROTLI_DECODER_ERROR_INVALID_ARGUMENTS: -20;
241
270
  readonly BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES: -21;
@@ -333,12 +333,14 @@ declare var process: {
333
333
  stdout: import("tty").WriteStream;
334
334
  stderr: import("tty").WriteStream;
335
335
  /* The stdin stream, the piped-input slice: the TTY probe, the
336
- * data/end/error events and readline's 'keypress' (on and once — a 'data' listener keeps the
337
- * event loop alive until EOF, like Node's flowing stdin), destroy()
338
- * (full teardown: nothing fires after, the loop stops waiting), and
339
- * async iteration (`for await (const chunk of process.stdin)` — chunks
340
- * are Uint8Array values, ending at EOF). setEncoding has no lowering
341
- * (chunks stay bytes; decode with TextDecoder). */
336
+ * data/end/error/readable events and readline's 'keypress' (on and once
337
+ * — a 'data' or 'readable' listener keeps the event loop alive until
338
+ * EOF, like Node's flowing stdin), the paused-mode reads (pause,
339
+ * resume, isPaused, read, readableLength), destroy() (full teardown:
340
+ * nothing fires after, the loop stops waiting), and async iteration
341
+ * (`for await (const chunk of process.stdin)` — chunks are Uint8Array
342
+ * values, ending at EOF). setEncoding has no lowering (chunks stay
343
+ * bytes; decode with TextDecoder). */
342
344
  stdin: {
343
345
  readonly isTTY: boolean;
344
346
  /* The descriptor the stream is built over (Node reports 0 here and
@@ -350,6 +352,10 @@ declare var process: {
350
352
  on(event: "data", listener: (chunk: Uint8Array) => void): void;
351
353
  on(event: "end", listener: () => void): void;
352
354
  on(event: "error", listener: (err: Error) => void): void;
355
+ /* Paused mode, as in Node: input stays buffered for read(), and the
356
+ * listener runs when input arrives while a read wanted more, and once
357
+ * at EOF. A 'readable' listener keeps the loop alive until EOF. */
358
+ on(event: "readable", listener: () => void): void;
353
359
  /* readline.emitKeypressEvents(process.stdin)'s keys */
354
360
  on(
355
361
  event: "keypress",
@@ -358,10 +364,28 @@ declare var process: {
358
364
  once(event: "data", listener: (chunk: Uint8Array) => void): void;
359
365
  once(event: "end", listener: () => void): void;
360
366
  once(event: "error", listener: (err: Error) => void): void;
367
+ once(event: "readable", listener: () => void): void;
361
368
  once(
362
369
  event: "keypress",
363
370
  listener: (str: string | undefined, key: import("readline").Key) => void,
364
371
  ): void;
372
+ /* The readable half of the stream. pause()/resume() set Node's flowing
373
+ * flag (input buffers instead of reaching 'data' listeners while
374
+ * paused, and flows again on resume); Node answers `this` and this
375
+ * call is statement-position only. read([size]) takes held input with
376
+ * Node's size coercion: a fractional size truncates, NaN (or no size)
377
+ * reads everything held, a size of zero or less reads nothing, and a
378
+ * size above 1 GiB throws Node's ERR_OUT_OF_RANGE. Null answers
379
+ * "nothing yet", and the answer is a Buffer, both exactly Node's.
380
+ * readableLength is what waits.
381
+ * isPaused() answers Node's paused mode: true after pause() or once a
382
+ * 'readable' listener is attached, and resume() with such a listener
383
+ * (or 'end') does not clear it. */
384
+ pause(): void;
385
+ resume(): void;
386
+ isPaused(): boolean;
387
+ read(size?: number): Buffer | null;
388
+ readonly readableLength: number;
365
389
  destroy(): void;
366
390
  setEncoding(encoding: "utf8"): void;
367
391
  /* Termios raw mode on a TTY stdin (libuv's UV_TTY_MODE_RAW, the mode
@@ -1538,6 +1562,9 @@ declare var URL: {
1538
1562
  new (input: string | { toString: () => string }, base?: string | URL): URL;
1539
1563
  canParse(input: string | URL, base?: string | URL): boolean;
1540
1564
  parse(input: string | URL, base?: string | URL): URL | null;
1565
+ /* The id is coerced to a string before the registry lookup; a
1566
+ * compiled program registers no blob URLs, so every id misses. */
1567
+ revokeObjectURL(url: string | URL): void;
1541
1568
  };
1542
1569
 
1543
1570
  /* URLSearchParams — the WHATWG application/x-www-form-urlencoded list.
@@ -1555,7 +1582,10 @@ interface URLSearchParams {
1555
1582
  set(name: string, value: string): void;
1556
1583
  sort(): void;
1557
1584
  toString(): string;
1558
- forEach(callback: (value: string, name: string, searchParams: URLSearchParams) => void): void;
1585
+ forEach(
1586
+ callback: (value: string, name: string, searchParams: URLSearchParams) => void,
1587
+ thisArg?: unknown,
1588
+ ): void;
1559
1589
  keys(): IterableIterator<string>;
1560
1590
  values(): IterableIterator<string>;
1561
1591
  entries(): IterableIterator<[string, string]>;
@@ -38,10 +38,15 @@ type RequestInfo = string | URL | Request;
38
38
 
39
39
  /* Node exposes the codec constructors globally, but older @types/node
40
40
  * versions rely on lib.dom for their instance type names. Keep those types
41
- * available in the ES-only program as well as the fallback type world. */
41
+ * available in the ES-only program as well as the fallback type world.
42
+ * `encode` allocates a new, non-shared ArrayBuffer (WHATWG encoding), which
43
+ * is what @types/node's `NonSharedUint8Array` and lib.dom spell: a plain
44
+ * `Uint8Array` defaults to `ArrayBufferLike`, and that shared view is not a
45
+ * `BufferSource` for lib.dom's Web Crypto signatures once a dependency
46
+ * brings lib.dom into the program. */
42
47
  interface TextEncoder {
43
48
  readonly encoding: string;
44
- encode(input?: string): Uint8Array;
49
+ encode(input?: string): Uint8Array<ArrayBuffer>;
45
50
  encodeInto(source: string, destination: Uint8Array): { read: number; written: number };
46
51
  }
47
52
  interface TextDecoder {