@scriptc/compiler 0.4.4 → 0.4.5

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 (775) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +198 -44
  2. package/ambient/scriptc-overrides.d.ts +21 -0
  3. package/dist/backend/executable-features.js +3 -0
  4. package/dist/backend/executable-features.js.map +1 -1
  5. package/dist/backend/library-pack.js +2 -1
  6. package/dist/backend/library-pack.js.map +1 -1
  7. package/dist/backend/linker.js +11 -1
  8. package/dist/backend/linker.js.map +1 -1
  9. package/dist/backend/lld.d.ts +9 -0
  10. package/dist/backend/lld.js +48 -0
  11. package/dist/backend/lld.js.map +1 -0
  12. package/dist/backend/lld.test.d.ts +1 -0
  13. package/dist/backend/lld.test.js +53 -0
  14. package/dist/backend/lld.test.js.map +1 -0
  15. package/dist/backend/llvm/appended-array-literals.d.ts +11 -1
  16. package/dist/backend/llvm/appended-array-literals.js +29 -0
  17. package/dist/backend/llvm/appended-array-literals.js.map +1 -1
  18. package/dist/backend/llvm/blocks.js +10 -1
  19. package/dist/backend/llvm/blocks.js.map +1 -1
  20. package/dist/backend/llvm/bytes-alias.d.ts +13 -4
  21. package/dist/backend/llvm/bytes-alias.js +16 -5
  22. package/dist/backend/llvm/bytes-alias.js.map +1 -1
  23. package/dist/backend/llvm/bytes-bounds.d.ts +5 -1
  24. package/dist/backend/llvm/bytes-bounds.js +199 -2
  25. package/dist/backend/llvm/bytes-bounds.js.map +1 -1
  26. package/dist/backend/llvm/bytes-loop-versions.d.ts +45 -3
  27. package/dist/backend/llvm/bytes-loop-versions.js +238 -20
  28. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  29. package/dist/backend/llvm/bytes-loop-versions.test.js +11 -4
  30. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  31. package/dist/backend/llvm/call-lifetimes.d.ts +8 -2
  32. package/dist/backend/llvm/call-lifetimes.js +87 -18
  33. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  34. package/dist/backend/llvm/call-lifetimes.test.js +132 -0
  35. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  36. package/dist/backend/llvm/classes.d.ts +3 -2
  37. package/dist/backend/llvm/classes.js +4 -4
  38. package/dist/backend/llvm/classes.js.map +1 -1
  39. package/dist/backend/llvm/counted-loops.d.ts +14 -2
  40. package/dist/backend/llvm/counted-loops.js +54 -5
  41. package/dist/backend/llvm/counted-loops.js.map +1 -1
  42. package/dist/backend/llvm/debug-info.d.ts +42 -1
  43. package/dist/backend/llvm/debug-info.js +70 -1
  44. package/dist/backend/llvm/debug-info.js.map +1 -1
  45. package/dist/backend/llvm/dense-array-loops.js +2 -2
  46. package/dist/backend/llvm/dense-array-loops.js.map +1 -1
  47. package/dist/backend/llvm/dense-array-loops.test.js +1 -0
  48. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -1
  49. package/dist/backend/llvm/dyn.d.ts +65 -8
  50. package/dist/backend/llvm/dyn.js +375 -40
  51. package/dist/backend/llvm/dyn.js.map +1 -1
  52. package/dist/backend/llvm/emit-function.js +28 -8
  53. package/dist/backend/llvm/emit-function.js.map +1 -1
  54. package/dist/backend/llvm/emit-journal.d.ts +8 -4
  55. package/dist/backend/llvm/emit-journal.js +75 -5
  56. package/dist/backend/llvm/emit-journal.js.map +1 -1
  57. package/dist/backend/llvm/emit-module.d.ts +4 -0
  58. package/dist/backend/llvm/emit-module.js +58 -23
  59. package/dist/backend/llvm/emit-module.js.map +1 -1
  60. package/dist/backend/llvm/emit-statements.js +297 -28
  61. package/dist/backend/llvm/emit-statements.js.map +1 -1
  62. package/dist/backend/llvm/emitter.d.ts +134 -13
  63. package/dist/backend/llvm/emitter.js +514 -87
  64. package/dist/backend/llvm/emitter.js.map +1 -1
  65. package/dist/backend/llvm/expr-bytes.d.ts +6 -4
  66. package/dist/backend/llvm/expr-bytes.js +31 -8
  67. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  68. package/dist/backend/llvm/expr-calls.js +13 -11
  69. package/dist/backend/llvm/expr-calls.js.map +1 -1
  70. package/dist/backend/llvm/expr-containers.d.ts +11 -0
  71. package/dist/backend/llvm/expr-containers.js +87 -9
  72. package/dist/backend/llvm/expr-containers.js.map +1 -1
  73. package/dist/backend/llvm/expr-context.d.ts +3 -0
  74. package/dist/backend/llvm/expr-control.js +83 -0
  75. package/dist/backend/llvm/expr-control.js.map +1 -1
  76. package/dist/backend/llvm/expr-dynamic.d.ts +1 -1
  77. package/dist/backend/llvm/expr-dynamic.js +22 -4
  78. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  79. package/dist/backend/llvm/expr-primitives.js +107 -9
  80. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  81. package/dist/backend/llvm/expr-stream-bridges.js +95 -22
  82. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  83. package/dist/backend/llvm/forked-analysis.d.ts +8 -0
  84. package/dist/backend/llvm/forked-analysis.js +43 -0
  85. package/dist/backend/llvm/forked-analysis.js.map +1 -0
  86. package/dist/backend/llvm/integer-values.d.ts +7 -0
  87. package/dist/backend/llvm/integer-values.js +42 -2
  88. package/dist/backend/llvm/integer-values.js.map +1 -1
  89. package/dist/backend/llvm/integer-views.d.ts +2 -1
  90. package/dist/backend/llvm/integer-views.js +12 -1
  91. package/dist/backend/llvm/integer-views.js.map +1 -1
  92. package/dist/backend/llvm/js-ic.d.ts +4 -0
  93. package/dist/backend/llvm/js-ic.js +133 -15
  94. package/dist/backend/llvm/js-ic.js.map +1 -1
  95. package/dist/backend/llvm/layouts.d.ts +1 -0
  96. package/dist/backend/llvm/layouts.js.map +1 -1
  97. package/dist/backend/llvm/lazy-captures.d.ts +6 -1
  98. package/dist/backend/llvm/lazy-captures.js +10 -5
  99. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  100. package/dist/backend/llvm/lib-abi.d.ts +5 -0
  101. package/dist/backend/llvm/lib-abi.js +19 -0
  102. package/dist/backend/llvm/lib-abi.js.map +1 -1
  103. package/dist/backend/llvm/lib-dispatch.js +128 -42
  104. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  105. package/dist/backend/llvm/lib-filesystem.d.ts +10 -0
  106. package/dist/backend/llvm/lib-filesystem.js +32 -0
  107. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  108. package/dist/backend/llvm/lib-http2.js +2 -2
  109. package/dist/backend/llvm/lib-http2.js.map +1 -1
  110. package/dist/backend/llvm/lib-network.js +2 -0
  111. package/dist/backend/llvm/lib-network.js.map +1 -1
  112. package/dist/backend/llvm/lib-process.js +11 -0
  113. package/dist/backend/llvm/lib-process.js.map +1 -1
  114. package/dist/backend/llvm/lib-shared.js +43 -0
  115. package/dist/backend/llvm/lib-shared.js.map +1 -1
  116. package/dist/backend/llvm/lib-tls.js +28 -3
  117. package/dist/backend/llvm/lib-tls.js.map +1 -1
  118. package/dist/backend/llvm/local-union-storage.test.js +2 -1
  119. package/dist/backend/llvm/local-union-storage.test.js.map +1 -1
  120. package/dist/backend/llvm/loop-array-borrows.d.ts +4 -1
  121. package/dist/backend/llvm/loop-array-borrows.js +11 -5
  122. package/dist/backend/llvm/loop-array-borrows.js.map +1 -1
  123. package/dist/backend/llvm/map-entry-fusion.d.ts +5 -3
  124. package/dist/backend/llvm/map-entry-fusion.js +20 -11
  125. package/dist/backend/llvm/map-entry-fusion.js.map +1 -1
  126. package/dist/backend/llvm/map-entry-fusion.test.js +14 -6
  127. package/dist/backend/llvm/map-entry-fusion.test.js.map +1 -1
  128. package/dist/backend/llvm/map-number-lookup.d.ts +16 -6
  129. package/dist/backend/llvm/map-number-lookup.js +41 -9
  130. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  131. package/dist/backend/llvm/map-number-lookup.test.js +70 -2
  132. package/dist/backend/llvm/map-number-lookup.test.js.map +1 -1
  133. package/dist/backend/llvm/map-read-lifetimes.d.ts +25 -2
  134. package/dist/backend/llvm/map-read-lifetimes.js +136 -6
  135. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  136. package/dist/backend/llvm/map-read-lifetimes.test.js +8 -3
  137. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  138. package/dist/backend/llvm/nullable-unions.d.ts +5 -0
  139. package/dist/backend/llvm/nullable-unions.js +29 -2
  140. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  141. package/dist/backend/llvm/nullable-unions.test.js +25 -1
  142. package/dist/backend/llvm/nullable-unions.test.js.map +1 -1
  143. package/dist/backend/llvm/record-union-keys.test.d.ts +1 -0
  144. package/dist/backend/llvm/record-union-keys.test.js +161 -0
  145. package/dist/backend/llvm/record-union-keys.test.js.map +1 -0
  146. package/dist/backend/llvm/serialized-ir-emission.test.js +2 -0
  147. package/dist/backend/llvm/serialized-ir-emission.test.js.map +1 -1
  148. package/dist/backend/llvm/shapes.d.ts +4 -5
  149. package/dist/backend/llvm/shapes.js +104 -51
  150. package/dist/backend/llvm/shapes.js.map +1 -1
  151. package/dist/backend/llvm/shapes.test.js +14 -2
  152. package/dist/backend/llvm/shapes.test.js.map +1 -1
  153. package/dist/backend/llvm/speculative-integers.d.ts +50 -3
  154. package/dist/backend/llvm/speculative-integers.js +411 -24
  155. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  156. package/dist/backend/llvm/speculative-integers.test.js +103 -1
  157. package/dist/backend/llvm/speculative-integers.test.js.map +1 -1
  158. package/dist/backend/llvm/split.d.ts +10 -1
  159. package/dist/backend/llvm/split.js +243 -59
  160. package/dist/backend/llvm/split.js.map +1 -1
  161. package/dist/backend/llvm/split.test.js +92 -13
  162. package/dist/backend/llvm/split.test.js.map +1 -1
  163. package/dist/backend/llvm/stack-objects.test.js +3 -2
  164. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  165. package/dist/backend/llvm/string-lifetimes.test.js +1 -1
  166. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  167. package/dist/backend/llvm/string-reads.d.ts +13 -0
  168. package/dist/backend/llvm/string-reads.js +22 -0
  169. package/dist/backend/llvm/string-reads.js.map +1 -1
  170. package/dist/backend/llvm/string-slices.d.ts +36 -2
  171. package/dist/backend/llvm/string-slices.js +308 -12
  172. package/dist/backend/llvm/string-slices.js.map +1 -1
  173. package/dist/backend/llvm/string-slices.test.js +182 -3
  174. package/dist/backend/llvm/string-slices.test.js.map +1 -1
  175. package/dist/backend/llvm/string-unit-versions.d.ts +11 -0
  176. package/dist/backend/llvm/string-unit-versions.js +191 -0
  177. package/dist/backend/llvm/string-unit-versions.js.map +1 -0
  178. package/dist/backend/llvm/string-unit-versions.test.d.ts +1 -0
  179. package/dist/backend/llvm/string-unit-versions.test.js +117 -0
  180. package/dist/backend/llvm/string-unit-versions.test.js.map +1 -0
  181. package/dist/backend/llvm/test-boxed-unions.d.ts +5 -2
  182. package/dist/backend/llvm/test-boxed-unions.js +24 -8
  183. package/dist/backend/llvm/test-boxed-unions.js.map +1 -1
  184. package/dist/backend/llvm/unwind-abi.d.ts +52 -0
  185. package/dist/backend/llvm/unwind-abi.js +498 -0
  186. package/dist/backend/llvm/unwind-abi.js.map +1 -0
  187. package/dist/backend/llvm/unwind-abi.test.d.ts +1 -0
  188. package/dist/backend/llvm/unwind-abi.test.js +255 -0
  189. package/dist/backend/llvm/unwind-abi.test.js.map +1 -0
  190. package/dist/backend/llvm/wrapping-sums.d.ts +14 -10
  191. package/dist/backend/llvm/wrapping-sums.js +31 -14
  192. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  193. package/dist/backend/loop-polls.d.ts +6 -0
  194. package/dist/backend/loop-polls.js +24 -0
  195. package/dist/backend/loop-polls.js.map +1 -1
  196. package/dist/backend/may-throw.js +8 -8
  197. package/dist/backend/may-throw.js.map +1 -1
  198. package/dist/backend/native/contracts.d.ts +12 -2
  199. package/dist/backend/native/executable.js +48 -6
  200. package/dist/backend/native/executable.js.map +1 -1
  201. package/dist/backend/native/library.js +4 -3
  202. package/dist/backend/native/library.js.map +1 -1
  203. package/dist/backend/native/program-shards.d.ts +2 -2
  204. package/dist/backend/native/program-shards.js +2 -2
  205. package/dist/backend/native/program-shards.js.map +1 -1
  206. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  207. package/dist/backend/native/runtime-inputs.js +4 -1
  208. package/dist/backend/native/runtime-inputs.js.map +1 -1
  209. package/dist/backend/native/vendor.d.ts +1 -1
  210. package/dist/backend/native/vendor.js +1 -1
  211. package/dist/backend/native/vendor.js.map +1 -1
  212. package/dist/backend/native-codegen.d.ts +3 -1
  213. package/dist/backend/native-codegen.js +4 -3
  214. package/dist/backend/native-codegen.js.map +1 -1
  215. package/dist/backend/native-link-info-core.d.ts +8 -0
  216. package/dist/backend/native-link-info-core.js.map +1 -1
  217. package/dist/backend/native-profile.d.ts +14 -0
  218. package/dist/backend/native-profile.js +28 -0
  219. package/dist/backend/native-profile.js.map +1 -1
  220. package/dist/backend/native-profile.test.js +8 -1
  221. package/dist/backend/native-profile.test.js.map +1 -1
  222. package/dist/backend/native-toolchain.test.js +11 -11
  223. package/dist/backend/native-toolchain.test.js.map +1 -1
  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 +3 -1
  227. package/dist/backend/runtime-pack-core.js +2 -0
  228. package/dist/backend/runtime-pack-core.js.map +1 -1
  229. package/dist/backend/runtime-pack-native.d.ts +17 -5
  230. package/dist/backend/runtime-pack-native.js +186 -14
  231. package/dist/backend/runtime-pack-native.js.map +1 -1
  232. package/dist/backend/runtime-pack-native.test.js +160 -3
  233. package/dist/backend/runtime-pack-native.test.js.map +1 -1
  234. package/dist/backend/runtime-pack-targets.test.js +2 -1
  235. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  236. package/dist/backend/runtime-pack.test.js +2 -1
  237. package/dist/backend/runtime-pack.test.js.map +1 -1
  238. package/dist/backend/vendor-archives.d.ts +4 -1
  239. package/dist/backend/vendor-archives.js +78 -4
  240. package/dist/backend/vendor-archives.js.map +1 -1
  241. package/dist/backend/vendor-inputs.d.ts +3 -1
  242. package/dist/backend/vendor-inputs.js +3 -1
  243. package/dist/backend/vendor-inputs.js.map +1 -1
  244. package/dist/backend/warm-cache.js +1 -0
  245. package/dist/backend/warm-cache.js.map +1 -1
  246. package/dist/cli/command.js +78 -11
  247. package/dist/cli/command.js.map +1 -1
  248. package/dist/cli/usage.d.ts +22 -1
  249. package/dist/cli/usage.js +33 -3
  250. package/dist/cli/usage.js.map +1 -1
  251. package/dist/compat/fetch-profile.d.ts +15 -6
  252. package/dist/compat/fetch-profile.js +519 -498
  253. package/dist/compat/fetch-profile.js.map +1 -1
  254. package/dist/compile-types.d.ts +7 -0
  255. package/dist/contracts/int32-elements.js +2 -1
  256. package/dist/contracts/int32-elements.js.map +1 -1
  257. package/dist/coverage/report.d.ts +14 -3
  258. package/dist/coverage/report.js +216 -0
  259. package/dist/coverage/report.js.map +1 -1
  260. package/dist/coverage/surface-manifest.js +25 -25
  261. package/dist/coverage/surface-manifest.js.map +1 -1
  262. package/dist/coverage/verdict-cache.d.ts +2 -0
  263. package/dist/coverage/verdict-cache.js +10 -1
  264. package/dist/coverage/verdict-cache.js.map +1 -1
  265. package/dist/diagnostics/diagnostic.d.ts +19 -0
  266. package/dist/diagnostics/diagnostic.js +52 -1
  267. package/dist/diagnostics/diagnostic.js.map +1 -1
  268. package/dist/diagnostics/envelope.d.ts +54 -0
  269. package/dist/diagnostics/envelope.js +7 -1
  270. package/dist/diagnostics/envelope.js.map +1 -1
  271. package/dist/diagnostics/render.d.ts +7 -0
  272. package/dist/diagnostics/render.js +15 -4
  273. package/dist/diagnostics/render.js.map +1 -1
  274. package/dist/executable/executable-cache.d.ts +3 -0
  275. package/dist/executable/executable-cache.js +1 -0
  276. package/dist/executable/executable-cache.js.map +1 -1
  277. package/dist/executable/executable-cache.test.js +1 -0
  278. package/dist/executable/executable-cache.test.js.map +1 -1
  279. package/dist/executable/prepare.js +5 -1
  280. package/dist/executable/prepare.js.map +1 -1
  281. package/dist/frontend/analysis.js +26 -2
  282. package/dist/frontend/analysis.js.map +1 -1
  283. package/dist/frontend/fork-target.js +67 -1
  284. package/dist/frontend/fork-target.js.map +1 -1
  285. package/dist/frontend/fork-target.test.js +43 -0
  286. package/dist/frontend/fork-target.test.js.map +1 -1
  287. package/dist/frontend/input-tracker.d.ts +4 -1
  288. package/dist/frontend/input-tracker.js +42 -4
  289. package/dist/frontend/input-tracker.js.map +1 -1
  290. package/dist/frontend/input-tracker.test.js +45 -0
  291. package/dist/frontend/input-tracker.test.js.map +1 -1
  292. package/dist/frontend/lowering/abstract-equality.js +38 -1
  293. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  294. package/dist/frontend/lowering/argument-counts.d.ts +36 -0
  295. package/dist/frontend/lowering/argument-counts.js +201 -0
  296. package/dist/frontend/lowering/argument-counts.js.map +1 -0
  297. package/dist/frontend/lowering/array-values.d.ts +27 -0
  298. package/dist/frontend/lowering/array-values.js +112 -0
  299. package/dist/frontend/lowering/array-values.js.map +1 -1
  300. package/dist/frontend/lowering/binding-analysis.d.ts +3 -0
  301. package/dist/frontend/lowering/binding-analysis.js +9 -3
  302. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  303. package/dist/frontend/lowering/builtin-namespaces.d.ts +13 -0
  304. package/dist/frontend/lowering/builtin-namespaces.js +238 -0
  305. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -0
  306. package/dist/frontend/lowering/builtins/compression.d.ts +4 -3
  307. package/dist/frontend/lowering/builtins/compression.js +86 -5
  308. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  309. package/dist/frontend/lowering/builtins/date-classes.js +17 -1
  310. package/dist/frontend/lowering/builtins/date-classes.js.map +1 -1
  311. package/dist/frontend/lowering/builtins/dates.d.ts +19 -5
  312. package/dist/frontend/lowering/builtins/dates.js +159 -8
  313. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  314. package/dist/frontend/lowering/builtins/filesystem-calls.js +26 -1
  315. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  316. package/dist/frontend/lowering/builtins/fs-streams.d.ts +4 -0
  317. package/dist/frontend/lowering/builtins/fs-streams.js +24 -1
  318. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
  319. package/dist/frontend/lowering/builtins/json.d.ts +4 -1
  320. package/dist/frontend/lowering/builtins/json.js +9 -3
  321. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  322. package/dist/frontend/lowering/builtins/module-bindings.d.ts +6 -0
  323. package/dist/frontend/lowering/builtins/module-bindings.js +23 -1
  324. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  325. package/dist/frontend/lowering/builtins/module-resolution.d.ts +5 -0
  326. package/dist/frontend/lowering/builtins/module-resolution.js +95 -4
  327. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  328. package/dist/frontend/lowering/builtins/promises.js +144 -1
  329. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  330. package/dist/frontend/lowering/builtins/readline.d.ts +5 -1
  331. package/dist/frontend/lowering/builtins/readline.js +22 -11
  332. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  333. package/dist/frontend/lowering/builtins/reflection.d.ts +4 -1
  334. package/dist/frontend/lowering/builtins/reflection.js +41 -1
  335. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  336. package/dist/frontend/lowering/builtins/text-codecs.js +31 -2
  337. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  338. package/dist/frontend/lowering/builtins/webassembly.js +4 -1
  339. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -1
  340. package/dist/frontend/lowering/builtins/x509.d.ts +33 -0
  341. package/dist/frontend/lowering/builtins/x509.js +431 -0
  342. package/dist/frontend/lowering/builtins/x509.js.map +1 -0
  343. package/dist/frontend/lowering/call-arguments.js +44 -0
  344. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  345. package/dist/frontend/lowering/call-signatures.js +1 -1
  346. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  347. package/dist/frontend/lowering/cjs-inline-require.js +1 -1
  348. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  349. package/dist/frontend/lowering/class-attributes.d.ts +7 -0
  350. package/dist/frontend/lowering/class-attributes.js +52 -10
  351. package/dist/frontend/lowering/class-attributes.js.map +1 -1
  352. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +13 -0
  353. package/dist/frontend/lowering/class-dynamic-dispatch.js +174 -9
  354. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  355. package/dist/frontend/lowering/class-method-mutations.js +43 -8
  356. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  357. package/dist/frontend/lowering/class-method-values.js +71 -1
  358. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  359. package/dist/frontend/lowering/class-prototypes.d.ts +8 -0
  360. package/dist/frontend/lowering/class-prototypes.js +83 -2
  361. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  362. package/dist/frontend/lowering/class-to-primitive.d.ts +5 -0
  363. package/dist/frontend/lowering/class-to-primitive.js +79 -7
  364. package/dist/frontend/lowering/class-to-primitive.js.map +1 -1
  365. package/dist/frontend/lowering/coercions/state.d.ts +1 -0
  366. package/dist/frontend/lowering/coercions/state.js.map +1 -1
  367. package/dist/frontend/lowering/coercions/structural.js +89 -10
  368. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  369. package/dist/frontend/lowering/coercions/unions.d.ts +4 -2
  370. package/dist/frontend/lowering/coercions/unions.js +13 -6
  371. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  372. package/dist/frontend/lowering/containers/array-callbacks.js +51 -15
  373. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  374. package/dist/frontend/lowering/containers/array-construction.d.ts +4 -1
  375. package/dist/frontend/lowering/containers/array-construction.js +102 -9
  376. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  377. package/dist/frontend/lowering/containers/array-methods.js +85 -5
  378. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  379. package/dist/frontend/lowering/containers/array-pipelines.js +346 -77
  380. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  381. package/dist/frontend/lowering/containers/callback-arguments.js +11 -1
  382. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  383. package/dist/frontend/lowering/containers/collection-methods.js +12 -0
  384. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  385. package/dist/frontend/lowering/containers/indexed-objects.js +73 -25
  386. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  387. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +4 -4
  388. package/dist/frontend/lowering/containers/iterator-helpers.js +8 -2
  389. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  390. package/dist/frontend/lowering/containers/replacer-params.d.ts +37 -0
  391. package/dist/frontend/lowering/containers/replacer-params.js +294 -0
  392. package/dist/frontend/lowering/containers/replacer-params.js.map +1 -0
  393. package/dist/frontend/lowering/containers/replacer-params.test.d.ts +1 -0
  394. package/dist/frontend/lowering/containers/replacer-params.test.js +61 -0
  395. package/dist/frontend/lowering/containers/replacer-params.test.js.map +1 -0
  396. package/dist/frontend/lowering/containers/string-and-regexp.js +2 -1
  397. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  398. package/dist/frontend/lowering/containers/string-replacement.js +7 -3
  399. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  400. package/dist/frontend/lowering/cycle-initialization.d.ts +4 -2
  401. package/dist/frontend/lowering/cycle-initialization.js +4 -1
  402. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  403. package/dist/frontend/lowering/date-values.d.ts +9 -6
  404. package/dist/frontend/lowering/date-values.js +63 -16
  405. package/dist/frontend/lowering/date-values.js.map +1 -1
  406. package/dist/frontend/lowering/deferred-module-initializers.js +16 -8
  407. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  408. package/dist/frontend/lowering/deferred-module-initializers.test.js +22 -6
  409. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  410. package/dist/frontend/lowering/dispatch-sites.js +1 -0
  411. package/dist/frontend/lowering/dispatch-sites.js.map +1 -1
  412. package/dist/frontend/lowering/expressions/array-literals.d.ts +0 -8
  413. package/dist/frontend/lowering/expressions/array-literals.js +119 -26
  414. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -1
  415. package/dist/frontend/lowering/expressions/binary.js +38 -0
  416. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  417. package/dist/frontend/lowering/expressions/element-access.js +50 -6
  418. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  419. package/dist/frontend/lowering/expressions/identifiers.js +35 -3
  420. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  421. package/dist/frontend/lowering/expressions/narrowing.d.ts +2 -1
  422. package/dist/frontend/lowering/expressions/narrowing.js +8 -1
  423. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  424. package/dist/frontend/lowering/expressions/object-literals.js +8 -2
  425. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  426. package/dist/frontend/lowering/expressions/property-access.js +65 -34
  427. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  428. package/dist/frontend/lowering/expressions/relational.js +76 -11
  429. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  430. package/dist/frontend/lowering/expressions/typeof.js +6 -1
  431. package/dist/frontend/lowering/expressions/typeof.js.map +1 -1
  432. package/dist/frontend/lowering/expressions/updates.js +20 -11
  433. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  434. package/dist/frontend/lowering/f64-handles.d.ts +8 -0
  435. package/dist/frontend/lowering/f64-handles.js +16 -0
  436. package/dist/frontend/lowering/f64-handles.js.map +1 -0
  437. package/dist/frontend/lowering/frozen-records.d.ts +5 -0
  438. package/dist/frontend/lowering/frozen-records.js +12 -4
  439. package/dist/frontend/lowering/frozen-records.js.map +1 -1
  440. package/dist/frontend/lowering/function-context.d.ts +3 -0
  441. package/dist/frontend/lowering/function-context.js.map +1 -1
  442. package/dist/frontend/lowering/function-returns.js +15 -0
  443. package/dist/frontend/lowering/function-returns.js.map +1 -1
  444. package/dist/frontend/lowering/generic-functions.js +17 -6
  445. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  446. package/dist/frontend/lowering/instantiation-path.d.ts +3 -2
  447. package/dist/frontend/lowering/instantiation-path.js.map +1 -1
  448. package/dist/frontend/lowering/instantiation-path.test.js +6 -4
  449. package/dist/frontend/lowering/instantiation-path.test.js.map +1 -1
  450. package/dist/frontend/lowering/iterator-adapters.d.ts +4 -2
  451. package/dist/frontend/lowering/iterator-adapters.js +26 -33
  452. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  453. package/dist/frontend/lowering/js-collection-types.d.ts +11 -0
  454. package/dist/frontend/lowering/js-collection-types.js +490 -0
  455. package/dist/frontend/lowering/js-collection-types.js.map +1 -0
  456. package/dist/frontend/lowering/lib-boundary.js +2 -2
  457. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  458. package/dist/frontend/lowering/lower-assert.d.ts +14 -0
  459. package/dist/frontend/lowering/lower-assert.js +283 -26
  460. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  461. package/dist/frontend/lowering/lower-builtin-values.js +3 -3
  462. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  463. package/dist/frontend/lowering/lower-calls.js +97 -7
  464. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  465. package/dist/frontend/lowering/lower-classes.d.ts +59 -7
  466. package/dist/frontend/lowering/lower-classes.js +647 -176
  467. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  468. package/dist/frontend/lowering/lower-console.js +2 -1
  469. package/dist/frontend/lowering/lower-console.js.map +1 -1
  470. package/dist/frontend/lowering/lower-exprs.d.ts +5 -0
  471. package/dist/frontend/lowering/lower-exprs.js +52 -5
  472. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  473. package/dist/frontend/lowering/lower-functions.js +7 -0
  474. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  475. package/dist/frontend/lowering/lower-generators.js +4 -3
  476. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  477. package/dist/frontend/lowering/lower-inspect.js +264 -46
  478. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  479. package/dist/frontend/lowering/lower-modules.js +28 -17
  480. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  481. package/dist/frontend/lowering/lower-namespaces.d.ts +3 -0
  482. package/dist/frontend/lowering/lower-namespaces.js +44 -1
  483. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  484. package/dist/frontend/lowering/lower-node-module.js +1 -1
  485. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  486. package/dist/frontend/lowering/lower-server.js +126 -32
  487. package/dist/frontend/lowering/lower-server.js.map +1 -1
  488. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -1
  489. package/dist/frontend/lowering/lower-stdlib.js +51 -37
  490. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  491. package/dist/frontend/lowering/lower-stmts.js +294 -46
  492. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  493. package/dist/frontend/lowering/lower-stream.js +515 -121
  494. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  495. package/dist/frontend/lowering/lowerer.d.ts +52 -10
  496. package/dist/frontend/lowering/lowerer.js +249 -37
  497. package/dist/frontend/lowering/lowerer.js.map +1 -1
  498. package/dist/frontend/lowering/lowerer.test.js +1 -1
  499. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  500. package/dist/frontend/lowering/module-namespace-elements.d.ts +13 -0
  501. package/dist/frontend/lowering/module-namespace-elements.js +118 -1
  502. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  503. package/dist/frontend/lowering/private-brands.d.ts +5 -0
  504. package/dist/frontend/lowering/private-brands.js +39 -0
  505. package/dist/frontend/lowering/private-brands.js.map +1 -1
  506. package/dist/frontend/lowering/runtime-optional-elements.d.ts +6 -0
  507. package/dist/frontend/lowering/runtime-optional-elements.js +14 -3
  508. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  509. package/dist/frontend/lowering/sanitize-class-types.js +2 -0
  510. package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
  511. package/dist/frontend/lowering/site-dependencies.d.ts +7 -2
  512. package/dist/frontend/lowering/site-dependencies.js +0 -15
  513. package/dist/frontend/lowering/site-dependencies.js.map +1 -1
  514. package/dist/frontend/lowering/site-dependencies.test.js +7 -5
  515. package/dist/frontend/lowering/site-dependencies.test.js.map +1 -1
  516. package/dist/frontend/lowering/string-index-bounds.d.ts +7 -4
  517. package/dist/frontend/lowering/string-index-bounds.js +21 -7
  518. package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
  519. package/dist/frontend/lowering/surfaces.d.ts +12 -3
  520. package/dist/frontend/lowering/surfaces.js +1576 -1539
  521. package/dist/frontend/lowering/surfaces.js.map +1 -1
  522. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  523. package/dist/frontend/lowering/symbol-fields.js +45 -2
  524. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  525. package/dist/frontend/lowering/union-narrow.d.ts +5 -2
  526. package/dist/frontend/lowering/union-narrow.js +6 -3
  527. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  528. package/dist/frontend/lowering/union-narrow.test.js +10 -0
  529. package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
  530. package/dist/frontend/npm-static-namespace-defaults.d.ts +6 -0
  531. package/dist/frontend/npm-static-namespace-defaults.js +163 -0
  532. package/dist/frontend/npm-static-namespace-defaults.js.map +1 -0
  533. package/dist/frontend/npm-static-namespace-defaults.test.d.ts +1 -0
  534. package/dist/frontend/npm-static-namespace-defaults.test.js +72 -0
  535. package/dist/frontend/npm-static-namespace-defaults.test.js.map +1 -0
  536. package/dist/frontend/npm-static-prune.js +152 -111
  537. package/dist/frontend/npm-static-prune.js.map +1 -1
  538. package/dist/frontend/npm-static.js +35 -32
  539. package/dist/frontend/npm-static.js.map +1 -1
  540. package/dist/frontend/package-shims.d.ts +7 -4
  541. package/dist/frontend/package-shims.js +39 -40
  542. package/dist/frontend/package-shims.js.map +1 -1
  543. package/dist/frontend/pipeline-native.d.ts +2 -2
  544. package/dist/frontend/pipeline-native.js +2 -2
  545. package/dist/frontend/pipeline-native.js.map +1 -1
  546. package/dist/frontend/pipeline.d.ts +19 -2
  547. package/dist/frontend/pipeline.js +102 -11
  548. package/dist/frontend/pipeline.js.map +1 -1
  549. package/dist/frontend/program-analysis.d.ts +2 -0
  550. package/dist/frontend/program-analysis.js +3 -0
  551. package/dist/frontend/program-analysis.js.map +1 -1
  552. package/dist/frontend/program.d.ts +15 -0
  553. package/dist/frontend/program.js +227 -64
  554. package/dist/frontend/program.js.map +1 -1
  555. package/dist/frontend/resolve.d.ts +2 -0
  556. package/dist/frontend/resolve.js +5 -0
  557. package/dist/frontend/resolve.js.map +1 -1
  558. package/dist/frontend/services.d.ts +3 -0
  559. package/dist/frontend/services.js +31 -4
  560. package/dist/frontend/services.js.map +1 -1
  561. package/dist/frontend/shape-inference/analyze.d.ts +93 -0
  562. package/dist/frontend/shape-inference/analyze.js +3138 -0
  563. package/dist/frontend/shape-inference/analyze.js.map +1 -0
  564. package/dist/frontend/shape-inference/constant-graphs.d.ts +54 -0
  565. package/dist/frontend/shape-inference/constant-graphs.js +357 -0
  566. package/dist/frontend/shape-inference/constant-graphs.js.map +1 -0
  567. package/dist/frontend/shape-inference/domain.d.ts +32 -0
  568. package/dist/frontend/shape-inference/domain.js +104 -0
  569. package/dist/frontend/shape-inference/domain.js.map +1 -0
  570. package/dist/frontend/shape-inference/index.d.ts +7 -0
  571. package/dist/frontend/shape-inference/index.js +19 -0
  572. package/dist/frontend/shape-inference/index.js.map +1 -0
  573. package/dist/frontend/shape-inference/report.d.ts +21 -0
  574. package/dist/frontend/shape-inference/report.js +348 -0
  575. package/dist/frontend/shape-inference/report.js.map +1 -0
  576. package/dist/frontend/token-equivalence.d.ts +6 -0
  577. package/dist/frontend/token-equivalence.js +66 -9
  578. package/dist/frontend/token-equivalence.js.map +1 -1
  579. package/dist/frontend/token-equivalence.test.js +33 -1
  580. package/dist/frontend/token-equivalence.test.js.map +1 -1
  581. package/dist/frontend/ts7/checker-features.d.ts +15 -0
  582. package/dist/frontend/ts7/checker-features.js +45 -0
  583. package/dist/frontend/ts7/checker-features.js.map +1 -0
  584. package/dist/frontend/ts7/checker-features.test.d.ts +1 -0
  585. package/dist/frontend/ts7/checker-features.test.js +40 -0
  586. package/dist/frontend/ts7/checker-features.test.js.map +1 -0
  587. package/dist/frontend/ts7/checker-server.d.ts +19 -0
  588. package/dist/frontend/ts7/checker-server.js +46 -0
  589. package/dist/frontend/ts7/checker-server.js.map +1 -0
  590. package/dist/frontend/ts7/checker-server.test.d.ts +1 -0
  591. package/dist/frontend/ts7/checker-server.test.js +38 -0
  592. package/dist/frontend/ts7/checker-server.test.js.map +1 -0
  593. package/dist/frontend/ts7/lib-diagnostics.js +39 -13
  594. package/dist/frontend/ts7/lib-diagnostics.js.map +1 -1
  595. package/dist/frontend/ts7/lib-diagnostics.test.js +40 -0
  596. package/dist/frontend/ts7/lib-diagnostics.test.js.map +1 -1
  597. package/dist/frontend/ts7/native-api.d.ts +1 -0
  598. package/dist/frontend/ts7/native-api.js +25 -2
  599. package/dist/frontend/ts7/native-api.js.map +1 -1
  600. package/dist/frontend/ts7/native-process.d.ts +9 -2
  601. package/dist/frontend/ts7/native-process.js +22 -4
  602. package/dist/frontend/ts7/native-process.js.map +1 -1
  603. package/dist/frontend/ts7/program-host.d.ts +11 -0
  604. package/dist/frontend/ts7/program-host.js +36 -22
  605. package/dist/frontend/ts7/program-host.js.map +1 -1
  606. package/dist/frontend/ts7/semantic-json.d.ts +9 -0
  607. package/dist/frontend/ts7/semantic-json.js +25 -5
  608. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  609. package/dist/frontend/ts7/semantic-model.js +3 -1
  610. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  611. package/dist/frontend/ts7/source-parser.js +3 -1
  612. package/dist/frontend/ts7/source-parser.js.map +1 -1
  613. package/dist/frontend/tsc-codes.js +10 -0
  614. package/dist/frontend/tsc-codes.js.map +1 -1
  615. package/dist/frontend/type-mapper.d.ts +18 -6
  616. package/dist/frontend/type-mapper.js +160 -28
  617. package/dist/frontend/type-mapper.js.map +1 -1
  618. package/dist/index.d.ts +44 -3
  619. package/dist/index.js +27 -8
  620. package/dist/index.js.map +1 -1
  621. package/dist/ir/builtin-effects.js +29 -0
  622. package/dist/ir/builtin-effects.js.map +1 -1
  623. package/dist/ir/builtin-signatures.d.ts +7 -2
  624. package/dist/ir/builtin-signatures.js +5104 -4950
  625. package/dist/ir/builtin-signatures.js.map +1 -1
  626. package/dist/ir/callback-specialization.d.ts +4 -2
  627. package/dist/ir/callback-specialization.js +24 -9
  628. package/dist/ir/callback-specialization.js.map +1 -1
  629. package/dist/ir/capture-values.js +4 -2
  630. package/dist/ir/capture-values.js.map +1 -1
  631. package/dist/ir/char-unit-locals.d.ts +12 -2
  632. package/dist/ir/char-unit-locals.js +400 -58
  633. package/dist/ir/char-unit-locals.js.map +1 -1
  634. package/dist/ir/char-unit-locals.test.js +111 -0
  635. package/dist/ir/char-unit-locals.test.js.map +1 -1
  636. package/dist/ir/constant-globals.js +18 -4
  637. package/dist/ir/constant-globals.js.map +1 -1
  638. package/dist/ir/expression-inlining.d.ts +15 -0
  639. package/dist/ir/expression-inlining.js +166 -0
  640. package/dist/ir/expression-inlining.js.map +1 -0
  641. package/dist/ir/expression-inlining.test.d.ts +1 -0
  642. package/dist/ir/expression-inlining.test.js +123 -0
  643. package/dist/ir/expression-inlining.test.js.map +1 -0
  644. package/dist/ir/function-references.js +2 -0
  645. package/dist/ir/function-references.js.map +1 -1
  646. package/dist/ir/function-references.test.js +6 -0
  647. package/dist/ir/function-references.test.js.map +1 -1
  648. package/dist/ir/int32-arrays.d.ts +27 -6
  649. package/dist/ir/int32-arrays.js +106 -18
  650. package/dist/ir/int32-arrays.js.map +1 -1
  651. package/dist/ir/int32-slots.d.ts +26 -1
  652. package/dist/ir/int32-slots.js +284 -5
  653. package/dist/ir/int32-slots.js.map +1 -1
  654. package/dist/ir/int32-slots.test.js +5 -0
  655. package/dist/ir/int32-slots.test.js.map +1 -1
  656. package/dist/ir/integer-loop-facts.d.ts +5 -0
  657. package/dist/ir/integer-loop-facts.js +90 -1
  658. package/dist/ir/integer-loop-facts.js.map +1 -1
  659. package/dist/ir/integer-loops.d.ts +14 -1
  660. package/dist/ir/integer-loops.js +93 -7
  661. package/dist/ir/integer-loops.js.map +1 -1
  662. package/dist/ir/integer-loops.test.js +70 -0
  663. package/dist/ir/integer-loops.test.js.map +1 -1
  664. package/dist/ir/integer-ranges.js +18 -2
  665. package/dist/ir/integer-ranges.js.map +1 -1
  666. package/dist/ir/integer-ranges.test.js +64 -4
  667. package/dist/ir/integer-ranges.test.js.map +1 -1
  668. package/dist/ir/ir.d.ts +50 -8
  669. package/dist/ir/ir.js +38 -12
  670. package/dist/ir/ir.js.map +1 -1
  671. package/dist/ir/js-ic.d.ts +25 -5
  672. package/dist/ir/js-ic.js +93 -13
  673. package/dist/ir/js-ic.js.map +1 -1
  674. package/dist/ir/js-ic.test.js +153 -0
  675. package/dist/ir/js-ic.test.js.map +1 -1
  676. package/dist/ir/node-index.d.ts +7 -0
  677. package/dist/ir/node-index.js +32 -0
  678. package/dist/ir/node-index.js.map +1 -1
  679. package/dist/ir/receiver-readers.d.ts +6 -1
  680. package/dist/ir/receiver-readers.js +53 -28
  681. package/dist/ir/receiver-readers.js.map +1 -1
  682. package/dist/ir/row-pairs.d.ts +15 -0
  683. package/dist/ir/row-pairs.js +373 -0
  684. package/dist/ir/row-pairs.js.map +1 -0
  685. package/dist/ir/row-pairs.test.d.ts +1 -0
  686. package/dist/ir/row-pairs.test.js +129 -0
  687. package/dist/ir/row-pairs.test.js.map +1 -0
  688. package/dist/ir/runtime-features.d.ts +17 -4
  689. package/dist/ir/runtime-features.js +69 -12
  690. package/dist/ir/runtime-features.js.map +1 -1
  691. package/dist/ir/scalar-records.d.ts +15 -0
  692. package/dist/ir/scalar-records.js +301 -1
  693. package/dist/ir/scalar-records.js.map +1 -1
  694. package/dist/ir/scalar-records.test.js +181 -1
  695. package/dist/ir/scalar-records.test.js.map +1 -1
  696. package/dist/ir/self-captures.js +8 -0
  697. package/dist/ir/self-captures.js.map +1 -1
  698. package/dist/ir/validate.js +37 -28
  699. package/dist/ir/validate.js.map +1 -1
  700. package/dist/library/fence-eval.js +4 -4
  701. package/dist/library/fence-eval.js.map +1 -1
  702. package/dist/library/ir-policy.js +4 -0
  703. package/dist/library/ir-policy.js.map +1 -1
  704. package/dist/library/library-cache.d.ts +1 -0
  705. package/dist/library/library-cache.js +1 -0
  706. package/dist/library/library-cache.js.map +1 -1
  707. package/dist/library/library-cache.test.js +13 -0
  708. package/dist/library/library-cache.test.js.map +1 -1
  709. package/dist/native/cache.d.ts +5 -1
  710. package/dist/native/cache.js +15 -3
  711. package/dist/native/cache.js.map +1 -1
  712. package/dist/native/cli.js +6 -0
  713. package/dist/native/cli.js.map +1 -1
  714. package/dist/native/compiler.d.ts +3 -0
  715. package/dist/native/compiler.js +72 -26
  716. package/dist/native/compiler.js.map +1 -1
  717. package/dist/native/compiler.test.js +87 -2
  718. package/dist/native/compiler.test.js.map +1 -1
  719. package/dist/native/executable-cache-open.test.d.ts +1 -0
  720. package/dist/native/executable-cache-open.test.js +80 -0
  721. package/dist/native/executable-cache-open.test.js.map +1 -0
  722. package/dist/native/executable-cache.d.ts +43 -3
  723. package/dist/native/executable-cache.js +177 -36
  724. package/dist/native/executable-cache.js.map +1 -1
  725. package/dist/native/executable-cache.test.js +103 -0
  726. package/dist/native/executable-cache.test.js.map +1 -1
  727. package/dist/native/prepare.js +38 -16
  728. package/dist/native/prepare.js.map +1 -1
  729. package/dist/native/prepare.test.js +51 -1
  730. package/dist/native/prepare.test.js.map +1 -1
  731. package/dist/native/sanitizer.d.ts +1 -1
  732. package/dist/native/sanitizer.js +17 -3
  733. package/dist/native/sanitizer.js.map +1 -1
  734. package/dist/native/sanitizer.test.js +4 -0
  735. package/dist/native/sanitizer.test.js.map +1 -1
  736. package/dist/node-islands/classify.d.ts +14 -0
  737. package/dist/node-islands/classify.js +114 -0
  738. package/dist/node-islands/classify.js.map +1 -0
  739. package/dist/node-islands/detect.d.ts +13 -0
  740. package/dist/node-islands/detect.js +805 -0
  741. package/dist/node-islands/detect.js.map +1 -0
  742. package/dist/node-islands/detect.test.d.ts +1 -0
  743. package/dist/node-islands/detect.test.js +136 -0
  744. package/dist/node-islands/detect.test.js.map +1 -0
  745. package/dist/node-islands/origin.d.ts +21 -0
  746. package/dist/node-islands/origin.js +60 -0
  747. package/dist/node-islands/origin.js.map +1 -0
  748. package/dist/node-islands/policy.d.ts +49 -0
  749. package/dist/node-islands/policy.js +130 -0
  750. package/dist/node-islands/policy.js.map +1 -0
  751. package/dist/node-islands/report.d.ts +22 -0
  752. package/dist/node-islands/report.js +326 -0
  753. package/dist/node-islands/report.js.map +1 -0
  754. package/dist/node-islands/report.test.d.ts +1 -0
  755. package/dist/node-islands/report.test.js +228 -0
  756. package/dist/node-islands/report.test.js.map +1 -0
  757. package/dist/node-islands/rules.d.ts +20 -0
  758. package/dist/node-islands/rules.js +91 -0
  759. package/dist/node-islands/rules.js.map +1 -0
  760. package/dist/node-islands/scan.d.ts +53 -0
  761. package/dist/node-islands/scan.js +104 -0
  762. package/dist/node-islands/scan.js.map +1 -0
  763. package/dist/node-islands/summary.d.ts +78 -0
  764. package/dist/node-islands/summary.js +26 -0
  765. package/dist/node-islands/summary.js.map +1 -0
  766. package/dist/project-config.d.ts +50 -0
  767. package/dist/project-config.js +372 -0
  768. package/dist/project-config.js.map +1 -0
  769. package/dist/project-config.test.d.ts +1 -0
  770. package/dist/project-config.test.js +154 -0
  771. package/dist/project-config.test.js.map +1 -0
  772. package/dist/wasm/discover.js +6 -31
  773. package/dist/wasm/discover.js.map +1 -1
  774. package/package.json +20 -20
  775. package/surface-manifest.json +20 -35
