@scriptc/compiler 0.2.4 → 0.2.6

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 (1201) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +972 -245
  2. package/ambient/scriptc-overrides.d.ts +5 -1
  3. package/ambient/scriptc.d.ts +22 -2
  4. package/dist/backend/build-cache.d.ts +4 -0
  5. package/dist/backend/build-cache.js +16 -2
  6. package/dist/backend/build-cache.js.map +1 -1
  7. package/dist/backend/cycle-analysis.js +17 -5
  8. package/dist/backend/cycle-analysis.js.map +1 -1
  9. package/dist/backend/cycle-analysis.test.js +50 -11
  10. package/dist/backend/cycle-analysis.test.js.map +1 -1
  11. package/dist/backend/debug-symbols.js.map +1 -1
  12. package/dist/backend/executable-features.js +3 -1
  13. package/dist/backend/executable-features.js.map +1 -1
  14. package/dist/backend/external-c.d.ts +13 -6
  15. package/dist/backend/external-c.js +15 -3
  16. package/dist/backend/external-c.js.map +1 -1
  17. package/dist/backend/ffi-callbacks.js +6 -9
  18. package/dist/backend/ffi-callbacks.js.map +1 -1
  19. package/dist/backend/library-identity-markers.js.map +1 -1
  20. package/dist/backend/library-pack.d.ts +1 -1
  21. package/dist/backend/library-pack.js +81 -24
  22. package/dist/backend/library-pack.js.map +1 -1
  23. package/dist/backend/link-plan-core.d.ts +2 -0
  24. package/dist/backend/link-plan-core.js +10 -2
  25. package/dist/backend/link-plan-core.js.map +1 -1
  26. package/dist/backend/link-plan.d.ts +2 -1
  27. package/dist/backend/link-plan.js +7 -5
  28. package/dist/backend/link-plan.js.map +1 -1
  29. package/dist/backend/linker.d.ts +1 -1
  30. package/dist/backend/linker.js +42 -23
  31. package/dist/backend/linker.js.map +1 -1
  32. package/dist/backend/literals.js +5 -4
  33. package/dist/backend/literals.js.map +1 -1
  34. package/dist/backend/literals.test.js +30 -5
  35. package/dist/backend/literals.test.js.map +1 -1
  36. package/dist/backend/llvm/blocks.test.js +5 -2
  37. package/dist/backend/llvm/blocks.test.js.map +1 -1
  38. package/dist/backend/llvm/borrowed-inputs.js.map +1 -1
  39. package/dist/backend/llvm/borrowed-receivers.js +43 -19
  40. package/dist/backend/llvm/borrowed-receivers.js.map +1 -1
  41. package/dist/backend/llvm/byte-numbers.js +38 -5
  42. package/dist/backend/llvm/byte-numbers.js.map +1 -1
  43. package/dist/backend/llvm/byte-windows.d.ts +31 -0
  44. package/dist/backend/llvm/byte-windows.js +334 -0
  45. package/dist/backend/llvm/byte-windows.js.map +1 -0
  46. package/dist/backend/llvm/byte-windows.test.d.ts +1 -0
  47. package/dist/backend/llvm/byte-windows.test.js +244 -0
  48. package/dist/backend/llvm/byte-windows.test.js.map +1 -0
  49. package/dist/backend/llvm/bytes-bounds.js +73 -22
  50. package/dist/backend/llvm/bytes-bounds.js.map +1 -1
  51. package/dist/backend/llvm/call-lifetimes.d.ts +5 -2
  52. package/dist/backend/llvm/call-lifetimes.js +72 -19
  53. package/dist/backend/llvm/call-lifetimes.js.map +1 -1
  54. package/dist/backend/llvm/call-lifetimes.test.js +159 -28
  55. package/dist/backend/llvm/call-lifetimes.test.js.map +1 -1
  56. package/dist/backend/llvm/checked-value-lifetimes.d.ts +4 -0
  57. package/dist/backend/llvm/checked-value-lifetimes.js +14 -4
  58. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  59. package/dist/backend/llvm/classes.d.ts +14 -1
  60. package/dist/backend/llvm/classes.js +94 -19
  61. package/dist/backend/llvm/classes.js.map +1 -1
  62. package/dist/backend/llvm/classes.test.d.ts +1 -0
  63. package/dist/backend/llvm/classes.test.js +99 -0
  64. package/dist/backend/llvm/classes.test.js.map +1 -0
  65. package/dist/backend/llvm/common.js +4 -1
  66. package/dist/backend/llvm/common.js.map +1 -1
  67. package/dist/backend/llvm/constant-callbacks.d.ts +11 -0
  68. package/dist/backend/llvm/constant-callbacks.js +213 -0
  69. package/dist/backend/llvm/constant-callbacks.js.map +1 -0
  70. package/dist/backend/llvm/constant-callbacks.test.d.ts +1 -0
  71. package/dist/backend/llvm/constant-callbacks.test.js +124 -0
  72. package/dist/backend/llvm/constant-callbacks.test.js.map +1 -0
  73. package/dist/backend/llvm/counted-loops.js +10 -3
  74. package/dist/backend/llvm/counted-loops.js.map +1 -1
  75. package/dist/backend/llvm/debug-info.js +33 -13
  76. package/dist/backend/llvm/debug-info.js.map +1 -1
  77. package/dist/backend/llvm/debug-info.test.js +28 -6
  78. package/dist/backend/llvm/debug-info.test.js.map +1 -1
  79. package/dist/backend/llvm/dyn.d.ts +1 -1
  80. package/dist/backend/llvm/dyn.js +75 -56
  81. package/dist/backend/llvm/dyn.js.map +1 -1
  82. package/dist/backend/llvm/emitter.d.ts +28 -3
  83. package/dist/backend/llvm/emitter.js +506 -145
  84. package/dist/backend/llvm/emitter.js.map +1 -1
  85. package/dist/backend/llvm/emitter.test.js +247 -50
  86. package/dist/backend/llvm/emitter.test.js.map +1 -1
  87. package/dist/backend/llvm/expr-async.js +25 -6
  88. package/dist/backend/llvm/expr-async.js.map +1 -1
  89. package/dist/backend/llvm/expr-bytes.js +24 -4
  90. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  91. package/dist/backend/llvm/expr-callbacks.js +10 -4
  92. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  93. package/dist/backend/llvm/expr-calls.js +110 -31
  94. package/dist/backend/llvm/expr-calls.js.map +1 -1
  95. package/dist/backend/llvm/expr-containers.d.ts +2 -0
  96. package/dist/backend/llvm/expr-containers.js +112 -41
  97. package/dist/backend/llvm/expr-containers.js.map +1 -1
  98. package/dist/backend/llvm/expr-control.js +1 -3
  99. package/dist/backend/llvm/expr-control.js.map +1 -1
  100. package/dist/backend/llvm/expr-dispatch.js +3 -1
  101. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  102. package/dist/backend/llvm/expr-dynamic.js +55 -7
  103. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  104. package/dist/backend/llvm/expr-island.js +26 -6
  105. package/dist/backend/llvm/expr-island.js.map +1 -1
  106. package/dist/backend/llvm/expr-primitives.js +95 -19
  107. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  108. package/dist/backend/llvm/expr-primitives.test.js +44 -2
  109. package/dist/backend/llvm/expr-primitives.test.js.map +1 -1
  110. package/dist/backend/llvm/expr-records.js +10 -9
  111. package/dist/backend/llvm/expr-records.js.map +1 -1
  112. package/dist/backend/llvm/expr-stream-bridges.js +44 -26
  113. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  114. package/dist/backend/llvm/expr-stream-bridges.test.js +51 -14
  115. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -1
  116. package/dist/backend/llvm/expr-stream-callbacks.js +34 -14
  117. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  118. package/dist/backend/llvm/integer-remainder.d.ts +7 -0
  119. package/dist/backend/llvm/integer-remainder.js +26 -0
  120. package/dist/backend/llvm/integer-remainder.js.map +1 -0
  121. package/dist/backend/llvm/integer-values.js +15 -4
  122. package/dist/backend/llvm/integer-values.js.map +1 -1
  123. package/dist/backend/llvm/integer-views.js +23 -7
  124. package/dist/backend/llvm/integer-views.js.map +1 -1
  125. package/dist/backend/llvm/integer-views.test.js +42 -7
  126. package/dist/backend/llvm/integer-views.test.js.map +1 -1
  127. package/dist/backend/llvm/layouts.js +1 -1
  128. package/dist/backend/llvm/layouts.js.map +1 -1
  129. package/dist/backend/llvm/lib-abi.js +20 -4
  130. package/dist/backend/llvm/lib-abi.js.map +1 -1
  131. package/dist/backend/llvm/lib-connect.js +7 -1
  132. package/dist/backend/llvm/lib-connect.js.map +1 -1
  133. package/dist/backend/llvm/lib-datagram.js +35 -10
  134. package/dist/backend/llvm/lib-datagram.js.map +1 -1
  135. package/dist/backend/llvm/lib-dispatch.js +42 -38
  136. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  137. package/dist/backend/llvm/lib-filesystem.js +33 -18
  138. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  139. package/dist/backend/llvm/lib-http2.js +60 -15
  140. package/dist/backend/llvm/lib-http2.js.map +1 -1
  141. package/dist/backend/llvm/lib-lookup.js +12 -5
  142. package/dist/backend/llvm/lib-lookup.js.map +1 -1
  143. package/dist/backend/llvm/lib-network.js +97 -31
  144. package/dist/backend/llvm/lib-network.js.map +1 -1
  145. package/dist/backend/llvm/lib-process.js +57 -14
  146. package/dist/backend/llvm/lib-process.js.map +1 -1
  147. package/dist/backend/llvm/lib-shared.js +122 -31
  148. package/dist/backend/llvm/lib-shared.js.map +1 -1
  149. package/dist/backend/llvm/lib-stream.js +33 -14
  150. package/dist/backend/llvm/lib-stream.js.map +1 -1
  151. package/dist/backend/llvm/lib-test.js +21 -7
  152. package/dist/backend/llvm/lib-test.js.map +1 -1
  153. package/dist/backend/llvm/lib-tls.js +69 -20
  154. package/dist/backend/llvm/lib-tls.js.map +1 -1
  155. package/dist/backend/llvm/local-array-reads.d.ts +9 -2
  156. package/dist/backend/llvm/local-array-reads.js +176 -89
  157. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  158. package/dist/backend/llvm/local-array-reads.test.js +394 -62
  159. package/dist/backend/llvm/local-array-reads.test.js.map +1 -1
  160. package/dist/backend/llvm/local-union-storage.d.ts +25 -0
  161. package/dist/backend/llvm/local-union-storage.js +109 -0
  162. package/dist/backend/llvm/local-union-storage.js.map +1 -0
  163. package/dist/backend/llvm/local-union-storage.test.d.ts +1 -0
  164. package/dist/backend/llvm/local-union-storage.test.js +210 -0
  165. package/dist/backend/llvm/local-union-storage.test.js.map +1 -0
  166. package/dist/backend/llvm/loop-array-borrows.d.ts +11 -0
  167. package/dist/backend/llvm/loop-array-borrows.js +70 -0
  168. package/dist/backend/llvm/loop-array-borrows.js.map +1 -0
  169. package/dist/backend/llvm/loop-array-borrows.test.d.ts +1 -0
  170. package/dist/backend/llvm/loop-array-borrows.test.js +145 -0
  171. package/dist/backend/llvm/loop-array-borrows.test.js.map +1 -0
  172. package/dist/backend/llvm/map-read-lifetimes.d.ts +11 -2
  173. package/dist/backend/llvm/map-read-lifetimes.js +64 -19
  174. package/dist/backend/llvm/map-read-lifetimes.js.map +1 -1
  175. package/dist/backend/llvm/map-read-lifetimes.test.js +89 -17
  176. package/dist/backend/llvm/map-read-lifetimes.test.js.map +1 -1
  177. package/dist/backend/llvm/reference-effects.d.ts +5 -3
  178. package/dist/backend/llvm/reference-effects.js +74 -36
  179. package/dist/backend/llvm/reference-effects.js.map +1 -1
  180. package/dist/backend/llvm/reference-effects.test.js +92 -9
  181. package/dist/backend/llvm/reference-effects.test.js.map +1 -1
  182. package/dist/backend/llvm/shapes.d.ts +4 -1
  183. package/dist/backend/llvm/shapes.js +82 -24
  184. package/dist/backend/llvm/shapes.js.map +1 -1
  185. package/dist/backend/llvm/shapes.test.js +3 -1
  186. package/dist/backend/llvm/shapes.test.js.map +1 -1
  187. package/dist/backend/llvm/split-loops.d.ts +48 -0
  188. package/dist/backend/llvm/split-loops.js +183 -0
  189. package/dist/backend/llvm/split-loops.js.map +1 -0
  190. package/dist/backend/llvm/split.js +4 -11
  191. package/dist/backend/llvm/split.js.map +1 -1
  192. package/dist/backend/llvm/split.test.js +80 -8
  193. package/dist/backend/llvm/split.test.js.map +1 -1
  194. package/dist/backend/llvm/stack-callbacks.d.ts +14 -0
  195. package/dist/backend/llvm/stack-callbacks.js +73 -0
  196. package/dist/backend/llvm/stack-callbacks.js.map +1 -0
  197. package/dist/backend/llvm/stack-captures.d.ts +25 -0
  198. package/dist/backend/llvm/stack-captures.js +150 -0
  199. package/dist/backend/llvm/stack-captures.js.map +1 -0
  200. package/dist/backend/llvm/stack-unions.js +14 -5
  201. package/dist/backend/llvm/stack-unions.js.map +1 -1
  202. package/dist/backend/llvm/stack-unions.test.js +151 -32
  203. package/dist/backend/llvm/stack-unions.test.js.map +1 -1
  204. package/dist/backend/llvm/string-construction.js.map +1 -1
  205. package/dist/backend/llvm/string-construction.test.js +32 -7
  206. package/dist/backend/llvm/string-construction.test.js.map +1 -1
  207. package/dist/backend/llvm/string-lifetimes.js +14 -8
  208. package/dist/backend/llvm/string-lifetimes.js.map +1 -1
  209. package/dist/backend/llvm/string-lifetimes.test.js +119 -29
  210. package/dist/backend/llvm/string-lifetimes.test.js.map +1 -1
  211. package/dist/backend/llvm/string-slices.d.ts +20 -0
  212. package/dist/backend/llvm/string-slices.js +87 -0
  213. package/dist/backend/llvm/string-slices.js.map +1 -0
  214. package/dist/backend/llvm/string-slices.test.d.ts +1 -0
  215. package/dist/backend/llvm/string-slices.test.js +98 -0
  216. package/dist/backend/llvm/string-slices.test.js.map +1 -0
  217. package/dist/backend/llvm/switch-dispatch.d.ts +9 -0
  218. package/dist/backend/llvm/switch-dispatch.js +114 -0
  219. package/dist/backend/llvm/switch-dispatch.js.map +1 -0
  220. package/dist/backend/llvm/switch-dispatch.test.d.ts +1 -0
  221. package/dist/backend/llvm/switch-dispatch.test.js +83 -0
  222. package/dist/backend/llvm/switch-dispatch.test.js.map +1 -0
  223. package/dist/backend/llvm/unsupported.js.map +1 -1
  224. package/dist/backend/llvm/walkers.d.ts +4 -14
  225. package/dist/backend/llvm/walkers.js +58 -313
  226. package/dist/backend/llvm/walkers.js.map +1 -1
  227. package/dist/backend/mangle.js +9 -3
  228. package/dist/backend/mangle.js.map +1 -1
  229. package/dist/backend/may-throw.js +18 -8
  230. package/dist/backend/may-throw.js.map +1 -1
  231. package/dist/backend/may-throw.test.js +119 -23
  232. package/dist/backend/may-throw.test.js.map +1 -1
  233. package/dist/backend/native/artifact-stamps.d.ts +39 -0
  234. package/dist/backend/native/artifact-stamps.js +371 -0
  235. package/dist/backend/native/artifact-stamps.js.map +1 -0
  236. package/dist/backend/native/cache-warm.d.ts +24 -0
  237. package/dist/backend/native/cache-warm.js +80 -0
  238. package/dist/backend/native/cache-warm.js.map +1 -0
  239. package/dist/backend/native/compiler-fingerprint.d.ts +19 -0
  240. package/dist/backend/native/compiler-fingerprint.js +357 -0
  241. package/dist/backend/native/compiler-fingerprint.js.map +1 -0
  242. package/dist/backend/native/contracts.d.ts +316 -0
  243. package/dist/backend/native/contracts.js +2 -0
  244. package/dist/backend/native/contracts.js.map +1 -0
  245. package/dist/backend/native/dependency-files.d.ts +5 -0
  246. package/dist/backend/native/dependency-files.js +83 -0
  247. package/dist/backend/native/dependency-files.js.map +1 -0
  248. package/dist/backend/native/driver.d.ts +50 -0
  249. package/dist/backend/native/driver.js +294 -0
  250. package/dist/backend/native/driver.js.map +1 -0
  251. package/dist/backend/native/executable.d.ts +18 -0
  252. package/dist/backend/native/executable.js +1275 -0
  253. package/dist/backend/native/executable.js.map +1 -0
  254. package/dist/backend/native/library.d.ts +2 -0
  255. package/dist/backend/native/library.js +614 -0
  256. package/dist/backend/native/library.js.map +1 -0
  257. package/dist/backend/native/linker-fingerprint.d.ts +8 -0
  258. package/dist/backend/native/linker-fingerprint.js +174 -0
  259. package/dist/backend/native/linker-fingerprint.js.map +1 -0
  260. package/dist/backend/native/object-merge.d.ts +2 -0
  261. package/dist/backend/native/object-merge.js +154 -0
  262. package/dist/backend/native/object-merge.js.map +1 -0
  263. package/dist/backend/native/process.d.ts +17 -0
  264. package/dist/backend/native/process.js +42 -0
  265. package/dist/backend/native/process.js.map +1 -0
  266. package/dist/backend/native/program-shards.d.ts +21 -0
  267. package/dist/backend/native/program-shards.js +99 -0
  268. package/dist/backend/native/program-shards.js.map +1 -0
  269. package/dist/backend/native/runtime-inputs.d.ts +12 -0
  270. package/dist/backend/native/runtime-inputs.js +165 -0
  271. package/dist/backend/native/runtime-inputs.js.map +1 -0
  272. package/dist/backend/native/runtime-inputs.test.d.ts +1 -0
  273. package/dist/backend/native/runtime-inputs.test.js +64 -0
  274. package/dist/backend/native/runtime-inputs.test.js.map +1 -0
  275. package/dist/backend/native/runtime-objects.d.ts +16 -0
  276. package/dist/backend/native/runtime-objects.js +122 -0
  277. package/dist/backend/native/runtime-objects.js.map +1 -0
  278. package/dist/backend/native/session.d.ts +12 -0
  279. package/dist/backend/native/session.js +31 -0
  280. package/dist/backend/native/session.js.map +1 -0
  281. package/dist/backend/native/tool-identity.d.ts +37 -0
  282. package/dist/backend/native/tool-identity.js +310 -0
  283. package/dist/backend/native/tool-identity.js.map +1 -0
  284. package/dist/backend/native/trace-paths.d.ts +12 -0
  285. package/dist/backend/native/trace-paths.js +73 -0
  286. package/dist/backend/native/trace-paths.js.map +1 -0
  287. package/dist/backend/native/vendor.d.ts +1 -0
  288. package/dist/backend/native/vendor.js +12 -0
  289. package/dist/backend/native/vendor.js.map +1 -0
  290. package/dist/backend/native-codegen-core.d.ts +6 -0
  291. package/dist/backend/native-codegen-core.js +23 -1
  292. package/dist/backend/native-codegen-core.js.map +1 -1
  293. package/dist/backend/native-codegen.d.ts +5 -1
  294. package/dist/backend/native-codegen.js +52 -25
  295. package/dist/backend/native-codegen.js.map +1 -1
  296. package/dist/backend/native-codegen.test.js +59 -11
  297. package/dist/backend/native-codegen.test.js.map +1 -1
  298. package/dist/backend/native-link-info-core.d.ts +1 -0
  299. package/dist/backend/native-link-info-core.js +9 -5
  300. package/dist/backend/native-link-info-core.js.map +1 -1
  301. package/dist/backend/native-link-info.js +14 -5
  302. package/dist/backend/native-link-info.js.map +1 -1
  303. package/dist/backend/native-link-info.test.js +58 -13
  304. package/dist/backend/native-link-info.test.js.map +1 -1
  305. package/dist/backend/native-toolchain.d.ts +17 -450
  306. package/dist/backend/native-toolchain.js +17 -3971
  307. package/dist/backend/native-toolchain.js.map +1 -1
  308. package/dist/backend/native-toolchain.test.js +103 -72
  309. package/dist/backend/native-toolchain.test.js.map +1 -1
  310. package/dist/backend/native-tools.d.ts +3 -1
  311. package/dist/backend/native-tools.js +30 -9
  312. package/dist/backend/native-tools.js.map +1 -1
  313. package/dist/backend/object-localize.js +17 -14
  314. package/dist/backend/object-localize.js.map +1 -1
  315. package/dist/backend/object-localize.test.js +59 -12
  316. package/dist/backend/object-localize.test.js.map +1 -1
  317. package/dist/backend/runtime-abi.d.ts +2 -2
  318. package/dist/backend/runtime-abi.js +2 -2
  319. package/dist/backend/runtime-pack-core.d.ts +1 -0
  320. package/dist/backend/runtime-pack-core.js +104 -50
  321. package/dist/backend/runtime-pack-core.js.map +1 -1
  322. package/dist/backend/runtime-pack-native.js +5 -3
  323. package/dist/backend/runtime-pack-native.js.map +1 -1
  324. package/dist/backend/runtime-pack-targets.test.js +126 -17
  325. package/dist/backend/runtime-pack-targets.test.js.map +1 -1
  326. package/dist/backend/runtime-pack.d.ts +1 -1
  327. package/dist/backend/runtime-pack.js +11 -12
  328. package/dist/backend/runtime-pack.js.map +1 -1
  329. package/dist/backend/runtime-pack.test.js +51 -25
  330. package/dist/backend/runtime-pack.test.js.map +1 -1
  331. package/dist/backend/source-locations.js.map +1 -1
  332. package/dist/backend/source-locations.test.js +7 -2
  333. package/dist/backend/source-locations.test.js.map +1 -1
  334. package/dist/backend/target-diagnostics.js +44 -14
  335. package/dist/backend/target-diagnostics.js.map +1 -1
  336. package/dist/backend/target-diagnostics.test.js +93 -20
  337. package/dist/backend/target-diagnostics.test.js.map +1 -1
  338. package/dist/backend/targets.js +230 -86
  339. package/dist/backend/targets.js.map +1 -1
  340. package/dist/backend/targets.test.js +32 -18
  341. package/dist/backend/targets.test.js.map +1 -1
  342. package/dist/backend/toolchain-environment.js +5 -1
  343. package/dist/backend/toolchain-environment.js.map +1 -1
  344. package/dist/backend/vendor-archives.d.ts +2 -2
  345. package/dist/backend/vendor-archives.js +84 -35
  346. package/dist/backend/vendor-archives.js.map +1 -1
  347. package/dist/backend/vendor-inputs.js +13 -1
  348. package/dist/backend/vendor-inputs.js.map +1 -1
  349. package/dist/backend/warm-cache.d.ts +1 -1
  350. package/dist/backend/warm-cache.js +33 -9
  351. package/dist/backend/warm-cache.js.map +1 -1
  352. package/dist/cli/command.js +39 -9
  353. package/dist/cli/command.js.map +1 -1
  354. package/dist/cli/output-options.js +14 -4
  355. package/dist/cli/output-options.js.map +1 -1
  356. package/dist/cli/paths.js.map +1 -1
  357. package/dist/cli/wasi-runner.js.map +1 -1
  358. package/dist/compat/fetch-profile.js +36 -35
  359. package/dist/compat/fetch-profile.js.map +1 -1
  360. package/dist/coverage/report.js +16 -17
  361. package/dist/coverage/report.js.map +1 -1
  362. package/dist/coverage/surface-manifest.js +112 -26
  363. package/dist/coverage/surface-manifest.js.map +1 -1
  364. package/dist/diagnostics/diagnostic.js +55 -16
  365. package/dist/diagnostics/diagnostic.js.map +1 -1
  366. package/dist/executable/executable-cache.d.ts +2 -1
  367. package/dist/executable/executable-cache.js +79 -48
  368. package/dist/executable/executable-cache.js.map +1 -1
  369. package/dist/executable/executable-cache.test.js +90 -26
  370. package/dist/executable/executable-cache.test.js.map +1 -1
  371. package/dist/executable/prepare.js +2 -2
  372. package/dist/executable/prepare.js.map +1 -1
  373. package/dist/ffi/ffi-manifest.js +78 -20
  374. package/dist/ffi/ffi-manifest.js.map +1 -1
  375. package/dist/ffi/ffi-manifest.test.js +96 -16
  376. package/dist/ffi/ffi-manifest.test.js.map +1 -1
  377. package/dist/format-integer.js.map +1 -1
  378. package/dist/frontend/analysis.js +12 -2
  379. package/dist/frontend/analysis.js.map +1 -1
  380. package/dist/frontend/arguments-usage.js.map +1 -1
  381. package/dist/frontend/binding-source.js +9 -3
  382. package/dist/frontend/binding-source.js.map +1 -1
  383. package/dist/frontend/builtin-modules.js +46 -2
  384. package/dist/frontend/builtin-modules.js.map +1 -1
  385. package/dist/frontend/cjs-resolve.js +40 -17
  386. package/dist/frontend/cjs-resolve.js.map +1 -1
  387. package/dist/frontend/cjs-syntax.js +31 -10
  388. package/dist/frontend/cjs-syntax.js.map +1 -1
  389. package/dist/frontend/comptime-node.test.js +10 -11
  390. package/dist/frontend/comptime-node.test.js.map +1 -1
  391. package/dist/frontend/dts-paths.js +7 -3
  392. package/dist/frontend/dts-paths.js.map +1 -1
  393. package/dist/frontend/fork-target.d.ts +5 -0
  394. package/dist/frontend/fork-target.js +55 -18
  395. package/dist/frontend/fork-target.js.map +1 -1
  396. package/dist/frontend/fork-target.test.d.ts +1 -0
  397. package/dist/frontend/fork-target.test.js +59 -0
  398. package/dist/frontend/fork-target.test.js.map +1 -0
  399. package/dist/frontend/function-completion.js +11 -6
  400. package/dist/frontend/function-completion.js.map +1 -1
  401. package/dist/frontend/helper-tokens.js +53 -6
  402. package/dist/frontend/helper-tokens.js.map +1 -1
  403. package/dist/frontend/helper-tokens.test.js +18 -2
  404. package/dist/frontend/helper-tokens.test.js.map +1 -1
  405. package/dist/frontend/inferred-js-diagnostics.js +32 -12
  406. package/dist/frontend/inferred-js-diagnostics.js.map +1 -1
  407. package/dist/frontend/inferred-js-diagnostics.test.js +11 -15
  408. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  409. package/dist/frontend/input-tracker.js +11 -11
  410. package/dist/frontend/input-tracker.js.map +1 -1
  411. package/dist/frontend/input-tracker.test.js +4 -1
  412. package/dist/frontend/input-tracker.test.js.map +1 -1
  413. package/dist/frontend/lib-contract.js +38 -9
  414. package/dist/frontend/lib-contract.js.map +1 -1
  415. package/dist/frontend/literal-values.js.map +1 -1
  416. package/dist/frontend/literal-values.test.js +28 -8
  417. package/dist/frontend/literal-values.test.js.map +1 -1
  418. package/dist/frontend/lowering/abstract-equality.js +53 -10
  419. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  420. package/dist/frontend/lowering/array-indexed-mutation.d.ts +1 -1
  421. package/dist/frontend/lowering/array-indexed-mutation.js +108 -106
  422. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  423. package/dist/frontend/lowering/array-values.js +37 -14
  424. package/dist/frontend/lowering/array-values.js.map +1 -1
  425. package/dist/frontend/lowering/binding-analysis.d.ts +50 -0
  426. package/dist/frontend/lowering/binding-analysis.js +376 -0
  427. package/dist/frontend/lowering/binding-analysis.js.map +1 -0
  428. package/dist/frontend/lowering/builtin-calls.d.ts +9 -0
  429. package/dist/frontend/lowering/builtin-calls.js +60 -0
  430. package/dist/frontend/lowering/builtin-calls.js.map +1 -0
  431. package/dist/frontend/lowering/builtins/arguments.d.ts +43 -0
  432. package/dist/frontend/lowering/builtins/arguments.js +247 -0
  433. package/dist/frontend/lowering/builtins/arguments.js.map +1 -0
  434. package/dist/frontend/lowering/builtins/async-context.d.ts +52 -0
  435. package/dist/frontend/lowering/builtins/async-context.js +436 -0
  436. package/dist/frontend/lowering/builtins/async-context.js.map +1 -0
  437. package/dist/frontend/lowering/builtins/atomics.d.ts +6 -0
  438. package/dist/frontend/lowering/builtins/atomics.js +82 -0
  439. package/dist/frontend/lowering/builtins/atomics.js.map +1 -0
  440. package/dist/frontend/lowering/builtins/callable-aliases.d.ts +13 -0
  441. package/dist/frontend/lowering/builtins/callable-aliases.js +87 -0
  442. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -0
  443. package/dist/frontend/lowering/builtins/child-process-async.d.ts +18 -0
  444. package/dist/frontend/lowering/builtins/child-process-async.js +245 -0
  445. package/dist/frontend/lowering/builtins/child-process-async.js.map +1 -0
  446. package/dist/frontend/lowering/builtins/child-process-methods.d.ts +21 -0
  447. package/dist/frontend/lowering/builtins/child-process-methods.js +362 -0
  448. package/dist/frontend/lowering/builtins/child-process-methods.js.map +1 -0
  449. package/dist/frontend/lowering/builtins/child-process-sync.d.ts +4 -0
  450. package/dist/frontend/lowering/builtins/child-process-sync.js +639 -0
  451. package/dist/frontend/lowering/builtins/child-process-sync.js.map +1 -0
  452. package/dist/frontend/lowering/builtins/child-process.d.ts +55 -0
  453. package/dist/frontend/lowering/builtins/child-process.js +669 -0
  454. package/dist/frontend/lowering/builtins/child-process.js.map +1 -0
  455. package/dist/frontend/lowering/builtins/compression.d.ts +7 -0
  456. package/dist/frontend/lowering/builtins/compression.js +115 -0
  457. package/dist/frontend/lowering/builtins/compression.js.map +1 -0
  458. package/dist/frontend/lowering/builtins/console.d.ts +10 -0
  459. package/dist/frontend/lowering/builtins/console.js +38 -0
  460. package/dist/frontend/lowering/builtins/console.js.map +1 -0
  461. package/dist/frontend/lowering/builtins/constants.d.ts +24 -0
  462. package/dist/frontend/lowering/builtins/constants.js +141 -0
  463. package/dist/frontend/lowering/builtins/constants.js.map +1 -0
  464. package/dist/frontend/lowering/builtins/crypto.d.ts +22 -0
  465. package/dist/frontend/lowering/builtins/crypto.js +517 -0
  466. package/dist/frontend/lowering/builtins/crypto.js.map +1 -0
  467. package/dist/frontend/lowering/builtins/dates.d.ts +7 -0
  468. package/dist/frontend/lowering/builtins/dates.js +101 -0
  469. package/dist/frontend/lowering/builtins/dates.js.map +1 -0
  470. package/dist/frontend/lowering/builtins/environment.d.ts +34 -0
  471. package/dist/frontend/lowering/builtins/environment.js +95 -0
  472. package/dist/frontend/lowering/builtins/environment.js.map +1 -0
  473. package/dist/frontend/lowering/builtins/errors.d.ts +14 -0
  474. package/dist/frontend/lowering/builtins/errors.js +83 -0
  475. package/dist/frontend/lowering/builtins/errors.js.map +1 -0
  476. package/dist/frontend/lowering/builtins/filesystem-calls.d.ts +35 -0
  477. package/dist/frontend/lowering/builtins/filesystem-calls.js +725 -0
  478. package/dist/frontend/lowering/builtins/filesystem-calls.js.map +1 -0
  479. package/dist/frontend/lowering/builtins/filesystem.d.ts +108 -0
  480. package/dist/frontend/lowering/builtins/filesystem.js +1061 -0
  481. package/dist/frontend/lowering/builtins/filesystem.js.map +1 -0
  482. package/dist/frontend/lowering/builtins/ipc.d.ts +8 -0
  483. package/dist/frontend/lowering/builtins/ipc.js +76 -0
  484. package/dist/frontend/lowering/builtins/ipc.js.map +1 -0
  485. package/dist/frontend/lowering/builtins/json.d.ts +12 -0
  486. package/dist/frontend/lowering/builtins/json.js +387 -0
  487. package/dist/frontend/lowering/builtins/json.js.map +1 -0
  488. package/dist/frontend/lowering/builtins/module-bindings.d.ts +85 -0
  489. package/dist/frontend/lowering/builtins/module-bindings.js +346 -0
  490. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -0
  491. package/dist/frontend/lowering/builtins/module-calls.d.ts +8 -0
  492. package/dist/frontend/lowering/builtins/module-calls.js +308 -0
  493. package/dist/frontend/lowering/builtins/module-calls.js.map +1 -0
  494. package/dist/frontend/lowering/builtins/module-resolution.d.ts +38 -0
  495. package/dist/frontend/lowering/builtins/module-resolution.js +344 -0
  496. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -0
  497. package/dist/frontend/lowering/builtins/numbers.d.ts +15 -0
  498. package/dist/frontend/lowering/builtins/numbers.js +124 -0
  499. package/dist/frontend/lowering/builtins/numbers.js.map +1 -0
  500. package/dist/frontend/lowering/builtins/operating-system.d.ts +13 -0
  501. package/dist/frontend/lowering/builtins/operating-system.js +148 -0
  502. package/dist/frontend/lowering/builtins/operating-system.js.map +1 -0
  503. package/dist/frontend/lowering/builtins/performance.d.ts +13 -0
  504. package/dist/frontend/lowering/builtins/performance.js +100 -0
  505. package/dist/frontend/lowering/builtins/performance.js.map +1 -0
  506. package/dist/frontend/lowering/builtins/process.d.ts +50 -0
  507. package/dist/frontend/lowering/builtins/process.js +1138 -0
  508. package/dist/frontend/lowering/builtins/process.js.map +1 -0
  509. package/dist/frontend/lowering/builtins/promises.d.ts +14 -0
  510. package/dist/frontend/lowering/builtins/promises.js +356 -0
  511. package/dist/frontend/lowering/builtins/promises.js.map +1 -0
  512. package/dist/frontend/lowering/builtins/properties.d.ts +11 -0
  513. package/dist/frontend/lowering/builtins/properties.js +186 -0
  514. package/dist/frontend/lowering/builtins/properties.js.map +1 -0
  515. package/dist/frontend/lowering/builtins/querystring.d.ts +19 -0
  516. package/dist/frontend/lowering/builtins/querystring.js +150 -0
  517. package/dist/frontend/lowering/builtins/querystring.js.map +1 -0
  518. package/dist/frontend/lowering/builtins/readline.d.ts +13 -0
  519. package/dist/frontend/lowering/builtins/readline.js +138 -0
  520. package/dist/frontend/lowering/builtins/readline.js.map +1 -0
  521. package/dist/frontend/lowering/builtins/receiver-types.d.ts +5 -0
  522. package/dist/frontend/lowering/builtins/receiver-types.js +15 -0
  523. package/dist/frontend/lowering/builtins/receiver-types.js.map +1 -0
  524. package/dist/frontend/lowering/builtins/reflection.d.ts +13 -0
  525. package/dist/frontend/lowering/builtins/reflection.js +95 -0
  526. package/dist/frontend/lowering/builtins/reflection.js.map +1 -0
  527. package/dist/frontend/lowering/builtins/strings.d.ts +14 -0
  528. package/dist/frontend/lowering/builtins/strings.js +121 -0
  529. package/dist/frontend/lowering/builtins/strings.js.map +1 -0
  530. package/dist/frontend/lowering/builtins/text-codecs.d.ts +29 -0
  531. package/dist/frontend/lowering/builtins/text-codecs.js +590 -0
  532. package/dist/frontend/lowering/builtins/text-codecs.js.map +1 -0
  533. package/dist/frontend/lowering/builtins/timers.d.ts +22 -0
  534. package/dist/frontend/lowering/builtins/timers.js +180 -0
  535. package/dist/frontend/lowering/builtins/timers.js.map +1 -0
  536. package/dist/frontend/lowering/builtins/url.d.ts +37 -0
  537. package/dist/frontend/lowering/builtins/url.js +596 -0
  538. package/dist/frontend/lowering/builtins/url.js.map +1 -0
  539. package/dist/frontend/lowering/builtins/util-types.d.ts +7 -0
  540. package/dist/frontend/lowering/builtins/util-types.js +31 -0
  541. package/dist/frontend/lowering/builtins/util-types.js.map +1 -0
  542. package/dist/frontend/lowering/builtins/workers.d.ts +5 -0
  543. package/dist/frontend/lowering/builtins/workers.js +65 -0
  544. package/dist/frontend/lowering/builtins/workers.js.map +1 -0
  545. package/dist/frontend/lowering/call-arguments.d.ts +72 -0
  546. package/dist/frontend/lowering/call-arguments.js +618 -0
  547. package/dist/frontend/lowering/call-arguments.js.map +1 -0
  548. package/dist/frontend/lowering/call-signatures.d.ts +115 -0
  549. package/dist/frontend/lowering/call-signatures.js +719 -0
  550. package/dist/frontend/lowering/call-signatures.js.map +1 -0
  551. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  552. package/dist/frontend/lowering/checked-iterable-spread.js +53 -10
  553. package/dist/frontend/lowering/checked-iterable-spread.js.map +1 -1
  554. package/dist/frontend/lowering/checked-promise-all.js +41 -9
  555. package/dist/frontend/lowering/checked-promise-all.js.map +1 -1
  556. package/dist/frontend/lowering/class-assertions.d.ts +7 -0
  557. package/dist/frontend/lowering/class-assertions.js +96 -0
  558. package/dist/frontend/lowering/class-assertions.js.map +1 -0
  559. package/dist/frontend/lowering/class-callbacks.d.ts +1 -1
  560. package/dist/frontend/lowering/class-callbacks.js +130 -27
  561. package/dist/frontend/lowering/class-callbacks.js.map +1 -1
  562. package/dist/frontend/lowering/class-construction.d.ts +1 -1
  563. package/dist/frontend/lowering/class-construction.js +247 -50
  564. package/dist/frontend/lowering/class-construction.js.map +1 -1
  565. package/dist/frontend/lowering/class-descriptors.js +109 -29
  566. package/dist/frontend/lowering/class-descriptors.js.map +1 -1
  567. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +6 -1
  568. package/dist/frontend/lowering/class-dynamic-dispatch.js +2471 -465
  569. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  570. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +284 -44
  571. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -1
  572. package/dist/frontend/lowering/class-instance-constructor.js +17 -5
  573. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -1
  574. package/dist/frontend/lowering/class-method-values.js +199 -51
  575. package/dist/frontend/lowering/class-method-values.js.map +1 -1
  576. package/dist/frontend/lowering/class-protocols.d.ts +17 -0
  577. package/dist/frontend/lowering/class-protocols.js +126 -0
  578. package/dist/frontend/lowering/class-protocols.js.map +1 -0
  579. package/dist/frontend/lowering/class-prototypes.js +345 -86
  580. package/dist/frontend/lowering/class-prototypes.js.map +1 -1
  581. package/dist/frontend/lowering/class-runtime-statics.d.ts +1 -1
  582. package/dist/frontend/lowering/class-runtime-statics.js +80 -17
  583. package/dist/frontend/lowering/class-runtime-statics.js.map +1 -1
  584. package/dist/frontend/lowering/class-static-data.js +76 -16
  585. package/dist/frontend/lowering/class-static-data.js.map +1 -1
  586. package/dist/frontend/lowering/coercions/builders.d.ts +13 -0
  587. package/dist/frontend/lowering/coercions/builders.js +77 -0
  588. package/dist/frontend/lowering/coercions/builders.js.map +1 -0
  589. package/dist/frontend/lowering/coercions/function-adapters.d.ts +58 -0
  590. package/dist/frontend/lowering/coercions/function-adapters.js +430 -0
  591. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -0
  592. package/dist/frontend/lowering/coercions/island.d.ts +37 -0
  593. package/dist/frontend/lowering/coercions/island.js +350 -0
  594. package/dist/frontend/lowering/coercions/island.js.map +1 -0
  595. package/dist/frontend/lowering/coercions/state.d.ts +14 -0
  596. package/dist/frontend/lowering/coercions/state.js +16 -0
  597. package/dist/frontend/lowering/coercions/state.js.map +1 -0
  598. package/dist/frontend/lowering/coercions/structural-plans.d.ts +40 -0
  599. package/dist/frontend/lowering/coercions/structural-plans.js +447 -0
  600. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -0
  601. package/dist/frontend/lowering/coercions/structural.d.ts +63 -0
  602. package/dist/frontend/lowering/coercions/structural.js +616 -0
  603. package/dist/frontend/lowering/coercions/structural.js.map +1 -0
  604. package/dist/frontend/lowering/coercions/unions.d.ts +65 -0
  605. package/dist/frontend/lowering/coercions/unions.js +318 -0
  606. package/dist/frontend/lowering/coercions/unions.js.map +1 -0
  607. package/dist/frontend/lowering/collection-ingestion.js +355 -72
  608. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  609. package/dist/frontend/lowering/containers/array-callbacks.d.ts +88 -0
  610. package/dist/frontend/lowering/containers/array-callbacks.js +1611 -0
  611. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -0
  612. package/dist/frontend/lowering/containers/array-construction.d.ts +42 -0
  613. package/dist/frontend/lowering/containers/array-construction.js +1044 -0
  614. package/dist/frontend/lowering/containers/array-construction.js.map +1 -0
  615. package/dist/frontend/lowering/containers/array-iteration.d.ts +16 -0
  616. package/dist/frontend/lowering/containers/array-iteration.js +95 -0
  617. package/dist/frontend/lowering/containers/array-iteration.js.map +1 -0
  618. package/dist/frontend/lowering/containers/array-methods.d.ts +27 -0
  619. package/dist/frontend/lowering/containers/array-methods.js +1854 -0
  620. package/dist/frontend/lowering/containers/array-methods.js.map +1 -0
  621. package/dist/frontend/lowering/containers/bytes.d.ts +17 -17
  622. package/dist/frontend/lowering/containers/bytes.js +430 -138
  623. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  624. package/dist/frontend/lowering/containers/callback-arguments.d.ts +26 -0
  625. package/dist/frontend/lowering/containers/callback-arguments.js +179 -0
  626. package/dist/frontend/lowering/containers/callback-arguments.js.map +1 -0
  627. package/dist/frontend/lowering/containers/collection-grouping.d.ts +19 -0
  628. package/dist/frontend/lowering/containers/collection-grouping.js +297 -0
  629. package/dist/frontend/lowering/containers/collection-grouping.js.map +1 -0
  630. package/dist/frontend/lowering/containers/collection-methods.d.ts +57 -0
  631. package/dist/frontend/lowering/containers/collection-methods.js +1314 -0
  632. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -0
  633. package/dist/frontend/lowering/containers/dynamic-receivers.d.ts +18 -0
  634. package/dist/frontend/lowering/containers/dynamic-receivers.js +114 -0
  635. package/dist/frontend/lowering/containers/dynamic-receivers.js.map +1 -0
  636. package/dist/frontend/lowering/containers/for-of.d.ts +60 -0
  637. package/dist/frontend/lowering/containers/for-of.js +643 -0
  638. package/dist/frontend/lowering/containers/for-of.js.map +1 -0
  639. package/dist/frontend/lowering/containers/indexed-objects.d.ts +132 -0
  640. package/dist/frontend/lowering/containers/indexed-objects.js +1743 -0
  641. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -0
  642. package/dist/frontend/lowering/containers/iterator-helpers.d.ts +20 -0
  643. package/dist/frontend/lowering/containers/iterator-helpers.js +809 -0
  644. package/dist/frontend/lowering/containers/iterator-helpers.js.map +1 -0
  645. package/dist/frontend/lowering/containers/string-and-regexp.js +601 -160
  646. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  647. package/dist/frontend/lowering/containers/string-replacement.js +213 -63
  648. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -1
  649. package/dist/frontend/lowering/crypto-tables.js +263 -64
  650. package/dist/frontend/lowering/crypto-tables.js.map +1 -1
  651. package/dist/frontend/lowering/deferred-module-initializers.js +172 -68
  652. package/dist/frontend/lowering/deferred-module-initializers.js.map +1 -1
  653. package/dist/frontend/lowering/deferred-module-initializers.test.js +41 -8
  654. package/dist/frontend/lowering/deferred-module-initializers.test.js.map +1 -1
  655. package/dist/frontend/lowering/error-methods.js +339 -65
  656. package/dist/frontend/lowering/error-methods.js.map +1 -1
  657. package/dist/frontend/lowering/expressions/evaluation-safety.js +3 -2
  658. package/dist/frontend/lowering/expressions/evaluation-safety.js.map +1 -1
  659. package/dist/frontend/lowering/expressions/global-symbols.js +2 -1
  660. package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -1
  661. package/dist/frontend/lowering/expressions/native-proxy.js +11 -5
  662. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -1
  663. package/dist/frontend/lowering/expressions/nullish-assignment.js +67 -13
  664. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -1
  665. package/dist/frontend/lowering/expressions/object-literals.js +588 -165
  666. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  667. package/dist/frontend/lowering/expressions/optional-chains.d.ts +1 -1
  668. package/dist/frontend/lowering/expressions/optional-chains.js +68 -17
  669. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  670. package/dist/frontend/lowering/expressions/union-field-write.js +45 -18
  671. package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -1
  672. package/dist/frontend/lowering/function-context.js +5 -1
  673. package/dist/frontend/lowering/function-context.js.map +1 -1
  674. package/dist/frontend/lowering/function-returns.d.ts +67 -0
  675. package/dist/frontend/lowering/function-returns.js +392 -0
  676. package/dist/frontend/lowering/function-returns.js.map +1 -0
  677. package/dist/frontend/lowering/generator-delegation.d.ts +1 -1
  678. package/dist/frontend/lowering/generator-delegation.js +171 -39
  679. package/dist/frontend/lowering/generator-delegation.js.map +1 -1
  680. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +1 -1
  681. package/dist/frontend/lowering/generator-dynamic-dispatch.js +176 -36
  682. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -1
  683. package/dist/frontend/lowering/generic-functions.d.ts +271 -0
  684. package/dist/frontend/lowering/generic-functions.js +1730 -0
  685. package/dist/frontend/lowering/generic-functions.js.map +1 -0
  686. package/dist/frontend/lowering/import-meta.d.ts +1 -1
  687. package/dist/frontend/lowering/import-meta.js +37 -14
  688. package/dist/frontend/lowering/import-meta.js.map +1 -1
  689. package/dist/frontend/lowering/indexed-comparison.js +6 -2
  690. package/dist/frontend/lowering/indexed-comparison.js.map +1 -1
  691. package/dist/frontend/lowering/instantiation-path.d.ts +8 -0
  692. package/dist/frontend/lowering/instantiation-path.js +10 -0
  693. package/dist/frontend/lowering/instantiation-path.js.map +1 -0
  694. package/dist/frontend/lowering/instantiation-path.test.d.ts +1 -0
  695. package/dist/frontend/lowering/instantiation-path.test.js +23 -0
  696. package/dist/frontend/lowering/instantiation-path.test.js.map +1 -0
  697. package/dist/frontend/lowering/iterator-consumption.d.ts +9 -0
  698. package/dist/frontend/lowering/iterator-consumption.js +91 -0
  699. package/dist/frontend/lowering/iterator-consumption.js.map +1 -0
  700. package/dist/frontend/lowering/lib-boundary.js +40 -17
  701. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  702. package/dist/frontend/lowering/lib-boundary.test.js +49 -11
  703. package/dist/frontend/lowering/lib-boundary.test.js.map +1 -1
  704. package/dist/frontend/lowering/lower-array-sort.d.ts +0 -19
  705. package/dist/frontend/lowering/lower-array-sort.js +331 -566
  706. package/dist/frontend/lowering/lower-array-sort.js.map +1 -1
  707. package/dist/frontend/lowering/lower-assert.js +248 -43
  708. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  709. package/dist/frontend/lowering/lower-async-iteration.js +71 -16
  710. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  711. package/dist/frontend/lowering/lower-builtin-values.js +430 -77
  712. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  713. package/dist/frontend/lowering/lower-calls.d.ts +39 -558
  714. package/dist/frontend/lowering/lower-calls.js +2628 -5669
  715. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  716. package/dist/frontend/lowering/lower-classes.d.ts +248 -242
  717. package/dist/frontend/lowering/lower-classes.js +1820 -775
  718. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  719. package/dist/frontend/lowering/lower-comptime.d.ts +35 -35
  720. package/dist/frontend/lowering/lower-comptime.js +39 -37
  721. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  722. package/dist/frontend/lowering/lower-dgram.js +59 -31
  723. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  724. package/dist/frontend/lowering/lower-enums.js +5 -2
  725. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  726. package/dist/frontend/lowering/lower-event-emitter.js +323 -86
  727. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  728. package/dist/frontend/lowering/lower-expando.js +19 -7
  729. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  730. package/dist/frontend/lowering/lower-exprs.d.ts +194 -194
  731. package/dist/frontend/lowering/lower-exprs.js +3473 -1160
  732. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  733. package/dist/frontend/lowering/lower-functions.d.ts +23 -0
  734. package/dist/frontend/lowering/lower-functions.js +449 -0
  735. package/dist/frontend/lowering/lower-functions.js.map +1 -0
  736. package/dist/frontend/lowering/lower-generators.js +121 -32
  737. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  738. package/dist/frontend/lowering/lower-global-value.js +15 -4
  739. package/dist/frontend/lowering/lower-global-value.js.map +1 -1
  740. package/dist/frontend/lowering/lower-inspect.js +479 -89
  741. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  742. package/dist/frontend/lowering/lower-island.d.ts +79 -79
  743. package/dist/frontend/lowering/lower-island.js +366 -274
  744. package/dist/frontend/lowering/lower-island.js.map +1 -1
  745. package/dist/frontend/lowering/lower-island.test.js +7 -2
  746. package/dist/frontend/lowering/lower-island.test.js.map +1 -1
  747. package/dist/frontend/lowering/lower-mixins.js +17 -8
  748. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  749. package/dist/frontend/lowering/lower-modules.d.ts +95 -94
  750. package/dist/frontend/lowering/lower-modules.js +655 -329
  751. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  752. package/dist/frontend/lowering/lower-modules.test.js +91 -20
  753. package/dist/frontend/lowering/lower-modules.test.js.map +1 -1
  754. package/dist/frontend/lowering/lower-namespaces.js +25 -8
  755. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  756. package/dist/frontend/lowering/lower-node-module.js +115 -34
  757. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  758. package/dist/frontend/lowering/lower-server.js +1210 -290
  759. package/dist/frontend/lowering/lower-server.js.map +1 -1
  760. package/dist/frontend/lowering/lower-stmts.d.ts +148 -148
  761. package/dist/frontend/lowering/lower-stmts.js +2324 -994
  762. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  763. package/dist/frontend/lowering/lower-stmts.test.js +13 -5
  764. package/dist/frontend/lowering/lower-stmts.test.js.map +1 -1
  765. package/dist/frontend/lowering/lower-stream.js +363 -91
  766. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  767. package/dist/frontend/lowering/lower-system-errors.js +30 -8
  768. package/dist/frontend/lowering/lower-system-errors.js.map +1 -1
  769. package/dist/frontend/lowering/lower-test.js +40 -13
  770. package/dist/frontend/lowering/lower-test.js.map +1 -1
  771. package/dist/frontend/lowering/lower-timers.d.ts +31 -0
  772. package/dist/frontend/lowering/lower-timers.js +336 -0
  773. package/dist/frontend/lowering/lower-timers.js.map +1 -0
  774. package/dist/frontend/lowering/lower-url.d.ts +1 -1
  775. package/dist/frontend/lowering/lower-url.js +46 -13
  776. package/dist/frontend/lowering/lower-url.js.map +1 -1
  777. package/dist/frontend/lowering/lowerer.d.ts +34 -352
  778. package/dist/frontend/lowering/lowerer.js +1074 -2712
  779. package/dist/frontend/lowering/lowerer.js.map +1 -1
  780. package/dist/frontend/lowering/lowerer.test.js +85 -17
  781. package/dist/frontend/lowering/lowerer.test.js.map +1 -1
  782. package/dist/frontend/lowering/module-namespace-elements.js +43 -8
  783. package/dist/frontend/lowering/module-namespace-elements.js.map +1 -1
  784. package/dist/frontend/lowering/native-ffi.d.ts +21 -1
  785. package/dist/frontend/lowering/native-ffi.js +487 -18
  786. package/dist/frontend/lowering/native-ffi.js.map +1 -1
  787. package/dist/frontend/lowering/object-enumeration-receiver.js +55 -10
  788. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -1
  789. package/dist/frontend/lowering/object-factory-new.d.ts +1 -1
  790. package/dist/frontend/lowering/object-factory-new.js +36 -11
  791. package/dist/frontend/lowering/object-factory-new.js.map +1 -1
  792. package/dist/frontend/lowering/optional-arguments.js +49 -20
  793. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  794. package/dist/frontend/lowering/pairs-snapshot.js +66 -14
  795. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  796. package/dist/frontend/lowering/runtime-optional-locals.js +3 -1
  797. package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -1
  798. package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -1
  799. package/dist/frontend/lowering/sanitize-class-types.js +4 -1
  800. package/dist/frontend/lowering/sanitize-class-types.js.map +1 -1
  801. package/dist/frontend/lowering/sanitize-class-types.test.js +86 -18
  802. package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -1
  803. package/dist/frontend/lowering/split-consumers.d.ts +7 -0
  804. package/dist/frontend/lowering/split-consumers.js +64 -0
  805. package/dist/frontend/lowering/split-consumers.js.map +1 -0
  806. package/dist/frontend/lowering/static-this.js +13 -6
  807. package/dist/frontend/lowering/static-this.js.map +1 -1
  808. package/dist/frontend/lowering/string-index.js +32 -10
  809. package/dist/frontend/lowering/string-index.js.map +1 -1
  810. package/dist/frontend/lowering/surfaces.d.ts +45 -46
  811. package/dist/frontend/lowering/surfaces.js +1129 -256
  812. package/dist/frontend/lowering/surfaces.js.map +1 -1
  813. package/dist/frontend/lowering/symbol-fields.js +40 -15
  814. package/dist/frontend/lowering/symbol-fields.js.map +1 -1
  815. package/dist/frontend/lowering/symbol-methods.js.map +1 -1
  816. package/dist/frontend/lowering/text-decoder-encoding.js +236 -24
  817. package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -1
  818. package/dist/frontend/lowering/text-decoder-encoding.test.js +84 -12
  819. package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -1
  820. package/dist/frontend/lowering/union-narrow.js +59 -16
  821. package/dist/frontend/lowering/union-narrow.js.map +1 -1
  822. package/dist/frontend/lowering/union-narrow.test.js +24 -7
  823. package/dist/frontend/lowering/union-narrow.test.js.map +1 -1
  824. package/dist/frontend/lowering/union-retag.js +155 -40
  825. package/dist/frontend/lowering/union-retag.js.map +1 -1
  826. package/dist/frontend/lowering/union-retag.test.js +131 -33
  827. package/dist/frontend/lowering/union-retag.test.js.map +1 -1
  828. package/dist/frontend/lowering/unregistered-class-types.js.map +1 -1
  829. package/dist/frontend/lowering/unregistered-class-types.test.js +34 -8
  830. package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -1
  831. package/dist/frontend/module-source-candidates.d.ts +10 -0
  832. package/dist/frontend/module-source-candidates.js +40 -0
  833. package/dist/frontend/module-source-candidates.js.map +1 -0
  834. package/dist/frontend/module-source-candidates.test.d.ts +1 -0
  835. package/dist/frontend/module-source-candidates.test.js +53 -0
  836. package/dist/frontend/module-source-candidates.test.js.map +1 -0
  837. package/dist/frontend/module-syntax.js +21 -8
  838. package/dist/frontend/module-syntax.js.map +1 -1
  839. package/dist/frontend/module-syntax.test.js +37 -13
  840. package/dist/frontend/module-syntax.test.js.map +1 -1
  841. package/dist/frontend/npm-fetch-analysis.js +13 -4
  842. package/dist/frontend/npm-fetch-analysis.js.map +1 -1
  843. package/dist/frontend/npm-fetch-analysis.test.js +33 -10
  844. package/dist/frontend/npm-fetch-analysis.test.js.map +1 -1
  845. package/dist/frontend/npm-fetch-node.js.map +1 -1
  846. package/dist/frontend/npm-fetch-syntax.js +4 -9
  847. package/dist/frontend/npm-fetch-syntax.js.map +1 -1
  848. package/dist/frontend/npm-node.js +3 -1
  849. package/dist/frontend/npm-node.js.map +1 -1
  850. package/dist/frontend/npm-static-bundled-cjs.js +88 -29
  851. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -1
  852. package/dist/frontend/npm-static-bundled-cjs.test.js +29 -10
  853. package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -1
  854. package/dist/frontend/npm-static-declaration-syntax.js +148 -56
  855. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -1
  856. package/dist/frontend/npm-static-declarations.d.ts +1 -1
  857. package/dist/frontend/npm-static-declarations.js.map +1 -1
  858. package/dist/frontend/npm-static-declarations.test.js +33 -7
  859. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  860. package/dist/frontend/npm-static-prune.js +26 -12
  861. package/dist/frontend/npm-static-prune.js.map +1 -1
  862. package/dist/frontend/npm-static-prune.test.js +17 -3
  863. package/dist/frontend/npm-static-prune.test.js.map +1 -1
  864. package/dist/frontend/npm-static-rewrite-host.js +2 -3
  865. package/dist/frontend/npm-static-rewrite-host.js.map +1 -1
  866. package/dist/frontend/npm-static-rewrite-syntax.js +64 -21
  867. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -1
  868. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  869. package/dist/frontend/npm-static-subtyping.js +9 -4
  870. package/dist/frontend/npm-static-subtyping.js.map +1 -1
  871. package/dist/frontend/npm-static-subtyping.test.js +30 -6
  872. package/dist/frontend/npm-static-subtyping.test.js.map +1 -1
  873. package/dist/frontend/npm-static.js +15 -4
  874. package/dist/frontend/npm-static.js.map +1 -1
  875. package/dist/frontend/npm.js +122 -36
  876. package/dist/frontend/npm.js.map +1 -1
  877. package/dist/frontend/npm.test.js +30 -10
  878. package/dist/frontend/npm.test.js.map +1 -1
  879. package/dist/frontend/pipeline-native.js.map +1 -1
  880. package/dist/frontend/pipeline.js +25 -8
  881. package/dist/frontend/pipeline.js.map +1 -1
  882. package/dist/frontend/pipeline.test.js +21 -7
  883. package/dist/frontend/pipeline.test.js.map +1 -1
  884. package/dist/frontend/program-analysis.d.ts +2 -0
  885. package/dist/frontend/program-analysis.js +2 -0
  886. package/dist/frontend/program-analysis.js.map +1 -1
  887. package/dist/frontend/program-node.js +5 -3
  888. package/dist/frontend/program-node.js.map +1 -1
  889. package/dist/frontend/program.d.ts +2 -2
  890. package/dist/frontend/program.js +248 -127
  891. package/dist/frontend/program.js.map +1 -1
  892. package/dist/frontend/program.test.js +27 -27
  893. package/dist/frontend/program.test.js.map +1 -1
  894. package/dist/frontend/provenance-core.js +8 -4
  895. package/dist/frontend/provenance-core.js.map +1 -1
  896. package/dist/frontend/provenance-registry.js +1 -4
  897. package/dist/frontend/provenance-registry.js.map +1 -1
  898. package/dist/frontend/resolve.js +32 -20
  899. package/dist/frontend/resolve.js.map +1 -1
  900. package/dist/frontend/resolve.test.js +1 -1
  901. package/dist/frontend/resolve.test.js.map +1 -1
  902. package/dist/frontend/runtime-resolve.js +13 -4
  903. package/dist/frontend/runtime-resolve.js.map +1 -1
  904. package/dist/frontend/runtime-resolve.test.js +25 -9
  905. package/dist/frontend/runtime-resolve.test.js.map +1 -1
  906. package/dist/frontend/services-node.js +6 -2
  907. package/dist/frontend/services-node.js.map +1 -1
  908. package/dist/frontend/services-node.test.js +18 -6
  909. package/dist/frontend/services-node.test.js.map +1 -1
  910. package/dist/frontend/services.js +8 -4
  911. package/dist/frontend/services.js.map +1 -1
  912. package/dist/frontend/services.test.js +6 -2
  913. package/dist/frontend/services.test.js.map +1 -1
  914. package/dist/frontend/ts7/api.js +12 -4
  915. package/dist/frontend/ts7/api.js.map +1 -1
  916. package/dist/frontend/ts7/ast-bytes.js +10 -3
  917. package/dist/frontend/ts7/ast-bytes.js.map +1 -1
  918. package/dist/frontend/ts7/ast-bytes.test.js +23 -4
  919. package/dist/frontend/ts7/ast-bytes.test.js.map +1 -1
  920. package/dist/frontend/ts7/ast-guards.test.js +14 -5
  921. package/dist/frontend/ts7/ast-guards.test.js.map +1 -1
  922. package/dist/frontend/ts7/ast-node.d.ts +6 -1
  923. package/dist/frontend/ts7/ast-node.js +490 -172
  924. package/dist/frontend/ts7/ast-node.js.map +1 -1
  925. package/dist/frontend/ts7/ast-node.test.js +150 -36
  926. package/dist/frontend/ts7/ast-node.test.js.map +1 -1
  927. package/dist/frontend/ts7/ast-text.js +13 -3
  928. package/dist/frontend/ts7/ast-text.js.map +1 -1
  929. package/dist/frontend/ts7/ast-text.test.js.map +1 -1
  930. package/dist/frontend/ts7/ast-types.js.map +1 -1
  931. package/dist/frontend/ts7/ast-wire.d.ts +5 -1
  932. package/dist/frontend/ts7/ast-wire.js +83 -20
  933. package/dist/frontend/ts7/ast-wire.js.map +1 -1
  934. package/dist/frontend/ts7/ast-wire.test.js +53 -8
  935. package/dist/frontend/ts7/ast-wire.test.js.map +1 -1
  936. package/dist/frontend/ts7/ast.d.ts +2 -1
  937. package/dist/frontend/ts7/ast.js +53 -30
  938. package/dist/frontend/ts7/ast.js.map +1 -1
  939. package/dist/frontend/ts7/census-check.js +1 -1
  940. package/dist/frontend/ts7/census-check.js.map +1 -1
  941. package/dist/frontend/ts7/checker-cache.js.map +1 -1
  942. package/dist/frontend/ts7/checker.d.ts +8 -2
  943. package/dist/frontend/ts7/checker.js +46 -8
  944. package/dist/frontend/ts7/checker.js.map +1 -1
  945. package/dist/frontend/ts7/checker.test.js +96 -17
  946. package/dist/frontend/ts7/checker.test.js.map +1 -1
  947. package/dist/frontend/ts7/enums.test.js +9 -4
  948. package/dist/frontend/ts7/enums.test.js.map +1 -1
  949. package/dist/frontend/ts7/native-api.js.map +1 -1
  950. package/dist/frontend/ts7/native-host.js.map +1 -1
  951. package/dist/frontend/ts7/native-process.js +9 -3
  952. package/dist/frontend/ts7/native-process.js.map +1 -1
  953. package/dist/frontend/ts7/program-adapter.js +1 -1
  954. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  955. package/dist/frontend/ts7/program-host.d.ts +7 -0
  956. package/dist/frontend/ts7/program-host.js +33 -6
  957. package/dist/frontend/ts7/program-host.js.map +1 -1
  958. package/dist/frontend/ts7/program-host.test.js +72 -11
  959. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  960. package/dist/frontend/ts7/rpc-api.js +3 -1
  961. package/dist/frontend/ts7/rpc-api.js.map +1 -1
  962. package/dist/frontend/ts7/rpc-client.js +15 -5
  963. package/dist/frontend/ts7/rpc-client.js.map +1 -1
  964. package/dist/frontend/ts7/rpc-client.test.js +26 -8
  965. package/dist/frontend/ts7/rpc-client.test.js.map +1 -1
  966. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -1
  967. package/dist/frontend/ts7/rpc-filesystem.test.js +43 -10
  968. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -1
  969. package/dist/frontend/ts7/rpc-process.js +16 -6
  970. package/dist/frontend/ts7/rpc-process.js.map +1 -1
  971. package/dist/frontend/ts7/rpc-process.test.js.map +1 -1
  972. package/dist/frontend/ts7/rpc-wire.d.ts +1 -0
  973. package/dist/frontend/ts7/rpc-wire.js +41 -14
  974. package/dist/frontend/ts7/rpc-wire.js.map +1 -1
  975. package/dist/frontend/ts7/rpc-wire.test.js +36 -6
  976. package/dist/frontend/ts7/rpc-wire.test.js.map +1 -1
  977. package/dist/frontend/ts7/semantic-checker.js +209 -68
  978. package/dist/frontend/ts7/semantic-checker.js.map +1 -1
  979. package/dist/frontend/ts7/semantic-checker.test.js +29 -14
  980. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -1
  981. package/dist/frontend/ts7/semantic-json.js +7 -1
  982. package/dist/frontend/ts7/semantic-json.js.map +1 -1
  983. package/dist/frontend/ts7/semantic-json.test.js +17 -3
  984. package/dist/frontend/ts7/semantic-json.test.js.map +1 -1
  985. package/dist/frontend/ts7/semantic-model.js +147 -51
  986. package/dist/frontend/ts7/semantic-model.js.map +1 -1
  987. package/dist/frontend/ts7/semantic-model.test.js +72 -19
  988. package/dist/frontend/ts7/semantic-model.test.js.map +1 -1
  989. package/dist/frontend/ts7/semantic-types.d.ts +2 -2
  990. package/dist/frontend/ts7/session-cache.js +10 -3
  991. package/dist/frontend/ts7/session-cache.js.map +1 -1
  992. package/dist/frontend/ts7/session-cache.test.js +13 -4
  993. package/dist/frontend/ts7/session-cache.test.js.map +1 -1
  994. package/dist/frontend/ts7/session-path.js +25 -10
  995. package/dist/frontend/ts7/session-path.js.map +1 -1
  996. package/dist/frontend/ts7/session-path.test.js +47 -4
  997. package/dist/frontend/ts7/session-path.test.js.map +1 -1
  998. package/dist/frontend/ts7/session-timing.js +22 -3
  999. package/dist/frontend/ts7/session-timing.js.map +1 -1
  1000. package/dist/frontend/ts7/session-timing.test.js +12 -3
  1001. package/dist/frontend/ts7/session-timing.test.js.map +1 -1
  1002. package/dist/frontend/ts7/session.d.ts +1 -0
  1003. package/dist/frontend/ts7/session.js +109 -35
  1004. package/dist/frontend/ts7/session.js.map +1 -1
  1005. package/dist/frontend/ts7/session.test.js +69 -15
  1006. package/dist/frontend/ts7/session.test.js.map +1 -1
  1007. package/dist/frontend/ts7/source-parser.js +17 -6
  1008. package/dist/frontend/ts7/source-parser.js.map +1 -1
  1009. package/dist/frontend/ts7/source-parser.test.js +32 -9
  1010. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  1011. package/dist/frontend/tsc-codes.js +56 -11
  1012. package/dist/frontend/tsc-codes.js.map +1 -1
  1013. package/dist/frontend/tsc-codes.test.d.ts +1 -0
  1014. package/dist/frontend/tsc-codes.test.js +16 -0
  1015. package/dist/frontend/tsc-codes.test.js.map +1 -0
  1016. package/dist/frontend/type-mapper.d.ts +3 -0
  1017. package/dist/frontend/type-mapper.js +589 -206
  1018. package/dist/frontend/type-mapper.js.map +1 -1
  1019. package/dist/frontend/type-mapper.test.js +108 -33
  1020. package/dist/frontend/type-mapper.test.js.map +1 -1
  1021. package/dist/frontend/union-discriminants.js +8 -2
  1022. package/dist/frontend/union-discriminants.js.map +1 -1
  1023. package/dist/frontend/union-discriminants.test.js +77 -20
  1024. package/dist/frontend/union-discriminants.test.js.map +1 -1
  1025. package/dist/frontend/worker-target.d.ts +6 -0
  1026. package/dist/frontend/worker-target.js +108 -0
  1027. package/dist/frontend/worker-target.js.map +1 -0
  1028. package/dist/frontend/worker-target.test.d.ts +1 -0
  1029. package/dist/frontend/worker-target.test.js +71 -0
  1030. package/dist/frontend/worker-target.test.js.map +1 -0
  1031. package/dist/index.d.ts +9 -8
  1032. package/dist/index.js +174 -88
  1033. package/dist/index.js.map +1 -1
  1034. package/dist/ir/analysis.js +95 -38
  1035. package/dist/ir/analysis.js.map +1 -1
  1036. package/dist/ir/analysis.test.js +91 -15
  1037. package/dist/ir/analysis.test.js.map +1 -1
  1038. package/dist/ir/api.d.ts +4 -0
  1039. package/dist/ir/api.js +6 -0
  1040. package/dist/ir/api.js.map +1 -0
  1041. package/dist/ir/build.d.ts +7 -0
  1042. package/dist/ir/build.js +27 -1
  1043. package/dist/ir/build.js.map +1 -1
  1044. package/dist/ir/builtin-effects.d.ts +9 -0
  1045. package/dist/ir/builtin-effects.js +643 -0
  1046. package/dist/ir/builtin-effects.js.map +1 -0
  1047. package/dist/ir/builtin-signatures.d.ts +15 -0
  1048. package/dist/ir/builtin-signatures.js +3397 -0
  1049. package/dist/ir/builtin-signatures.js.map +1 -0
  1050. package/dist/ir/byte-numbers.js +67 -16
  1051. package/dist/ir/byte-numbers.js.map +1 -1
  1052. package/dist/ir/byte-numbers.test.js +17 -4
  1053. package/dist/ir/byte-numbers.test.js.map +1 -1
  1054. package/dist/ir/constant-tables.js +13 -5
  1055. package/dist/ir/constant-tables.js.map +1 -1
  1056. package/dist/ir/constant-tables.test.js +47 -7
  1057. package/dist/ir/constant-tables.test.js.map +1 -1
  1058. package/dist/ir/control-flow.js +2 -1
  1059. package/dist/ir/control-flow.js.map +1 -1
  1060. package/dist/ir/control-flow.test.js +35 -11
  1061. package/dist/ir/control-flow.test.js.map +1 -1
  1062. package/dist/ir/initializer-bindings.d.ts +9 -0
  1063. package/dist/ir/initializer-bindings.js +115 -0
  1064. package/dist/ir/initializer-bindings.js.map +1 -0
  1065. package/dist/ir/initializer-bindings.test.d.ts +1 -0
  1066. package/dist/ir/initializer-bindings.test.js +118 -0
  1067. package/dist/ir/initializer-bindings.test.js.map +1 -0
  1068. package/dist/ir/integer-loop-facts.d.ts +12 -0
  1069. package/dist/ir/integer-loop-facts.js +137 -0
  1070. package/dist/ir/integer-loop-facts.js.map +1 -0
  1071. package/dist/ir/integer-loops.js +85 -30
  1072. package/dist/ir/integer-loops.js.map +1 -1
  1073. package/dist/ir/integer-loops.test.js +76 -13
  1074. package/dist/ir/integer-loops.test.js.map +1 -1
  1075. package/dist/ir/integer-ranges.js +93 -21
  1076. package/dist/ir/integer-ranges.js.map +1 -1
  1077. package/dist/ir/integer-ranges.test.js +199 -21
  1078. package/dist/ir/integer-ranges.test.js.map +1 -1
  1079. package/dist/ir/intrinsic-signatures.d.ts +20 -0
  1080. package/dist/ir/intrinsic-signatures.js +57 -0
  1081. package/dist/ir/intrinsic-signatures.js.map +1 -0
  1082. package/dist/ir/ir.d.ts +15 -2160
  1083. package/dist/ir/ir.js +160 -1396
  1084. package/dist/ir/ir.js.map +1 -1
  1085. package/dist/ir/ir.test.js +98 -77
  1086. package/dist/ir/ir.test.js.map +1 -1
  1087. package/dist/ir/numeric-call-specialization.d.ts +8 -0
  1088. package/dist/ir/numeric-call-specialization.js +198 -0
  1089. package/dist/ir/numeric-call-specialization.js.map +1 -0
  1090. package/dist/ir/runtime-features.d.ts +221 -0
  1091. package/dist/ir/runtime-features.js +552 -0
  1092. package/dist/ir/runtime-features.js.map +1 -0
  1093. package/dist/ir/runtime-features.test.d.ts +1 -0
  1094. package/dist/ir/runtime-features.test.js +98 -0
  1095. package/dist/ir/runtime-features.test.js.map +1 -0
  1096. package/dist/ir/scalar-records.js +130 -40
  1097. package/dist/ir/scalar-records.js.map +1 -1
  1098. package/dist/ir/scalar-records.test.js +146 -27
  1099. package/dist/ir/scalar-records.test.js.map +1 -1
  1100. package/dist/ir/serialize.d.ts +1 -1
  1101. package/dist/ir/serialize.js +7 -5
  1102. package/dist/ir/serialize.js.map +1 -1
  1103. package/dist/ir/serialize.test.js +44 -9
  1104. package/dist/ir/serialize.test.js.map +1 -1
  1105. package/dist/ir/traverse.js +156 -43
  1106. package/dist/ir/traverse.js.map +1 -1
  1107. package/dist/ir/traverse.test.js +99 -24
  1108. package/dist/ir/traverse.test.js.map +1 -1
  1109. package/dist/ir/validate.d.ts +1 -31
  1110. package/dist/ir/validate.js +869 -1910
  1111. package/dist/ir/validate.js.map +1 -1
  1112. package/dist/ir/validate.test.js +697 -114
  1113. package/dist/ir/validate.test.js.map +1 -1
  1114. package/dist/library/cache-primitives.js +9 -10
  1115. package/dist/library/cache-primitives.js.map +1 -1
  1116. package/dist/library/cache-reset.test.js +2 -1
  1117. package/dist/library/cache-reset.test.js.map +1 -1
  1118. package/dist/library/compiler-self-identity.js +11 -5
  1119. package/dist/library/compiler-self-identity.js.map +1 -1
  1120. package/dist/library/compiler-self-identity.test.js +10 -3
  1121. package/dist/library/compiler-self-identity.test.js.map +1 -1
  1122. package/dist/library/fence-eval.js +24 -7
  1123. package/dist/library/fence-eval.js.map +1 -1
  1124. package/dist/library/fence-eval.test.js +31 -7
  1125. package/dist/library/fence-eval.test.js.map +1 -1
  1126. package/dist/library/int-infer.js +199 -59
  1127. package/dist/library/int-infer.js.map +1 -1
  1128. package/dist/library/int-infer.test.js +137 -61
  1129. package/dist/library/int-infer.test.js.map +1 -1
  1130. package/dist/library/ir-policy.d.ts +27 -0
  1131. package/dist/library/ir-policy.js +234 -0
  1132. package/dist/library/ir-policy.js.map +1 -0
  1133. package/dist/library/library-cache.js +40 -17
  1134. package/dist/library/library-cache.js.map +1 -1
  1135. package/dist/library/library-cache.test.js +29 -18
  1136. package/dist/library/library-cache.test.js.map +1 -1
  1137. package/dist/library/library-profile.js +68 -13
  1138. package/dist/library/library-profile.js.map +1 -1
  1139. package/dist/library/prepare.js +48 -20
  1140. package/dist/library/prepare.js.map +1 -1
  1141. package/dist/library/semantic-source.js +16 -14
  1142. package/dist/library/semantic-source.js.map +1 -1
  1143. package/dist/library/semantic-source.test.js +9 -14
  1144. package/dist/library/semantic-source.test.js.map +1 -1
  1145. package/dist/library/sidecar-validate.js +53 -12
  1146. package/dist/library/sidecar-validate.js.map +1 -1
  1147. package/dist/library/sidecar.js +85 -24
  1148. package/dist/library/sidecar.js.map +1 -1
  1149. package/dist/library/trap-teaching.js +11 -2
  1150. package/dist/library/trap-teaching.js.map +1 -1
  1151. package/dist/native/cache.js +10 -4
  1152. package/dist/native/cache.js.map +1 -1
  1153. package/dist/native/cli.js +34 -9
  1154. package/dist/native/cli.js.map +1 -1
  1155. package/dist/native/compiler.js +191 -54
  1156. package/dist/native/compiler.js.map +1 -1
  1157. package/dist/native/compiler.test.js +134 -33
  1158. package/dist/native/compiler.test.js.map +1 -1
  1159. package/dist/native/comptime.js +23 -7
  1160. package/dist/native/comptime.js.map +1 -1
  1161. package/dist/native/comptime.test.js +26 -6
  1162. package/dist/native/comptime.test.js.map +1 -1
  1163. package/dist/native/executable-cache.js +77 -27
  1164. package/dist/native/executable-cache.js.map +1 -1
  1165. package/dist/native/executable-cache.test.js +41 -6
  1166. package/dist/native/executable-cache.test.js.map +1 -1
  1167. package/dist/native/file-identity.js +9 -2
  1168. package/dist/native/file-identity.js.map +1 -1
  1169. package/dist/native/file-identity.test.js.map +1 -1
  1170. package/dist/native/library.js +50 -12
  1171. package/dist/native/library.js.map +1 -1
  1172. package/dist/native/prepare.js +121 -34
  1173. package/dist/native/prepare.js.map +1 -1
  1174. package/dist/native/prepare.test.js +22 -6
  1175. package/dist/native/prepare.test.js.map +1 -1
  1176. package/dist/native/runtime-typescript.js +24 -11
  1177. package/dist/native/runtime-typescript.js.map +1 -1
  1178. package/dist/native/runtime-typescript.test.js.map +1 -1
  1179. package/dist/native/sanitizer.js +71 -18
  1180. package/dist/native/sanitizer.js.map +1 -1
  1181. package/dist/native/sanitizer.test.js +78 -20
  1182. package/dist/native/sanitizer.test.js.map +1 -1
  1183. package/dist/native/task.js.map +1 -1
  1184. package/dist/native/task.test.js +7 -2
  1185. package/dist/native/task.test.js.map +1 -1
  1186. package/dist/native/toolchain.js +68 -26
  1187. package/dist/native/toolchain.js.map +1 -1
  1188. package/dist/native/toolchain.test.js +59 -20
  1189. package/dist/native/toolchain.test.js.map +1 -1
  1190. package/dist/startup-cache.d.ts +1 -1
  1191. package/dist/startup-cache.js +1 -1
  1192. package/dist/startup-cache.js.map +1 -1
  1193. package/dist/timing.js.map +1 -1
  1194. package/package.json +20 -20
  1195. package/surface-manifest.json +30 -2
  1196. package/dist/frontend/lowering/lower-builtins.d.ts +0 -601
  1197. package/dist/frontend/lowering/lower-builtins.js +0 -8986
  1198. package/dist/frontend/lowering/lower-builtins.js.map +0 -1
  1199. package/dist/frontend/lowering/lower-containers.d.ts +0 -382
  1200. package/dist/frontend/lowering/lower-containers.js +0 -7344
  1201. package/dist/frontend/lowering/lower-containers.js.map +0 -1
