@scriptc/compiler 0.4.1 → 0.4.2

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 (680) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +582 -78
  2. package/dist/backend/cycle-analysis.d.ts +2 -1
  3. package/dist/backend/cycle-analysis.js +4 -4
  4. package/dist/backend/cycle-analysis.js.map +1 -1
  5. package/dist/backend/cycle-mutability.d.ts +2 -1
  6. package/dist/backend/cycle-mutability.js +2 -2
  7. package/dist/backend/cycle-mutability.js.map +1 -1
  8. package/dist/backend/executable-features.js +4 -1
  9. package/dist/backend/executable-features.js.map +1 -1
  10. package/dist/backend/immutability.d.ts +2 -1
  11. package/dist/backend/immutability.js +2 -2
  12. package/dist/backend/immutability.js.map +1 -1
  13. package/dist/backend/library-pack.js +4 -0
  14. package/dist/backend/library-pack.js.map +1 -1
  15. package/dist/backend/llvm/alloc.d.ts +7 -3
  16. package/dist/backend/llvm/alloc.js +7 -4
  17. package/dist/backend/llvm/alloc.js.map +1 -1
  18. package/dist/backend/llvm/array-search.js +2 -1
  19. package/dist/backend/llvm/array-search.js.map +1 -1
  20. package/dist/backend/llvm/bytes-loop-versions.d.ts +23 -2
  21. package/dist/backend/llvm/bytes-loop-versions.js +115 -19
  22. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  23. package/dist/backend/llvm/bytes-loop-versions.test.js +131 -0
  24. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  25. package/dist/backend/llvm/classes.d.ts +72 -1
  26. package/dist/backend/llvm/classes.js +331 -45
  27. package/dist/backend/llvm/classes.js.map +1 -1
  28. package/dist/backend/llvm/classes.test.js +223 -16
  29. package/dist/backend/llvm/classes.test.js.map +1 -1
  30. package/dist/backend/llvm/common.d.ts +1 -3
  31. package/dist/backend/llvm/common.js +1 -3
  32. package/dist/backend/llvm/common.js.map +1 -1
  33. package/dist/backend/llvm/constant-callbacks.js +8 -4
  34. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  35. package/dist/backend/llvm/constant-callbacks.test.js +4 -4
  36. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  37. package/dist/backend/llvm/counted-loops.d.ts +4 -1
  38. package/dist/backend/llvm/counted-loops.js +62 -23
  39. package/dist/backend/llvm/counted-loops.js.map +1 -1
  40. package/dist/backend/llvm/dense-array-loops.d.ts +19 -16
  41. package/dist/backend/llvm/dense-array-loops.js +46 -10
  42. package/dist/backend/llvm/dense-array-loops.js.map +1 -1
  43. package/dist/backend/llvm/dense-array-loops.test.js +50 -14
  44. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
  45. package/dist/backend/llvm/dyn.d.ts +25 -1
  46. package/dist/backend/llvm/dyn.js +331 -8
  47. package/dist/backend/llvm/dyn.js.map +1 -1
  48. package/dist/backend/llvm/emit-function.js +22 -6
  49. package/dist/backend/llvm/emit-function.js.map +1 -1
  50. package/dist/backend/llvm/emit-module.js +17 -11
  51. package/dist/backend/llvm/emit-module.js.map +1 -1
  52. package/dist/backend/llvm/emit-statements.d.ts +0 -23
  53. package/dist/backend/llvm/emit-statements.js +325 -25
  54. package/dist/backend/llvm/emit-statements.js.map +1 -1
  55. package/dist/backend/llvm/emitter.d.ts +141 -15
  56. package/dist/backend/llvm/emitter.js +537 -64
  57. package/dist/backend/llvm/emitter.js.map +1 -1
  58. package/dist/backend/llvm/expr-async.js +19 -0
  59. package/dist/backend/llvm/expr-async.js.map +1 -1
  60. package/dist/backend/llvm/expr-bytes.d.ts +5 -2
  61. package/dist/backend/llvm/expr-bytes.js +110 -40
  62. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  63. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  64. package/dist/backend/llvm/expr-calls.js +34 -22
  65. package/dist/backend/llvm/expr-calls.js.map +1 -1
  66. package/dist/backend/llvm/expr-containers.js +21 -5
  67. package/dist/backend/llvm/expr-containers.js.map +1 -1
  68. package/dist/backend/llvm/expr-control.js +2 -3
  69. package/dist/backend/llvm/expr-control.js.map +1 -1
  70. package/dist/backend/llvm/expr-dynamic.js +54 -6
  71. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  72. package/dist/backend/llvm/expr-primitives.js +26 -8
  73. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  74. package/dist/backend/llvm/expr-stream-bridges.js +38 -6
  75. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  76. package/dist/backend/llvm/expr-stream-callbacks.js +131 -35
  77. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  78. package/dist/backend/llvm/lib-dispatch.js +10 -0
  79. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  80. package/dist/backend/llvm/lib-filesystem.js +61 -0
  81. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  82. package/dist/backend/llvm/lib-http2.d.ts +4 -0
  83. package/dist/backend/llvm/lib-http2.js +20 -17
  84. package/dist/backend/llvm/lib-http2.js.map +1 -1
  85. package/dist/backend/llvm/lib-process.js +65 -14
  86. package/dist/backend/llvm/lib-process.js.map +1 -1
  87. package/dist/backend/llvm/lib-shared.js +53 -1
  88. package/dist/backend/llvm/lib-shared.js.map +1 -1
  89. package/dist/backend/llvm/lib-stream.js +65 -28
  90. package/dist/backend/llvm/lib-stream.js.map +1 -1
  91. package/dist/backend/llvm/lib-tls.js +23 -0
  92. package/dist/backend/llvm/lib-tls.js.map +1 -1
  93. package/dist/backend/llvm/local-array-reads.js +66 -45
  94. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  95. package/dist/backend/llvm/local-array-reads.test.js +14 -0
  96. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  97. package/dist/backend/llvm/publish.d.ts +8 -1
  98. package/dist/backend/llvm/publish.js +64 -25
  99. package/dist/backend/llvm/publish.js.map +1 -1
  100. package/dist/backend/llvm/publish.test.js +3 -0
  101. package/dist/backend/llvm/publish.test.js.map +1 -1
  102. package/dist/backend/llvm/receivers.js +1 -1
  103. package/dist/backend/llvm/receivers.js.map +1 -1
  104. package/dist/backend/llvm/reference-writes.js +2 -0
  105. package/dist/backend/llvm/reference-writes.js.map +1 -1
  106. package/dist/backend/llvm/regex-matchers.js +161 -14
  107. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  108. package/dist/backend/llvm/regex-matchers.test.js +18 -0
  109. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  110. package/dist/backend/llvm/shapes.d.ts +9 -7
  111. package/dist/backend/llvm/shapes.js +12 -10
  112. package/dist/backend/llvm/shapes.js.map +1 -1
  113. package/dist/backend/llvm/string-lifetimes.test.js +2 -1
  114. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  115. package/dist/backend/llvm/string-reads.d.ts +3 -0
  116. package/dist/backend/llvm/string-reads.js +84 -0
  117. package/dist/backend/llvm/string-reads.js.map +1 -1
  118. package/dist/backend/llvm/wasm-modules.d.ts +6 -5
  119. package/dist/backend/llvm/wasm-modules.js +32 -9
  120. package/dist/backend/llvm/wasm-modules.js.map +1 -1
  121. package/dist/backend/mangle.d.ts +3 -0
  122. package/dist/backend/mangle.js +5 -0
  123. package/dist/backend/mangle.js.map +1 -1
  124. package/dist/backend/native/contracts.d.ts +22 -4
  125. package/dist/backend/native/executable.js +24 -8
  126. package/dist/backend/native/executable.js.map +1 -1
  127. package/dist/backend/native/library.js +1 -0
  128. package/dist/backend/native/library.js.map +1 -1
  129. package/dist/backend/native-codegen.d.ts +11 -6
  130. package/dist/backend/native-codegen.js +36 -9
  131. package/dist/backend/native-codegen.js.map +1 -1
  132. package/dist/backend/native-codegen.test.js +0 -23
  133. package/dist/backend/native-codegen.test.js.map +1 -1
  134. package/dist/backend/native-link-info-core.d.ts +14 -4
  135. package/dist/backend/native-link-info-core.js.map +1 -1
  136. package/dist/backend/optimization.d.ts +2 -2
  137. package/dist/backend/runtime-abi.d.ts +2 -2
  138. package/dist/backend/runtime-abi.js +2 -2
  139. package/dist/backend/runtime-pack-core.d.ts +1 -1
  140. package/dist/backend/runtime-pack-core.js +1 -1
  141. package/dist/backend/runtime-pack-core.js.map +1 -1
  142. package/dist/backend/runtime-pack-targets.test.js +4 -1
  143. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  144. package/dist/backend/runtime-pack.d.ts +0 -21
  145. package/dist/backend/runtime-pack.js +0 -29
  146. package/dist/backend/runtime-pack.js.map +1 -1
  147. package/dist/backend/runtime-pack.test.js +9 -69
  148. package/dist/backend/runtime-pack.test.js.map +1 -1
  149. package/dist/backend/target-diagnostics.js +31 -1
  150. package/dist/backend/target-diagnostics.js.map +1 -1
  151. package/dist/backend/warm-cache.js +3 -0
  152. package/dist/backend/warm-cache.js.map +1 -1
  153. package/dist/cli/command.js +26 -6
  154. package/dist/cli/command.js.map +1 -1
  155. package/dist/cli/usage.d.ts +5 -1
  156. package/dist/cli/usage.js +7 -2
  157. package/dist/cli/usage.js.map +1 -1
  158. package/dist/contracts/check.js +1 -1
  159. package/dist/contracts/check.js.map +1 -1
  160. package/dist/coverage/report.d.ts +7 -2
  161. package/dist/coverage/report.js +18 -0
  162. package/dist/coverage/report.js.map +1 -1
  163. package/dist/coverage/verdict-cache.d.ts +1 -0
  164. package/dist/coverage/verdict-cache.js +4 -0
  165. package/dist/coverage/verdict-cache.js.map +1 -1
  166. package/dist/coverage/verdict-semantic.js +4 -0
  167. package/dist/coverage/verdict-semantic.js.map +1 -1
  168. package/dist/diagnostics/diagnostic.js.map +1 -1
  169. package/dist/diagnostics/dynamic-tier.d.ts +40 -0
  170. package/dist/diagnostics/dynamic-tier.js +57 -0
  171. package/dist/diagnostics/dynamic-tier.js.map +1 -0
  172. package/dist/diagnostics/envelope.d.ts +2 -1
  173. package/dist/diagnostics/envelope.js +5 -2
  174. package/dist/diagnostics/envelope.js.map +1 -1
  175. package/dist/executable/executable-cache.d.ts +23 -1
  176. package/dist/executable/executable-cache.js +59 -7
  177. package/dist/executable/executable-cache.js.map +1 -1
  178. package/dist/executable/executable-cache.test.js +45 -3
  179. package/dist/executable/executable-cache.test.js.map +1 -1
  180. package/dist/executable/prepare.js +3 -1
  181. package/dist/executable/prepare.js.map +1 -1
  182. package/dist/frontend/analysis.js +1 -0
  183. package/dist/frontend/analysis.js.map +1 -1
  184. package/dist/frontend/dispose-hook.d.ts +2 -0
  185. package/dist/frontend/dispose-hook.js +14 -0
  186. package/dist/frontend/dispose-hook.js.map +1 -0
  187. package/dist/frontend/jsx-entities.d.ts +4 -0
  188. package/dist/frontend/jsx-entities.js +259 -0
  189. package/dist/frontend/jsx-entities.js.map +1 -0
  190. package/dist/frontend/jsx-source.d.ts +71 -0
  191. package/dist/frontend/jsx-source.js +781 -0
  192. package/dist/frontend/jsx-source.js.map +1 -0
  193. package/dist/frontend/jsx-source.test.d.ts +1 -0
  194. package/dist/frontend/jsx-source.test.js +200 -0
  195. package/dist/frontend/jsx-source.test.js.map +1 -0
  196. package/dist/frontend/literal-values.test.js +8 -9
  197. package/dist/frontend/literal-values.test.js.map +1 -1
  198. package/dist/frontend/lowering/array-indexed-mutation.js +2 -1
  199. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  200. package/dist/frontend/lowering/array-values.js +3 -2
  201. package/dist/frontend/lowering/array-values.js.map +1 -1
  202. package/dist/frontend/lowering/binding-analysis.d.ts +1 -1
  203. package/dist/frontend/lowering/binding-analysis.js +2 -2
  204. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  205. package/dist/frontend/lowering/builtins/arguments.d.ts +3 -0
  206. package/dist/frontend/lowering/builtins/arguments.js +30 -15
  207. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  208. package/dist/frontend/lowering/builtins/atomics.js +10 -6
  209. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  210. package/dist/frontend/lowering/builtins/child-process-async.js +2 -1
  211. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  212. package/dist/frontend/lowering/builtins/child-process-sync.js +2 -1
  213. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  214. package/dist/frontend/lowering/builtins/crypto.d.ts +4 -2
  215. package/dist/frontend/lowering/builtins/crypto.js +59 -3
  216. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  217. package/dist/frontend/lowering/builtins/date-classes.d.ts +46 -0
  218. package/dist/frontend/lowering/builtins/date-classes.js +477 -0
  219. package/dist/frontend/lowering/builtins/date-classes.js.map +1 -0
  220. package/dist/frontend/lowering/builtins/dates.d.ts +11 -1
  221. package/dist/frontend/lowering/builtins/dates.js +55 -26
  222. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  223. package/dist/frontend/lowering/builtins/dh.d.ts +15 -0
  224. package/dist/frontend/lowering/builtins/dh.js +151 -0
  225. package/dist/frontend/lowering/builtins/dh.js.map +1 -0
  226. package/dist/frontend/lowering/builtins/disposable-stack.js +2 -1
  227. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -1
  228. package/dist/frontend/lowering/builtins/ecdh.d.ts +12 -1
  229. package/dist/frontend/lowering/builtins/ecdh.js +7 -7
  230. package/dist/frontend/lowering/builtins/ecdh.js.map +1 -1
  231. package/dist/frontend/lowering/builtins/errors.d.ts +15 -0
  232. package/dist/frontend/lowering/builtins/errors.js +110 -0
  233. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  234. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +1 -1
  235. package/dist/frontend/lowering/builtins/filesystem-calls.js +23 -17
  236. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  237. package/dist/frontend/lowering/builtins/filesystem.js +6 -4
  238. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  239. package/dist/frontend/lowering/builtins/fs-paths.d.ts +15 -0
  240. package/dist/frontend/lowering/builtins/fs-paths.js +209 -0
  241. package/dist/frontend/lowering/builtins/fs-paths.js.map +1 -0
  242. package/dist/frontend/lowering/builtins/hash-stream.d.ts +16 -4
  243. package/dist/frontend/lowering/builtins/hash-stream.js +86 -23
  244. package/dist/frontend/lowering/builtins/hash-stream.js.map +1 -1
  245. package/dist/frontend/lowering/builtins/json.js +2 -1
  246. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  247. package/dist/frontend/lowering/builtins/key-object.d.ts +2 -1
  248. package/dist/frontend/lowering/builtins/key-object.js +20 -7
  249. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  250. package/dist/frontend/lowering/builtins/module-calls.js +11 -4
  251. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  252. package/dist/frontend/lowering/builtins/numbers.js +9 -5
  253. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  254. package/dist/frontend/lowering/builtins/operating-system.js +4 -3
  255. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  256. package/dist/frontend/lowering/builtins/performance.js +3 -2
  257. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  258. package/dist/frontend/lowering/builtins/process.js +3 -2
  259. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  260. package/dist/frontend/lowering/builtins/promises.js +3 -2
  261. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  262. package/dist/frontend/lowering/builtins/promisify-callback.js +2 -1
  263. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -1
  264. package/dist/frontend/lowering/builtins/readline.d.ts +2 -1
  265. package/dist/frontend/lowering/builtins/readline.js +23 -6
  266. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  267. package/dist/frontend/lowering/builtins/strings.js +13 -5
  268. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  269. package/dist/frontend/lowering/builtins/text-codecs.js +2 -1
  270. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  271. package/dist/frontend/lowering/builtins/timers.js +1 -1
  272. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  273. package/dist/frontend/lowering/builtins/url.js +4 -3
  274. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  275. package/dist/frontend/lowering/builtins/v8.js +2 -1
  276. package/dist/frontend/lowering/builtins/v8.js.map +1 -1
  277. package/dist/frontend/lowering/builtins/webcrypto.js +39 -20
  278. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -1
  279. package/dist/frontend/lowering/call-arguments.js +2 -1
  280. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  281. package/dist/frontend/lowering/call-signatures.js +13 -6
  282. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  283. package/dist/frontend/lowering/caught-value-dispatch.d.ts +18 -1
  284. package/dist/frontend/lowering/caught-value-dispatch.js +201 -32
  285. package/dist/frontend/lowering/caught-value-dispatch.js.map +1 -1
  286. package/dist/frontend/lowering/class-assertions.js +3 -2
  287. package/dist/frontend/lowering/class-assertions.js.map +1 -1
  288. package/dist/frontend/lowering/class-construction.d.ts +2 -1
  289. package/dist/frontend/lowering/class-construction.js +8 -13
  290. package/dist/frontend/lowering/class-construction.js.map +1 -1
  291. package/dist/frontend/lowering/class-descriptors.js +1 -1
  292. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  293. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +34 -0
  294. package/dist/frontend/lowering/class-dynamic-dispatch.js +568 -151
  295. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  296. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +77 -0
  297. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  298. package/dist/frontend/lowering/class-method-mutations.js +3 -0
  299. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  300. package/dist/frontend/lowering/class-method-values.js +1 -1
  301. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  302. package/dist/frontend/lowering/class-protocols.d.ts +7 -0
  303. package/dist/frontend/lowering/class-protocols.js +64 -4
  304. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  305. package/dist/frontend/lowering/class-prototypes.d.ts +5 -0
  306. package/dist/frontend/lowering/class-prototypes.js +36 -3
  307. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  308. package/dist/frontend/lowering/class-to-primitive.js +25 -5
  309. package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
  310. package/dist/frontend/lowering/class-unions.js +2 -1
  311. package/dist/frontend/lowering/class-unions.js.map +1 -1
  312. package/dist/frontend/lowering/coercions/function-adapters.js +6 -5
  313. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  314. package/dist/frontend/lowering/coercions/structural.js +8 -7
  315. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  316. package/dist/frontend/lowering/coercions/unions.js +8 -7
  317. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  318. package/dist/frontend/lowering/collection-ingestion.js +2 -1
  319. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  320. package/dist/frontend/lowering/containers/array-callbacks.d.ts +7 -0
  321. package/dist/frontend/lowering/containers/array-callbacks.js +14 -13
  322. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  323. package/dist/frontend/lowering/containers/array-concat.js +2 -1
  324. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  325. package/dist/frontend/lowering/containers/array-construction.js +25 -4
  326. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  327. package/dist/frontend/lowering/containers/array-methods.js +6 -5
  328. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  329. package/dist/frontend/lowering/containers/array-pipelines.js +2 -1
  330. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  331. package/dist/frontend/lowering/containers/bytes.d.ts +1 -1
  332. package/dist/frontend/lowering/containers/bytes.js +129 -28
  333. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  334. package/dist/frontend/lowering/containers/callback-arguments.js +52 -2
  335. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  336. package/dist/frontend/lowering/containers/collection-grouping.js +3 -2
  337. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  338. package/dist/frontend/lowering/containers/collection-methods.js +8 -7
  339. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  340. package/dist/frontend/lowering/containers/indexed-objects.js +8 -7
  341. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  342. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +32 -1
  343. package/dist/frontend/lowering/containers/iterator-helpers.js +6 -5
  344. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  345. package/dist/frontend/lowering/containers/string-and-regexp.js +36 -9
  346. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  347. package/dist/frontend/lowering/containers/string-replacement.js +2 -1
  348. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  349. package/dist/frontend/lowering/cycle-initialization.js +25 -4
  350. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  351. package/dist/frontend/lowering/deferred-module-initializers.d.ts +18 -1
  352. package/dist/frontend/lowering/deferred-module-initializers.js +226 -115
  353. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  354. package/dist/frontend/lowering/deferred-module-initializers.test.js +28 -0
  355. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  356. package/dist/frontend/lowering/dispatch-sites.d.ts +59 -0
  357. package/dist/frontend/lowering/dispatch-sites.js +204 -0
  358. package/dist/frontend/lowering/dispatch-sites.js.map +1 -0
  359. package/dist/frontend/lowering/dispatch-sites.test.d.ts +1 -0
  360. package/dist/frontend/lowering/dispatch-sites.test.js +59 -0
  361. package/dist/frontend/lowering/dispatch-sites.test.js.map +1 -0
  362. package/dist/frontend/lowering/dyn-streams.d.ts +3 -0
  363. package/dist/frontend/lowering/dyn-streams.js +1 -1
  364. package/dist/frontend/lowering/dyn-streams.js.map +1 -1
  365. package/dist/frontend/lowering/dynamic-tier.d.ts +25 -0
  366. package/dist/frontend/lowering/dynamic-tier.js +327 -0
  367. package/dist/frontend/lowering/dynamic-tier.js.map +1 -0
  368. package/dist/frontend/lowering/error-methods.js +4 -0
  369. package/dist/frontend/lowering/error-methods.js.map +1 -1
  370. package/dist/frontend/lowering/expressions/array-literals.js +15 -0
  371. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  372. package/dist/frontend/lowering/expressions/binary.js +45 -3
  373. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  374. package/dist/frontend/lowering/expressions/element-access.js +17 -1
  375. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  376. package/dist/frontend/lowering/expressions/identifiers.js +46 -7
  377. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  378. package/dist/frontend/lowering/expressions/narrowing.js +35 -5
  379. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  380. package/dist/frontend/lowering/expressions/object-literals.d.ts +0 -3
  381. package/dist/frontend/lowering/expressions/object-literals.js +27 -6
  382. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  383. package/dist/frontend/lowering/expressions/optional-chains.js +5 -5
  384. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  385. package/dist/frontend/lowering/expressions/property-access.d.ts +0 -4
  386. package/dist/frontend/lowering/expressions/property-access.js +99 -7
  387. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  388. package/dist/frontend/lowering/expressions/relational.js +63 -5
  389. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  390. package/dist/frontend/lowering/expressions/updates.js +63 -9
  391. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  392. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +6 -1
  393. package/dist/frontend/lowering/generator-dynamic-dispatch.js +20 -30
  394. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  395. package/dist/frontend/lowering/generic-functions.d.ts +42 -1
  396. package/dist/frontend/lowering/generic-functions.js +448 -18
  397. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  398. package/dist/frontend/lowering/intern-tables.js +2 -1
  399. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  400. package/dist/frontend/lowering/iterator-adapters.js +9 -8
  401. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  402. package/dist/frontend/lowering/js-dynamic-objects.js +3 -2
  403. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -1
  404. package/dist/frontend/lowering/json-require.js +2 -1
  405. package/dist/frontend/lowering/json-require.js.map +1 -1
  406. package/dist/frontend/lowering/key-order-witness.d.ts +7 -2
  407. package/dist/frontend/lowering/key-order-witness.js +21 -4
  408. package/dist/frontend/lowering/key-order-witness.js.map +1 -1
  409. package/dist/frontend/lowering/key-order-witness.test.js +38 -2
  410. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -1
  411. package/dist/frontend/lowering/lifetime-regions.js +2 -1
  412. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  413. package/dist/frontend/lowering/lower-assert.js +6 -5
  414. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  415. package/dist/frontend/lowering/lower-async-iteration.js +3 -1
  416. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  417. package/dist/frontend/lowering/lower-calls.d.ts +4 -0
  418. package/dist/frontend/lowering/lower-calls.js +339 -91
  419. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  420. package/dist/frontend/lowering/lower-classes.d.ts +18 -0
  421. package/dist/frontend/lowering/lower-classes.js +280 -25
  422. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  423. package/dist/frontend/lowering/lower-dgram.js +3 -2
  424. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  425. package/dist/frontend/lowering/lower-event-emitter.d.ts +14 -0
  426. package/dist/frontend/lowering/lower-event-emitter.js +267 -20
  427. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  428. package/dist/frontend/lowering/lower-exprs.d.ts +19 -2
  429. package/dist/frontend/lowering/lower-exprs.js +116 -11
  430. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  431. package/dist/frontend/lowering/lower-functions.js +304 -72
  432. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  433. package/dist/frontend/lowering/lower-inspect.js +10 -6
  434. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  435. package/dist/frontend/lowering/lower-mixins.js +2 -1
  436. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  437. package/dist/frontend/lowering/lower-mock.js +2 -1
  438. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  439. package/dist/frontend/lowering/lower-modules.js +15 -5
  440. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  441. package/dist/frontend/lowering/lower-modules.test.js +2 -2
  442. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  443. package/dist/frontend/lowering/lower-namespaces.d.ts +2 -1
  444. package/dist/frontend/lowering/lower-namespaces.js +4 -3
  445. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  446. package/dist/frontend/lowering/lower-server.d.ts +10 -0
  447. package/dist/frontend/lowering/lower-server.js +237 -59
  448. package/dist/frontend/lowering/lower-server.js.map +1 -1
  449. package/dist/frontend/lowering/lower-stdlib.js +12 -10
  450. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  451. package/dist/frontend/lowering/lower-stmts.js +168 -20
  452. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  453. package/dist/frontend/lowering/lower-stmts.test.js +1 -1
  454. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  455. package/dist/frontend/lowering/lower-stream.js +575 -165
  456. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  457. package/dist/frontend/lowering/lower-timers.js +4 -3
  458. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  459. package/dist/frontend/lowering/lowerer.d.ts +125 -28
  460. package/dist/frontend/lowering/lowerer.js +557 -63
  461. package/dist/frontend/lowering/lowerer.js.map +1 -1
  462. package/dist/frontend/lowering/lowerer.test.js +21 -9
  463. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  464. package/dist/frontend/lowering/narrowing-stability.js +5 -0
  465. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  466. package/dist/frontend/lowering/native-ffi.js +1 -1
  467. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  468. package/dist/frontend/lowering/object-enumeration-receiver.js +2 -1
  469. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
  470. package/dist/frontend/lowering/pairs-snapshot.js +2 -1
  471. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  472. package/dist/frontend/lowering/private-brands.d.ts +9 -0
  473. package/dist/frontend/lowering/private-brands.js +66 -15
  474. package/dist/frontend/lowering/private-brands.js.map +1 -1
  475. package/dist/frontend/lowering/promise-executor-adapter.js +2 -1
  476. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
  477. package/dist/frontend/lowering/require-initialization.js +2 -1
  478. package/dist/frontend/lowering/require-initialization.js.map +1 -1
  479. package/dist/frontend/lowering/runtime-optional-elements.d.ts +5 -0
  480. package/dist/frontend/lowering/runtime-optional-elements.js +17 -1
  481. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  482. package/dist/frontend/lowering/runtime-optional-records.d.ts +2 -0
  483. package/dist/frontend/lowering/runtime-optional-records.js +18 -5
  484. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  485. package/dist/frontend/lowering/site-dependencies.d.ts +35 -0
  486. package/dist/frontend/lowering/site-dependencies.js +84 -0
  487. package/dist/frontend/lowering/site-dependencies.js.map +1 -0
  488. package/dist/frontend/lowering/site-dependencies.test.d.ts +1 -0
  489. package/dist/frontend/lowering/site-dependencies.test.js +53 -0
  490. package/dist/frontend/lowering/site-dependencies.test.js.map +1 -0
  491. package/dist/frontend/lowering/stable-names.d.ts +11 -0
  492. package/dist/frontend/lowering/stable-names.js +35 -0
  493. package/dist/frontend/lowering/stable-names.js.map +1 -0
  494. package/dist/frontend/lowering/static-typeof.d.ts +2 -2
  495. package/dist/frontend/lowering/static-typeof.js +42 -3
  496. package/dist/frontend/lowering/static-typeof.js.map +1 -1
  497. package/dist/frontend/lowering/strict-equality.js +2 -1
  498. package/dist/frontend/lowering/strict-equality.js.map +1 -1
  499. package/dist/frontend/lowering/structural-positions.d.ts +32 -0
  500. package/dist/frontend/lowering/structural-positions.js +108 -0
  501. package/dist/frontend/lowering/structural-positions.js.map +1 -0
  502. package/dist/frontend/lowering/surfaces.js +42 -26
  503. package/dist/frontend/lowering/surfaces.js.map +1 -1
  504. package/dist/frontend/lowering/var-hoisting.js +37 -3
  505. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  506. package/dist/frontend/npm-static-tsc-helpers.d.ts +5 -0
  507. package/dist/frontend/npm-static-tsc-helpers.js +106 -0
  508. package/dist/frontend/npm-static-tsc-helpers.js.map +1 -0
  509. package/dist/frontend/npm-static-tsc-helpers.test.d.ts +1 -0
  510. package/dist/frontend/npm-static-tsc-helpers.test.js +58 -0
  511. package/dist/frontend/npm-static-tsc-helpers.test.js.map +1 -0
  512. package/dist/frontend/npm-static-type-exports-host.d.ts +8 -0
  513. package/dist/frontend/npm-static-type-exports-host.js +214 -0
  514. package/dist/frontend/npm-static-type-exports-host.js.map +1 -0
  515. package/dist/frontend/npm-static-type-exports-host.test.d.ts +1 -0
  516. package/dist/frontend/npm-static-type-exports-host.test.js +53 -0
  517. package/dist/frontend/npm-static-type-exports-host.test.js.map +1 -0
  518. package/dist/frontend/npm-static-type-exports.d.ts +52 -0
  519. package/dist/frontend/npm-static-type-exports.js +261 -0
  520. package/dist/frontend/npm-static-type-exports.js.map +1 -0
  521. package/dist/frontend/npm-static-type-exports.test.d.ts +1 -0
  522. package/dist/frontend/npm-static-type-exports.test.js +103 -0
  523. package/dist/frontend/npm-static-type-exports.test.js.map +1 -0
  524. package/dist/frontend/npm-static-umd.d.ts +6 -0
  525. package/dist/frontend/npm-static-umd.js +203 -0
  526. package/dist/frontend/npm-static-umd.js.map +1 -0
  527. package/dist/frontend/npm-static-umd.test.d.ts +1 -0
  528. package/dist/frontend/npm-static-umd.test.js +105 -0
  529. package/dist/frontend/npm-static-umd.test.js.map +1 -0
  530. package/dist/frontend/npm-static.d.ts +8 -0
  531. package/dist/frontend/npm-static.js +47 -2
  532. package/dist/frontend/npm-static.js.map +1 -1
  533. package/dist/frontend/program.d.ts +13 -0
  534. package/dist/frontend/program.js +103 -6
  535. package/dist/frontend/program.js.map +1 -1
  536. package/dist/frontend/program.test.js +1 -1
  537. package/dist/frontend/program.test.js.map +1 -1
  538. package/dist/frontend/services.d.ts +6 -0
  539. package/dist/frontend/services.js +18 -0
  540. package/dist/frontend/services.js.map +1 -1
  541. package/dist/frontend/ts7/ast-node.d.ts +21 -7
  542. package/dist/frontend/ts7/ast-node.js +131 -29
  543. package/dist/frontend/ts7/ast-node.js.map +1 -1
  544. package/dist/frontend/ts7/ast-node.test.js +60 -0
  545. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  546. package/dist/frontend/ts7/ast-wire.d.ts +27 -2
  547. package/dist/frontend/ts7/ast-wire.js +124 -21
  548. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  549. package/dist/frontend/ts7/ast.d.ts +23 -2
  550. package/dist/frontend/ts7/ast.js +143 -2
  551. package/dist/frontend/ts7/ast.js.map +1 -1
  552. package/dist/frontend/ts7/checker.d.ts +13 -1
  553. package/dist/frontend/ts7/checker.js +75 -1
  554. package/dist/frontend/ts7/checker.js.map +1 -1
  555. package/dist/frontend/ts7/checker.test.js +9 -6
  556. package/dist/frontend/ts7/checker.test.js.map +1 -1
  557. package/dist/frontend/ts7/enums.d.ts +3 -3
  558. package/dist/frontend/ts7/enums.generated.d.ts +10 -0
  559. package/dist/frontend/ts7/enums.generated.js +21 -0
  560. package/dist/frontend/ts7/enums.generated.js.map +1 -1
  561. package/dist/frontend/ts7/enums.js +19 -0
  562. package/dist/frontend/ts7/enums.js.map +1 -1
  563. package/dist/frontend/ts7/program-host.js +5 -2
  564. package/dist/frontend/ts7/program-host.js.map +1 -1
  565. package/dist/frontend/ts7/semantic-checker.d.ts +10 -0
  566. package/dist/frontend/ts7/semantic-checker.js +25 -20
  567. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  568. package/dist/frontend/ts7/semantic-json.d.ts +13 -0
  569. package/dist/frontend/ts7/semantic-json.js +146 -0
  570. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  571. package/dist/frontend/ts7/semantic-json.test.js +57 -1
  572. package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
  573. package/dist/frontend/ts7/semantic-model.d.ts +15 -0
  574. package/dist/frontend/ts7/semantic-model.js +67 -19
  575. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  576. package/dist/frontend/ts7/semantic-model.test.js +3 -2
  577. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  578. package/dist/frontend/ts7/session.js +1 -1
  579. package/dist/frontend/ts7/session.js.map +1 -1
  580. package/dist/frontend/tsc-codes.d.ts +1 -1
  581. package/dist/frontend/tsc-codes.js +7 -0
  582. package/dist/frontend/tsc-codes.js.map +1 -1
  583. package/dist/frontend/type-mapper.d.ts +38 -6
  584. package/dist/frontend/type-mapper.js +265 -32
  585. package/dist/frontend/type-mapper.js.map +1 -1
  586. package/dist/frontend/type-mapper.test.js +1 -1
  587. package/dist/frontend/type-mapper.test.js.map +1 -1
  588. package/dist/frontend-process-args.d.ts +4 -0
  589. package/dist/frontend-process-args.js +52 -0
  590. package/dist/frontend-process-args.js.map +1 -0
  591. package/dist/frontend-process-args.test.d.ts +1 -0
  592. package/dist/frontend-process-args.test.js +47 -0
  593. package/dist/frontend-process-args.test.js.map +1 -0
  594. package/dist/frontend-process.d.ts +1 -0
  595. package/dist/frontend-process.js +23 -0
  596. package/dist/frontend-process.js.map +1 -0
  597. package/dist/heap-collection.d.ts +16 -0
  598. package/dist/heap-collection.js +42 -0
  599. package/dist/heap-collection.js.map +1 -0
  600. package/dist/heap-collection.test.d.ts +1 -0
  601. package/dist/heap-collection.test.js +59 -0
  602. package/dist/heap-collection.test.js.map +1 -0
  603. package/dist/heap-pressure.d.ts +2 -0
  604. package/dist/heap-pressure.js +12 -0
  605. package/dist/heap-pressure.js.map +1 -0
  606. package/dist/index.d.ts +7 -0
  607. package/dist/index.js +402 -86
  608. package/dist/index.js.map +1 -1
  609. package/dist/ir/array-length-stability.js +7 -0
  610. package/dist/ir/array-length-stability.js.map +1 -1
  611. package/dist/ir/array-length-stability.test.js +25 -0
  612. package/dist/ir/array-length-stability.test.js.map +1 -1
  613. package/dist/ir/builtin-effects.js +28 -0
  614. package/dist/ir/builtin-effects.js.map +1 -1
  615. package/dist/ir/builtin-signatures.d.ts +5 -1
  616. package/dist/ir/builtin-signatures.js +141 -12
  617. package/dist/ir/builtin-signatures.js.map +1 -1
  618. package/dist/ir/final-fields.d.ts +2 -1
  619. package/dist/ir/final-fields.js +2 -2
  620. package/dist/ir/final-fields.js.map +1 -1
  621. package/dist/ir/function-references.test.js +2 -0
  622. package/dist/ir/function-references.test.js.map +1 -1
  623. package/dist/ir/int32-slots.d.ts +13 -5
  624. package/dist/ir/int32-slots.js +112 -115
  625. package/dist/ir/int32-slots.js.map +1 -1
  626. package/dist/ir/int32-slots.test.js +3 -1
  627. package/dist/ir/int32-slots.test.js.map +1 -1
  628. package/dist/ir/integer-loop-facts.d.ts +9 -4
  629. package/dist/ir/integer-loop-facts.js +93 -18
  630. package/dist/ir/integer-loop-facts.js.map +1 -1
  631. package/dist/ir/integer-loops.d.ts +49 -0
  632. package/dist/ir/integer-loops.js +193 -39
  633. package/dist/ir/integer-loops.js.map +1 -1
  634. package/dist/ir/integer-loops.test.js +201 -1
  635. package/dist/ir/integer-loops.test.js.map +1 -1
  636. package/dist/ir/integer-ranges.test.js +64 -0
  637. package/dist/ir/integer-ranges.test.js.map +1 -1
  638. package/dist/ir/ir.d.ts +17 -2
  639. package/dist/ir/ir.js +3 -1
  640. package/dist/ir/ir.js.map +1 -1
  641. package/dist/ir/runtime-features.d.ts +31 -7
  642. package/dist/ir/runtime-features.js +138 -11
  643. package/dist/ir/runtime-features.js.map +1 -1
  644. package/dist/ir/tiers.js +1 -0
  645. package/dist/ir/tiers.js.map +1 -1
  646. package/dist/ir/traverse.d.ts +2 -0
  647. package/dist/ir/traverse.js +14 -2
  648. package/dist/ir/traverse.js.map +1 -1
  649. package/dist/ir/validate.js +56 -16
  650. package/dist/ir/validate.js.map +1 -1
  651. package/dist/library/ir-policy.js +10 -0
  652. package/dist/library/ir-policy.js.map +1 -1
  653. package/dist/library/library-cache.d.ts +2 -0
  654. package/dist/library/library-cache.js.map +1 -1
  655. package/dist/library/prepare.js +2 -0
  656. package/dist/library/prepare.js.map +1 -1
  657. package/dist/native/cli.js +5 -0
  658. package/dist/native/cli.js.map +1 -1
  659. package/dist/native/prepare.js +5 -1
  660. package/dist/native/prepare.js.map +1 -1
  661. package/dist/native/sanitizer.test.js +4 -1
  662. package/dist/native/sanitizer.test.js.map +1 -1
  663. package/dist/startup-cache.d.ts +1 -0
  664. package/dist/startup-cache.js +1 -0
  665. package/dist/startup-cache.js.map +1 -1
  666. package/dist/text-parts.d.ts +7 -0
  667. package/dist/text-parts.js +44 -0
  668. package/dist/text-parts.js.map +1 -1
  669. package/dist/text-parts.test.d.ts +1 -0
  670. package/dist/text-parts.test.js +46 -0
  671. package/dist/text-parts.test.js.map +1 -0
  672. package/dist/timing.d.ts +9 -2
  673. package/dist/timing.js +7 -4
  674. package/dist/timing.js.map +1 -1
  675. package/dist/wasm/translate.d.ts +4 -0
  676. package/dist/wasm/translate.js +2 -2
  677. package/dist/wasm/translate.js.map +1 -1
  678. package/package.json +21 -21
  679. package/shims/undici/core/client.ts +4 -4
  680. package/surface-manifest.json +19 -49
