@scriptc/compiler 0.4.2 → 0.4.3

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 (636) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +397 -37
  2. package/dist/backend/cycle-analysis.d.ts +4 -1
  3. package/dist/backend/cycle-analysis.js +6 -4
  4. package/dist/backend/cycle-analysis.js.map +1 -1
  5. package/dist/backend/cycle-analysis.test.js +55 -0
  6. package/dist/backend/cycle-analysis.test.js.map +1 -1
  7. package/dist/backend/cycle-mutability.d.ts +7 -0
  8. package/dist/backend/cycle-mutability.js +19 -1
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +2 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.d.ts +6 -3
  13. package/dist/backend/immutability.js +33 -29
  14. package/dist/backend/immutability.js.map +1 -1
  15. package/dist/backend/library-pack.js +1 -0
  16. package/dist/backend/library-pack.js.map +1 -1
  17. package/dist/backend/llvm/alloc.d.ts +16 -1
  18. package/dist/backend/llvm/alloc.js +54 -4
  19. package/dist/backend/llvm/alloc.js.map +1 -1
  20. package/dist/backend/llvm/appended-array-literals.d.ts +2 -1
  21. package/dist/backend/llvm/appended-array-literals.js +44 -36
  22. package/dist/backend/llvm/appended-array-literals.js.map +1 -1
  23. package/dist/backend/llvm/appended-array-literals.test.js +4 -3
  24. package/dist/backend/llvm/appended-array-literals.test.js.map +1 -1
  25. package/dist/backend/llvm/array-search.d.ts +4 -3
  26. package/dist/backend/llvm/array-search.js +21 -9
  27. package/dist/backend/llvm/array-search.js.map +1 -1
  28. package/dist/backend/llvm/blocks.d.ts +1 -1
  29. package/dist/backend/llvm/blocks.js +2 -2
  30. package/dist/backend/llvm/blocks.js.map +1 -1
  31. package/dist/backend/llvm/byte-windows.js +2 -0
  32. package/dist/backend/llvm/byte-windows.js.map +1 -1
  33. package/dist/backend/llvm/bytes-alias.d.ts +6 -1
  34. package/dist/backend/llvm/bytes-alias.js +8 -2
  35. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  36. package/dist/backend/llvm/bytes-loop-versions.d.ts +47 -5
  37. package/dist/backend/llvm/bytes-loop-versions.js +473 -32
  38. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  39. package/dist/backend/llvm/bytes-loop-versions.test.js +258 -2
  40. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  41. package/dist/backend/llvm/checked-value-lifetimes.js +2 -0
  42. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  43. package/dist/backend/llvm/classes.d.ts +7 -5
  44. package/dist/backend/llvm/classes.js +44 -20
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/classes.test.js +167 -7
  47. package/dist/backend/llvm/classes.test.js.map +1 -1
  48. package/dist/backend/llvm/common.d.ts +9 -3
  49. package/dist/backend/llvm/common.js +9 -3
  50. package/dist/backend/llvm/common.js.map +1 -1
  51. package/dist/backend/llvm/constant-callbacks.d.ts +2 -1
  52. package/dist/backend/llvm/constant-callbacks.js +83 -52
  53. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  54. package/dist/backend/llvm/counted-loops.d.ts +7 -0
  55. package/dist/backend/llvm/counted-loops.js +18 -0
  56. package/dist/backend/llvm/counted-loops.js.map +1 -1
  57. package/dist/backend/llvm/dense-array-access.d.ts +39 -8
  58. package/dist/backend/llvm/dense-array-access.js +222 -52
  59. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  60. package/dist/backend/llvm/dense-array-access.test.js +36 -0
  61. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  62. package/dist/backend/llvm/dense-array-loops.d.ts +17 -1
  63. package/dist/backend/llvm/dense-array-loops.js +194 -5
  64. package/dist/backend/llvm/dense-array-loops.js.map +1 -1
  65. package/dist/backend/llvm/dense-array-loops.test.js +90 -1
  66. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
  67. package/dist/backend/llvm/dyn-handle-tags.test.js +6 -1
  68. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -1
  69. package/dist/backend/llvm/dyn.d.ts +26 -0
  70. package/dist/backend/llvm/dyn.js +352 -61
  71. package/dist/backend/llvm/dyn.js.map +1 -1
  72. package/dist/backend/llvm/emit-function.js +11 -20
  73. package/dist/backend/llvm/emit-function.js.map +1 -1
  74. package/dist/backend/llvm/emit-journal.d.ts +93 -0
  75. package/dist/backend/llvm/emit-journal.js +170 -0
  76. package/dist/backend/llvm/emit-journal.js.map +1 -0
  77. package/dist/backend/llvm/emit-module.js +195 -27
  78. package/dist/backend/llvm/emit-module.js.map +1 -1
  79. package/dist/backend/llvm/emit-statements.d.ts +0 -4
  80. package/dist/backend/llvm/emit-statements.js +268 -84
  81. package/dist/backend/llvm/emit-statements.js.map +1 -1
  82. package/dist/backend/llvm/emitter-state.d.ts +7 -0
  83. package/dist/backend/llvm/emitter-state.js +14 -0
  84. package/dist/backend/llvm/emitter-state.js.map +1 -0
  85. package/dist/backend/llvm/emitter.d.ts +176 -37
  86. package/dist/backend/llvm/emitter.js +724 -85
  87. package/dist/backend/llvm/emitter.js.map +1 -1
  88. package/dist/backend/llvm/emitter.test.js +54 -5
  89. package/dist/backend/llvm/emitter.test.js.map +1 -1
  90. package/dist/backend/llvm/expr-bytes.js +34 -12
  91. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  92. package/dist/backend/llvm/expr-callbacks.js +47 -0
  93. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  94. package/dist/backend/llvm/expr-calls.js +28 -14
  95. package/dist/backend/llvm/expr-calls.js.map +1 -1
  96. package/dist/backend/llvm/expr-containers.d.ts +14 -2
  97. package/dist/backend/llvm/expr-containers.js +129 -37
  98. package/dist/backend/llvm/expr-containers.js.map +1 -1
  99. package/dist/backend/llvm/expr-context.d.ts +14 -0
  100. package/dist/backend/llvm/expr-dynamic.js +18 -11
  101. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  102. package/dist/backend/llvm/expr-primitives.js +100 -28
  103. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  104. package/dist/backend/llvm/expr-primitives.test.js +11 -6
  105. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  106. package/dist/backend/llvm/expr-records.d.ts +12 -0
  107. package/dist/backend/llvm/expr-records.js +106 -0
  108. package/dist/backend/llvm/expr-records.js.map +1 -1
  109. package/dist/backend/llvm/expr-stream-bridges.d.ts +2 -2
  110. package/dist/backend/llvm/expr-stream-bridges.js +194 -65
  111. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  112. package/dist/backend/llvm/expr-stream-bridges.test.js +1 -1
  113. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  114. package/dist/backend/llvm/expr-stream-callbacks.d.ts +2 -2
  115. package/dist/backend/llvm/expr-stream-callbacks.js +74 -20
  116. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  117. package/dist/backend/llvm/int32-kind-loops.d.ts +39 -0
  118. package/dist/backend/llvm/int32-kind-loops.js +106 -0
  119. package/dist/backend/llvm/int32-kind-loops.js.map +1 -0
  120. package/dist/backend/llvm/integer-or-nan-indexes.test.d.ts +1 -0
  121. package/dist/backend/llvm/integer-or-nan-indexes.test.js +118 -0
  122. package/dist/backend/llvm/integer-or-nan-indexes.test.js.map +1 -0
  123. package/dist/backend/llvm/integer-values.d.ts +20 -1
  124. package/dist/backend/llvm/integer-values.js +71 -0
  125. package/dist/backend/llvm/integer-values.js.map +1 -1
  126. package/dist/backend/llvm/js-ic.d.ts +1 -1
  127. package/dist/backend/llvm/js-ic.js +1 -1
  128. package/dist/backend/llvm/js-ic.js.map +1 -1
  129. package/dist/backend/llvm/key-orders.d.ts +7 -0
  130. package/dist/backend/llvm/key-orders.js +33 -0
  131. package/dist/backend/llvm/key-orders.js.map +1 -0
  132. package/dist/backend/llvm/lib-connect.js +4 -0
  133. package/dist/backend/llvm/lib-connect.js.map +1 -1
  134. package/dist/backend/llvm/lib-datagram.js +11 -0
  135. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  136. package/dist/backend/llvm/lib-dispatch.js +80 -2
  137. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  138. package/dist/backend/llvm/lib-filesystem.js +4 -4
  139. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  140. package/dist/backend/llvm/lib-http2.js +4 -0
  141. package/dist/backend/llvm/lib-http2.js.map +1 -1
  142. package/dist/backend/llvm/lib-lookup.js +16 -6
  143. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  144. package/dist/backend/llvm/lib-shared.js +73 -2
  145. package/dist/backend/llvm/lib-shared.js.map +1 -1
  146. package/dist/backend/llvm/lib-stream.js +35 -5
  147. package/dist/backend/llvm/lib-stream.js.map +1 -1
  148. package/dist/backend/llvm/local-array-reads.js +115 -19
  149. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  150. package/dist/backend/llvm/local-array-reads.test.js +14 -0
  151. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  152. package/dist/backend/llvm/loop-state.d.ts +33 -0
  153. package/dist/backend/llvm/loop-state.js +42 -0
  154. package/dist/backend/llvm/loop-state.js.map +1 -0
  155. package/dist/backend/llvm/map-number-lookup.d.ts +26 -8
  156. package/dist/backend/llvm/map-number-lookup.js +91 -31
  157. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  158. package/dist/backend/llvm/map-number-lookup.test.js +55 -0
  159. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  160. package/dist/backend/llvm/map-read-lifetimes.js +4 -2
  161. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  162. package/dist/backend/llvm/nullable-unions.d.ts +2 -1
  163. package/dist/backend/llvm/nullable-unions.js +15 -3
  164. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  165. package/dist/backend/llvm/publish.d.ts +10 -0
  166. package/dist/backend/llvm/publish.js +12 -0
  167. package/dist/backend/llvm/publish.js.map +1 -1
  168. package/dist/backend/llvm/receivers.js +6 -1
  169. package/dist/backend/llvm/receivers.js.map +1 -1
  170. package/dist/backend/llvm/record-results.d.ts +1 -9
  171. package/dist/backend/llvm/record-results.js +2 -11
  172. package/dist/backend/llvm/record-results.js.map +1 -1
  173. package/dist/backend/llvm/reference-writes.d.ts +7 -2
  174. package/dist/backend/llvm/reference-writes.js +89 -72
  175. package/dist/backend/llvm/reference-writes.js.map +1 -1
  176. package/dist/backend/llvm/running-extrema.d.ts +11 -0
  177. package/dist/backend/llvm/running-extrema.js +115 -0
  178. package/dist/backend/llvm/running-extrema.js.map +1 -0
  179. package/dist/backend/llvm/running-extrema.test.d.ts +1 -0
  180. package/dist/backend/llvm/running-extrema.test.js +89 -0
  181. package/dist/backend/llvm/running-extrema.test.js.map +1 -0
  182. package/dist/backend/llvm/shapes.d.ts +71 -15
  183. package/dist/backend/llvm/shapes.js +222 -33
  184. package/dist/backend/llvm/shapes.js.map +1 -1
  185. package/dist/backend/llvm/shapes.test.js +53 -7
  186. package/dist/backend/llvm/shapes.test.js.map +1 -1
  187. package/dist/backend/llvm/speculative-integers.d.ts +6 -0
  188. package/dist/backend/llvm/speculative-integers.js +2 -2
  189. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  190. package/dist/backend/llvm/stack-objects.d.ts +3 -2
  191. package/dist/backend/llvm/stack-objects.js +5 -2
  192. package/dist/backend/llvm/stack-objects.js.map +1 -1
  193. package/dist/backend/llvm/string-reads.d.ts +12 -0
  194. package/dist/backend/llvm/string-reads.js +44 -0
  195. package/dist/backend/llvm/string-reads.js.map +1 -1
  196. package/dist/backend/llvm/walk-borrows.d.ts +3 -0
  197. package/dist/backend/llvm/walk-borrows.js +46 -41
  198. package/dist/backend/llvm/walk-borrows.js.map +1 -1
  199. package/dist/backend/llvm/walkers.d.ts +3 -0
  200. package/dist/backend/llvm/walkers.js +88 -65
  201. package/dist/backend/llvm/walkers.js.map +1 -1
  202. package/dist/backend/llvm/wrapping-sums.d.ts +16 -1
  203. package/dist/backend/llvm/wrapping-sums.js +126 -0
  204. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  205. package/dist/backend/may-throw.d.ts +8 -10
  206. package/dist/backend/may-throw.js +14 -10
  207. package/dist/backend/may-throw.js.map +1 -1
  208. package/dist/backend/native/contracts.d.ts +5 -0
  209. package/dist/backend/native/executable.js +7 -0
  210. package/dist/backend/native/executable.js.map +1 -1
  211. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  212. package/dist/backend/native/runtime-inputs.js +1 -0
  213. package/dist/backend/native/runtime-inputs.js.map +1 -1
  214. package/dist/backend/native-link-info-core.d.ts +4 -0
  215. package/dist/backend/native-link-info-core.js.map +1 -1
  216. package/dist/backend/publication.d.ts +12 -1
  217. package/dist/backend/publication.js +37 -14
  218. package/dist/backend/publication.js.map +1 -1
  219. package/dist/backend/publication.test.js +30 -0
  220. package/dist/backend/publication.test.js.map +1 -1
  221. package/dist/backend/result-slots.d.ts +16 -0
  222. package/dist/backend/result-slots.js +23 -0
  223. package/dist/backend/result-slots.js.map +1 -0
  224. package/dist/backend/runtime-abi.d.ts +2 -2
  225. package/dist/backend/runtime-abi.js +2 -2
  226. package/dist/backend/runtime-pack-core.d.ts +1 -0
  227. package/dist/backend/runtime-pack-core.js +1 -0
  228. package/dist/backend/runtime-pack-core.js.map +1 -1
  229. package/dist/backend/runtime-pack-targets.test.js +2 -1
  230. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  231. package/dist/backend/runtime-pack.test.js +2 -1
  232. package/dist/backend/runtime-pack.test.js.map +1 -1
  233. package/dist/backend/stack-observations.d.ts +2 -1
  234. package/dist/backend/stack-observations.js +67 -42
  235. package/dist/backend/stack-observations.js.map +1 -1
  236. package/dist/backend/target-diagnostics.js +5 -3
  237. package/dist/backend/target-diagnostics.js.map +1 -1
  238. package/dist/backend/warm-cache.js +1 -0
  239. package/dist/backend/warm-cache.js.map +1 -1
  240. package/dist/cli/usage.d.ts +1 -1
  241. package/dist/cli/usage.js +3 -3
  242. package/dist/compat/fetch-profile.js +1 -1
  243. package/dist/compat/fetch-profile.js.map +1 -1
  244. package/dist/contracts/check.js +4 -3
  245. package/dist/contracts/check.js.map +1 -1
  246. package/dist/contracts/int32-elements.js +10 -2
  247. package/dist/contracts/int32-elements.js.map +1 -1
  248. package/dist/coverage/report.js +12 -3
  249. package/dist/coverage/report.js.map +1 -1
  250. package/dist/diagnostics/diagnostic.d.ts +4 -0
  251. package/dist/diagnostics/diagnostic.js.map +1 -1
  252. package/dist/diagnostics/envelope.d.ts +3 -0
  253. package/dist/diagnostics/envelope.js +1 -0
  254. package/dist/diagnostics/envelope.js.map +1 -1
  255. package/dist/executable/executable-cache.d.ts +2 -0
  256. package/dist/executable/executable-cache.js +1 -0
  257. package/dist/executable/executable-cache.js.map +1 -1
  258. package/dist/executable/executable-cache.test.js +1 -0
  259. package/dist/executable/executable-cache.test.js.map +1 -1
  260. package/dist/frontend/decl-projection.d.ts +41 -0
  261. package/dist/frontend/decl-projection.js +854 -0
  262. package/dist/frontend/decl-projection.js.map +1 -0
  263. package/dist/frontend/decl-projection.test.d.ts +1 -0
  264. package/dist/frontend/decl-projection.test.js +30 -0
  265. package/dist/frontend/decl-projection.test.js.map +1 -0
  266. package/dist/frontend/dts-paths.d.ts +15 -0
  267. package/dist/frontend/dts-paths.js +25 -0
  268. package/dist/frontend/dts-paths.js.map +1 -1
  269. package/dist/frontend/input-tracker.d.ts +6 -0
  270. package/dist/frontend/input-tracker.js +51 -28
  271. package/dist/frontend/input-tracker.js.map +1 -1
  272. package/dist/frontend/input-tracker.test.js +19 -0
  273. package/dist/frontend/input-tracker.test.js.map +1 -1
  274. package/dist/frontend/lowering/array-values.js +100 -2
  275. package/dist/frontend/lowering/array-values.js.map +1 -1
  276. package/dist/frontend/lowering/builtins/child-process-methods.js +46 -15
  277. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  278. package/dist/frontend/lowering/builtins/child-process.js +13 -2
  279. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  280. package/dist/frontend/lowering/builtins/crypto.js +84 -9
  281. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  282. package/dist/frontend/lowering/builtins/global-namespace-keys.d.ts +3 -0
  283. package/dist/frontend/lowering/builtins/global-namespace-keys.js +122 -0
  284. package/dist/frontend/lowering/builtins/global-namespace-keys.js.map +1 -0
  285. package/dist/frontend/lowering/builtins/numbers.js +9 -1
  286. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  287. package/dist/frontend/lowering/builtins/promises.d.ts +6 -0
  288. package/dist/frontend/lowering/builtins/promises.js +88 -2
  289. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  290. package/dist/frontend/lowering/builtins/readline.d.ts +5 -1
  291. package/dist/frontend/lowering/builtins/readline.js +35 -3
  292. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  293. package/dist/frontend/lowering/builtins/url.js +24 -1
  294. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  295. package/dist/frontend/lowering/builtins/webassembly.js +6 -3
  296. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  297. package/dist/frontend/lowering/class-callbacks.d.ts +5 -2
  298. package/dist/frontend/lowering/class-callbacks.js +82 -12
  299. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  300. package/dist/frontend/lowering/class-construction.d.ts +4 -1
  301. package/dist/frontend/lowering/class-construction.js +17 -3
  302. package/dist/frontend/lowering/class-construction.js.map +1 -1
  303. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +39 -2
  304. package/dist/frontend/lowering/class-dynamic-dispatch.js +766 -108
  305. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  306. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +47 -0
  307. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  308. package/dist/frontend/lowering/class-iterables.d.ts +2 -1
  309. package/dist/frontend/lowering/class-iterables.js +9 -1
  310. package/dist/frontend/lowering/class-iterables.js.map +1 -1
  311. package/dist/frontend/lowering/class-method-mutations.js +32 -9
  312. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  313. package/dist/frontend/lowering/class-prototypes.js +31 -2
  314. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  315. package/dist/frontend/lowering/class-runtime-statics.d.ts +9 -3
  316. package/dist/frontend/lowering/class-runtime-statics.js +29 -4
  317. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  318. package/dist/frontend/lowering/coercions/structural-plans.js +48 -1
  319. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  320. package/dist/frontend/lowering/coercions/structural.js +91 -1
  321. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  322. package/dist/frontend/lowering/containers/array-callback-call.js +2 -2
  323. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  324. package/dist/frontend/lowering/containers/array-callbacks.js +338 -18
  325. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  326. package/dist/frontend/lowering/containers/array-concat.js +10 -0
  327. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  328. package/dist/frontend/lowering/containers/array-methods.js +15 -0
  329. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  330. package/dist/frontend/lowering/containers/array-pipelines.js +19 -8
  331. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  332. package/dist/frontend/lowering/containers/bytes.js +2 -1
  333. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  334. package/dist/frontend/lowering/containers/callback-arguments.js +3 -0
  335. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  336. package/dist/frontend/lowering/containers/collection-methods.js +7 -2
  337. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  338. package/dist/frontend/lowering/containers/filter-predicates.d.ts +6 -0
  339. package/dist/frontend/lowering/containers/filter-predicates.js +205 -0
  340. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -0
  341. package/dist/frontend/lowering/containers/indexed-objects.d.ts +0 -12
  342. package/dist/frontend/lowering/containers/indexed-objects.js +46 -7
  343. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  344. package/dist/frontend/lowering/containers/string-and-regexp.js +55 -9
  345. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  346. package/dist/frontend/lowering/containers/string-replacement.js +43 -19
  347. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  348. package/dist/frontend/lowering/dispatch-sites.js +15 -1
  349. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  350. package/dist/frontend/lowering/divergences.js +9 -1
  351. package/dist/frontend/lowering/divergences.js.map +1 -1
  352. package/dist/frontend/lowering/error-methods.js +47 -2
  353. package/dist/frontend/lowering/error-methods.js.map +1 -1
  354. package/dist/frontend/lowering/expressions/array-literals.js +47 -0
  355. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  356. package/dist/frontend/lowering/expressions/binary.js +36 -2
  357. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  358. package/dist/frontend/lowering/expressions/element-access.js +90 -13
  359. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  360. package/dist/frontend/lowering/expressions/identifiers.js +33 -4
  361. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  362. package/dist/frontend/lowering/expressions/narrowing.js +95 -1
  363. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  364. package/dist/frontend/lowering/expressions/nullish-assignment.js +3 -1
  365. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  366. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  367. package/dist/frontend/lowering/expressions/object-literals.js +138 -51
  368. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  369. package/dist/frontend/lowering/expressions/optional-chains.js +12 -0
  370. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  371. package/dist/frontend/lowering/expressions/property-access.js +113 -11
  372. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  373. package/dist/frontend/lowering/expressions/relational.js +212 -33
  374. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  375. package/dist/frontend/lowering/expressions/union-fields.js +4 -0
  376. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  377. package/dist/frontend/lowering/expressions/updates.js +22 -3
  378. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  379. package/dist/frontend/lowering/frozen-records.d.ts +28 -0
  380. package/dist/frontend/lowering/frozen-records.js +322 -0
  381. package/dist/frontend/lowering/frozen-records.js.map +1 -0
  382. package/dist/frontend/lowering/function-returns.js +49 -0
  383. package/dist/frontend/lowering/function-returns.js.map +1 -1
  384. package/dist/frontend/lowering/generic-functions.js +7 -2
  385. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  386. package/dist/frontend/lowering/iterable-values.d.ts +49 -0
  387. package/dist/frontend/lowering/iterable-values.js +297 -0
  388. package/dist/frontend/lowering/iterable-values.js.map +1 -0
  389. package/dist/frontend/lowering/iterator-adapters.js +186 -1
  390. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  391. package/dist/frontend/lowering/js-class-fields.d.ts +8 -0
  392. package/dist/frontend/lowering/js-class-fields.js +45 -10
  393. package/dist/frontend/lowering/js-class-fields.js.map +1 -1
  394. package/dist/frontend/lowering/key-order-witness.d.ts +18 -3
  395. package/dist/frontend/lowering/key-order-witness.js +770 -22
  396. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  397. package/dist/frontend/lowering/key-order-witness.test.js +428 -8
  398. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  399. package/dist/frontend/lowering/lower-async-iteration.js +4 -1
  400. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  401. package/dist/frontend/lowering/lower-calls.d.ts +7 -0
  402. package/dist/frontend/lowering/lower-calls.js +443 -41
  403. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  404. package/dist/frontend/lowering/lower-classes.d.ts +11 -2
  405. package/dist/frontend/lowering/lower-classes.js +302 -22
  406. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  407. package/dist/frontend/lowering/lower-dgram.js +3 -1
  408. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  409. package/dist/frontend/lowering/lower-exprs.js +10 -2
  410. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  411. package/dist/frontend/lowering/lower-functions.d.ts +11 -0
  412. package/dist/frontend/lowering/lower-functions.js +83 -0
  413. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  414. package/dist/frontend/lowering/lower-generators.js +41 -31
  415. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  416. package/dist/frontend/lowering/lower-global-value.js +6 -3
  417. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  418. package/dist/frontend/lowering/lower-inspect.js +18 -6
  419. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  420. package/dist/frontend/lowering/lower-modules.js +32 -0
  421. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  422. package/dist/frontend/lowering/lower-namespaces.js +5 -1
  423. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  424. package/dist/frontend/lowering/lower-server.js +2 -2
  425. package/dist/frontend/lowering/lower-server.js.map +1 -1
  426. package/dist/frontend/lowering/lower-stdlib.d.ts +5 -0
  427. package/dist/frontend/lowering/lower-stdlib.js +30 -0
  428. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  429. package/dist/frontend/lowering/lower-stmts.d.ts +23 -0
  430. package/dist/frontend/lowering/lower-stmts.js +454 -48
  431. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  432. package/dist/frontend/lowering/lower-stream.d.ts +20 -2
  433. package/dist/frontend/lowering/lower-stream.js +1483 -156
  434. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  435. package/dist/frontend/lowering/lowerer.d.ts +77 -6
  436. package/dist/frontend/lowering/lowerer.js +313 -29
  437. package/dist/frontend/lowering/lowerer.js.map +1 -1
  438. package/dist/frontend/lowering/module-namespace-elements.d.ts +11 -1
  439. package/dist/frontend/lowering/module-namespace-elements.js +82 -5
  440. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  441. package/dist/frontend/lowering/new-target.d.ts +12 -0
  442. package/dist/frontend/lowering/new-target.js +280 -0
  443. package/dist/frontend/lowering/new-target.js.map +1 -0
  444. package/dist/frontend/lowering/surfaces.d.ts +3 -0
  445. package/dist/frontend/lowering/surfaces.js +18 -6
  446. package/dist/frontend/lowering/surfaces.js.map +1 -1
  447. package/dist/frontend/lowering/undefined-index.d.ts +27 -0
  448. package/dist/frontend/lowering/undefined-index.js +82 -0
  449. package/dist/frontend/lowering/undefined-index.js.map +1 -0
  450. package/dist/frontend/lowering/var-hoisting.js +29 -13
  451. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  452. package/dist/frontend/lowering/width-lift.d.ts +18 -0
  453. package/dist/frontend/npm-static-bundled-chunks.js +9 -11
  454. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -1
  455. package/dist/frontend/npm-static-bundled-chunks.test.js +6 -5
  456. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -1
  457. package/dist/frontend/npm-static-rewrite-syntax.js +9 -1
  458. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  459. package/dist/frontend/npm-static.js +4 -20
  460. package/dist/frontend/npm-static.js.map +1 -1
  461. package/dist/frontend/package-shims.d.ts +3 -0
  462. package/dist/frontend/package-shims.js +71 -8
  463. package/dist/frontend/package-shims.js.map +1 -1
  464. package/dist/frontend/pipeline.js +18 -10
  465. package/dist/frontend/pipeline.js.map +1 -1
  466. package/dist/frontend/process-fork.d.ts +25 -0
  467. package/dist/frontend/process-fork.js +2 -0
  468. package/dist/frontend/process-fork.js.map +1 -0
  469. package/dist/frontend/program.d.ts +8 -1
  470. package/dist/frontend/program.js +484 -69
  471. package/dist/frontend/program.js.map +1 -1
  472. package/dist/frontend/program.test.js +43 -3
  473. package/dist/frontend/program.test.js.map +1 -1
  474. package/dist/frontend/token-equivalence.d.ts +3 -0
  475. package/dist/frontend/token-equivalence.js +409 -0
  476. package/dist/frontend/token-equivalence.js.map +1 -0
  477. package/dist/frontend/token-equivalence.test.d.ts +1 -0
  478. package/dist/frontend/token-equivalence.test.js +67 -0
  479. package/dist/frontend/token-equivalence.test.js.map +1 -0
  480. package/dist/frontend/ts7/ast-node.d.ts +22 -0
  481. package/dist/frontend/ts7/ast-node.js +1048 -103
  482. package/dist/frontend/ts7/ast-node.js.map +1 -1
  483. package/dist/frontend/ts7/ast-node.test.js +24 -0
  484. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  485. package/dist/frontend/ts7/ast-wire.d.ts +4 -3
  486. package/dist/frontend/ts7/ast-wire.js +34 -24
  487. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  488. package/dist/frontend/ts7/ast-wire.test.js +23 -0
  489. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  490. package/dist/frontend/ts7/checker-backend.d.ts +3 -4
  491. package/dist/frontend/ts7/checker-backend.js +2 -2
  492. package/dist/frontend/ts7/checker-backend.js.map +1 -1
  493. package/dist/frontend/ts7/checker-backend.test.js +5 -9
  494. package/dist/frontend/ts7/checker-backend.test.js.map +1 -1
  495. package/dist/frontend/ts7/checker.d.ts +4 -0
  496. package/dist/frontend/ts7/checker.js +7 -0
  497. package/dist/frontend/ts7/checker.js.map +1 -1
  498. package/dist/frontend/ts7/lib-diagnostics.d.ts +24 -0
  499. package/dist/frontend/ts7/lib-diagnostics.js +307 -0
  500. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -0
  501. package/dist/frontend/ts7/lib-diagnostics.test.d.ts +1 -0
  502. package/dist/frontend/ts7/lib-diagnostics.test.js +199 -0
  503. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -0
  504. package/dist/frontend/ts7/program-host.d.ts +7 -0
  505. package/dist/frontend/ts7/program-host.js +25 -2
  506. package/dist/frontend/ts7/program-host.js.map +1 -1
  507. package/dist/frontend/ts7/session.d.ts +14 -1
  508. package/dist/frontend/ts7/session.js +22 -0
  509. package/dist/frontend/ts7/session.js.map +1 -1
  510. package/dist/frontend/type-mapper.d.ts +13 -1
  511. package/dist/frontend/type-mapper.js +191 -11
  512. package/dist/frontend/type-mapper.js.map +1 -1
  513. package/dist/index.d.ts +0 -5
  514. package/dist/index.js +34 -4
  515. package/dist/index.js.map +1 -1
  516. package/dist/ir/analysis.js +5 -3
  517. package/dist/ir/analysis.js.map +1 -1
  518. package/dist/ir/array-length-stability.d.ts +4 -0
  519. package/dist/ir/array-length-stability.js +19 -6
  520. package/dist/ir/array-length-stability.js.map +1 -1
  521. package/dist/ir/array-length-stability.test.js +24 -0
  522. package/dist/ir/array-length-stability.test.js.map +1 -1
  523. package/dist/ir/builtin-effects.d.ts +7 -0
  524. package/dist/ir/builtin-effects.js +52 -0
  525. package/dist/ir/builtin-effects.js.map +1 -1
  526. package/dist/ir/builtin-signatures.d.ts +6 -4
  527. package/dist/ir/builtin-signatures.js +166 -13
  528. package/dist/ir/builtin-signatures.js.map +1 -1
  529. package/dist/ir/callback-specialization.d.ts +2 -1
  530. package/dist/ir/callback-specialization.js +23 -18
  531. package/dist/ir/callback-specialization.js.map +1 -1
  532. package/dist/ir/char-unit-locals.d.ts +19 -0
  533. package/dist/ir/char-unit-locals.js +185 -0
  534. package/dist/ir/char-unit-locals.js.map +1 -0
  535. package/dist/ir/char-unit-locals.test.d.ts +1 -0
  536. package/dist/ir/char-unit-locals.test.js +94 -0
  537. package/dist/ir/char-unit-locals.test.js.map +1 -0
  538. package/dist/ir/final-fields.d.ts +2 -1
  539. package/dist/ir/final-fields.js +14 -16
  540. package/dist/ir/final-fields.js.map +1 -1
  541. package/dist/ir/function-references.d.ts +2 -0
  542. package/dist/ir/function-references.js +2 -0
  543. package/dist/ir/function-references.js.map +1 -1
  544. package/dist/ir/function-references.test.js +3 -0
  545. package/dist/ir/function-references.test.js.map +1 -1
  546. package/dist/ir/initializer-bindings.d.ts +2 -1
  547. package/dist/ir/initializer-bindings.js +27 -20
  548. package/dist/ir/initializer-bindings.js.map +1 -1
  549. package/dist/ir/int32-arrays.d.ts +108 -0
  550. package/dist/ir/int32-arrays.js +831 -0
  551. package/dist/ir/int32-arrays.js.map +1 -0
  552. package/dist/ir/int32-slots.d.ts +24 -2
  553. package/dist/ir/int32-slots.js +259 -57
  554. package/dist/ir/int32-slots.js.map +1 -1
  555. package/dist/ir/integer-loops.d.ts +3 -3
  556. package/dist/ir/integer-loops.js +14 -6
  557. package/dist/ir/integer-loops.js.map +1 -1
  558. package/dist/ir/integer-loops.test.js +10 -0
  559. package/dist/ir/integer-loops.test.js.map +1 -1
  560. package/dist/ir/integer-ranges.d.ts +5 -0
  561. package/dist/ir/integer-ranges.js +125 -12
  562. package/dist/ir/integer-ranges.js.map +1 -1
  563. package/dist/ir/integer-ranges.test.js +30 -0
  564. package/dist/ir/integer-ranges.test.js.map +1 -1
  565. package/dist/ir/ir.d.ts +70 -7
  566. package/dist/ir/ir.js +58 -1
  567. package/dist/ir/ir.js.map +1 -1
  568. package/dist/ir/ir.test.js +21 -1
  569. package/dist/ir/ir.test.js.map +1 -1
  570. package/dist/ir/js-ic.d.ts +19 -2
  571. package/dist/ir/js-ic.js +95 -11
  572. package/dist/ir/js-ic.js.map +1 -1
  573. package/dist/ir/js-ic.test.js +188 -0
  574. package/dist/ir/js-ic.test.js.map +1 -1
  575. package/dist/ir/node-index.d.ts +57 -0
  576. package/dist/ir/node-index.js +215 -0
  577. package/dist/ir/node-index.js.map +1 -0
  578. package/dist/ir/paired-while-loops.d.ts +25 -0
  579. package/dist/ir/paired-while-loops.js +335 -0
  580. package/dist/ir/paired-while-loops.js.map +1 -0
  581. package/dist/ir/paired-while-loops.test.d.ts +1 -0
  582. package/dist/ir/paired-while-loops.test.js +163 -0
  583. package/dist/ir/paired-while-loops.test.js.map +1 -0
  584. package/dist/ir/parameter-versions.d.ts +25 -0
  585. package/dist/ir/parameter-versions.js +300 -0
  586. package/dist/ir/parameter-versions.js.map +1 -0
  587. package/dist/ir/runtime-features.d.ts +34 -13
  588. package/dist/ir/runtime-features.js +152 -38
  589. package/dist/ir/runtime-features.js.map +1 -1
  590. package/dist/ir/serialize.d.ts +12 -2
  591. package/dist/ir/serialize.js +16 -3
  592. package/dist/ir/serialize.js.map +1 -1
  593. package/dist/ir/serialize.test.js +17 -0
  594. package/dist/ir/serialize.test.js.map +1 -1
  595. package/dist/ir/traverse.js +18 -6
  596. package/dist/ir/traverse.js.map +1 -1
  597. package/dist/ir/validate.js +122 -36
  598. package/dist/ir/validate.js.map +1 -1
  599. package/dist/library/ir-policy.js +2 -0
  600. package/dist/library/ir-policy.js.map +1 -1
  601. package/dist/native/cache.d.ts +6 -1
  602. package/dist/native/cache.js +28 -5
  603. package/dist/native/cache.js.map +1 -1
  604. package/dist/native/cache.test.js +16 -2
  605. package/dist/native/cache.test.js.map +1 -1
  606. package/dist/native/cli.js +21 -1
  607. package/dist/native/cli.js.map +1 -1
  608. package/dist/native/compiler.js +8 -6
  609. package/dist/native/compiler.js.map +1 -1
  610. package/dist/native/executable-cache.d.ts +1 -1
  611. package/dist/native/executable-cache.js +2 -2
  612. package/dist/native/executable-cache.js.map +1 -1
  613. package/dist/native/prepare.d.ts +3 -1
  614. package/dist/native/prepare.js +119 -31
  615. package/dist/native/prepare.js.map +1 -1
  616. package/dist/native/prepare.test.js +78 -18
  617. package/dist/native/prepare.test.js.map +1 -1
  618. package/dist/native/sanitizer.test.js +2 -0
  619. package/dist/native/sanitizer.test.js.map +1 -1
  620. package/dist/native/text-file.d.ts +13 -3
  621. package/dist/native/text-file.js +63 -9
  622. package/dist/native/text-file.js.map +1 -1
  623. package/dist/native/text-file.test.d.ts +1 -0
  624. package/dist/native/text-file.test.js +49 -0
  625. package/dist/native/text-file.test.js.map +1 -0
  626. package/dist/native/toolchain.js +4 -4
  627. package/dist/native/toolchain.js.map +1 -1
  628. package/dist/native/toolchain.test.js +3 -3
  629. package/dist/native/toolchain.test.js.map +1 -1
  630. package/package.json +21 -21
  631. package/shims/chalk/v5.ts +688 -0
  632. package/shims/hono-node-server/v2.ts +645 -0
  633. package/shims/hot-shots/client.ts +1126 -0
  634. package/shims/hot-shots/v8-unix-dgram.ts +8 -0
  635. package/shims/hot-shots/v8.ts +8 -0
  636. package/surface-manifest.json +26 -4
