@scriptc/compiler 0.1.7 → 0.2.0

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 (1032) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +73 -24
  2. package/ambient/scriptc-overrides.d.ts +10 -6
  3. package/ambient/scriptc.d.ts +15 -0
  4. package/dist/backend/build-cache.d.ts +1 -3
  5. package/dist/backend/build-cache.js +3 -22
  6. package/dist/backend/build-cache.js.map +1 -1
  7. package/dist/backend/cache-root.d.ts +3 -0
  8. package/dist/backend/cache-root.js +23 -0
  9. package/dist/backend/cache-root.js.map +1 -0
  10. package/dist/backend/cycle-analysis.d.ts +15 -0
  11. package/dist/backend/cycle-analysis.js +107 -0
  12. package/dist/backend/cycle-analysis.js.map +1 -0
  13. package/dist/backend/cycle-analysis.test.js +124 -0
  14. package/dist/backend/cycle-analysis.test.js.map +1 -0
  15. package/dist/backend/executable-features.d.ts +4 -0
  16. package/dist/backend/executable-features.js +42 -0
  17. package/dist/backend/executable-features.js.map +1 -0
  18. package/dist/backend/external-c.d.ts +5 -27
  19. package/dist/backend/external-c.js +5 -40
  20. package/dist/backend/external-c.js.map +1 -1
  21. package/dist/backend/ffi-callbacks.d.ts +2 -3
  22. package/dist/backend/ffi-callbacks.js +2 -3
  23. package/dist/backend/ffi-callbacks.js.map +1 -1
  24. package/dist/backend/library-identity-markers.d.ts +4 -9
  25. package/dist/backend/library-identity-markers.js +11 -49
  26. package/dist/backend/library-identity-markers.js.map +1 -1
  27. package/dist/backend/library-pack.d.ts +5 -0
  28. package/dist/backend/library-pack.js +123 -0
  29. package/dist/backend/library-pack.js.map +1 -0
  30. package/dist/backend/link-plan-core.d.ts +20 -0
  31. package/dist/backend/link-plan-core.js +18 -0
  32. package/dist/backend/link-plan-core.js.map +1 -0
  33. package/dist/backend/link-plan.d.ts +1 -1
  34. package/dist/backend/link-plan.js +16 -17
  35. package/dist/backend/link-plan.js.map +1 -1
  36. package/dist/backend/link-trace.d.ts +2 -0
  37. package/dist/backend/link-trace.js +24 -0
  38. package/dist/backend/link-trace.js.map +1 -0
  39. package/dist/backend/linker.js +1 -1
  40. package/dist/backend/linker.js.map +1 -1
  41. package/dist/backend/literals.d.ts +9 -0
  42. package/dist/backend/literals.js +35 -0
  43. package/dist/backend/literals.js.map +1 -0
  44. package/dist/backend/literals.test.d.ts +1 -0
  45. package/dist/backend/literals.test.js +53 -0
  46. package/dist/backend/literals.test.js.map +1 -0
  47. package/dist/backend/llvm/blocks.d.ts +2 -0
  48. package/dist/backend/llvm/blocks.js +9 -4
  49. package/dist/backend/llvm/blocks.js.map +1 -1
  50. package/dist/backend/llvm/blocks.test.d.ts +1 -0
  51. package/dist/backend/llvm/blocks.test.js +91 -0
  52. package/dist/backend/llvm/blocks.test.js.map +1 -0
  53. package/dist/backend/llvm/classes.d.ts +14 -8
  54. package/dist/backend/llvm/classes.js +70 -28
  55. package/dist/backend/llvm/classes.js.map +1 -1
  56. package/dist/backend/llvm/common.d.ts +5 -1
  57. package/dist/backend/llvm/common.js +45 -4
  58. package/dist/backend/llvm/common.js.map +1 -1
  59. package/dist/backend/llvm/debug-info.js +2 -7
  60. package/dist/backend/llvm/debug-info.js.map +1 -1
  61. package/dist/backend/llvm/debug-info.test.d.ts +1 -0
  62. package/dist/backend/llvm/debug-info.test.js +110 -0
  63. package/dist/backend/llvm/debug-info.test.js.map +1 -0
  64. package/dist/backend/llvm/dyn.d.ts +16 -2
  65. package/dist/backend/llvm/dyn.js +494 -165
  66. package/dist/backend/llvm/dyn.js.map +1 -1
  67. package/dist/backend/llvm/emitter.d.ts +596 -1
  68. package/dist/backend/llvm/emitter.js +695 -410
  69. package/dist/backend/llvm/emitter.js.map +1 -1
  70. package/dist/backend/llvm/emitter.test.d.ts +1 -0
  71. package/dist/backend/llvm/emitter.test.js +179 -0
  72. package/dist/backend/llvm/emitter.test.js.map +1 -0
  73. package/dist/backend/llvm/expr-async.js +23 -14
  74. package/dist/backend/llvm/expr-async.js.map +1 -1
  75. package/dist/backend/llvm/expr-bytes.d.ts +1 -1
  76. package/dist/backend/llvm/expr-bytes.js +32 -14
  77. package/dist/backend/llvm/expr-bytes.js.map +1 -1
  78. package/dist/backend/llvm/expr-callbacks.d.ts +1 -1
  79. package/dist/backend/llvm/expr-callbacks.js +25 -22
  80. package/dist/backend/llvm/expr-callbacks.js.map +1 -1
  81. package/dist/backend/llvm/expr-calls.js +136 -35
  82. package/dist/backend/llvm/expr-calls.js.map +1 -1
  83. package/dist/backend/llvm/expr-containers.d.ts +1 -1
  84. package/dist/backend/llvm/expr-containers.js +43 -14
  85. package/dist/backend/llvm/expr-containers.js.map +1 -1
  86. package/dist/backend/llvm/expr-context.d.ts +5 -260
  87. package/dist/backend/llvm/expr-control.js +9 -5
  88. package/dist/backend/llvm/expr-control.js.map +1 -1
  89. package/dist/backend/llvm/expr-dispatch.d.ts +1 -1
  90. package/dist/backend/llvm/expr-dispatch.js +2 -0
  91. package/dist/backend/llvm/expr-dispatch.js.map +1 -1
  92. package/dist/backend/llvm/expr-dynamic.js +62 -74
  93. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  94. package/dist/backend/llvm/expr-island.d.ts +1 -1
  95. package/dist/backend/llvm/expr-island.js +11 -7
  96. package/dist/backend/llvm/expr-island.js.map +1 -1
  97. package/dist/backend/llvm/expr-primitives.d.ts +1 -1
  98. package/dist/backend/llvm/expr-primitives.js +51 -30
  99. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  100. package/dist/backend/llvm/expr-primitives.test.js +1 -1
  101. package/dist/backend/llvm/expr-records.d.ts +5 -1
  102. package/dist/backend/llvm/expr-records.js +43 -4
  103. package/dist/backend/llvm/expr-records.js.map +1 -1
  104. package/dist/backend/llvm/expr-stream-bridges.d.ts +4 -4
  105. package/dist/backend/llvm/expr-stream-bridges.js +102 -121
  106. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  107. package/dist/backend/llvm/expr-stream-bridges.test.d.ts +1 -0
  108. package/dist/backend/llvm/expr-stream-bridges.test.js +55 -0
  109. package/dist/backend/llvm/expr-stream-bridges.test.js.map +1 -0
  110. package/dist/backend/llvm/expr-stream-callbacks.d.ts +1 -1
  111. package/dist/backend/llvm/expr-stream-callbacks.js +12 -12
  112. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -1
  113. package/dist/backend/llvm/layouts.d.ts +19 -0
  114. package/dist/backend/llvm/layouts.js +12 -0
  115. package/dist/backend/llvm/layouts.js.map +1 -0
  116. package/dist/backend/llvm/lib-abi.d.ts +19 -0
  117. package/dist/backend/llvm/lib-abi.js +82 -0
  118. package/dist/backend/llvm/lib-abi.js.map +1 -0
  119. package/dist/backend/llvm/lib-connect.d.ts +2 -0
  120. package/dist/backend/llvm/lib-connect.js +51 -0
  121. package/dist/backend/llvm/lib-connect.js.map +1 -0
  122. package/dist/backend/llvm/lib-datagram.d.ts +2 -0
  123. package/dist/backend/llvm/lib-datagram.js +135 -0
  124. package/dist/backend/llvm/lib-datagram.js.map +1 -0
  125. package/dist/backend/llvm/lib-dispatch.js +50 -6
  126. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  127. package/dist/backend/llvm/lib-filesystem.js +30 -18
  128. package/dist/backend/llvm/lib-filesystem.js.map +1 -1
  129. package/dist/backend/llvm/lib-http2.d.ts +2 -0
  130. package/dist/backend/llvm/lib-http2.js +215 -0
  131. package/dist/backend/llvm/lib-http2.js.map +1 -0
  132. package/dist/backend/llvm/lib-lookup.d.ts +2 -0
  133. package/dist/backend/llvm/lib-lookup.js +39 -0
  134. package/dist/backend/llvm/lib-lookup.js.map +1 -0
  135. package/dist/backend/llvm/lib-network.js +25 -2
  136. package/dist/backend/llvm/lib-network.js.map +1 -1
  137. package/dist/backend/llvm/lib-process.js +21 -16
  138. package/dist/backend/llvm/lib-process.js.map +1 -1
  139. package/dist/backend/llvm/lib-shared.js +117 -1
  140. package/dist/backend/llvm/lib-shared.js.map +1 -1
  141. package/dist/backend/llvm/lib-stream.js +3 -2
  142. package/dist/backend/llvm/lib-stream.js.map +1 -1
  143. package/dist/backend/llvm/lib-test.d.ts +2 -0
  144. package/dist/backend/llvm/lib-test.js +34 -0
  145. package/dist/backend/llvm/lib-test.js.map +1 -0
  146. package/dist/backend/llvm/lib-tls.d.ts +2 -0
  147. package/dist/backend/llvm/lib-tls.js +82 -0
  148. package/dist/backend/llvm/lib-tls.js.map +1 -0
  149. package/dist/backend/llvm/shapes.d.ts +10 -9
  150. package/dist/backend/llvm/shapes.js +35 -130
  151. package/dist/backend/llvm/shapes.js.map +1 -1
  152. package/dist/backend/llvm/unsupported.d.ts +1 -0
  153. package/dist/backend/llvm/unsupported.js +1 -2
  154. package/dist/backend/llvm/unsupported.js.map +1 -1
  155. package/dist/backend/llvm/walkers.js +1 -7
  156. package/dist/backend/llvm/walkers.js.map +1 -1
  157. package/dist/backend/mangle.d.ts +2 -2
  158. package/dist/backend/mangle.js +16 -5
  159. package/dist/backend/mangle.js.map +1 -1
  160. package/dist/backend/{c/may-throw.d.ts → may-throw.d.ts} +1 -1
  161. package/dist/backend/{c/may-throw.js → may-throw.js} +51 -46
  162. package/dist/backend/may-throw.js.map +1 -0
  163. package/dist/backend/may-throw.test.d.ts +1 -0
  164. package/dist/backend/may-throw.test.js +58 -0
  165. package/dist/backend/may-throw.test.js.map +1 -0
  166. package/dist/backend/native-codegen-core.d.ts +22 -0
  167. package/dist/backend/native-codegen-core.js +44 -0
  168. package/dist/backend/native-codegen-core.js.map +1 -0
  169. package/dist/backend/native-codegen.d.ts +3 -19
  170. package/dist/backend/native-codegen.js +5 -44
  171. package/dist/backend/native-codegen.js.map +1 -1
  172. package/dist/backend/native-codegen.test.js +2 -2
  173. package/dist/backend/native-codegen.test.js.map +1 -1
  174. package/dist/backend/native-link-info-core.d.ts +94 -0
  175. package/dist/backend/native-link-info-core.js +62 -0
  176. package/dist/backend/native-link-info-core.js.map +1 -0
  177. package/dist/backend/native-link-info.d.ts +3 -88
  178. package/dist/backend/native-link-info.js +12 -243
  179. package/dist/backend/native-link-info.js.map +1 -1
  180. package/dist/backend/native-link-info.test.js +41 -146
  181. package/dist/backend/native-link-info.test.js.map +1 -1
  182. package/dist/backend/native-toolchain.d.ts +10 -25
  183. package/dist/backend/native-toolchain.js +31 -211
  184. package/dist/backend/native-toolchain.js.map +1 -1
  185. package/dist/backend/native-toolchain.test.js +5 -5
  186. package/dist/backend/native-toolchain.test.js.map +1 -1
  187. package/dist/backend/native-tools.d.ts +24 -0
  188. package/dist/backend/native-tools.js +33 -0
  189. package/dist/backend/native-tools.js.map +1 -0
  190. package/dist/backend/object-localize.js +19 -8
  191. package/dist/backend/object-localize.js.map +1 -1
  192. package/dist/backend/object-localize.test.js +22 -0
  193. package/dist/backend/object-localize.test.js.map +1 -1
  194. package/dist/backend/runtime-abi.d.ts +2 -2
  195. package/dist/backend/runtime-abi.js +2 -2
  196. package/dist/backend/runtime-pack-core.d.ts +101 -0
  197. package/dist/backend/runtime-pack-core.js +172 -0
  198. package/dist/backend/runtime-pack-core.js.map +1 -0
  199. package/dist/backend/runtime-pack-native.d.ts +21 -0
  200. package/dist/backend/runtime-pack-native.js +70 -0
  201. package/dist/backend/runtime-pack-native.js.map +1 -0
  202. package/dist/backend/runtime-pack-targets.test.js +1 -1
  203. package/dist/backend/runtime-pack.d.ts +3 -83
  204. package/dist/backend/runtime-pack.js +8 -151
  205. package/dist/backend/runtime-pack.js.map +1 -1
  206. package/dist/backend/runtime-pack.test.js +24 -1
  207. package/dist/backend/runtime-pack.test.js.map +1 -1
  208. package/dist/backend/target-diagnostics.d.ts +22 -0
  209. package/dist/backend/target-diagnostics.js +108 -0
  210. package/dist/backend/target-diagnostics.js.map +1 -0
  211. package/dist/backend/target-platform.d.ts +15 -0
  212. package/dist/backend/target-platform.js +72 -0
  213. package/dist/backend/target-platform.js.map +1 -0
  214. package/dist/backend/targets.d.ts +13 -4
  215. package/dist/backend/targets.js +95 -30
  216. package/dist/backend/targets.js.map +1 -1
  217. package/dist/backend/targets.test.js +65 -4
  218. package/dist/backend/targets.test.js.map +1 -1
  219. package/dist/backend/toolchain-environment.d.ts +6 -0
  220. package/dist/backend/toolchain-environment.js +99 -0
  221. package/dist/backend/toolchain-environment.js.map +1 -0
  222. package/dist/backend/vendor-archives.d.ts +1 -9
  223. package/dist/backend/vendor-archives.js +2 -9
  224. package/dist/backend/vendor-archives.js.map +1 -1
  225. package/dist/backend/vendor-inputs.d.ts +9 -0
  226. package/dist/backend/vendor-inputs.js +10 -0
  227. package/dist/backend/vendor-inputs.js.map +1 -0
  228. package/dist/backend/warm-cache.d.ts +3 -0
  229. package/dist/backend/warm-cache.js +41 -0
  230. package/dist/backend/warm-cache.js.map +1 -0
  231. package/dist/cli/command.d.ts +3 -0
  232. package/dist/cli/command.js +328 -0
  233. package/dist/cli/command.js.map +1 -0
  234. package/dist/cli/host.d.ts +24 -0
  235. package/dist/cli/host.js +2 -0
  236. package/dist/cli/host.js.map +1 -0
  237. package/dist/cli/output-options.d.ts +26 -0
  238. package/dist/cli/output-options.js +60 -0
  239. package/dist/cli/output-options.js.map +1 -0
  240. package/dist/cli/paths.d.ts +12 -0
  241. package/dist/cli/paths.js +42 -0
  242. package/dist/cli/paths.js.map +1 -0
  243. package/dist/cli/usage.d.ts +74 -0
  244. package/dist/cli/usage.js +86 -0
  245. package/dist/cli/usage.js.map +1 -0
  246. package/dist/cli/wasi-paths.d.ts +8 -0
  247. package/dist/cli/wasi-paths.js +41 -0
  248. package/dist/cli/wasi-paths.js.map +1 -0
  249. package/dist/cli/wasi-runner.d.ts +2 -0
  250. package/dist/cli/wasi-runner.js +28 -0
  251. package/dist/cli/wasi-runner.js.map +1 -0
  252. package/dist/compat/fetch-profile.js +3 -3
  253. package/dist/compat/fetch-profile.js.map +1 -1
  254. package/dist/compile-types.d.ts +162 -0
  255. package/dist/compile-types.js +2 -0
  256. package/dist/compile-types.js.map +1 -0
  257. package/dist/coverage/report.js +11 -5
  258. package/dist/coverage/report.js.map +1 -1
  259. package/dist/coverage/surface-manifest.js +5 -2
  260. package/dist/coverage/surface-manifest.js.map +1 -1
  261. package/dist/diagnostics/diagnostic.js +3 -3
  262. package/dist/diagnostics/diagnostic.js.map +1 -1
  263. package/dist/executable/executable-cache.d.ts +3 -4
  264. package/dist/executable/executable-cache.js +5 -6
  265. package/dist/executable/executable-cache.js.map +1 -1
  266. package/dist/executable/executable-cache.test.js +16 -17
  267. package/dist/executable/executable-cache.test.js.map +1 -1
  268. package/dist/executable/prepare.d.ts +14 -0
  269. package/dist/executable/prepare.js +66 -0
  270. package/dist/executable/prepare.js.map +1 -0
  271. package/dist/ffi/ffi-manifest.d.ts +11 -4
  272. package/dist/ffi/ffi-manifest.js +170 -58
  273. package/dist/ffi/ffi-manifest.js.map +1 -1
  274. package/dist/ffi/ffi-manifest.test.d.ts +1 -0
  275. package/dist/ffi/ffi-manifest.test.js +111 -0
  276. package/dist/ffi/ffi-manifest.test.js.map +1 -0
  277. package/dist/format-integer.d.ts +3 -0
  278. package/dist/format-integer.js +14 -0
  279. package/dist/format-integer.js.map +1 -0
  280. package/dist/frontend/analysis.d.ts +5 -0
  281. package/dist/frontend/analysis.js +88 -0
  282. package/dist/frontend/analysis.js.map +1 -0
  283. package/dist/frontend/arguments-usage.d.ts +1 -3
  284. package/dist/frontend/arguments-usage.js.map +1 -1
  285. package/dist/frontend/builtin-modules.d.ts +1 -1
  286. package/dist/frontend/builtin-modules.js +1 -1
  287. package/dist/frontend/builtin-modules.js.map +1 -1
  288. package/dist/frontend/cjs-lexer.d.ts +4 -25
  289. package/dist/frontend/cjs-lexer.js +6 -806
  290. package/dist/frontend/cjs-lexer.js.map +1 -1
  291. package/dist/frontend/cjs-resolve.d.ts +5 -0
  292. package/dist/frontend/cjs-resolve.js +429 -0
  293. package/dist/frontend/cjs-resolve.js.map +1 -0
  294. package/dist/frontend/cjs-syntax.d.ts +26 -0
  295. package/dist/frontend/cjs-syntax.js +806 -0
  296. package/dist/frontend/cjs-syntax.js.map +1 -0
  297. package/dist/frontend/comptime-node.d.ts +4 -0
  298. package/dist/frontend/comptime-node.js +16 -0
  299. package/dist/frontend/comptime-node.js.map +1 -0
  300. package/dist/frontend/comptime-node.test.d.ts +1 -0
  301. package/dist/frontend/comptime-node.test.js +37 -0
  302. package/dist/frontend/comptime-node.test.js.map +1 -0
  303. package/dist/frontend/dts-paths.d.ts +3 -4
  304. package/dist/frontend/dts-paths.js +15 -8
  305. package/dist/frontend/dts-paths.js.map +1 -1
  306. package/dist/frontend/fork-target.js +2 -2
  307. package/dist/frontend/fork-target.js.map +1 -1
  308. package/dist/frontend/helper-tokens.d.ts +1 -0
  309. package/dist/frontend/helper-tokens.js +147 -0
  310. package/dist/frontend/helper-tokens.js.map +1 -0
  311. package/dist/frontend/helper-tokens.test.d.ts +1 -0
  312. package/dist/frontend/helper-tokens.test.js +35 -0
  313. package/dist/frontend/helper-tokens.test.js.map +1 -0
  314. package/dist/frontend/inferred-js-diagnostics.d.ts +5 -0
  315. package/dist/frontend/inferred-js-diagnostics.js +69 -0
  316. package/dist/frontend/inferred-js-diagnostics.js.map +1 -0
  317. package/dist/frontend/inferred-js-diagnostics.test.d.ts +1 -0
  318. package/dist/frontend/inferred-js-diagnostics.test.js +58 -0
  319. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -0
  320. package/dist/frontend/input-tracker.d.ts +5 -2
  321. package/dist/frontend/input-tracker.js +24 -3
  322. package/dist/frontend/input-tracker.js.map +1 -1
  323. package/dist/frontend/input-tracker.test.js +23 -0
  324. package/dist/frontend/input-tracker.test.js.map +1 -1
  325. package/dist/frontend/lib-contract.js +32 -24
  326. package/dist/frontend/lib-contract.js.map +1 -1
  327. package/dist/frontend/literal-values.d.ts +4 -0
  328. package/dist/frontend/literal-values.js +21 -0
  329. package/dist/frontend/literal-values.js.map +1 -0
  330. package/dist/frontend/literal-values.test.d.ts +1 -0
  331. package/dist/frontend/literal-values.test.js +91 -0
  332. package/dist/frontend/literal-values.test.js.map +1 -0
  333. package/dist/frontend/lowering/abstract-equality.d.ts +1 -1
  334. package/dist/frontend/lowering/abstract-equality.js +3 -0
  335. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  336. package/dist/frontend/lowering/array-indexed-mutation.js +11 -6
  337. package/dist/frontend/lowering/array-indexed-mutation.js.map +1 -1
  338. package/dist/frontend/lowering/array-values.d.ts +4 -1
  339. package/dist/frontend/lowering/array-values.js +43 -1
  340. package/dist/frontend/lowering/array-values.js.map +1 -1
  341. package/dist/frontend/lowering/callback-arg.js +1 -0
  342. package/dist/frontend/lowering/callback-arg.js.map +1 -1
  343. package/dist/frontend/lowering/class-callbacks.d.ts +12 -0
  344. package/dist/frontend/lowering/class-callbacks.js +63 -0
  345. package/dist/frontend/lowering/class-callbacks.js.map +1 -0
  346. package/dist/frontend/lowering/class-descriptors.d.ts +9 -0
  347. package/dist/frontend/lowering/class-descriptors.js +73 -0
  348. package/dist/frontend/lowering/class-descriptors.js.map +1 -0
  349. package/dist/frontend/lowering/class-dynamic-dispatch.d.ts +41 -0
  350. package/dist/frontend/lowering/class-dynamic-dispatch.js +803 -0
  351. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -0
  352. package/dist/frontend/lowering/class-dynamic-dispatch.test.d.ts +1 -0
  353. package/dist/frontend/lowering/class-dynamic-dispatch.test.js +92 -0
  354. package/dist/frontend/lowering/class-dynamic-dispatch.test.js.map +1 -0
  355. package/dist/frontend/lowering/class-instance-constructor.d.ts +7 -0
  356. package/dist/frontend/lowering/class-instance-constructor.js +64 -0
  357. package/dist/frontend/lowering/class-instance-constructor.js.map +1 -0
  358. package/dist/frontend/lowering/class-method-values.d.ts +10 -0
  359. package/dist/frontend/lowering/class-method-values.js +170 -0
  360. package/dist/frontend/lowering/class-method-values.js.map +1 -0
  361. package/dist/frontend/lowering/class-prototypes.d.ts +16 -0
  362. package/dist/frontend/lowering/class-prototypes.js +134 -0
  363. package/dist/frontend/lowering/class-prototypes.js.map +1 -0
  364. package/dist/frontend/lowering/class-static-data.d.ts +6 -0
  365. package/dist/frontend/lowering/class-static-data.js +56 -0
  366. package/dist/frontend/lowering/class-static-data.js.map +1 -0
  367. package/dist/frontend/lowering/containers/buffer-numeric-methods.d.ts +4 -0
  368. package/dist/frontend/lowering/containers/buffer-numeric-methods.js +26 -0
  369. package/dist/frontend/lowering/containers/buffer-numeric-methods.js.map +1 -0
  370. package/dist/frontend/lowering/containers/bytes.d.ts +11 -7
  371. package/dist/frontend/lowering/containers/bytes.js +164 -155
  372. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  373. package/dist/frontend/lowering/containers/string-and-regexp.d.ts +2 -2
  374. package/dist/frontend/lowering/containers/string-and-regexp.js +39 -16
  375. package/dist/frontend/lowering/containers/string-and-regexp.js.map +1 -1
  376. package/dist/frontend/lowering/containers/string-replacement.d.ts +7 -0
  377. package/dist/frontend/lowering/containers/string-replacement.js +217 -0
  378. package/dist/frontend/lowering/containers/string-replacement.js.map +1 -0
  379. package/dist/frontend/lowering/error-methods.d.ts +11 -0
  380. package/dist/frontend/lowering/error-methods.js +78 -0
  381. package/dist/frontend/lowering/error-methods.js.map +1 -0
  382. package/dist/frontend/lowering/expressions/global-symbols.d.ts +6 -0
  383. package/dist/frontend/lowering/expressions/global-symbols.js +11 -0
  384. package/dist/frontend/lowering/expressions/global-symbols.js.map +1 -0
  385. package/dist/frontend/lowering/expressions/native-proxy.d.ts +7 -0
  386. package/dist/frontend/lowering/expressions/native-proxy.js +49 -0
  387. package/dist/frontend/lowering/expressions/native-proxy.js.map +1 -0
  388. package/dist/frontend/lowering/expressions/nullish-assignment.d.ts +6 -0
  389. package/dist/frontend/lowering/expressions/nullish-assignment.js +124 -0
  390. package/dist/frontend/lowering/expressions/nullish-assignment.js.map +1 -0
  391. package/dist/frontend/lowering/expressions/object-literals.d.ts +8 -8
  392. package/dist/frontend/lowering/expressions/object-literals.js +473 -178
  393. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  394. package/dist/frontend/lowering/expressions/optional-chains.js +20 -8
  395. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  396. package/dist/frontend/lowering/expressions/try-lower-expression.js +1 -0
  397. package/dist/frontend/lowering/expressions/try-lower-expression.js.map +1 -1
  398. package/dist/frontend/lowering/expressions/union-field-write.d.ts +8 -0
  399. package/dist/frontend/lowering/expressions/union-field-write.js +71 -0
  400. package/dist/frontend/lowering/expressions/union-field-write.js.map +1 -0
  401. package/dist/frontend/lowering/function-context.d.ts +93 -0
  402. package/dist/frontend/lowering/function-context.js +103 -0
  403. package/dist/frontend/lowering/function-context.js.map +1 -0
  404. package/dist/frontend/lowering/generator-delegation.d.ts +7 -0
  405. package/dist/frontend/lowering/generator-delegation.js +85 -0
  406. package/dist/frontend/lowering/generator-delegation.js.map +1 -0
  407. package/dist/frontend/lowering/generator-dynamic-dispatch.d.ts +10 -0
  408. package/dist/frontend/lowering/generator-dynamic-dispatch.js +105 -0
  409. package/dist/frontend/lowering/generator-dynamic-dispatch.js.map +1 -0
  410. package/dist/frontend/lowering/lib-boundary.d.ts +2 -1
  411. package/dist/frontend/lowering/lib-boundary.js +59 -20
  412. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  413. package/dist/frontend/lowering/lib-boundary.test.d.ts +1 -0
  414. package/dist/frontend/lowering/lib-boundary.test.js +45 -0
  415. package/dist/frontend/lowering/lib-boundary.test.js.map +1 -0
  416. package/dist/frontend/lowering/lower-array-sort.d.ts +1 -1
  417. package/dist/frontend/lowering/lower-assert.d.ts +1 -1
  418. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  419. package/dist/frontend/lowering/lower-async-iteration.d.ts +1 -1
  420. package/dist/frontend/lowering/lower-async-iteration.js.map +1 -1
  421. package/dist/frontend/lowering/lower-builtin-values.d.ts +12 -0
  422. package/dist/frontend/lowering/lower-builtin-values.js +139 -0
  423. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -0
  424. package/dist/frontend/lowering/lower-builtins.d.ts +27 -41
  425. package/dist/frontend/lowering/lower-builtins.js +539 -343
  426. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  427. package/dist/frontend/lowering/lower-calls.d.ts +20 -17
  428. package/dist/frontend/lowering/lower-calls.js +1236 -353
  429. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  430. package/dist/frontend/lowering/lower-classes.d.ts +83 -45
  431. package/dist/frontend/lowering/lower-classes.js +952 -339
  432. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  433. package/dist/frontend/lowering/lower-comptime.d.ts +1 -1
  434. package/dist/frontend/lowering/lower-comptime.js +23 -32
  435. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  436. package/dist/frontend/lowering/lower-containers.d.ts +27 -32
  437. package/dist/frontend/lowering/lower-containers.js +796 -151
  438. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  439. package/dist/frontend/lowering/lower-dgram.d.ts +1 -1
  440. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  441. package/dist/frontend/lowering/lower-enums.d.ts +1 -1
  442. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  443. package/dist/frontend/lowering/lower-event-emitter.d.ts +30 -1
  444. package/dist/frontend/lowering/lower-event-emitter.js +58 -26
  445. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  446. package/dist/frontend/lowering/lower-expando.d.ts +7 -1
  447. package/dist/frontend/lowering/lower-expando.js +14 -6
  448. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  449. package/dist/frontend/lowering/lower-exprs.d.ts +35 -11
  450. package/dist/frontend/lowering/lower-exprs.js +1674 -779
  451. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  452. package/dist/frontend/lowering/lower-generators.d.ts +2 -5
  453. package/dist/frontend/lowering/lower-generators.js +77 -46
  454. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  455. package/dist/frontend/lowering/lower-global-value.d.ts +7 -0
  456. package/dist/frontend/lowering/lower-global-value.js +17 -0
  457. package/dist/frontend/lowering/lower-global-value.js.map +1 -0
  458. package/dist/frontend/lowering/lower-inspect.d.ts +1 -1
  459. package/dist/frontend/lowering/lower-inspect.js +17 -8
  460. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  461. package/dist/frontend/lowering/lower-island.d.ts +5 -8
  462. package/dist/frontend/lowering/lower-island.js +34 -23
  463. package/dist/frontend/lowering/lower-island.js.map +1 -1
  464. package/dist/frontend/lowering/lower-mixins.d.ts +2 -2
  465. package/dist/frontend/lowering/lower-mixins.js +5 -3
  466. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  467. package/dist/frontend/lowering/lower-modules.d.ts +1 -1
  468. package/dist/frontend/lowering/lower-modules.js +233 -30
  469. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  470. package/dist/frontend/lowering/lower-namespaces.d.ts +1 -1
  471. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  472. package/dist/frontend/lowering/lower-node-module.d.ts +1 -1
  473. package/dist/frontend/lowering/lower-node-module.js +13 -10
  474. package/dist/frontend/lowering/lower-node-module.js.map +1 -1
  475. package/dist/frontend/lowering/lower-server.d.ts +1 -1
  476. package/dist/frontend/lowering/lower-server.js +6 -10
  477. package/dist/frontend/lowering/lower-server.js.map +1 -1
  478. package/dist/frontend/lowering/lower-stmts.d.ts +10 -14
  479. package/dist/frontend/lowering/lower-stmts.js +728 -496
  480. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  481. package/dist/frontend/lowering/lower-stream.d.ts +1 -1
  482. package/dist/frontend/lowering/lower-stream.js +19 -10
  483. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  484. package/dist/frontend/lowering/lower-test.d.ts +1 -1
  485. package/dist/frontend/lowering/lower-test.js.map +1 -1
  486. package/dist/frontend/lowering/lower-url.d.ts +6 -0
  487. package/dist/frontend/lowering/lower-url.js +77 -0
  488. package/dist/frontend/lowering/lower-url.js.map +1 -0
  489. package/dist/frontend/lowering/lowerer.d.ts +113 -189
  490. package/dist/frontend/lowering/lowerer.js +1031 -672
  491. package/dist/frontend/lowering/lowerer.js.map +1 -1
  492. package/dist/frontend/lowering/lowerer.test.d.ts +1 -0
  493. package/dist/frontend/lowering/lowerer.test.js +26 -0
  494. package/dist/frontend/lowering/lowerer.test.js.map +1 -0
  495. package/dist/frontend/lowering/native-ffi.d.ts +5 -0
  496. package/dist/frontend/lowering/native-ffi.js +40 -0
  497. package/dist/frontend/lowering/native-ffi.js.map +1 -0
  498. package/dist/frontend/lowering/object-enumeration-receiver.d.ts +7 -0
  499. package/dist/frontend/lowering/object-enumeration-receiver.js +33 -0
  500. package/dist/frontend/lowering/object-enumeration-receiver.js.map +1 -0
  501. package/dist/frontend/lowering/object-factory-new.d.ts +8 -0
  502. package/dist/frontend/lowering/object-factory-new.js +68 -0
  503. package/dist/frontend/lowering/object-factory-new.js.map +1 -0
  504. package/dist/frontend/lowering/optional-arguments.js +6 -1
  505. package/dist/frontend/lowering/optional-arguments.js.map +1 -1
  506. package/dist/frontend/lowering/pairs-snapshot.js +2 -1
  507. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -1
  508. package/dist/frontend/lowering/runtime-optional-locals.d.ts +14 -0
  509. package/dist/frontend/lowering/runtime-optional-locals.js +41 -0
  510. package/dist/frontend/lowering/runtime-optional-locals.js.map +1 -0
  511. package/dist/frontend/lowering/runtime-optional-locals.test.d.ts +1 -0
  512. package/dist/frontend/lowering/runtime-optional-locals.test.js +85 -0
  513. package/dist/frontend/lowering/runtime-optional-locals.test.js.map +1 -0
  514. package/dist/frontend/lowering/sanitize-class-types.d.ts +8 -0
  515. package/dist/frontend/lowering/sanitize-class-types.js +79 -0
  516. package/dist/frontend/lowering/sanitize-class-types.js.map +1 -0
  517. package/dist/frontend/lowering/sanitize-class-types.test.d.ts +1 -0
  518. package/dist/frontend/lowering/sanitize-class-types.test.js +60 -0
  519. package/dist/frontend/lowering/sanitize-class-types.test.js.map +1 -0
  520. package/dist/frontend/lowering/static-this.d.ts +5 -1
  521. package/dist/frontend/lowering/static-this.js +28 -2
  522. package/dist/frontend/lowering/static-this.js.map +1 -1
  523. package/dist/frontend/lowering/string-index.d.ts +7 -0
  524. package/dist/frontend/lowering/string-index.js +39 -0
  525. package/dist/frontend/lowering/string-index.js.map +1 -0
  526. package/dist/frontend/lowering/surfaces.d.ts +8 -3
  527. package/dist/frontend/lowering/surfaces.js +61 -29
  528. package/dist/frontend/lowering/surfaces.js.map +1 -1
  529. package/dist/frontend/lowering/symbol-fields.d.ts +22 -0
  530. package/dist/frontend/lowering/symbol-fields.js +183 -0
  531. package/dist/frontend/lowering/symbol-fields.js.map +1 -0
  532. package/dist/frontend/lowering/symbol-methods.d.ts +7 -0
  533. package/dist/frontend/lowering/symbol-methods.js +30 -0
  534. package/dist/frontend/lowering/symbol-methods.js.map +1 -0
  535. package/dist/frontend/lowering/text-decoder-encoding.d.ts +10 -0
  536. package/dist/frontend/lowering/text-decoder-encoding.js +77 -0
  537. package/dist/frontend/lowering/text-decoder-encoding.js.map +1 -0
  538. package/dist/frontend/lowering/text-decoder-encoding.test.d.ts +1 -0
  539. package/dist/frontend/lowering/text-decoder-encoding.test.js +38 -0
  540. package/dist/frontend/lowering/text-decoder-encoding.test.js.map +1 -0
  541. package/dist/frontend/lowering/union-narrow.d.ts +9 -0
  542. package/dist/frontend/lowering/union-narrow.js +59 -0
  543. package/dist/frontend/lowering/union-narrow.js.map +1 -0
  544. package/dist/frontend/lowering/union-narrow.test.d.ts +1 -0
  545. package/dist/frontend/lowering/union-narrow.test.js +72 -0
  546. package/dist/frontend/lowering/union-narrow.test.js.map +1 -0
  547. package/dist/frontend/lowering/union-retag.d.ts +43 -0
  548. package/dist/frontend/lowering/union-retag.js +259 -0
  549. package/dist/frontend/lowering/union-retag.js.map +1 -0
  550. package/dist/frontend/lowering/union-retag.test.d.ts +1 -0
  551. package/dist/frontend/lowering/union-retag.test.js +405 -0
  552. package/dist/frontend/lowering/union-retag.test.js.map +1 -0
  553. package/dist/frontend/lowering/unregistered-class-types.d.ts +14 -0
  554. package/dist/frontend/lowering/unregistered-class-types.js +94 -0
  555. package/dist/frontend/lowering/unregistered-class-types.js.map +1 -0
  556. package/dist/frontend/lowering/unregistered-class-types.test.d.ts +1 -0
  557. package/dist/frontend/lowering/unregistered-class-types.test.js +65 -0
  558. package/dist/frontend/lowering/unregistered-class-types.test.js.map +1 -0
  559. package/dist/frontend/lowering/width-lift.d.ts +40 -0
  560. package/dist/frontend/lowering/width-lift.js +2 -0
  561. package/dist/frontend/lowering/width-lift.js.map +1 -0
  562. package/dist/frontend/module-syntax.d.ts +58 -0
  563. package/dist/frontend/module-syntax.js +123 -0
  564. package/dist/frontend/module-syntax.js.map +1 -0
  565. package/dist/frontend/module-syntax.test.d.ts +1 -0
  566. package/dist/frontend/module-syntax.test.js +78 -0
  567. package/dist/frontend/module-syntax.test.js.map +1 -0
  568. package/dist/frontend/npm-fetch-analysis.d.ts +17 -0
  569. package/dist/frontend/npm-fetch-analysis.js +100 -0
  570. package/dist/frontend/npm-fetch-analysis.js.map +1 -0
  571. package/dist/frontend/npm-fetch-analysis.test.d.ts +1 -0
  572. package/dist/frontend/npm-fetch-analysis.test.js +107 -0
  573. package/dist/frontend/npm-fetch-analysis.test.js.map +1 -0
  574. package/dist/frontend/npm-fetch-node.d.ts +2 -0
  575. package/dist/frontend/npm-fetch-node.js +12 -0
  576. package/dist/frontend/npm-fetch-node.js.map +1 -0
  577. package/dist/frontend/npm-fetch-syntax.d.ts +6 -0
  578. package/dist/frontend/npm-fetch-syntax.js +207 -0
  579. package/dist/frontend/npm-fetch-syntax.js.map +1 -0
  580. package/dist/frontend/npm-node.d.ts +10 -0
  581. package/dist/frontend/npm-node.js +14 -0
  582. package/dist/frontend/npm-node.js.map +1 -0
  583. package/dist/frontend/npm-static-bundled-cjs.d.ts +8 -0
  584. package/dist/frontend/npm-static-bundled-cjs.js +236 -0
  585. package/dist/frontend/npm-static-bundled-cjs.js.map +1 -0
  586. package/dist/frontend/npm-static-bundled-cjs.test.d.ts +1 -0
  587. package/dist/frontend/npm-static-bundled-cjs.test.js +69 -0
  588. package/dist/frontend/npm-static-bundled-cjs.test.js.map +1 -0
  589. package/dist/frontend/npm-static-declaration-syntax.d.ts +57 -0
  590. package/dist/frontend/npm-static-declaration-syntax.js +944 -0
  591. package/dist/frontend/npm-static-declaration-syntax.js.map +1 -0
  592. package/dist/frontend/npm-static-declarations.d.ts +11 -39
  593. package/dist/frontend/npm-static-declarations.js +22 -561
  594. package/dist/frontend/npm-static-declarations.js.map +1 -1
  595. package/dist/frontend/npm-static-declarations.test.js +245 -6
  596. package/dist/frontend/npm-static-declarations.test.js.map +1 -1
  597. package/dist/frontend/npm-static-prune.d.ts +1 -1
  598. package/dist/frontend/npm-static-prune.js +5 -4
  599. package/dist/frontend/npm-static-prune.js.map +1 -1
  600. package/dist/frontend/npm-static-prune.test.js +1 -1
  601. package/dist/frontend/npm-static-prune.test.js.map +1 -1
  602. package/dist/frontend/npm-static-rewrite-host.d.ts +4 -0
  603. package/dist/frontend/npm-static-rewrite-host.js +179 -0
  604. package/dist/frontend/npm-static-rewrite-host.js.map +1 -0
  605. package/dist/frontend/npm-static-rewrite-syntax.d.ts +16 -0
  606. package/dist/frontend/npm-static-rewrite-syntax.js +905 -0
  607. package/dist/frontend/npm-static-rewrite-syntax.js.map +1 -0
  608. package/dist/frontend/npm-static-rewrite.d.ts +0 -5
  609. package/dist/frontend/npm-static-rewrite.js +2 -1079
  610. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  611. package/dist/frontend/npm-static-subtyping.d.ts +5 -0
  612. package/dist/frontend/npm-static-subtyping.js +55 -0
  613. package/dist/frontend/npm-static-subtyping.js.map +1 -0
  614. package/dist/frontend/npm-static-subtyping.test.d.ts +1 -0
  615. package/dist/frontend/npm-static-subtyping.test.js +58 -0
  616. package/dist/frontend/npm-static-subtyping.test.js.map +1 -0
  617. package/dist/frontend/npm-static.d.ts +7 -15
  618. package/dist/frontend/npm-static.js +19 -28
  619. package/dist/frontend/npm-static.js.map +1 -1
  620. package/dist/frontend/npm.d.ts +8 -69
  621. package/dist/frontend/npm.js +21 -361
  622. package/dist/frontend/npm.js.map +1 -1
  623. package/dist/frontend/npm.test.js +2 -2
  624. package/dist/frontend/npm.test.js.map +1 -1
  625. package/dist/frontend/pipeline-native.d.ts +6 -0
  626. package/dist/frontend/pipeline-native.js +32 -0
  627. package/dist/frontend/pipeline-native.js.map +1 -0
  628. package/dist/frontend/pipeline.d.ts +54 -0
  629. package/dist/frontend/pipeline.js +382 -0
  630. package/dist/frontend/pipeline.js.map +1 -0
  631. package/dist/frontend/pipeline.test.d.ts +1 -0
  632. package/dist/frontend/pipeline.test.js +77 -0
  633. package/dist/frontend/pipeline.test.js.map +1 -0
  634. package/dist/frontend/program-analysis.d.ts +10 -0
  635. package/dist/frontend/program-analysis.js +14 -0
  636. package/dist/frontend/program-analysis.js.map +1 -0
  637. package/dist/frontend/program-node.d.ts +9 -0
  638. package/dist/frontend/program-node.js +48 -0
  639. package/dist/frontend/program-node.js.map +1 -0
  640. package/dist/frontend/program.d.ts +38 -19
  641. package/dist/frontend/program.js +344 -169
  642. package/dist/frontend/program.js.map +1 -1
  643. package/dist/frontend/program.test.js +87 -2
  644. package/dist/frontend/program.test.js.map +1 -1
  645. package/dist/frontend/provenance-core.d.ts +9 -0
  646. package/dist/frontend/provenance-core.js +435 -0
  647. package/dist/frontend/provenance-core.js.map +1 -0
  648. package/dist/frontend/provenance.d.ts +0 -4
  649. package/dist/frontend/provenance.js +4 -459
  650. package/dist/frontend/provenance.js.map +1 -1
  651. package/dist/frontend/resolve.d.ts +3 -1
  652. package/dist/frontend/resolve.js +6 -3
  653. package/dist/frontend/resolve.js.map +1 -1
  654. package/dist/frontend/runtime-resolve.d.ts +4 -3
  655. package/dist/frontend/runtime-resolve.js +22 -18
  656. package/dist/frontend/runtime-resolve.js.map +1 -1
  657. package/dist/frontend/runtime-resolve.test.js +53 -0
  658. package/dist/frontend/runtime-resolve.test.js.map +1 -1
  659. package/dist/frontend/services-node.d.ts +5 -0
  660. package/dist/frontend/services-node.js +19 -0
  661. package/dist/frontend/services-node.js.map +1 -0
  662. package/dist/frontend/services-node.test.d.ts +1 -0
  663. package/dist/frontend/services-node.test.js +70 -0
  664. package/dist/frontend/services-node.test.js.map +1 -0
  665. package/dist/frontend/services.d.ts +44 -0
  666. package/dist/frontend/services.js +90 -0
  667. package/dist/frontend/services.js.map +1 -0
  668. package/dist/frontend/services.test.d.ts +1 -0
  669. package/dist/frontend/services.test.js +174 -0
  670. package/dist/frontend/services.test.js.map +1 -0
  671. package/dist/frontend/ts7/adapter.d.ts +3 -3
  672. package/dist/frontend/ts7/adapter.js +14 -31
  673. package/dist/frontend/ts7/adapter.js.map +1 -1
  674. package/dist/frontend/ts7/api.d.ts +16 -0
  675. package/dist/frontend/ts7/api.js +24 -0
  676. package/dist/frontend/ts7/api.js.map +1 -0
  677. package/dist/frontend/ts7/ast-bytes.d.ts +31 -0
  678. package/dist/frontend/ts7/ast-bytes.js +137 -0
  679. package/dist/frontend/ts7/ast-bytes.js.map +1 -0
  680. package/dist/frontend/ts7/ast-bytes.test.d.ts +1 -0
  681. package/dist/frontend/ts7/ast-bytes.test.js +73 -0
  682. package/dist/frontend/ts7/ast-bytes.test.js.map +1 -0
  683. package/dist/frontend/ts7/ast-guards.generated.d.ts +353 -0
  684. package/dist/frontend/ts7/ast-guards.generated.js +1951 -0
  685. package/dist/frontend/ts7/ast-guards.generated.js.map +1 -0
  686. package/dist/frontend/ts7/ast-guards.test.d.ts +1 -0
  687. package/dist/frontend/ts7/ast-guards.test.js +43 -0
  688. package/dist/frontend/ts7/ast-guards.test.js.map +1 -0
  689. package/dist/frontend/ts7/ast-node.d.ts +194 -0
  690. package/dist/frontend/ts7/ast-node.js +448 -0
  691. package/dist/frontend/ts7/ast-node.js.map +1 -0
  692. package/dist/frontend/ts7/ast-node.test.d.ts +1 -0
  693. package/dist/frontend/ts7/ast-node.test.js +266 -0
  694. package/dist/frontend/ts7/ast-node.test.js.map +1 -0
  695. package/dist/frontend/ts7/ast-schema.generated.d.ts +503 -0
  696. package/dist/frontend/ts7/ast-schema.generated.js +1446 -0
  697. package/dist/frontend/ts7/ast-schema.generated.js.map +1 -0
  698. package/dist/frontend/ts7/ast-text.d.ts +6 -0
  699. package/dist/frontend/ts7/ast-text.js +124 -0
  700. package/dist/frontend/ts7/ast-text.js.map +1 -0
  701. package/dist/frontend/ts7/ast-text.test.d.ts +1 -0
  702. package/dist/frontend/ts7/ast-text.test.js +38 -0
  703. package/dist/frontend/ts7/ast-text.test.js.map +1 -0
  704. package/dist/frontend/ts7/ast-tokens.generated.d.ts +2 -0
  705. package/dist/frontend/ts7/ast-tokens.generated.js +155 -0
  706. package/dist/frontend/ts7/ast-tokens.generated.js.map +1 -0
  707. package/dist/frontend/ts7/ast-types.d.ts +42 -0
  708. package/dist/frontend/ts7/ast-types.generated.d.ts +1615 -0
  709. package/dist/frontend/ts7/ast-types.generated.js +5 -0
  710. package/dist/frontend/ts7/ast-types.generated.js.map +1 -0
  711. package/dist/frontend/ts7/ast-types.js +3 -0
  712. package/dist/frontend/ts7/ast-types.js.map +1 -0
  713. package/dist/frontend/ts7/ast-wire.d.ts +58 -0
  714. package/dist/frontend/ts7/ast-wire.js +267 -0
  715. package/dist/frontend/ts7/ast-wire.js.map +1 -0
  716. package/dist/frontend/ts7/ast-wire.test.d.ts +1 -0
  717. package/dist/frontend/ts7/ast-wire.test.js +151 -0
  718. package/dist/frontend/ts7/ast-wire.test.js.map +1 -0
  719. package/dist/frontend/ts7/ast.d.ts +14 -14
  720. package/dist/frontend/ts7/ast.js +21 -15
  721. package/dist/frontend/ts7/ast.js.map +1 -1
  722. package/dist/frontend/ts7/census-check.js +1 -0
  723. package/dist/frontend/ts7/census-check.js.map +1 -1
  724. package/dist/frontend/ts7/checker-cache.d.ts +48 -0
  725. package/dist/frontend/ts7/checker-cache.js +92 -0
  726. package/dist/frontend/ts7/checker-cache.js.map +1 -0
  727. package/dist/frontend/ts7/checker.d.ts +19 -46
  728. package/dist/frontend/ts7/checker.js +231 -161
  729. package/dist/frontend/ts7/checker.js.map +1 -1
  730. package/dist/frontend/ts7/checker.test.d.ts +1 -0
  731. package/dist/frontend/ts7/checker.test.js +335 -0
  732. package/dist/frontend/ts7/checker.test.js.map +1 -0
  733. package/dist/frontend/ts7/enums.d.ts +4 -27
  734. package/dist/frontend/ts7/enums.generated.d.ts +878 -0
  735. package/dist/frontend/ts7/enums.generated.js +1313 -0
  736. package/dist/frontend/ts7/enums.generated.js.map +1 -0
  737. package/dist/frontend/ts7/enums.js +4 -45
  738. package/dist/frontend/ts7/enums.js.map +1 -1
  739. package/dist/frontend/ts7/enums.test.d.ts +1 -0
  740. package/dist/frontend/ts7/enums.test.js +48 -0
  741. package/dist/frontend/ts7/enums.test.js.map +1 -0
  742. package/dist/frontend/ts7/native-api.d.ts +10 -0
  743. package/dist/frontend/ts7/native-api.js +10 -0
  744. package/dist/frontend/ts7/native-api.js.map +1 -0
  745. package/dist/frontend/ts7/native-host.d.ts +2 -0
  746. package/dist/frontend/ts7/native-host.js +11 -0
  747. package/dist/frontend/ts7/native-host.js.map +1 -0
  748. package/dist/frontend/ts7/native-process.d.ts +14 -0
  749. package/dist/frontend/ts7/native-process.js +62 -0
  750. package/dist/frontend/ts7/native-process.js.map +1 -0
  751. package/dist/frontend/ts7/program-adapter.d.ts +10 -98
  752. package/dist/frontend/ts7/program-adapter.js +16 -310
  753. package/dist/frontend/ts7/program-adapter.js.map +1 -1
  754. package/dist/frontend/ts7/program-host.d.ts +115 -0
  755. package/dist/frontend/ts7/program-host.js +347 -0
  756. package/dist/frontend/ts7/program-host.js.map +1 -0
  757. package/dist/frontend/ts7/program-host.test.d.ts +1 -0
  758. package/dist/frontend/ts7/program-host.test.js +207 -0
  759. package/dist/frontend/ts7/program-host.test.js.map +1 -0
  760. package/dist/frontend/ts7/rpc-api.d.ts +12 -0
  761. package/dist/frontend/ts7/rpc-api.js +23 -0
  762. package/dist/frontend/ts7/rpc-api.js.map +1 -0
  763. package/dist/frontend/ts7/rpc-client.d.ts +27 -0
  764. package/dist/frontend/ts7/rpc-client.js +102 -0
  765. package/dist/frontend/ts7/rpc-client.js.map +1 -0
  766. package/dist/frontend/ts7/rpc-client.test.d.ts +1 -0
  767. package/dist/frontend/ts7/rpc-client.test.js +133 -0
  768. package/dist/frontend/ts7/rpc-client.test.js.map +1 -0
  769. package/dist/frontend/ts7/rpc-filesystem.d.ts +16 -0
  770. package/dist/frontend/ts7/rpc-filesystem.js +42 -0
  771. package/dist/frontend/ts7/rpc-filesystem.js.map +1 -0
  772. package/dist/frontend/ts7/rpc-filesystem.test.d.ts +1 -0
  773. package/dist/frontend/ts7/rpc-filesystem.test.js +89 -0
  774. package/dist/frontend/ts7/rpc-filesystem.test.js.map +1 -0
  775. package/dist/frontend/ts7/rpc-process.d.ts +2 -0
  776. package/dist/frontend/ts7/rpc-process.js +148 -0
  777. package/dist/frontend/ts7/rpc-process.js.map +1 -0
  778. package/dist/frontend/ts7/rpc-process.test.d.ts +1 -0
  779. package/dist/frontend/ts7/rpc-process.test.js +29 -0
  780. package/dist/frontend/ts7/rpc-process.test.js.map +1 -0
  781. package/dist/frontend/ts7/rpc-wire.d.ts +46 -0
  782. package/dist/frontend/ts7/rpc-wire.js +195 -0
  783. package/dist/frontend/ts7/rpc-wire.js.map +1 -0
  784. package/dist/frontend/ts7/rpc-wire.test.d.ts +1 -0
  785. package/dist/frontend/ts7/rpc-wire.test.js +168 -0
  786. package/dist/frontend/ts7/rpc-wire.test.js.map +1 -0
  787. package/dist/frontend/ts7/semantic-checker.d.ts +137 -0
  788. package/dist/frontend/ts7/semantic-checker.js +221 -0
  789. package/dist/frontend/ts7/semantic-checker.js.map +1 -0
  790. package/dist/frontend/ts7/semantic-checker.test.d.ts +1 -0
  791. package/dist/frontend/ts7/semantic-checker.test.js +119 -0
  792. package/dist/frontend/ts7/semantic-checker.test.js.map +1 -0
  793. package/dist/frontend/ts7/semantic-json.d.ts +5 -0
  794. package/dist/frontend/ts7/semantic-json.js +52 -0
  795. package/dist/frontend/ts7/semantic-json.js.map +1 -0
  796. package/dist/frontend/ts7/semantic-json.test.d.ts +1 -0
  797. package/dist/frontend/ts7/semantic-json.test.js +42 -0
  798. package/dist/frontend/ts7/semantic-json.test.js.map +1 -0
  799. package/dist/frontend/ts7/semantic-model.d.ts +222 -0
  800. package/dist/frontend/ts7/semantic-model.js +423 -0
  801. package/dist/frontend/ts7/semantic-model.js.map +1 -0
  802. package/dist/frontend/ts7/semantic-model.test.d.ts +1 -0
  803. package/dist/frontend/ts7/semantic-model.test.js +322 -0
  804. package/dist/frontend/ts7/semantic-model.test.js.map +1 -0
  805. package/dist/frontend/ts7/semantic-schema.generated.d.ts +283 -0
  806. package/dist/frontend/ts7/semantic-schema.generated.js +222 -0
  807. package/dist/frontend/ts7/semantic-schema.generated.js.map +1 -0
  808. package/dist/frontend/ts7/semantic-types.d.ts +5 -0
  809. package/dist/frontend/ts7/semantic-types.js +2 -0
  810. package/dist/frontend/ts7/semantic-types.js.map +1 -0
  811. package/dist/frontend/ts7/session-cache.d.ts +17 -0
  812. package/dist/frontend/ts7/session-cache.js +97 -0
  813. package/dist/frontend/ts7/session-cache.js.map +1 -0
  814. package/dist/frontend/ts7/session-cache.test.d.ts +1 -0
  815. package/dist/frontend/ts7/session-cache.test.js +87 -0
  816. package/dist/frontend/ts7/session-cache.test.js.map +1 -0
  817. package/dist/frontend/ts7/session-path.d.ts +18 -0
  818. package/dist/frontend/ts7/session-path.js +203 -0
  819. package/dist/frontend/ts7/session-path.js.map +1 -0
  820. package/dist/frontend/ts7/session-path.test.d.ts +1 -0
  821. package/dist/frontend/ts7/session-path.test.js +34 -0
  822. package/dist/frontend/ts7/session-path.test.js.map +1 -0
  823. package/dist/frontend/ts7/session-schema.generated.d.ts +167 -0
  824. package/dist/frontend/ts7/session-schema.generated.js +5 -0
  825. package/dist/frontend/ts7/session-schema.generated.js.map +1 -0
  826. package/dist/frontend/ts7/session-timing.d.ts +50 -0
  827. package/dist/frontend/ts7/session-timing.js +61 -0
  828. package/dist/frontend/ts7/session-timing.js.map +1 -0
  829. package/dist/frontend/ts7/session-timing.test.d.ts +1 -0
  830. package/dist/frontend/ts7/session-timing.test.js +52 -0
  831. package/dist/frontend/ts7/session-timing.test.js.map +1 -0
  832. package/dist/frontend/ts7/session.d.ts +105 -0
  833. package/dist/frontend/ts7/session.js +233 -0
  834. package/dist/frontend/ts7/session.js.map +1 -0
  835. package/dist/frontend/ts7/session.test.d.ts +1 -0
  836. package/dist/frontend/ts7/session.test.js +215 -0
  837. package/dist/frontend/ts7/session.test.js.map +1 -0
  838. package/dist/frontend/ts7/source-parser-node.d.ts +6 -0
  839. package/dist/frontend/ts7/source-parser-node.js +15 -0
  840. package/dist/frontend/ts7/source-parser-node.js.map +1 -0
  841. package/dist/frontend/ts7/source-parser.d.ts +25 -0
  842. package/dist/frontend/ts7/source-parser.js +96 -0
  843. package/dist/frontend/ts7/source-parser.js.map +1 -0
  844. package/dist/frontend/ts7/source-parser.test.d.ts +1 -0
  845. package/dist/frontend/ts7/source-parser.test.js +151 -0
  846. package/dist/frontend/ts7/source-parser.test.js.map +1 -0
  847. package/dist/frontend/ts7/syntax.d.ts +3 -0
  848. package/dist/frontend/ts7/syntax.js +4 -0
  849. package/dist/frontend/ts7/syntax.js.map +1 -0
  850. package/dist/frontend/tsc-codes.js +3 -0
  851. package/dist/frontend/tsc-codes.js.map +1 -1
  852. package/dist/frontend/type-mapper.d.ts +25 -17
  853. package/dist/frontend/type-mapper.js +465 -121
  854. package/dist/frontend/type-mapper.js.map +1 -1
  855. package/dist/frontend/type-mapper.test.js +123 -2
  856. package/dist/frontend/type-mapper.test.js.map +1 -1
  857. package/dist/frontend/union-discriminants.d.ts +16 -0
  858. package/dist/frontend/union-discriminants.js +98 -0
  859. package/dist/frontend/union-discriminants.js.map +1 -0
  860. package/dist/frontend/union-discriminants.test.d.ts +1 -0
  861. package/dist/frontend/union-discriminants.test.js +182 -0
  862. package/dist/frontend/union-discriminants.test.js.map +1 -0
  863. package/dist/index.d.ts +7 -198
  864. package/dist/index.js +369 -1572
  865. package/dist/index.js.map +1 -1
  866. package/dist/ir/analysis.d.ts +16 -4
  867. package/dist/ir/analysis.js +21 -4
  868. package/dist/ir/analysis.js.map +1 -1
  869. package/dist/ir/analysis.test.js +15 -2
  870. package/dist/ir/analysis.test.js.map +1 -1
  871. package/dist/ir/constant-tables.js +67 -49
  872. package/dist/ir/constant-tables.js.map +1 -1
  873. package/dist/ir/constant-tables.test.js +1 -1
  874. package/dist/ir/control-flow.d.ts +6 -0
  875. package/dist/ir/control-flow.js +142 -0
  876. package/dist/ir/control-flow.js.map +1 -0
  877. package/dist/ir/control-flow.test.d.ts +1 -0
  878. package/dist/ir/control-flow.test.js +113 -0
  879. package/dist/ir/control-flow.test.js.map +1 -0
  880. package/dist/ir/integer-loops.js +7 -18
  881. package/dist/ir/integer-loops.js.map +1 -1
  882. package/dist/ir/integer-ranges.js +53 -27
  883. package/dist/ir/integer-ranges.js.map +1 -1
  884. package/dist/ir/ir.d.ts +291 -152
  885. package/dist/ir/ir.js +588 -881
  886. package/dist/ir/ir.js.map +1 -1
  887. package/dist/ir/ir.test.js +127 -1
  888. package/dist/ir/ir.test.js.map +1 -1
  889. package/dist/ir/scalar-records.js +165 -134
  890. package/dist/ir/scalar-records.js.map +1 -1
  891. package/dist/ir/scalar-records.test.js +1 -1
  892. package/dist/ir/serialize.d.ts +4 -2
  893. package/dist/ir/serialize.js +19 -12
  894. package/dist/ir/serialize.js.map +1 -1
  895. package/dist/ir/serialize.test.d.ts +1 -0
  896. package/dist/ir/serialize.test.js +53 -0
  897. package/dist/ir/serialize.test.js.map +1 -0
  898. package/dist/ir/traverse.d.ts +41 -0
  899. package/dist/ir/traverse.js +660 -0
  900. package/dist/ir/traverse.js.map +1 -0
  901. package/dist/ir/traverse.test.d.ts +1 -0
  902. package/dist/ir/traverse.test.js +242 -0
  903. package/dist/ir/traverse.test.js.map +1 -0
  904. package/dist/ir/validate.js +1942 -1491
  905. package/dist/ir/validate.js.map +1 -1
  906. package/dist/ir/validate.test.js +476 -2
  907. package/dist/ir/validate.test.js.map +1 -1
  908. package/dist/library/cache-primitives.d.ts +2 -3
  909. package/dist/library/cache-primitives.js +4 -6
  910. package/dist/library/cache-primitives.js.map +1 -1
  911. package/dist/library/fence-eval.js +2 -2
  912. package/dist/library/fence-eval.js.map +1 -1
  913. package/dist/library/int-infer.js +7 -6
  914. package/dist/library/int-infer.js.map +1 -1
  915. package/dist/library/int-infer.test.js +4 -4
  916. package/dist/library/library-cache.d.ts +3 -2
  917. package/dist/library/library-cache.js +5 -17
  918. package/dist/library/library-cache.js.map +1 -1
  919. package/dist/library/library-cache.test.js +54 -41
  920. package/dist/library/library-cache.test.js.map +1 -1
  921. package/dist/library/library-profile.d.ts +3 -1
  922. package/dist/library/library-profile.js +15 -6
  923. package/dist/library/library-profile.js.map +1 -1
  924. package/dist/library/prepare.d.ts +15 -0
  925. package/dist/library/prepare.js +584 -0
  926. package/dist/library/prepare.js.map +1 -0
  927. package/dist/library/semantic-source.d.ts +1 -1
  928. package/dist/library/semantic-source.js +8 -6
  929. package/dist/library/semantic-source.js.map +1 -1
  930. package/dist/library/sidecar-validate.js +4 -4
  931. package/dist/library/sidecar-validate.js.map +1 -1
  932. package/dist/library/sidecar.d.ts +2 -0
  933. package/dist/library/sidecar.js +10 -3
  934. package/dist/library/sidecar.js.map +1 -1
  935. package/dist/native/cache.d.ts +11 -0
  936. package/dist/native/cache.js +113 -0
  937. package/dist/native/cache.js.map +1 -0
  938. package/dist/native/cache.test.d.ts +1 -0
  939. package/dist/native/cache.test.js +66 -0
  940. package/dist/native/cache.test.js.map +1 -0
  941. package/dist/native/cli.d.ts +1 -0
  942. package/dist/native/cli.js +112 -0
  943. package/dist/native/cli.js.map +1 -0
  944. package/dist/native/compiler.d.ts +15 -0
  945. package/dist/native/compiler.js +336 -0
  946. package/dist/native/compiler.js.map +1 -0
  947. package/dist/native/compiler.test.d.ts +1 -0
  948. package/dist/native/compiler.test.js +174 -0
  949. package/dist/native/compiler.test.js.map +1 -0
  950. package/dist/native/comptime.d.ts +5 -0
  951. package/dist/native/comptime.js +73 -0
  952. package/dist/native/comptime.js.map +1 -0
  953. package/dist/native/comptime.test.d.ts +1 -0
  954. package/dist/native/comptime.test.js +65 -0
  955. package/dist/native/comptime.test.js.map +1 -0
  956. package/dist/native/executable-cache.d.ts +26 -0
  957. package/dist/native/executable-cache.js +228 -0
  958. package/dist/native/executable-cache.js.map +1 -0
  959. package/dist/native/executable-cache.test.d.ts +1 -0
  960. package/dist/native/executable-cache.test.js +151 -0
  961. package/dist/native/executable-cache.test.js.map +1 -0
  962. package/dist/native/file-identity.d.ts +4 -0
  963. package/dist/native/file-identity.js +14 -0
  964. package/dist/native/file-identity.js.map +1 -0
  965. package/dist/native/file-identity.test.d.ts +1 -0
  966. package/dist/native/file-identity.test.js +43 -0
  967. package/dist/native/file-identity.test.js.map +1 -0
  968. package/dist/native/library.d.ts +22 -0
  969. package/dist/native/library.js +83 -0
  970. package/dist/native/library.js.map +1 -0
  971. package/dist/native/prepare.d.ts +21 -0
  972. package/dist/native/prepare.js +174 -0
  973. package/dist/native/prepare.js.map +1 -0
  974. package/dist/native/prepare.test.d.ts +1 -0
  975. package/dist/native/prepare.test.js +70 -0
  976. package/dist/native/prepare.test.js.map +1 -0
  977. package/dist/native/sanitizer.d.ts +11 -0
  978. package/dist/native/sanitizer.js +135 -0
  979. package/dist/native/sanitizer.js.map +1 -0
  980. package/dist/native/sanitizer.test.d.ts +1 -0
  981. package/dist/native/sanitizer.test.js +58 -0
  982. package/dist/native/sanitizer.test.js.map +1 -0
  983. package/dist/native/task.d.ts +4 -0
  984. package/dist/native/task.js +16 -0
  985. package/dist/native/task.js.map +1 -0
  986. package/dist/native/task.test.d.ts +1 -0
  987. package/dist/native/task.test.js +17 -0
  988. package/dist/native/task.test.js.map +1 -0
  989. package/dist/native/toolchain.d.ts +45 -0
  990. package/dist/native/toolchain.js +74 -0
  991. package/dist/native/toolchain.js.map +1 -0
  992. package/dist/native/toolchain.test.d.ts +1 -0
  993. package/dist/native/toolchain.test.js +33 -0
  994. package/dist/native/toolchain.test.js.map +1 -0
  995. package/dist/startup-cache.d.ts +1 -1
  996. package/dist/startup-cache.js +2 -5
  997. package/dist/startup-cache.js.map +1 -1
  998. package/dist/timing.d.ts +4 -0
  999. package/dist/timing.js +19 -0
  1000. package/dist/timing.js.map +1 -0
  1001. package/dist/wasi-paths.js +10 -7
  1002. package/dist/wasi-paths.js.map +1 -1
  1003. package/package.json +28 -19
  1004. package/surface-manifest.json +52 -18
  1005. package/dist/backend/c/async.d.ts +0 -171
  1006. package/dist/backend/c/async.js +0 -1317
  1007. package/dist/backend/c/async.js.map +0 -1
  1008. package/dist/backend/c/c-emitter.d.ts +0 -536
  1009. package/dist/backend/c/c-emitter.js +0 -1932
  1010. package/dist/backend/c/c-emitter.js.map +0 -1
  1011. package/dist/backend/c/exprs.d.ts +0 -15
  1012. package/dist/backend/c/exprs.js +0 -8847
  1013. package/dist/backend/c/exprs.js.map +0 -1
  1014. package/dist/backend/c/island.d.ts +0 -45
  1015. package/dist/backend/c/island.js +0 -281
  1016. package/dist/backend/c/island.js.map +0 -1
  1017. package/dist/backend/c/may-throw.js.map +0 -1
  1018. package/dist/backend/c/shapes.d.ts +0 -142
  1019. package/dist/backend/c/shapes.js +0 -603
  1020. package/dist/backend/c/shapes.js.map +0 -1
  1021. package/dist/backend/c/stmts.d.ts +0 -76
  1022. package/dist/backend/c/stmts.js +0 -1108
  1023. package/dist/backend/c/stmts.js.map +0 -1
  1024. package/dist/backend/c/types.d.ts +0 -71
  1025. package/dist/backend/c/types.js +0 -459
  1026. package/dist/backend/c/types.js.map +0 -1
  1027. package/dist/backend/c/types.test.js +0 -32
  1028. package/dist/backend/c/types.test.js.map +0 -1
  1029. package/dist/backend/c/walkers.d.ts +0 -134
  1030. package/dist/backend/c/walkers.js +0 -1772
  1031. package/dist/backend/c/walkers.js.map +0 -1
  1032. /package/dist/backend/{c/types.test.d.ts → cycle-analysis.test.d.ts} +0 -0