@@ -544,12 +544,17 @@ declare var DOMException: {
544
544
  readonly prototype: DOMException;
545
545
  };
546
546
 
547
- /* WebCrypto's HMAC slice (scr_webcrypto.c): crypto.subtle's importKey for
548
- * raw HMAC keys, HMAC sign/verify and the SHA-1/SHA-2 digests, typed as
549
- * exactly that surface (the declarations mirror @types/node's webcrypto
550
- * shapes). Every other SubtleCrypto method and crypto member is absent,
551
- * so a use is an honest type error. CryptoKey values are native handles
552
- * whose four members read through the handle. */
547
+ /* WebCrypto (scr_webcrypto.c): crypto.subtle's importKey, generateKey and
548
+ * exportKey for HMAC and AES keys (importKey also for PBKDF2 and HKDF
549
+ * keys), AES-GCM/CBC/CTR encrypt and decrypt, wrapKey and unwrapKey of
550
+ * secret keys (AES-KW or those ciphers), PBKDF2 and HKDF deriveBits and
551
+ * deriveKey, HMAC sign/verify, generateKey, importKey, exportKey, sign
552
+ * and verify for ECDSA, Ed25519, RSASSA-PKCS1-v1_5 and RSA-PSS, and the
553
+ * SHA-1/SHA-2 digests, typed as exactly that surface (the declarations
554
+ * mirror @types/node's webcrypto shapes), plus the global's randomUUID and
555
+ * getRandomValues. Every other SubtleCrypto method and crypto member is
556
+ * absent, so a use is an honest type error. CryptoKey values are native
557
+ * handles whose four members read through the handle. */
553
558
  declare var crypto: Crypto;
