@scriptc/compiler 0.3.6 → 0.4.1

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 (1358) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +717 -55
  2. package/ambient/scriptc.d.ts +134 -0
  3. package/dist/backend/cycle-analysis.d.ts +1 -1
  4. package/dist/backend/cycle-analysis.js +1 -0
  5. package/dist/backend/cycle-analysis.js.map +1 -1
  6. package/dist/backend/cycle-analysis.test.js +13 -1
  7. package/dist/backend/cycle-analysis.test.js.map +1 -1
  8. package/dist/backend/cycle-mutability.js +16 -5
  9. package/dist/backend/cycle-mutability.js.map +1 -1
  10. package/dist/backend/executable-features.js +20 -0
  11. package/dist/backend/executable-features.js.map +1 -1
  12. package/dist/backend/immutability.test.js +1 -1
  13. package/dist/backend/library-pack.js +9 -0
  14. package/dist/backend/library-pack.js.map +1 -1
  15. package/dist/backend/link-plan-core.d.ts +2 -0
  16. package/dist/backend/link-plan-core.js +2 -0
  17. package/dist/backend/link-plan-core.js.map +1 -1
  18. package/dist/backend/link-plan.d.ts +1 -0
  19. package/dist/backend/link-plan.js +1 -0
  20. package/dist/backend/link-plan.js.map +1 -1
  21. package/dist/backend/llvm/alloc.d.ts +41 -4
  22. package/dist/backend/llvm/alloc.js +138 -7
  23. package/dist/backend/llvm/alloc.js.map +1 -1
  24. package/dist/backend/llvm/alloc.test.js +30 -1
  25. package/dist/backend/llvm/alloc.test.js.map +1 -1
  26. package/dist/backend/llvm/appended-array-literals.test.js +1 -1
  27. package/dist/backend/llvm/array-search.js +3 -1
  28. package/dist/backend/llvm/array-search.js.map +1 -1
  29. package/dist/backend/llvm/array-search.test.js +1 -1
  30. package/dist/backend/llvm/blocks.d.ts +8 -0
  31. package/dist/backend/llvm/blocks.js +43 -1
  32. package/dist/backend/llvm/blocks.js.map +1 -1
  33. package/dist/backend/llvm/blocks.test.js +22 -1
  34. package/dist/backend/llvm/blocks.test.js.map +1 -1
  35. package/dist/backend/llvm/byte-numbers.js +15 -5
  36. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  37. package/dist/backend/llvm/bytes-alias.d.ts +14 -0
  38. package/dist/backend/llvm/bytes-alias.js +20 -0
  39. package/dist/backend/llvm/bytes-alias.js.map +1 -0
  40. package/dist/backend/llvm/bytes-loop-versions.d.ts +86 -0
  41. package/dist/backend/llvm/bytes-loop-versions.js +506 -0
  42. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -0
  43. package/dist/backend/llvm/bytes-loop-versions.test.d.ts +1 -0
  44. package/dist/backend/llvm/bytes-loop-versions.test.js +244 -0
  45. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -0
  46. package/dist/backend/llvm/call-lifetimes.js +50 -1
  47. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  48. package/dist/backend/llvm/call-lifetimes.test.js +34 -0
  49. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  50. package/dist/backend/llvm/checked-narrows.test.js +1 -1
  51. package/dist/backend/llvm/checked-value-lifetimes.js +4 -1
  52. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  53. package/dist/backend/llvm/classes.d.ts +38 -1
  54. package/dist/backend/llvm/classes.js +185 -35
  55. package/dist/backend/llvm/classes.js.map +1 -1
  56. package/dist/backend/llvm/classes.test.js +79 -17
  57. package/dist/backend/llvm/classes.test.js.map +1 -1
  58. package/dist/backend/llvm/common.d.ts +21 -3
  59. package/dist/backend/llvm/common.js +51 -3
  60. package/dist/backend/llvm/common.js.map +1 -1
  61. package/dist/backend/llvm/constant-callbacks.d.ts +5 -1
  62. package/dist/backend/llvm/constant-callbacks.js +55 -12
  63. package/dist/backend/llvm/constant-callbacks.js.map +1 -1
  64. package/dist/backend/llvm/constant-callbacks.test.js +88 -1
  65. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -1
  66. package/dist/backend/llvm/counted-loops.d.ts +4 -0
  67. package/dist/backend/llvm/counted-loops.js +37 -0
  68. package/dist/backend/llvm/counted-loops.js.map +1 -1
  69. package/dist/backend/llvm/dense-array-access.d.ts +15 -4
  70. package/dist/backend/llvm/dense-array-access.js +125 -44
  71. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  72. package/dist/backend/llvm/dense-array-access.test.js +63 -3
  73. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  74. package/dist/backend/llvm/dense-array-loops.d.ts +51 -0
  75. package/dist/backend/llvm/dense-array-loops.js +162 -0
  76. package/dist/backend/llvm/dense-array-loops.js.map +1 -0
  77. package/dist/backend/llvm/dense-array-loops.test.d.ts +1 -0
  78. package/dist/backend/llvm/dense-array-loops.test.js +128 -0
  79. package/dist/backend/llvm/dense-array-loops.test.js.map +1 -0
  80. package/dist/backend/llvm/dyn-handle-tags.test.d.ts +1 -0
  81. package/dist/backend/llvm/dyn-handle-tags.test.js +38 -0
  82. package/dist/backend/llvm/dyn-handle-tags.test.js.map +1 -0
  83. package/dist/backend/llvm/dyn.d.ts +37 -4
  84. package/dist/backend/llvm/dyn.js +354 -183
  85. package/dist/backend/llvm/dyn.js.map +1 -1
  86. package/dist/backend/llvm/emit-function.d.ts +64 -0
  87. package/dist/backend/llvm/emit-function.js +1193 -0
  88. package/dist/backend/llvm/emit-function.js.map +1 -0
  89. package/dist/backend/llvm/emit-module.d.ts +24 -0
  90. package/dist/backend/llvm/emit-module.js +1557 -0
  91. package/dist/backend/llvm/emit-module.js.map +1 -0
  92. package/dist/backend/llvm/emit-statements.d.ts +59 -0
  93. package/dist/backend/llvm/emit-statements.js +2041 -0
  94. package/dist/backend/llvm/emit-statements.js.map +1 -0
  95. package/dist/backend/llvm/emitter.d.ts +566 -291
  96. package/dist/backend/llvm/emitter.js +728 -4671
  97. package/dist/backend/llvm/emitter.js.map +1 -1
  98. package/dist/backend/llvm/emitter.test.js +57 -3
  99. package/dist/backend/llvm/emitter.test.js.map +1 -1
  100. package/dist/backend/llvm/expr-async.js +73 -46
  101. package/dist/backend/llvm/expr-async.js.map +1 -1
  102. package/dist/backend/llvm/expr-async.test.js +1 -1
  103. package/dist/backend/llvm/expr-bytes.d.ts +2 -0
  104. package/dist/backend/llvm/expr-bytes.js +76 -29
  105. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  106. package/dist/backend/llvm/expr-callbacks.d.ts +6 -2
  107. package/dist/backend/llvm/expr-callbacks.js +48 -11
  108. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  109. package/dist/backend/llvm/expr-calls.d.ts +1 -1
  110. package/dist/backend/llvm/expr-calls.js +87 -56
  111. package/dist/backend/llvm/expr-calls.js.map +1 -1
  112. package/dist/backend/llvm/expr-calls.test.js +1 -1
  113. package/dist/backend/llvm/expr-containers.js +45 -24
  114. package/dist/backend/llvm/expr-containers.js.map +1 -1
  115. package/dist/backend/llvm/expr-control.js +16 -16
  116. package/dist/backend/llvm/expr-control.js.map +1 -1
  117. package/dist/backend/llvm/expr-dynamic.d.ts +3 -0
  118. package/dist/backend/llvm/expr-dynamic.js +113 -66
  119. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  120. package/dist/backend/llvm/expr-primitives.js +124 -28
  121. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  122. package/dist/backend/llvm/expr-primitives.test.js +57 -2
  123. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  124. package/dist/backend/llvm/expr-records.d.ts +1 -1
  125. package/dist/backend/llvm/expr-records.js +32 -11
  126. package/dist/backend/llvm/expr-records.js.map +1 -1
  127. package/dist/backend/llvm/expr-stream-bridges.js +65 -27
  128. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  129. package/dist/backend/llvm/expr-stream-bridges.test.js +2 -2
  130. package/dist/backend/llvm/expr-stream-callbacks.js +22 -1
  131. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  132. package/dist/backend/llvm/int32-abi.test.js +2 -2
  133. package/dist/backend/llvm/integer-clones.js +3 -3
  134. package/dist/backend/llvm/integer-clones.js.map +1 -1
  135. package/dist/backend/llvm/integer-clones.test.js +3 -3
  136. package/dist/backend/llvm/integer-remainder.d.ts +34 -13
  137. package/dist/backend/llvm/integer-remainder.js +156 -22
  138. package/dist/backend/llvm/integer-remainder.js.map +1 -1
  139. package/dist/backend/llvm/intern-tables.test.js +1 -1
  140. package/dist/backend/llvm/js-ic.d.ts +18 -0
  141. package/dist/backend/llvm/js-ic.js +712 -0
  142. package/dist/backend/llvm/js-ic.js.map +1 -0
  143. package/dist/backend/llvm/jsval-encoding.d.ts +21 -0
  144. package/dist/backend/llvm/jsval-encoding.js +20 -0
  145. package/dist/backend/llvm/jsval-encoding.js.map +1 -0
  146. package/dist/backend/llvm/jsval.d.ts +12 -0
  147. package/dist/backend/llvm/jsval.js +616 -0
  148. package/dist/backend/llvm/jsval.js.map +1 -0
  149. package/dist/backend/llvm/lazy-captures.d.ts +12 -2
  150. package/dist/backend/llvm/lazy-captures.js +39 -17
  151. package/dist/backend/llvm/lazy-captures.js.map +1 -1
  152. package/dist/backend/llvm/lib-abi.js +1 -1
  153. package/dist/backend/llvm/lib-abi.js.map +1 -1
  154. package/dist/backend/llvm/lib-connect.js +1 -1
  155. package/dist/backend/llvm/lib-connect.js.map +1 -1
  156. package/dist/backend/llvm/lib-datagram.js +14 -8
  157. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  158. package/dist/backend/llvm/lib-dispatch.js +189 -23
  159. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  160. package/dist/backend/llvm/lib-filesystem.js +42 -13
  161. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  162. package/dist/backend/llvm/lib-http2.js +3 -3
  163. package/dist/backend/llvm/lib-http2.js.map +1 -1
  164. package/dist/backend/llvm/lib-lookup.js +2 -2
  165. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  166. package/dist/backend/llvm/lib-network.js +56 -22
  167. package/dist/backend/llvm/lib-network.js.map +1 -1
  168. package/dist/backend/llvm/lib-process.js +94 -53
  169. package/dist/backend/llvm/lib-process.js.map +1 -1
  170. package/dist/backend/llvm/lib-shared.d.ts +12 -0
  171. package/dist/backend/llvm/lib-shared.js +209 -6
  172. package/dist/backend/llvm/lib-shared.js.map +1 -1
  173. package/dist/backend/llvm/lib-stream.js +46 -16
  174. package/dist/backend/llvm/lib-stream.js.map +1 -1
  175. package/dist/backend/llvm/lib-test.js +43 -7
  176. package/dist/backend/llvm/lib-test.js.map +1 -1
  177. package/dist/backend/llvm/lib-tls.js +4 -9
  178. package/dist/backend/llvm/lib-tls.js.map +1 -1
  179. package/dist/backend/llvm/local-array-reads.js +42 -33
  180. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  181. package/dist/backend/llvm/local-array-reads.test.js +1 -1
  182. package/dist/backend/llvm/local-extents.d.ts +19 -0
  183. package/dist/backend/llvm/local-extents.js +169 -0
  184. package/dist/backend/llvm/local-extents.js.map +1 -0
  185. package/dist/backend/llvm/local-extents.test.d.ts +1 -0
  186. package/dist/backend/llvm/local-extents.test.js +92 -0
  187. package/dist/backend/llvm/local-extents.test.js.map +1 -0
  188. package/dist/backend/llvm/local-union-storage.js +7 -7
  189. package/dist/backend/llvm/local-union-storage.js.map +1 -1
  190. package/dist/backend/llvm/local-union-storage.test.js +2 -2
  191. package/dist/backend/llvm/map-entry-fusion.test.js +1 -1
  192. package/dist/backend/llvm/map-number-lookup.d.ts +20 -4
  193. package/dist/backend/llvm/map-number-lookup.js +45 -9
  194. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  195. package/dist/backend/llvm/map-number-lookup.test.js +2 -2
  196. package/dist/backend/llvm/map-read-lifetimes.test.js +2 -2
  197. package/dist/backend/llvm/narrow-guards.d.ts +38 -0
  198. package/dist/backend/llvm/narrow-guards.js +215 -0
  199. package/dist/backend/llvm/narrow-guards.js.map +1 -0
  200. package/dist/backend/llvm/nullable-unions.d.ts +64 -6
  201. package/dist/backend/llvm/nullable-unions.js +103 -6
  202. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  203. package/dist/backend/llvm/nullable-unions.test.d.ts +1 -0
  204. package/dist/backend/llvm/nullable-unions.test.js +65 -0
  205. package/dist/backend/llvm/nullable-unions.test.js.map +1 -0
  206. package/dist/backend/llvm/publish.d.ts +7 -0
  207. package/dist/backend/llvm/publish.js +50 -19
  208. package/dist/backend/llvm/publish.js.map +1 -1
  209. package/dist/backend/llvm/publish.test.js +1 -1
  210. package/dist/backend/llvm/receivers.d.ts +31 -0
  211. package/dist/backend/llvm/receivers.js +395 -0
  212. package/dist/backend/llvm/receivers.js.map +1 -0
  213. package/dist/backend/llvm/record-results.d.ts +12 -1
  214. package/dist/backend/llvm/record-results.js +64 -4
  215. package/dist/backend/llvm/record-results.js.map +1 -1
  216. package/dist/backend/llvm/reference-effects.js +9 -0
  217. package/dist/backend/llvm/reference-effects.js.map +1 -1
  218. package/dist/backend/llvm/reference-writes.d.ts +4 -0
  219. package/dist/backend/llvm/reference-writes.js +142 -6
  220. package/dist/backend/llvm/reference-writes.js.map +1 -1
  221. package/dist/backend/llvm/reference-writes.test.d.ts +1 -0
  222. package/dist/backend/llvm/reference-writes.test.js +88 -0
  223. package/dist/backend/llvm/reference-writes.test.js.map +1 -0
  224. package/dist/backend/llvm/regex-matchers.d.ts +8 -0
  225. package/dist/backend/llvm/regex-matchers.js +33 -0
  226. package/dist/backend/llvm/regex-matchers.js.map +1 -1
  227. package/dist/backend/llvm/regex-matchers.test.js +23 -1
  228. package/dist/backend/llvm/regex-matchers.test.js.map +1 -1
  229. package/dist/backend/llvm/regions.d.ts +1 -1
  230. package/dist/backend/llvm/regions.js +10 -7
  231. package/dist/backend/llvm/regions.js.map +1 -1
  232. package/dist/backend/llvm/regions.test.js +8 -2
  233. package/dist/backend/llvm/regions.test.js.map +1 -1
  234. package/dist/backend/llvm/shapes.d.ts +74 -45
  235. package/dist/backend/llvm/shapes.js +289 -28
  236. package/dist/backend/llvm/shapes.js.map +1 -1
  237. package/dist/backend/llvm/shapes.test.js +37 -3
  238. package/dist/backend/llvm/shapes.test.js.map +1 -1
  239. package/dist/backend/llvm/speculative-integers.d.ts +20 -1
  240. package/dist/backend/llvm/speculative-integers.js +94 -6
  241. package/dist/backend/llvm/speculative-integers.js.map +1 -1
  242. package/dist/backend/llvm/speculative-integers.test.js +55 -1
  243. package/dist/backend/llvm/speculative-integers.test.js.map +1 -1
  244. package/dist/backend/llvm/split-loops.js +2 -2
  245. package/dist/backend/llvm/split-loops.js.map +1 -1
  246. package/dist/backend/llvm/stack-objects.d.ts +26 -6
  247. package/dist/backend/llvm/stack-objects.js +133 -10
  248. package/dist/backend/llvm/stack-objects.js.map +1 -1
  249. package/dist/backend/llvm/stack-objects.test.js +55 -1
  250. package/dist/backend/llvm/stack-objects.test.js.map +1 -1
  251. package/dist/backend/llvm/stack-unions.test.js +1 -1
  252. package/dist/backend/llvm/string-construction.test.js +1 -1
  253. package/dist/backend/llvm/string-lifetimes.test.js +15 -14
  254. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  255. package/dist/backend/llvm/string-reads.d.ts +1 -1
  256. package/dist/backend/llvm/string-reads.js +4 -4
  257. package/dist/backend/llvm/string-reads.js.map +1 -1
  258. package/dist/backend/llvm/string-slices.d.ts +25 -0
  259. package/dist/backend/llvm/string-slices.js +207 -1
  260. package/dist/backend/llvm/string-slices.js.map +1 -1
  261. package/dist/backend/llvm/string-slices.test.js +139 -2
  262. package/dist/backend/llvm/string-slices.test.js.map +1 -1
  263. package/dist/backend/llvm/switch-dispatch.test.js +2 -2
  264. package/dist/backend/llvm/thread-slots.d.ts +5 -0
  265. package/dist/backend/llvm/thread-slots.js +142 -0
  266. package/dist/backend/llvm/thread-slots.js.map +1 -0
  267. package/dist/backend/llvm/thread-slots.test.d.ts +1 -0
  268. package/dist/backend/llvm/thread-slots.test.js +111 -0
  269. package/dist/backend/llvm/thread-slots.test.js.map +1 -0
  270. package/dist/backend/llvm/union-repr.d.ts +7 -7
  271. package/dist/backend/llvm/union-repr.js +18 -2
  272. package/dist/backend/llvm/union-repr.js.map +1 -1
  273. package/dist/backend/llvm/union-retype.test.js +17 -3
  274. package/dist/backend/llvm/union-retype.test.js.map +1 -1
  275. package/dist/backend/llvm/walkers.d.ts +2 -2
  276. package/dist/backend/llvm/walkers.js +51 -26
  277. package/dist/backend/llvm/walkers.js.map +1 -1
  278. package/dist/backend/llvm/wasm-modules.d.ts +16 -0
  279. package/dist/backend/llvm/wasm-modules.js +66 -0
  280. package/dist/backend/llvm/wasm-modules.js.map +1 -0
  281. package/dist/backend/llvm/wrapping-sums.d.ts +7 -0
  282. package/dist/backend/llvm/wrapping-sums.js +11 -3
  283. package/dist/backend/llvm/wrapping-sums.js.map +1 -1
  284. package/dist/backend/mangle.d.ts +12 -0
  285. package/dist/backend/mangle.js +18 -0
  286. package/dist/backend/mangle.js.map +1 -1
  287. package/dist/backend/may-throw.d.ts +3 -0
  288. package/dist/backend/may-throw.js +4 -2
  289. package/dist/backend/may-throw.js.map +1 -1
  290. package/dist/backend/may-throw.test.js +1 -1
  291. package/dist/backend/native/contracts.d.ts +57 -0
  292. package/dist/backend/native/executable.js +211 -139
  293. package/dist/backend/native/executable.js.map +1 -1
  294. package/dist/backend/native/library.js +2 -0
  295. package/dist/backend/native/library.js.map +1 -1
  296. package/dist/backend/native/runtime-inputs.d.ts +1 -1
  297. package/dist/backend/native/runtime-inputs.js +1 -0
  298. package/dist/backend/native/runtime-inputs.js.map +1 -1
  299. package/dist/backend/native-codegen.d.ts +6 -0
  300. package/dist/backend/native-codegen.js +19 -0
  301. package/dist/backend/native-codegen.js.map +1 -1
  302. package/dist/backend/native-codegen.test.js +27 -0
  303. package/dist/backend/native-codegen.test.js.map +1 -1
  304. package/dist/backend/native-link-info-core.d.ts +48 -0
  305. package/dist/backend/native-link-info-core.js.map +1 -1
  306. package/dist/backend/native-profile.d.ts +32 -0
  307. package/dist/backend/native-profile.js +39 -0
  308. package/dist/backend/native-profile.js.map +1 -0
  309. package/dist/backend/native-profile.test.d.ts +1 -0
  310. package/dist/backend/native-profile.test.js +58 -0
  311. package/dist/backend/native-profile.test.js.map +1 -0
  312. package/dist/backend/native-tools.d.ts +14 -0
  313. package/dist/backend/native-tools.js +13 -0
  314. package/dist/backend/native-tools.js.map +1 -1
  315. package/dist/backend/publication.test.js +1 -1
  316. package/dist/backend/runtime-abi.d.ts +2 -2
  317. package/dist/backend/runtime-abi.js +2 -2
  318. package/dist/backend/runtime-pack-core.d.ts +13 -1
  319. package/dist/backend/runtime-pack-core.js +14 -1
  320. package/dist/backend/runtime-pack-core.js.map +1 -1
  321. package/dist/backend/runtime-pack-native.js +1 -1
  322. package/dist/backend/runtime-pack-native.js.map +1 -1
  323. package/dist/backend/runtime-pack-native.test.d.ts +1 -0
  324. package/dist/backend/runtime-pack-native.test.js +31 -0
  325. package/dist/backend/runtime-pack-native.test.js.map +1 -0
  326. package/dist/backend/runtime-pack-targets.test.js +9 -1
  327. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  328. package/dist/backend/runtime-pack.test.js +9 -1
  329. package/dist/backend/runtime-pack.test.js.map +1 -1
  330. package/dist/backend/stack-observations.d.ts +22 -0
  331. package/dist/backend/stack-observations.js +382 -0
  332. package/dist/backend/stack-observations.js.map +1 -0
  333. package/dist/backend/stack-observations.test.d.ts +1 -0
  334. package/dist/backend/stack-observations.test.js +233 -0
  335. package/dist/backend/stack-observations.test.js.map +1 -0
  336. package/dist/backend/target-diagnostics.js +15 -0
  337. package/dist/backend/target-diagnostics.js.map +1 -1
  338. package/dist/backend/target-diagnostics.test.js +1 -1
  339. package/dist/backend/warm-cache.js +8 -0
  340. package/dist/backend/warm-cache.js.map +1 -1
  341. package/dist/backend/young-nursery.d.ts +7 -0
  342. package/dist/backend/young-nursery.js +10 -0
  343. package/dist/backend/young-nursery.js.map +1 -0
  344. package/dist/cli/command.js +106 -4
  345. package/dist/cli/command.js.map +1 -1
  346. package/dist/cli/host.d.ts +3 -0
  347. package/dist/cli/output-options.d.ts +2 -0
  348. package/dist/cli/output-options.js +9 -0
  349. package/dist/cli/output-options.js.map +1 -1
  350. package/dist/cli/usage.d.ts +21 -1
  351. package/dist/cli/usage.js +43 -1
  352. package/dist/cli/usage.js.map +1 -1
  353. package/dist/compat/fetch-profile.js +10 -1
  354. package/dist/compat/fetch-profile.js.map +1 -1
  355. package/dist/compile-types.d.ts +22 -0
  356. package/dist/contracts/check.js +25 -8
  357. package/dist/contracts/check.js.map +1 -1
  358. package/dist/contracts/int32-elements.d.ts +115 -0
  359. package/dist/contracts/int32-elements.js +1179 -0
  360. package/dist/contracts/int32-elements.js.map +1 -0
  361. package/dist/coverage/report.d.ts +16 -0
  362. package/dist/coverage/report.js +182 -1
  363. package/dist/coverage/report.js.map +1 -1
  364. package/dist/coverage/surface-manifest.js +16 -3
  365. package/dist/coverage/surface-manifest.js.map +1 -1
  366. package/dist/coverage/verdict-cache.d.ts +2 -0
  367. package/dist/coverage/verdict-cache.js +12 -0
  368. package/dist/coverage/verdict-cache.js.map +1 -1
  369. package/dist/coverage/verdict-cache.test.js +2 -1
  370. package/dist/coverage/verdict-cache.test.js.map +1 -1
  371. package/dist/diagnostics/diagnostic.d.ts +10 -6
  372. package/dist/diagnostics/diagnostic.js +29 -21
  373. package/dist/diagnostics/diagnostic.js.map +1 -1
  374. package/dist/diagnostics/envelope.d.ts +39 -2
  375. package/dist/diagnostics/envelope.js.map +1 -1
  376. package/dist/diagnostics/render.d.ts +7 -0
  377. package/dist/diagnostics/render.js +50 -13
  378. package/dist/diagnostics/render.js.map +1 -1
  379. package/dist/diagnostics/render.test.d.ts +1 -0
  380. package/dist/diagnostics/render.test.js +49 -0
  381. package/dist/diagnostics/render.test.js.map +1 -0
  382. package/dist/executable/executable-cache.d.ts +27 -0
  383. package/dist/executable/executable-cache.js +19 -1
  384. package/dist/executable/executable-cache.js.map +1 -1
  385. package/dist/executable/executable-cache.test.js +12 -1
  386. package/dist/executable/executable-cache.test.js.map +1 -1
  387. package/dist/executable/prepare.js +2 -1
  388. package/dist/executable/prepare.js.map +1 -1
  389. package/dist/frontend/analysis.js +6 -1
  390. package/dist/frontend/analysis.js.map +1 -1
  391. package/dist/frontend/arguments-usage.d.ts +8 -0
  392. package/dist/frontend/arguments-usage.js +98 -0
  393. package/dist/frontend/arguments-usage.js.map +1 -1
  394. package/dist/frontend/arguments-usage.test.d.ts +1 -0
  395. package/dist/frontend/arguments-usage.test.js +32 -0
  396. package/dist/frontend/arguments-usage.test.js.map +1 -0
  397. package/dist/frontend/builtin-modules.d.ts +16 -2
  398. package/dist/frontend/builtin-modules.js +40 -7
  399. package/dist/frontend/builtin-modules.js.map +1 -1
  400. package/dist/frontend/builtin-package-aliases.d.ts +24 -0
  401. package/dist/frontend/builtin-package-aliases.js +133 -0
  402. package/dist/frontend/builtin-package-aliases.js.map +1 -0
  403. package/dist/frontend/builtin-package-aliases.test.d.ts +1 -0
  404. package/dist/frontend/builtin-package-aliases.test.js +48 -0
  405. package/dist/frontend/builtin-package-aliases.test.js.map +1 -0
  406. package/dist/frontend/cjs-syntax.js +52 -51
  407. package/dist/frontend/cjs-syntax.js.map +1 -1
  408. package/dist/frontend/contract-types.d.ts +3 -0
  409. package/dist/frontend/contract-types.js +36 -7
  410. package/dist/frontend/contract-types.js.map +1 -1
  411. package/dist/frontend/dts-paths.d.ts +4 -0
  412. package/dist/frontend/dts-paths.js +9 -1
  413. package/dist/frontend/dts-paths.js.map +1 -1
  414. package/dist/frontend/experimental-import.d.ts +5 -1
  415. package/dist/frontend/experimental-import.js +26 -7
  416. package/dist/frontend/experimental-import.js.map +1 -1
  417. package/dist/frontend/fork-target.js +20 -22
  418. package/dist/frontend/fork-target.js.map +1 -1
  419. package/dist/frontend/fork-target.test.js +2 -1
  420. package/dist/frontend/fork-target.test.js.map +1 -1
  421. package/dist/frontend/function-completion.js +6 -6
  422. package/dist/frontend/function-completion.js.map +1 -1
  423. package/dist/frontend/helper-tokens.js +15 -3
  424. package/dist/frontend/helper-tokens.js.map +1 -1
  425. package/dist/frontend/helper-tokens.test.js +7 -1
  426. package/dist/frontend/helper-tokens.test.js.map +1 -1
  427. package/dist/frontend/inferred-js-diagnostics.js +14 -17
  428. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  429. package/dist/frontend/input-tracker.d.ts +3 -0
  430. package/dist/frontend/input-tracker.js +32 -3
  431. package/dist/frontend/input-tracker.js.map +1 -1
  432. package/dist/frontend/lib-contract.js +36 -32
  433. package/dist/frontend/lib-contract.js.map +1 -1
  434. package/dist/frontend/lib-exports.js +3 -3
  435. package/dist/frontend/lib-exports.js.map +1 -1
  436. package/dist/frontend/lowering/array-values.d.ts +8 -3
  437. package/dist/frontend/lowering/array-values.js +60 -11
  438. package/dist/frontend/lowering/array-values.js.map +1 -1
  439. package/dist/frontend/lowering/assert-instances.js +4 -4
  440. package/dist/frontend/lowering/assert-instances.js.map +1 -1
  441. package/dist/frontend/lowering/assertion-identity.d.ts +12 -0
  442. package/dist/frontend/lowering/assertion-identity.js +70 -0
  443. package/dist/frontend/lowering/assertion-identity.js.map +1 -0
  444. package/dist/frontend/lowering/assertion-members.d.ts +28 -0
  445. package/dist/frontend/lowering/assertion-members.js +185 -0
  446. package/dist/frontend/lowering/assertion-members.js.map +1 -0
  447. package/dist/frontend/lowering/binding-analysis.js +27 -20
  448. package/dist/frontend/lowering/binding-analysis.js.map +1 -1
  449. package/dist/frontend/lowering/builtin-calls.js +63 -5
  450. package/dist/frontend/lowering/builtin-calls.js.map +1 -1
  451. package/dist/frontend/lowering/builtin-function-fences.d.ts +14 -0
  452. package/dist/frontend/lowering/builtin-function-fences.js +42 -0
  453. package/dist/frontend/lowering/builtin-function-fences.js.map +1 -0
  454. package/dist/frontend/lowering/builtins/arguments.js +1 -1
  455. package/dist/frontend/lowering/builtins/arguments.js.map +1 -1
  456. package/dist/frontend/lowering/builtins/async-context.js +53 -52
  457. package/dist/frontend/lowering/builtins/async-context.js.map +1 -1
  458. package/dist/frontend/lowering/builtins/atomics.js +6 -6
  459. package/dist/frontend/lowering/builtins/atomics.js.map +1 -1
  460. package/dist/frontend/lowering/builtins/blob.js +8 -6
  461. package/dist/frontend/lowering/builtins/blob.js.map +1 -1
  462. package/dist/frontend/lowering/builtins/builtin-class-dyn.d.ts +31 -0
  463. package/dist/frontend/lowering/builtins/builtin-class-dyn.js +205 -0
  464. package/dist/frontend/lowering/builtins/builtin-class-dyn.js.map +1 -0
  465. package/dist/frontend/lowering/builtins/callable-aliases.js +17 -5
  466. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  467. package/dist/frontend/lowering/builtins/child-process-async.js +7 -7
  468. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -1
  469. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +6 -4
  470. package/dist/frontend/lowering/builtins/child-process-methods.js +310 -57
  471. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -1
  472. package/dist/frontend/lowering/builtins/child-process-sync.js +16 -10
  473. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -1
  474. package/dist/frontend/lowering/builtins/child-process.d.ts +6 -4
  475. package/dist/frontend/lowering/builtins/child-process.js +85 -61
  476. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  477. package/dist/frontend/lowering/builtins/class-values.d.ts +60 -0
  478. package/dist/frontend/lowering/builtins/class-values.js +226 -0
  479. package/dist/frontend/lowering/builtins/class-values.js.map +1 -0
  480. package/dist/frontend/lowering/builtins/compression.d.ts +9 -0
  481. package/dist/frontend/lowering/builtins/compression.js +107 -44
  482. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  483. package/dist/frontend/lowering/builtins/constants.d.ts +9 -1
  484. package/dist/frontend/lowering/builtins/constants.js +28 -7
  485. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  486. package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
  487. package/dist/frontend/lowering/builtins/crypto.js +215 -38
  488. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  489. package/dist/frontend/lowering/builtins/dates.d.ts +7 -1
  490. package/dist/frontend/lowering/builtins/dates.js +92 -16
  491. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  492. package/dist/frontend/lowering/builtins/disposable-stack.d.ts +18 -0
  493. package/dist/frontend/lowering/builtins/disposable-stack.js +137 -0
  494. package/dist/frontend/lowering/builtins/disposable-stack.js.map +1 -0
  495. package/dist/frontend/lowering/builtins/ecdh.d.ts +10 -0
  496. package/dist/frontend/lowering/builtins/ecdh.js +208 -0
  497. package/dist/frontend/lowering/builtins/ecdh.js.map +1 -0
  498. package/dist/frontend/lowering/builtins/environment.js +3 -3
  499. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  500. package/dist/frontend/lowering/builtins/errors.d.ts +14 -10
  501. package/dist/frontend/lowering/builtins/errors.js +169 -3
  502. package/dist/frontend/lowering/builtins/errors.js.map +1 -1
  503. package/dist/frontend/lowering/builtins/filesystem-calls.js +128 -116
  504. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -1
  505. package/dist/frontend/lowering/builtins/filesystem.js +77 -77
  506. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -1
  507. package/dist/frontend/lowering/builtins/fs-glob.js +3 -3
  508. package/dist/frontend/lowering/builtins/fs-glob.js.map +1 -1
  509. package/dist/frontend/lowering/builtins/fs-streams.js +10 -11
  510. package/dist/frontend/lowering/builtins/fs-streams.js.map +1 -1
  511. package/dist/frontend/lowering/builtins/ipc.js +45 -8
  512. package/dist/frontend/lowering/builtins/ipc.js.map +1 -1
  513. package/dist/frontend/lowering/builtins/json.js +284 -24
  514. package/dist/frontend/lowering/builtins/json.js.map +1 -1
  515. package/dist/frontend/lowering/builtins/key-object.js +4 -4
  516. package/dist/frontend/lowering/builtins/key-object.js.map +1 -1
  517. package/dist/frontend/lowering/builtins/module-bindings.d.ts +8 -0
  518. package/dist/frontend/lowering/builtins/module-bindings.js +71 -22
  519. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  520. package/dist/frontend/lowering/builtins/module-calls.js +55 -44
  521. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -1
  522. package/dist/frontend/lowering/builtins/module-resolution.d.ts +4 -3
  523. package/dist/frontend/lowering/builtins/module-resolution.js +24 -23
  524. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  525. package/dist/frontend/lowering/builtins/navigator.d.ts +13 -0
  526. package/dist/frontend/lowering/builtins/navigator.js +40 -0
  527. package/dist/frontend/lowering/builtins/navigator.js.map +1 -0
  528. package/dist/frontend/lowering/builtins/net-address.d.ts +19 -0
  529. package/dist/frontend/lowering/builtins/net-address.js +156 -0
  530. package/dist/frontend/lowering/builtins/net-address.js.map +1 -0
  531. package/dist/frontend/lowering/builtins/numbers.js +25 -9
  532. package/dist/frontend/lowering/builtins/numbers.js.map +1 -1
  533. package/dist/frontend/lowering/builtins/operating-system.d.ts +4 -0
  534. package/dist/frontend/lowering/builtins/operating-system.js +25 -12
  535. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -1
  536. package/dist/frontend/lowering/builtins/performance.d.ts +12 -0
  537. package/dist/frontend/lowering/builtins/performance.js +259 -8
  538. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  539. package/dist/frontend/lowering/builtins/process.d.ts +41 -1
  540. package/dist/frontend/lowering/builtins/process.js +505 -99
  541. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  542. package/dist/frontend/lowering/builtins/promises.d.ts +5 -1
  543. package/dist/frontend/lowering/builtins/promises.js +326 -43
  544. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  545. package/dist/frontend/lowering/builtins/promisify-callback.d.ts +40 -0
  546. package/dist/frontend/lowering/builtins/promisify-callback.js +338 -0
  547. package/dist/frontend/lowering/builtins/promisify-callback.js.map +1 -0
  548. package/dist/frontend/lowering/builtins/properties.js +37 -1
  549. package/dist/frontend/lowering/builtins/properties.js.map +1 -1
  550. package/dist/frontend/lowering/builtins/querystring.js +14 -14
  551. package/dist/frontend/lowering/builtins/querystring.js.map +1 -1
  552. package/dist/frontend/lowering/builtins/readline.d.ts +12 -2
  553. package/dist/frontend/lowering/builtins/readline.js +136 -39
  554. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  555. package/dist/frontend/lowering/builtins/receiver-types.js +3 -5
  556. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -1
  557. package/dist/frontend/lowering/builtins/reflection.js +42 -14
  558. package/dist/frontend/lowering/builtins/reflection.js.map +1 -1
  559. package/dist/frontend/lowering/builtins/runtime-constructor.d.ts +26 -0
  560. package/dist/frontend/lowering/builtins/runtime-constructor.js +165 -0
  561. package/dist/frontend/lowering/builtins/runtime-constructor.js.map +1 -0
  562. package/dist/frontend/lowering/builtins/strings.js +101 -12
  563. package/dist/frontend/lowering/builtins/strings.js.map +1 -1
  564. package/dist/frontend/lowering/builtins/text-codecs.js +41 -38
  565. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -1
  566. package/dist/frontend/lowering/builtins/timers.js +79 -30
  567. package/dist/frontend/lowering/builtins/timers.js.map +1 -1
  568. package/dist/frontend/lowering/builtins/typed-array-members.d.ts +7 -0
  569. package/dist/frontend/lowering/builtins/typed-array-members.js +160 -0
  570. package/dist/frontend/lowering/builtins/typed-array-members.js.map +1 -0
  571. package/dist/frontend/lowering/builtins/url.d.ts +3 -0
  572. package/dist/frontend/lowering/builtins/url.js +120 -17
  573. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  574. package/dist/frontend/lowering/builtins/util-types.js +20 -4
  575. package/dist/frontend/lowering/builtins/util-types.js.map +1 -1
  576. package/dist/frontend/lowering/builtins/v8.d.ts +11 -0
  577. package/dist/frontend/lowering/builtins/v8.js +105 -0
  578. package/dist/frontend/lowering/builtins/v8.js.map +1 -0
  579. package/dist/frontend/lowering/builtins/webassembly.d.ts +33 -0
  580. package/dist/frontend/lowering/builtins/webassembly.js +388 -0
  581. package/dist/frontend/lowering/builtins/webassembly.js.map +1 -0
  582. package/dist/frontend/lowering/builtins/webcrypto.d.ts +20 -0
  583. package/dist/frontend/lowering/builtins/webcrypto.js +112 -0
  584. package/dist/frontend/lowering/builtins/webcrypto.js.map +1 -0
  585. package/dist/frontend/lowering/builtins/workers.d.ts +12 -0
  586. package/dist/frontend/lowering/builtins/workers.js +193 -8
  587. package/dist/frontend/lowering/builtins/workers.js.map +1 -1
  588. package/dist/frontend/lowering/call-arguments.js +69 -14
  589. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  590. package/dist/frontend/lowering/call-signatures.d.ts +23 -1
  591. package/dist/frontend/lowering/call-signatures.js +379 -55
  592. package/dist/frontend/lowering/call-signatures.js.map +1 -1
  593. package/dist/frontend/lowering/checked-promise-all.d.ts +3 -0
  594. package/dist/frontend/lowering/checked-promise-all.js +1 -1
  595. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  596. package/dist/frontend/lowering/cjs-exports-object.d.ts +53 -0
  597. package/dist/frontend/lowering/cjs-exports-object.js +561 -0
  598. package/dist/frontend/lowering/cjs-exports-object.js.map +1 -0
  599. package/dist/frontend/lowering/cjs-inline-require.d.ts +86 -0
  600. package/dist/frontend/lowering/cjs-inline-require.js +314 -0
  601. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -0
  602. package/dist/frontend/lowering/cjs-tsc-interop.d.ts +28 -0
  603. package/dist/frontend/lowering/cjs-tsc-interop.js +208 -0
  604. package/dist/frontend/lowering/cjs-tsc-interop.js.map +1 -0
  605. package/dist/frontend/lowering/class-attributes.d.ts +19 -0
  606. package/dist/frontend/lowering/class-attributes.js +378 -0
  607. package/dist/frontend/lowering/class-attributes.js.map +1 -0
  608. package/dist/frontend/lowering/class-callbacks.d.ts +3 -1
  609. package/dist/frontend/lowering/class-callbacks.js +21 -10
  610. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  611. package/dist/frontend/lowering/class-construction.js +49 -4
  612. package/dist/frontend/lowering/class-construction.js.map +1 -1
  613. package/dist/frontend/lowering/class-descriptors.d.ts +2 -0
  614. package/dist/frontend/lowering/class-descriptors.js +8 -8
  615. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  616. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +64 -0
  617. package/dist/frontend/lowering/class-dynamic-dispatch.js +1124 -90
  618. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  619. package/dist/frontend/lowering/class-instance-constructor.js +1 -1
  620. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  621. package/dist/frontend/lowering/class-iterables.d.ts +11 -0
  622. package/dist/frontend/lowering/class-iterables.js +31 -0
  623. package/dist/frontend/lowering/class-iterables.js.map +1 -0
  624. package/dist/frontend/lowering/class-method-mutations.js +73 -35
  625. package/dist/frontend/lowering/class-method-mutations.js.map +1 -1
  626. package/dist/frontend/lowering/class-method-values.js +56 -10
  627. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  628. package/dist/frontend/lowering/class-protocol-dispatch.js +24 -22
  629. package/dist/frontend/lowering/class-protocol-dispatch.js.map +1 -1
  630. package/dist/frontend/lowering/class-protocols.d.ts +10 -0
  631. package/dist/frontend/lowering/class-protocols.js +76 -45
  632. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  633. package/dist/frontend/lowering/class-prototypes.d.ts +6 -0
  634. package/dist/frontend/lowering/class-prototypes.js +86 -19
  635. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  636. package/dist/frontend/lowering/class-runtime-statics.js +1 -1
  637. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  638. package/dist/frontend/lowering/class-static-data.js +2 -2
  639. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  640. package/dist/frontend/lowering/class-to-primitive.d.ts +25 -0
  641. package/dist/frontend/lowering/class-to-primitive.js +264 -0
  642. package/dist/frontend/lowering/class-to-primitive.js.map +1 -0
  643. package/dist/frontend/lowering/class-unions.d.ts +25 -0
  644. package/dist/frontend/lowering/class-unions.js +102 -1
  645. package/dist/frontend/lowering/class-unions.js.map +1 -1
  646. package/dist/frontend/lowering/code-generation.d.ts +14 -0
  647. package/dist/frontend/lowering/code-generation.js +127 -0
  648. package/dist/frontend/lowering/code-generation.js.map +1 -0
  649. package/dist/frontend/lowering/coercions/fresh-spread.d.ts +13 -0
  650. package/dist/frontend/lowering/coercions/fresh-spread.js +95 -0
  651. package/dist/frontend/lowering/coercions/fresh-spread.js.map +1 -0
  652. package/dist/frontend/lowering/coercions/function-adapters.d.ts +16 -2
  653. package/dist/frontend/lowering/coercions/function-adapters.js +239 -68
  654. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  655. package/dist/frontend/lowering/coercions/structural-plans.js +25 -3
  656. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  657. package/dist/frontend/lowering/coercions/structural.js +35 -3
  658. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  659. package/dist/frontend/lowering/coercions/unions.d.ts +15 -0
  660. package/dist/frontend/lowering/coercions/unions.js +57 -1
  661. package/dist/frontend/lowering/coercions/unions.js.map +1 -1
  662. package/dist/frontend/lowering/collection-ingestion.js +2 -2
  663. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  664. package/dist/frontend/lowering/collection-narrowing.js +2 -4
  665. package/dist/frontend/lowering/collection-narrowing.js.map +1 -1
  666. package/dist/frontend/lowering/construction-escapes.js +8 -8
  667. package/dist/frontend/lowering/construction-escapes.js.map +1 -1
  668. package/dist/frontend/lowering/construction-escapes.test.js +4 -4
  669. package/dist/frontend/lowering/construction-escapes.test.js.map +1 -1
  670. package/dist/frontend/lowering/constructor-returns.d.ts +61 -0
  671. package/dist/frontend/lowering/constructor-returns.js +477 -0
  672. package/dist/frontend/lowering/constructor-returns.js.map +1 -0
  673. package/dist/frontend/lowering/containers/array-callback-call.js +1 -1
  674. package/dist/frontend/lowering/containers/array-callback-call.js.map +1 -1
  675. package/dist/frontend/lowering/containers/array-callbacks.d.ts +17 -0
  676. package/dist/frontend/lowering/containers/array-callbacks.js +287 -118
  677. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  678. package/dist/frontend/lowering/containers/array-concat.js +1 -1
  679. package/dist/frontend/lowering/containers/array-concat.js.map +1 -1
  680. package/dist/frontend/lowering/containers/array-construction.d.ts +0 -1
  681. package/dist/frontend/lowering/containers/array-construction.js +58 -13
  682. package/dist/frontend/lowering/containers/array-construction.js.map +1 -1
  683. package/dist/frontend/lowering/containers/array-from-async.d.ts +6 -5
  684. package/dist/frontend/lowering/containers/array-from-async.js +159 -14
  685. package/dist/frontend/lowering/containers/array-from-async.js.map +1 -1
  686. package/dist/frontend/lowering/containers/array-methods.js +94 -77
  687. package/dist/frontend/lowering/containers/array-methods.js.map +1 -1
  688. package/dist/frontend/lowering/containers/array-pipelines.js +1 -0
  689. package/dist/frontend/lowering/containers/array-pipelines.js.map +1 -1
  690. package/dist/frontend/lowering/containers/bytes.d.ts +9 -0
  691. package/dist/frontend/lowering/containers/bytes.js +649 -113
  692. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  693. package/dist/frontend/lowering/containers/callback-arguments.d.ts +9 -1
  694. package/dist/frontend/lowering/containers/callback-arguments.js +55 -5
  695. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -1
  696. package/dist/frontend/lowering/containers/collection-grouping.d.ts +7 -8
  697. package/dist/frontend/lowering/containers/collection-grouping.js +217 -26
  698. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -1
  699. package/dist/frontend/lowering/containers/collection-methods.js +126 -28
  700. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  701. package/dist/frontend/lowering/containers/dynamic-receivers.js +1 -1
  702. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -1
  703. package/dist/frontend/lowering/containers/exec-result-uses.js +2 -2
  704. package/dist/frontend/lowering/containers/exec-result-uses.js.map +1 -1
  705. package/dist/frontend/lowering/containers/for-of.d.ts +6 -0
  706. package/dist/frontend/lowering/containers/for-of.js +19 -19
  707. package/dist/frontend/lowering/containers/for-of.js.map +1 -1
  708. package/dist/frontend/lowering/containers/indexed-objects.js +142 -57
  709. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  710. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +53 -4
  711. package/dist/frontend/lowering/containers/iterator-helpers.js +1581 -462
  712. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -1
  713. package/dist/frontend/lowering/containers/match-row-uses.d.ts +17 -0
  714. package/dist/frontend/lowering/containers/match-row-uses.js +264 -0
  715. package/dist/frontend/lowering/containers/match-row-uses.js.map +1 -0
  716. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +14 -0
  717. package/dist/frontend/lowering/containers/string-and-regexp.js +455 -30
  718. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  719. package/dist/frontend/lowering/containers/string-replacement.js +1 -1
  720. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  721. package/dist/frontend/lowering/cycle-initialization.d.ts +30 -10
  722. package/dist/frontend/lowering/cycle-initialization.js +191 -35
  723. package/dist/frontend/lowering/cycle-initialization.js.map +1 -1
  724. package/dist/frontend/lowering/deferred-module-initializers.js +47 -43
  725. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  726. package/dist/frontend/lowering/devirtualize.d.ts +1 -1
  727. package/dist/frontend/lowering/devirtualize.js +27 -7
  728. package/dist/frontend/lowering/devirtualize.js.map +1 -1
  729. package/dist/frontend/lowering/divergences.d.ts +0 -5
  730. package/dist/frontend/lowering/divergences.js +62 -125
  731. package/dist/frontend/lowering/divergences.js.map +1 -1
  732. package/dist/frontend/lowering/dyn-streams.d.ts +25 -0
  733. package/dist/frontend/lowering/dyn-streams.js +257 -0
  734. package/dist/frontend/lowering/dyn-streams.js.map +1 -0
  735. package/dist/frontend/lowering/error-methods.js +4 -1
  736. package/dist/frontend/lowering/error-methods.js.map +1 -1
  737. package/dist/frontend/lowering/error-name-order.d.ts +19 -0
  738. package/dist/frontend/lowering/error-name-order.js +93 -0
  739. package/dist/frontend/lowering/error-name-order.js.map +1 -0
  740. package/dist/frontend/lowering/expressions/array-literals.d.ts +21 -0
  741. package/dist/frontend/lowering/expressions/array-literals.js +723 -0
  742. package/dist/frontend/lowering/expressions/array-literals.js.map +1 -0
  743. package/dist/frontend/lowering/expressions/binary.d.ts +35 -0
  744. package/dist/frontend/lowering/expressions/binary.js +2557 -0
  745. package/dist/frontend/lowering/expressions/binary.js.map +1 -0
  746. package/dist/frontend/lowering/expressions/element-access.d.ts +31 -0
  747. package/dist/frontend/lowering/expressions/element-access.js +1804 -0
  748. package/dist/frontend/lowering/expressions/element-access.js.map +1 -0
  749. package/dist/frontend/lowering/expressions/evaluation-safety.js +4 -3
  750. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  751. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +38 -0
  752. package/dist/frontend/lowering/expressions/hosted-narrowing.js +160 -0
  753. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -0
  754. package/dist/frontend/lowering/expressions/identifiers.d.ts +4 -0
  755. package/dist/frontend/lowering/expressions/identifiers.js +830 -0
  756. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -0
  757. package/dist/frontend/lowering/expressions/keyed-field-targets.d.ts +52 -0
  758. package/dist/frontend/lowering/expressions/keyed-field-targets.js +307 -0
  759. package/dist/frontend/lowering/expressions/keyed-field-targets.js.map +1 -0
  760. package/dist/frontend/lowering/expressions/narrowing.d.ts +37 -0
  761. package/dist/frontend/lowering/expressions/narrowing.js +1337 -0
  762. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -0
  763. package/dist/frontend/lowering/expressions/native-proxy.js +4 -4
  764. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  765. package/dist/frontend/lowering/expressions/nullish-assignment.js +45 -0
  766. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  767. package/dist/frontend/lowering/expressions/object-literals.d.ts +10 -0
  768. package/dist/frontend/lowering/expressions/object-literals.js +301 -86
  769. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  770. package/dist/frontend/lowering/expressions/optional-chains.d.ts +3 -2
  771. package/dist/frontend/lowering/expressions/optional-chains.js +103 -17
  772. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  773. package/dist/frontend/lowering/expressions/property-access.d.ts +115 -0
  774. package/dist/frontend/lowering/expressions/property-access.js +3787 -0
  775. package/dist/frontend/lowering/expressions/property-access.js.map +1 -0
  776. package/dist/frontend/lowering/expressions/relational.d.ts +28 -0
  777. package/dist/frontend/lowering/expressions/relational.js +1724 -0
  778. package/dist/frontend/lowering/expressions/relational.js.map +1 -0
  779. package/dist/frontend/lowering/expressions/typeof.d.ts +22 -0
  780. package/dist/frontend/lowering/expressions/typeof.js +551 -0
  781. package/dist/frontend/lowering/expressions/typeof.js.map +1 -0
  782. package/dist/frontend/lowering/expressions/union-fields.js +1 -1
  783. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  784. package/dist/frontend/lowering/expressions/updates.d.ts +21 -0
  785. package/dist/frontend/lowering/expressions/updates.js +780 -0
  786. package/dist/frontend/lowering/expressions/updates.js.map +1 -0
  787. package/dist/frontend/lowering/function-context.d.ts +10 -0
  788. package/dist/frontend/lowering/function-context.js +11 -1
  789. package/dist/frontend/lowering/function-context.js.map +1 -1
  790. package/dist/frontend/lowering/function-returns.js +52 -28
  791. package/dist/frontend/lowering/function-returns.js.map +1 -1
  792. package/dist/frontend/lowering/general-streams.d.ts +25 -0
  793. package/dist/frontend/lowering/general-streams.js +108 -0
  794. package/dist/frontend/lowering/general-streams.js.map +1 -0
  795. package/dist/frontend/lowering/generator-delegation.d.ts +8 -0
  796. package/dist/frontend/lowering/generator-delegation.js +191 -1
  797. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  798. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +7 -0
  799. package/dist/frontend/lowering/generator-dynamic-dispatch.js +172 -69
  800. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  801. package/dist/frontend/lowering/generic-functions.d.ts +43 -0
  802. package/dist/frontend/lowering/generic-functions.js +593 -118
  803. package/dist/frontend/lowering/generic-functions.js.map +1 -1
  804. package/dist/frontend/lowering/handle-properties.d.ts +24 -0
  805. package/dist/frontend/lowering/handle-properties.js +281 -0
  806. package/dist/frontend/lowering/handle-properties.js.map +1 -0
  807. package/dist/frontend/lowering/import-meta.js +2 -2
  808. package/dist/frontend/lowering/import-meta.js.map +1 -1
  809. package/dist/frontend/lowering/intern-tables.js +10 -9
  810. package/dist/frontend/lowering/intern-tables.js.map +1 -1
  811. package/dist/frontend/lowering/iterable-spelling.d.ts +7 -0
  812. package/dist/frontend/lowering/iterable-spelling.js +38 -0
  813. package/dist/frontend/lowering/iterable-spelling.js.map +1 -0
  814. package/dist/frontend/lowering/iterator-adapters.d.ts +19 -0
  815. package/dist/frontend/lowering/iterator-adapters.js +331 -3
  816. package/dist/frontend/lowering/iterator-adapters.js.map +1 -1
  817. package/dist/frontend/lowering/js-class-fields.d.ts +28 -0
  818. package/dist/frontend/lowering/js-class-fields.js +170 -0
  819. package/dist/frontend/lowering/js-class-fields.js.map +1 -0
  820. package/dist/frontend/lowering/js-dynamic-objects.d.ts +15 -0
  821. package/dist/frontend/lowering/js-dynamic-objects.js +299 -0
  822. package/dist/frontend/lowering/js-dynamic-objects.js.map +1 -0
  823. package/dist/frontend/lowering/js-dynamic-objects.test.d.ts +1 -0
  824. package/dist/frontend/lowering/js-dynamic-objects.test.js +35 -0
  825. package/dist/frontend/lowering/js-dynamic-objects.test.js.map +1 -0
  826. package/dist/frontend/lowering/json-require.d.ts +22 -0
  827. package/dist/frontend/lowering/json-require.js +131 -0
  828. package/dist/frontend/lowering/json-require.js.map +1 -0
  829. package/dist/frontend/lowering/key-order-witness.d.ts +44 -0
  830. package/dist/frontend/lowering/key-order-witness.js +641 -0
  831. package/dist/frontend/lowering/key-order-witness.js.map +1 -0
  832. package/dist/frontend/lowering/key-order-witness.test.d.ts +1 -0
  833. package/dist/frontend/lowering/key-order-witness.test.js +239 -0
  834. package/dist/frontend/lowering/key-order-witness.test.js.map +1 -0
  835. package/dist/frontend/lowering/lifetime-regions.js +7 -7
  836. package/dist/frontend/lowering/lifetime-regions.js.map +1 -1
  837. package/dist/frontend/lowering/lower-array-sort.d.ts +33 -15
  838. package/dist/frontend/lowering/lower-array-sort.js +117 -21
  839. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  840. package/dist/frontend/lowering/lower-array-sort.test.js +93 -14
  841. package/dist/frontend/lowering/lower-array-sort.test.js.map +1 -1
  842. package/dist/frontend/lowering/lower-assert.js +61 -60
  843. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  844. package/dist/frontend/lowering/lower-async-iteration.d.ts +10 -1
  845. package/dist/frontend/lowering/lower-async-iteration.js +34 -6
  846. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  847. package/dist/frontend/lowering/lower-builtin-values.d.ts +5 -0
  848. package/dist/frontend/lowering/lower-builtin-values.js +33 -3
  849. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  850. package/dist/frontend/lowering/lower-calls.js +1404 -448
  851. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  852. package/dist/frontend/lowering/lower-classes.d.ts +54 -3
  853. package/dist/frontend/lowering/lower-classes.js +1529 -472
  854. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  855. package/dist/frontend/lowering/lower-comptime.d.ts +4 -2
  856. package/dist/frontend/lowering/lower-comptime.js +111 -13
  857. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  858. package/dist/frontend/lowering/lower-console.js +13 -11
  859. package/dist/frontend/lowering/lower-console.js.map +1 -1
  860. package/dist/frontend/lowering/lower-dgram.d.ts +10 -0
  861. package/dist/frontend/lowering/lower-dgram.js +241 -21
  862. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  863. package/dist/frontend/lowering/lower-enums.js +113 -14
  864. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  865. package/dist/frontend/lowering/lower-event-emitter.d.ts +16 -7
  866. package/dist/frontend/lowering/lower-event-emitter.js +258 -70
  867. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  868. package/dist/frontend/lowering/lower-event-target.js +2 -2
  869. package/dist/frontend/lowering/lower-event-target.js.map +1 -1
  870. package/dist/frontend/lowering/lower-expando.js +17 -13
  871. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  872. package/dist/frontend/lowering/lower-exprs.d.ts +188 -186
  873. package/dist/frontend/lowering/lower-exprs.js +1509 -12486
  874. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  875. package/dist/frontend/lowering/lower-functions.js +72 -22
  876. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  877. package/dist/frontend/lowering/lower-generators.d.ts +6 -0
  878. package/dist/frontend/lowering/lower-generators.js +39 -20
  879. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  880. package/dist/frontend/lowering/lower-global-value.js +5 -1
  881. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  882. package/dist/frontend/lowering/lower-inspect.js +900 -107
  883. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  884. package/dist/frontend/lowering/lower-mixins.js +23 -20
  885. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  886. package/dist/frontend/lowering/lower-mock.d.ts +8 -1
  887. package/dist/frontend/lowering/lower-mock.js +185 -18
  888. package/dist/frontend/lowering/lower-mock.js.map +1 -1
  889. package/dist/frontend/lowering/lower-modules.d.ts +11 -3
  890. package/dist/frontend/lowering/lower-modules.js +445 -94
  891. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  892. package/dist/frontend/lowering/lower-namespaces.d.ts +6 -0
  893. package/dist/frontend/lowering/lower-namespaces.js +65 -33
  894. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  895. package/dist/frontend/lowering/lower-node-module.d.ts +16 -0
  896. package/dist/frontend/lowering/lower-node-module.js +147 -14
  897. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  898. package/dist/frontend/lowering/lower-server.d.ts +6 -6
  899. package/dist/frontend/lowering/lower-server.js +514 -101
  900. package/dist/frontend/lowering/lower-server.js.map +1 -1
  901. package/dist/frontend/lowering/lower-stdlib.d.ts +4 -0
  902. package/dist/frontend/lowering/lower-stdlib.js +179 -118
  903. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  904. package/dist/frontend/lowering/lower-stmts.d.ts +30 -7
  905. package/dist/frontend/lowering/lower-stmts.js +1950 -433
  906. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  907. package/dist/frontend/lowering/lower-stream.d.ts +3 -0
  908. package/dist/frontend/lowering/lower-stream.js +398 -56
  909. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  910. package/dist/frontend/lowering/lower-test.d.ts +3 -0
  911. package/dist/frontend/lowering/lower-test.js +437 -62
  912. package/dist/frontend/lowering/lower-test.js.map +1 -1
  913. package/dist/frontend/lowering/lower-timers.js +96 -32
  914. package/dist/frontend/lowering/lower-timers.js.map +1 -1
  915. package/dist/frontend/lowering/lower-url.js +1 -1
  916. package/dist/frontend/lowering/lower-url.js.map +1 -1
  917. package/dist/frontend/lowering/lowerer.d.ts +424 -27
  918. package/dist/frontend/lowering/lowerer.js +2062 -310
  919. package/dist/frontend/lowering/lowerer.js.map +1 -1
  920. package/dist/frontend/lowering/lowerer.test.js +10 -4
  921. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  922. package/dist/frontend/lowering/maybe-promise.d.ts +46 -0
  923. package/dist/frontend/lowering/maybe-promise.js +249 -0
  924. package/dist/frontend/lowering/maybe-promise.js.map +1 -0
  925. package/dist/frontend/lowering/module-member-this.d.ts +3 -0
  926. package/dist/frontend/lowering/module-member-this.js +262 -0
  927. package/dist/frontend/lowering/module-member-this.js.map +1 -0
  928. package/dist/frontend/lowering/module-namespace-elements.js +1 -1
  929. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  930. package/dist/frontend/lowering/nan-coded-reads.d.ts +3 -0
  931. package/dist/frontend/lowering/nan-coded-reads.js +45 -32
  932. package/dist/frontend/lowering/nan-coded-reads.js.map +1 -1
  933. package/dist/frontend/lowering/narrowing-stability.d.ts +18 -3
  934. package/dist/frontend/lowering/narrowing-stability.js +104 -32
  935. package/dist/frontend/lowering/narrowing-stability.js.map +1 -1
  936. package/dist/frontend/lowering/native-ffi.js +11 -11
  937. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  938. package/dist/frontend/lowering/object-factory-new.js +6 -8
  939. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  940. package/dist/frontend/lowering/private-brands.d.ts +46 -0
  941. package/dist/frontend/lowering/private-brands.js +265 -0
  942. package/dist/frontend/lowering/private-brands.js.map +1 -0
  943. package/dist/frontend/lowering/promise-executor-adapter.d.ts +11 -0
  944. package/dist/frontend/lowering/promise-executor-adapter.js +87 -0
  945. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -0
  946. package/dist/frontend/lowering/rebindable-functions.d.ts +8 -0
  947. package/dist/frontend/lowering/rebindable-functions.js +54 -0
  948. package/dist/frontend/lowering/rebindable-functions.js.map +1 -0
  949. package/dist/frontend/lowering/require-initialization.d.ts +32 -0
  950. package/dist/frontend/lowering/require-initialization.js +246 -0
  951. package/dist/frontend/lowering/require-initialization.js.map +1 -0
  952. package/dist/frontend/lowering/runtime-optional-bounds.js +7 -7
  953. package/dist/frontend/lowering/runtime-optional-bounds.js.map +1 -1
  954. package/dist/frontend/lowering/runtime-optional-elements.js +12 -12
  955. package/dist/frontend/lowering/runtime-optional-elements.js.map +1 -1
  956. package/dist/frontend/lowering/runtime-optional-guards.js +10 -10
  957. package/dist/frontend/lowering/runtime-optional-guards.js.map +1 -1
  958. package/dist/frontend/lowering/runtime-optional-guards.test.js +1 -1
  959. package/dist/frontend/lowering/runtime-optional-guards.test.js.map +1 -1
  960. package/dist/frontend/lowering/runtime-optional-ownership.js +10 -9
  961. package/dist/frontend/lowering/runtime-optional-ownership.js.map +1 -1
  962. package/dist/frontend/lowering/runtime-optional-provenance.js +2 -2
  963. package/dist/frontend/lowering/runtime-optional-provenance.js.map +1 -1
  964. package/dist/frontend/lowering/runtime-optional-records.d.ts +35 -0
  965. package/dist/frontend/lowering/runtime-optional-records.js +205 -32
  966. package/dist/frontend/lowering/runtime-optional-records.js.map +1 -1
  967. package/dist/frontend/lowering/runtime-optional-records.test.js +19 -1
  968. package/dist/frontend/lowering/runtime-optional-records.test.js.map +1 -1
  969. package/dist/frontend/lowering/sanitize-class-types.test.js +2 -2
  970. package/dist/frontend/lowering/split-consumers.js +4 -4
  971. package/dist/frontend/lowering/split-consumers.js.map +1 -1
  972. package/dist/frontend/lowering/static-function-names.d.ts +28 -0
  973. package/dist/frontend/lowering/static-function-names.js +212 -0
  974. package/dist/frontend/lowering/static-function-names.js.map +1 -0
  975. package/dist/frontend/lowering/static-this.js +6 -6
  976. package/dist/frontend/lowering/static-this.js.map +1 -1
  977. package/dist/frontend/lowering/static-typeof.d.ts +26 -0
  978. package/dist/frontend/lowering/static-typeof.js +133 -0
  979. package/dist/frontend/lowering/static-typeof.js.map +1 -0
  980. package/dist/frontend/lowering/strict-mode.d.ts +5 -0
  981. package/dist/frontend/lowering/strict-mode.js +31 -0
  982. package/dist/frontend/lowering/strict-mode.js.map +1 -0
  983. package/dist/frontend/lowering/string-index-bounds.js +13 -12
  984. package/dist/frontend/lowering/string-index-bounds.js.map +1 -1
  985. package/dist/frontend/lowering/string-index.d.ts +12 -0
  986. package/dist/frontend/lowering/string-index.js +72 -1
  987. package/dist/frontend/lowering/string-index.js.map +1 -1
  988. package/dist/frontend/lowering/surfaces.d.ts +12 -3
  989. package/dist/frontend/lowering/surfaces.js +282 -45
  990. package/dist/frontend/lowering/surfaces.js.map +1 -1
  991. package/dist/frontend/lowering/symbol-fields.d.ts +7 -0
  992. package/dist/frontend/lowering/symbol-fields.js +204 -36
  993. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  994. package/dist/frontend/lowering/symbol-methods.d.ts +2 -1
  995. package/dist/frontend/lowering/symbol-methods.js +24 -6
  996. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  997. package/dist/frontend/lowering/thenables.d.ts +16 -0
  998. package/dist/frontend/lowering/thenables.js +124 -0
  999. package/dist/frontend/lowering/thenables.js.map +1 -0
  1000. package/dist/frontend/lowering/thread-slots.d.ts +13 -0
  1001. package/dist/frontend/lowering/thread-slots.js +208 -0
  1002. package/dist/frontend/lowering/thread-slots.js.map +1 -0
  1003. package/dist/frontend/lowering/typed-arguments.d.ts +74 -0
  1004. package/dist/frontend/lowering/typed-arguments.js +472 -0
  1005. package/dist/frontend/lowering/typed-arguments.js.map +1 -0
  1006. package/dist/frontend/lowering/union-retag.d.ts +8 -0
  1007. package/dist/frontend/lowering/union-retag.js +27 -0
  1008. package/dist/frontend/lowering/union-retag.js.map +1 -1
  1009. package/dist/frontend/lowering/union-retag.test.js +24 -1
  1010. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  1011. package/dist/frontend/lowering/var-hoisting.js +6 -6
  1012. package/dist/frontend/lowering/var-hoisting.js.map +1 -1
  1013. package/dist/frontend/lowering/width-lift.d.ts +4 -0
  1014. package/dist/frontend/mock-shapes.js +13 -6
  1015. package/dist/frontend/mock-shapes.js.map +1 -1
  1016. package/dist/frontend/module-source-candidates.js +1 -1
  1017. package/dist/frontend/module-source-candidates.js.map +1 -1
  1018. package/dist/frontend/module-source-candidates.test.js +2 -1
  1019. package/dist/frontend/module-source-candidates.test.js.map +1 -1
  1020. package/dist/frontend/module-syntax.js +8 -8
  1021. package/dist/frontend/module-syntax.js.map +1 -1
  1022. package/dist/frontend/npm-static-builtin-aliases.d.ts +8 -0
  1023. package/dist/frontend/npm-static-builtin-aliases.js +65 -0
  1024. package/dist/frontend/npm-static-builtin-aliases.js.map +1 -0
  1025. package/dist/frontend/npm-static-bundled-chunks.d.ts +58 -0
  1026. package/dist/frontend/npm-static-bundled-chunks.js +981 -0
  1027. package/dist/frontend/npm-static-bundled-chunks.js.map +1 -0
  1028. package/dist/frontend/npm-static-bundled-chunks.test.d.ts +1 -0
  1029. package/dist/frontend/npm-static-bundled-chunks.test.js +399 -0
  1030. package/dist/frontend/npm-static-bundled-chunks.test.js.map +1 -0
  1031. package/dist/frontend/npm-static-bundled-cjs.js +24 -23
  1032. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  1033. package/dist/frontend/npm-static-bundled-esm.d.ts +9 -0
  1034. package/dist/frontend/npm-static-bundled-esm.js +988 -0
  1035. package/dist/frontend/npm-static-bundled-esm.js.map +1 -0
  1036. package/dist/frontend/npm-static-bundled-esm.test.d.ts +1 -0
  1037. package/dist/frontend/npm-static-bundled-esm.test.js +336 -0
  1038. package/dist/frontend/npm-static-bundled-esm.test.js.map +1 -0
  1039. package/dist/frontend/npm-static-cjs-exports-alias.d.ts +2 -0
  1040. package/dist/frontend/npm-static-cjs-exports-alias.js +186 -0
  1041. package/dist/frontend/npm-static-cjs-exports-alias.js.map +1 -0
  1042. package/dist/frontend/npm-static-cjs-exports-alias.test.d.ts +1 -0
  1043. package/dist/frontend/npm-static-cjs-exports-alias.test.js +73 -0
  1044. package/dist/frontend/npm-static-cjs-exports-alias.test.js.map +1 -0
  1045. package/dist/frontend/npm-static-cjs-exports-var.d.ts +2 -0
  1046. package/dist/frontend/npm-static-cjs-exports-var.js +236 -0
  1047. package/dist/frontend/npm-static-cjs-exports-var.js.map +1 -0
  1048. package/dist/frontend/npm-static-declaration-syntax.js +102 -101
  1049. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  1050. package/dist/frontend/npm-static-enum-iife.d.ts +6 -0
  1051. package/dist/frontend/npm-static-enum-iife.js +280 -0
  1052. package/dist/frontend/npm-static-enum-iife.js.map +1 -0
  1053. package/dist/frontend/npm-static-enum-iife.test.d.ts +1 -0
  1054. package/dist/frontend/npm-static-enum-iife.test.js +116 -0
  1055. package/dist/frontend/npm-static-enum-iife.test.js.map +1 -0
  1056. package/dist/frontend/npm-static-prune.js +36 -24
  1057. package/dist/frontend/npm-static-prune.js.map +1 -1
  1058. package/dist/frontend/npm-static-rewrite-host.d.ts +4 -1
  1059. package/dist/frontend/npm-static-rewrite-host.js +14 -3
  1060. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  1061. package/dist/frontend/npm-static-rewrite-syntax.d.ts +19 -0
  1062. package/dist/frontend/npm-static-rewrite-syntax.js +274 -101
  1063. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  1064. package/dist/frontend/npm-static-subtyping.js +7 -9
  1065. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  1066. package/dist/frontend/npm-static.d.ts +25 -1
  1067. package/dist/frontend/npm-static.js +212 -16
  1068. package/dist/frontend/npm-static.js.map +1 -1
  1069. package/dist/frontend/npm-static.test.js +22 -1
  1070. package/dist/frontend/npm-static.test.js.map +1 -1
  1071. package/dist/frontend/npm.js +13 -0
  1072. package/dist/frontend/npm.js.map +1 -1
  1073. package/dist/frontend/package-shims.d.ts +47 -0
  1074. package/dist/frontend/package-shims.js +300 -0
  1075. package/dist/frontend/package-shims.js.map +1 -0
  1076. package/dist/frontend/pipeline.js +230 -26
  1077. package/dist/frontend/pipeline.js.map +1 -1
  1078. package/dist/frontend/pipeline.test.js +22 -1
  1079. package/dist/frontend/pipeline.test.js.map +1 -1
  1080. package/dist/frontend/program-analysis.d.ts +6 -1
  1081. package/dist/frontend/program-analysis.js +7 -0
  1082. package/dist/frontend/program-analysis.js.map +1 -1
  1083. package/dist/frontend/program.d.ts +100 -2
  1084. package/dist/frontend/program.js +1627 -262
  1085. package/dist/frontend/program.js.map +1 -1
  1086. package/dist/frontend/program.test.js +76 -6
  1087. package/dist/frontend/program.test.js.map +1 -1
  1088. package/dist/frontend/resolve.js +49 -2
  1089. package/dist/frontend/resolve.js.map +1 -1
  1090. package/dist/frontend/resolve.test.js +49 -0
  1091. package/dist/frontend/resolve.test.js.map +1 -1
  1092. package/dist/frontend/services.d.ts +26 -1
  1093. package/dist/frontend/services.js +59 -3
  1094. package/dist/frontend/services.js.map +1 -1
  1095. package/dist/frontend/services.test.js +2 -1
  1096. package/dist/frontend/services.test.js.map +1 -1
  1097. package/dist/frontend/threads-import.js +1 -1
  1098. package/dist/frontend/threads-import.js.map +1 -1
  1099. package/dist/frontend/tier-analysis.d.ts +71 -0
  1100. package/dist/frontend/tier-analysis.js +522 -0
  1101. package/dist/frontend/tier-analysis.js.map +1 -0
  1102. package/dist/frontend/ts7/api-conformance.d.ts +234 -0
  1103. package/dist/frontend/ts7/api-conformance.js +7 -0
  1104. package/dist/frontend/ts7/api-conformance.js.map +1 -0
  1105. package/dist/frontend/ts7/ast-guards.generated.js +2 -1
  1106. package/dist/frontend/ts7/ast-guards.generated.js.map +1 -1
  1107. package/dist/frontend/ts7/ast-node.d.ts +47 -25
  1108. package/dist/frontend/ts7/ast-node.js +64 -18
  1109. package/dist/frontend/ts7/ast-node.js.map +1 -1
  1110. package/dist/frontend/ts7/ast-node.test.js +36 -12
  1111. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  1112. package/dist/frontend/ts7/ast-types.d.ts +10 -3
  1113. package/dist/frontend/ts7/ast-types.generated.d.ts +39 -39
  1114. package/dist/frontend/ts7/ast.d.ts +1 -0
  1115. package/dist/frontend/ts7/ast.js +3 -2
  1116. package/dist/frontend/ts7/ast.js.map +1 -1
  1117. package/dist/frontend/ts7/checker-backend.d.ts +23 -0
  1118. package/dist/frontend/ts7/checker-backend.js +88 -0
  1119. package/dist/frontend/ts7/checker-backend.js.map +1 -0
  1120. package/dist/frontend/ts7/checker-backend.test.d.ts +1 -0
  1121. package/dist/frontend/ts7/checker-backend.test.js +63 -0
  1122. package/dist/frontend/ts7/checker-backend.test.js.map +1 -0
  1123. package/dist/frontend/ts7/checker-cache.d.ts +0 -3
  1124. package/dist/frontend/ts7/checker-cache.js +0 -6
  1125. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  1126. package/dist/frontend/ts7/checker.d.ts +18 -11
  1127. package/dist/frontend/ts7/checker.js +42 -55
  1128. package/dist/frontend/ts7/checker.js.map +1 -1
  1129. package/dist/frontend/ts7/checker.test.js +10 -7
  1130. package/dist/frontend/ts7/checker.test.js.map +1 -1
  1131. package/dist/frontend/ts7/diagnostic.d.ts +19 -0
  1132. package/dist/frontend/ts7/diagnostic.js +22 -0
  1133. package/dist/frontend/ts7/diagnostic.js.map +1 -0
  1134. package/dist/frontend/ts7/node-functions.d.ts +8 -0
  1135. package/dist/frontend/ts7/node-functions.js +18 -0
  1136. package/dist/frontend/ts7/node-functions.js.map +1 -0
  1137. package/dist/frontend/ts7/program-host.d.ts +10 -5
  1138. package/dist/frontend/ts7/program-host.js +19 -0
  1139. package/dist/frontend/ts7/program-host.js.map +1 -1
  1140. package/dist/frontend/ts7/rpc-api.d.ts +5 -1
  1141. package/dist/frontend/ts7/rpc-api.js +8 -1
  1142. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  1143. package/dist/frontend/ts7/semantic-checker.d.ts +13 -6
  1144. package/dist/frontend/ts7/semantic-checker.js +26 -8
  1145. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  1146. package/dist/frontend/ts7/semantic-checker.test.js +12 -9
  1147. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  1148. package/dist/frontend/ts7/semantic-model.d.ts +57 -24
  1149. package/dist/frontend/ts7/semantic-model.js +114 -16
  1150. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  1151. package/dist/frontend/ts7/semantic-model.test.js +4 -4
  1152. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  1153. package/dist/frontend/ts7/semantic-types.d.ts +7 -3
  1154. package/dist/frontend/ts7/semantic-types.js +1 -1
  1155. package/dist/frontend/ts7/semantic-types.js.map +1 -1
  1156. package/dist/frontend/ts7/session.d.ts +30 -15
  1157. package/dist/frontend/ts7/session.js +8 -5
  1158. package/dist/frontend/ts7/session.js.map +1 -1
  1159. package/dist/frontend/ts7/session.test.js +9 -5
  1160. package/dist/frontend/ts7/session.test.js.map +1 -1
  1161. package/dist/frontend/ts7/source-parser.d.ts +6 -2
  1162. package/dist/frontend/ts7/source-parser.js +24 -3
  1163. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1164. package/dist/frontend/ts7/source-parser.test.js +38 -17
  1165. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1166. package/dist/frontend/type-mapper.d.ts +122 -2
  1167. package/dist/frontend/type-mapper.js +2735 -723
  1168. package/dist/frontend/type-mapper.js.map +1 -1
  1169. package/dist/frontend/type-only-imports.d.ts +28 -0
  1170. package/dist/frontend/type-only-imports.js +122 -0
  1171. package/dist/frontend/type-only-imports.js.map +1 -0
  1172. package/dist/frontend/worker-target.js +8 -8
  1173. package/dist/frontend/worker-target.js.map +1 -1
  1174. package/dist/index.d.ts +4 -1
  1175. package/dist/index.js +87 -8
  1176. package/dist/index.js.map +1 -1
  1177. package/dist/ir/analysis.js +4 -2
  1178. package/dist/ir/analysis.js.map +1 -1
  1179. package/dist/ir/api.d.ts +1 -1
  1180. package/dist/ir/api.js +1 -1
  1181. package/dist/ir/api.js.map +1 -1
  1182. package/dist/ir/array-length-stability.d.ts +31 -0
  1183. package/dist/ir/array-length-stability.js +249 -0
  1184. package/dist/ir/array-length-stability.js.map +1 -0
  1185. package/dist/ir/array-length-stability.test.d.ts +1 -0
  1186. package/dist/ir/array-length-stability.test.js +134 -0
  1187. package/dist/ir/array-length-stability.test.js.map +1 -0
  1188. package/dist/ir/build.d.ts +2 -2
  1189. package/dist/ir/build.js +1 -1
  1190. package/dist/ir/build.js.map +1 -1
  1191. package/dist/ir/builtin-effects.js +116 -0
  1192. package/dist/ir/builtin-effects.js.map +1 -1
  1193. package/dist/ir/builtin-signatures.d.ts +1 -1
  1194. package/dist/ir/builtin-signatures.js +540 -29
  1195. package/dist/ir/builtin-signatures.js.map +1 -1
  1196. package/dist/ir/byte-numbers.js +3 -0
  1197. package/dist/ir/byte-numbers.js.map +1 -1
  1198. package/dist/ir/callback-specialization.d.ts +37 -0
  1199. package/dist/ir/callback-specialization.js +459 -0
  1200. package/dist/ir/callback-specialization.js.map +1 -0
  1201. package/dist/ir/callback-specialization.test.d.ts +1 -0
  1202. package/dist/ir/callback-specialization.test.js +208 -0
  1203. package/dist/ir/callback-specialization.test.js.map +1 -0
  1204. package/dist/ir/capture-values.d.ts +0 -1
  1205. package/dist/ir/capture-values.js +51 -40
  1206. package/dist/ir/capture-values.js.map +1 -1
  1207. package/dist/ir/constant-globals.test.js +1 -1
  1208. package/dist/ir/constant-tables.test.js +1 -1
  1209. package/dist/ir/field-values.test.js +1 -1
  1210. package/dist/ir/final-fields.test.js +1 -1
  1211. package/dist/ir/function-references.test.js +9 -1
  1212. package/dist/ir/function-references.test.js.map +1 -1
  1213. package/dist/ir/init-only-globals.test.js +1 -1
  1214. package/dist/ir/initializer-bindings.test.js +1 -1
  1215. package/dist/ir/int32-slots.d.ts +14 -0
  1216. package/dist/ir/int32-slots.js +97 -14
  1217. package/dist/ir/int32-slots.js.map +1 -1
  1218. package/dist/ir/int32-slots.test.js +1 -1
  1219. package/dist/ir/integer-loop-facts.d.ts +7 -0
  1220. package/dist/ir/integer-loop-facts.js +103 -17
  1221. package/dist/ir/integer-loop-facts.js.map +1 -1
  1222. package/dist/ir/integer-loops.d.ts +1 -1
  1223. package/dist/ir/integer-loops.js +39 -9
  1224. package/dist/ir/integer-loops.js.map +1 -1
  1225. package/dist/ir/integer-loops.test.js +104 -0
  1226. package/dist/ir/integer-loops.test.js.map +1 -1
  1227. package/dist/ir/integer-ranges.d.ts +13 -1
  1228. package/dist/ir/integer-ranges.js +125 -26
  1229. package/dist/ir/integer-ranges.js.map +1 -1
  1230. package/dist/ir/integer-ranges.test.js +273 -2
  1231. package/dist/ir/integer-ranges.test.js.map +1 -1
  1232. package/dist/ir/intrinsic-signatures.js +6 -0
  1233. package/dist/ir/intrinsic-signatures.js.map +1 -1
  1234. package/dist/ir/ir.d.ts +221 -58
  1235. package/dist/ir/ir.js +127 -12
  1236. package/dist/ir/ir.js.map +1 -1
  1237. package/dist/ir/ir.test.js +10 -0
  1238. package/dist/ir/ir.test.js.map +1 -1
  1239. package/dist/ir/js-ic.d.ts +52 -0
  1240. package/dist/ir/js-ic.js +199 -0
  1241. package/dist/ir/js-ic.js.map +1 -0
  1242. package/dist/ir/js-ic.test.d.ts +1 -0
  1243. package/dist/ir/js-ic.test.js +148 -0
  1244. package/dist/ir/js-ic.test.js.map +1 -0
  1245. package/dist/ir/jsval.d.ts +8 -0
  1246. package/dist/ir/jsval.js +399 -0
  1247. package/dist/ir/jsval.js.map +1 -0
  1248. package/dist/ir/jsval.test.d.ts +1 -0
  1249. package/dist/ir/jsval.test.js +239 -0
  1250. package/dist/ir/jsval.test.js.map +1 -0
  1251. package/dist/ir/runtime-features.d.ts +183 -33
  1252. package/dist/ir/runtime-features.js +795 -422
  1253. package/dist/ir/runtime-features.js.map +1 -1
  1254. package/dist/ir/scalar-records.test.js +1 -1
  1255. package/dist/ir/self-captures.d.ts +33 -0
  1256. package/dist/ir/self-captures.js +245 -0
  1257. package/dist/ir/self-captures.js.map +1 -0
  1258. package/dist/ir/self-captures.test.d.ts +1 -0
  1259. package/dist/ir/self-captures.test.js +135 -0
  1260. package/dist/ir/self-captures.test.js.map +1 -0
  1261. package/dist/ir/serialize.d.ts +1 -1
  1262. package/dist/ir/serialize.js +7 -4
  1263. package/dist/ir/serialize.js.map +1 -1
  1264. package/dist/ir/tiers.d.ts +26 -0
  1265. package/dist/ir/tiers.js +101 -0
  1266. package/dist/ir/tiers.js.map +1 -0
  1267. package/dist/ir/tiers.test.d.ts +1 -0
  1268. package/dist/ir/tiers.test.js +140 -0
  1269. package/dist/ir/tiers.test.js.map +1 -0
  1270. package/dist/ir/traverse.js +201 -150
  1271. package/dist/ir/traverse.js.map +1 -1
  1272. package/dist/ir/traverse.test.js +33 -30
  1273. package/dist/ir/traverse.test.js.map +1 -1
  1274. package/dist/ir/unshare.js +65 -3
  1275. package/dist/ir/unshare.js.map +1 -1
  1276. package/dist/ir/unshare.test.js +1 -1
  1277. package/dist/ir/validate.js +196 -76
  1278. package/dist/ir/validate.js.map +1 -1
  1279. package/dist/ir/validate.test.js +41 -11
  1280. package/dist/ir/validate.test.js.map +1 -1
  1281. package/dist/library/fence-eval.test.js +1 -1
  1282. package/dist/library/int-infer.test.js +4 -4
  1283. package/dist/library/ir-policy.js +14 -0
  1284. package/dist/library/ir-policy.js.map +1 -1
  1285. package/dist/library/library-cache.d.ts +1 -0
  1286. package/dist/library/library-cache.js.map +1 -1
  1287. package/dist/library/library-cache.test.js +5 -5
  1288. package/dist/library/library-profile.d.ts +4 -4
  1289. package/dist/library/library-profile.js +35 -7
  1290. package/dist/library/library-profile.js.map +1 -1
  1291. package/dist/library/prepare.js +13 -1
  1292. package/dist/library/prepare.js.map +1 -1
  1293. package/dist/native/cli.js +22 -0
  1294. package/dist/native/cli.js.map +1 -1
  1295. package/dist/native/compiler.js +35 -6
  1296. package/dist/native/compiler.js.map +1 -1
  1297. package/dist/native/compiler.test.js +2 -2
  1298. package/dist/native/executable-cache.js +3 -0
  1299. package/dist/native/executable-cache.js.map +1 -1
  1300. package/dist/native/prepare.js +10 -0
  1301. package/dist/native/prepare.js.map +1 -1
  1302. package/dist/native/sanitizer.test.js +19 -0
  1303. package/dist/native/sanitizer.test.js.map +1 -1
  1304. package/dist/native/toolchain.d.ts +2 -0
  1305. package/dist/native/toolchain.js +10 -1
  1306. package/dist/native/toolchain.js.map +1 -1
  1307. package/dist/native/toolchain.test.js +39 -1
  1308. package/dist/native/toolchain.test.js.map +1 -1
  1309. package/dist/startup-cache.d.ts +1 -0
  1310. package/dist/startup-cache.js +1 -0
  1311. package/dist/startup-cache.js.map +1 -1
  1312. package/dist/wasm/base64.d.ts +5 -0
  1313. package/dist/wasm/base64.js +62 -0
  1314. package/dist/wasm/base64.js.map +1 -0
  1315. package/dist/wasm/binary.d.ts +36 -0
  1316. package/dist/wasm/binary.js +1976 -0
  1317. package/dist/wasm/binary.js.map +1 -0
  1318. package/dist/wasm/binary.test.d.ts +1 -0
  1319. package/dist/wasm/binary.test.js +190 -0
  1320. package/dist/wasm/binary.test.js.map +1 -0
  1321. package/dist/wasm/discover.d.ts +38 -0
  1322. package/dist/wasm/discover.js +377 -0
  1323. package/dist/wasm/discover.js.map +1 -0
  1324. package/dist/wasm/discover.test.d.ts +1 -0
  1325. package/dist/wasm/discover.test.js +24 -0
  1326. package/dist/wasm/discover.test.js.map +1 -0
  1327. package/dist/wasm/module.d.ts +151 -0
  1328. package/dist/wasm/module.js +575 -0
  1329. package/dist/wasm/module.js.map +1 -0
  1330. package/dist/wasm/translate.d.ts +48 -0
  1331. package/dist/wasm/translate.js +2129 -0
  1332. package/dist/wasm/translate.js.map +1 -0
  1333. package/dist/wasm/translate.test.d.ts +1 -0
  1334. package/dist/wasm/translate.test.js +207 -0
  1335. package/dist/wasm/translate.test.js.map +1 -0
  1336. package/package.json +22 -20
  1337. package/shims/fs-extra/core/api.ts +1192 -0
  1338. package/shims/fs-extra/index.ts +9 -0
  1339. package/shims/undici/core/agent.ts +163 -0
  1340. package/shims/undici/core/api.ts +93 -0
  1341. package/shims/undici/core/client.ts +1304 -0
  1342. package/shims/undici/core/connector.ts +157 -0
  1343. package/shims/undici/core/diagnostics-types.ts +68 -0
  1344. package/shims/undici/core/diagnostics.ts +16 -0
  1345. package/shims/undici/core/dispatcher.ts +574 -0
  1346. package/shims/undici/core/errors-v5.ts +22 -0
  1347. package/shims/undici/core/errors-v7.ts +25 -0
  1348. package/shims/undici/core/errors.ts +255 -0
  1349. package/shims/undici/core/fetch.ts +635 -0
  1350. package/shims/undici/core/pool.ts +280 -0
  1351. package/shims/undici/core/readable.ts +268 -0
  1352. package/shims/undici/core/request.ts +313 -0
  1353. package/shims/undici/core/timers.ts +80 -0
  1354. package/shims/undici/core/types.ts +167 -0
  1355. package/shims/undici/core/util.ts +67 -0
  1356. package/shims/undici/v5.ts +119 -0
  1357. package/shims/undici/v7.ts +119 -0
  1358. package/surface-manifest.json +304 -22