@@ -1106,6 +1106,34 @@ declare var ReadableStream: {
1106
1106
  from(iterable: string): ReadableStream<string>;
1107
1107
  readonly prototype: ReadableStream<unknown>;
1108
1108
  };
1109
+ /* The writable side of a TransformStream and its writer. The
1110
+ * WritableStream constructor has no native lowering; writable streams come
1111
+ * from `new TransformStream()`. */
1112
+ interface WritableStreamDefaultWriter<W = unknown> {
1113
+ readonly closed: Promise<void>;
1114
+ readonly desiredSize: number | null;
1115
+ readonly ready: Promise<void>;
1116
+ abort(reason?: unknown): Promise<void>;
1117
+ close(): Promise<void>;
1118
+ releaseLock(): void;
1119
+ write(chunk?: W): Promise<void>;
1120
+ }
1121
+ interface WritableStream<W = unknown> {
1122
+ readonly locked: boolean;
1123
+ abort(reason?: unknown): Promise<void>;
1124
+ close(): Promise<void>;
1125
+ getWriter(): WritableStreamDefaultWriter<W>;
1126
+ }
1127
+ /* The identity transform: chunks written to `writable` are read from
1128
+ * `readable`, and a write completes when its chunk is read. */
1129
+ interface TransformStream<I = unknown, O = unknown> {
1130
+ readonly readable: ReadableStream<O>;
1131
+ readonly writable: WritableStream<I>;
1132
+ }
1133
+ declare var TransformStream: {
1134
+ new <I = unknown, O = I>(): TransformStream<I, O>;
1135
+ readonly prototype: TransformStream<unknown, unknown>;
1136
+ };
1109
1137
 