554
559
  /* The Crypto and SubtleCrypto constructors (feature probes only) stay
555
560
  * `unknown`; the values keep this declaration order. */
@@ -582,9 +587,44 @@ interface HmacImportParams extends Algorithm {
582
587
  hash: HashAlgorithmIdentifier;
583
588
  length?: number;
584
589
  }
590
+ interface HmacKeyGenParams extends Algorithm {
591
+ hash: HashAlgorithmIdentifier;
592
+ length?: number;
593
+ }
594
+ interface AesKeyGenParams extends Algorithm {
595
+ length: number;
596
+ }
597
+ interface AesGcmParams extends Algorithm {
598
+ additionalData?: BufferSource;
599
+ iv: BufferSource;
600
+ tagLength?: number;
601
+ }
602
+ interface AesCbcParams extends Algorithm {
603
+ iv: BufferSource;
604
+ }
605
+ interface AesCtrParams extends Algorithm {
606
+ counter: BufferSource;
607
+ length: number;
608
+ }
609
+ interface Pbkdf2Params extends Algorithm {
610
+ hash: HashAlgorithmIdentifier;
611
+ iterations: number;
612
+ salt: BufferSource;
613
+ }
614
+ interface HkdfParams extends Algorithm {
615
+ hash: HashAlgorithmIdentifier;
616
+ info: BufferSource;
617
+ salt: BufferSource;
618
+ }
619
+ interface AesDerivedKeyParams extends Algorithm {
620
+ length: number;
621
+ }
585
622
  interface KeyAlgorithm {
586
623
  name: string;
587
624
  }