@@ -31,416 +31,103 @@ const outOfScopeEntry = (id, owner, member, placement, reason) => ({
31
31
  const widerMemberFence = "the member is outside the native static handle projection";
32
32
  const typedInterfaceUnsupported = "typed source has no compiler bridge for this interface";
33
33
  const metadataExclusion = "WebIDL brand metadata is observable reflection, not an executable compatibility operation";
34
- export const NODE24_FETCH_COMPAT_PROFILE = {
35
- schemaVersion: 1,
36
- target: {
37
- node: "24.22.0",
38
- undici: "7.29.1",
39
- },
40
- requestInit: [
41
- {
42
- id: "stdlib.fetch.request-init.method",
43
- name: "RequestInit.method",
44
- conversion: "WebIDL ByteString after all call arguments evaluate",
45
- evidence: [fixture("static-coercion")],
46
- },
47
- {
48
- id: "stdlib.fetch.request-init.headers",
49
- name: "RequestInit.headers",
50
- conversion: "Headers, record, or sequence-of-pairs snapshot",
51
- evidence: [fixture("static"), fixture("static-coercion")],
52
- },
53
- {
54
- id: "stdlib.fetch.request-init.body",
55
- name: "RequestInit.body",
56
- conversion: "string, Uint8Array, ReadableStream, or null",
57
- evidence: [fixture("static"), fixture("static-stream"), fixture("static-coercion")],
58
- },
59
- {
60
- id: "stdlib.fetch.request-init.duplex",
61
- name: "RequestInit.duplex",
62
- conversion: "WebIDL enum; 'half' required for streaming bodies",
63
- evidence: [fixture("static-stream"), fixture("static-coercion")],
64
- },
65
- {
66
- id: "stdlib.fetch.request-init.redirect",
67
- name: "RequestInit.redirect",
68
- conversion: "WebIDL enum: follow, error, or manual",
69
- evidence: [fixture("static"), fixture("static-coercion")],
70
- },
71
- {
72
- id: "stdlib.fetch.request-init.signal",
73
- name: "RequestInit.signal",
74
- conversion: "native AbortSignal handle or absent",
75
- evidence: [fixture("static"), fixture("static-abort-throw")],
76
- },
77
- ],
78
- responseInit: [
79
- {
80
- id: "stdlib.response-init.headers",
81
- name: "ResponseInit.headers",
82
- conversion: "Headers, record, or sequence-of-pairs snapshot",
83
- evidence: [fixture("static")],
84
- },
85
- {
86
- id: "stdlib.response-init.status",
87
- name: "ResponseInit.status",
88
- conversion: "WebIDL unsigned-short conversion followed by the 200–599 range check",
89
- evidence: [fixture("static")],
90
- },
91
- {
92
- id: "stdlib.response-init.statusText",
93
- name: "ResponseInit.statusText",
94
- conversion: "WebIDL ByteString with HTTP reason-phrase validation",
95
- evidence: [fixture("static")],
96
- },
97
- ],
98
- members: {
99
- responseReads: [
100
- "ok",
101
- "status",
102
- "statusText",
103
- "url",
104
- "redirected",
105
- "headers",
106
- "body",
107
- "bodyUsed",
34
+ function buildFetchCompatProfile() {
35
+ return {
36
+ schemaVersion: 1,
37
+ target: {
38
+ node: "24.22.0",
39
+ undici: "7.29.1",
40
+ },
41
+ requestInit: [
42
+ {
43
+ id: "stdlib.fetch.request-init.method",
44
+ name: "RequestInit.method",
45
+ conversion: "WebIDL ByteString after all call arguments evaluate",
46
+ evidence: [fixture("static-coercion")],
47
+ },
48
+ {
49
+ id: "stdlib.fetch.request-init.headers",
50
+ name: "RequestInit.headers",
51
+ conversion: "Headers, record, or sequence-of-pairs snapshot",
52
+ evidence: [fixture("static"), fixture("static-coercion")],
53
+ },
54
+ {
55
+ id: "stdlib.fetch.request-init.body",
56
+ name: "RequestInit.body",
57
+ conversion: "string, Uint8Array, ReadableStream, or null",
58
+ evidence: [fixture("static"), fixture("static-stream"), fixture("static-coercion")],
59
+ },
60
+ {
61
+ id: "stdlib.fetch.request-init.duplex",
62
+ name: "RequestInit.duplex",
63
+ conversion: "WebIDL enum; 'half' required for streaming bodies",
64
+ evidence: [fixture("static-stream"), fixture("static-coercion")],
65
+ },
66
+ {
67
+ id: "stdlib.fetch.request-init.redirect",
68
+ name: "RequestInit.redirect",
69
+ conversion: "WebIDL enum: follow, error, or manual",
70
+ evidence: [fixture("static"), fixture("static-coercion")],
71
+ },
72
+ {
73
+ id: "stdlib.fetch.request-init.signal",
74
+ name: "RequestInit.signal",
75
+ conversion: "native AbortSignal handle or absent",
76
+ evidence: [fixture("static"), fixture("static-abort-throw")],
77
+ },
108
78
  ],
109
- responseCalls: ["json", "text", "bytes"],
110
- readableStreamReads: ["locked"],
111
- readableStreamCalls: ["cancel", "getReader"],
112
- },
113
- operations: [
114
- {
115
- id: "stdlib.headers.constructor",
116
- name: "Headers constructor",
117
- kind: "constructor",
118
- facets: ["webidl-conversion", "mutation", "identity"],
119
- scope: "Record and iterable header pairs, including copying native Headers",
120
- evidence: [fixture("static-request")],
121
- },
122
- {
123
- id: "stdlib.request.constructor",
124
- name: "Request constructor",
125
- kind: "constructor",
126
- facets: ["webidl-conversion", "body-consumption", "error-shape"],
127
- scope: "Absolute URLs with method, headers, body, duplex, redirect, and signal; other RequestInit members retain explicit fences",
128
- evidence: [fixture("static-request")],
129
- },
130
- ...[
131
- "method",
132
- "url",
133
- "headers",
134
- "destination",
135
- "referrer",
136
- "referrerPolicy",
137
- "mode",
138
- "credentials",
139
- "cache",
140
- "redirect",
141
- "integrity",
142
- "keepalive",
143
- "isReloadNavigation",
144
- "isHistoryNavigation",
145
- "signal",
146
- "body",
147
- "bodyUsed",
148
- "duplex",
149
- ].map((member) => ({
150
- id: `stdlib.request.${member}`,
151
- name: `Request.${member}`,
152
- kind: "property",
153
- facets: ["property-read", "state-machine"],
154
- scope: "Reads on native Requests within the constructor's supported RequestInit subset",
155
- evidence: [fixture("static-request")],
156
- })),
157
- ...["arrayBuffer", "text", "json", "bytes"].map((member) => ({
158
- id: `stdlib.request.${member}`,
159
- name: `Request.${member}`,
160
- kind: "method",
161
- facets: ["body-consumption", "promise-settlement", "state-machine", "error-shape"],
162
- evidence: [fixture("static-request")],
163
- })),
164
- {
165
- id: "stdlib.response.constructor",
166
- name: "Response constructor",
167
- kind: "constructor",
168
- facets: ["webidl-conversion", "body-consumption", "state-machine", "error-shape"],
169
- scope: "BodyInit is string, Uint8Array/Buffer, ReadableStream<Uint8Array>, null/undefined, or a checked-dynamic value that follows the supported WebIDL string conversion; ResponseInit is headers/status/statusText",
170
- evidence: [fixture("static")],
171
- },
172
- {
173
- id: "stdlib.fetch",
174
- name: "fetch",
175
- kind: "function",
176
- facets: [
177
- "argument-evaluation",
178
- "webidl-conversion",
179
- "surplus-arguments",
180
- "promise-settlement",
181
- "transport",
182
- "error-shape",
183
- ],
184
- evidence: [fixture("static"), fixture("static-coercion"), fixture("static-network-error")],
185
- },
186
- {
187
- id: "stdlib.abort-controller.constructor",
188
- name: "AbortController constructor",
189
- kind: "constructor",
190
- facets: ["argument-evaluation", "identity", "state-machine", "surplus-arguments"],
191
- evidence: [fixture("static-controller")],
192
- },
193
- {
194
- id: "stdlib.abort-controller.signal",
195
- name: "AbortController.signal",
196
- kind: "property",
197
- facets: ["identity", "property-read", "state-machine"],
198
- evidence: [fixture("static-controller")],
199
- },
200
- {
201
- id: "stdlib.abort-controller.abort",
202
- name: "AbortController.abort",
203
- kind: "method",
204
- facets: ["callback-order", "identity", "liveness", "state-machine", "surplus-arguments"],
205
- evidence: [fixture("static-controller")],
206
- },
207
- {
208
- id: "stdlib.abort-signal.abort",
209
- name: "AbortSignal.abort",
210
- kind: "static-method",
211
- facets: ["identity", "liveness", "surplus-arguments", "property-read"],
212
- evidence: [generated("webidl-operations"), fixture("static-stream-this")],
213
- },
214
- {
215
- id: "stdlib.abort-signal.any",
216
- name: "AbortSignal.any",
217
- kind: "static-method",
218
- facets: ["webidl-conversion", "missing-arguments", "surplus-arguments", "property-read"],
219
- evidence: [generated("webidl-operations"), fixture("static-stream-this")],
220
- },
221
- {
222
- id: "stdlib.abort-signal.timeout",
223
- name: "AbortSignal.timeout",
224
- kind: "static-method",
225
- facets: ["webidl-conversion", "missing-arguments", "surplus-arguments", "error-shape"],
226
- evidence: [generated("webidl-operations"), fixture("static-stream-this")],
227
- },
228
- {
229
- id: "stdlib.abort-signal.aborted",
230
- name: "AbortSignal.aborted",
231
- kind: "property",
232
- facets: ["property-read"],
233
- evidence: [generated("webidl-operations")],
234
- },
235
- {
236
- id: "stdlib.abort-signal.reason",
237
- name: "AbortSignal.reason",
238
- kind: "property",
239
- facets: ["identity", "liveness", "property-read"],
240
- evidence: [generated("webidl-operations"), fixture("static-stream-this")],
241
- },
242
- {
243
- id: "stdlib.abort-signal.onabort",
244
- name: "AbortSignal.onabort",
245
- kind: "property",
246
- facets: ["callback-order", "callback-this", "mutation", "property-read"],
247
- evidence: [generated("abort-events"), fixture("static-listener-this")],
248
- },
249
- {
250
- id: "stdlib.abort-signal.throw-if-aborted",
251
- name: "AbortSignal.throwIfAborted",
252
- kind: "method",
253
- facets: ["identity", "error-shape"],
254
- evidence: [generated("webidl-operations"), fixture("static-abort-throw")],
255
- },
256
- {
257
- id: "stdlib.abort-signal.add-event-listener",
258
- name: "AbortSignal.addEventListener",
259
- kind: "method",
260
- facets: ["webidl-conversion", "identity", "callback-order", "callback-this"],
261
- evidence: [
262
- generated("abort-events"),
263
- fixture("static-listener-this"),
264
- fixture("static-listener-noncallable"),
79
+ responseInit: [
80
+ {
81
+ id: "stdlib.response-init.headers",
82
+ name: "ResponseInit.headers",
83
+ conversion: "Headers, record, or sequence-of-pairs snapshot",
84
+ evidence: [fixture("static")],
85
+ },
86
+ {
87
+ id: "stdlib.response-init.status",
88
+ name: "ResponseInit.status",
89
+ conversion: "WebIDL unsigned-short conversion followed by the 200–599 range check",
90
+ evidence: [fixture("static")],
91
+ },
92
+ {
93
+ id: "stdlib.response-init.statusText",
94
+ name: "ResponseInit.statusText",
95
+ conversion: "WebIDL ByteString with HTTP reason-phrase validation",
96
+ evidence: [fixture("static")],
97
+ },
98
+ ],
99
+ members: {
100
+ responseReads: [
101
+ "ok",
102
+ "status",
103
+ "statusText",
104
+ "url",
105
+ "redirected",
106
+ "headers",
107
+ "body",
108
+ "bodyUsed",
265
109
  ],
110
+ responseCalls: ["json", "text", "bytes"],
111
+ readableStreamReads: ["locked"],
112
+ readableStreamCalls: ["cancel", "getReader"],
266
113
  },
267
- {
268
- id: "stdlib.abort-signal.remove-event-listener",
269
- name: "AbortSignal.removeEventListener",
270
- kind: "method",
271
- facets: ["webidl-conversion", "identity", "callback-order"],
272
- evidence: [generated("abort-events"), fixture("static-stream-this")],
273
- },
274
- {
275
- id: "stdlib.abort-signal.dispatch-event",
276
- name: "AbortSignal.dispatchEvent",
277
- kind: "method",
278
- facets: ["callback-order", "callback-this", "error-shape"],
279
- evidence: [fixture("static-dispatch-throw")],
280
- },
281
- {
282
- id: "stdlib.readable-stream.constructor",
283
- name: "ReadableStream constructor",
284
- kind: "constructor",
285
- facets: ["webidl-conversion", "callback-this", "callback-order", "state-machine"],
286
- evidence: [generated("stream-traces"), fixture("static-stream-this")],
287
- },
288
- {
289
- id: "stdlib.readable-stream.from",
290
- name: "ReadableStream.from",
291
- kind: "static-method",
292
- facets: ["webidl-conversion", "missing-arguments", "surplus-arguments", "liveness"],
293
- evidence: [generated("webidl-operations"), generated("stream-traces")],
294
- },
295
- {
296
- id: "stdlib.readable-stream.locked",
297
- name: "ReadableStream.locked",
298
- kind: "property",
299
- facets: ["property-read", "state-machine"],
300
- evidence: [generated("stream-traces")],
301
- },
302
- {
303
- id: "stdlib.readable-stream.cancel",
304
- name: "ReadableStream.cancel",
305
- kind: "method",
306
- facets: ["identity", "promise-settlement", "state-machine"],
307
- evidence: [generated("stream-traces"), fixture("static-stream")],
308
- },
309
- {
310
- id: "stdlib.readable-stream.get-reader",
311
- name: "ReadableStream.getReader",
312
- kind: "method",
313
- facets: ["webidl-conversion", "identity", "state-machine", "error-shape"],
314
- evidence: [generated("stream-traces"), fixture("static-stream")],
315
- },
316
- {
317
- id: "stdlib.readable-stream-default-reader.closed",
318
- name: "ReadableStreamDefaultReader.closed",
319
- kind: "property",
320
- facets: ["promise-settlement", "property-read", "state-machine"],
321
- evidence: [generated("stream-traces"), fixture("static-stream")],
322
- },
323
- {
324
- id: "stdlib.readable-stream-default-reader.read",
325
- name: "ReadableStreamDefaultReader.read",
326
- kind: "method",
327
- facets: ["identity", "promise-settlement", "state-machine"],
328
- evidence: [generated("stream-traces"), fixture("static-stream")],
329
- },
330
- {
331
- id: "stdlib.readable-stream-default-reader.cancel",
332
- name: "ReadableStreamDefaultReader.cancel",
333
- kind: "method",
334
- facets: ["identity", "promise-settlement", "state-machine"],
335
- evidence: [generated("stream-traces"), fixture("static-stream")],
336
- },
337
- {
338
- id: "stdlib.readable-stream-default-reader.release-lock",
339
- name: "ReadableStreamDefaultReader.releaseLock",
340
- kind: "method",
341
- facets: ["promise-settlement", "state-machine", "error-shape"],
342
- evidence: [generated("stream-traces"), fixture("static-stream")],
343
- },
344
- {
345
- id: "stdlib.readable-stream-default-controller.desired-size",
346
- name: "ReadableStreamDefaultController.desiredSize",
347
- kind: "property",
348
- facets: ["property-read", "state-machine"],
349
- evidence: [generated("stream-traces")],
350
- },
351
- {
352
- id: "stdlib.readable-stream-default-controller.enqueue",
353
- name: "ReadableStreamDefaultController.enqueue",
354
- kind: "method",
355
- facets: ["identity", "liveness", "state-machine", "error-shape"],
356
- evidence: [generated("stream-traces"), fixture("static-stream")],
357
- },
358
- {
359
- id: "stdlib.readable-stream-default-controller.close",
360
- name: "ReadableStreamDefaultController.close",
361
- kind: "method",
362
- facets: ["state-machine", "error-shape"],
363
- evidence: [generated("stream-traces"), fixture("static-stream")],
364
- },
365
- {
366
- id: "stdlib.readable-stream-default-controller.error",
367
- name: "ReadableStreamDefaultController.error",
368
- kind: "method",
369
- facets: ["identity", "promise-settlement", "state-machine"],
370
- evidence: [generated("stream-traces"), fixture("static-stream")],
371
- },
372
- ...["append", "delete", "get", "getSetCookie", "has", "set", "forEach"].map((member) => ({
373
- id: `stdlib.headers.${member}`,
374
- name: `Headers.${member}`,
375
- kind: "method",
376
- facets: member === "forEach"
377
- ? ["callback-order", "callback-this", "mutation"]
378
- : member === "get" || member === "has"
379
- ? ["webidl-conversion", "missing-arguments", "property-read"]
380
- : ["webidl-conversion", "mutation", "error-shape"],
381
- evidence: [fixture("static"), fixture("static-coercion")],
382
- })),
383
- ...["ok", "status", "statusText", "url", "redirected", "headers", "body", "bodyUsed"].map((member) => ({
384
- id: `stdlib.response.${member}`,
385
- name: `Response.${member}`,
386
- kind: "property",
387
- facets: ["property-read"],
388
- evidence: [fixture("static")],
389
- })),
390
- {
391
- id: "stdlib.response.static.json",
392
- name: "Response.json",
393
- kind: "static-method",
394
- facets: ["webidl-conversion", "error-shape"],
395
- scope: "data that crosses the checked-dynamic boundary, serialized with JSON.stringify (toJSON hooks included); ResponseInit as for the constructor",
396
- evidence: [fixture("static-response-json")],
397
- },
398
- ...["json", "text", "bytes", "arrayBuffer"].map((member) => ({
399
- id: `stdlib.response.${member}`,
400
- name: `Response.${member}`,
401
- kind: "method",
402
- facets: ["body-consumption", "promise-settlement", "state-machine", "error-shape"],
403
- evidence: member === "arrayBuffer"
404
- ? [fixture("static")]
405
- : [fixture("static"), fixture("static-stream")],
406
- })),
407
- ],
408
- inventory: {
409
- interfaces: [
410
- "AbortController",
411
- "AbortSignal",
412
- "Headers",
413
- "Request",
414
- "Response",
415
- "ReadableStream",
416
- "ReadableStreamDefaultReader",
417
- "ReadableStreamDefaultController",
418
- ],
419
- entries: [
420
- staticEntry("stdlib.fetch", "globalThis", "fetch", "global"),
421
- staticEntry("stdlib.abort-controller.constructor", "AbortController", "constructor", "constructor"),
422
- staticEntry("stdlib.abort-controller.signal", "AbortController", "signal", "prototype"),
423
- staticEntry("stdlib.abort-controller.abort", "AbortController", "abort", "prototype"),
424
- outOfScopeEntry("stdlib.abort-controller.symbol.toStringTag", "AbortController", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
425
- unsupportedEntry("stdlib.abort-signal.constructor", "AbortSignal", "constructor", "constructor", "Node exposes the interface object but constructing it throws; the compiler does not preserve that constructor behavior"),
426
- staticEntry("stdlib.abort-signal.abort", "AbortSignal", "abort", "static"),
427
- staticEntry("stdlib.abort-signal.timeout", "AbortSignal", "timeout", "static"),
428
- staticEntry("stdlib.abort-signal.any", "AbortSignal", "any", "static"),
429
- staticEntry("stdlib.abort-signal.aborted", "AbortSignal", "aborted", "prototype"),
430
- staticEntry("stdlib.abort-signal.reason", "AbortSignal", "reason", "prototype"),
431
- staticEntry("stdlib.abort-signal.throw-if-aborted", "AbortSignal", "throwIfAborted", "prototype"),
432
- staticEntry("stdlib.abort-signal.onabort", "AbortSignal", "onabort", "prototype"),
433
- staticEntry("stdlib.abort-signal.add-event-listener", "AbortSignal", "addEventListener", "prototype-inherited"),
434
- staticEntry("stdlib.abort-signal.remove-event-listener", "AbortSignal", "removeEventListener", "prototype-inherited"),
435
- staticEntry("stdlib.abort-signal.dispatch-event", "AbortSignal", "dispatchEvent", "prototype-inherited"),
436
- outOfScopeEntry("stdlib.abort-signal.symbol.toStringTag", "AbortSignal", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
437
- staticEntry("stdlib.headers.constructor", "Headers", "constructor", "constructor"),
438
- ...["append", "delete", "get", "has", "set", "getSetCookie"].map((member) => staticEntry(`stdlib.headers.${member}`, "Headers", member, "prototype")),
439
- ...["keys", "values", "entries"].map((member) => unsupportedEntry(`stdlib.headers.${member}`, "Headers", member, "prototype", "native Headers iteration does not yet expose a static iterator handle")),
440
- staticEntry("stdlib.headers.forEach", "Headers", "forEach", "prototype"),
441
- unsupportedEntry("stdlib.headers.symbol.iterator", "Headers", "[Symbol.iterator]", "prototype-symbol", "native Headers iteration does not expose an engine-free iterator handle"),
442
- outOfScopeEntry("stdlib.headers.symbol.toStringTag", "Headers", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
443
- staticEntry("stdlib.request.constructor", "Request", "constructor", "constructor"),
114
+ operations: [
115
+ {
116
+ id: "stdlib.headers.constructor",
117
+ name: "Headers constructor",
118
+ kind: "constructor",
119
+ facets: ["webidl-conversion", "mutation", "identity"],
120
+ scope: "Record and iterable header pairs, including copying native Headers",
121
+ evidence: [fixture("static-request")],
122
+ },
123
+ {
124
+ id: "stdlib.request.constructor",
125
+ name: "Request constructor",
126
+ kind: "constructor",
127
+ facets: ["webidl-conversion", "body-consumption", "error-shape"],
128
+ scope: "Absolute URLs with method, headers, body, duplex, redirect, and signal; other RequestInit members retain explicit fences",
129
+ evidence: [fixture("static-request")],
130
+ },
444
131
  ...[
445
132
  "method",
446
133
  "url",
@@ -460,104 +147,438 @@ export const NODE24_FETCH_COMPAT_PROFILE = {
460
147
  "body",
461
148
  "bodyUsed",
462
149
  "duplex",
463
- "clone",
464
- "blob",
465
- "arrayBuffer",
466
- "text",
467
- "json",
468
- "formData",
469
- "bytes",
470
- "attribute",
471
- ].map((member) => ["clone", "blob", "formData", "attribute"].includes(member)
472
- ? unsupportedEntry(`stdlib.request.${member}`, "Request", member, "prototype", typedInterfaceUnsupported)
473
- : staticEntry(`stdlib.request.${member}`, "Request", member, "prototype")),
474
- outOfScopeEntry("stdlib.request.symbol.toStringTag", "Request", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
475
- staticEntry("stdlib.response.constructor", "Response", "constructor", "constructor"),
476
- staticEntry("stdlib.response.static.json", "Response", "json", "static"),
477
- ...["error", "redirect"].map((member) => unsupportedEntry(`stdlib.response.static.${member}`, "Response", member, "static", "Response static constructor-object operations have no compiler lowering")),
478
- unsupportedEntry("stdlib.response.type", "Response", "type", "prototype", widerMemberFence),
479
- ...["url", "redirected", "status", "ok", "statusText", "headers", "body", "bodyUsed"].map((member) => staticEntry(`stdlib.response.${member}`, "Response", member, "prototype")),
480
- staticEntry("stdlib.response.arrayBuffer", "Response", "arrayBuffer", "prototype"),
481
- ...["clone", "blob", "formData"].map((member) => unsupportedEntry(`stdlib.response.${member}`, "Response", member, "prototype", "the native fetch runtime does not implement this Response operation")),
482
- ...["text", "json"].map((member) => staticEntry(`stdlib.response.${member}`, "Response", member, "prototype")),
483
- staticEntry("stdlib.response.bytes", "Response", "bytes", "prototype"),
484
- outOfScopeEntry("stdlib.response.symbol.toStringTag", "Response", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
485
- staticEntry("stdlib.readable-stream.constructor", "ReadableStream", "constructor", "constructor"),
486
- staticEntry("stdlib.readable-stream.from", "ReadableStream", "from", "static"),
487
- staticEntry("stdlib.readable-stream.locked", "ReadableStream", "locked", "prototype"),
488
- staticEntry("stdlib.readable-stream.cancel", "ReadableStream", "cancel", "prototype"),
489
- staticEntry("stdlib.readable-stream.get-reader", "ReadableStream", "getReader", "prototype"),
490
- ...["pipeThrough", "values"].map((member) => unsupportedEntry(`stdlib.readable-stream.${member}`, "ReadableStream", member, "prototype", member === "values"
491
- ? "direct for-await consumption compiles statically; storing or driving the first-class iterator handle is unsupported"
492
- : "the wider Web Streams graph is outside the native readable-stream slice")),
493
- ...["pipeTo", "tee"].map((member) => unsupportedEntry(`stdlib.readable-stream.${member}`, "ReadableStream", member, "prototype", "this operation is outside the native readable-stream implementation")),
494
- unsupportedEntry("stdlib.readable-stream.symbol.asyncIterator", "ReadableStream", "[Symbol.asyncIterator]", "prototype-symbol", "direct for-await consumption compiles statically; explicit symbol access and stored iterator handles have no compiler lowering"),
495
- outOfScopeEntry("stdlib.readable-stream.symbol.toStringTag", "ReadableStream", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
496
- unsupportedEntry("stdlib.readable-stream-default-reader.constructor", "ReadableStreamDefaultReader", "constructor", "constructor", "reader handles come from ReadableStream.getReader(); the constructor object is unsupported"),
497
- staticEntry("stdlib.readable-stream-default-reader.read", "ReadableStreamDefaultReader", "read", "prototype"),
498
- staticEntry("stdlib.readable-stream-default-reader.release-lock", "ReadableStreamDefaultReader", "releaseLock", "prototype"),
499
- staticEntry("stdlib.readable-stream-default-reader.closed", "ReadableStreamDefaultReader", "closed", "prototype"),
500
- staticEntry("stdlib.readable-stream-default-reader.cancel", "ReadableStreamDefaultReader", "cancel", "prototype"),
501
- outOfScopeEntry("stdlib.readable-stream-default-reader.symbol.toStringTag", "ReadableStreamDefaultReader", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
502
- unsupportedEntry("stdlib.readable-stream-default-controller.constructor", "ReadableStreamDefaultController", "constructor", "constructor", "controller handles come from underlying-source callbacks; the constructor object is unsupported"),
503
- staticEntry("stdlib.readable-stream-default-controller.desired-size", "ReadableStreamDefaultController", "desiredSize", "prototype"),
504
- staticEntry("stdlib.readable-stream-default-controller.close", "ReadableStreamDefaultController", "close", "prototype"),
505
- staticEntry("stdlib.readable-stream-default-controller.enqueue", "ReadableStreamDefaultController", "enqueue", "prototype"),
506
- staticEntry("stdlib.readable-stream-default-controller.error", "ReadableStreamDefaultController", "error", "prototype"),
507
- outOfScopeEntry("stdlib.readable-stream-default-controller.symbol.toStringTag", "ReadableStreamDefaultController", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
508
- ...[
509
- "body",
510
- "cache",
511
- "credentials",
512
- "dispatcher",
513
- "duplex",
514
- "headers",
515
- "integrity",
516
- "keepalive",
517
- "method",
518
- "mode",
519
- "priority",
520
- "redirect",
521
- "referrer",
522
- "referrerPolicy",
523
- "signal",
524
- "window",
525
- ].map((member) => {
526
- const id = `stdlib.fetch.request-init.${member}`;
527
- const supported = new Set(["body", "duplex", "headers", "method", "redirect", "signal"]);
528
- return supported.has(member)
529
- ? staticEntry(id, "RequestInit", member, "dictionary")
530
- : member === "dispatcher"
531
- ? unsupportedEntry(id, "RequestInit", member, "dictionary", "custom dispatchers are unsupported; native environment-proxy routing uses NODE_USE_ENV_PROXY")
532
- : unsupportedEntry(id, "RequestInit", member, "dictionary", "the compiler does not preserve this RequestInit member's conversion or transport behavior");
533
- }),
534
- ...["headers", "status", "statusText"].map((member) => staticEntry(`stdlib.response-init.${member}`, "ResponseInit", member, "dictionary")),
535
- ],
536
- excludedInterfaces: [
150
+ ].map((member) => ({
151
+ id: `stdlib.request.${member}`,
152
+ name: `Request.${member}`,
153
+ kind: "property",
154
+ facets: ["property-read", "state-machine"],
155
+ scope: "Reads on native Requests within the constructor's supported RequestInit subset",
156
+ evidence: [fixture("static-request")],
157
+ })),
158
+ ...["arrayBuffer", "text", "json", "bytes"].map((member) => ({
159
+ id: `stdlib.request.${member}`,
160
+ name: `Request.${member}`,
161
+ kind: "method",
162
+ facets: ["body-consumption", "promise-settlement", "state-machine", "error-shape"],
163
+ evidence: [fixture("static-request")],
164
+ })),
165
+ {
166
+ id: "stdlib.response.constructor",
167
+ name: "Response constructor",
168
+ kind: "constructor",
169
+ facets: ["webidl-conversion", "body-consumption", "state-machine", "error-shape"],
170
+ scope: "BodyInit is string, Uint8Array/Buffer, ReadableStream<Uint8Array>, null/undefined, or a checked-dynamic value that follows the supported WebIDL string conversion; ResponseInit is headers/status/statusText",
171
+ evidence: [fixture("static")],
172
+ },
173
+ {
174
+ id: "stdlib.fetch",
175
+ name: "fetch",
176
+ kind: "function",
177
+ facets: [
178
+ "argument-evaluation",
179
+ "webidl-conversion",
180
+ "surplus-arguments",
181
+ "promise-settlement",
182
+ "transport",
183
+ "error-shape",
184
+ ],
185
+ evidence: [fixture("static"), fixture("static-coercion"), fixture("static-network-error")],
186
+ },
187
+ {
188
+ id: "stdlib.abort-controller.constructor",
189
+ name: "AbortController constructor",
190
+ kind: "constructor",
191
+ facets: ["argument-evaluation", "identity", "state-machine", "surplus-arguments"],
192
+ evidence: [fixture("static-controller")],
193
+ },
194
+ {
195
+ id: "stdlib.abort-controller.signal",
196
+ name: "AbortController.signal",
197
+ kind: "property",
198
+ facets: ["identity", "property-read", "state-machine"],
199
+ evidence: [fixture("static-controller")],
200
+ },
201
+ {
202
+ id: "stdlib.abort-controller.abort",
203
+ name: "AbortController.abort",
204
+ kind: "method",
205
+ facets: ["callback-order", "identity", "liveness", "state-machine", "surplus-arguments"],
206
+ evidence: [fixture("static-controller")],
207
+ },
208
+ {
209
+ id: "stdlib.abort-signal.abort",
210
+ name: "AbortSignal.abort",
211
+ kind: "static-method",
212
+ facets: ["identity", "liveness", "surplus-arguments", "property-read"],
213
+ evidence: [generated("webidl-operations"), fixture("static-stream-this")],
214
+ },
215
+ {
216
+ id: "stdlib.abort-signal.any",
217
+ name: "AbortSignal.any",
218
+ kind: "static-method",
219
+ facets: ["webidl-conversion", "missing-arguments", "surplus-arguments", "property-read"],
220
+ evidence: [generated("webidl-operations"), fixture("static-stream-this")],
221
+ },
222
+ {
223
+ id: "stdlib.abort-signal.timeout",
224
+ name: "AbortSignal.timeout",
225
+ kind: "static-method",
226
+ facets: ["webidl-conversion", "missing-arguments", "surplus-arguments", "error-shape"],
227
+ evidence: [generated("webidl-operations"), fixture("static-stream-this")],
228
+ },
229
+ {
230
+ id: "stdlib.abort-signal.aborted",
231
+ name: "AbortSignal.aborted",
232
+ kind: "property",
233
+ facets: ["property-read"],
234
+ evidence: [generated("webidl-operations")],
235
+ },
236
+ {
237
+ id: "stdlib.abort-signal.reason",
238
+ name: "AbortSignal.reason",
239
+ kind: "property",
240
+ facets: ["identity", "liveness", "property-read"],
241
+ evidence: [generated("webidl-operations"), fixture("static-stream-this")],
242
+ },
537
243
  {
538
- name: "Blob/File/FormData bodies",
539
- reason: "fetch request and response bodies do not accept or produce Blob, File, or FormData values",
244
+ id: "stdlib.abort-signal.onabort",
245
+ name: "AbortSignal.onabort",
246
+ kind: "property",
247
+ facets: ["callback-order", "callback-this", "mutation", "property-read"],
248
+ evidence: [generated("abort-events"), fixture("static-listener-this")],
540
249
  },
541
250
  {
542
- name: "WritableStream/TransformStream",
543
- reason: "native support covers readable fetch bodies and the identity `new TransformStream()`; the WritableStream constructor, transformers, and general Web Streams graphs are unsupported",
251
+ id: "stdlib.abort-signal.throw-if-aborted",
252
+ name: "AbortSignal.throwIfAborted",
253
+ kind: "method",
254
+ facets: ["identity", "error-shape"],
255
+ evidence: [generated("webidl-operations"), fixture("static-abort-throw")],
544
256
  },
545
257
  {
546
- name: "Readable byte/BYOB streams",
547
- reason: "the native stream projection currently supports default readers and controllers only",
258
+ id: "stdlib.abort-signal.add-event-listener",
259
+ name: "AbortSignal.addEventListener",
260
+ kind: "method",
261
+ facets: ["webidl-conversion", "identity", "callback-order", "callback-this"],
262
+ evidence: [
263
+ generated("abort-events"),
264
+ fixture("static-listener-this"),
265
+ fixture("static-listener-noncallable"),
266
+ ],
548
267
  },
549
268
  {
550
- name: "EventSource/WebSocket",
551
- reason: "these are separate protocol clients, not fetch request/response compatibility",
269
+ id: "stdlib.abort-signal.remove-event-listener",
270
+ name: "AbortSignal.removeEventListener",
271
+ kind: "method",
272
+ facets: ["webidl-conversion", "identity", "callback-order"],
273
+ evidence: [generated("abort-events"), fixture("static-stream-this")],
552
274
  },
275
+ {
276
+ id: "stdlib.abort-signal.dispatch-event",
277
+ name: "AbortSignal.dispatchEvent",
278
+ kind: "method",
279
+ facets: ["callback-order", "callback-this", "error-shape"],
280
+ evidence: [fixture("static-dispatch-throw")],
281
+ },
282
+ {
283
+ id: "stdlib.readable-stream.constructor",
284
+ name: "ReadableStream constructor",
285
+ kind: "constructor",
286
+ facets: ["webidl-conversion", "callback-this", "callback-order", "state-machine"],
287
+ evidence: [generated("stream-traces"), fixture("static-stream-this")],
288
+ },
289
+ {
290
+ id: "stdlib.readable-stream.from",
291
+ name: "ReadableStream.from",
292
+ kind: "static-method",
293
+ facets: ["webidl-conversion", "missing-arguments", "surplus-arguments", "liveness"],
294
+ evidence: [generated("webidl-operations"), generated("stream-traces")],
295
+ },
296
+ {
297
+ id: "stdlib.readable-stream.locked",
298
+ name: "ReadableStream.locked",
299
+ kind: "property",
300
+ facets: ["property-read", "state-machine"],
301
+ evidence: [generated("stream-traces")],
302
+ },
303
+ {
304
+ id: "stdlib.readable-stream.cancel",
305
+ name: "ReadableStream.cancel",
306
+ kind: "method",
307
+ facets: ["identity", "promise-settlement", "state-machine"],
308
+ evidence: [generated("stream-traces"), fixture("static-stream")],
309
+ },
310
+ {
311
+ id: "stdlib.readable-stream.get-reader",
312
+ name: "ReadableStream.getReader",
313
+ kind: "method",
314
+ facets: ["webidl-conversion", "identity", "state-machine", "error-shape"],
315
+ evidence: [generated("stream-traces"), fixture("static-stream")],
316
+ },
317
+ {
318
+ id: "stdlib.readable-stream-default-reader.closed",
319
+ name: "ReadableStreamDefaultReader.closed",
320
+ kind: "property",
321
+ facets: ["promise-settlement", "property-read", "state-machine"],
322
+ evidence: [generated("stream-traces"), fixture("static-stream")],
323
+ },
324
+ {
325
+ id: "stdlib.readable-stream-default-reader.read",
326
+ name: "ReadableStreamDefaultReader.read",
327
+ kind: "method",
328
+ facets: ["identity", "promise-settlement", "state-machine"],
329
+ evidence: [generated("stream-traces"), fixture("static-stream")],
330
+ },
331
+ {
332
+ id: "stdlib.readable-stream-default-reader.cancel",
333
+ name: "ReadableStreamDefaultReader.cancel",
334
+ kind: "method",
335
+ facets: ["identity", "promise-settlement", "state-machine"],
336
+ evidence: [generated("stream-traces"), fixture("static-stream")],
337
+ },
338
+ {
339
+ id: "stdlib.readable-stream-default-reader.release-lock",
340
+ name: "ReadableStreamDefaultReader.releaseLock",
341
+ kind: "method",
342
+ facets: ["promise-settlement", "state-machine", "error-shape"],
343
+ evidence: [generated("stream-traces"), fixture("static-stream")],
344
+ },
345
+ {
346
+ id: "stdlib.readable-stream-default-controller.desired-size",
347
+ name: "ReadableStreamDefaultController.desiredSize",
348
+ kind: "property",
349
+ facets: ["property-read", "state-machine"],
350
+ evidence: [generated("stream-traces")],
351
+ },
352
+ {
353
+ id: "stdlib.readable-stream-default-controller.enqueue",
354
+ name: "ReadableStreamDefaultController.enqueue",
355
+ kind: "method",
356
+ facets: ["identity", "liveness", "state-machine", "error-shape"],
357
+ evidence: [generated("stream-traces"), fixture("static-stream")],
358
+ },
359
+ {
360
+ id: "stdlib.readable-stream-default-controller.close",
361
+ name: "ReadableStreamDefaultController.close",
362
+ kind: "method",
363
+ facets: ["state-machine", "error-shape"],
364
+ evidence: [generated("stream-traces"), fixture("static-stream")],
365
+ },
366
+ {
367
+ id: "stdlib.readable-stream-default-controller.error",
368
+ name: "ReadableStreamDefaultController.error",
369
+ kind: "method",
370
+ facets: ["identity", "promise-settlement", "state-machine"],
371
+ evidence: [generated("stream-traces"), fixture("static-stream")],
372
+ },
373
+ ...["append", "delete", "get", "getSetCookie", "has", "set", "forEach"].map((member) => ({
374
+ id: `stdlib.headers.${member}`,
375
+ name: `Headers.${member}`,
376
+ kind: "method",
377
+ facets: member === "forEach"
378
+ ? ["callback-order", "callback-this", "mutation"]
379
+ : member === "get" || member === "has"
380
+ ? ["webidl-conversion", "missing-arguments", "property-read"]
381
+ : ["webidl-conversion", "mutation", "error-shape"],
382
+ evidence: [fixture("static"), fixture("static-coercion")],
383
+ })),
384
+ ...["ok", "status", "statusText", "url", "redirected", "headers", "body", "bodyUsed"].map((member) => ({
385
+ id: `stdlib.response.${member}`,
386
+ name: `Response.${member}`,
387
+ kind: "property",
388
+ facets: ["property-read"],
389
+ evidence: [fixture("static")],
390
+ })),
391
+ {
392
+ id: "stdlib.response.static.json",
393
+ name: "Response.json",
394
+ kind: "static-method",
395
+ facets: ["webidl-conversion", "error-shape"],
396
+ scope: "data that crosses the checked-dynamic boundary, serialized with JSON.stringify (toJSON hooks included); ResponseInit as for the constructor",
397
+ evidence: [fixture("static-response-json")],
398
+ },
399
+ ...["json", "text", "bytes", "arrayBuffer"].map((member) => ({
400
+ id: `stdlib.response.${member}`,
401
+ name: `Response.${member}`,
402
+ kind: "method",
403
+ facets: ["body-consumption", "promise-settlement", "state-machine", "error-shape"],
404
+ evidence: member === "arrayBuffer"
405
+ ? [fixture("static")]
406
+ : [fixture("static"), fixture("static-stream")],
407
+ })),
553
408
  ],
554
- },
555
- };
556
- export const STATIC_RESPONSE_READS = new Set(NODE24_FETCH_COMPAT_PROFILE.members.responseReads);
557
- export const STATIC_RESPONSE_CALLS = new Set(NODE24_FETCH_COMPAT_PROFILE.members.responseCalls);
558
- export const STATIC_HEADERS_CALLS = new Set(NODE24_FETCH_COMPAT_PROFILE.inventory.entries
559
- .filter((entry) => entry.owner === "Headers" && entry.placement === "prototype" && entry.status === "static")
560
- .map((entry) => entry.member));
561
- export const STATIC_READABLE_STREAM_READS = new Set(NODE24_FETCH_COMPAT_PROFILE.members.readableStreamReads);
562
- export const STATIC_READABLE_STREAM_CALLS = new Set(NODE24_FETCH_COMPAT_PROFILE.members.readableStreamCalls);
409
+ inventory: {
410
+ interfaces: [
411
+ "AbortController",
412
+ "AbortSignal",
413
+ "Headers",
414
+ "Request",
415
+ "Response",
416
+ "ReadableStream",
417
+ "ReadableStreamDefaultReader",
418
+ "ReadableStreamDefaultController",
419
+ ],
420
+ entries: [
421
+ staticEntry("stdlib.fetch", "globalThis", "fetch", "global"),
422
+ staticEntry("stdlib.abort-controller.constructor", "AbortController", "constructor", "constructor"),
423
+ staticEntry("stdlib.abort-controller.signal", "AbortController", "signal", "prototype"),
424
+ staticEntry("stdlib.abort-controller.abort", "AbortController", "abort", "prototype"),
425
+ outOfScopeEntry("stdlib.abort-controller.symbol.toStringTag", "AbortController", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
426
+ unsupportedEntry("stdlib.abort-signal.constructor", "AbortSignal", "constructor", "constructor", "Node exposes the interface object but constructing it throws; the compiler does not preserve that constructor behavior"),
427
+ staticEntry("stdlib.abort-signal.abort", "AbortSignal", "abort", "static"),
428
+ staticEntry("stdlib.abort-signal.timeout", "AbortSignal", "timeout", "static"),
429
+ staticEntry("stdlib.abort-signal.any", "AbortSignal", "any", "static"),
430
+ staticEntry("stdlib.abort-signal.aborted", "AbortSignal", "aborted", "prototype"),
431
+ staticEntry("stdlib.abort-signal.reason", "AbortSignal", "reason", "prototype"),
432
+ staticEntry("stdlib.abort-signal.throw-if-aborted", "AbortSignal", "throwIfAborted", "prototype"),
433
+ staticEntry("stdlib.abort-signal.onabort", "AbortSignal", "onabort", "prototype"),
434
+ staticEntry("stdlib.abort-signal.add-event-listener", "AbortSignal", "addEventListener", "prototype-inherited"),
435
+ staticEntry("stdlib.abort-signal.remove-event-listener", "AbortSignal", "removeEventListener", "prototype-inherited"),
436
+ staticEntry("stdlib.abort-signal.dispatch-event", "AbortSignal", "dispatchEvent", "prototype-inherited"),
437
+ outOfScopeEntry("stdlib.abort-signal.symbol.toStringTag", "AbortSignal", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
438
+ staticEntry("stdlib.headers.constructor", "Headers", "constructor", "constructor"),
439
+ ...["append", "delete", "get", "has", "set", "getSetCookie"].map((member) => staticEntry(`stdlib.headers.${member}`, "Headers", member, "prototype")),
440
+ ...["keys", "values", "entries"].map((member) => unsupportedEntry(`stdlib.headers.${member}`, "Headers", member, "prototype", "native Headers iteration does not yet expose a static iterator handle")),
441
+ staticEntry("stdlib.headers.forEach", "Headers", "forEach", "prototype"),
442
+ unsupportedEntry("stdlib.headers.symbol.iterator", "Headers", "[Symbol.iterator]", "prototype-symbol", "native Headers iteration does not expose an engine-free iterator handle"),
443
+ outOfScopeEntry("stdlib.headers.symbol.toStringTag", "Headers", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
444
+ staticEntry("stdlib.request.constructor", "Request", "constructor", "constructor"),
445
+ ...[
446
+ "method",
447
+ "url",
448
+ "headers",
449
+ "destination",
450
+ "referrer",
451
+ "referrerPolicy",
452
+ "mode",
453
+ "credentials",
454
+ "cache",
455
+ "redirect",
456
+ "integrity",
457
+ "keepalive",
458
+ "isReloadNavigation",
459
+ "isHistoryNavigation",
460
+ "signal",
461
+ "body",
462
+ "bodyUsed",
463
+ "duplex",
464
+ "clone",
465
+ "blob",
466
+ "arrayBuffer",
467
+ "text",
468
+ "json",
469
+ "formData",
470
+ "bytes",
471
+ "attribute",
472
+ ].map((member) => ["clone", "blob", "formData", "attribute"].includes(member)
473
+ ? unsupportedEntry(`stdlib.request.${member}`, "Request", member, "prototype", typedInterfaceUnsupported)
474
+ : staticEntry(`stdlib.request.${member}`, "Request", member, "prototype")),
475
+ outOfScopeEntry("stdlib.request.symbol.toStringTag", "Request", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
476
+ staticEntry("stdlib.response.constructor", "Response", "constructor", "constructor"),
477
+ staticEntry("stdlib.response.static.json", "Response", "json", "static"),
478
+ ...["error", "redirect"].map((member) => unsupportedEntry(`stdlib.response.static.${member}`, "Response", member, "static", "Response static constructor-object operations have no compiler lowering")),
479
+ unsupportedEntry("stdlib.response.type", "Response", "type", "prototype", widerMemberFence),
480
+ ...["url", "redirected", "status", "ok", "statusText", "headers", "body", "bodyUsed"].map((member) => staticEntry(`stdlib.response.${member}`, "Response", member, "prototype")),
481
+ staticEntry("stdlib.response.arrayBuffer", "Response", "arrayBuffer", "prototype"),
482
+ ...["clone", "blob", "formData"].map((member) => unsupportedEntry(`stdlib.response.${member}`, "Response", member, "prototype", "the native fetch runtime does not implement this Response operation")),
483
+ ...["text", "json"].map((member) => staticEntry(`stdlib.response.${member}`, "Response", member, "prototype")),
484
+ staticEntry("stdlib.response.bytes", "Response", "bytes", "prototype"),
485
+ outOfScopeEntry("stdlib.response.symbol.toStringTag", "Response", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
486
+ staticEntry("stdlib.readable-stream.constructor", "ReadableStream", "constructor", "constructor"),
487
+ staticEntry("stdlib.readable-stream.from", "ReadableStream", "from", "static"),
488
+ staticEntry("stdlib.readable-stream.locked", "ReadableStream", "locked", "prototype"),
489
+ staticEntry("stdlib.readable-stream.cancel", "ReadableStream", "cancel", "prototype"),
490
+ staticEntry("stdlib.readable-stream.get-reader", "ReadableStream", "getReader", "prototype"),
491
+ ...["pipeThrough", "values"].map((member) => unsupportedEntry(`stdlib.readable-stream.${member}`, "ReadableStream", member, "prototype", member === "values"
492
+ ? "direct for-await consumption compiles statically; storing or driving the first-class iterator handle is unsupported"
493
+ : "the wider Web Streams graph is outside the native readable-stream slice")),
494
+ ...["pipeTo", "tee"].map((member) => unsupportedEntry(`stdlib.readable-stream.${member}`, "ReadableStream", member, "prototype", "this operation is outside the native readable-stream implementation")),
495
+ unsupportedEntry("stdlib.readable-stream.symbol.asyncIterator", "ReadableStream", "[Symbol.asyncIterator]", "prototype-symbol", "direct for-await consumption compiles statically; explicit symbol access and stored iterator handles have no compiler lowering"),
496
+ outOfScopeEntry("stdlib.readable-stream.symbol.toStringTag", "ReadableStream", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
497
+ unsupportedEntry("stdlib.readable-stream-default-reader.constructor", "ReadableStreamDefaultReader", "constructor", "constructor", "reader handles come from ReadableStream.getReader(); the constructor object is unsupported"),
498
+ staticEntry("stdlib.readable-stream-default-reader.read", "ReadableStreamDefaultReader", "read", "prototype"),
499
+ staticEntry("stdlib.readable-stream-default-reader.release-lock", "ReadableStreamDefaultReader", "releaseLock", "prototype"),
500
+ staticEntry("stdlib.readable-stream-default-reader.closed", "ReadableStreamDefaultReader", "closed", "prototype"),
501
+ staticEntry("stdlib.readable-stream-default-reader.cancel", "ReadableStreamDefaultReader", "cancel", "prototype"),
502
+ outOfScopeEntry("stdlib.readable-stream-default-reader.symbol.toStringTag", "ReadableStreamDefaultReader", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
503
+ unsupportedEntry("stdlib.readable-stream-default-controller.constructor", "ReadableStreamDefaultController", "constructor", "constructor", "controller handles come from underlying-source callbacks; the constructor object is unsupported"),
504
+ staticEntry("stdlib.readable-stream-default-controller.desired-size", "ReadableStreamDefaultController", "desiredSize", "prototype"),
505
+ staticEntry("stdlib.readable-stream-default-controller.close", "ReadableStreamDefaultController", "close", "prototype"),
506
+ staticEntry("stdlib.readable-stream-default-controller.enqueue", "ReadableStreamDefaultController", "enqueue", "prototype"),
507
+ staticEntry("stdlib.readable-stream-default-controller.error", "ReadableStreamDefaultController", "error", "prototype"),
508
+ outOfScopeEntry("stdlib.readable-stream-default-controller.symbol.toStringTag", "ReadableStreamDefaultController", "[Symbol.toStringTag]", "prototype-symbol", metadataExclusion),
509
+ ...[
510
+ "body",
511
+ "cache",
512
+ "credentials",
513
+ "dispatcher",
514
+ "duplex",
515
+ "headers",
516
+ "integrity",
517
+ "keepalive",
518
+ "method",
519
+ "mode",
520
+ "priority",
521
+ "redirect",
522
+ "referrer",
523
+ "referrerPolicy",
524
+ "signal",
525
+ "window",
526
+ ].map((member) => {
527
+ const id = `stdlib.fetch.request-init.${member}`;
528
+ const supported = new Set(["body", "duplex", "headers", "method", "redirect", "signal"]);
529
+ return supported.has(member)
530
+ ? staticEntry(id, "RequestInit", member, "dictionary")
531
+ : member === "dispatcher"
532
+ ? unsupportedEntry(id, "RequestInit", member, "dictionary", "custom dispatchers are unsupported; native environment-proxy routing uses NODE_USE_ENV_PROXY")
533
+ : unsupportedEntry(id, "RequestInit", member, "dictionary", "the compiler does not preserve this RequestInit member's conversion or transport behavior");
534
+ }),
535
+ ...["headers", "status", "statusText"].map((member) => staticEntry(`stdlib.response-init.${member}`, "ResponseInit", member, "dictionary")),
536
+ ],
537
+ excludedInterfaces: [
538
+ {
539
+ name: "Blob/File/FormData bodies",
540
+ reason: "fetch request and response bodies do not accept or produce Blob, File, or FormData values",
541
+ },
542
+ {
543
+ name: "WritableStream/TransformStream",
544
+ reason: "native support covers readable fetch bodies and the identity `new TransformStream()`; the WritableStream constructor, transformers, and general Web Streams graphs are unsupported",
545
+ },
546
+ {
547
+ name: "Readable byte/BYOB streams",
548
+ reason: "the native stream projection currently supports default readers and controllers only",
549
+ },
550
+ {
551
+ name: "EventSource/WebSocket",
552
+ reason: "these are separate protocol clients, not fetch request/response compatibility",
553
+ },
554
+ ],
555
+ },
556
+ };
557
+ }
558
+ let fetchCompatProfile;
559
+ /** The Node 24 fetch compatibility profile. It is built on the first call,
560
+ * so runs that do not lower a module do not construct it. */
561
+ export function node24FetchCompatProfile() {
562
+ fetchCompatProfile ??= buildFetchCompatProfile();
563
+ return fetchCompatProfile;
564
+ }
565
+ let staticFetchMemberSets;
566
+ /** The profile's static members as sets, built on the first call. */
567
+ export function staticFetchMembers() {
568
+ if (staticFetchMemberSets !== undefined)
569
+ return staticFetchMemberSets;
570
+ const profile = node24FetchCompatProfile();
571
+ staticFetchMemberSets = {
572
+ responseReads: new Set(profile.members.responseReads),
573
+ responseCalls: new Set(profile.members.responseCalls),
574
+ headersCalls: new Set(profile.inventory.entries
575
+ .filter((entry) => entry.owner === "Headers" &&
576
+ entry.placement === "prototype" &&
577
+ entry.status === "static")
578
+ .map((entry) => entry.member)),
579
+ readableStreamReads: new Set(profile.members.readableStreamReads),
580
+ readableStreamCalls: new Set(profile.members.readableStreamCalls),
581
+ };
582
+ return staticFetchMemberSets;
583
+ }
563
584
  //# sourceMappingURL=fetch-profile.js.map