1110
1138
  /* fetch, typed as the native JSON + readable-stream slice: one URL, an
1111
1139
  * optional init with the members CLI requests carry, and a Response
@@ -3171,12 +3199,17 @@ declare module "crypto" {
3171
3199
  callback: (error: Error | null, buffer: Buffer) => void,
3172
3200
  ): void;
3173
3201
  export type BinaryLike = string | ArrayBuffer | ArrayBufferView;
3174
- /* Cipheriv/Decipheriv: aes-128/192/256 in cbc, ctr, and gcm modes and
3175
- * chacha20-poly1305. Both are Transforms: written chunks go through
3176
- * update(), and the end pushes final(). */
3202
+ /* Cipheriv/Decipheriv: aes-128/192/256 in cbc, ctr, gcm, ccm, ecb, cfb,
3203
+ * cfb8, cfb1, and ofb modes and their key wraps, des-ede3 and des-ede,
3204
+ * chacha20, and chacha20-poly1305. Both are Transforms: written chunks go
3205
+ * through update(), and the end pushes final(). */
3206
+ export type CipherCCMTypes = "aes-128-ccm" | "aes-192-ccm" | "aes-256-ccm";
3177
3207
  export type CipherGCMTypes = "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm";
3178
3208
  export type CipherChaCha20Poly1305Types = "chacha20-poly1305";