@@ -42,12 +42,12 @@ import { builtinModules } from "node:module";
42
42
  import { dirname, isAbsolute, resolve } from "node:path";
43
43
  import * as ts from "./ts7/adapter.js";
44
44
  import { commonJsModuleSyntaxDiag, invalidPackageConfigDiag, strictNullChecksFloorDiag, tscPassthroughDiag, unsupportedDiag, } from "../diagnostics/diagnostic.js";
45
- import { isNodeModulesPath, nearestInvalidPackageJsonPath, nearestPackageType, nearestPkgJsonPath, projectDtsRuntimeSibling, resolveBareModule, resolveProjectModule, resolveTypeDirective, setProjectPathMappings, setProjectRealm } from "./resolve.js";
45
+ import { isNodeModulesPath, nearestInvalidPackageJsonPath, nearestPackageType, nearestPkgJsonPath, projectDtsRuntimeSibling, resolveBareModule, resolveProjectModule, resolveTypeDirective, setProjectPathMappings, setProjectRealm, } from "./resolve.js";
46
46
  import { probeNodeImportRefusal, probeNodeRequireRefusal } from "./npm.js";
47
- import { isNpmStaticPackage, npmStaticActive, npmStaticFsShadow, npmStaticPackageOfPath, reportNpmStaticOffender, setNpmStaticDeclarationOverloads, setNpmStaticPackages } from "./npm-static.js";
47
+ import { isNpmStaticPackage, npmStaticActive, npmStaticFsShadow, npmStaticPackageOfPath, reportNpmStaticOffender, setNpmStaticDeclarationOverloads, setNpmStaticPackages, } from "./npm-static.js";
48
48
  import { isPrunedNpmReexport, planNpmStaticReexports } from "./npm-static-prune.js";