625
+ interface AesKeyAlgorithm extends KeyAlgorithm {
626
+ length: number;
627
+ }
588
628
  interface HmacKeyAlgorithm extends KeyAlgorithm {
589
629
  hash: KeyAlgorithm;
590
630
  length: number;
@@ -623,34 +663,136 @@ interface JsonWebKey {
623
663
  x?: string;
624
664
  y?: string;
625
665
  }
626
- /* The 'jwk' form type-checks like @types/node's; the compiler refuses it
627
- * (the JsonWebKey import is not implemented). */
666
+ interface EcKeyGenParams extends Algorithm {
667
+ namedCurve: string;
668
+ }
669
+ interface EcKeyImportParams extends Algorithm {
670
+ namedCurve: string;
671
+ }
672
+ interface EcdsaParams extends Algorithm {
673
+ hash: HashAlgorithmIdentifier;
674
+ }
675
+ interface RsaHashedKeyGenParams extends Algorithm {
676
+ modulusLength: number;
677
+ publicExponent: Uint8Array;
678
+ hash: HashAlgorithmIdentifier;
679
+ }
680
+ interface RsaHashedImportParams extends Algorithm {
681
+ hash: HashAlgorithmIdentifier;
682
+ }
683
+ interface RsaPssParams extends Algorithm {
684
+ saltLength: number;
685
+ }
686
+ interface EcKeyAlgorithm extends KeyAlgorithm {
687
+ namedCurve: string;
688
+ }
689
+ interface RsaHashedKeyAlgorithm extends KeyAlgorithm {
690
+ modulusLength: number;
691
+ publicExponent: Uint8Array;
692
+ hash: KeyAlgorithm;
693
+ }
694
+ interface CryptoKeyPair {
695
+ privateKey: CryptoKey;
696
+ publicKey: CryptoKey;
697
+ }
698
+ /* HMAC and AES keys generate, import and export as 'raw' and 'jwk'
699
+ * (PBKDF2 and HKDF keys import as 'raw'); ECDSA and RSA keys generate,
700
+ * import and export as 'spki', 'pkcs8' and 'jwk', and ECDSA public keys as
701
+ * 'raw'. */
628
702
  interface SubtleCrypto {
703
+ decrypt(
704
+ algorithm: AesGcmParams | AesCbcParams | AesCtrParams,
705
+ key: CryptoKey,
706
+ data: BufferSource,
707
+ ): Promise<ArrayBuffer>;
708
+ deriveBits(
709
+ algorithm: Pbkdf2Params | HkdfParams,
710
+ baseKey: CryptoKey,
711
+ length?: number | null,
712
+ ): Promise<ArrayBuffer>;
713
+ deriveKey(
714
+ algorithm: Pbkdf2Params | HkdfParams,
715
+ baseKey: CryptoKey,
716
+ derivedKeyType: AlgorithmIdentifier | AesDerivedKeyParams | HmacImportParams,
717
+ extractable: boolean,
718
+ keyUsages: readonly KeyUsage[],
719
+ ): Promise<CryptoKey>;
629
720
  digest(algorithm: AlgorithmIdentifier, data: BufferSource): Promise<ArrayBuffer>;
721
+ encrypt(
722
+ algorithm: AesGcmParams | AesCbcParams | AesCtrParams,
723
+ key: CryptoKey,
724
+ data: BufferSource,
725
+ ): Promise<ArrayBuffer>;
726
+ exportKey(format: "jwk", key: CryptoKey): Promise<JsonWebKey>;
727
+ exportKey(format: Exclude<KeyFormat, "jwk">, key: CryptoKey): Promise<ArrayBuffer>;
728
+ generateKey(
729
+ algorithm: EcKeyGenParams | RsaHashedKeyGenParams | "Ed25519" | { name: "Ed25519" },
730
+ extractable: boolean,
731
+ keyUsages: readonly KeyUsage[],
732
+ ): Promise<CryptoKeyPair>;
733
+ generateKey(
734
+ algorithm: AesKeyGenParams | HmacKeyGenParams,
735
+ extractable: boolean,
736
+ keyUsages: readonly KeyUsage[],
737
+ ): Promise<CryptoKey>;
630
738
  importKey(
631
739
  format: "jwk",
632
740
  keyData: JsonWebKey,
633
- algorithm: AlgorithmIdentifier | HmacImportParams,
741
+ algorithm: AlgorithmIdentifier | HmacImportParams | EcKeyImportParams | RsaHashedImportParams,
634
742
  extractable: boolean,
635
743
  keyUsages: readonly KeyUsage[],
636
744
  ): Promise<CryptoKey>;
637
745
  importKey(
638
746
  format: Exclude<KeyFormat, "jwk">,
639
747
  keyData: BufferSource,
640
- algorithm: AlgorithmIdentifier | HmacImportParams,
748
+ algorithm: AlgorithmIdentifier | HmacImportParams | EcKeyImportParams | RsaHashedImportParams,
749
+ extractable: boolean,
750
+ keyUsages: readonly KeyUsage[],
751
+ ): Promise<CryptoKey>;
752
+ sign(
753
+ algorithm: AlgorithmIdentifier | EcdsaParams | RsaPssParams,
754
+ key: CryptoKey,
755
+ data: BufferSource,
756
+ ): Promise<ArrayBuffer>;
757
+ unwrapKey(
758
+ format: KeyFormat,
759
+ wrappedKey: BufferSource,
760
+ unwrappingKey: CryptoKey,
761
+ unwrapAlgorithm: AlgorithmIdentifier | AesGcmParams | AesCbcParams | AesCtrParams,
762
+ unwrappedKeyAlgorithm: AlgorithmIdentifier | HmacImportParams,
641
763
  extractable: boolean,
642
764
  keyUsages: readonly KeyUsage[],
643
765
  ): Promise<CryptoKey>;
644
- sign(algorithm: AlgorithmIdentifier, key: CryptoKey, data: BufferSource): Promise<ArrayBuffer>;
645
766
  verify(
646
- algorithm: AlgorithmIdentifier,
767
+ algorithm: AlgorithmIdentifier | EcdsaParams | RsaPssParams,
647
768
  key: CryptoKey,
648
769
  signature: BufferSource,
649
770
  data: BufferSource,
650
771
  ): Promise<boolean>;
772
+ wrapKey(
773
+ format: KeyFormat,
774
+ key: CryptoKey,
775
+ wrappingKey: CryptoKey,
776
+ wrapAlgorithm: AlgorithmIdentifier | AesGcmParams | AesCbcParams | AesCtrParams,
777
+ ): Promise<ArrayBuffer>;
651
778
  }
652
779
  interface Crypto {
653
780
  readonly subtle: SubtleCrypto;
781
+ getRandomValues<
782
+ T extends
783
+ | Int8Array
784
+ | Uint8Array
785
+ | Uint8ClampedArray
786
+ | Int16Array
787
+ | Uint16Array
788
+ | Int32Array
789
+ | Uint32Array
790
+ | BigInt64Array
791
+ | BigUint64Array,
792
+ >(
793
+ typedArray: T,
794
+ ): T;
795
+ randomUUID(): `${string}-${string}-${string}-${string}-${string}`;
654
796
  }
655
797
 
656
798
  /* Capability-gated globals harness code probes behind feature guards
@@ -1379,13 +1521,13 @@ interface ImportMeta {
1379
1521
  * `recursive`); empty directories go through `rmdirSync`. */
1380
1522
  declare module "node:fs" {
1381
1523
  import { Readable, Writable } from "stream";
1382
- export function readFileSync(path: string | number, encoding: BufferEncoding): string;
1524
+ export function readFileSync(path: string | number | URL, encoding: BufferEncoding): string;
1383
1525
  export function readFileSync(
1384
- path: string | number,
1526
+ path: string | number | URL,
1385
1527
  options: { encoding: BufferEncoding },
1386
1528
  ): string;
1387
- export function readFileSync(path: string | number): Buffer;
1388
- export function readFileSync(path: string, options: unknown): string | Buffer;
1529
+ export function readFileSync(path: string | number | URL): Buffer;
1530
+ export function readFileSync(path: string | URL, options: unknown): string | Buffer;
1389
1531
  /* Error-first callbacks select string or Buffer data from their encoding.
1390
1532
  * Unknown options retain that union until the caller validates the value. */
1391
1533
  export function readFile(
@@ -1397,7 +1539,7 @@ declare module "node:fs" {
1397
1539
  * Node — an existing file keeps its permissions) and/or the utf8
1398
1540
  * encoding spelling. */
1399
1541
  export function writeFileSync(
1400
- path: string,
1542
+ path: string | URL,
1401
1543
  data: string,
1402
1544
  /* The options-record stance (see http.RequestOptions): flag fences
1403
1545
  * by name at the call site; undocumented keys drop like Node. */
@@ -1409,14 +1551,17 @@ declare module "node:fs" {
1409
1551
  },
1410
1552
  ): void;
1411
1553
  /* The bare-encoding spelling — the options record's encoding key alone. */
1412
- export function writeFileSync(path: string, data: string, encoding: "utf8" | "utf-8"): void;
1413
- export function writeFileSync(path: string, data: string | Uint8Array): void;
1414
- export function appendFileSync(path: string, data: string | Uint8Array): void;
1554
+ export function writeFileSync(path: string | URL, data: string, encoding: "utf8" | "utf-8"): void;
1555
+ export function writeFileSync(path: string | URL, data: string | Uint8Array): void;
1556
+ export function appendFileSync(path: string | URL, data: string | Uint8Array): void;
1415
1557
  export function existsSync(path: string): boolean;
1416
- export function mkdirSync(path: string): void;
1417
- export function mkdirSync(path: string, options: { recursive?: boolean; mode?: number }): void;
1418
- export function unlinkSync(path: string): void;
1419
- export function chmodSync(path: string, mode: number): void;
1558
+ export function mkdirSync(path: string | URL): void;
1559
+ export function mkdirSync(
1560
+ path: string | URL,
1561
+ options: { recursive?: boolean; mode?: number },
1562
+ ): void;
1563
+ export function unlinkSync(path: string | URL): void;
1564
+ export function chmodSync(path: string | URL, mode: number): void;
1420
1565
  export function fchmodSync(fd: number, mode: number): void;
1421
1566
  export function fsyncSync(fd: number): void;
1422
1567
  export function linkSync(
@@ -1514,29 +1659,29 @@ declare module "node:fs" {
1514
1659
  path: string | Uint8Array | URL,
1515
1660
  options: string | { encoding?: string | null } | null,
1516
1661
  ): string | Buffer;
1517
- export function chownSync(path: string, uid: number, gid: number): void;
1518
- export function lchownSync(path: string, uid: number, gid: number): void;
1662
+ export function chownSync(path: string | URL, uid: number, gid: number): void;
1663
+ export function lchownSync(path: string | URL, uid: number, gid: number): void;
1519
1664
  export function fchownSync(fd: number, uid: number, gid: number): void;
1520
- export function truncateSync(path: string, len?: number): void;
1665
+ export function truncateSync(path: string | URL, len?: number): void;
1521
1666
  /* The 2-argument form only (Node's mode flags have no lowering). The
1522
1667
  * destination is created or truncated carrying the SOURCE's mode. */
1523
- export function copyFileSync(src: string, dest: string): void;
1668
+ export function copyFileSync(src: string | URL, dest: string | URL): void;
1524
1669
  export function rename(
1525
1670
  oldPath: string,
1526
1671
  newPath: string,
1527
1672
  callback: (err: NodeJS.ErrnoException | null) => void,
1528
1673
  ): void;
1529
- export function renameSync(oldPath: string, newPath: string): void;
1530
- export function rmSync(path: string): void;
1674
+ export function renameSync(oldPath: string | URL, newPath: string | URL): void;
1675
+ export function rmSync(path: string | URL): void;
1531
1676
  /* maxRetries/retryDelay are accepted no-ops (Node retries around
1532
1677
  * EBUSY-class races; the synchronous lowering has no re-entrancy that
1533
1678
  * needs them). */
1534
1679
  export function rmSync(
1535
- path: string,
1680
+ path: string | URL,
1536
1681
  options: { recursive?: boolean; force?: boolean; maxRetries?: number; retryDelay?: number },
1537
1682
  ): void;
1538
- export function rmdirSync(path: string): void;
1539
- export function readdirSync(path: string): string[];
1683
+ export function rmdirSync(path: string | URL): void;
1684
+ export function readdirSync(path: string | URL): string[];
1540
1685
  /* The withFileTypes form: Dirent rows (name + parentPath + the type
1541
1686
  * probes — the honest subset of Node's Dirent surface). The type is
1542
1687
  * interned explicitly in type-mapper.ts (the record's hidden %dtype field
@@ -1550,7 +1695,7 @@ declare module "node:fs" {
1550
1695
  isSymbolicLink(): boolean;
1551
1696
  }
1552
1697
  export function readdirSync(
1553
- path: string,
1698
+ path: string | URL,
1554
1699
  /* The options-record stance (see http.RequestOptions): recursive
1555
1700
  * fences by name at the call site; undocumented keys drop like Node. */
1556
1701
  options: { withFileTypes: true; recursive?: boolean; [option: string]: unknown },
@@ -1599,7 +1744,7 @@ declare module "node:fs" {
1599
1744
  encoding?: "utf8" | "utf-8";
1600
1745
  bufferSize?: number;
1601
1746
  }
1602
- export function opendirSync(path: string, options?: OpenDirOptions): Dir;
1747
+ export function opendirSync(path: string | URL, options?: OpenDirOptions): Dir;
1603
1748
  /* fs.ReadStream / fs.WriteStream: runtime Readable and Writable streams
1604
1749
  * over a file (scr_fs_stream.c). The options are checked at runtime
1605
1750
  * with Node's rules; flags and mode are checked when the file opens, so
@@ -1641,8 +1786,8 @@ declare module "node:fs" {
1641
1786
  path: string | Buffer | URL,
1642
1787
  options?: BufferEncoding | WriteStreamOptions,
1643
1788
  ): WriteStream;
1644
- export function accessSync(path: string, mode?: number): void;
1645
- export function mkdtempSync(prefix: string): string;
1789
+ export function accessSync(path: string | URL, mode?: number): void;
1790
+ export function mkdtempSync(prefix: string | URL): string;
1646
1791
  export const constants: {
1647
1792
  readonly F_OK: number;
1648
1793
  readonly R_OK: number;
@@ -1745,34 +1890,34 @@ declare module "node:fs" {
1745
1890
  bigint?: boolean;
1746
1891
  throwIfNoEntry?: boolean;
1747
1892
  }
1748
- export function statSync(path: string, options?: undefined): Stats;
1893
+ export function statSync(path: string | URL, options?: undefined): Stats;
1749
1894
  export function statSync(
1750
- path: string,
1895
+ path: string | URL,
1751
1896
  options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false },
1752
1897
  ): Stats | undefined;
1753
1898
  export function statSync(
1754
- path: string,
1899
+ path: string | URL,
1755
1900
  options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true },
1756
1901
  ): Stats;
1757
1902
  /* bigint: true type-checks so the lowering can name it as unsupported. */
1758
- export function statSync(path: string, options: StatSyncOptions & { bigint: true }): Stats;
1759
- export function statSync(path: string, options: StatSyncOptions): Stats | undefined;
1760
- export function lstatSync(path: string, options?: undefined): Stats;
1903
+ export function statSync(path: string | URL, options: StatSyncOptions & { bigint: true }): Stats;
1904
+ export function statSync(path: string | URL, options: StatSyncOptions): Stats | undefined;
1905
+ export function lstatSync(path: string | URL, options?: undefined): Stats;
1761
1906
  export function lstatSync(
1762
- path: string,
1907
+ path: string | URL,
1763
1908
  options: StatSyncOptions & { bigint?: false; throwIfNoEntry: false },
1764
1909
  ): Stats | undefined;
1765
1910
  export function lstatSync(
1766
- path: string,
1911
+ path: string | URL,
1767
1912
  options: StatSyncOptions & { bigint?: false; throwIfNoEntry?: true },
1768
1913
  ): Stats;
1769
1914
  /* bigint: true type-checks so the lowering can name it as unsupported. */
1770
- export function lstatSync(path: string, options: StatSyncOptions & { bigint: true }): Stats;
1771
- export function lstatSync(path: string, options: StatSyncOptions): Stats | undefined;
1915
+ export function lstatSync(path: string | URL, options: StatSyncOptions & { bigint: true }): Stats;
1916
+ export function lstatSync(path: string | URL, options: StatSyncOptions): Stats | undefined;
1772
1917
  /* The fd pair behind spawn's fd-stdio form: openSync(path, flags) →
1773
1918
  * the raw fd. Numeric flags use an inline OR of the O_* constants. */
1774
- export function openSync(path: string, flags: string): number;
1775
- export function openSync(path: string, flags: number, mode?: number): number;
1919
+ export function openSync(path: string | URL, flags: string): number;
1920
+ export function openSync(path: string | URL, flags: number, mode?: number): number;
1776
1921
  export function closeSync(fd: number): void;
1777
1922
  export function fdatasyncSync(fd: number): void;
1778
1923
  export function ftruncateSync(fd: number, len?: number): void;
@@ -1853,9 +1998,9 @@ declare module "node:fs" {
1853
1998
  export function fstatSync(fd: number): Stats;
1854
1999
  /* realpath(3) — resolves symlinks, `.`/`..`, throwing Node's fs error
1855
2000
  * shapes for missing paths. */
1856
- export function realpathSync(path: string): string;
2001
+ export function realpathSync(path: string | URL): string;
1857
2002
  export namespace realpathSync {
1858
- function native(path: string): string;
2003
+ function native(path: string | URL): string;
1859
2004
  }
1860
2005
  /* statfs(2)/statvfs(3) — the filesystem-capacity snapshot (the fields
1861
2006
  * Node's statfsSync reports; bavail × bsize is the free-space probe). */
@@ -2128,6 +2273,10 @@ declare module "fs/promises" {
2128
2273
  options: import("node:fs").GlobOptionsWithFileTypes,
2129
2274
  ): AsyncIterableIterator<import("node:fs").Dirent>;
2130
2275
  export function rm(path: string): Promise<void>;
2276
+ export function rm(
2277
+ path: string,
2278
+ options: { recursive?: boolean; force?: boolean; maxRetries?: number; retryDelay?: number },
2279
+ ): Promise<void>;
2131
2280
  export function stat(path: string): Promise<import("node:fs").Stats>;
2132
2281
  export function statfs(
2133
2282
  path: string | Uint8Array | URL,
@@ -2686,8 +2835,20 @@ declare module "crypto" {
2686
2835
  import { Transform } from "stream";
2687
2836
  export type KeyObjectType = "secret" | "public" | "private";
2688
2837
  export interface JsonWebKey {
2689
- kty?: string;
2838
+ crv?: string;
2839
+ d?: string;
2840
+ dp?: string;
2841
+ dq?: string;
2842
+ e?: string;
2690
2843
  k?: string;
2844
+ kty?: string;
2845
+ n?: string;
2846
+ p?: string;
2847
+ q?: string;
2848
+ qi?: string;
2849
+ x?: string;
2850
+ y?: string;
2851
+ [key: string]: unknown;
2691
2852
  }
2692
2853
  export interface JwkKeyExportOptions {
2693
2854
  format: "jwk";
@@ -2695,16 +2856,183 @@ declare module "crypto" {
2695
2856
  export interface KeyExportOptions {
2696
2857
  format?: "buffer" | undefined;
2697
2858
  }
2698
- /** Secret keys only; the asymmetric key types are not available. */
2859
+ export type KeyFormat = "pem" | "der" | "jwk";
2860
+ export interface AsymmetricKeyExportOptions<T extends KeyFormat> {
2861
+ type: "pkcs1" | "spki" | "pkcs8" | "sec1";
2862
+ format: T;
2863
+ }
2864
+ export interface AsymmetricKeyDetails {
2865
+ modulusLength?: number;
2866
+ publicExponent?: bigint;
2867
+ namedCurve?: string;
2868
+ }
2869
+ /* Secret keys, and RSA and EC private and public keys. */
2699
2870
  export class KeyObject {
2700
2871
  private constructor();
2701
2872
  type: KeyObjectType;
2702
2873
  symmetricKeySize?: number;
2703
2874
  asymmetricKeyType?: string;
2875
+ asymmetricKeyDetails?: AsymmetricKeyDetails;
2876
+ export(options: AsymmetricKeyExportOptions<"pem">): string | Buffer;
2877
+ export(options: AsymmetricKeyExportOptions<"der">): Buffer;
2704
2878
  export(options?: KeyExportOptions): Buffer;
2705
2879
  export(options: JwkKeyExportOptions): JsonWebKey;
2706
2880
  equals(otherKeyObject: KeyObject): boolean;
2707
2881
  }
2882
+ export interface PrivateKeyInput {
2883
+ key: string | Buffer;
2884
+ format?: "pem" | "der" | undefined;
2885
+ type?: "pkcs1" | "pkcs8" | "sec1" | undefined;
2886
+ encoding?: string | undefined;
2887
+ }
2888
+ export interface PublicKeyInput {
2889
+ key: string | Buffer;
2890
+ format?: "pem" | "der" | undefined;
2891
+ type?: "pkcs1" | "spki" | undefined;
2892
+ encoding?: string | undefined;
2893
+ }
2894
+ export interface JsonWebKeyInput {
2895
+ key: JsonWebKey;
2896
+ format: "jwk";
2897
+ }
2898
+ export function createPrivateKey(
2899
+ key: PrivateKeyInput | string | Buffer | JsonWebKeyInput,
2900
+ ): KeyObject;
2901
+ export function createPublicKey(
2902
+ key: PublicKeyInput | string | Buffer | KeyObject | JsonWebKeyInput,
2903
+ ): KeyObject;
2904
+ export interface KeyPairKeyObjectResult {
2905
+ publicKey: KeyObject;
2906
+ privateKey: KeyObject;
2907
+ }
2908
+ export interface KeyPairSyncResult<T1 extends string | Buffer, T2 extends string | Buffer> {
2909
+ publicKey: T1;
2910
+ privateKey: T2;
2911
+ }
2912
+ export interface RSAKeyPairKeyObjectOptions {
2913
+ modulusLength: number;
2914
+ publicExponent?: number | undefined;
2915
+ }
2916
+ export interface ECKeyPairKeyObjectOptions {
2917
+ namedCurve: string;
2918
+ }
2919
+ export interface RSAKeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {
2920
+ modulusLength: number;
2921
+ publicExponent?: number | undefined;
2922
+ publicKeyEncoding: { type: "pkcs1" | "spki"; format: PubF };
2923
+ privateKeyEncoding: { type: "pkcs1" | "pkcs8"; format: PrivF };
2924
+ }
2925
+ export interface ECKeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {
2926
+ namedCurve: string;
2927
+ publicKeyEncoding: { type: "pkcs1" | "spki"; format: PubF };
2928
+ privateKeyEncoding: { type: "sec1" | "pkcs8"; format: PrivF };
2929
+ }
2930
+ export function generateKeyPairSync(
2931
+ type: "rsa",
2932
+ options: RSAKeyPairOptions<"pem", "pem">,
2933
+ ): KeyPairSyncResult<string, string>;
2934
+ export function generateKeyPairSync(
2935
+ type: "rsa",
2936
+ options: RSAKeyPairOptions<"der", "der">,
2937
+ ): KeyPairSyncResult<Buffer, Buffer>;
2938
+ export function generateKeyPairSync(
2939
+ type: "rsa",
2940
+ options: RSAKeyPairKeyObjectOptions,
2941
+ ): KeyPairKeyObjectResult;
2942
+ export function generateKeyPairSync(
2943
+ type: "ec",
2944
+ options: ECKeyPairOptions<"pem", "pem">,
2945
+ ): KeyPairSyncResult<string, string>;
2946
+ export function generateKeyPairSync(
2947
+ type: "ec",
2948
+ options: ECKeyPairOptions<"der", "der">,
2949
+ ): KeyPairSyncResult<Buffer, Buffer>;
2950
+ export function generateKeyPairSync(
2951
+ type: "ec",
2952
+ options: ECKeyPairKeyObjectOptions,
2953
+ ): KeyPairKeyObjectResult;
2954
+ export interface ED25519KeyPairOptions<PubF extends KeyFormat, PrivF extends KeyFormat> {
2955
+ publicKeyEncoding: { type: "spki"; format: PubF };
2956
+ privateKeyEncoding: { type: "pkcs8"; format: PrivF };
2957
+ }
2958
+ export function generateKeyPairSync(
2959
+ type: "ed25519",
2960
+ options: ED25519KeyPairOptions<"pem", "pem">,
2961
+ ): KeyPairSyncResult<string, string>;
2962
+ export function generateKeyPairSync(
2963
+ type: "ed25519",
2964
+ options: ED25519KeyPairOptions<"der", "der">,
2965
+ ): KeyPairSyncResult<Buffer, Buffer>;
2966
+ export function generateKeyPairSync(type: "ed25519", options?: {}): KeyPairKeyObjectResult;
2967
+ export function generateKeyPair(
2968
+ type: "ed25519",
2969
+ options: {} | undefined,
2970
+ callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void,
2971
+ ): void;
2972
+ export function generateKeyPair(
2973
+ type: "rsa",
2974
+ options: RSAKeyPairKeyObjectOptions,
2975
+ callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void,
2976
+ ): void;
2977
+ export function generateKeyPair(
2978
+ type: "ec",
2979
+ options: ECKeyPairKeyObjectOptions,
2980
+ callback: (err: Error | null, publicKey: KeyObject, privateKey: KeyObject) => void,
2981
+ ): void;
2982
+ export interface SigningOptions {
2983
+ padding?: number | undefined;
2984
+ saltLength?: number | undefined;
2985
+ dsaEncoding?: "der" | "ieee-p1363" | undefined;
2986
+ }
2987
+ export interface SignPrivateKeyInput extends PrivateKeyInput, SigningOptions {}
2988
+ export interface SignKeyObjectInput extends SigningOptions {
2989
+ key: KeyObject;
2990
+ }
2991
+ export interface VerifyPublicKeyInput extends PublicKeyInput, SigningOptions {}
2992
+ export interface VerifyKeyObjectInput extends SigningOptions {
2993
+ key: KeyObject;
2994
+ }
2995
+ export function sign(
2996
+ algorithm: string | null | undefined,
2997
+ data: ArrayBufferView,
2998
+ key: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput,
2999
+ ): Buffer;
3000
+ export function verify(
3001
+ algorithm: string | null | undefined,
3002
+ data: ArrayBufferView,
3003
+ key: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput,
3004
+ signature: ArrayBufferView,
3005
+ ): boolean;
3006
+ /* Sign and Verify accumulate update() data; they are not usable as
3007
+ * writable streams. */
3008
+ export class Sign {
3009
+ private constructor();
3010
+ update(data: string | ArrayBufferView): this;
3011
+ update(data: string, inputEncoding: Encoding): this;
3012
+ sign(
3013
+ privateKey: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput,
3014
+ ): Buffer;
3015
+ sign(
3016
+ privateKey: KeyObject | string | Buffer | SignKeyObjectInput | SignPrivateKeyInput,
3017
+ outputFormat: BinaryToTextEncoding,
3018
+ ): string;
3019
+ }
3020
+ export class Verify {
3021
+ private constructor();
3022
+ update(data: string | ArrayBufferView): this;
3023
+ update(data: string, inputEncoding: Encoding): this;
3024
+ verify(
3025
+ object: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput,
3026
+ signature: ArrayBufferView,
3027
+ ): boolean;
3028
+ verify(
3029
+ object: KeyObject | string | Buffer | VerifyKeyObjectInput | VerifyPublicKeyInput,
3030
+ signature: string,
3031
+ signatureEncoding?: BinaryToTextEncoding,
3032
+ ): boolean;
3033
+ }
3034
+ export function createSign(algorithm: string): Sign;
3035
+ export function createVerify(algorithm: string): Verify;
2708
3036
  export function createSecretKey(key: ArrayBufferView | ArrayBufferLike): KeyObject;
2709
3037
  export function createSecretKey(key: string, encoding: BufferEncoding): KeyObject;
2710
3038
  export function generateKeySync(type: "hmac" | "aes", options: { length: number }): KeyObject;
@@ -2777,8 +3105,7 @@ declare module "crypto" {
2777
3105
  b: ArrayBufferView | ArrayBufferLike,
2778
3106
  ): boolean;
2779
3107
  /* WebCrypto's getRandomValues (also the webcrypto object's): integer
2780
- * typed arrays, filled in place and returned. The crypto GLOBAL stays
2781
- * unknown in fallback builds. */
3108
+ * typed arrays, filled in place and returned. */
2782
3109
  type RandomValuesArray =
2783
3110
  | Int8Array
2784
3111
  | Uint8Array
@@ -2790,9 +3117,9 @@ declare module "crypto" {
2790
3117
  | BigInt64Array
2791
3118
  | BigUint64Array;
2792
3119
  export function getRandomValues<T extends RandomValuesArray>(typedArray: T): T;
2793
- export const webcrypto: {
2794
- getRandomValues<T extends RandomValuesArray>(typedArray: T): T;
2795
- };
3120
+ /* The WebCrypto global's object and its SubtleCrypto. */
3121
+ export const webcrypto: Crypto;
3122
+ export const subtle: SubtleCrypto;
2796
3123
  export function randomFillSync<T extends ArrayBufferView | ArrayBufferLike>(
2797
3124
  buffer: T,
2798
3125
  offset?: number,
@@ -2845,7 +3172,8 @@ declare module "crypto" {
2845
3172
  ): void;
2846
3173
  export type BinaryLike = string | ArrayBuffer | ArrayBufferView;
2847
3174
  /* Cipheriv/Decipheriv: aes-128/192/256 in cbc, ctr, and gcm modes and
2848
- * chacha20-poly1305. The stream.Transform members are not declared. */
3175
+ * chacha20-poly1305. Both are Transforms: written chunks go through
3176
+ * update(), and the end pushes final(). */
2849
3177
  export type CipherGCMTypes = "aes-128-gcm" | "aes-192-gcm" | "aes-256-gcm";
2850
3178
  export type CipherChaCha20Poly1305Types = "chacha20-poly1305";
2851
3179
  export type CipherKey = BinaryLike | KeyObject;
@@ -2855,7 +3183,7 @@ declare module "crypto" {
2855
3183
  export interface CipherChaCha20Poly1305Options {
2856
3184
  authTagLength?: number;
2857
3185
  }
2858
- export interface Cipheriv {
3186
+ export interface Cipheriv extends Transform {
2859
3187
  update(data: string | ArrayBufferView): Buffer;
2860
3188
  update(data: string, inputEncoding: BufferEncoding): Buffer;
2861
3189
  update(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: BufferEncoding): string;
@@ -2876,7 +3204,7 @@ declare module "crypto" {
2876
3204
  setAAD(buffer: ArrayBufferView, options?: { plaintextLength: number }): this;
2877
3205
  getAuthTag(): Buffer;
2878
3206
  }
2879
- export interface Decipheriv {
3207
+ export interface Decipheriv extends Transform {
2880
3208
  update(data: ArrayBufferView): Buffer;
2881
3209
  update(data: string, inputEncoding: BufferEncoding): Buffer;
2882
3210
  update(data: ArrayBufferView, inputEncoding: undefined, outputEncoding: BufferEncoding): string;
@@ -2961,6 +3289,68 @@ declare module "crypto" {
2961
3289
  setPrivateKey(privateKey: string, encoding: BinaryToTextEncoding): void;
2962
3290
  }
2963
3291
  export function createECDH(curveName: string): ECDH;
3292
+ export class DiffieHellman {
3293
+ private constructor();
3294
+ generateKeys(): Buffer;
3295
+ generateKeys(encoding: BinaryToTextEncoding): string;
3296
+ computeSecret(
3297
+ otherPublicKey: ArrayBufferView,
3298
+ inputEncoding?: null,
3299
+ outputEncoding?: null,
3300
+ ): Buffer;
3301
+ computeSecret(
3302
+ otherPublicKey: string,
3303
+ inputEncoding: BinaryToTextEncoding,
3304
+ outputEncoding?: null,
3305
+ ): Buffer;
3306
+ computeSecret(
3307
+ otherPublicKey: ArrayBufferView,
3308
+ inputEncoding: null,
3309
+ outputEncoding: BinaryToTextEncoding,
3310
+ ): string;
3311
+ computeSecret(
3312
+ otherPublicKey: string,
3313
+ inputEncoding: BinaryToTextEncoding,
3314
+ outputEncoding: BinaryToTextEncoding,
3315
+ ): string;
3316
+ getPrime(): Buffer;
3317
+ getPrime(encoding: BinaryToTextEncoding): string;
3318
+ getGenerator(): Buffer;
3319
+ getGenerator(encoding: BinaryToTextEncoding): string;
3320
+ getPublicKey(): Buffer;
3321
+ getPublicKey(encoding: BinaryToTextEncoding): string;
3322
+ getPrivateKey(): Buffer;
3323
+ getPrivateKey(encoding: BinaryToTextEncoding): string;
3324
+ setPublicKey(publicKey: ArrayBufferView): void;
3325
+ setPublicKey(publicKey: string, encoding: BufferEncoding): void;
3326
+ setPrivateKey(privateKey: ArrayBufferView): void;
3327
+ setPrivateKey(privateKey: string, encoding: BufferEncoding): void;
3328
+ verifyError: number;
3329
+ }
3330
+ export type DiffieHellmanGroup = Omit<DiffieHellman, "setPublicKey" | "setPrivateKey">;
3331
+ export function createDiffieHellman(primeLength: number, generator?: number): DiffieHellman;
3332
+ export function createDiffieHellman(
3333
+ prime: ArrayBuffer | ArrayBufferView,
3334
+ generator?: number | ArrayBuffer | ArrayBufferView,
3335
+ ): DiffieHellman;
3336
+ export function createDiffieHellman(
3337
+ prime: ArrayBuffer | ArrayBufferView,
3338
+ generator: string,
3339
+ generatorEncoding: BinaryToTextEncoding,
3340
+ ): DiffieHellman;
3341
+ export function createDiffieHellman(
3342
+ prime: string,
3343
+ primeEncoding: BinaryToTextEncoding,
3344
+ generator?: number | ArrayBuffer | ArrayBufferView,
3345
+ ): DiffieHellman;
3346
+ export function createDiffieHellman(
3347
+ prime: string,
3348
+ primeEncoding: BinaryToTextEncoding,
3349
+ generator: string,
3350
+ generatorEncoding: BinaryToTextEncoding,
3351
+ ): DiffieHellman;
3352
+ export function getDiffieHellman(groupName: string): DiffieHellmanGroup;
3353
+ export function createDiffieHellmanGroup(name: string): DiffieHellmanGroup;
2964
3354
  export interface ScryptOptions {
2965
3355
  N?: number;
2966
3356
  r?: number;
@@ -4771,8 +5161,8 @@ declare module "net" {
4771
5161
  * unshift — read answers exactly n buffered bytes or null. */
4772
5162
  read(size?: number): Buffer | null;
4773
5163
  unshift(chunk: Uint8Array): void;
4774
- /* secureConnect/session are TLS-socket events declared on the shared
4775
- * socket surface (the lowering collapses TLSSocket onto this kind):
5164
+ /* secureConnect/secure/session are TLS-socket events declared on the
5165
+ * shared socket surface (the lowering collapses TLSSocket onto this kind):
4776
5166
  * the runtime gates on the transport, so a plain socket's
4777
5167
  * registration never fires — Node's exact split. 'session' fires
4778
5168
  * once with the serialized session (the received-ticket event). */
@@ -4780,7 +5170,15 @@ declare module "net" {
4780
5170
  /* After setEncoding the chunk is a string. */
4781
5171
  on(event: "data", listener: (chunk: string) => void): void;
4782
5172
  on(
4783
- event: "end" | "connect" | "ready" | "timeout" | "readable" | "finish" | "secureConnect",
5173
+ event:
5174
+ | "end"
5175
+ | "connect"
5176
+ | "ready"
5177
+ | "timeout"
5178
+ | "readable"
5179
+ | "finish"
5180
+ | "secureConnect"
5181
+ | "secure",
4784
5182
  listener: () => void,
4785
5183
  ): void;
4786
5184
  on(event: "close", listener: (hadError: boolean) => void): void;
@@ -4796,7 +5194,15 @@ declare module "net" {
4796
5194
  /* After setEncoding the chunk is a string. */
4797
5195
  addListener(event: "data", listener: (chunk: string) => void): void;
4798
5196
  addListener(
4799
- event: "end" | "connect" | "ready" | "timeout" | "readable" | "finish" | "secureConnect",
5197
+ event:
5198
+ | "end"
5199
+ | "connect"
5200
+ | "ready"
5201
+ | "timeout"
5202
+ | "readable"
5203
+ | "finish"
5204
+ | "secureConnect"
5205
+ | "secure",
4800
5206
  listener: () => void,
4801
5207
  ): void;
4802
5208
  addListener(event: "close", listener: (hadError: boolean) => void): void;
@@ -4811,7 +5217,15 @@ declare module "net" {
4811
5217
  /* After setEncoding the chunk is a string. */
4812
5218
  once(event: "data", listener: (chunk: string) => void): void;
4813
5219
  once(
4814
- event: "end" | "connect" | "ready" | "timeout" | "readable" | "finish" | "secureConnect",
5220
+ event:
5221
+ | "end"
5222
+ | "connect"
5223
+ | "ready"
5224
+ | "timeout"
5225
+ | "readable"
5226
+ | "finish"
5227
+ | "secureConnect"
5228
+ | "secure",
4815
5229
  listener: () => void,
4816
5230
  ): void;
4817
5231
  once(event: "close", listener: (hadError: boolean) => void): void;
@@ -4862,9 +5276,10 @@ declare module "net" {
4862
5276
  on(event: "timeout", listener: (socket: Socket) => void): void;
4863
5277
  on(event: "error", listener: (err: Error) => void): void;
4864
5278
  /* The WebSocket handover: fires INSTEAD of 'request' for
4865
- * Connection: upgrade requests, with the raw socket + head bytes. */
5279
+ * Connection: upgrade requests, with the raw socket + head bytes;
5280
+ * 'connect' is its twin for CONNECT requests (HTTP tunneling). */
4866
5281
  on(
4867
- event: "upgrade",
5282
+ event: "upgrade" | "connect",
4868
5283
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
4869
5284
  ): void;
4870
5285
  /* http.createServer(handler)'s event twin (a no-parser net server
@@ -4880,7 +5295,7 @@ declare module "net" {
4880
5295
  addListener(event: "timeout", listener: (socket: Socket) => void): void;
4881
5296
  addListener(event: "error", listener: (err: Error) => void): void;
4882
5297
  addListener(
4883
- event: "upgrade",
5298
+ event: "upgrade" | "connect",
4884
5299
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
4885
5300
  ): void;
4886
5301
  addListener(
@@ -4893,7 +5308,7 @@ declare module "net" {
4893
5308
  once(event: "timeout", listener: (socket: Socket) => void): void;
4894
5309
  once(event: "error", listener: (err: Error) => void): void;
4895
5310
  once(
4896
- event: "upgrade",
5311
+ event: "upgrade" | "connect",
4897
5312
  listener: (req: import("http").IncomingMessage, socket: Socket, head: Buffer) => void,
4898
5313
  ): void;
4899
5314
  once(
@@ -5364,6 +5779,7 @@ declare module "tls" {
5364
5779
  * split — authorizationError is the verify-failure CODE STRING
5365
5780
  * (DEPTH_ZERO_SELF_SIGNED_CERT, ...), or null. */
5366
5781
  export interface TLSSocket extends Socket {
5782
+ readonly encrypted: true;
5367
5783
  authorized: boolean;
5368
5784
  authorizationError: string | null;
5369
5785
  /* null before the handshake, then the negotiated protocol or false */
@@ -5375,6 +5791,21 @@ declare module "tls" {
5375
5791
  /* whether the handshake resumed a cached session */
5376
5792
  isSessionReused(): boolean;
5377
5793
  }
5794
+ /** new tls.TLSSocket(socket, options): the server-mode wrap of an open
5795
+ * socket (a server connection or an http CONNECT socket). The options
5796
+ * record reads at runtime; isServer, cert, key, secureContext,
5797
+ * ALPNProtocols, minVersion and maxVersion are implemented. */
5798
+ export interface TLSSocketOptions {
5799
+ isServer?: boolean;
5800
+ cert?: string | Uint8Array;
5801
+ key?: string | Uint8Array;
5802
+ secureContext?: SecureContext;
5803
+ ALPNProtocols?: string[] | Uint8Array;
5804
+ minVersion?: string;
5805
+ maxVersion?: string;
5806
+ [option: string]: unknown;
5807
+ }
5808
+ export const TLSSocket: new (socket: Socket, options: TLSSocketOptions) => TLSSocket;
5378
5809
  export interface CipherNameAndProtocol {
5379
5810
  name: string;
5380
5811
  standardName: string;
@@ -5383,12 +5814,14 @@ declare module "tls" {
5383
5814
  export const DEFAULT_MIN_VERSION: string;
5384
5815
  export const DEFAULT_MAX_VERSION: string;
5385
5816
  /** tls.connect options — the RUNTIME options record (members read at
5386
- * runtime; port/host/rejectUnauthorized/ca/servername are the
5817
+ * runtime; port/host/socket/rejectUnauthorized/ca/servername are the
5387
5818
  * honestly-implemented set, every other documented member throws the
5388
5819
  * runtime fence — the options-record stance's divergence-66 shape). */
5389
5820
  export interface ConnectionOptions {
5390
5821
  port?: number;
5391
5822
  host?: string;
5823
+ /* an open socket to run the client handshake over */
5824
+ socket?: Socket;
5392
5825
  rejectUnauthorized?: boolean;
5393
5826
  ca?: string | Uint8Array | ReadonlyArray<string | Uint8Array>;
5394
5827
  servername?: string;
@@ -6623,11 +7056,10 @@ declare module "node:events" {
6623
7056
  * write(chunk, enc, cb) {} })`, Duplex/Transform/PassThrough, push/read,
6624
7057
  * flowing vs paused, write/end backpressure + 'drain', pipe/unpipe, and
6625
7058
  * destroy — with Node's event orderings. Chunks are BYTES (Buffer), with
6626
- * utf8 strings converted at push/write like Node; objectMode and
6627
- * setEncoding are declared so uses fence at their sites with their own
6628
- * words. `class My extends Readable` (the _read override form) is a
6629
- * separate feature and fences at the class declaration. The runtime-fired
6630
- * events carry per-class FORCED argument tuples ('data' is one Buffer,
7059
+ * strings converted at push/write like Node, and any value on an
7060
+ * object-mode side (objectMode, readableObjectMode, writableObjectMode —
7061
+ * the object-mode constructor overloads come first). The runtime-fired
7062
+ * events carry per-class FORCED argument tuples ('data' is one chunk,
6631
7063
  * 'error' one Error, 'pipe'/'unpipe' one Readable, the rest empty) — the
6632
7064
  * overloads below hand tsc the same contract so unannotated listener
6633
7065
  * parameters contextually type in .js sources. */
@@ -6733,6 +7165,51 @@ declare module "stream" {
6733
7165
  signal?: AbortSignal;
6734
7166
  }
6735
7167
 
7168
+ /* Object-mode options (objectMode: true, or a Duplex's or Transform's
7169
+ * readableObjectMode / writableObjectMode): chunks and completion data
7170
+ * are any values, and an object-mode write's encoding argument reaches
7171
+ * write/transform as passed (undefined when absent, null when a
7172
+ * callback took its place). The constructors take these before the
7173
+ * byte-mode options, so a byte-mode stream's callbacks keep Buffer
7174
+ * chunks. */
7175
+ type ObjectModeEncoding = string | null | undefined;
7176
+ type ObjectModeFlag =
7177
+ | { objectMode: true }
7178
+ | { readableObjectMode: true }
7179
+ | { writableObjectMode: true };
7180
+ interface ObjectWritableOptions extends Omit<WritableOptions, "objectMode" | "write"> {
7181
+ objectMode: true;
7182
+ write?(
7183
+ this: Writable,
7184
+ chunk: any,
7185
+ encoding: ObjectModeEncoding,
7186
+ callback: (error?: Error | null) => void,
7187
+ ): void;
7188
+ }
7189
+ type ObjectDuplexOptions = Omit<DuplexOptions, "write"> & {
7190
+ write?(
7191
+ this: Duplex,
7192
+ chunk: any,
7193
+ encoding: ObjectModeEncoding,
7194
+ callback: (error?: Error | null) => void,
7195
+ ): void;
7196
+ } & ObjectModeFlag;
7197
+ type ObjectTransformOptions = Omit<TransformOptions, "transform" | "flush" | "write"> & {
7198
+ transform?(
7199
+ this: Transform,
7200
+ chunk: any,
7201
+ encoding: ObjectModeEncoding,
7202
+ callback: (error?: Error | null, data?: any) => void,
7203
+ ): void;
7204
+ flush?(this: Transform, callback: (error?: Error | null, data?: any) => void): void;
7205
+ write?(
7206
+ this: Transform,
7207
+ chunk: any,
7208
+ encoding: ObjectModeEncoding,
7209
+ callback: (error?: Error | null) => void,
7210
+ ): void;
7211
+ } & ObjectModeFlag;
7212
+
6736
7213
  /* The operators' options: concurrency and highWaterMark bound map's
6737
7214
  * in-flight callbacks and queued results. */
6738
7215
  interface ArrayOptions {
@@ -6752,7 +7229,10 @@ declare module "stream" {
6752
7229
  [Symbol.asyncIterator](): AsyncIterableIterator<any>;
6753
7230
  iterator(options?: { destroyOnReturn?: boolean }): AsyncIterableIterator<any>;
6754
7231
  push(chunk: Buffer | string | null, encoding?: string): boolean;
7232
+ /* An object-mode stream's values. */
7233
+ push(chunk: any, encoding?: string): boolean;
6755
7234
  unshift(chunk: Buffer | string, encoding?: string): void;
7235
+ unshift(chunk: any, encoding?: string): void;
6756
7236
  read(size?: number): Buffer | null;
6757
7237
  pause(): this;
6758
7238
  resume(): this;
@@ -6859,6 +7339,7 @@ declare module "stream" {
6859
7339
  }
6860
7340
 
6861
7341
  class Writable extends EventEmitter {
7342
+ constructor(opts: ObjectWritableOptions);
6862
7343
  constructor(opts?: WritableOptions);
6863
7344
  /* The underscore-method surface (see Readable). */
6864
7345
  _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
@@ -6874,9 +7355,19 @@ declare module "stream" {
6874
7355
  encoding: string,
6875
7356
  callback?: (error?: Error | null) => void,
6876
7357
  ): boolean;
7358
+ /* An object-mode stream's values (the encoding argument reaches
7359
+ * _write as passed). */
7360
+ write(chunk: any, callback?: (error?: Error | null) => void): boolean;
7361
+ write(
7362
+ chunk: any,
7363
+ encoding: ObjectModeEncoding,
7364
+ callback?: (error?: Error | null) => void,
7365
+ ): boolean;
6877
7366
  end(callback?: () => void): this;
6878
7367
  end(chunk: Buffer | string, callback?: () => void): this;
6879
7368
  end(chunk: Buffer | string, encoding: string, callback?: () => void): this;
7369
+ end(chunk: any, callback?: () => void): this;
7370
+ end(chunk: any, encoding: ObjectModeEncoding, callback?: () => void): this;
6880
7371
  cork(): void;
6881
7372
  uncork(): void;
6882
7373
  setDefaultEncoding(encoding: string): this;
@@ -6926,6 +7417,7 @@ declare module "stream" {
6926
7417
  * mirrors @types/node: extends Readable, the writable half declared
6927
7418
  * again. The lowering treats both halves as first-class. */
6928
7419
  class Duplex extends Readable {
7420
+ constructor(opts: ObjectDuplexOptions);
6929
7421
  constructor(opts?: DuplexOptions);
6930
7422
  /* The underscore-method surface (see Readable). */
6931
7423
  _write(chunk: any, encoding: string, callback: (error?: Error | null) => void): void;
@@ -6940,9 +7432,19 @@ declare module "stream" {
6940
7432
  encoding: string,
6941
7433
  callback?: (error?: Error | null) => void,
6942
7434
  ): boolean;
7435
+ /* An object-mode stream's values (the encoding argument reaches
7436
+ * _write as passed). */
7437
+ write(chunk: any, callback?: (error?: Error | null) => void): boolean;
7438
+ write(
7439
+ chunk: any,
7440
+ encoding: ObjectModeEncoding,
7441
+ callback?: (error?: Error | null) => void,
7442
+ ): boolean;
6943
7443
  end(callback?: () => void): this;
6944
7444
  end(chunk: Buffer | string, callback?: () => void): this;
6945
7445
  end(chunk: Buffer | string, encoding: string, callback?: () => void): this;
7446
+ end(chunk: any, callback?: () => void): this;
7447
+ end(chunk: any, encoding: ObjectModeEncoding, callback?: () => void): this;
6946
7448
  cork(): void;
6947
7449
  uncork(): void;
6948
7450
  setDefaultEncoding(encoding: string): this;
@@ -7014,16 +7516,18 @@ declare module "stream" {
7014
7516
  }
7015
7517
 
7016
7518
  class Transform extends Duplex {
7519
+ constructor(opts: ObjectTransformOptions);
7017
7520
  constructor(opts?: TransformOptions);
7018
7521
  /* The underscore-method surface (see Readable). */
7019
7522
  _transform(
7020
7523
  chunk: any,
7021
7524
  encoding: string,
7022
- callback: (error?: Error | null, data?: Buffer | string) => void,
7525
+ callback: (error?: Error | null, data?: any) => void,
7023
7526
  ): void;
7024
- _flush(callback: (error?: Error | null, data?: Buffer | string) => void): void;
7527
+ _flush(callback: (error?: Error | null, data?: any) => void): void;
7025
7528
  }
7026
7529
  class PassThrough extends Transform {
7530
+ constructor(opts: ObjectTransformOptions);
7027
7531
  constructor(opts?: TransformOptions);
7028
7532
  }
7029
7533