3179
3209
  export type CipherKey = BinaryLike | KeyObject;
3210
+ export interface CipherCCMOptions {
3211
+ authTagLength: number;
3212
+ }
3180
3213
  export interface CipherGCMOptions {
3181
3214
  authTagLength?: number;
3182
3215
  }
@@ -3196,6 +3229,10 @@ declare module "crypto" {
3196
3229
  final(outputEncoding: BufferEncoding): string;
3197
3230
  setAutoPadding(autoPadding?: boolean): this;
3198
3231
  }
3232
+ export interface CipherCCM extends Cipheriv {
3233
+ setAAD(buffer: ArrayBufferView, options: { plaintextLength: number }): this;
3234
+ getAuthTag(): Buffer;
3235
+ }
3199
3236
  export interface CipherGCM extends Cipheriv {
3200
3237
  setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this;
3201
3238
  getAuthTag(): Buffer;
@@ -3217,6 +3254,10 @@ declare module "crypto" {
3217
3254
  final(outputEncoding: BufferEncoding): string;
3218
3255
  setAutoPadding(autoPadding?: boolean): this;
3219
3256
  }
3257
+ export interface DecipherCCM extends Decipheriv {
3258
+ setAuthTag(buffer: ArrayBufferView): this;
3259
+ setAAD(buffer: ArrayBufferView, options: { plaintextLength: number }): this;
3260
+ }
3220
3261
  export interface DecipherGCM extends Decipheriv {
3221
3262
  setAuthTag(buffer: ArrayBufferView): this;
3222
3263
  setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this;
@@ -3225,6 +3266,12 @@ declare module "crypto" {
3225
3266
  setAuthTag(buffer: ArrayBufferView): this;
3226
3267
  setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this;
3227
3268
  }
3269
+ export function createCipheriv(
3270
+ algorithm: CipherCCMTypes,
3271
+ key: CipherKey,
3272
+ iv: BinaryLike,
3273
+ options: CipherCCMOptions,
3274
+ ): CipherCCM;
3228
3275
  export function createCipheriv(
3229
3276
  algorithm: CipherGCMTypes,
3230
3277
  key: CipherKey,
@@ -3243,6 +3290,12 @@ declare module "crypto" {
3243
3290
  iv: BinaryLike | null,
3244
3291
  options?: { authTagLength?: number },
3245
3292
  ): Cipheriv;
3293
+ export function createDecipheriv(
3294
+ algorithm: CipherCCMTypes,
3295
+ key: CipherKey,
3296
+ iv: BinaryLike,
3297
+ options: CipherCCMOptions,
3298
+ ): DecipherCCM;
3246
3299
  export function createDecipheriv(
3247
3300
  algorithm: CipherGCMTypes,
3248
3301
  key: CipherKey,
@@ -3351,6 +3404,61 @@ declare module "crypto" {
3351
3404
  ): DiffieHellman;
3352
3405
  export function getDiffieHellman(groupName: string): DiffieHellmanGroup;
3353
3406
  export function createDiffieHellmanGroup(name: string): DiffieHellmanGroup;
3407
+ export type LargeNumberLike = ArrayBufferView | SharedArrayBuffer | ArrayBuffer | bigint;
3408
+ export interface GeneratePrimeOptions {
3409
+ add?: LargeNumberLike | undefined;
3410
+ rem?: LargeNumberLike | undefined;
3411
+ safe?: boolean | undefined;
3412
+ bigint?: boolean | undefined;
3413
+ }
3414
+ export interface GeneratePrimeOptionsBigInt extends GeneratePrimeOptions {
3415
+ bigint: true;
3416
+ }
3417
+ export interface GeneratePrimeOptionsArrayBuffer extends GeneratePrimeOptions {
3418
+ bigint?: false | undefined;
3419
+ }
3420
+ export function generatePrime(
3421
+ size: number,
3422
+ callback: (err: Error | null, prime: ArrayBuffer) => void,
3423
+ ): void;
3424
+ export function generatePrime(
3425
+ size: number,
3426
+ options: GeneratePrimeOptionsBigInt,
3427
+ callback: (err: Error | null, prime: bigint) => void,
3428
+ ): void;
3429
+ export function generatePrime(
3430
+ size: number,
3431
+ options: GeneratePrimeOptionsArrayBuffer,
3432
+ callback: (err: Error | null, prime: ArrayBuffer) => void,
3433
+ ): void;
3434
+ export function generatePrime(
3435
+ size: number,
3436
+ options: GeneratePrimeOptions,
3437
+ callback: (err: Error | null, prime: ArrayBuffer | bigint) => void,
3438
+ ): void;
3439
+ export function generatePrimeSync(size: number): ArrayBuffer;
3440
+ export function generatePrimeSync(size: number, options: GeneratePrimeOptionsBigInt): bigint;
3441
+ export function generatePrimeSync(
3442
+ size: number,
3443
+ options: GeneratePrimeOptionsArrayBuffer,
3444
+ ): ArrayBuffer;
3445
+ export function generatePrimeSync(
3446
+ size: number,
3447
+ options: GeneratePrimeOptions,
3448
+ ): ArrayBuffer | bigint;
3449
+ export interface CheckPrimeOptions {
3450
+ checks?: number | undefined;
3451
+ }
3452
+ export function checkPrime(
3453
+ value: LargeNumberLike,
3454
+ callback: (err: Error | null, result: boolean) => void,
3455
+ ): void;
3456
+ export function checkPrime(
3457
+ value: LargeNumberLike,
3458
+ options: CheckPrimeOptions,
3459
+ callback: (err: Error | null, result: boolean) => void,
3460
+ ): void;
3461
+ export function checkPrimeSync(candidate: LargeNumberLike, options?: CheckPrimeOptions): boolean;
3354
3462
  export interface ScryptOptions {
3355
3463
  N?: number;
3356
3464
  r?: number;
@@ -3412,6 +3520,34 @@ declare module "crypto" {
3412
3520
  * per member like http2.constants. */
3413
3521
  export function getFips(): 1 | 0;
3414
3522
  export function getCiphers(): string[];
3523
+ export type CipherMode =
3524
+ | "cbc"
3525
+ | "ccm"
3526
+ | "cfb"
3527
+ | "ctr"
3528
+ | "ecb"
3529
+ | "gcm"
3530
+ | "ocb"
3531
+ | "ofb"
3532
+ | "stream"
3533
+ | "wrap"
3534
+ | "xts";
3535
+ export interface CipherInfoOptions {
3536
+ keyLength?: number | undefined;
3537
+ ivLength?: number | undefined;
3538
+ }
3539
+ export interface CipherInfo {
3540
+ name: string;
3541
+ nid: number;
3542
+ blockSize?: number | undefined;
3543
+ ivLength?: number | undefined;
3544
+ keyLength: number;
3545
+ mode: CipherMode;
3546
+ }
3547
+ export function getCipherInfo(
3548
+ nameOrNid: string | number,
3549
+ options?: CipherInfoOptions,
3550
+ ): CipherInfo | undefined;
3415
3551
  export function getHashes(): string[];
3416
3552
  export function getCurves(): string[];
3417
3553
  /* Node v24 crypto.constants, literal-typed (the Http2Constants
@@ -3512,7 +3648,8 @@ declare module "child_process" {
3512
3648
  * killSignal at the deadline and the result carries error: ETIMEDOUT +
3513
3649
  * the signal, never a throw), killSignal (a signal NAME literal),
3514
3650
  * stdio ("ignore"/"inherit"/"pipe" or a 3-tuple of those — captures
3515
- * read "" for non-piped streams), and windowsHide (a POSIX no-op). */
3651
+ * read "" for non-piped streams), env (replaces the child's
3652
+ * environment), and windowsHide (a POSIX no-op). */
3516
3653
  export function spawnSync(
3517
3654
  command: string,
3518
3655
  args?: string[],
@@ -3521,6 +3658,7 @@ declare module "child_process" {
3521
3658
  timeout?: number;
3522
3659
  killSignal?: string;
3523
3660
  stdio?: "pipe" | "ignore" | "inherit" | ("pipe" | "ignore" | "inherit")[];
3661
+ env?: { [k: string]: string | undefined };
3524
3662
  windowsHide?: boolean;
3525
3663
  },
3526
3664
  ): SpawnSyncReturns;
@@ -3554,20 +3692,20 @@ declare module "child_process" {
3554
3692
 
3555
3693
  export interface ChildProcess extends Disposable {
3556
3694
  ref(): void;
3557
- on(event: "spawn", listener: () => void): void;
3558
- once(event: "spawn", listener: () => void): void;
3695
+ on(event: "spawn", listener: () => void): this;
3696
+ once(event: "spawn", listener: () => void): this;
3559
3697
  /* The exit listener may also take Node's second parameter — the
3560
3698
  * terminating signal's name, null for a normal exit. */
3561
- on(event: "exit", listener: (code: number | null, signal: string | null) => void): void;
3562
- on(event: "close", listener: (code: number | null, signal: string | null) => void): void;
3563
- on(event: "error", listener: (err: Error) => void): void;
3564
- once(event: "exit", listener: (code: number | null, signal: string | null) => void): void;
3565
- once(event: "close", listener: (code: number | null, signal: string | null) => void): void;
3566
- once(event: "error", listener: (err: Error) => void): void;
3567
- on(event: "message", listener: (message: any) => void): void;
3568
- on(event: "disconnect", listener: () => void): void;
3569
- once(event: "message", listener: (message: any) => void): void;
3570
- once(event: "disconnect", listener: () => void): void;
3699
+ on(event: "exit", listener: (code: number | null, signal: string | null) => void): this;
3700
+ on(event: "close", listener: (code: number | null, signal: string | null) => void): this;
3701
+ on(event: "error", listener: (err: Error) => void): this;
3702
+ once(event: "exit", listener: (code: number | null, signal: string | null) => void): this;
3703
+ once(event: "close", listener: (code: number | null, signal: string | null) => void): this;
3704
+ once(event: "error", listener: (err: Error) => void): this;
3705
+ on(event: "message", listener: (message: any) => void): this;
3706
+ on(event: "disconnect", listener: () => void): this;
3707
+ once(event: "message", listener: (message: any) => void): this;
3708
+ once(event: "disconnect", listener: () => void): this;
3571
3709
  /* The lifecycle members, Node's exact shapes: pid is undefined exactly
3572
3710
  * when the spawn failed; exitCode is null while running, the code
3573
3711
  * after a normal exit, null for a signal death, and -errno once a
@@ -3780,9 +3918,8 @@ declare module "util" {
3780
3918
  export type TextDecoder = globalThis.TextDecoder;
3781
3919
  export var TextEncoder: typeof globalThis.TextEncoder;
3782
3920
  export var TextDecoder: typeof globalThis.TextDecoder;
3783
- /* stream.pipeline's (...streams: unknown[]) => unknown is assignable to
3784
- * every other target's parameter type, so its overload comes first; no
3785
- * other target is assignable to it. */
3921
+ /* stream.pipeline's overload comes first: its __promisify__ member keeps
3922
+ * every other target out of it. */
3786
3923
  export function promisify(
3787
3924
  fn: typeof import("node:stream").pipeline,
3788
3925
  ): typeof import("node:stream/promises").pipeline;
@@ -5504,6 +5641,7 @@ declare module "http" {
5504
5641
  readonly trailersDistinct: { [name: string]: string[] | undefined };
5505
5642
  readonly rawTrailers: string[];
5506
5643
  resume(): void;
5644
+ pause(): void;
5507
5645
  destroy(): void;
5508
5646
  setTimeout(msecs: number, callback?: () => void): this;
5509
5647
  /* setEncoding('utf8'): 'data' delivers strings (other real encodings
@@ -5929,6 +6067,7 @@ declare module "http2" {
5929
6067
  export interface Http2Stream {
5930
6068
  on(event: "error" | "close", listener: (err: Error) => void): void;
5931
6069
  once(event: "error" | "close", listener: (err: Error) => void): void;
6070
+ addListener(event: "error" | "close", listener: (err: Error) => void): void;
5932
6071
  destroy(): void;
5933
6072
  }
5934
6073
  export interface Http2ServerRequest {
@@ -6029,11 +6168,6 @@ declare module "http2" {
6029
6168
  listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
6030
6169
  ): void;
6031
6170
  on(event: "session", listener: (session: ServerHttp2Session) => void): void;
6032
- once(
6033
- event: "stream",
6034
- listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
6035
- ): void;
6036
- once(event: "session", listener: (session: ServerHttp2Session) => void): void;
6037
6171
  /* HTTP CONNECT (and, in Node, the h2 extended CONNECT — which the
6038
6172
  * allowHTTP1 lowering never sees): the second argument is the raw
6039
6173
  * socket on HTTP/1.1 connections; narrow with instanceof. */
@@ -6051,6 +6185,42 @@ declare module "http2" {
6051
6185
  ): void;
6052
6186
  once(event: "error", listener: (err: Error) => void): void;
6053
6187
  once(event: "close", listener: () => void): void;
6188
+ once(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void;
6189
+ once(
6190
+ event: "stream",
6191
+ listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
6192
+ ): void;
6193
+ once(event: "session", listener: (session: ServerHttp2Session) => void): void;
6194
+ once(
6195
+ event: "connect",
6196
+ listener: (
6197
+ req: Http2ServerRequest | import("http").IncomingMessage,
6198
+ resOrSocket: Http2ServerResponse | Socket,
6199
+ ) => void,
6200
+ ): void;
6201
+ addListener(event: "connection", listener: (socket: Socket) => void): void;
6202
+ addListener(
6203
+ event: "request",
6204
+ listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void,
6205
+ ): void;
6206
+ addListener(event: "error", listener: (err: Error) => void): void;
6207
+ addListener(event: "close", listener: () => void): void;
6208
+ addListener(
6209
+ event: "sessionError",
6210
+ listener: (err: Error, session: ServerHttp2Session) => void,
6211
+ ): void;
6212
+ addListener(
6213
+ event: "stream",
6214
+ listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
6215
+ ): void;
6216
+ addListener(event: "session", listener: (session: ServerHttp2Session) => void): void;
6217
+ addListener(
6218
+ event: "connect",
6219
+ listener: (
6220
+ req: Http2ServerRequest | import("http").IncomingMessage,
6221
+ resOrSocket: Http2ServerResponse | Socket,
6222
+ ) => void,
6223
+ ): void;
6054
6224
  }
6055
6225
  export interface SecureServerOptions {
6056
6226
  allowHTTP1?: boolean;
@@ -6392,6 +6562,28 @@ declare module "http2" {
6392
6562
  listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void,
6393
6563
  ): void;
6394
6564
  once(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void;
6565
+ once(event: "frameError", listener: (type: number, code: number, id: number) => void): void;
6566
+ once(event: "ping", listener: (payload: Uint8Array) => void): void;
6567
+ addListener(event: "close" | "timeout", listener: () => void): void;
6568
+ addListener(event: "error", listener: (err: Error) => void): void;
6569
+ addListener(
6570
+ event: "connect",
6571
+ listener: (session: Http2Session, socket: import("net").Socket) => void,
6572
+ ): void;
6573
+ addListener(
6574
+ event: "stream",
6575
+ listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
6576
+ ): void;
6577
+ addListener(
6578
+ event: "goaway",
6579
+ listener: (errorCode: number, lastStreamID: number, opaqueData?: Uint8Array) => void,
6580
+ ): void;
6581
+ addListener(event: "localSettings" | "remoteSettings", listener: (settings: any) => void): void;
6582
+ addListener(
6583
+ event: "frameError",
6584
+ listener: (type: number, code: number, id: number) => void,
6585
+ ): void;
6586
+ addListener(event: "ping", listener: (payload: Uint8Array) => void): void;
6395
6587
  }
6396
6588
 
6397
6589
  export interface ClientHttp2Session extends Http2Session {
@@ -6469,7 +6661,30 @@ declare module "http2" {
6469
6661
  listener: () => void,
6470
6662
  ): void;
6471
6663
  once(event: "error", listener: (err: Error) => void): void;
6664
+ once(event: "frameError", listener: (type: number, code: number, id: number) => void): void;
6472
6665
  once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void;
6666
+ addListener(event: "data", listener: (chunk: any) => void): void;
6667
+ addListener(
6668
+ event:
6669
+ | "end"
6670
+ | "close"
6671
+ | "aborted"
6672
+ | "ready"
6673
+ | "timeout"
6674
+ | "drain"
6675
+ | "finish"
6676
+ | "wantTrailers",
6677
+ listener: () => void,
6678
+ ): void;
6679
+ addListener(event: "error", listener: (err: Error) => void): void;
6680
+ addListener(
6681
+ event: "frameError",
6682
+ listener: (type: number, code: number, id: number) => void,
6683
+ ): void;
6684
+ addListener(
6685
+ event: "trailers",
6686
+ listener: (trailers: IncomingHttpHeaders, flags: number) => void,
6687
+ ): void;
6473
6688
  respond(
6474
6689
  headers?: OutgoingHttpHeaders,
6475
6690
  options?: { endStream?: boolean; waitForTrailers?: boolean },
@@ -6519,6 +6734,7 @@ declare module "http2" {
6519
6734
  on(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void;
6520
6735
  once(event: "response", listener: (headers: IncomingHttpHeaders, flags: number) => void): void;
6521
6736
  once(event: "push", listener: (headers: IncomingHttpHeaders, flags: number) => void): void;
6737
+ once(event: "headers", listener: (headers: IncomingHttpHeaders, flags: number) => void): void;
6522
6738
  once(event: "data", listener: (chunk: any) => void): void;
6523
6739
  once(
6524
6740
  event:
@@ -6533,6 +6749,42 @@ declare module "http2" {
6533
6749
  listener: () => void,
6534
6750
  ): void;
6535
6751
  once(event: "error", listener: (err: Error) => void): void;
6752
+ once(event: "frameError", listener: (type: number, code: number, id: number) => void): void;
6753
+ once(event: "trailers", listener: (trailers: IncomingHttpHeaders, flags: number) => void): void;
6754
+ addListener(
6755
+ event: "response",
6756
+ listener: (headers: IncomingHttpHeaders, flags: number) => void,
6757
+ ): void;
6758
+ addListener(
6759
+ event: "push",
6760
+ listener: (headers: IncomingHttpHeaders, flags: number) => void,
6761
+ ): void;
6762
+ addListener(
6763
+ event: "headers",
6764
+ listener: (headers: IncomingHttpHeaders, flags: number) => void,
6765
+ ): void;
6766
+ addListener(event: "data", listener: (chunk: any) => void): void;
6767
+ addListener(
6768
+ event:
6769
+ | "end"
6770
+ | "close"
6771
+ | "aborted"
6772
+ | "ready"
6773
+ | "timeout"
6774
+ | "drain"
6775
+ | "finish"
6776
+ | "wantTrailers",
6777
+ listener: () => void,
6778
+ ): void;
6779
+ addListener(event: "error", listener: (err: Error) => void): void;
6780
+ addListener(
6781
+ event: "frameError",
6782
+ listener: (type: number, code: number, id: number) => void,
6783
+ ): void;
6784
+ addListener(
6785
+ event: "trailers",
6786
+ listener: (trailers: IncomingHttpHeaders, flags: number) => void,
6787
+ ): void;
6536
6788
  }
6537
6789
 
6538
6790
  export interface Http2Server {
@@ -6567,6 +6819,24 @@ declare module "http2" {
6567
6819
  ): void;
6568
6820
  once(event: "error", listener: (err: Error) => void): void;
6569
6821
  once(event: "close" | "listening" | "timeout", listener: () => void): void;
6822
+ once(event: "connection", listener: (socket: import("net").Socket) => void): void;
6823
+ once(event: "sessionError", listener: (err: Error, session: ServerHttp2Session) => void): void;
6824
+ addListener(
6825
+ event: "stream",
6826
+ listener: (stream: ServerHttp2Stream, headers: IncomingHttpHeaders, flags: number) => void,
6827
+ ): void;
6828
+ addListener(event: "session", listener: (session: ServerHttp2Session) => void): void;
6829
+ addListener(
6830
+ event: "request",
6831
+ listener: (req: Http2ServerRequest, res: Http2ServerResponse) => void,
6832
+ ): void;
6833
+ addListener(event: "error", listener: (err: Error) => void): void;
6834
+ addListener(event: "close" | "listening" | "timeout", listener: () => void): void;
6835
+ addListener(event: "connection", listener: (socket: import("net").Socket) => void): void;
6836
+ addListener(
6837
+ event: "sessionError",
6838
+ listener: (err: Error, session: ServerHttp2Session) => void,
6839
+ ): void;
6570
6840
  }
6571
6841
 
6572
6842
  export interface ServerOptions {
@@ -7090,7 +7360,11 @@ declare module "stream" {
7090
7360
  encoding: string,
7091
7361
  callback: (error?: Error | null) => void,
7092
7362
  ): void;
7093
- writev?(this: Writable, chunks: unknown[], callback: (error?: Error | null) => void): void;
7363
+ writev?(
7364
+ this: Writable,
7365
+ chunks: Array<{ chunk: any; encoding: string }>,
7366
+ callback: (error?: Error | null) => void,
7367
+ ): void;
7094
7368
  final?(this: Writable, callback: (error?: Error | null) => void): void;
7095
7369
  destroy?(this: Writable, error: Error | null, callback: (error?: Error | null) => void): void;
7096
7370
  construct?(this: Writable, callback: (error?: Error | null) => void): void;
@@ -7125,7 +7399,11 @@ declare module "stream" {
7125
7399
  readable?: boolean;
7126
7400
  writable?: boolean;
7127
7401
  defaultEncoding?: string;
7128
- writev?(this: Duplex, chunks: unknown[], callback: (error?: Error | null) => void): void;
7402
+ writev?(
7403
+ this: Duplex,
7404
+ chunks: Array<{ chunk: any; encoding: string }>,
7405
+ callback: (error?: Error | null) => void,
7406
+ ): void;
7129
7407
  signal?: AbortSignal;
7130
7408
  }
7131
7409
  interface TransformOptions {
@@ -7210,6 +7488,36 @@ declare module "stream" {
7210
7488
  ): void;
7211
7489
  } & ObjectModeFlag;
7212
7490
 
7491
+ /* decodeStrings: false — a string write reaches write/transform as the
7492
+ * string with its encoding (Buffers keep 'buffer'). */
7493
+ interface StringWritableOptions extends Omit<WritableOptions, "decodeStrings" | "write"> {
7494
+ decodeStrings: false;
7495
+ write?(
7496
+ this: Writable,
7497
+ chunk: string | Buffer,
7498
+ encoding: string,
7499
+ callback: (error?: Error | null) => void,
7500
+ ): void;
7501
+ }
7502
+ type StringDuplexOptions = Omit<DuplexOptions, "decodeStrings" | "write"> & {
7503
+ decodeStrings: false;
7504
+ write?(
7505
+ this: Duplex,
7506
+ chunk: string | Buffer,
7507
+ encoding: string,
7508
+ callback: (error?: Error | null) => void,
7509
+ ): void;
7510
+ };
7511
+ type StringTransformOptions = Omit<TransformOptions, "decodeStrings" | "transform"> & {
7512
+ decodeStrings: false;
7513
+ transform?(
7514
+ this: Transform,
7515
+ chunk: string | Buffer,
7516
+ encoding: string,
7517
+ callback: (error?: Error | null, data?: Buffer | string) => void,
7518
+ ): void;
7519
+ };
7520
+
7213
7521
  /* The operators' options: concurrency and highWaterMark bound map's
7214
7522
  * in-flight callbacks and queued results. */
7215
7523
  interface ArrayOptions {
@@ -7228,12 +7536,16 @@ declare module "stream" {
7228
7536
  _destroy(error: Error | null, callback: (error?: Error | null) => void): void;
7229
7537
  [Symbol.asyncIterator](): AsyncIterableIterator<any>;
7230
7538
  iterator(options?: { destroyOnReturn?: boolean }): AsyncIterableIterator<any>;
7539
+ /* compose(this, stage), destroyed when options.signal aborts. */
7540
+ compose(stage: ComposeStage, options?: { signal: AbortSignal }): Duplex;
7231
7541
  push(chunk: Buffer | string | null, encoding?: string): boolean;
7232
7542
  /* An object-mode stream's values. */
7233
7543
  push(chunk: any, encoding?: string): boolean;
7234
7544
  unshift(chunk: Buffer | string, encoding?: string): void;
7235
7545
  unshift(chunk: any, encoding?: string): void;
7236
- read(size?: number): Buffer | null;
7546
+ /* A Buffer, a string once encoded, an object-mode value, or null (as
7547
+ * @types/node types it). */
7548
+ read(size?: number): any;
7237
7549
  pause(): this;
7238
7550
  resume(): this;
7239
7551
  isPaused(): boolean;
@@ -7251,6 +7563,16 @@ declare module "stream" {
7251
7563
  readonly destroyed: boolean;
7252
7564
  readonly errored: Error | null;
7253
7565
  static from(iterable: unknown, options?: ReadableOptions): Readable;
7566
+ /* A Readable over a web ReadableStream's reader. */
7567
+ static fromWeb(
7568
+ readableStream: globalThis.ReadableStream,
7569
+ options?: {
7570
+ encoding?: string;
7571
+ highWaterMark?: number;
7572
+ objectMode?: boolean;
7573
+ signal?: AbortSignal;
7574
+ },
7575
+ ): Readable;
7254
7576
  /* The Readable operators: chunks are strings or Buffers, map and
7255
7577
  * flatMap callbacks return strings or Buffers (flatMap: arrays of
7256
7578
  * them, or strings), and callbacks that declare the options argument
@@ -7340,6 +7662,7 @@ declare module "stream" {
7340
7662
 
7341
7663
  class Writable extends EventEmitter {
7342
7664
  constructor(opts: ObjectWritableOptions);
7665
+ constructor(opts: StringWritableOptions);
7343
7666
  constructor(opts?: WritableOptions);
7344
7667
  /* The underscore-method surface (see Readable). */
7345
7668
  _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
@@ -7417,7 +7740,11 @@ declare module "stream" {
7417
7740
  * mirrors @types/node: extends Readable, the writable half declared
7418
7741
  * again. The lowering treats both halves as first-class. */
7419
7742
  class Duplex extends Readable {
7743
+ /* Duplex.from: an async generator function, an iterable, a string or
7744
+ * a stream (duplexify.js). */
7745
+ static from(body: unknown): Duplex;
7420
7746
  constructor(opts: ObjectDuplexOptions);
7747
+ constructor(opts: StringDuplexOptions);
7421
7748
  constructor(opts?: DuplexOptions);
7422
7749
  /* The underscore-method surface (see Readable). */
7423
7750
  _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
@@ -7517,6 +7844,7 @@ declare module "stream" {
7517
7844
 
7518
7845
  class Transform extends Duplex {
7519
7846
  constructor(opts: ObjectTransformOptions);
7847
+ constructor(opts: StringTransformOptions);
7520
7848
  constructor(opts?: TransformOptions);
7521
7849
  /* The underscore-method surface (see Readable). */
7522
7850
  _transform(
@@ -7528,17 +7856,43 @@ declare module "stream" {
7528
7856
  }
7529
7857
  class PassThrough extends Transform {
7530
7858
  constructor(opts: ObjectTransformOptions);
7859
+ constructor(opts: StringTransformOptions);
7531
7860
  constructor(opts?: TransformOptions);
7532
7861
  }
7533
7862
 
7534
7863
  /* addAbortSignal(signal, stream): the stream, destroyed with an
7535
7864
  * AbortError (cause: signal.reason) when the signal aborts. */
7536
7865
  function addAbortSignal<T extends Readable | Writable>(signal: AbortSignal, stream: T): T;
7537
- /* Declared so requires typecheck; each fences at its use site. */
7538
- function pipeline(...streams: unknown[]): unknown;
7539
- /* compose(...streams): a Duplex that writes to the first stream and
7540
- * reads from the last, with the streams running as a pipeline. */
7541
- function compose(...streams: Array<Readable | Writable>): Duplex;
7866
+ /* pipeline(...stages, callback): the last stream, or the object-mode
7867
+ * PassThrough that a function destination feeds. */
7868
+ type PipelineResult<T extends unknown[]> = T extends [
7869
+ ...unknown[],
7870
+ infer D,
7871
+ (...args: any[]) => unknown,
7872
+ ]
7873
+ ? D extends (...args: any[]) => unknown
7874
+ ? PassThrough
7875
+ : D
7876
+ : unknown;
7877
+ function pipeline<T extends unknown[]>(...streams: T): PipelineResult<T>;
7878
+ /* util.promisify's pipeline overload matches only pipeline itself: a
7879
+ * generic signature alone admits every function. */
7880
+ namespace pipeline {
7881
+ const __promisify__: typeof promises.pipeline;
7882
+ }
7883
+ /* A compose stage: a stream, an async generator function over the
7884
+ * previous stage, or (first) an iterable, async iterable or web
7885
+ * ReadableStream. */
7886
+ type ComposeStage =
7887
+ | Readable
7888
+ | Writable
7889
+ | Iterable<unknown>
7890
+ | AsyncIterable<unknown>
7891
+ | globalThis.ReadableStream
7892
+ | ((source: any, options?: { signal: AbortSignal }) => unknown);
7893
+ /* compose(...streams): a Duplex that writes to the first stage and
7894
+ * reads from the last, with the stages running as a pipeline. */
7895
+ function compose(...streams: ComposeStage[]): Duplex;
7542
7896
  /* finished's options: readable/writable choose which ends count,
7543
7897
  * error: false ignores 'error' events, signal aborts the wait. */
7544
7898
  interface FinishedOptions {
@@ -7557,13 +7911,20 @@ declare module "stream" {
7557
7911
  * else 65536 — Node's own state.js split); literal argument only. */
7558
7912
  function getDefaultHighWaterMark(objectMode: boolean): number;
7559
7913
  /* The promise pipeline's result: a last stage that is an async
7560
- * function resolves the promise with its value. */
7914
+ * function resolves the promise with its value (before the options
7915
+ * argument, when one follows). */
7561
7916
  type PipelinePromise<T extends unknown[]> = T extends [
7562
7917
  ...unknown[],
7563
7918
  (...args: any[]) => Promise<infer P>,
7564
7919
  ]
7565
7920
  ? Promise<P>
7566
- : Promise<void>;
7921
+ : T extends [
7922
+ ...unknown[],
7923
+ (...args: any[]) => Promise<infer P>,
7924
+ { signal?: AbortSignal; end?: boolean },
7925
+ ]
7926
+ ? Promise<P>
7927
+ : Promise<void>;
7567
7928
  namespace promises {
7568
7929
  function pipeline<T extends unknown[]>(...streams: T): PipelinePromise<T>;
7569
7930
  function finished(
@@ -7593,6 +7954,7 @@ declare module "stream" {
7593
7954
  DuplexOptions,
7594
7955
  TransformOptions,
7595
7956
  FinishedOptions,
7957
+ PipelinePromise,
7596
7958
  };
7597
7959
  }
7598
7960
  declare module "node:stream" {
@@ -7607,9 +7969,7 @@ declare module "stream/promises" {
7607
7969
  * pipeline's trailing { signal, end } object and finished's options
7608
7970
  * (readable, writable, error, cleanup, signal) are supported. A last
7609
7971
  * stage that is an async function resolves the promise with its value. */
7610
- function pipeline<T extends unknown[]>(
7611
- ...streams: T
7612
- ): T extends [...unknown[], (...args: any[]) => Promise<infer P>] ? Promise<P> : Promise<void>;
7972
+ function pipeline<T extends unknown[]>(...streams: T): import("stream").PipelinePromise<T>;
7613
7973
  function finished(
7614
7974
  stream: unknown,
7615
7975
  options?: {