49
49
  import { isNpmStaticSubclassArgument } from "./npm-static-subtyping.js";
50
- import { npmStaticDeclarationReexports, npmStaticRuntimeClassTargets, parseNpmStaticDeclarationOverloads, parseNpmStaticDeclarationProperties } from "./npm-static-declaration-syntax.js";
50
+ import { npmStaticDeclarationReexports, npmStaticRuntimeClassTargets, parseNpmStaticDeclarationOverloads, parseNpmStaticDeclarationProperties, } from "./npm-static-declaration-syntax.js";
51
51
  import { provenanceEntryFor, provenancePaths } from "./provenance-registry.js";
52
52
  import { cjsLexedExportsOfFile, cjsVisibleNames } from "./cjs-syntax.js";
53
53
  import { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath, tsgoPath, } from "./dts-paths.js";
@@ -56,6 +56,8 @@ import { clearWorkspacePackages, isRelativeSpecifier, isWorkspacePackageName, np
56
56
  import { ADOPTED_OPTIONS, isJsSourceFileName, JS_ANY_OPERATOR_CODES, JS_RELAXED_TSC_CODES, } from "./tsc-codes.js";
57
57
  import { trackedFileExists, trackedReadFile, trackedRealpath } from "./input-tracker.js";
58
58
  import { forkTargetPaths } from "./fork-target.js";
59
+ import { workerTargetPaths } from "./worker-target.js";
60
+ import { moduleSourceCandidates } from "./module-source-candidates.js";
59
61
  import { inferredJsDiagnosticSuppressed } from "./inferred-js-diagnostics.js";
60
62
  const BASE_OPTIONS = {
61
63
  strict: true,
@@ -146,7 +148,9 @@ function projectAllowsSyntheticDefaultImports(options) {
146
148
  moduleKind === ts.ModuleKind.Node20 ||
147
149
  moduleKind === ts.ModuleKind.NodeNext ||
148
150
  moduleKind === ts.ModuleKind.Preserve;
149
- return esModuleInterop || moduleKind === ts.ModuleKind.System || options["moduleResolution"] === ts.ModuleResolutionKind.Bundler;
151
+ return (esModuleInterop ||
152
+ moduleKind === ts.ModuleKind.System ||
153
+ options["moduleResolution"] === ts.ModuleResolutionKind.Bundler);
150
154
  }
151
155
  /** The project's tsconfig adoption in the 7 world: tsgo's own config parser
152
156
  * (extends chains resolved server-side), the ADOPTED_OPTIONS subset taken,
@@ -182,7 +186,9 @@ function adoptProjectConfig7(host, entryPath) {
182
186
  const configDir = dirname(configFile);
183
187
  const rawBaseUrl = parsed.options["baseUrl"];
184
188
  const base = typeof rawBaseUrl === "string"
185
- ? (isAbsolute(rawBaseUrl) ? rawBaseUrl : resolve(configDir, rawBaseUrl))
189
+ ? isAbsolute(rawBaseUrl)
190
+ ? rawBaseUrl
191
+ : resolve(configDir, rawBaseUrl)
186
192
  : configDir;
187
193
  const paths = {};
188
194
  for (const [key, targets] of Object.entries(rawPaths)) {
@@ -190,7 +196,7 @@ function adoptProjectConfig7(host, entryPath) {
190
196
  continue;
191
197
  paths[key] = targets
192
198
  .filter((target) => typeof target === "string")
193
- .map((target) => isAbsolute(target) ? target : resolve(base, target));
199
+ .map((target) => (isAbsolute(target) ? target : resolve(base, target)));
194
200
  }
195
201
  adopted["paths"] = paths;
196
202
  }
@@ -247,7 +253,9 @@ function runtimeReexportTarget(fromFile, specifier) {
247
253
  function visitNpmStaticDeclarationClosure(services, entryPath, onSource) {
248
254
  const seen = new Set();
249
255
  const packageJson = nearestPkgJsonPath(entryPath);
250
- const packageRoot = (packageJson === null ? dirname(entryPath) : dirname(packageJson)).split("\\").join("/");
256
+ const packageRoot = (packageJson === null ? dirname(entryPath) : dirname(packageJson))
257
+ .split("\\")
258
+ .join("/");
251
259
  const visit = (path) => {
252
260
  path = resolve(path);
253
261
  const normalized = path.split("\\").join("/");
@@ -377,20 +385,21 @@ function externalTypeFileClosure7(program, externalTypes) {
377
385
  * an explicit root, to a fixpoint, so the same TS 7 AST/checker world owns
378
386
  * their exports and transitive graph. */
379
387
  function createRequireProgramRoots7(program) {
380
- const known = new Set(program.getSourceFiles().map((sf) => tsgoPath(resolve(sf.fileName))));
388
+ const known = new Set(program.getSourceFileNames().map((name) => tsgoPath(resolve(name))));
381
389
  const roots = new Set();
382
- for (const sf of program.getSourceFiles()) {
390
+ for (const sf of program.getImplementationSourceFiles()) {
383
391
  if (sf.isDeclarationFile || sf.fileName.endsWith(".json"))
384
392
  continue;
385
393
  const calls = [];
386
- ts.walkPreorder(sf, (node) => {
387
- if (!ts.isCallExpression(node) || node.questionDotToken !== undefined ||
388
- node.arguments.length !== 1 || !ts.isStringLiteralLike(node.arguments[0]) ||
394
+ for (const node of moduleSourceCandidates(program, sf).calls) {
395
+ if (node.questionDotToken !== undefined ||
396
+ node.arguments.length !== 1 ||
397
+ !ts.isStringLiteralLike(node.arguments[0]) ||
389
398
  !ts.isIdentifier(node.expression)) {
390
- return undefined;
399
+ continue;
391
400
  }
392
401
  calls.push({ callee: node.expression, spec: node.arguments[0].text });
393
- });
402
+ }
394
403
  // Root discovery only needs the callee's binding. A first-miss lookup
395
404
  // otherwise fetches symbols and types for every identifier in the file,
396
405
  // including all unreachable bodies in large published packages.
@@ -403,7 +412,9 @@ function createRequireProgramRoots7(program) {
403
412
  let target = resolveProjectModule(sf.fileName, spec);
404
413
  if (target === null && !spec.startsWith("#")) {
405
414
  const npm = resolveNpmImport7(sf.fileName, spec, "require");
406
- if (npm !== null && isNpmStaticPackage(npm.packageName) && isJsSourceFileName(npm.typesFile)) {
415
+ if (npm !== null &&
416
+ isNpmStaticPackage(npm.packageName) &&
417
+ isJsSourceFileName(npm.typesFile)) {
407
418
  target = npm.typesFile;
408
419
  }
409
420
  }
@@ -428,8 +439,10 @@ export function entryPackageFilePredicate(entryPath) {
428
439
  : entryFile.slice(0, installedAt) + "/node_modules/" + npmPackageNameOf(entryFile) + "/";
429
440
  return (file) => {
430
441
  const normalized = tsgoPath(file);
431
- return normalized === entryFile || (prefix !== null && normalized.startsWith(prefix) &&
432
- !normalized.slice(prefix.length).split("/").includes("node_modules"));
442
+ return (normalized === entryFile ||
443
+ (prefix !== null &&
444
+ normalized.startsWith(prefix) &&
445
+ !normalized.slice(prefix.length).split("/").includes("node_modules")));
433
446
  };
434
447
  }
435
448
  /** maxNodeModuleJsDepth can omit relative imports within an admitted
@@ -438,14 +451,17 @@ export function entryPackageFilePredicate(entryPath) {
438
451
  function entryPackageProgramRoots7(program, entryPath) {
439
452
  const belongsToEntry = entryPackageFilePredicate(entryPath);
440
453
  const roots = new Set();
441
- for (const sf of program.getSourceFiles()) {
442
- if (sf.isDeclarationFile || (!belongsToEntry(sf.fileName) && npmStaticPackageOfPath(sf.fileName) === null))
454
+ for (const sf of program.getImplementationSourceFiles()) {
455
+ if (sf.isDeclarationFile ||
456
+ (!belongsToEntry(sf.fileName) && npmStaticPackageOfPath(sf.fileName) === null))
443
457
  continue;
444
458
  for (const specifier of sf.imports) {
445
459
  if (!ts.isStringLiteralLike(specifier))
446
460
  continue;
447
461
  const target = resolveProjectModule(sf.fileName, specifier.text);
448
- if (target !== null && (belongsToEntry(target) || npmStaticPackageOfPath(target) !== null) && isJsSourceFileName(target) &&
462
+ if (target !== null &&
463
+ (belongsToEntry(target) || npmStaticPackageOfPath(target) !== null) &&
464
+ isJsSourceFileName(target) &&
449
465
  program.getSourceFile(target) === undefined)
450
466
  roots.add(target);
451
467
  }
@@ -464,7 +480,9 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
464
480
  // not scriptc's fence and drowns real diagnostics in hundreds of
465
481
  // .d.ts-internal errors. Fence discipline never depended on it: the
466
482
  // lowerer checks provenance and forms at every use site.
467
- let options = nodeTypes ? { ...config.options, skipLibCheck: true } : { ...config.options };
483
+ let options = nodeTypes
484
+ ? { ...config.options, skipLibCheck: true }
485
+ : { ...config.options };
468
486
  // --npm-static: opted-in packages' shipped JS must be TYPE-INCLUDED (not
469
487
  // just resolved) — without maxNodeModuleJsDepth, node_modules JS types as
470
488
  // an implicit-any module (TS7016) and nothing infers. Only flagged
@@ -481,6 +499,8 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
481
499
  if (provenance !== null || externalTypes.size > 0) {
482
500
  const paths = {
483
501
  ...configuredPaths,
502
+ // Keep an index-signature source for native lowering when provenance is absent.
503
+ // oxlint-disable-next-line unicorn/no-useless-fallback-in-spread
484
504
  ...(provenance ?? {}),
485
505
  };
486
506
  for (const [specifier, declarationPath] of externalTypes) {
@@ -496,7 +516,8 @@ function loadProgram7(host, entryPath, externalTypes = new Map()) {
496
516
  const candidates = [
497
517
  ...entryPackageProgramRoots7(program, entryPath),
498
518
  ...createRequireProgramRoots7(program),
499
- ...forkTargetPaths(program, program.getSourceFiles()),
519
+ ...forkTargetPaths(program, program.getImplementationSourceFiles()),
520
+ ...workerTargetPaths(program, program.getImplementationSourceFiles()),
500
521
  ];
501
522
  const extraRoots = candidates.filter((root, index) => !programRoots.includes(root) && candidates.indexOf(root) === index);
502
523
  if (extraRoots.length === 0)
@@ -584,7 +605,9 @@ export function loadProgram(entryPath, services, opts) {
584
605
  const fields = properties.get(className);
585
606
  if (methods === undefined && fields === undefined)
586
607
  continue;
587
- const target = specifier === null ? runtime.typesFile : runtimeReexportTarget(runtime.typesFile, specifier);
608
+ const target = specifier === null
609
+ ? runtime.typesFile
610
+ : runtimeReexportTarget(runtime.typesFile, specifier);
588
611
  if (target === null)
589
612
  continue;
590
613
  const targetPackage = npmPackageNameOf(target);
@@ -610,17 +633,23 @@ export function loadProgram(entryPath, services, opts) {
610
633
  projectionOwners.set(projectionKey, className);
611
634
  // The safe declaration grammar can name only its own class. Bind
612
635
  // that type to the actual runtime class after a named ESM alias.
613
- const renameSelf = (type) => type.split(/([\s[\]<>()|,]+)/).map((name) => name === className ? localName : name).join("");
636
+ const renameSelf = (type) => type
637
+ .split(/([\s[\]<>()|,]+)/)
638
+ .map((name) => (name === className ? localName : name))
639
+ .join("");
614
640
  if (methods !== undefined) {
615
641
  const byClass = new Map(declarationOverloads.get(targetNorm) ?? []);
616
- byClass.set(localName, new Map([...methods].map(([name, signatures]) => [name, signatures.map((signature) => ({
642
+ byClass.set(localName, new Map([...methods].map(([name, signatures]) => [
643
+ name,
644
+ signatures.map((signature) => ({
617
645
  parameters: signature.parameters.map((parameter) => ({
618
646
  name: parameter.name,
619
647
  type: renameSelf(parameter.type),
620
648
  optional: parameter.optional,
621
649
  })),
622
650
  returnType: renameSelf(signature.returnType),
623
- }))])));
651
+ })),
652
+ ])));
624
653
  declarationOverloads.set(targetNorm, byClass);
625
654
  }
626
655
  if (fields !== undefined) {
@@ -668,16 +697,18 @@ export function loadProgram(entryPath, services, opts) {
668
697
  return {
669
698
  ...load,
670
699
  services,
671
- projectWorld: npmStaticPackages.length === 0 ? load.projectWorld : () => {
672
- // Check authored code against the package's published declarations.
673
- // Runtime bodies still lower from JavaScript in the original world;
674
- // inference there must not manufacture errors in valid user code.
675
- if (!authoredLoad) {
676
- authoredHost = services.createProgramHost({ cwd: dirname(entryPath) });
677
- authoredLoad = loadProgram7(authoredHost, entryPath, externalTypes);
678
- }
679
- return authoredLoad.projectWorld();
680
- },
700
+ projectWorld: npmStaticPackages.length === 0
701
+ ? load.projectWorld
702
+ : () => {
703
+ // Check authored code against the package's published declarations.
704
+ // Runtime bodies still lower from JavaScript in the original world;
705
+ // inference there must not manufacture errors in valid user code.
706
+ if (!authoredLoad) {
707
+ authoredHost = services.createProgramHost({ cwd: dirname(entryPath) });
708
+ authoredLoad = loadProgram7(authoredHost, entryPath, externalTypes);
709
+ }
710
+ return authoredLoad.projectWorld();
711
+ },
681
712
  dispose: () => {
682
713
  try {
683
714
  authoredLoad?.disposeAll();
@@ -750,8 +781,10 @@ function suppressedJsStrictness7(d) {
750
781
  * extra arguments) is not a module edge and fences at its use site. */
751
782
  function requireSpecOf7(node) {
752
783
  let value = node;
753
- while (ts.isParenthesizedExpression(value) || ts.isAsExpression(value) ||
754
- ts.isTypeAssertion(value) || ts.isNonNullExpression(value)) {
784
+ while (ts.isParenthesizedExpression(value) ||
785
+ ts.isAsExpression(value) ||
786
+ ts.isTypeAssertion(value) ||
787
+ ts.isNonNullExpression(value)) {
755
788
  value = value.expression;
756
789
  }
757
790
  if (!ts.isCallExpression(value))
@@ -774,7 +807,8 @@ function isRequireStatement7(stmt) {
774
807
  if (!ts.isVariableStatement(stmt))
775
808
  return false;
776
809
  const decls = stmt.declarationList.declarations;
777
- return decls.length > 0 && decls.every((d) => d.initializer !== undefined && requireSpecOf7(d.initializer) !== null);
810
+ return (decls.length > 0 &&
811
+ decls.every((d) => d.initializer !== undefined && requireSpecOf7(d.initializer) !== null));
778
812
  }
779
813
  /** The require() occurrences of one top-level statement: the declaration
780
814
  * forms and the bare side-effect call. Empty for everything else. */
@@ -850,7 +884,7 @@ function pureCjsExport7(program, stmt) {
850
884
  receiver = receiver.expression;
851
885
  return ts.isIdentifier(receiver) && !sourceBinding7(program, receiver);
852
886
  }
853
- return ts.isIdentifier(receiver) && receiver.text === "exports" && !sourceBinding7(program, receiver);
887
+ return (ts.isIdentifier(receiver) && receiver.text === "exports" && !sourceBinding7(program, receiver));
854
888
  };
855
889
  if (cjs.kind === "member") {
856
890
  if (!plainMember(cjs.expr.left))
@@ -870,8 +904,10 @@ function pureCjsExport7(program, stmt) {
870
904
  }
871
905
  if (ts.isVoidExpression(value) && ts.isNumericLiteral(value.expression))
872
906
  return true;
873
- if (ts.isStringLiteralLike(value) || ts.isNumericLiteral(value) ||
874
- value.kind === ts.SyntaxKind.TrueKeyword || value.kind === ts.SyntaxKind.FalseKeyword ||
907
+ if (ts.isStringLiteralLike(value) ||
908
+ ts.isNumericLiteral(value) ||
909
+ value.kind === ts.SyntaxKind.TrueKeyword ||
910
+ value.kind === ts.SyntaxKind.FalseKeyword ||
875
911
  value.kind === ts.SyntaxKind.NullKeyword)
876
912
  return true;
877
913
  if (!ts.isIdentifier(value))
@@ -880,19 +916,28 @@ function pureCjsExport7(program, stmt) {
880
916
  return true;
881
917
  const checker = program.getTypeChecker();
882
918
  const symbol = checker.getSymbolAtLocation(value);
883
- return symbol !== undefined && checker.declarationsOf(symbol).some((decl) => ts.isFunctionDeclaration(decl) && decl.parent === stmt.parent);
919
+ return (symbol !== undefined &&
920
+ checker
921
+ .declarationsOf(symbol)
922
+ .some((decl) => ts.isFunctionDeclaration(decl) && decl.parent === stmt.parent));
884
923
  }
885
924
  function sourceBinding7(program, ident) {
886
925
  const checker = program.getTypeChecker();
887
926
  const symbol = checker.getSymbolAtLocation(ident);
888
- return symbol !== undefined && checker.declarationsOf(symbol).some((decl) => !decl.getSourceFile().isDeclarationFile && !ts.isSourceFile(decl));
927
+ return (symbol !== undefined &&
928
+ checker
929
+ .declarationsOf(symbol)
930
+ .some((decl) => !decl.getSourceFile().isDeclarationFile && !ts.isSourceFile(decl)));
889
931
  }
890
932
  function purePrefixDecl7(decl) {
891
933
  const init = decl.initializer;
892
- return init === undefined || requireSpecOf7(init) !== null ||
893
- ts.isStringLiteralLike(init) || ts.isNumericLiteral(init) ||
894
- init.kind === ts.SyntaxKind.TrueKeyword || init.kind === ts.SyntaxKind.FalseKeyword ||
895
- init.kind === ts.SyntaxKind.NullKeyword;
934
+ return (init === undefined ||
935
+ requireSpecOf7(init) !== null ||
936
+ ts.isStringLiteralLike(init) ||
937
+ ts.isNumericLiteral(init) ||
938
+ init.kind === ts.SyntaxKind.TrueKeyword ||
939
+ init.kind === ts.SyntaxKind.FalseKeyword ||
940
+ init.kind === ts.SyntaxKind.NullKeyword);
896
941
  }
897
942
  /** True for top-level statements that cannot run user code: directives,
898
943
  * empty statements, hoisted declarations, require statements themselves,
@@ -913,7 +958,9 @@ function purePrefixStmt7(program, s) {
913
958
  let receiver = call.arguments[0];
914
959
  if (ts.isPropertyAccessExpression(receiver))
915
960
  receiver = receiver.expression;
916
- if (!sourceBinding7(program, object) && ts.isIdentifier(receiver) && !sourceBinding7(program, receiver))
961
+ if (!sourceBinding7(program, object) &&
962
+ ts.isIdentifier(receiver) &&
963
+ !sourceBinding7(program, receiver))
917
964
  return true;
918
965
  }
919
966
  if (pureCjsExport7(program, s))
@@ -1065,7 +1112,7 @@ function isCreateRequireImport7(program, ident) {
1065
1112
  if (targetDecl !== undefined && targetDecl.getSourceFile().isDeclarationFile) {
1066
1113
  for (let p = targetDecl.parent; p !== undefined && !ts.isSourceFile(p); p = p.parent) {
1067
1114
  if (ts.isModuleDeclaration(p) && ts.isStringLiteral(p.name)) {
1068
- return canonicalBuiltinModule(p.name.text) === "module" && target.name === "createRequire";
1115
+ return (canonicalBuiltinModule(p.name.text) === "module" && target.name === "createRequire");
1069
1116
  }
1070
1117
  }
1071
1118
  }
@@ -1079,15 +1126,18 @@ export function isCreateRequireBinding7(program, callee) {
1079
1126
  const checker = program.getTypeChecker();
1080
1127
  const symbol = checker.getSymbolAtLocation(callee);
1081
1128
  const decl = symbol
1082
- ? checker.declarationsOf(symbol).find((d) => ts.isVariableDeclaration(d))
1129
+ ? checker
1130
+ .declarationsOf(symbol)
1131
+ .find((d) => ts.isVariableDeclaration(d))
1083
1132
  : undefined;
1084
1133
  if (decl === undefined ||
1085
1134
  decl.initializer === undefined ||
1086
1135
  !ts.isVariableDeclarationList(decl.parent)) {
1087
1136
  return false;
1088
1137
  }
1089
- return isCreateRequireBaseCall7(program, decl.initializer) && ((decl.parent.flags & ts.NodeFlags.Const) !== 0 ||
1090
- stableCreateRequireBindingReason7(program, decl) === null);
1138
+ return (isCreateRequireBaseCall7(program, decl.initializer) &&
1139
+ ((decl.parent.flags & ts.NodeFlags.Const) !== 0 ||
1140
+ stableCreateRequireBindingReason7(program, decl) === null));
1091
1141
  }
1092
1142
  /** Only literal calls and literal resolution queries can erase the loader
1093
1143
  * value. In particular, assignments, exported aliases, shorthand properties,
@@ -1096,14 +1146,23 @@ function staticCreateRequireUse7(expr) {
1096
1146
  let use = expr;
1097
1147
  while (ts.isParenthesizedExpression(use.parent))
1098
1148
  use = use.parent;
1099
- if (ts.isPropertyAccessExpression(use.parent) && use.parent.expression === use && use.parent.name.text === "resolve" && !use.parent.questionDotToken) {
1149
+ if (ts.isPropertyAccessExpression(use.parent) &&
1150
+ use.parent.expression === use &&
1151
+ use.parent.name.text === "resolve" &&
1152
+ !use.parent.questionDotToken) {
1100
1153
  use = use.parent;
1101
- if (ts.isPropertyAccessExpression(use.parent) && use.parent.expression === use && use.parent.name.text === "paths" && !use.parent.questionDotToken)
1154
+ if (ts.isPropertyAccessExpression(use.parent) &&
1155
+ use.parent.expression === use &&
1156
+ use.parent.name.text === "paths" &&
1157
+ !use.parent.questionDotToken)
1102
1158
  use = use.parent;
1103
1159
  }
1104
1160
  const call = use.parent;
1105
- return ts.isCallExpression(call) && call.expression === use && !call.questionDotToken &&
1106
- call.arguments.length === 1 && ts.isStringLiteralLike(call.arguments[0]);
1161
+ return (ts.isCallExpression(call) &&
1162
+ call.expression === use &&
1163
+ !call.questionDotToken &&
1164
+ call.arguments.length === 1 &&
1165
+ ts.isStringLiteralLike(call.arguments[0]));
1107
1166
  }
1108
1167
  function stableCreateRequireBindingReason7(program, decl) {
1109
1168
  const cache = program.analysis.createRequireReasons;
@@ -1111,7 +1170,9 @@ function stableCreateRequireBindingReason7(program, decl) {
1111
1170
  return cache.get(decl);
1112
1171
  const check = () => {
1113
1172
  const stmt = decl.parent?.parent;
1114
- if (!ts.isIdentifier(decl.name) || !ts.isVariableStatement(stmt) || !ts.isSourceFile(stmt.parent)) {
1173
+ if (!ts.isIdentifier(decl.name) ||
1174
+ !ts.isVariableStatement(stmt) ||
1175
+ !ts.isSourceFile(stmt.parent)) {
1115
1176
  return "its mutable createRequire binding is outside the module's top level";
1116
1177
  }
1117
1178
  const checker = program.getTypeChecker();
@@ -1189,19 +1250,29 @@ function npmStaticModuleImportReason7(program, stmt) {
1189
1250
  let reason = null;
1190
1251
  const checkUse = (expr) => {
1191
1252
  if (!staticCreateRequireUse7(expr)) {
1192
- reason = "its createRequire result escapes or is used with a computed specifier (static requires need literal specifiers)";
1253
+ reason =
1254
+ "its createRequire result escapes or is used with a computed specifier (static requires need literal specifiers)";
1193
1255
  }
1194
1256
  };
1195
1257
  ts.walkPreorder(sf, (node) => {
1196
- if (reason || !ts.isIdentifier(node) || node.text !== specifier.name.text || node === specifier.name || checker.getSymbolAtLocation(node) !== imported)
1258
+ if (reason ||
1259
+ !ts.isIdentifier(node) ||
1260
+ node.text !== specifier.name.text ||
1261
+ node === specifier.name ||
1262
+ checker.getSymbolAtLocation(node) !== imported)
1197
1263
  return;
1198
1264
  const call = node.parent;
1199
- if (!ts.isCallExpression(call) || call.expression !== node || !isCreateRequireBaseCall7(program, call)) {
1200
- reason = "its createRequire import is used outside a supported call based on the current file";
1265
+ if (!ts.isCallExpression(call) ||
1266
+ call.expression !== node ||
1267
+ !isCreateRequireBaseCall7(program, call)) {
1268
+ reason =
1269
+ "its createRequire import is used outside a supported call based on the current file";
1201
1270
  return;
1202
1271
  }
1203
1272
  const decl = call.parent;
1204
- if (ts.isVariableDeclaration(decl) && decl.initializer === call && ts.isIdentifier(decl.name)) {
1273
+ if (ts.isVariableDeclaration(decl) &&
1274
+ decl.initializer === call &&
1275
+ ts.isIdentifier(decl.name)) {
1205
1276
  if ((ts.getCombinedModifierFlags(decl) & ts.ModifierFlags.Export) !== 0) {
1206
1277
  reason = "its createRequire result escapes through an exported binding";
1207
1278
  return;
@@ -1214,7 +1285,10 @@ function npmStaticModuleImportReason7(program, stmt) {
1214
1285
  const name = decl.name.text;
1215
1286
  checker.prefetchSymbolNodesExact(identifierOccurrences7(sf, name));
1216
1287
  ts.walkPreorder(sf, (ref) => {
1217
- if (ts.isIdentifier(ref) && ref.text === name && ref !== decl.name && checker.getSymbolAtLocation(ref) === sym)
1288
+ if (ts.isIdentifier(ref) &&
1289
+ ref.text === name &&
1290
+ ref !== decl.name &&
1291
+ checker.getSymbolAtLocation(ref) === sym)
1218
1292
  checkUse(ref);
1219
1293
  });
1220
1294
  }
@@ -1242,7 +1316,7 @@ function requireCallBindingKind7(program, node) {
1242
1316
  if (symbol === undefined)
1243
1317
  return "ambient";
1244
1318
  const decls = checker.declarationsOf(symbol);
1245
- if (decls.length === 0 || decls.every((d) => d.getSourceFile().isDeclarationFile))
1319
+ if (decls.every((d) => d.getSourceFile().isDeclarationFile))
1246
1320
  return "ambient";
1247
1321
  return isCreateRequireBinding7(program, call.expression) ? "createRequire" : "source";
1248
1322
  }
@@ -1281,9 +1355,7 @@ function nodeEsmSyntaxMarker7(sf) {
1281
1355
  for (const stmt of sf.statements) {
1282
1356
  if (ts.isImportDeclaration(stmt) && !erasedTypeOnlyImport(stmt))
1283
1357
  return stmt;
1284
- if (ts.isExportDeclaration(stmt) &&
1285
- !stmt.isTypeOnly &&
1286
- !erasedTypeOnlyReexport(stmt)) {
1358
+ if (ts.isExportDeclaration(stmt) && !stmt.isTypeOnly && !erasedTypeOnlyReexport(stmt)) {
1287
1359
  return stmt;
1288
1360
  }
1289
1361
  if (ts.isExportAssignment(stmt))
@@ -1300,14 +1372,15 @@ function nodeEsmSyntaxMarker7(sf) {
1300
1372
  return hit;
1301
1373
  }
1302
1374
  }
1303
- if (ts.isClassDeclaration(stmt) && stmt.name !== undefined && CJS_WRAPPER_NAMES.has(stmt.name.text)) {
1375
+ if (ts.isClassDeclaration(stmt) &&
1376
+ stmt.name !== undefined &&
1377
+ CJS_WRAPPER_NAMES.has(stmt.name.text)) {
1304
1378
  return stmt.name;
1305
1379
  }
1306
1380
  }
1307
1381
  let found = null;
1308
1382
  ts.walkPreorder(sf, (node) => {
1309
- if (ts.isMetaProperty(node) &&
1310
- node.keywordToken === ts.SyntaxKind.ImportKeyword) {
1383
+ if (ts.isMetaProperty(node) && node.keywordToken === ts.SyntaxKind.ImportKeyword) {
1311
1384
  found = node;
1312
1385
  return "stop";
1313
1386
  }
@@ -1341,11 +1414,12 @@ function isNodeEsmFile7(sf, program) {
1341
1414
  }
1342
1415
  else {
1343
1416
  const packageType = nearestPackageType(sf.fileName);
1344
- result = packageType === "module"
1345
- ? true
1346
- : packageType === "commonjs"
1347
- ? false
1348
- : nodeEsmSyntaxMarker7(sf) !== null;
1417
+ result =
1418
+ packageType === "module"
1419
+ ? true
1420
+ : packageType === "commonjs"
1421
+ ? false
1422
+ : nodeEsmSyntaxMarker7(sf) !== null;
1349
1423
  }
1350
1424
  program?.analysis.nodeEsmFiles.set(sf, result);
1351
1425
  return result;
@@ -1468,7 +1542,9 @@ function nsBindingUsesAreBareStatements7(program, sf, nsName) {
1468
1542
  node !== nsName &&
1469
1543
  node.text === nsName.text &&
1470
1544
  checker.getSymbolAtLocation(node) === bindingSym) {
1471
- if (!(node.parent !== undefined && ts.isExpressionStatement(node.parent) && node.parent.expression === node)) {
1545
+ if (!(node.parent !== undefined &&
1546
+ ts.isExpressionStatement(node.parent) &&
1547
+ node.parent.expression === node)) {
1472
1548
  bareOnly = false;
1473
1549
  return;
1474
1550
  }
@@ -1641,7 +1717,10 @@ function nonInertTopLevel7(program, sf) {
1641
1717
  }
1642
1718
  if (ts.isClassExpression(e))
1643
1719
  return inertClass(e) === null;
1644
- if (ts.isParenthesizedExpression(e) || ts.isAsExpression(e) || ts.isSatisfiesExpression(e) || ts.isNonNullExpression(e)) {
1720
+ if (ts.isParenthesizedExpression(e) ||
1721
+ ts.isAsExpression(e) ||
1722
+ ts.isSatisfiesExpression(e) ||
1723
+ ts.isNonNullExpression(e)) {
1645
1724
  return inert(e.expression);
1646
1725
  }
1647
1726
  if (ts.isPropertyAccessExpression(e))
@@ -1708,7 +1787,9 @@ function nonInertTopLevel7(program, sf) {
1708
1787
  ts.isInterfaceDeclaration(stmt) ||
1709
1788
  ts.isTypeAliasDeclaration(stmt) ||
1710
1789
  ts.isEmptyStatement(stmt) ||
1711
- (ts.getCombinedModifierFlags(stmt) & ts.ModifierFlags.Ambient) !== 0) {
1790
+ (ts.getCombinedModifierFlags(stmt) &
1791
+ ts.ModifierFlags.Ambient) !==
1792
+ 0) {
1712
1793
  continue;
1713
1794
  }
1714
1795
  if (ts.isEnumDeclaration(stmt)) {
@@ -1952,7 +2033,8 @@ function resolveImport7(program, from, specifier, resolutionKind = "import") {
1952
2033
  return program.getSourceFile(resolved) ?? null;
1953
2034
  const npm = resolveNpmImport7(from.fileName, specifier, resolutionKind);
1954
2035
  return npm && isNpmStaticPackage(npm.packageName)
1955
- ? npmStaticProgramDep(program, npm.packageName, npm.typesFile) : null;
2036
+ ? npmStaticProgramDep(program, npm.packageName, npm.typesFile)
2037
+ : null;
1956
2038
  }
1957
2039
  /** An import that resolves into node_modules: the package's shipped .d.ts
1958
2040
  * is the type surface, and the package's shipped JS runs in the dynamic
@@ -2095,26 +2177,11 @@ function preflight7(load) {
2095
2177
  if (r !== null && r.workspaceDir !== undefined)
2096
2178
  registerWorkspacePackage(r.packageName, r.workspaceDir);
2097
2179
  };
2098
- for (const sf of program.getSourceFiles()) {
2180
+ for (const sf of program.getImplementationSourceFiles()) {
2099
2181
  if (sf.isDeclarationFile || sf.fileName.endsWith(".json"))
2100
2182
  continue;
2101
- ts.walkPreorder(sf, (n) => {
2102
- if ((ts.isImportDeclaration(n) || ts.isExportDeclaration(n)) &&
2103
- n.moduleSpecifier !== undefined &&
2104
- ts.isStringLiteral(n.moduleSpecifier)) {
2105
- probe(sf.fileName, n.moduleSpecifier.text);
2106
- return "skip";
2107
- }
2108
- if (ts.isCallExpression(n)) {
2109
- const arg = n.arguments[0];
2110
- const isImportCall = n.expression.kind === ts.SyntaxKind.ImportKeyword;
2111
- const isRequireCall = ts.isIdentifier(n.expression) && n.expression.text === "require";
2112
- if ((isImportCall || isRequireCall) && arg !== undefined && ts.isStringLiteralLike(arg)) {
2113
- probe(sf.fileName, arg.text);
2114
- }
2115
- }
2116
- return undefined;
2117
- });
2183
+ for (const specifier of moduleSourceCandidates(program, sf).specifiers)
2184
+ probe(sf.fileName, specifier);
2118
2185
  }
2119
2186
  }
2120
2187
  const toPassthrough = (d) => {
@@ -2244,7 +2311,9 @@ function preflight7(load) {
2244
2311
  if (!sf)
2245
2312
  return false;
2246
2313
  const spec = sf.text.slice(d.pos, d.end).replace(/^['"]|['"]$/g, "");
2247
- const prefix = spec.startsWith("@") ? spec.split("/").slice(0, 2).join("/") : spec.split("/")[0];
2314
+ const prefix = spec.startsWith("@")
2315
+ ? spec.split("/").slice(0, 2).join("/")
2316
+ : spec.split("/")[0];
2248
2317
  return isWorkspacePackageName(prefix);
2249
2318
  };
2250
2319
  const errorsOf = (p) => {
@@ -2296,14 +2365,21 @@ function preflight7(load) {
2296
2365
  // reachable bodies are added by lowering's worklists.
2297
2366
  const ambient = ambientDtsPath();
2298
2367
  const programFiles = program
2299
- .getSourceFiles()
2368
+ .getImplementationSourceFiles()
2300
2369
  .filter((sf) => sf.fileName !== ambient &&
2301
2370
  !sf.isDeclarationFile &&
2302
2371
  !sf.fileName.endsWith(".json") &&
2303
- (!isNodeModulesPath(sf.fileName) || entryPackageFile(sf.fileName) || npmStaticPackageOfPath(sf.fileName) !== null) &&
2372
+ (!isNodeModulesPath(sf.fileName) ||
2373
+ entryPackageFile(sf.fileName) ||
2374
+ npmStaticPackageOfPath(sf.fileName) !== null) &&
2304
2375
  !islandJsFile(sf.fileName));
2305
2376
  const userFiles = npmStaticActive()
2306
- ? planNpmStaticReexports(program, entry, programFiles, [...createRequireProgramRoots7(program), ...forkTargetPaths(program, program.getSourceFiles())], (sf, spec, resolutionKind) => resolveImport7(program, sf, spec, resolutionKind) ?? npmStaticDepSf7(program, sf, spec, resolutionKind))
2377
+ ? planNpmStaticReexports(program, entry, programFiles, [
2378
+ ...createRequireProgramRoots7(program),
2379
+ ...forkTargetPaths(program, program.getImplementationSourceFiles()),
2380
+ ...workerTargetPaths(program, program.getImplementationSourceFiles()),
2381
+ ], (sf, spec, resolutionKind) => resolveImport7(program, sf, spec, resolutionKind) ??
2382
+ npmStaticDepSf7(program, sf, spec, resolutionKind))
2307
2383
  : programFiles;
2308
2384
  program.getTypeChecker().prefetchSourceFileStructures(userFiles);
2309
2385
  // node_modules JS that no --npm-static opt-in claims is NOT program
@@ -2398,7 +2474,9 @@ function preflight7(load) {
2398
2474
  // lowers to nothing.
2399
2475
  if (ts.isExternalModuleReference(stmt.moduleReference) && !stmt.isTypeOnly) {
2400
2476
  const spec = stmt.moduleReference.expression;
2401
- if (spec !== undefined && ts.isStringLiteralLike(spec) && load.externalTypes.has(spec.text)) {
2477
+ if (spec !== undefined &&
2478
+ ts.isStringLiteralLike(spec) &&
2479
+ load.externalTypes.has(spec.text)) {
2402
2480
  diags.push(externalHostModuleDiag7(spec.text, stmt));
2403
2481
  }
2404
2482
  else {
@@ -2634,10 +2712,13 @@ function preflight7(load) {
2634
2712
  // SC1012 fence. The callable module objects (assert, events, test)
2635
2713
  // stay allowed everywhere. The process default is the global process
2636
2714
  // alias, including when combined with named builtin imports.
2637
- const syntheticDefaultsOn = program.getCompilerOptions().allowSyntheticDefaultImports === true;
2638
- const defaultOk = spec === "process" || spec === "node:process" ||
2715
+ const syntheticDefaultsOn = program.getCompilerOptions()
2716
+ .allowSyntheticDefaultImports === true;
2717
+ const defaultOk = spec === "process" ||
2718
+ spec === "node:process" ||
2639
2719
  builtinDefaultImportModule(spec) !== null ||
2640
- ((isJsSourceFileName(sf.fileName) || syntheticDefaultsOn) && canonicalBuiltinModule(spec) !== null);
2720
+ ((isJsSourceFileName(sf.fileName) || syntheticDefaultsOn) &&
2721
+ canonicalBuiltinModule(spec) !== null);
2641
2722
  if (clause.name && !isJson && dep === null && !defaultOk) {
2642
2723
  diags.push(unsupportedDiag("SC1012", locOf7(clause.name)));
2643
2724
  }
@@ -2714,7 +2795,10 @@ function preflight7(load) {
2714
2795
  continue;
2715
2796
  }
2716
2797
  if (req.decl && ts.isObjectBindingPattern(req.decl.name)) {
2717
- const bad = req.decl.name.elements.find((e) => e.name === undefined || !ts.isIdentifier(e.name) || e.initializer !== undefined || e.dotDotDotToken !== undefined);
2798
+ const bad = req.decl.name.elements.find((e) => e.name === undefined ||
2799
+ !ts.isIdentifier(e.name) ||
2800
+ e.initializer !== undefined ||
2801
+ e.dotDotDotToken !== undefined);
2718
2802
  if (bad) {
2719
2803
  diags.push(unsupportedDiag("SC1012", loc, "require() destructuring with defaults, rest, or nested patterns"));
2720
2804
  continue;
@@ -2728,7 +2812,9 @@ function preflight7(load) {
2728
2812
  // form above (bundle dists require their workspace siblings —
2729
2813
  // the same resolution, the same offender discipline on a
2730
2814
  // miss).
2731
- const npmReq = !req.spec.startsWith("#") ? resolveNpmImport7(sf.fileName, req.spec, "require") : null;
2815
+ const npmReq = !req.spec.startsWith("#")
2816
+ ? resolveNpmImport7(sf.fileName, req.spec, "require")
2817
+ : null;
2732
2818
  if (npmReq !== null && isNpmStaticPackage(npmReq.packageName)) {
2733
2819
  dep = npmStaticProgramDep(program, npmReq.packageName, npmReq.typesFile);
2734
2820
  if (dep === null)
@@ -2783,7 +2869,9 @@ function preflight7(load) {
2783
2869
  }
2784
2870
  }
2785
2871
  const nestedBareRequires = nestedBareRequiresOf7(sf);
2786
- program.getTypeChecker().prefetchSymbolNodesExact(nestedBareRequires.flatMap((call) => ts.isIdentifier(call.expression) ? [call.expression] : []));
2872
+ program
2873
+ .getTypeChecker()
2874
+ .prefetchSymbolNodesExact(nestedBareRequires.flatMap((call) => ts.isIdentifier(call.expression) ? [call.expression] : []));
2787
2875
  for (const call of nestedBareRequires) {
2788
2876
  const spec = requireSpecOf7(call);
2789
2877
  const loc = { file: sf.fileName, start: call.getStart(sf), end: call.getEnd() };
@@ -2813,7 +2901,9 @@ function preflight7(load) {
2813
2901
  if (!isRelativeSpecifier(spec)) {
2814
2902
  // --npm-static: opted-in packages ride the program-module edge
2815
2903
  // (the statement-level require branch above).
2816
- const npmReq = !spec.startsWith("#") ? resolveNpmImport7(sf.fileName, spec, "require") : null;
2904
+ const npmReq = !spec.startsWith("#")
2905
+ ? resolveNpmImport7(sf.fileName, spec, "require")
2906
+ : null;
2817
2907
  if (npmReq !== null && isNpmStaticPackage(npmReq.packageName)) {
2818
2908
  const nDep = npmStaticProgramDep(program, npmReq.packageName, npmReq.typesFile);
2819
2909
  if (nDep !== null)
@@ -2962,14 +3052,16 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
2962
3052
  // Reexport targets union in only when they resolve to CommonJS program
2963
3053
  // files (Node's cjsPreparseModuleExports rule).
2964
3054
  const resolveCjsDep = (from, spec) => {
2965
- const dep = resolveImport7(program, from, spec, "require") ?? npmStaticDepSf7(program, from, spec, "require");
3055
+ const dep = resolveImport7(program, from, spec, "require") ??
3056
+ npmStaticDepSf7(program, from, spec, "require");
2966
3057
  return dep !== null && isCjsJsFile7(dep, program) ? dep : null;
2967
3058
  };
2968
3059
  const visible = (dep, name) =>
2969
3060
  // `default` is the module.exports binding itself — always provided.
2970
3061
  // The program already owns native source ASTs; reuse them without
2971
3062
  // starting another syntax session or reparsing their source text.
2972
- name === "default" || cjsVisibleNames(dep, cjsLexedExportsOfFile, resolveCjsDep, lexMemo).has(name);
3063
+ name === "default" ||
3064
+ cjsVisibleNames(dep, cjsLexedExportsOfFile, resolveCjsDep, lexMemo).has(name);
2973
3065
  /** The statement's resolved LOCAL CommonJS dependency, when it is an
2974
3066
  * import/re-export from one. */
2975
3067
  const cjsDepOf = (sf, spec) => {
@@ -2982,7 +3074,9 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
2982
3074
  const firstInvisibleOf = (sf) => {
2983
3075
  const entries = [];
2984
3076
  for (const stmt of sf.statements) {
2985
- if (!ts.isImportDeclaration(stmt) || stmt.moduleSpecifier === undefined || !ts.isStringLiteral(stmt.moduleSpecifier))
3077
+ if (!ts.isImportDeclaration(stmt) ||
3078
+ stmt.moduleSpecifier === undefined ||
3079
+ !ts.isStringLiteral(stmt.moduleSpecifier))
2986
3080
  continue;
2987
3081
  const clause = stmt.importClause;
2988
3082
  if (!clause || clause.phaseModifier === ts.SyntaxKind.TypeKeyword)
@@ -3040,7 +3134,8 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
3040
3134
  continue;
3041
3135
  if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
3042
3136
  continue;
3043
- if (ts.isImportDeclaration(stmt) && stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
3137
+ if (ts.isImportDeclaration(stmt) &&
3138
+ stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
3044
3139
  continue;
3045
3140
  const specNode = stmt.moduleSpecifier;
3046
3141
  if (specNode === undefined || !ts.isStringLiteral(specNode))
@@ -3078,7 +3173,8 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
3078
3173
  for (const stmt of entry.statements) {
3079
3174
  if (!ts.isImportDeclaration(stmt) && !(ts.isExportDeclaration(stmt) && !stmt.isTypeOnly))
3080
3175
  continue;
3081
- if (ts.isImportDeclaration(stmt) && stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
3176
+ if (ts.isImportDeclaration(stmt) &&
3177
+ stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
3082
3178
  continue;
3083
3179
  const specNode = stmt.moduleSpecifier;
3084
3180
  if (specNode === undefined || !ts.isStringLiteral(specNode) || specNode.text !== bad.spec)
@@ -3090,7 +3186,11 @@ function cjsNamedImportLinkCheck(program, entry, moduleOrder, diags) {
3090
3186
  }
3091
3187
  const loc = locOf7(bad.nameNode);
3092
3188
  if (!flavored) {
3093
- return { message: `The requested module '${bad.spec}' does not provide an export named '${bad.exportName}'`, className: "%SyntaxError", loc };
3189
+ return {
3190
+ message: `The requested module '${bad.spec}' does not provide an export named '${bad.exportName}'`,
3191
+ className: "%SyntaxError",
3192
+ loc,
3193
+ };
3094
3194
  }
3095
3195
  // The destructuring hint: Node regexes the failing name's SOURCE LINE
3096
3196
  // for its brace group (greedy, first `{` to last `}` on the line) and
@@ -3155,9 +3255,15 @@ function analyzeEsmNamedImportLinks(program, entry) {
3155
3255
  // type-only, but the native ESM linker sees the runtime placeholder.
3156
3256
  if (name === "default" &&
3157
3257
  hasNodeTsDefaultInterfacePlaceholder7(dep) &&
3158
- checker.declarationsOf(resolved).some((declaration) => ts.isInterfaceDeclaration(declaration) &&
3159
- ts.getModifiers(declaration)?.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword) === true &&
3160
- ts.getModifiers(declaration)?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) === true)) {
3258
+ checker
3259
+ .declarationsOf(resolved)
3260
+ .some((declaration) => ts.isInterfaceDeclaration(declaration) &&
3261
+ ts
3262
+ .getModifiers(declaration)
3263
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.DefaultKeyword) === true &&
3264
+ ts
3265
+ .getModifiers(declaration)
3266
+ ?.some((modifier) => modifier.kind === ts.SyntaxKind.ExportKeyword) === true)) {
3161
3267
  return resolved;
3162
3268
  }
3163
3269
  return undefined;
@@ -3200,7 +3306,13 @@ function analyzeEsmNamedImportLinks(program, entry) {
3200
3306
  if (dep === null || dep.fileName.endsWith(".json") || !isNodeEsmFile7(dep, program))
3201
3307
  continue;
3202
3308
  if (clause.name !== undefined) {
3203
- imports.push({ local: clause.name.text, exportName: "default", spec, nameNode: clause.name, dep });
3309
+ imports.push({
3310
+ local: clause.name.text,
3311
+ exportName: "default",
3312
+ spec,
3313
+ nameNode: clause.name,
3314
+ dep,
3315
+ });
3204
3316
  }
3205
3317
  if (clause.namedBindings === undefined || !ts.isNamedImports(clause.namedBindings))
3206
3318
  continue;
@@ -3268,7 +3380,8 @@ function analyzeEsmNamedImportLinks(program, entry) {
3268
3380
  continue;
3269
3381
  if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
3270
3382
  continue;
3271
- if (ts.isImportDeclaration(stmt) && stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
3383
+ if (ts.isImportDeclaration(stmt) &&
3384
+ stmt.importClause?.phaseModifier === ts.SyntaxKind.TypeKeyword)
3272
3385
  continue;
3273
3386
  const moduleSpecifier = stmt.moduleSpecifier;
3274
3387
  if (moduleSpecifier === undefined || !ts.isStringLiteral(moduleSpecifier))
@@ -3369,10 +3482,14 @@ function earlierLinkCrash(moduleOrder, first, second) {
3369
3482
  let reexport = 0;
3370
3483
  for (const stmt of sf.statements) {
3371
3484
  const exportClause = ts.isExportDeclaration(stmt) ? stmt.exportClause : undefined;
3372
- if (!ts.isExportDeclaration(stmt) || stmt.isTypeOnly || exportClause === undefined || !ts.isNamedExports(exportClause))
3485
+ if (!ts.isExportDeclaration(stmt) ||
3486
+ stmt.isTypeOnly ||
3487
+ exportClause === undefined ||
3488
+ !ts.isNamedExports(exportClause))
3373
3489
  continue;
3374
3490
  for (const element of exportClause.elements) {
3375
- if (!element.isTypeOnly && (element.propertyName ?? element.name).getStart(sf) === crash.loc.start) {
3491
+ if (!element.isTypeOnly &&
3492
+ (element.propertyName ?? element.name).getStart(sf) === crash.loc.start) {
3376
3493
  return [1, reexport];
3377
3494
  }
3378
3495
  if (!element.isTypeOnly)
@@ -3399,9 +3516,9 @@ const nodeBuiltinNames = new Set(builtinModules);
3399
3516
  * resolution, locations), exported under the names the 5.9.3 program.ts
3400
3517
  * established (the phase-2 port kept every spelling); the world-neutral
3401
3518
  * helpers re-export from their focused modules. */
3402
- export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath, } from "./dts-paths.js";
3519
+ export { ambientDtsPath, fallbackDtsPath, isNodeTypesPath, overridesDtsPath } from "./dts-paths.js";
3403
3520
  export { builtinDefaultImportModule, canonicalBuiltinModule, SUPPORTED_BUILTIN_MODULES, } from "./builtin-modules.js";
3404
- export { npmPackageNameOf, workspacePackageOfPath, } from "./workspace-registry.js";
3521
+ export { npmPackageNameOf, workspacePackageOfPath } from "./workspace-registry.js";
3405
3522
  export { requireSpecOf7 as requireSpecOf, isRequireStatement7 as isRequireStatement, requiresOf7 as requiresOf, isNodeEsmFile7 as isNodeEsmFile, resolveImport7 as resolveImport, resolveNpmImport7 as resolveNpmImport, locOf7 as locOf, };
3406
3523
  /** True for JavaScript source files (.js/.mjs/.cjs) — the files whose
3407
3524
  * types come entirely from inference (checkJs + JSDoc) and whose classes
@@ -3456,7 +3573,8 @@ export function orderedImportsOf(program, sf) {
3456
3573
  for (const stmt of sf.statements) {
3457
3574
  if (ts.isExportDeclaration(stmt) && isPrunedNpmReexport(program, stmt))
3458
3575
  continue;
3459
- if (ts.isExportDeclaration(stmt) && (stmt.isTypeOnly || erasedTypeOnlyReexport(stmt) || !stmt.moduleSpecifier))
3576
+ if (ts.isExportDeclaration(stmt) &&
3577
+ (stmt.isTypeOnly || erasedTypeOnlyReexport(stmt) || !stmt.moduleSpecifier))
3460
3578
  continue;
3461
3579
  if (!ts.isImportDeclaration(stmt) && !ts.isExportDeclaration(stmt))
3462
3580
  continue;
@@ -3587,7 +3705,10 @@ export function cjsExportTargetLiteral(e, sf) {
3587
3705
  if ((stmt.declarationList.flags & ts.NodeFlags.Const) === 0)
3588
3706
  continue;
3589
3707
  for (const d of stmt.declarationList.declarations) {
3590
- if (d.name !== undefined && ts.isIdentifier(d.name) && d.name.text === e.text && d.initializer) {
3708
+ if (d.name !== undefined &&
3709
+ ts.isIdentifier(d.name) &&
3710
+ d.name.text === e.text &&
3711
+ d.initializer) {
3591
3712
  let init = d.initializer;
3592
3713
  while (ts.isParenthesizedExpression(init))
3593
3714
  init = init.expression;