@@ -0,0 +1,981 @@
1
+ /* Bundled CommonJS chunks: esbuild wraps every CommonJS module it bundles
2
+ * in a lazily evaluated factory,
3
+ *
4
+ * var require_x = __commonJS({ "src/x.js"(exports, module) { BODY } });
5
+ *
6
+ * and each `require_x()` runs BODY once (later calls answer the cached
7
+ * module.exports, a call during BODY answers the partial one). That is
8
+ * exactly a CommonJS module that the bundle requires at the call's
9
+ * position, so each recognized chunk becomes its own module: a virtual
10
+ * sibling file `<bundle>.<binding>.cjs` holding BODY, its module
11
+ * parameters respelled as the CommonJS globals, and every `require_x()`
12
+ * call becomes `require("./<bundle>.<binding>.cjs")`. The program then
13
+ * compiles chunks with the ordinary CommonJS machinery: evaluation at the
14
+ * require's position, the run-once module cache, export tables, and the
15
+ * __toESM interop erasure.
16
+ *
17
+ * Only shapes whose meaning is verified move: the helper must be one of
18
+ * the recognized __commonJS spellings, every reference to a factory
19
+ * binding must be a direct call, and BODY must not observe the
20
+ * difference between a factory and a module (its `this`, `arguments`,
21
+ * `__filename`, the module object beyond `module.exports`, a top-level
22
+ * return, or a binding of the bundle other than the pure helpers copied
23
+ * beside it). Anything else answers a degrade reason. */
24
+ import * as ts from "./ts7/syntax.js";
25
+ import { helperTokens } from "./helper-tokens.js";
26
+ import { canonicalBuiltinModule } from "./builtin-modules.js";
27
+ import { getTextOfNode, tokenStartOfNode } from "./ts7/node-functions.js";
28
+ import { bundledShimForwarder, packageShimForBundledFile } from "./package-shims.js";
29
+ import { builtinAliasOf, versionedPackageOfKey, } from "./builtin-package-aliases.js";
30
+ const CHUNK_SHAPE_DEGRADE = "its shipped JS bundles CommonJS modules through the __commonJS helper in a shape the " +
31
+ "recognizer cannot verify";
32
+ /** The helper a counter-suffixed bundler name spells (`__commonJS2`). */
33
+ export function helperBase(name) {
34
+ return /^__[A-Za-z]+\d+$/.test(name) ? name.replace(/\d+$/, "") : name;
35
+ }
36
+ export function unparen(e) {
37
+ while (ts.isParenthesizedExpression(e))
38
+ e = e.expression;
39
+ return e;
40
+ }
41
+ /** True for an identifier occurrence that reads or writes a binding (as
42
+ * opposed to a property name, a label, or a declaration's own name).
43
+ * Shorthand property values count: `{ x }` reads x. */
44
+ export function isReference(id) {
45
+ const p = id.parent;
46
+ if (p === undefined)
47
+ return false;
48
+ if (ts.isPropertyAccessExpression(p))
49
+ return p.expression === id;
50
+ if (ts.isPropertyAssignment(p))
51
+ return p.initializer === id;
52
+ if (ts.isMethodDeclaration(p) ||
53
+ ts.isPropertyDeclaration(p) ||
54
+ ts.isGetAccessorDeclaration(p) ||
55
+ ts.isSetAccessorDeclaration(p))
56
+ return p.name !== id;
57
+ if (ts.isBindingElement(p))
58
+ return p.initializer === id;
59
+ if (ts.isVariableDeclaration(p) || ts.isParameter(p))
60
+ return p.initializer === id;
61
+ if (ts.isFunctionDeclaration(p) ||
62
+ ts.isFunctionExpression(p) ||
63
+ ts.isClassDeclaration(p) ||
64
+ ts.isClassExpression(p))
65
+ return p.name !== id;
66
+ if (ts.isLabeledStatement(p))
67
+ return p.label !== id;
68
+ if (ts.isBreakStatement(p) || ts.isContinueStatement(p))
69
+ return false;
70
+ if (ts.isMetaProperty(p))
71
+ return false;
72
+ return true;
73
+ }
74
+ /** Names a subtree declares anywhere inside it: variables (destructuring
75
+ * included), parameters, function and class names, catch bindings. */
76
+ export function declaredNames(root) {
77
+ const names = new Set();
78
+ // Binding patterns nest BindingElements, which the walk visits too.
79
+ ts.walkPreorder(root, (n) => {
80
+ if (n.kind >= ts.SyntaxKind.FirstJSDocNode && n.kind <= ts.SyntaxKind.LastJSDocNode)
81
+ return "skip";
82
+ if (ts.isVariableDeclaration(n) || ts.isParameter(n) || ts.isBindingElement(n)) {
83
+ const name = n.name;
84
+ if (name !== undefined && ts.isIdentifier(name))
85
+ names.add(name.text);
86
+ }
87
+ else if ((ts.isFunctionDeclaration(n) ||
88
+ ts.isFunctionExpression(n) ||
89
+ ts.isClassDeclaration(n) ||
90
+ ts.isClassExpression(n)) &&
91
+ n.name !== undefined)
92
+ names.add(n.name.text);
93
+ return undefined;
94
+ });
95
+ return names;
96
+ }
97
+ /** Adds the identifiers a binding name (an identifier or a destructuring
98
+ * pattern) declares. */
99
+ function addBindingNames(name, out) {
100
+ if (ts.isIdentifier(name)) {
101
+ out.add(name.text);
102
+ return;
103
+ }
104
+ for (const element of name.elements.nodes) {
105
+ if (!ts.isOmittedExpression(element) && element.name !== undefined)
106
+ addBindingNames(element.name, out);
107
+ }
108
+ }
109
+ function isFunctionScope(n) {
110
+ return (ts.isFunctionDeclaration(n) ||
111
+ ts.isFunctionExpression(n) ||
112
+ ts.isArrowFunction(n) ||
113
+ ts.isMethodDeclaration(n) ||
114
+ ts.isGetAccessorDeclaration(n) ||
115
+ ts.isSetAccessorDeclaration(n) ||
116
+ ts.isConstructorDeclaration(n));
117
+ }
118
+ /** The `var` names a function body declares, without entering nested
119
+ * functions. Function declarations in nested blocks count as block-scoped
120
+ * here; treating one as free only adds an unused helper copy. */
121
+ function varScopedNames(body) {
122
+ const out = new Set();
123
+ ts.walkPreorder(body, (n) => {
124
+ if (n !== body && (isFunctionScope(n) || ts.isClassDeclaration(n) || ts.isClassExpression(n)))
125
+ return "skip";
126
+ if (ts.isVariableDeclarationList(n) && (n.flags & ts.NodeFlags.BlockScoped) === 0) {
127
+ for (const d of n.declarations.nodes)
128
+ addBindingNames(d.name, out);
129
+ }
130
+ return undefined;
131
+ });
132
+ return out;
133
+ }
134
+ /** The names a function binds for references in its parameter list
135
+ * (default values, computed keys of destructuring patterns): its
136
+ * parameters and a function expression's own name. Parameter initializers
137
+ * run in their own scope, so the body's `var`s are not visible there. */
138
+ function parameterScopeNames(scope) {
139
+ const out = new Set();
140
+ for (const param of scope.parameters.nodes)
141
+ addBindingNames(param.name, out);
142
+ if (ts.isFunctionExpression(scope) && scope.name !== undefined)
143
+ out.add(scope.name.text);
144
+ return out;
145
+ }
146
+ const NO_NAMES = new Set();
147
+ /** True when `node` lies inside `ancestor` (or is it). */
148
+ function within(node, ancestor) {
149
+ for (let n = node; n !== undefined; n = n.parent)
150
+ if (n === ancestor)
151
+ return true;
152
+ return false;
153
+ }
154
+ /** The names one scope node binds for the references inside it. */
155
+ function scopeNames(scope) {
156
+ const out = new Set();
157
+ if (isFunctionScope(scope)) {
158
+ for (const param of scope.parameters.nodes)
159
+ addBindingNames(param.name, out);
160
+ if (ts.isFunctionExpression(scope) && scope.name !== undefined)
161
+ out.add(scope.name.text);
162
+ if (scope.body !== undefined)
163
+ for (const name of varScopedNames(scope.body))
164
+ out.add(name);
165
+ }
166
+ else if (ts.isBlock(scope) || ts.isSourceFile(scope) || ts.isCaseBlock(scope)) {
167
+ const statements = ts.isCaseBlock(scope)
168
+ ? scope.clauses.nodes.flatMap((clause) => clause.statements.nodes)
169
+ : scope.statements.nodes;
170
+ for (const stmt of statements) {
171
+ if ((ts.isFunctionDeclaration(stmt) || ts.isClassDeclaration(stmt)) && stmt.name)
172
+ out.add(stmt.name.text);
173
+ else if (ts.isVariableStatement(stmt) &&
174
+ (stmt.declarationList.flags & ts.NodeFlags.BlockScoped) !== 0) {
175
+ for (const d of stmt.declarationList.declarations.nodes)
176
+ addBindingNames(d.name, out);
177
+ }
178
+ }
179
+ }
180
+ else if (ts.isCatchClause(scope) && scope.variableDeclaration !== undefined) {
181
+ addBindingNames(scope.variableDeclaration.name, out);
182
+ }
183
+ else if ((ts.isForStatement(scope) || ts.isForInStatement(scope) || ts.isForOfStatement(scope)) &&
184
+ scope.initializer !== undefined &&
185
+ ts.isVariableDeclarationList(scope.initializer) &&
186
+ (scope.initializer.flags & ts.NodeFlags.BlockScoped) !== 0) {
187
+ for (const d of scope.initializer.declarations.nodes)
188
+ addBindingNames(d.name, out);
189
+ }
190
+ else if ((ts.isClassDeclaration(scope) || ts.isClassExpression(scope)) &&
191
+ scope.name !== undefined) {
192
+ out.add(scope.name.text);
193
+ }
194
+ return out;
195
+ }
196
+ /** Resolves references against one bundle's scopes, keeping each scope's
197
+ * names for the bundle's split. */
198
+ class BundleScopes {
199
+ names = new Map();
200
+ parameterNames = new Map();
201
+ of(scope) {
202
+ let names = this.names.get(scope);
203
+ if (names === undefined) {
204
+ names = scopeNames(scope);
205
+ this.names.set(scope, names);
206
+ }
207
+ return names;
208
+ }
209
+ /** The names `scope` binds for a reference reached through its child
210
+ * `from`: a function's parameter list sees its parameters and own name
211
+ * but not its body's `var`s, and a computed method name sees none of
212
+ * them. */
213
+ visible(scope, from) {
214
+ if (!isFunctionScope(scope) || from === scope.body)
215
+ return this.of(scope);
216
+ if (from === scope.name)
217
+ return NO_NAMES;
218
+ let names = this.parameterNames.get(scope);
219
+ if (names === undefined) {
220
+ names = parameterScopeNames(scope);
221
+ this.parameterNames.set(scope, names);
222
+ }
223
+ return names;
224
+ }
225
+ /** True when a scope between the reference and `root` (inclusive)
226
+ * binds its name. */
227
+ boundWithin(id, root) {
228
+ for (let from = id, n = id.parent; n !== undefined; from = n, n = n.parent) {
229
+ if (this.visible(n, from).has(id.text))
230
+ return true;
231
+ if (n === root)
232
+ return false;
233
+ }
234
+ return false;
235
+ }
236
+ /** True when a scope inside `root` (exclusive) binds the reference's
237
+ * name. */
238
+ boundInside(id, root) {
239
+ for (let from = id, n = id.parent; n !== undefined && n !== root; from = n, n = n.parent) {
240
+ if (this.visible(n, from).has(id.text))
241
+ return true;
242
+ }
243
+ return false;
244
+ }
245
+ /** True when the reference resolves to a top-level binding of `sf`. */
246
+ topLevel(id, sf) {
247
+ for (let from = id, n = id.parent; n !== undefined && n !== sf; from = n, n = n.parent) {
248
+ if (this.visible(n, from).has(id.text))
249
+ return false;
250
+ }
251
+ return true;
252
+ }
253
+ }
254
+ /** Every binding reference inside a subtree. */
255
+ export function references(root) {
256
+ const out = [];
257
+ ts.walkPreorder(root, (n) => {
258
+ if (n.kind >= ts.SyntaxKind.FirstJSDocNode && n.kind <= ts.SyntaxKind.LastJSDocNode)
259
+ return "skip";
260
+ if (ts.isIdentifier(n) && isReference(n))
261
+ out.push(n);
262
+ return undefined;
263
+ });
264
+ return out;
265
+ }
266
+ /** True when the reference is written (assignment target, update operand,
267
+ * loop target, delete operand). */
268
+ export function isWritten(id) {
269
+ let child = id;
270
+ for (let p = child.parent; p !== undefined; child = p, p = p.parent) {
271
+ if (ts.isBinaryExpression(p)) {
272
+ return (p.left === child &&
273
+ p.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
274
+ p.operatorToken.kind <= ts.SyntaxKind.LastAssignment);
275
+ }
276
+ if (ts.isPrefixUnaryExpression(p) || ts.isPostfixUnaryExpression(p)) {
277
+ return (p.operator === ts.SyntaxKind.PlusPlusToken || p.operator === ts.SyntaxKind.MinusMinusToken);
278
+ }
279
+ if (ts.isForInStatement(p) || ts.isForOfStatement(p))
280
+ return p.initializer === child;
281
+ if (ts.isDeleteExpression(p))
282
+ return true;
283
+ if (!(ts.isParenthesizedExpression(p) ||
284
+ ts.isArrayLiteralExpression(p) ||
285
+ ts.isObjectLiteralExpression(p) ||
286
+ ts.isShorthandPropertyAssignment(p) ||
287
+ ts.isPropertyAssignment(p) ||
288
+ ts.isSpreadElement(p)))
289
+ return false;
290
+ }
291
+ return false;
292
+ }
293
+ /** The recognized __commonJS helper forms, as token templates over the
294
+ * helper's own parameter names (CB, MOD) and the own-key reader (KEYS:
295
+ * esbuild's `__getOwnPropNames` alias, or `Object.keys` in esbuild 0.11):
296
+ * keyed: `(CB, MOD) => function [name]() { return <keyed>; }` — the
297
+ * factory is the only method of an object literal;
298
+ * arrow: `(CB, MOD) => () => (<arrow>)` — the factory itself. */
299
+ const KEYED_RETURN = "MOD || (0, CB[KEYS(CB)[0]])((MOD = { exports: {} }).exports, MOD), MOD.exports";
300
+ const ARROW_BODY = "(MOD || CB((MOD = { exports: {} }).exports, MOD), MOD.exports)";
301
+ function template(text, cb, mod, keys) {
302
+ return helperTokens(text
303
+ .replace(/\bCB\b/g, cb)
304
+ .replace(/\bMOD\b/g, mod)
305
+ .replace(/\bKEYS\b/g, keys));
306
+ }
307
+ /** The helper's form, or null when its initializer is not recognized.
308
+ * `ownNames` answers whether an identifier names the verified
309
+ * Object.getOwnPropertyNames alias. */
310
+ function helperForm(init, sf, ownNames) {
311
+ const fn = unparen(init);
312
+ if (!ts.isArrowFunction(fn) || fn.parameters.nodes.length !== 2)
313
+ return null;
314
+ const params = fn.parameters.nodes.map((p) => ts.isIdentifier(p.name) && p.initializer === undefined && p.dotDotDotToken === undefined
315
+ ? p.name.text
316
+ : null);
317
+ const [cb, mod] = params;
318
+ if (cb === null || mod === null || cb === undefined || mod === undefined || cb === mod)
319
+ return null;
320
+ if (ts.isBlock(fn.body))
321
+ return null;
322
+ const body = unparen(fn.body);
323
+ if (ts.isFunctionExpression(body)) {
324
+ if (body.parameters.nodes.length !== 0 || body.asteriskToken || body.modifiers?.nodes.length)
325
+ return null;
326
+ const stmts = body.body.statements.nodes;
327
+ const ret = stmts[0];
328
+ if (stmts.length !== 1 || ret === undefined || !ts.isReturnStatement(ret) || !ret.expression)
329
+ return null;
330
+ const actual = helperTokens(getTextOfNode(ret.expression));
331
+ if (actual === null)
332
+ return null;
333
+ // The own-key reader: esbuild's alias or the 0.11 spelling.
334
+ const keysRef = /\[\s*([A-Za-z_$][\w$]*(?:\.keys)?)\s*\(/.exec(getTextOfNode(ret.expression));
335
+ const keys = keysRef?.[1];
336
+ if (keys === undefined || (keys !== "Object.keys" && !ownNames(keys)))
337
+ return null;
338
+ return actual === template(KEYED_RETURN, cb, mod, keys) ? "keyed" : null;
339
+ }
340
+ if (ts.isArrowFunction(body) && body.parameters.nodes.length === 0 && !ts.isBlock(body.body)) {
341
+ const actual = helperTokens(getTextOfNode(body.body));
342
+ return actual !== null && actual === template(ARROW_BODY, cb, mod, "") ? "arrow" : null;
343
+ }
344
+ return null;
345
+ }
346
+ /** A top-level declaration the virtual chunk can copy verbatim: a pure
347
+ * helper whose evaluation runs nothing (a function, or a member read of
348
+ * Object such as `Object.create` / `Object.prototype.hasOwnProperty`). */
349
+ function copyableInitializer(init) {
350
+ if (init === undefined)
351
+ return false;
352
+ const e = unparen(init);
353
+ if (ts.isArrowFunction(e) || ts.isFunctionExpression(e))
354
+ return true;
355
+ let walk = e;
356
+ let depth = 0;
357
+ while (ts.isPropertyAccessExpression(walk) && ts.isIdentifier(walk.name)) {
358
+ walk = walk.expression;
359
+ depth++;
360
+ }
361
+ return depth > 0 && ts.isIdentifier(walk) && walk.text === "Object";
362
+ }
363
+ /** A top-level declaration whose value is a function. */
364
+ function isFunctionValued(node) {
365
+ if (ts.isFunctionDeclaration(node))
366
+ return true;
367
+ const init = node.initializer && unparen(node.initializer);
368
+ return init !== undefined && (ts.isArrowFunction(init) || ts.isFunctionExpression(init));
369
+ }
370
+ /** True when a named function expression initializer (`var f = function
371
+ * self() {}`) uses its own name only as a callee: `self` is the copied
372
+ * function, so it is as observable as the top-level binding. */
373
+ function selfCalledOnly(node, scopes) {
374
+ if (!ts.isVariableDeclaration(node) || node.initializer === undefined)
375
+ return true;
376
+ const fn = unparen(node.initializer);
377
+ if (!ts.isFunctionExpression(fn) || fn.name === undefined || fn.body === undefined)
378
+ return true;
379
+ const self = fn.name.text;
380
+ // A parameter of the same name hides the function's own name everywhere
381
+ // in it; a `var` of the same name hides it only in the body, since the
382
+ // parameter initializers do not see the body's `var`s.
383
+ if (fn.parameters.nodes.some((p) => bindsName(p.name, self)))
384
+ return true;
385
+ const bodyVar = varScopedNames(fn.body).has(self);
386
+ const body = fn.body;
387
+ return references(fn).every((r) => r.text !== self || scopes.boundInside(r, fn) || (bodyVar && within(r, body)) || isCallee(r));
388
+ }
389
+ /** True when a binding name (an identifier or a destructuring pattern)
390
+ * declares `name`. */
391
+ function bindsName(binding, name) {
392
+ const names = new Set();
393
+ addBindingNames(binding, names);
394
+ return names.has(name);
395
+ }
396
+ /** True when a reference is the function a call invokes: `f(...)`, or the
397
+ * `(0, f)(...)` form that drops the receiver. */
398
+ function isCallee(id) {
399
+ let callee = id;
400
+ const p = id.parent;
401
+ if (p !== undefined &&
402
+ ts.isBinaryExpression(p) &&
403
+ p.operatorToken.kind === ts.SyntaxKind.CommaToken &&
404
+ p.right === id &&
405
+ p.parent !== undefined &&
406
+ ts.isParenthesizedExpression(p.parent))
407
+ callee = p.parent;
408
+ while (callee.parent !== undefined && ts.isParenthesizedExpression(callee.parent))
409
+ callee = callee.parent;
410
+ const call = callee.parent;
411
+ return call !== undefined && ts.isCallExpression(call) && call.expression === callee;
412
+ }
413
+ /** True when the file opens with a "use strict" directive prologue. */
414
+ export function strictPrologue(stmts) {
415
+ for (const s of stmts) {
416
+ if (!ts.isExpressionStatement(s) || !ts.isStringLiteral(s.expression))
417
+ return false;
418
+ if (s.expression.text === "use strict")
419
+ return true;
420
+ }
421
+ return false;
422
+ }
423
+ /** A cheap text probe: the helper's name, or its minified body's
424
+ * `(m={exports:{}}).exports,m` fragment. */
425
+ export function mayBundleChunks(source) {
426
+ return (source.includes("__commonJS") ||
427
+ /\{\s*exports\s*:\s*\{\s*\}\s*\}\s*\)\s*\.exports\s*,/.test(source));
428
+ }
429
+ /** Splits a CommonJS bundle's __commonJS chunks into virtual modules (see
430
+ * the header). Null: no chunks (or not a CommonJS bundle) — serve the file
431
+ * unchanged. */
432
+ export function splitBundledChunks(sf, filePath) {
433
+ const source = sf.text;
434
+ if (!mayBundleChunks(source))
435
+ return null;
436
+ // ES-module bundles have no require: their chunks keep the existing
437
+ // treatment (the Bun factory recognizer, or the ESM interop refusal).
438
+ if (!filePath.endsWith(".cjs") && ts.isExternalModule(sf))
439
+ return null;
440
+ const top = new Map();
441
+ const duplicate = new Set();
442
+ for (const stmt of sf.statements.nodes) {
443
+ const add = (name, node) => {
444
+ if (top.has(name))
445
+ duplicate.add(name);
446
+ else
447
+ top.set(name, { stmt, node });
448
+ };
449
+ if (ts.isFunctionDeclaration(stmt) && stmt.name !== undefined)
450
+ add(stmt.name.text, stmt);
451
+ else if (ts.isVariableStatement(stmt)) {
452
+ for (const d of stmt.declarationList.declarations.nodes) {
453
+ if (ts.isIdentifier(d.name))
454
+ add(d.name.text, d);
455
+ }
456
+ }
457
+ }
458
+ const helperNames = [...top.keys()].filter((n) => helperBase(n) === "__commonJS");
459
+ // Every name a recognizer relies on is written nowhere and declared
460
+ // once at the top level; `Object` itself is never rebound.
461
+ const allRefs = references(sf);
462
+ const written = new Set();
463
+ for (const r of allRefs)
464
+ if (isWritten(r))
465
+ written.add(r.text);
466
+ const declaredAnywhere = declaredNames(sf);
467
+ if (declaredAnywhere.has("Object") || written.has("Object"))
468
+ return { degrade: CHUNK_SHAPE_DEGRADE };
469
+ const stable = (name) => !duplicate.has(name) && !written.has(name);
470
+ // Names whose every reference in the bundle is a callee: `f(...)` or the
471
+ // `(0, f)(...)` form.
472
+ const scopes = new BundleScopes();
473
+ const valueUsed = new Set();
474
+ for (const r of allRefs)
475
+ if (!isCallee(r) && scopes.topLevel(r, sf))
476
+ valueUsed.add(r.text);
477
+ const calledOnly = (name) => !valueUsed.has(name);
478
+ const ownNames = (name) => {
479
+ const t = top.get(name);
480
+ if (t === undefined || !stable(name) || !ts.isVariableDeclaration(t.node))
481
+ return false;
482
+ const init = t.node.initializer;
483
+ return (init !== undefined &&
484
+ helperTokens(getTextOfNode(init)) === helperTokens("Object.getOwnPropertyNames"));
485
+ };
486
+ if (helperNames.length === 0) {
487
+ // The helper's shape under another name: an identifier-minified bundle,
488
+ // whose other interop helpers lost their names as well.
489
+ for (const [name, t] of top) {
490
+ const init = ts.isVariableDeclaration(t.node) ? t.node.initializer : undefined;
491
+ if (init !== undefined && stable(name) && helperForm(init, sf, ownNames) !== null)
492
+ return {
493
+ degrade: "its shipped JS is an identifier-minified bundle whose bundler-interop helpers " +
494
+ "(__commonJS and the rest) have lost the names the recognizers verify",
495
+ };
496
+ }
497
+ return null;
498
+ }
499
+ const forms = new Map();
500
+ for (const name of helperNames) {
501
+ const t = top.get(name);
502
+ const init = ts.isVariableDeclaration(t.node) ? t.node.initializer : undefined;
503
+ const form = init !== undefined && stable(name) ? helperForm(init, sf, ownNames) : null;
504
+ if (form === null)
505
+ return { degrade: CHUNK_SHAPE_DEGRADE };
506
+ forms.set(name, form);
507
+ }
508
+ // The chunk declarations: `var NAME = HELPER(factory);`, one declarator.
509
+ const chunks = new Map();
510
+ const base = filePath.replace(/^.*[\\/]/, "");
511
+ for (const [name, t] of top) {
512
+ if (!ts.isVariableDeclaration(t.node) || t.node.initializer === undefined)
513
+ continue;
514
+ const call = unparen(t.node.initializer);
515
+ if (!ts.isCallExpression(call) || !ts.isIdentifier(call.expression))
516
+ continue;
517
+ const form = forms.get(call.expression.text);
518
+ if (form === undefined)
519
+ continue;
520
+ const stmt = t.stmt;
521
+ if (!ts.isVariableStatement(stmt) ||
522
+ stmt.declarationList.declarations.nodes.length !== 1 ||
523
+ call.arguments.nodes.length !== 1 ||
524
+ !stable(name))
525
+ return { degrade: CHUNK_SHAPE_DEGRADE };
526
+ let factory = call.arguments.nodes[0];
527
+ let key = null;
528
+ if (form === "keyed") {
529
+ if (!ts.isObjectLiteralExpression(factory) || factory.properties.nodes.length !== 1)
530
+ return { degrade: CHUNK_SHAPE_DEGRADE };
531
+ factory = factory.properties.nodes[0];
532
+ if (!ts.isMethodDeclaration(factory) || ts.isComputedPropertyName(factory.name))
533
+ return { degrade: CHUNK_SHAPE_DEGRADE };
534
+ if (ts.isStringLiteral(factory.name))
535
+ key = factory.name.text;
536
+ }
537
+ else {
538
+ factory = unparen(factory);
539
+ if (!ts.isArrowFunction(factory) && !ts.isFunctionExpression(factory))
540
+ return { degrade: CHUNK_SHAPE_DEGRADE };
541
+ }
542
+ const fn = factory;
543
+ if (fn.body === undefined ||
544
+ !ts.isBlock(fn.body) ||
545
+ fn.asteriskToken !== undefined ||
546
+ (fn.modifiers?.nodes.length ?? 0) > 0 ||
547
+ fn.parameters.nodes.length > 2)
548
+ return { degrade: CHUNK_SHAPE_DEGRADE };
549
+ const params = [];
550
+ for (const p of fn.parameters.nodes) {
551
+ if (!ts.isIdentifier(p.name) || p.initializer !== undefined || p.dotDotDotToken)
552
+ return { degrade: CHUNK_SHAPE_DEGRADE };
553
+ params.push(p.name.text);
554
+ }
555
+ const file = `${base}.${name}.cjs`;
556
+ chunks.set(name, {
557
+ name,
558
+ stmt,
559
+ params,
560
+ body: fn.body,
561
+ path: filePath.slice(0, filePath.length - base.length) + file,
562
+ spec: `./${file}`,
563
+ key,
564
+ });
565
+ }
566
+ if (chunks.size === 0)
567
+ return null;
568
+ // Every factory reference is a direct zero-argument call. Calls inside a
569
+ // chunk body belong to that chunk's text, the rest to the bundle's.
570
+ const callEdits = [];
571
+ const callNames = [];
572
+ const unaliased = new Set();
573
+ for (const r of allRefs) {
574
+ const chunk = chunks.get(r.text);
575
+ if (chunk === undefined)
576
+ continue;
577
+ callNames.push(chunk.name);
578
+ const call = r.parent;
579
+ if (call === undefined ||
580
+ !ts.isCallExpression(call) ||
581
+ call.expression !== r ||
582
+ call.arguments.nodes.length !== 0 ||
583
+ call.questionDotToken !== undefined)
584
+ return {
585
+ degrade: `its bundled CommonJS module factory '${r.text}' is used other than as a direct call`,
586
+ };
587
+ const alias = builtinAliasOfChunk(chunk);
588
+ const aliased = alias === null ? null : aliasReplacement(call, alias);
589
+ if (alias !== null && aliased === null)
590
+ unaliased.add(chunk.name);
591
+ const forwarded = forwarderSpec(chunk) ?? (shimOfChunk(chunk) !== null ? shimSpec(chunk) : null);
592
+ callEdits.push({
593
+ start: tokenStartOfNode(call),
594
+ end: call.end,
595
+ text: aliased ?? `require(${JSON.stringify(forwarded ?? chunk.spec)})`,
596
+ });
597
+ }
598
+ // A chunk keeps its module when any call site's use left the alias
599
+ // undetermined; every call site then requires the module.
600
+ if (unaliased.size > 0) {
601
+ for (let i = 0; i < callEdits.length; i++) {
602
+ const name = callNames[i];
603
+ if (!unaliased.has(name))
604
+ continue;
605
+ const chunk = chunks.get(name);
606
+ callEdits[i] = {
607
+ ...callEdits[i],
608
+ text: `require(${JSON.stringify(forwarderSpec(chunk) ?? chunk.spec)})`,
609
+ };
610
+ }
611
+ }
612
+ for (const name of chunks.keys()) {
613
+ if (declaredAnywhere.has(name) && countDeclarations(sf, name) > 1)
614
+ return { degrade: CHUNK_SHAPE_DEGRADE };
615
+ }
616
+ const bundleStrict = strictPrologue(sf.statements.nodes);
617
+ const out = [];
618
+ const bundleEdits = [...callEdits];
619
+ for (const chunk of chunks.values()) {
620
+ if (!unaliased.has(chunk.name) && builtinAliasOfChunk(chunk) !== null) {
621
+ // A chunk of a package that IS a builtin on Node 24 is that builtin.
622
+ bundleEdits.push({ start: tokenStartOfNode(chunk.stmt), end: chunk.stmt.end, text: "" });
623
+ continue;
624
+ }
625
+ const shim = shimOfChunk(chunk);
626
+ if (shim !== null) {
627
+ // A bundled copy of a package scriptc implements itself is the
628
+ // package's shim (package-shims.ts), reached through a forwarder
629
+ // declaration the checker follows.
630
+ out.push({
631
+ path: shimDeclPath(chunk),
632
+ source: bundledShimForwarder(shimDeclPath(chunk), shim),
633
+ });
634
+ bundleEdits.push({ start: tokenStartOfNode(chunk.stmt), end: chunk.stmt.end, text: "" });
635
+ continue;
636
+ }
637
+ if (forwarderSpec(chunk) !== null) {
638
+ // A chunk that only re-exports a builtin module is that module.
639
+ bundleEdits.push({ start: tokenStartOfNode(chunk.stmt), end: chunk.stmt.end, text: "" });
640
+ continue;
641
+ }
642
+ const result = chunkSource(sf, chunk, chunks, top, stable, calledOnly, scopes, callEdits, bundleStrict);
643
+ if (typeof result !== "string")
644
+ return result;
645
+ out.push({ path: chunk.path, source: result });
646
+ bundleEdits.push({ start: tokenStartOfNode(chunk.stmt), end: chunk.stmt.end, text: "" });
647
+ }
648
+ return { text: applyEdits(source, 0, source.length, bundleEdits), chunks: out };
649
+ }
650
+ export function countDeclarations(sf, name) {
651
+ let n = 0;
652
+ ts.walkPreorder(sf, (node) => {
653
+ if ((ts.isVariableDeclaration(node) ||
654
+ ts.isParameter(node) ||
655
+ ts.isBindingElement(node) ||
656
+ ts.isFunctionDeclaration(node) ||
657
+ ts.isFunctionExpression(node) ||
658
+ ts.isClassDeclaration(node) ||
659
+ ts.isClassExpression(node)) &&
660
+ node.name !== undefined &&
661
+ ts.isIdentifier(node.name) &&
662
+ node.name.text === name)
663
+ n++;
664
+ return undefined;
665
+ });
666
+ return n;
667
+ }
668
+ /** Applies non-overlapping edits inside [from, to): replaced spans keep
669
+ * their newlines (blanked text stays line-aligned); edits nested in a
670
+ * blanked span vanish with it. */
671
+ export function applyEdits(source, from, to, edits) {
672
+ const inside = edits
673
+ .filter((e) => e.start >= from && e.end <= to)
674
+ .sort((a, b) => a.start - b.start || b.end - a.end);
675
+ let text = "";
676
+ let at = from;
677
+ for (const e of inside) {
678
+ if (e.start < at)
679
+ continue; // nested in an earlier edit
680
+ text += source.slice(at, e.start);
681
+ const replaced = source.slice(e.start, e.end);
682
+ // A respelled span keeps its line breaks after the replacement.
683
+ text +=
684
+ e.text === "" ? replaced.replace(/[^\r\n]/g, " ") : e.text + replaced.replace(/[^\n]/g, "");
685
+ at = e.end;
686
+ }
687
+ return text + source.slice(at, to);
688
+ }
689
+ /* Use analysis for a require of a builtin-aliased module
690
+ * (npm-static-builtin-aliases.ts). */
691
+ function isAssignmentTarget(node) {
692
+ const p = node.parent;
693
+ return (p !== undefined &&
694
+ ts.isBinaryExpression(p) &&
695
+ p.left === node &&
696
+ p.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
697
+ p.operatorToken.kind <= ts.SyntaxKind.LastAssignment);
698
+ }
699
+ /** The outermost expression the call's value flows through unchanged
700
+ * (parentheses). */
701
+ function valueNode(call) {
702
+ let e = call;
703
+ while (e.parent !== undefined && ts.isParenthesizedExpression(e.parent))
704
+ e = e.parent;
705
+ return e;
706
+ }
707
+ /** How one occurrence of the module value is used: a read of a carried
708
+ * member, any other value use (member reads of other names included, which
709
+ * the class itself answers), or a write that keeps the package. */
710
+ function useOf(node, names) {
711
+ const p = node.parent;
712
+ if (p !== undefined && ts.isPropertyAccessExpression(p) && p.expression === node) {
713
+ if (isAssignmentTarget(p) || p.questionDotToken !== undefined)
714
+ return "invalid";
715
+ return names.has(p.name.text) ? "member" : "value";
716
+ }
717
+ if (p !== undefined && ts.isElementAccessExpression(p) && p.expression === node)
718
+ return "invalid";
719
+ return "value";
720
+ }
721
+ function scopeRoot(node) {
722
+ for (let p = node.parent; p !== undefined; p = p.parent) {
723
+ if (ts.isFunctionLike(p) || ts.isSourceFile(p))
724
+ return p;
725
+ }
726
+ return node;
727
+ }
728
+ /** The text replacing a require of an aliased module, or null when its uses
729
+ * do not determine one or when the file declares the global the text
730
+ * starts with (`process`, `Array`): the text would read that binding
731
+ * instead of the builtin. `require` roots are the require the call site
732
+ * already uses. */
733
+ export function aliasReplacement(call, alias) {
734
+ const text = aliasUseReplacement(call, alias);
735
+ if (text === null)
736
+ return null;
737
+ const root = /^[A-Za-z_$][\w$]*/.exec(text)?.[0];
738
+ if (root !== undefined &&
739
+ root !== "require" &&
740
+ countDeclarations(ts.getSourceFileOfNode(call), root) > 0)
741
+ return null;
742
+ return text;
743
+ }
744
+ function aliasUseReplacement(call, alias) {
745
+ const members = alias.members;
746
+ if (members === undefined)
747
+ return alias.whole;
748
+ const whole = alias.whole;
749
+ const node = valueNode(call);
750
+ const p = node.parent;
751
+ let uses;
752
+ if (p !== undefined && ts.isVariableDeclaration(p) && p.initializer === node) {
753
+ if (ts.isObjectBindingPattern(p.name)) {
754
+ const ok = p.name.elements.nodes.every((el) => {
755
+ if (el.dotDotDotToken !== undefined)
756
+ return false;
757
+ const key = el.propertyName ?? el.name;
758
+ return ts.isIdentifier(key) && members.names.has(key.text);
759
+ });
760
+ return ok ? members.object : null;
761
+ }
762
+ if (!ts.isIdentifier(p.name))
763
+ return null;
764
+ const name = p.name.text;
765
+ const root = scopeRoot(p);
766
+ if (countDeclarations(root, name) !== 1)
767
+ return null;
768
+ const list = p.parent;
769
+ // `var` hoisting: a read before the declaration sees undefined.
770
+ if (list === undefined || !ts.isVariableDeclarationList(list))
771
+ return null;
772
+ uses = [];
773
+ for (const ref of references(root)) {
774
+ if (ref.text !== name)
775
+ continue;
776
+ if (isWritten(ref) || ref.pos < p.end)
777
+ return null;
778
+ uses.push(useOf(ref, members.names));
779
+ }
780
+ }
781
+ else {
782
+ uses = [useOf(node, members.names)];
783
+ }
784
+ if (uses.includes("invalid"))
785
+ return null;
786
+ if (uses.length > 0 && uses.every((u) => u === "member"))
787
+ return members.object;
788
+ if (uses.every((u) => u === "value"))
789
+ return whole;
790
+ return null;
791
+ }
792
+ /** The builtin a chunk's module is on Node 24, when its key names an
793
+ * aliased package at a checked version (builtin-package-aliases.ts). */
794
+ function builtinAliasOfChunk(chunk) {
795
+ if (chunk.key === null)
796
+ return null;
797
+ const pkg = versionedPackageOfKey(chunk.key);
798
+ return pkg === null ? null : builtinAliasOf(pkg.name, pkg.version, pkg.subpath);
799
+ }
800
+ /** The shim module standing in for a chunk that is a bundled copy of a
801
+ * shimmed package's main file at a supported version, or null. */
802
+ function shimOfChunk(chunk) {
803
+ if (chunk.key === null)
804
+ return null;
805
+ const pkg = versionedPackageOfKey(chunk.key);
806
+ return pkg === null ? null : packageShimForBundledFile(pkg.name, pkg.version, pkg.subpath);
807
+ }
808
+ /** The forwarder declaration beside the bundle for a shimmed chunk, and
809
+ * the specifier its call sites require. */
810
+ function shimDeclPath(chunk) {
811
+ return chunk.path.replace(/\.cjs$/, ".shim.d.ts");
812
+ }
813
+ function shimSpec(chunk) {
814
+ return chunk.spec.replace(/\.cjs$/, ".shim");
815
+ }
816
+ /** The builtin module a chunk forwards, or null: a body that is exactly
817
+ * `module.exports = require("<builtin>")` (readable-stream's
818
+ * internal/streams/stream.js). Requiring the chunk is then requiring the
819
+ * builtin itself (same object, and loading a builtin runs no code). */
820
+ function forwarderSpec(chunk) {
821
+ const moduleParam = chunk.params[1];
822
+ if (moduleParam === undefined)
823
+ return null;
824
+ const stmts = chunk.body.statements.nodes.filter((st) => !(ts.isExpressionStatement(st) && ts.isStringLiteral(st.expression)));
825
+ const only = stmts[0];
826
+ if (stmts.length !== 1 || only === undefined || !ts.isExpressionStatement(only))
827
+ return null;
828
+ const e = unparen(only.expression);
829
+ if (!ts.isBinaryExpression(e) ||
830
+ e.operatorToken.kind !== ts.SyntaxKind.EqualsToken ||
831
+ !ts.isPropertyAccessExpression(e.left) ||
832
+ !ts.isIdentifier(e.left.expression) ||
833
+ e.left.expression.text !== moduleParam ||
834
+ e.left.name.text !== "exports")
835
+ return null;
836
+ const call = unparen(e.right);
837
+ if (!ts.isCallExpression(call) ||
838
+ !ts.isIdentifier(call.expression) ||
839
+ call.expression.text !== "require" ||
840
+ call.arguments.nodes.length !== 1 ||
841
+ !ts.isStringLiteral(call.arguments.nodes[0]))
842
+ return null;
843
+ const spec = call.arguments.nodes[0].text;
844
+ return canonicalBuiltinModule(spec) !== null ? spec : null;
845
+ }
846
+ /** How code in a factory body (a chunk or a lazy ES-module initializer)
847
+ * observes the factory's own frame, or null: its receiver, its arguments
848
+ * object, `super`, a meta property, or (when `returns`) a top-level
849
+ * return have no module-scope equivalent. */
850
+ export function factoryFrameUse(body, returns) {
851
+ let frameUse = null;
852
+ /** The innermost frame boundary between a node and the factory body. */
853
+ const frameOf = (n) => {
854
+ let arrow = false;
855
+ for (let p = n.parent; p !== undefined && p !== body; p = p.parent) {
856
+ if (ts.isFunctionDeclaration(p) ||
857
+ ts.isFunctionExpression(p) ||
858
+ ts.isMethodDeclaration(p) ||
859
+ ts.isGetAccessorDeclaration(p) ||
860
+ ts.isSetAccessorDeclaration(p) ||
861
+ ts.isConstructorDeclaration(p) ||
862
+ ts.isClassDeclaration(p) ||
863
+ ts.isClassExpression(p))
864
+ return "function";
865
+ if (ts.isArrowFunction(p))
866
+ arrow = true;
867
+ }
868
+ return arrow ? "arrow" : "factory";
869
+ };
870
+ ts.walkPreorder(body, (n) => {
871
+ if (frameUse !== null)
872
+ return "stop";
873
+ if (n.kind >= ts.SyntaxKind.FirstJSDocNode && n.kind <= ts.SyntaxKind.LastJSDocNode)
874
+ return "skip";
875
+ let use = null;
876
+ if (n.kind === ts.SyntaxKind.ThisKeyword)
877
+ use = "reads its factory's receiver (`this`)";
878
+ else if (n.kind === ts.SyntaxKind.SuperKeyword)
879
+ use = "reads `super` at its top level";
880
+ else if (ts.isIdentifier(n) && n.text === "arguments" && isReference(n))
881
+ use = "reads its factory's arguments object";
882
+ else if (ts.isMetaProperty(n))
883
+ use = "reads a meta property at its top level";
884
+ else if (ts.isReturnStatement(n)) {
885
+ if (returns && frameOf(n) === "factory")
886
+ frameUse = "returns from its top level";
887
+ return undefined;
888
+ }
889
+ if (use !== null && frameOf(n) !== "function")
890
+ frameUse = use;
891
+ return undefined;
892
+ });
893
+ return frameUse;
894
+ }
895
+ /** The virtual module text for one chunk, or a degrade reason. */
896
+ function chunkSource(sf, chunk, chunks, top, stable, calledOnly, scopes, callEdits, bundleStrict) {
897
+ const why = (reason) => ({
898
+ degrade: `its bundled CommonJS module '${chunk.name}' ${reason}`,
899
+ });
900
+ const [exportsParam, moduleParam] = chunk.params;
901
+ const body = chunk.body;
902
+ const local = declaredNames(body);
903
+ for (const p of chunk.params) {
904
+ if (local.has(p) ||
905
+ (p !== "exports" && local.has("exports")) ||
906
+ (p !== "module" && local.has("module")))
907
+ return why("rebinds its module parameters inside its body (an identifier-minified bundle the recognizer cannot respell)");
908
+ }
909
+ const frameUse = factoryFrameUse(body, true);
910
+ if (frameUse !== null)
911
+ return why(frameUse);
912
+ const edits = callEdits.filter((e) => e.start >= body.pos && e.end <= body.end);
913
+ const copied = new Set();
914
+ const copyQueue = [];
915
+ for (const r of references(body)) {
916
+ const name = r.text;
917
+ if (chunks.has(name))
918
+ continue; // a call edit already respells it
919
+ if (name === exportsParam || name === moduleParam) {
920
+ if (name === moduleParam) {
921
+ const p = r.parent;
922
+ if (!ts.isPropertyAccessExpression(p) || p.expression !== r || p.name.text !== "exports")
923
+ return why("uses its module object beyond module.exports");
924
+ }
925
+ const global = name === exportsParam ? "exports" : "module";
926
+ if (name !== global) {
927
+ const p = r.parent;
928
+ edits.push(ts.isShorthandPropertyAssignment(p)
929
+ ? { start: tokenStartOfNode(r), end: r.end, text: `${name}: ${global}` }
930
+ : { start: tokenStartOfNode(r), end: r.end, text: global });
931
+ }
932
+ continue;
933
+ }
934
+ // The factory function itself binds the parameters and `var`s.
935
+ if (scopes.boundWithin(r, body.parent ?? body))
936
+ continue;
937
+ if (name === "exports" || name === "module")
938
+ return why(`reads the bundle's own '${name}' binding`);
939
+ if (name === "__filename")
940
+ return why("reads __filename, which names the bundle file");
941
+ if (top.has(name)) {
942
+ if (!copied.has(name)) {
943
+ copied.add(name);
944
+ copyQueue.push(name);
945
+ }
946
+ }
947
+ }
948
+ // The pure helpers BODY reads, closed over their own top-level reads.
949
+ const header = [];
950
+ for (let i = 0; i < copyQueue.length; i++) {
951
+ const name = copyQueue[i];
952
+ const t = top.get(name);
953
+ const node = t.node;
954
+ const pure = stable(name) &&
955
+ (ts.isFunctionDeclaration(node) ||
956
+ (ts.isVariableDeclaration(node) && copyableInitializer(node.initializer)));
957
+ if (!pure || chunks.has(name))
958
+ return why(`reads the bundle's top-level binding '${name}', which it cannot carry along`);
959
+ // Each chunk gets its own copy, so a function's identity and its
960
+ // properties must stay unobservable: the bundle only ever calls it.
961
+ if (isFunctionValued(node) && (!calledOnly(name) || !selfCalledOnly(node, scopes)))
962
+ return why(`uses the bundle's top-level function '${name}' as a value, which its chunks cannot share`);
963
+ for (const r of references(node)) {
964
+ if (scopes.boundWithin(r, node) || !top.has(r.text) || copied.has(r.text))
965
+ continue;
966
+ copied.add(r.text);
967
+ copyQueue.push(r.text);
968
+ }
969
+ }
970
+ // Declaration order of the bundle: a helper reads only earlier ones.
971
+ const ordered = [...copied].sort((a, b) => tokenStartOfNode(top.get(a).node) - tokenStartOfNode(top.get(b).node));
972
+ for (const name of ordered) {
973
+ const node = top.get(name).node;
974
+ header.push(ts.isFunctionDeclaration(node) ? getTextOfNode(node) : `var ${getTextOfNode(node)};`);
975
+ }
976
+ const bodyStrict = strictPrologue(body.statements.nodes);
977
+ const text = applyEdits(sf.text, tokenStartOfNode(body) + 1, body.end - 1, edits);
978
+ const prologue = bundleStrict || bodyStrict ? '"use strict";\n' : "";
979
+ return prologue + (header.length > 0 ? header.join("\n") + "\n" : "") + text + "\n";
980
+ }
981
+ //# sourceMappingURL=npm-static-bundled-chunks.js.map