@@ -1,1082 +1,5 @@
1
- /* --npm-static's bundler-emitted-CJS export surface: the getter-table
2
- * shapes. A bundler-emitted CJS dist exports through runtime plumbing the
3
- * checker cannot model — the `__export(target, { name: () => value, ... })`
4
- * getter table behind `module.exports = __toCommonJS(target)`, the
5
- * `Object.defineProperty(exports, 'n', { get })` family, and the
6
- * transpiler star re-exports (`__exportStar(require('./x'), exports)`,
7
- * `__reExport(target, require('./x'), module.exports)`). Node's CJS lexer
8
- * SEES those named exports (cjs-lexer.ts mirrors it exactly), so named
9
- * imports link under Node — but the inferred surface the opted-in
10
- * resolution feeds the checker is an opaque object, and every import site
11
- * reports "X has no exported member" (the SC0001 storm that used to gate
12
- * the whole build).
13
- *
14
- * THE REWRITE. For an opted-in package's CJS file whose exports come from
15
- * these shapes, the fs shadow (npm-static.ts) serves BOTH worlds — the
16
- * checker and the lowering ride one program — a text rewrite that spells
17
- * the same export surface in the plain CJS the whole existing machinery
18
- * already models:
19
- *
20
- * - the recognized plumbing statements are SPACE-PADDED in place
21
- * (newlines kept, so every original line/offset survives): the
22
- * `module.exports = __toCommonJS(target)` assignment, the
23
- * `__export(target, {...})` call, the star-pattern calls, the
24
- * recognized defineProperty exports, and the dead esbuild annotation
25
- * `0 && (module.exports = {...})` (left live it poisons the checker's
26
- * alias resolution — multiple module.exports assignments make import
27
- * aliases land on properties no lowering path resolves);
28
- * - one canonical export table is APPENDED at the tail:
29
- * `module.exports = { ...require("./star"), own: local, ... };`
30
- * Each getter body the chase can follow types the export by its
31
- * resolved VALUE (`() => localBinding` resolves to the binding's
32
- * inferred type; member chains and scalar literals hoist to a tail
33
- * const first), and every lexer-visible name the chase cannot follow
34
- * falls back to a checked-dynamic `any` binding (value undefined —
35
- * exactly what Node's import binds for a lexer-visible name the
36
- * runtime export object never carries).
37
- *
38
- * LEXER PARITY IS THE CONTRACT: the rewritten text must answer the SAME
39
- * name set to cjs-lexer.ts that the original answers to Node — named
40
- * imports must link exactly where Node's would. The table is formatted
41
- * for merve's byte rules (`name: IDENT,` — value ident runs directly
42
- * followed by ','), star re-exports ride spread entries (recorded as
43
- * reexports and resolved recursively, exactly Node's union), and the
44
- * esbuild `__esModule: !0` marker is spelled as a deliberate SCAN STOPPER
45
- * so it stays lexer-invisible (Node never lexes __esModule out of
46
- * __toCommonJS) while member-access star entries after it are covered by
47
- * the spread records.
48
- *
49
- * SNAPSHOT SEMANTICS (the documented divergence): the getter table reads
50
- * its locals LIVE at every access; the canonical table captures values
51
- * ONCE, at module tail — after every top-level statement ran, so ordinary
52
- * modules see identical values, and only post-evaluation reassignment of
53
- * an exported local (the lazy-cache counter idiom) can diverge. Star
54
- * re-export targets load at module tail instead of their original
55
- * statement positions (visible only to load-order-sensitive side
56
- * effects). Node's __esModule marker survives on the rewritten object.
57
- *
58
- * THE IMPORT-SIDE TWIN: the same pass erases esbuild's __toESM interop
59
- * wrapper around EXTERNAL dependencies (`var import_x =
60
- * __toESM(require("x"))`, the `, 1` node-mode variant, inline
61
- * member-accessed forms) — see the section header at planToEsmInterop.
62
- * The wrapper pads down to the bare require it wraps and module-valued
63
- * `.default` accesses pad down to their binding, so member accesses model
64
- * on the required package's canonical table through the ordinary require
65
- * machinery. Interop the recognizers cannot finish answers `{ degrade }`:
66
- * the caller reports the package as an offender (naming the construct)
67
- * and it serves from the island — never a failed build.
68
- *
69
- * Everything here is SYNTACTIC (typescript5 world, the cjs-lexer's
70
- * sanctioned island): the chase decides only what TEXT to emit — the
71
- * checker then infers the types from the emitted spellings. A file whose
72
- * export mechanism the recognizers cannot fully account for is left
73
- * untouched (null): its import-site errors stay, and the frontend's
74
- * offender attribution degrades the PACKAGE to the island with a note. */
75
- import { dirname, join, resolve as resolvePath } from "node:path";
76
- import ts from "typescript5";
77
- import { bareRequireSpecOf, cjsLexedExportsOf, cjsLexerVisibleNames, isExportsIdent, isModuleExports } from "./cjs-lexer.js";
78
- import { trackedDirectoryExists, trackedFileExists, trackedReadFile } from "./input-tracker.js";
79
- import { resolveExports } from "./resolve.js";
80
- import { packageNameOfSpecifier } from "./workspace-registry.js";
81
- const NODE_REQUIRE_CONDITIONS = new Set(["require", "node", "default"]);
82
- /** The last NAME of a callee: bare identifier or any member chain's final
83
- * name (`tslib_1.__exportStar` → "__exportStar"). */
84
- function calleeNameOf(call) {
85
- const callee = call.expression;
86
- if (ts.isIdentifier(callee))
87
- return callee.text;
88
- if (ts.isPropertyAccessExpression(callee) && ts.isIdentifier(callee.name))
89
- return callee.name.text;
90
- return null;
91
- }
92
- /** A chaseable getter/descriptor VALUE: a plain identifier, an
93
- * identifier-rooted member/element chain (string keys only), or a scalar
94
- * literal. Answers the classification or null (not chaseable). */
95
- function chaseValue(e) {
96
- let cur = e;
97
- while (ts.isParenthesizedExpression(cur))
98
- cur = cur.expression;
99
- if (ts.isIdentifier(cur))
100
- return { kind: "ident", text: cur.text };
101
- if (ts.isNumericLiteral(cur) ||
102
- ts.isStringLiteral(cur) ||
103
- ts.isNoSubstitutionTemplateLiteral(cur) ||
104
- cur.kind === ts.SyntaxKind.TrueKeyword ||
105
- cur.kind === ts.SyntaxKind.FalseKeyword ||
106
- cur.kind === ts.SyntaxKind.NullKeyword) {
107
- return { kind: "hoist", text: cur.getText() };
108
- }
109
- // ident-rooted member chains: this.x / a.b.c / a["k"].d — side-effect
110
- // free reads the tail const can evaluate once.
111
- let walk = cur;
112
- while ((ts.isPropertyAccessExpression(walk) && walk.questionDotToken === undefined && ts.isIdentifier(walk.name)) ||
113
- (ts.isElementAccessExpression(walk) && walk.questionDotToken === undefined && ts.isStringLiteral(walk.argumentExpression))) {
114
- walk = walk.expression;
115
- }
116
- if (ts.isIdentifier(walk))
117
- return { kind: "hoist", text: cur.getText() };
118
- return null;
119
- }
120
- /** The getter body's returned expression for the two descriptor getter
121
- * spellings (`get() { return X }` / `get: function () { return X }`) and
122
- * the arrow forms the esbuild table uses (`() => X`, `() => { return X }`). */
123
- function getterReturnOf(fn) {
124
- let body;
125
- if (ts.isArrowFunction(fn) && fn.parameters.length === 0)
126
- body = fn.body;
127
- else if (ts.isFunctionExpression(fn) && fn.parameters.length === 0)
128
- body = fn.body;
129
- else if (ts.isMethodDeclaration(fn) && fn.parameters.length === 0 && fn.body !== undefined)
130
- body = fn.body;
131
- else
132
- return null;
133
- if (body === undefined)
134
- return null;
135
- if (!ts.isBlock(body))
136
- return body; // expression-bodied arrow
137
- if (body.statements.length !== 1)
138
- return null;
139
- const ret = body.statements[0];
140
- return ts.isReturnStatement(ret) && ret.expression !== undefined ? ret.expression : null;
141
- }
142
- /** The `__export(IDENT, { name: () => value, ... })` call's parts, or null.
143
- * Every property must be a `name: <function>` assignment (identifier or
144
- * string-literal name) — anything else is not the esbuild table. */
145
- function exportCallOf(call) {
146
- if (calleeNameOf(call) !== "__export")
147
- return null;
148
- if (call.arguments.length !== 2)
149
- return null;
150
- const [target, table] = call.arguments;
151
- if (!ts.isIdentifier(target) || !ts.isObjectLiteralExpression(table))
152
- return null;
153
- const entries = [];
154
- for (const prop of table.properties) {
155
- if (!ts.isPropertyAssignment(prop))
156
- return null;
157
- let name;
158
- if (ts.isIdentifier(prop.name))
159
- name = prop.name.text;
160
- else if (ts.isStringLiteral(prop.name))
161
- name = prop.name.text;
162
- else
163
- return null;
164
- entries.push([name, getterReturnOf(prop.initializer)]);
165
- }
166
- return { target: target.text, entries };
167
- }
168
- /** `Object.defineProperty(exports|module.exports, 'name', {...})` — the
169
- * name plus the chased descriptor value (getter return or `value:`), or
170
- * null when the statement is not that shape at all. `value: null` means
171
- * recognized but unchaseable. */
172
- function definePropertyExportOf(call) {
173
- const callee = call.expression;
174
- if (!ts.isPropertyAccessExpression(callee) ||
175
- !ts.isIdentifier(callee.expression) ||
176
- callee.expression.text !== "Object" ||
177
- !ts.isIdentifier(callee.name) ||
178
- callee.name.text !== "defineProperty") {
179
- return null;
180
- }
181
- if (call.arguments.length !== 3)
182
- return null;
183
- const [recv, nameArg, desc] = call.arguments;
184
- if (!isExportsIdent(recv) && !isModuleExports(recv))
185
- return null;
186
- if (!ts.isStringLiteral(nameArg) || !ts.isObjectLiteralExpression(desc))
187
- return null;
188
- const name = nameArg.text;
189
- let value = null;
190
- for (const p of desc.properties) {
191
- if (ts.isPropertyAssignment(p) && ts.isIdentifier(p.name)) {
192
- if (p.name.text === "value")
193
- value = p.initializer;
194
- else if (p.name.text === "get")
195
- value = getterReturnOf(p.initializer);
196
- }
197
- else if (ts.isMethodDeclaration(p) && ts.isIdentifier(p.name) && p.name.text === "get") {
198
- value = getterReturnOf(p);
199
- }
200
- }
201
- const esModuleStamp = name === "__esModule" && value !== null && value.kind === ts.SyntaxKind.TrueKeyword;
202
- return { name, value, esModuleStamp };
203
- }
204
- /** Node's file-first CJS probes over an ABSOLUTE base (the dist-tree
205
- * subset: exact, .js/.cjs, /index.js, package.json "main" for
206
- * directories). */
207
- function resolveCjsBase(base) {
208
- const candidates = [base, `${base}.js`, `${base}.cjs`];
209
- for (const c of candidates) {
210
- if (trackedFileExists(c) && /\.(js|cjs)$/.test(c))
211
- return c;
212
- }
213
- try {
214
- if (trackedDirectoryExists(base)) {
215
- const pkgPath = resolvePath(base, "package.json");
216
- const pkgText = trackedReadFile(pkgPath);
217
- if (pkgText !== null) {
218
- const main = JSON.parse(pkgText).main;
219
- if (typeof main === "string") {
220
- const m = resolvePath(base, main);
221
- for (const c of [m, `${m}.js`, `${m}.cjs`, resolvePath(m, "index.js")]) {
222
- if (trackedFileExists(c) && /\.(js|cjs)$/.test(c))
223
- return c;
224
- }
225
- }
226
- }
227
- const idx = resolvePath(base, "index.js");
228
- if (trackedFileExists(idx))
229
- return idx;
230
- }
231
- }
232
- catch {
233
- /* unresolved */
234
- }
235
- return null;
236
- }
237
- /** Resolves a RELATIVE CJS require target (resolveCjsBase over the
238
- * importer-anchored path). Bare specifiers answer null — their names ride
239
- * the spread entry and the program resolver. */
240
- function resolveRelativeCjs(fromFile, spec) {
241
- if (!spec.startsWith("./") && !spec.startsWith("../"))
242
- return null;
243
- return resolveCjsBase(resolvePath(dirname(fromFile), spec));
244
- }
245
- /** Resolves a BARE require target the way Node's CJS resolution would (the
246
- * __toESM default-shape probe's subset): node_modules/<name> walked up from
247
- * the requiring file, "exports" honored with the require condition, then
248
- * main/index. Best-effort — null keeps the caller conservative. */
249
- function resolveBareRequireCjs(fromFile, spec) {
250
- if (spec.startsWith("#") || spec.startsWith("node:"))
251
- return null;
252
- const parts = spec.split("/");
253
- const name = packageNameOfSpecifier(spec);
254
- const subparts = spec.startsWith("@") ? parts.slice(2) : parts.slice(1);
255
- const subpath = subparts.length > 0 ? `./${subparts.join("/")}` : ".";
256
- for (let dir = dirname(fromFile);;) {
257
- const pkgDir = join(dir, "node_modules", name);
258
- try {
259
- if (trackedDirectoryExists(pkgDir)) {
260
- const pkgPath = join(pkgDir, "package.json");
261
- let exports;
262
- try {
263
- const pkgText = trackedReadFile(pkgPath);
264
- exports = pkgText === null
265
- ? undefined
266
- : JSON.parse(pkgText).exports;
267
- }
268
- catch {
269
- return null;
270
- }
271
- if (exports !== undefined) {
272
- const target = resolveExports(exports, subpath, NODE_REQUIRE_CONDITIONS);
273
- return target === null ? null : resolveCjsBase(join(pkgDir, target));
274
- }
275
- return resolveCjsBase(subpath === "." ? pkgDir : join(pkgDir, subpath));
276
- }
277
- }
278
- catch {
279
- return null;
280
- }
281
- const parent = dirname(dir);
282
- if (parent === dir)
283
- return null;
284
- dir = parent;
285
- }
286
- }
287
- /** Whether `require(spec)` from `fromFile` answers an object whose
288
- * `__esModule` is TRUTHY at runtime under Node — the branch esbuild's
289
- * __toESM takes to decide what `default` binds. True for the transpiled-ESM
290
- * stamps (the lexer-visible `exports.__esModule =` / defineProperty forms,
291
- * esbuild's own `module.exports = __toCommonJS(…)` where the stamp hides
292
- * from the lexer inside the helper) and for real ES-module targets
293
- * (require(esm) marks the namespace for interop); `module.exports =
294
- * require(…)` forwarding chains follow. False (the CJS answer: `default`
295
- * IS module.exports) everywhere else, unresolvable targets included —
296
- * their require throws before `default` matters. */
297
- function requireTargetEsModuleStamped(fromFile, spec, depth = 0) {
298
- if (depth > 8)
299
- return false;
300
- const file = spec.startsWith("./") || spec.startsWith("../") || spec.startsWith("/")
301
- ? resolveCjsBase(spec.startsWith("/") ? spec : resolvePath(dirname(fromFile), spec))
302
- : resolveBareRequireCjs(fromFile, spec);
303
- if (file === null)
304
- return false;
305
- if (file.endsWith(".mjs"))
306
- return true;
307
- if (file.endsWith(".json"))
308
- return false;
309
- if (file.endsWith(".js")) {
310
- // the nearest package.json "type" decides the .js format
311
- for (let dir = dirname(file);;) {
312
- const pkgPath = join(dir, "package.json");
313
- const pkgText = trackedReadFile(pkgPath);
314
- if (pkgText !== null) {
315
- try {
316
- if (JSON.parse(pkgText).type === "module")
317
- return true;
318
- }
319
- catch {
320
- /* unreadable — treat as CJS */
321
- }
322
- break;
323
- }
324
- const parent = dirname(dir);
325
- if (parent === dir)
326
- break;
327
- dir = parent;
328
- }
329
- }
330
- const src = trackedReadFile(file);
331
- if (src === null)
332
- return false;
333
- try {
334
- if (cjsLexedExportsOf(src, file).exports.has("__esModule"))
335
- return true;
336
- }
337
- catch {
338
- /* unlexable — keep probing */
339
- }
340
- if (src.includes("__toCommonJS("))
341
- return true;
342
- const fwd = /module\.exports\s*=\s*require\(\s*["']([^"']+)["']\s*\)/.exec(src);
343
- if (fwd !== null)
344
- return requireTargetEsModuleStamped(file, fwd[1], depth + 1);
345
- return false;
346
- }
347
- /** The Node-visible named-export set of a star-re-export TARGET file:
348
- * its recursive lexer-visible names (relative edges only — exactly what
349
- * the emitted member entries must enumerate). */
350
- function starTargetNames(file) {
351
- try {
352
- return cjsLexerVisibleNames(file, (f) => {
353
- const source = trackedReadFile(f);
354
- if (source === null)
355
- throw new Error(`cannot read ${f}`);
356
- return source;
357
- }, (from, spec) => resolveRelativeCjs(from, spec));
358
- }
359
- catch {
360
- return new Set();
361
- }
362
- }
363
- /** Space-pads [start, end) of `text` preserving newlines — the recognized
364
- * statement disappears while every original offset survives. */
365
- function padSpan(text, start, end) {
366
- let pad = "";
367
- for (let i = start; i < end; i++)
368
- pad += text[i] === "\n" ? "\n" : " ";
369
- return text.slice(0, start) + pad + text.slice(end);
370
- }
371
- /** A valid identifier-run export name (the table can spell it bare). */
372
- function isPlainName(name) {
373
- return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name);
374
- }
375
- /** Structural recognition of esbuild's vendored __toESM helper:
376
- * `var __toESM = (mod, isNodeMode, target) => (target = …, __copyProps(
377
- * isNodeMode || !mod || !mod.__esModule
378
- * ? __defProp(target, "default", { value: mod, enumerable: true })
379
- * : target,
380
- * mod))`
381
- * — an arrow over (mod, isNodeMode[, target]) whose result is a
382
- * __copyProps(…, mod) call copying onto a conditional that tests
383
- * isNodeMode/__esModule and defines "default" with value mod. Comments and
384
- * formatting are free; the SHAPE is the contract. */
385
- function recognizedToEsmDecl(stmt) {
386
- if (!ts.isVariableStatement(stmt))
387
- return false;
388
- const decls = stmt.declarationList.declarations;
389
- if (decls.length !== 1)
390
- return false;
391
- const d = decls[0];
392
- if (!ts.isIdentifier(d.name) || d.name.text !== "__toESM" || d.initializer === undefined)
393
- return false;
394
- let init = d.initializer;
395
- while (ts.isParenthesizedExpression(init))
396
- init = init.expression;
397
- if (!ts.isArrowFunction(init))
398
- return false;
399
- if (init.parameters.length < 2 || init.parameters.length > 3)
400
- return false;
401
- const p0 = init.parameters[0];
402
- const p1 = init.parameters[1];
403
- if (!ts.isIdentifier(p0.name) || !ts.isIdentifier(p1.name))
404
- return false;
405
- const mod = p0.name.text;
406
- const isNodeMode = p1.name.text;
407
- if (ts.isBlock(init.body))
408
- return false;
409
- let expr = init.body;
410
- while (ts.isParenthesizedExpression(expr))
411
- expr = expr.expression;
412
- // the rightmost comma operand carries the result
413
- while (ts.isBinaryExpression(expr) && expr.operatorToken.kind === ts.SyntaxKind.CommaToken) {
414
- expr = expr.right;
415
- }
416
- while (ts.isParenthesizedExpression(expr))
417
- expr = expr.expression;
418
- if (!ts.isCallExpression(expr) || !ts.isIdentifier(expr.expression) || expr.expression.text !== "__copyProps")
419
- return false;
420
- if (expr.arguments.length < 2)
421
- return false;
422
- const from = expr.arguments[1];
423
- if (!ts.isIdentifier(from) || from.text !== mod)
424
- return false;
425
- let to = expr.arguments[0];
426
- while (ts.isParenthesizedExpression(to))
427
- to = to.expression;
428
- if (!ts.isConditionalExpression(to))
429
- return false;
430
- const condText = to.condition.getText();
431
- if (!condText.includes(isNodeMode) || !condText.includes("__esModule"))
432
- return false;
433
- let stamp = to.whenTrue;
434
- while (ts.isParenthesizedExpression(stamp))
435
- stamp = stamp.expression;
436
- if (!ts.isCallExpression(stamp) || !ts.isIdentifier(stamp.expression) || stamp.expression.text !== "__defProp")
437
- return false;
438
- if (stamp.arguments.length !== 3)
439
- return false;
440
- const nameArg = stamp.arguments[1];
441
- if (!ts.isStringLiteral(nameArg) || nameArg.text !== "default")
442
- return false;
443
- const desc = stamp.arguments[2];
444
- if (!ts.isObjectLiteralExpression(desc))
445
- return false;
446
- return desc.properties.some((p) => ts.isPropertyAssignment(p) &&
447
- ts.isIdentifier(p.name) &&
448
- p.name.text === "value" &&
449
- ts.isIdentifier(p.initializer) &&
450
- p.initializer.text === mod);
451
- }
452
- const TO_ESM_SHAPE_DEGRADE = "its shipped JS calls the __toESM bundler-interop helper but spells it in a shape the " +
453
- "recognizer cannot verify — the package serves from the island instead";
454
- const TO_ESM_ESCAPE_DEGRADE = "a __toESM(require(…)) bundler-interop object escapes into a use the static rewrite cannot " +
455
- "follow (only module-scope bindings and direct member reads compile) — the package serves " +
456
- "from the island instead";
457
- const TO_ESM_ARG_DEGRADE = "it calls the __toESM bundler-interop helper on something other than require(…) of a string " +
458
- "literal — the package serves from the island instead";
459
- const TO_ESM_MIXED_DEGRADE = "its bundler-emitted export surface cannot be respelled around its __toESM interop imports " +
460
- "— the package serves from the island instead";
461
- /** The interop-erasure plan for one CJS file (see the section header). */
462
- function planToEsmInterop(sf) {
463
- const pads = [];
464
- const moduleBindings = new Set();
465
- const plan = { pads, moduleBindings, degrade: null };
466
- const fail = (reason) => ({ pads: [], moduleBindings: new Set(), degrade: reason });
467
- const declStmts = sf.statements.filter((s) => ts.isVariableStatement(s) &&
468
- s.declarationList.declarations.some((d) => ts.isIdentifier(d.name) && d.name.text === "__toESM"));
469
- const refs = [];
470
- const calls = [];
471
- const collect = (n) => {
472
- if (ts.isIdentifier(n) && n.text === "__toESM")
473
- refs.push(n);
474
- if (ts.isCallExpression(n) && ts.isIdentifier(n.expression) && n.expression.text === "__toESM")
475
- calls.push(n);
476
- ts.forEachChild(n, collect);
477
- };
478
- collect(sf);
479
- if (calls.length === 0 && refs.length === 0)
480
- return plan;
481
- // Every reference must be the declarator's own name or a call's callee —
482
- // a helper that escapes as a VALUE is outside the recognized shape.
483
- const callees = new Set(calls.map((c) => c.expression));
484
- const declNames = new Set();
485
- for (const s of declStmts) {
486
- for (const d of s.declarationList.declarations) {
487
- if (ts.isIdentifier(d.name) && d.name.text === "__toESM")
488
- declNames.add(d.name);
489
- }
490
- }
491
- if (refs.some((r) => !callees.has(r) && !declNames.has(r)))
492
- return fail(TO_ESM_ESCAPE_DEGRADE);
493
- if (calls.length === 0)
494
- return plan; // declared but never called — dead helper
495
- if (declStmts.length !== 1 || !recognizedToEsmDecl(declStmts[0]))
496
- return fail(TO_ESM_SHAPE_DEGRADE);
497
- /** Module-scope interop bindings: name → whether `.default` IS the
498
- * module (pad the access) rather than a member read of its `default`. */
499
- const bindings = new Map();
500
- for (const call of calls) {
501
- const arg0 = call.arguments[0];
502
- const spec = arg0 !== undefined ? bareRequireSpecOf(arg0) : null;
503
- if (spec === null || call.arguments.length > 2)
504
- return fail(TO_ESM_ARG_DEGRADE);
505
- let isNodeMode = false;
506
- if (call.arguments.length === 2) {
507
- const modeArg = call.arguments[1];
508
- if (ts.isNumericLiteral(modeArg))
509
- isNodeMode = Number(modeArg.text) !== 0;
510
- else if (modeArg.kind === ts.SyntaxKind.TrueKeyword)
511
- isNodeMode = true;
512
- else if (modeArg.kind === ts.SyntaxKind.FalseKeyword)
513
- isNodeMode = false;
514
- else
515
- return fail(TO_ESM_ARG_DEGRADE);
516
- }
517
- const defaultIsModule = isNodeMode || !requireTargetEsModuleStamped(sf.fileName, spec);
518
- // classify the call's use: a variable binding, or an immediate member
519
- // read; anything else escapes.
520
- let child = call;
521
- let parent = call.parent;
522
- while (ts.isParenthesizedExpression(parent)) {
523
- child = parent;
524
- parent = parent.parent;
525
- }
526
- if (ts.isVariableDeclaration(parent) && parent.initializer === child && ts.isIdentifier(parent.name)) {
527
- if (bindings.has(parent.name.text))
528
- return fail(TO_ESM_ESCAPE_DEGRADE);
529
- bindings.set(parent.name.text, defaultIsModule);
530
- if (defaultIsModule)
531
- moduleBindings.add(parent.name.text);
532
- }
533
- else if (ts.isPropertyAccessExpression(parent) && parent.expression === child && ts.isIdentifier(parent.name)) {
534
- if (parent.name.text === "default" && defaultIsModule) {
535
- if (!readOnlyAccess(parent))
536
- return fail(TO_ESM_ESCAPE_DEGRADE);
537
- pads.push({ start: child.getEnd(), end: parent.getEnd() });
538
- }
539
- }
540
- else {
541
- return fail(TO_ESM_ESCAPE_DEGRADE);
542
- }
543
- // the wrapper itself: callee + '(' down, and everything after the
544
- // require argument (`, 1` included) — the bare require survives at its
545
- // original offsets.
546
- pads.push({ start: call.getStart(sf), end: arg0.getStart(sf) });
547
- pads.push({ start: arg0.getEnd(), end: call.getEnd() });
548
- }
549
- if (bindings.size > 0) {
550
- // Binding safety: the erased binding must be declared exactly once and
551
- // never written — the `.default` mapping below matches receivers by
552
- // NAME (syntactic, like the rest of this file), so a shadow or a
553
- // reassignment would silently change what a padded access reads.
554
- const declCount = new Map();
555
- const bump = (name) => {
556
- if (bindings.has(name))
557
- declCount.set(name, (declCount.get(name) ?? 0) + 1);
558
- };
559
- let violated = false;
560
- const scan = (n) => {
561
- if (violated)
562
- return;
563
- if ((ts.isVariableDeclaration(n) || ts.isBindingElement(n) || ts.isParameter(n)) &&
564
- ts.isIdentifier(n.name)) {
565
- bump(n.name.text);
566
- }
567
- else if ((ts.isFunctionDeclaration(n) || ts.isClassDeclaration(n)) && n.name !== undefined) {
568
- bump(n.name.text);
569
- }
570
- else if (ts.isBinaryExpression(n) &&
571
- n.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
572
- n.operatorToken.kind <= ts.SyntaxKind.LastAssignment &&
573
- ts.isIdentifier(n.left) &&
574
- bindings.has(n.left.text)) {
575
- violated = true;
576
- }
577
- else if ((ts.isPrefixUnaryExpression(n) || ts.isPostfixUnaryExpression(n)) &&
578
- (n.operator === ts.SyntaxKind.PlusPlusToken || n.operator === ts.SyntaxKind.MinusMinusToken) &&
579
- ts.isIdentifier(n.operand) &&
580
- bindings.has(n.operand.text)) {
581
- violated = true;
582
- }
583
- ts.forEachChild(n, scan);
584
- };
585
- scan(sf);
586
- if (violated || [...bindings.keys()].some((name) => (declCount.get(name) ?? 0) !== 1)) {
587
- return fail(TO_ESM_ESCAPE_DEGRADE);
588
- }
589
- // `.default` reads on a module-valued binding pad down to the binding.
590
- const padDefaults = (n) => {
591
- if (ts.isPropertyAccessExpression(n) &&
592
- ts.isIdentifier(n.expression) &&
593
- bindings.get(n.expression.text) === true &&
594
- ts.isIdentifier(n.name) &&
595
- n.name.text === "default") {
596
- if (!readOnlyAccess(n)) {
597
- violated = true;
598
- return;
599
- }
600
- pads.push({ start: n.expression.getEnd(), end: n.getEnd() });
601
- }
602
- ts.forEachChild(n, padDefaults);
603
- };
604
- padDefaults(sf);
605
- if (violated)
606
- return fail(TO_ESM_ESCAPE_DEGRADE);
607
- }
608
- return plan;
609
- }
610
- /** True when a padded-away `.default` access is a plain READ — an
611
- * assignment target or delete operand cannot lose its member spelling. */
612
- function readOnlyAccess(access) {
613
- const p = access.parent;
614
- if (p !== undefined && ts.isDeleteExpression(p))
615
- return false;
616
- if (p !== undefined &&
617
- ts.isBinaryExpression(p) &&
618
- p.left === access &&
619
- p.operatorToken.kind >= ts.SyntaxKind.FirstAssignment &&
620
- p.operatorToken.kind <= ts.SyntaxKind.LastAssignment) {
621
- return false;
622
- }
623
- if (p !== undefined &&
624
- (ts.isPrefixUnaryExpression(p) || ts.isPostfixUnaryExpression(p)) &&
625
- (p.operator === ts.SyntaxKind.PlusPlusToken || p.operator === ts.SyntaxKind.MinusMinusToken)) {
626
- return false;
627
- }
628
- return true;
629
- }
630
- const RESERVED_KEYS = new Set(["__proto__"]);
631
- /** The rewrite (see the header). Null = not a recognized bundle shape (or
632
- * nothing to fix) — serve the file untouched. A `{ degrade }` answer means
633
- * the file carries a bundler-interop construct the recognizers cannot
634
- * finish: the caller reports the PACKAGE as an offender with the reason
635
- * and the fallback loop islands it — never a failed build. */
1
+ import { nodeFrontendServices } from "./services-node.js";
636
2
  export function rewriteBundlerCjsExports(source, filePath) {
637
- // Cheap gates before any parse: CJS bundle plumbing leaves textual
638
- // fingerprints; files without any are never candidates.
639
- if (!source.includes("__toCommonJS") &&
640
- !source.includes("__toESM") &&
641
- !source.includes("__exportStar") &&
642
- !source.includes("__reExport") &&
643
- !(source.includes("Object.defineProperty(exports") && source.includes("get"))) {
644
- return null;
645
- }
646
- // parents ON: the helper sweep excludes declarator-name self references
647
- // and the chase reads expression text through the tree
648
- const sf = ts.createSourceFile(filePath, source, ts.ScriptTarget.Latest, true, ts.ScriptKind.JS);
649
- // ESM syntax → not CJS; leave alone — except when the ES module CALLS
650
- // the __toESM interop helper (esbuild's ESM output around __require of
651
- // an external): no static story respells that, and served untouched the
652
- // helper's `var __create = Object.create;` chain fences at MODULE LOAD,
653
- // so the honest answer is the per-package degrade.
654
- for (const stmt of sf.statements) {
655
- if (ts.isImportDeclaration(stmt) || ts.isExportDeclaration(stmt) || ts.isExportAssignment(stmt)) {
656
- return source.includes("__toESM(")
657
- ? {
658
- degrade: "its ES-module dist routes an external dependency through the __toESM " +
659
- "bundler-interop helper, which has no static story in ESM output — the " +
660
- "package serves from the island instead",
661
- }
662
- : null;
663
- }
664
- }
665
- // The __toESM interop pass (see the section header): wrapper call sites
666
- // pad down to the bare require they wrap, module-valued `.default`
667
- // accesses pad down to their binding, and a file whose interop deviates
668
- // beyond recognition degrades the package.
669
- const toEsm = planToEsmInterop(sf);
670
- if (toEsm.degrade !== null)
671
- return { degrade: toEsm.degrade };
672
- const neutralize = [];
673
- const exportTables = [];
674
- const definePropEntries = [];
675
- const memberStmts = [];
676
- /** Star spec → require-load emission order (statement order). */
677
- const starSpecsInOrder = [];
678
- let esbuildMainTarget = null;
679
- let tablePos = null;
680
- let sawBundleShape = false;
681
- const addStarSpec = (spec) => {
682
- if (!starSpecsInOrder.includes(spec))
683
- starSpecsInOrder.push(spec);
684
- };
685
- for (const stmt of sf.statements) {
686
- if (!ts.isExpressionStatement(stmt))
687
- continue;
688
- const e = stmt.expression;
689
- // `module.exports = <rhs>`
690
- if (ts.isBinaryExpression(e) && e.operatorToken.kind === ts.SyntaxKind.EqualsToken && isModuleExports(e.left)) {
691
- const rhs = e.right;
692
- if (ts.isCallExpression(rhs) && calleeNameOf(rhs) === "__toCommonJS" && rhs.arguments.length === 1 && ts.isIdentifier(rhs.arguments[0])) {
693
- esbuildMainTarget = rhs.arguments[0].text;
694
- tablePos = stmt.getStart(sf);
695
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
696
- sawBundleShape = true;
697
- continue;
698
- }
699
- // Any other real module.exports assignment: the file has an export
700
- // mechanism the checker already models (or a shape outside the
701
- // recognizers) — not ours to rewrite.
702
- return null;
703
- }
704
- // member exports — `exports.N = RHS;` / `module.exports.N = RHS;`,
705
- // chains included (`exports.a = exports.b = void 0;` — the tsc
706
- // void-init preamble collects every name with the chain's final RHS).
707
- {
708
- let cur = e;
709
- const names = [];
710
- let viaBareExports = false;
711
- while (ts.isBinaryExpression(cur) &&
712
- cur.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
713
- ts.isPropertyAccessExpression(cur.left) &&
714
- cur.left.questionDotToken === undefined &&
715
- ts.isIdentifier(cur.left.name) &&
716
- (isExportsIdent(cur.left.expression) || isModuleExports(cur.left.expression))) {
717
- names.push(cur.left.name.text);
718
- if (isExportsIdent(cur.left.expression))
719
- viaBareExports = true;
720
- cur = cur.right;
721
- }
722
- if (names.length > 0) {
723
- memberStmts.push({
724
- names,
725
- finalRhs: cur,
726
- viaBareExports,
727
- pos: stmt.getStart(sf),
728
- start: stmt.getStart(sf),
729
- end: stmt.getEnd(),
730
- });
731
- continue; // classified later (only when a rewrite actually happens)
732
- }
733
- }
734
- // the dead esbuild annotation: `0 && (module.exports = { ... });`
735
- if (ts.isBinaryExpression(e) &&
736
- e.operatorToken.kind === ts.SyntaxKind.AmpersandAmpersandToken &&
737
- ts.isNumericLiteral(e.left) &&
738
- e.left.text === "0") {
739
- let inner = e.right;
740
- while (ts.isParenthesizedExpression(inner))
741
- inner = inner.expression;
742
- if (ts.isBinaryExpression(inner) &&
743
- inner.operatorToken.kind === ts.SyntaxKind.EqualsToken &&
744
- isModuleExports(inner.left) &&
745
- ts.isObjectLiteralExpression(inner.right)) {
746
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
747
- sawBundleShape = true;
748
- continue;
749
- }
750
- }
751
- if (!ts.isCallExpression(e))
752
- continue;
753
- const name = calleeNameOf(e);
754
- // `__export(TARGET, { getter table });`
755
- const table = exportCallOf(e);
756
- if (table !== null) {
757
- exportTables.push(table);
758
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
759
- sawBundleShape = true;
760
- continue;
761
- }
762
- // `__exportStar(require('spec'), exports);` — the tsc/tslib spelling —
763
- // and `__export(require('spec'))`, the legacy twin.
764
- if ((name === "__exportStar" || name === "__export") && e.arguments.length >= 1) {
765
- const spec = bareRequireSpecOf(e.arguments[0]);
766
- if (spec !== null) {
767
- addStarSpec(spec);
768
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
769
- sawBundleShape = true;
770
- continue;
771
- }
772
- }
773
- // `__reExport(TARGET, require('spec')[, module.exports]);` — esbuild's
774
- // `export * from` plumbing.
775
- if (name === "__reExport" && e.arguments.length >= 2) {
776
- const spec = bareRequireSpecOf(e.arguments[1]);
777
- if (spec !== null) {
778
- addStarSpec(spec);
779
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
780
- sawBundleShape = true;
781
- continue;
782
- }
783
- }
784
- // Object.defineProperty(exports, 'n', {...})
785
- const def = definePropertyExportOf(e);
786
- if (def !== null) {
787
- if (def.esModuleStamp) {
788
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
789
- // the canonical table re-stamps it (lexer-visibly — merve detects
790
- // this defineProperty form, so parity wants a visible entry)
791
- continue;
792
- }
793
- const chased = def.value !== null ? chaseValue(def.value) : null;
794
- if (chased !== null) {
795
- definePropEntries.push({ name: def.name, value: def.value });
796
- neutralize.push({ start: stmt.getStart(sf), end: stmt.getEnd() });
797
- sawBundleShape = true;
798
- }
799
- // unchaseable descriptor: LEAVE the statement (its runtime fence is
800
- // loud where an undefined-valued entry would be a silent lie); the
801
- // name still types through the any-fallback below.
802
- continue;
803
- }
804
- }
805
- const lexed = cjsLexedExportsOf(source, filePath);
806
- let emitTable = sawBundleShape && (lexed.exports.size > 0 || lexed.reexports.length > 0);
807
- const starSpecs = [];
808
- const entries = new Map();
809
- const starMembers = [];
810
- const requireConsts = [];
811
- if (emitTable) {
812
- /* Star specs Node actually honors are the lexer's SURVIVING reexports
813
- * (annotation spreads for esbuild bundles, star-pattern calls for tsc
814
- * output). The statements walked above contribute load order; specs the
815
- * lexer dropped (cleared by a later module.exports=) drop here too. */
816
- const lexerSpecs = new Set(lexed.reexports);
817
- starSpecs.push(...starSpecsInOrder.filter((s) => lexerSpecs.has(s)));
818
- for (const s of lexed.reexports) {
819
- if (!starSpecs.includes(s))
820
- starSpecs.push(s);
821
- }
822
- /* The entry list, first-wins per name: own getter-table entries, then
823
- * defineProperty entries, then surviving top-level member exports, then
824
- * (for names still uncovered) star enumerations in spec order, then the
825
- * any fallback for every remaining lexer-visible name. */
826
- const claim = (name, spec) => {
827
- if (name === "__esModule" || RESERVED_KEYS.has(name))
828
- return;
829
- if (!entries.has(name))
830
- entries.set(name, spec);
831
- };
832
- const classify = (name, value) => {
833
- const chased = value !== null ? chaseValue(value) : null;
834
- if (chased === null)
835
- return { name, kind: "any" };
836
- if (chased.kind === "ident")
837
- return { name, kind: "ident", value: chased.text };
838
- return { name, kind: "hoist", value: chased.text };
839
- };
840
- // Own names: the getter table(s) — the one feeding module.exports first.
841
- const tablesOrdered = [
842
- ...exportTables.filter((t) => t.target === esbuildMainTarget),
843
- ...exportTables.filter((t) => t.target !== esbuildMainTarget),
844
- ];
845
- for (const t of tablesOrdered) {
846
- for (const [name, value] of t.entries)
847
- claim(name, classify(name, value));
848
- }
849
- for (const d of definePropEntries)
850
- claim(d.name, classify(d.name, d.value));
851
- /* Top-level member exports. Node's export-object identity rules decide
852
- * each statement's fate against the ORIGINAL table (esbuildMainTarget's
853
- * assignment): a member attached BEFORE it was discarded (the table
854
- * replaced the object), a bare `exports.N =` AFTER it wrote the stale
855
- * object — both keep only their lexer-visible NAME (value undefined,
856
- * exactly Node's link answer: the any fallback below). A surviving
857
- * member (`module.exports.N =` after the table, or any spelling when no
858
- * table exists) re-emits its VALUE as a canonical entry — identifier
859
- * RHS only; any other RHS would need a second evaluation, so the file
860
- * is left alone (the offender path owns it — and when the file also
861
- * carries erased interop wrappers, "untouched" is not on the menu:
862
- * the live helper chain would fence at module load, so the package
863
- * degrades with the note instead). Every member statement is then
864
- * NEUTRALIZED: the canonical tail table replaces the object, and a
865
- * stray earlier attach would meet the lowering's discard fence. */
866
- for (const m of memberStmts) {
867
- let cur = m.finalRhs;
868
- while (ts.isParenthesizedExpression(cur))
869
- cur = cur.expression;
870
- const isVoidInit = cur.kind === ts.SyntaxKind.VoidExpression || (ts.isIdentifier(cur) && cur.text === "undefined");
871
- const discarded = tablePos !== null && (m.pos < tablePos || m.viaBareExports);
872
- if (!isVoidInit) {
873
- // Only side-effect-free RHS shapes may be neutralized (identifiers,
874
- // scalar literals, ident-rooted member chains — chaseValue's set);
875
- // anything else keeps the file untouched (the offender path owns
876
- // it: neutralizing would drop an evaluation, keeping it meets the
877
- // lowering's discard fence at load).
878
- const chased = chaseValue(cur);
879
- if (chased === null) {
880
- return toEsm.pads.length > 0 ? { degrade: TO_ESM_MIXED_DEGRADE } : null;
881
- }
882
- if (!discarded) {
883
- for (const name of m.names)
884
- claim(name, { name, kind: chased.kind, value: chased.text });
885
- }
886
- // discarded members keep only their lexer-visible NAME (the any
887
- // fallback below) — value undefined, exactly Node's link answer
888
- }
889
- neutralize.push({ start: m.start, end: m.end });
890
- }
891
- /* Direct-vs-hoist for ident entries: only bindings declared by a
892
- * top-level const/function/class may be spelled directly (alias
893
- * plumbing needs an immutable target — a `var`/`let` in the table would
894
- * fence the whole statement). Everything else snapshots via a tail
895
- * const. */
896
- const immutableTopLevel = new Set();
897
- for (const stmt of sf.statements) {
898
- if (ts.isFunctionDeclaration(stmt) && stmt.name !== undefined)
899
- immutableTopLevel.add(stmt.name.text);
900
- else if (ts.isClassDeclaration(stmt) && stmt.name !== undefined)
901
- immutableTopLevel.add(stmt.name.text);
902
- else if (ts.isVariableStatement(stmt) && (stmt.declarationList.flags & ts.NodeFlags.Const) !== 0) {
903
- for (const d of stmt.declarationList.declarations) {
904
- if (ts.isIdentifier(d.name))
905
- immutableTopLevel.add(d.name.text);
906
- }
907
- }
908
- }
909
- for (const spec of entries.values()) {
910
- if (spec.kind === "ident" && !immutableTopLevel.has(spec.value))
911
- spec.kind = "hoist";
912
- }
913
- // Star enumerations for names the own entries left uncovered.
914
- starSpecs.forEach((spec, i) => {
915
- const target = resolveRelativeCjs(filePath, spec);
916
- if (target === null)
917
- return; // bare/unresolved: the spread entry carries it
918
- const names = starTargetNames(target);
919
- let refVar = null;
920
- for (const n of names) {
921
- if (n === "default" || n === "__esModule" || entries.has(n) || RESERVED_KEYS.has(n))
922
- continue;
923
- if (starMembers.some((m) => m.name === n))
924
- continue; // earlier spec wins
925
- if (refVar === null) {
926
- refVar = `__scriptc_r${i}`;
927
- requireConsts.push(`const ${refVar} = require(${JSON.stringify(spec)});`);
928
- }
929
- starMembers.push({ name: n, ref: refVar });
930
- }
931
- });
932
- // The any fallback: every lexer-visible name nothing above covered.
933
- for (const n of lexed.exports)
934
- claim(n, { name: n, kind: "any" });
935
- emitTable = entries.size > 0 || starSpecs.length > 0;
936
- }
937
- /* A file with interop pads but no canonical table still rewrites: the
938
- * pads erase the __toESM wrappers and the sweep below drops the dead
939
- * helper chain — but nothing replaces the export plumbing, so none of
940
- * it may be neutralized (the surviving text keeps exactly its
941
- * untouched-file behavior). */
942
- if (!emitTable) {
943
- if (toEsm.pads.length === 0)
944
- return null;
945
- neutralize.length = 0;
946
- }
947
- // Interop pads join the neutralized set BEFORE the sweep: the erased
948
- // __toESM call sites read as dead references, so the helper declaration
949
- // sweeps away and its __create/__getProtoOf chain follows.
950
- neutralize.push(...toEsm.pads);
951
- /* Bundler HELPPER declarations left unused once the plumbing statements
952
- * are gone would still fence at module load (`var __defProp =
953
- * Object.defineProperty;` — a stdlib generic method as a value has no
954
- * lowering, and a top-level declaration's fence throws when init runs
955
- * it). Mark-and-sweep the RECOGNIZED helper names: a helper whose every
956
- * reference lies inside an already-neutralized span (the plumbing
957
- * calls, the erased __toESM interop wrappers, or another swept helper's
958
- * declaration) is neutralized too. Helpers live code still calls
959
- * (__commonJS chunk factories) stay — their declarations are plain
960
- * function values whose bodies defer per the JS function-poison rule. */
961
- {
962
- const HELPER_NAMES = new Set([
963
- "__create", "__defProp", "__defProps", "__getOwnPropDesc", "__getOwnPropDescs",
964
- "__getOwnPropNames", "__getOwnPropSymbols", "__getProtoOf", "__hasOwnProp",
965
- "__propIsEnum", "__export", "__copyProps", "__reExport", "__toESM", "__toCommonJS",
966
- "__exportStar", "__createBinding", "__setModuleDefault", "__importStar", "__importDefault",
967
- ]);
968
- const helperDecls = new Map();
969
- for (const stmt of sf.statements) {
970
- if (!ts.isVariableStatement(stmt))
971
- continue;
972
- const decls = stmt.declarationList.declarations;
973
- if (decls.length !== 1)
974
- continue;
975
- const d = decls[0];
976
- if (ts.isIdentifier(d.name) && HELPER_NAMES.has(d.name.text)) {
977
- helperDecls.set(d.name.text, { start: stmt.getStart(sf), end: stmt.getEnd() });
978
- }
979
- }
980
- // every identifier occurrence of a helper name outside its own
981
- // declarator name node, position-recorded for the span test
982
- const refs = new Map();
983
- const record = (node) => {
984
- ts.forEachChild(node, record);
985
- if (ts.isIdentifier(node) && helperDecls.has(node.text)) {
986
- const parent = node.parent;
987
- if (parent !== undefined && ts.isVariableDeclaration(parent) && parent.name === node)
988
- return;
989
- const list = refs.get(node.text);
990
- if (list === undefined)
991
- refs.set(node.text, [node.getStart(sf)]);
992
- else
993
- list.push(node.getStart(sf));
994
- }
995
- };
996
- record(sf);
997
- const dead = [...neutralize];
998
- const inDead = (pos) => dead.some((s) => pos >= s.start && pos < s.end);
999
- const removed = new Set();
1000
- for (let changed = true; changed;) {
1001
- changed = false;
1002
- for (const [name, span] of helperDecls) {
1003
- if (removed.has(name))
1004
- continue;
1005
- // SELF-references inside the candidate's own declaration don't
1006
- // keep it alive (`var __createBinding = (this && this.__createBinding)
1007
- // || ...` — the tsc helper's UMD-style self probe).
1008
- const live = (refs.get(name) ?? []).filter((p) => p < span.start || p >= span.end);
1009
- if (live.every(inDead)) {
1010
- removed.add(name);
1011
- dead.push(span);
1012
- changed = true;
1013
- }
1014
- }
1015
- }
1016
- neutralize.length = 0;
1017
- neutralize.push(...dead);
1018
- }
1019
- /* ── emission ─────────────────────────────────────────────────────── */
1020
- let text = source;
1021
- // pad from the END so earlier spans' offsets stay valid
1022
- for (const n of [...neutralize].sort((a, b) => b.start - a.start)) {
1023
- text = padSpan(text, n.start, n.end);
1024
- }
1025
- if (!emitTable)
1026
- return text; // interop pads only — nothing appends
1027
- const lines = [""];
1028
- const hasAnyFallback = [...entries.values()].some((s) => s.kind === "any");
1029
- if (hasAnyFallback) {
1030
- // checked-dynamic undefined: an implicit-any IIFE result registers a
1031
- // dyn module global the table's alias plumbing can resolve.
1032
- lines.push("const __scriptc_any = (() => { let u; return u; })();");
1033
- }
1034
- lines.push(...requireConsts);
1035
- const hoists = [];
1036
- let hoistN = 0;
1037
- const keyOf = (name) => (isPlainName(name) ? name : JSON.stringify(name));
1038
- /* Hoist texts are COPIED off the original source, where a `.default`
1039
- * access on a module-valued interop binding still carries its member
1040
- * spelling (the pads erase only source spans) — drop it here exactly
1041
- * like the pads do, or the tail const would read a member the module
1042
- * never exports. */
1043
- const dropInteropDefault = (text) => {
1044
- let out = text;
1045
- for (const b of toEsm.moduleBindings) {
1046
- out = out.replace(new RegExp(`\\b${b}\\s*\\.\\s*default\\b`, "g"), b);
1047
- }
1048
- return out;
1049
- };
1050
- const plainParts = [];
1051
- for (const spec of entries.values()) {
1052
- if (spec.kind === "ident") {
1053
- plainParts.push(`${keyOf(spec.name)}: ${spec.value},`);
1054
- }
1055
- else if (spec.kind === "hoist") {
1056
- const v = `__scriptc_e${hoistN++}`;
1057
- hoists.push(`const ${v} = ${dropInteropDefault(spec.value)};`);
1058
- plainParts.push(`${keyOf(spec.name)}: ${v},`);
1059
- }
1060
- else {
1061
- plainParts.push(`${keyOf(spec.name)}: __scriptc_any,`);
1062
- }
1063
- }
1064
- lines.push(...hoists);
1065
- /* The table. Spread entries first (REVERSED: Node's star copies are
1066
- * first-wins, an object literal's later-wins — reversing makes them
1067
- * agree), then the scan-visible plain entries, then — only where the
1068
- * original stamped it LEXER-DETECTABLY (the tsc defineProperty form;
1069
- * Node links `import { __esModule }` there) — the `__esModule: true`
1070
- * entry, then the member-access star entries whose names the spread
1071
- * records already cover. esbuild's marker lives inside __toCommonJS
1072
- * where Node's lexer never saw it, and spelling it here would flip the
1073
- * checker's default-import interop (an __esModule-stamped surface binds
1074
- * `import def` to exports.default) away from Node's CJS answer — so it
1075
- * is deliberately OMITTED from the canonical table. */
1076
- const spreadParts = [...starSpecs].reverse().map((s) => `...require(${JSON.stringify(s)}),`);
1077
- const esModulePart = lexed.exports.has("__esModule") ? "__esModule: true," : "";
1078
- const memberParts = starMembers.map((m) => `${keyOf(m.name)}: ${m.ref}${isPlainName(m.name) ? `.${m.name}` : `[${JSON.stringify(m.name)}]`},`);
1079
- lines.push(`module.exports = {${spreadParts.join("")}${plainParts.join("")}${esModulePart}${memberParts.join("")}};`);
1080
- return text + lines.join("\n") + "\n";
3
+ return nodeFrontendServices().rewriteCjs(source, filePath);
1081
4
  }
1082
5
  //# sourceMappingURL=npm-static-rewrite.js.map