@scriptc/compiler 0.4.8 → 0.4.9

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 (536) hide show
  1. package/ambient/node-fallback/buffer.d.ts +2 -0
  2. package/ambient/node-fallback/child_process.d.ts +9 -3
  3. package/ambient/node-fallback/dns-promises.d.ts +25 -0
  4. package/ambient/node-fallback/dns.d.ts +29 -0
  5. package/ambient/node-fallback/test.d.ts +7 -0
  6. package/ambient/scriptc-node-fallback.d.ts +145 -2
  7. package/ambient/scriptc-overrides.d.ts +22 -13
  8. package/dist/backend/build-cache.d.ts +1 -1
  9. package/dist/backend/build-cache.js +1 -1
  10. package/dist/backend/build-cache.js.map +1 -1
  11. package/dist/backend/cache-root.d.ts +7 -0
  12. package/dist/backend/cache-root.js +27 -0
  13. package/dist/backend/cache-root.js.map +1 -1
  14. package/dist/backend/executable-features.js +5 -1
  15. package/dist/backend/executable-features.js.map +1 -1
  16. package/dist/backend/link-plan.js +7 -1
  17. package/dist/backend/link-plan.js.map +1 -1
  18. package/dist/backend/llvm/bytes-loop-versions.d.ts +12 -1
  19. package/dist/backend/llvm/bytes-loop-versions.js +107 -30
  20. package/dist/backend/llvm/bytes-loop-versions.js.map +1 -1
  21. package/dist/backend/llvm/bytes-loop-versions.test.js +96 -0
  22. package/dist/backend/llvm/bytes-loop-versions.test.js.map +1 -1
  23. package/dist/backend/llvm/checked-value-lifetimes.js +1 -0
  24. package/dist/backend/llvm/checked-value-lifetimes.js.map +1 -1
  25. package/dist/backend/llvm/classes.d.ts +16 -5
  26. package/dist/backend/llvm/classes.js +34 -6
  27. package/dist/backend/llvm/classes.js.map +1 -1
  28. package/dist/backend/llvm/classes.test.js +21 -2
  29. package/dist/backend/llvm/classes.test.js.map +1 -1
  30. package/dist/backend/llvm/common.d.ts +9 -0
  31. package/dist/backend/llvm/common.js +9 -0
  32. package/dist/backend/llvm/common.js.map +1 -1
  33. package/dist/backend/llvm/cpu-dispatch.d.ts +36 -2
  34. package/dist/backend/llvm/cpu-dispatch.js +96 -2
  35. package/dist/backend/llvm/cpu-dispatch.js.map +1 -1
  36. package/dist/backend/llvm/dense-array-access.d.ts +5 -2
  37. package/dist/backend/llvm/dense-array-access.js +16 -12
  38. package/dist/backend/llvm/dense-array-access.js.map +1 -1
  39. package/dist/backend/llvm/dense-array-access.test.js +3 -1
  40. package/dist/backend/llvm/dense-array-access.test.js.map +1 -1
  41. package/dist/backend/llvm/dyn.d.ts +24 -0
  42. package/dist/backend/llvm/dyn.js +117 -3
  43. package/dist/backend/llvm/dyn.js.map +1 -1
  44. package/dist/backend/llvm/emit-function.js +6 -0
  45. package/dist/backend/llvm/emit-function.js.map +1 -1
  46. package/dist/backend/llvm/emit-journal.d.ts +1 -0
  47. package/dist/backend/llvm/emit-journal.js.map +1 -1
  48. package/dist/backend/llvm/emit-module.js +48 -5
  49. package/dist/backend/llvm/emit-module.js.map +1 -1
  50. package/dist/backend/llvm/emit-module.test.js +41 -0
  51. package/dist/backend/llvm/emit-module.test.js.map +1 -1
  52. package/dist/backend/llvm/emit-statements.js +11 -0
  53. package/dist/backend/llvm/emit-statements.js.map +1 -1
  54. package/dist/backend/llvm/emitter.d.ts +87 -7
  55. package/dist/backend/llvm/emitter.js +136 -15
  56. package/dist/backend/llvm/emitter.js.map +1 -1
  57. package/dist/backend/llvm/expr-async.js +28 -6
  58. package/dist/backend/llvm/expr-async.js.map +1 -1
  59. package/dist/backend/llvm/expr-containers.js +19 -5
  60. package/dist/backend/llvm/expr-containers.js.map +1 -1
  61. package/dist/backend/llvm/expr-dynamic.js +29 -1
  62. package/dist/backend/llvm/expr-dynamic.js.map +1 -1
  63. package/dist/backend/llvm/expr-primitives.js +104 -6
  64. package/dist/backend/llvm/expr-primitives.js.map +1 -1
  65. package/dist/backend/llvm/expr-records.js +15 -1
  66. package/dist/backend/llvm/expr-records.js.map +1 -1
  67. package/dist/backend/llvm/expr-stream-bridges.js +53 -5
  68. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -1
  69. package/dist/backend/llvm/inline-arrays.js +1 -1
  70. package/dist/backend/llvm/inline-arrays.js.map +1 -1
  71. package/dist/backend/llvm/js-ic.js +126 -2
  72. package/dist/backend/llvm/js-ic.js.map +1 -1
  73. package/dist/backend/llvm/lanes.d.ts +38 -0
  74. package/dist/backend/llvm/lanes.js +778 -0
  75. package/dist/backend/llvm/lanes.js.map +1 -0
  76. package/dist/backend/llvm/lanes.test.d.ts +1 -0
  77. package/dist/backend/llvm/lanes.test.js +402 -0
  78. package/dist/backend/llvm/lanes.test.js.map +1 -0
  79. package/dist/backend/llvm/lib-dispatch.js +9 -4
  80. package/dist/backend/llvm/lib-dispatch.js.map +1 -1
  81. package/dist/backend/llvm/lib-network.js +20 -0
  82. package/dist/backend/llvm/lib-network.js.map +1 -1
  83. package/dist/backend/llvm/lib-shared.js +27 -0
  84. package/dist/backend/llvm/lib-shared.js.map +1 -1
  85. package/dist/backend/llvm/lib-test.js +11 -0
  86. package/dist/backend/llvm/lib-test.js.map +1 -1
  87. package/dist/backend/llvm/local-array-reads.js +2 -2
  88. package/dist/backend/llvm/local-array-reads.js.map +1 -1
  89. package/dist/backend/llvm/map-number-lookup.js +8 -2
  90. package/dist/backend/llvm/map-number-lookup.js.map +1 -1
  91. package/dist/backend/llvm/nullable-unions.js +5 -2
  92. package/dist/backend/llvm/nullable-unions.js.map +1 -1
  93. package/dist/backend/llvm/publish.d.ts +3 -0
  94. package/dist/backend/llvm/publish.js +2 -2
  95. package/dist/backend/llvm/publish.js.map +1 -1
  96. package/dist/backend/llvm/reference-writes.js +1 -0
  97. package/dist/backend/llvm/reference-writes.js.map +1 -1
  98. package/dist/backend/llvm/region-groups.js +43 -4
  99. package/dist/backend/llvm/region-groups.js.map +1 -1
  100. package/dist/backend/llvm/region-groups.test.js +79 -0
  101. package/dist/backend/llvm/region-groups.test.js.map +1 -1
  102. package/dist/backend/llvm/runtime-registries.test.js +32 -1
  103. package/dist/backend/llvm/runtime-registries.test.js.map +1 -1
  104. package/dist/backend/llvm/shapes.js +10 -1
  105. package/dist/backend/llvm/shapes.js.map +1 -1
  106. package/dist/backend/llvm/string-reads.d.ts +1 -1
  107. package/dist/backend/llvm/string-reads.js +1 -1
  108. package/dist/backend/llvm/string-reads.js.map +1 -1
  109. package/dist/backend/llvm/unwind-abi.js +24 -2
  110. package/dist/backend/llvm/unwind-abi.js.map +1 -1
  111. package/dist/backend/llvm/unwind-abi.test.js +38 -0
  112. package/dist/backend/llvm/unwind-abi.test.js.map +1 -1
  113. package/dist/backend/llvm/walkers.d.ts +3 -0
  114. package/dist/backend/llvm/walkers.js +20 -2
  115. package/dist/backend/llvm/walkers.js.map +1 -1
  116. package/dist/backend/native/contracts.d.ts +15 -3
  117. package/dist/backend/native/executable.js +19 -5
  118. package/dist/backend/native/executable.js.map +1 -1
  119. package/dist/backend/native-codegen-core.d.ts +20 -0
  120. package/dist/backend/native-codegen-core.js +15 -0
  121. package/dist/backend/native-codegen-core.js.map +1 -1
  122. package/dist/backend/native-codegen.d.ts +5 -0
  123. package/dist/backend/native-codegen.js +62 -8
  124. package/dist/backend/native-codegen.js.map +1 -1
  125. package/dist/backend/native-codegen.test.js +48 -8
  126. package/dist/backend/native-codegen.test.js.map +1 -1
  127. package/dist/backend/native-link-info-core.d.ts +27 -3
  128. package/dist/backend/native-link-info-core.js.map +1 -1
  129. package/dist/backend/native-link-info.test.js +17 -1
  130. package/dist/backend/native-link-info.test.js.map +1 -1
  131. package/dist/backend/native-toolchain.d.ts +1 -1
  132. package/dist/backend/native-toolchain.js +1 -1
  133. package/dist/backend/native-toolchain.js.map +1 -1
  134. package/dist/backend/native-toolchain.test.js +14 -1
  135. package/dist/backend/native-toolchain.test.js.map +1 -1
  136. package/dist/backend/runtime-pack-core.d.ts +9 -3
  137. package/dist/backend/runtime-pack-core.js +6 -1
  138. package/dist/backend/runtime-pack-core.js.map +1 -1
  139. package/dist/backend/runtime-pack.test.js +32 -1
  140. package/dist/backend/runtime-pack.test.js.map +1 -1
  141. package/dist/backend/targets.d.ts +9 -1
  142. package/dist/backend/targets.js +11 -2
  143. package/dist/backend/targets.js.map +1 -1
  144. package/dist/backend/targets.test.js +6 -0
  145. package/dist/backend/targets.test.js.map +1 -1
  146. package/dist/cli/command.js +15 -1
  147. package/dist/cli/command.js.map +1 -1
  148. package/dist/cli/host.d.ts +6 -0
  149. package/dist/cli/mcp.d.ts +72 -0
  150. package/dist/cli/mcp.js +601 -0
  151. package/dist/cli/mcp.js.map +1 -0
  152. package/dist/cli/mcp.test.d.ts +1 -0
  153. package/dist/cli/mcp.test.js +380 -0
  154. package/dist/cli/mcp.test.js.map +1 -0
  155. package/dist/cli/output-options.d.ts +1 -0
  156. package/dist/cli/output-options.js +3 -0
  157. package/dist/cli/output-options.js.map +1 -1
  158. package/dist/cli/usage.d.ts +51 -1
  159. package/dist/cli/usage.js +709 -186
  160. package/dist/cli/usage.js.map +1 -1
  161. package/dist/compat/fetch-profile.js +9 -4
  162. package/dist/compat/fetch-profile.js.map +1 -1
  163. package/dist/compile-types.d.ts +17 -0
  164. package/dist/coverage/report.d.ts +5 -9
  165. package/dist/coverage/report.js.map +1 -1
  166. package/dist/executable/executable-cache.d.ts +17 -3
  167. package/dist/executable/executable-cache.js +17 -3
  168. package/dist/executable/executable-cache.js.map +1 -1
  169. package/dist/executable/prepare.js +87 -10
  170. package/dist/executable/prepare.js.map +1 -1
  171. package/dist/frontend/analysis.js +3 -2
  172. package/dist/frontend/analysis.js.map +1 -1
  173. package/dist/frontend/canon-map.js +13 -8
  174. package/dist/frontend/canon-map.js.map +1 -1
  175. package/dist/frontend/decl-projection.d.ts +18 -0
  176. package/dist/frontend/decl-projection.js +90 -22
  177. package/dist/frontend/decl-projection.js.map +1 -1
  178. package/dist/frontend/decl-projection.test.js +47 -1
  179. package/dist/frontend/decl-projection.test.js.map +1 -1
  180. package/dist/frontend/default-library.d.ts +10 -0
  181. package/dist/frontend/default-library.js +43 -0
  182. package/dist/frontend/default-library.js.map +1 -0
  183. package/dist/frontend/fork-target.js +54 -9
  184. package/dist/frontend/fork-target.js.map +1 -1
  185. package/dist/frontend/fork-target.test.js +82 -0
  186. package/dist/frontend/fork-target.test.js.map +1 -1
  187. package/dist/frontend/inferred-js-diagnostics.test.js +73 -0
  188. package/dist/frontend/inferred-js-diagnostics.test.js.map +1 -1
  189. package/dist/frontend/lowering/abstract-equality.d.ts +2 -1
  190. package/dist/frontend/lowering/abstract-equality.js +7 -1
  191. package/dist/frontend/lowering/abstract-equality.js.map +1 -1
  192. package/dist/frontend/lowering/array-values.js +2 -2
  193. package/dist/frontend/lowering/array-values.js.map +1 -1
  194. package/dist/frontend/lowering/assertion-members.js +52 -2
  195. package/dist/frontend/lowering/assertion-members.js.map +1 -1
  196. package/dist/frontend/lowering/builtin-namespaces.d.ts +5 -0
  197. package/dist/frontend/lowering/builtin-namespaces.js +19 -12
  198. package/dist/frontend/lowering/builtin-namespaces.js.map +1 -1
  199. package/dist/frontend/lowering/builtins/callable-aliases.js +42 -6
  200. package/dist/frontend/lowering/builtins/callable-aliases.js.map +1 -1
  201. package/dist/frontend/lowering/builtins/child-process.d.ts +12 -11
  202. package/dist/frontend/lowering/builtins/child-process.js +235 -38
  203. package/dist/frontend/lowering/builtins/child-process.js.map +1 -1
  204. package/dist/frontend/lowering/builtins/compression.d.ts +6 -1
  205. package/dist/frontend/lowering/builtins/compression.js +3 -3
  206. package/dist/frontend/lowering/builtins/compression.js.map +1 -1
  207. package/dist/frontend/lowering/builtins/constants.js +2 -2
  208. package/dist/frontend/lowering/builtins/constants.js.map +1 -1
  209. package/dist/frontend/lowering/builtins/crypto.d.ts +3 -1
  210. package/dist/frontend/lowering/builtins/crypto.js +9 -1
  211. package/dist/frontend/lowering/builtins/crypto.js.map +1 -1
  212. package/dist/frontend/lowering/builtins/dates.js +26 -6
  213. package/dist/frontend/lowering/builtins/dates.js.map +1 -1
  214. package/dist/frontend/lowering/builtins/environment.d.ts +13 -1
  215. package/dist/frontend/lowering/builtins/environment.js +15 -4
  216. package/dist/frontend/lowering/builtins/environment.js.map +1 -1
  217. package/dist/frontend/lowering/builtins/module-bindings.d.ts +33 -0
  218. package/dist/frontend/lowering/builtins/module-bindings.js +213 -11
  219. package/dist/frontend/lowering/builtins/module-bindings.js.map +1 -1
  220. package/dist/frontend/lowering/builtins/module-resolution.d.ts +9 -2
  221. package/dist/frontend/lowering/builtins/module-resolution.js +187 -19
  222. package/dist/frontend/lowering/builtins/module-resolution.js.map +1 -1
  223. package/dist/frontend/lowering/builtins/performance.js +1 -1
  224. package/dist/frontend/lowering/builtins/performance.js.map +1 -1
  225. package/dist/frontend/lowering/builtins/process.js +40 -2
  226. package/dist/frontend/lowering/builtins/process.js.map +1 -1
  227. package/dist/frontend/lowering/builtins/promises.js +33 -0
  228. package/dist/frontend/lowering/builtins/promises.js.map +1 -1
  229. package/dist/frontend/lowering/builtins/readline.d.ts +9 -5
  230. package/dist/frontend/lowering/builtins/readline.js +184 -75
  231. package/dist/frontend/lowering/builtins/readline.js.map +1 -1
  232. package/dist/frontend/lowering/builtins/url.d.ts +4 -0
  233. package/dist/frontend/lowering/builtins/url.js +6 -0
  234. package/dist/frontend/lowering/builtins/url.js.map +1 -1
  235. package/dist/frontend/lowering/call-arguments.js +15 -0
  236. package/dist/frontend/lowering/call-arguments.js.map +1 -1
  237. package/dist/frontend/lowering/callable-properties.d.ts +34 -0
  238. package/dist/frontend/lowering/callable-properties.js +210 -0
  239. package/dist/frontend/lowering/callable-properties.js.map +1 -0
  240. package/dist/frontend/lowering/cjs-inline-require.d.ts +16 -0
  241. package/dist/frontend/lowering/cjs-inline-require.js +105 -0
  242. package/dist/frontend/lowering/cjs-inline-require.js.map +1 -1
  243. package/dist/frontend/lowering/cjs-inline-require.test.d.ts +1 -0
  244. package/dist/frontend/lowering/cjs-inline-require.test.js +61 -0
  245. package/dist/frontend/lowering/cjs-inline-require.test.js.map +1 -0
  246. package/dist/frontend/lowering/class-dynamic-dispatch.js +82 -2
  247. package/dist/frontend/lowering/class-dynamic-dispatch.js.map +1 -1
  248. package/dist/frontend/lowering/class-protocols.d.ts +57 -4
  249. package/dist/frontend/lowering/class-protocols.js +597 -30
  250. package/dist/frontend/lowering/class-protocols.js.map +1 -1
  251. package/dist/frontend/lowering/class-unions.js +2 -2
  252. package/dist/frontend/lowering/class-unions.js.map +1 -1
  253. package/dist/frontend/lowering/coercions/function-adapters.d.ts +12 -0
  254. package/dist/frontend/lowering/coercions/function-adapters.js +62 -0
  255. package/dist/frontend/lowering/coercions/function-adapters.js.map +1 -1
  256. package/dist/frontend/lowering/coercions/structural-plans.js +56 -1
  257. package/dist/frontend/lowering/coercions/structural-plans.js.map +1 -1
  258. package/dist/frontend/lowering/coercions/structural.js +9 -4
  259. package/dist/frontend/lowering/coercions/structural.js.map +1 -1
  260. package/dist/frontend/lowering/collection-ingestion.d.ts +9 -0
  261. package/dist/frontend/lowering/collection-ingestion.js +115 -41
  262. package/dist/frontend/lowering/collection-ingestion.js.map +1 -1
  263. package/dist/frontend/lowering/containers/array-callbacks.js +16 -0
  264. package/dist/frontend/lowering/containers/array-callbacks.js.map +1 -1
  265. package/dist/frontend/lowering/containers/bytes.js +66 -10
  266. package/dist/frontend/lowering/containers/bytes.js.map +1 -1
  267. package/dist/frontend/lowering/containers/collection-methods.js +61 -5
  268. package/dist/frontend/lowering/containers/collection-methods.js.map +1 -1
  269. package/dist/frontend/lowering/containers/filter-predicates.js +11 -0
  270. package/dist/frontend/lowering/containers/filter-predicates.js.map +1 -1
  271. package/dist/frontend/lowering/containers/indexed-objects.d.ts +15 -0
  272. package/dist/frontend/lowering/containers/indexed-objects.js +213 -30
  273. package/dist/frontend/lowering/containers/indexed-objects.js.map +1 -1
  274. package/dist/frontend/lowering/error-name-order.d.ts +16 -0
  275. package/dist/frontend/lowering/error-name-order.js +61 -0
  276. package/dist/frontend/lowering/error-name-order.js.map +1 -1
  277. package/dist/frontend/lowering/expressions/asserted-receiver.d.ts +17 -0
  278. package/dist/frontend/lowering/expressions/asserted-receiver.js +123 -1
  279. package/dist/frontend/lowering/expressions/asserted-receiver.js.map +1 -1
  280. package/dist/frontend/lowering/expressions/binary.js +147 -20
  281. package/dist/frontend/lowering/expressions/binary.js.map +1 -1
  282. package/dist/frontend/lowering/expressions/element-access.js +63 -14
  283. package/dist/frontend/lowering/expressions/element-access.js.map +1 -1
  284. package/dist/frontend/lowering/expressions/erased-delete.d.ts +59 -0
  285. package/dist/frontend/lowering/expressions/erased-delete.js +247 -0
  286. package/dist/frontend/lowering/expressions/erased-delete.js.map +1 -0
  287. package/dist/frontend/lowering/expressions/hosted-narrowing.d.ts +10 -0
  288. package/dist/frontend/lowering/expressions/hosted-narrowing.js +48 -1
  289. package/dist/frontend/lowering/expressions/hosted-narrowing.js.map +1 -1
  290. package/dist/frontend/lowering/expressions/identifiers.js +20 -0
  291. package/dist/frontend/lowering/expressions/identifiers.js.map +1 -1
  292. package/dist/frontend/lowering/expressions/narrowing.d.ts +7 -2
  293. package/dist/frontend/lowering/expressions/narrowing.js +77 -45
  294. package/dist/frontend/lowering/expressions/narrowing.js.map +1 -1
  295. package/dist/frontend/lowering/expressions/object-literals.js +62 -19
  296. package/dist/frontend/lowering/expressions/object-literals.js.map +1 -1
  297. package/dist/frontend/lowering/expressions/optional-chains.js +19 -0
  298. package/dist/frontend/lowering/expressions/optional-chains.js.map +1 -1
  299. package/dist/frontend/lowering/expressions/property-access.d.ts +7 -7
  300. package/dist/frontend/lowering/expressions/property-access.js +247 -48
  301. package/dist/frontend/lowering/expressions/property-access.js.map +1 -1
  302. package/dist/frontend/lowering/expressions/relational.d.ts +1 -0
  303. package/dist/frontend/lowering/expressions/relational.js +18 -8
  304. package/dist/frontend/lowering/expressions/relational.js.map +1 -1
  305. package/dist/frontend/lowering/expressions/union-fields.js +11 -5
  306. package/dist/frontend/lowering/expressions/union-fields.js.map +1 -1
  307. package/dist/frontend/lowering/expressions/updates.js +121 -11
  308. package/dist/frontend/lowering/expressions/updates.js.map +1 -1
  309. package/dist/frontend/lowering/function-context.d.ts +10 -0
  310. package/dist/frontend/lowering/function-context.js +36 -0
  311. package/dist/frontend/lowering/function-context.js.map +1 -1
  312. package/dist/frontend/lowering/function-returns.js +8 -8
  313. package/dist/frontend/lowering/function-returns.js.map +1 -1
  314. package/dist/frontend/lowering/handle-properties.d.ts +62 -3
  315. package/dist/frontend/lowering/handle-properties.js +674 -26
  316. package/dist/frontend/lowering/handle-properties.js.map +1 -1
  317. package/dist/frontend/lowering/handle-properties.test.js +95 -2
  318. package/dist/frontend/lowering/handle-properties.test.js.map +1 -1
  319. package/dist/frontend/lowering/lower-builtin-values.d.ts +12 -0
  320. package/dist/frontend/lowering/lower-builtin-values.js +44 -0
  321. package/dist/frontend/lowering/lower-builtin-values.js.map +1 -1
  322. package/dist/frontend/lowering/lower-calls.js +328 -136
  323. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  324. package/dist/frontend/lowering/lower-classes.js +82 -17
  325. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  326. package/dist/frontend/lowering/lower-event-emitter.js +113 -9
  327. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -1
  328. package/dist/frontend/lowering/lower-expando.d.ts +13 -21
  329. package/dist/frontend/lowering/lower-expando.js +90 -126
  330. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  331. package/dist/frontend/lowering/lower-exprs.js +2 -2
  332. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  333. package/dist/frontend/lowering/lower-functions.js +65 -0
  334. package/dist/frontend/lowering/lower-functions.js.map +1 -1
  335. package/dist/frontend/lowering/lower-inspect.js +471 -0
  336. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  337. package/dist/frontend/lowering/lower-modules.js +36 -10
  338. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  339. package/dist/frontend/lowering/lower-node-island.js +28 -0
  340. package/dist/frontend/lowering/lower-node-island.js.map +1 -1
  341. package/dist/frontend/lowering/lower-server.d.ts +53 -7
  342. package/dist/frontend/lowering/lower-server.js +213 -42
  343. package/dist/frontend/lowering/lower-server.js.map +1 -1
  344. package/dist/frontend/lowering/lower-stdlib.js +50 -7
  345. package/dist/frontend/lowering/lower-stdlib.js.map +1 -1
  346. package/dist/frontend/lowering/lower-stmts.d.ts +24 -0
  347. package/dist/frontend/lowering/lower-stmts.js +463 -220
  348. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  349. package/dist/frontend/lowering/lower-stream.js +2 -2
  350. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  351. package/dist/frontend/lowering/lower-test.js +71 -2
  352. package/dist/frontend/lowering/lower-test.js.map +1 -1
  353. package/dist/frontend/lowering/lowerer.d.ts +81 -10
  354. package/dist/frontend/lowering/lowerer.js +319 -72
  355. package/dist/frontend/lowering/lowerer.js.map +1 -1
  356. package/dist/frontend/lowering/new-target.js +10 -2
  357. package/dist/frontend/lowering/new-target.js.map +1 -1
  358. package/dist/frontend/lowering/nullish-empty-pattern.js +3 -3
  359. package/dist/frontend/lowering/nullish-empty-pattern.js.map +1 -1
  360. package/dist/frontend/lowering/partial-assertions.js +30 -5
  361. package/dist/frontend/lowering/partial-assertions.js.map +1 -1
  362. package/dist/frontend/lowering/primitive-throws.js +91 -1
  363. package/dist/frontend/lowering/primitive-throws.js.map +1 -1
  364. package/dist/frontend/lowering/primitive-wrappers.d.ts +9 -0
  365. package/dist/frontend/lowering/primitive-wrappers.js +2 -2
  366. package/dist/frontend/lowering/primitive-wrappers.js.map +1 -1
  367. package/dist/frontend/lowering/promise-executor-adapter.js +5 -2
  368. package/dist/frontend/lowering/promise-executor-adapter.js.map +1 -1
  369. package/dist/frontend/lowering/record-links.js +7 -2
  370. package/dist/frontend/lowering/record-links.js.map +1 -1
  371. package/dist/frontend/lowering/surfaces.d.ts +4 -0
  372. package/dist/frontend/lowering/surfaces.js +118 -2
  373. package/dist/frontend/lowering/surfaces.js.map +1 -1
  374. package/dist/frontend/lowering/surfaces.test.d.ts +1 -0
  375. package/dist/frontend/lowering/surfaces.test.js +31 -0
  376. package/dist/frontend/lowering/surfaces.test.js.map +1 -0
  377. package/dist/frontend/mock-shapes.js +3 -3
  378. package/dist/frontend/mock-shapes.js.map +1 -1
  379. package/dist/frontend/npm-static-ladder.d.ts +21 -0
  380. package/dist/frontend/npm-static-ladder.js +2 -0
  381. package/dist/frontend/npm-static-ladder.js.map +1 -0
  382. package/dist/frontend/npm-static-ladder.test.d.ts +1 -0
  383. package/dist/frontend/npm-static-ladder.test.js +138 -0
  384. package/dist/frontend/npm-static-ladder.test.js.map +1 -0
  385. package/dist/frontend/npm-static-status.d.ts +15 -0
  386. package/dist/frontend/npm-static-status.js +2 -0
  387. package/dist/frontend/npm-static-status.js.map +1 -0
  388. package/dist/frontend/package-shims.js +1 -1
  389. package/dist/frontend/package-shims.js.map +1 -1
  390. package/dist/frontend/pipeline.d.ts +1 -1
  391. package/dist/frontend/pipeline.js +222 -25
  392. package/dist/frontend/pipeline.js.map +1 -1
  393. package/dist/frontend/program-analysis.d.ts +4 -0
  394. package/dist/frontend/program-analysis.js +6 -0
  395. package/dist/frontend/program-analysis.js.map +1 -1
  396. package/dist/frontend/program.js +258 -32
  397. package/dist/frontend/program.js.map +1 -1
  398. package/dist/frontend/program.test.js +30 -0
  399. package/dist/frontend/program.test.js.map +1 -1
  400. package/dist/frontend/resolve.js +29 -5
  401. package/dist/frontend/resolve.js.map +1 -1
  402. package/dist/frontend/resolve.test.js +40 -0
  403. package/dist/frontend/resolve.test.js.map +1 -1
  404. package/dist/frontend/services.d.ts +8 -0
  405. package/dist/frontend/services.js +7 -0
  406. package/dist/frontend/services.js.map +1 -1
  407. package/dist/frontend/ts7/checker.d.ts +7 -0
  408. package/dist/frontend/ts7/checker.js +12 -0
  409. package/dist/frontend/ts7/checker.js.map +1 -1
  410. package/dist/frontend/ts7/checker.test.js +1 -0
  411. package/dist/frontend/ts7/checker.test.js.map +1 -1
  412. package/dist/frontend/ts7/program-host.d.ts +39 -2
  413. package/dist/frontend/ts7/program-host.js +62 -8
  414. package/dist/frontend/ts7/program-host.js.map +1 -1
  415. package/dist/frontend/ts7/program-host.test.js +33 -0
  416. package/dist/frontend/ts7/program-host.test.js.map +1 -1
  417. package/dist/frontend/ts7/session-cache.d.ts +5 -1
  418. package/dist/frontend/ts7/session-cache.js +7 -1
  419. package/dist/frontend/ts7/session-cache.js.map +1 -1
  420. package/dist/frontend/ts7/session-cache.test.js +37 -0
  421. package/dist/frontend/ts7/session-cache.test.js.map +1 -1
  422. package/dist/frontend/ts7/session.js +19 -1
  423. package/dist/frontend/ts7/session.js.map +1 -1
  424. package/dist/frontend/ts7/source-parser.d.ts +17 -2
  425. package/dist/frontend/ts7/source-parser.js +61 -2
  426. package/dist/frontend/ts7/source-parser.js.map +1 -1
  427. package/dist/frontend/ts7/source-parser.test.js +55 -2
  428. package/dist/frontend/ts7/source-parser.test.js.map +1 -1
  429. package/dist/frontend/tsc-codes.d.ts +3 -2
  430. package/dist/frontend/tsc-codes.js +129 -22
  431. package/dist/frontend/tsc-codes.js.map +1 -1
  432. package/dist/frontend/type-mapper.d.ts +5 -11
  433. package/dist/frontend/type-mapper.js +380 -70
  434. package/dist/frontend/type-mapper.js.map +1 -1
  435. package/dist/index.d.ts +1 -1
  436. package/dist/index.js +67 -7
  437. package/dist/index.js.map +1 -1
  438. package/dist/ir/builtin-effects.js +29 -0
  439. package/dist/ir/builtin-effects.js.map +1 -1
  440. package/dist/ir/builtin-signatures.d.ts +1 -1
  441. package/dist/ir/builtin-signatures.js +72 -6
  442. package/dist/ir/builtin-signatures.js.map +1 -1
  443. package/dist/ir/codec.generated.d.ts +1 -1
  444. package/dist/ir/codec.generated.js +321 -263
  445. package/dist/ir/codec.generated.js.map +1 -1
  446. package/dist/ir/constant-length-clones.d.ts +26 -0
  447. package/dist/ir/constant-length-clones.js +589 -0
  448. package/dist/ir/constant-length-clones.js.map +1 -0
  449. package/dist/ir/constant-length-clones.test.d.ts +1 -0
  450. package/dist/ir/constant-length-clones.test.js +292 -0
  451. package/dist/ir/constant-length-clones.test.js.map +1 -0
  452. package/dist/ir/constant-tables.d.ts +10 -5
  453. package/dist/ir/constant-tables.js +83 -17
  454. package/dist/ir/constant-tables.js.map +1 -1
  455. package/dist/ir/constant-tables.test.js +58 -1
  456. package/dist/ir/constant-tables.test.js.map +1 -1
  457. package/dist/ir/fields.generated.js +5 -2
  458. package/dist/ir/fields.generated.js.map +1 -1
  459. package/dist/ir/function-references.js +2 -0
  460. package/dist/ir/function-references.js.map +1 -1
  461. package/dist/ir/function-references.test.js +13 -0
  462. package/dist/ir/function-references.test.js.map +1 -1
  463. package/dist/ir/integer-loops.js +1 -0
  464. package/dist/ir/integer-loops.js.map +1 -1
  465. package/dist/ir/integer-loops.test.js +16 -0
  466. package/dist/ir/integer-loops.test.js.map +1 -1
  467. package/dist/ir/ir.d.ts +50 -6
  468. package/dist/ir/ir.js +44 -2
  469. package/dist/ir/ir.js.map +1 -1
  470. package/dist/ir/ir.test.js +83 -1
  471. package/dist/ir/ir.test.js.map +1 -1
  472. package/dist/ir/js-groups.js +5 -1
  473. package/dist/ir/js-groups.js.map +1 -1
  474. package/dist/ir/js-ic.d.ts +20 -0
  475. package/dist/ir/js-ic.js +81 -4
  476. package/dist/ir/js-ic.js.map +1 -1
  477. package/dist/ir/js-ic.test.js +8 -1
  478. package/dist/ir/js-ic.test.js.map +1 -1
  479. package/dist/ir/lane-plans.d.ts +86 -0
  480. package/dist/ir/lane-plans.js +589 -0
  481. package/dist/ir/lane-plans.js.map +1 -0
  482. package/dist/ir/lane-plans.test.d.ts +1 -0
  483. package/dist/ir/lane-plans.test.js +549 -0
  484. package/dist/ir/lane-plans.test.js.map +1 -0
  485. package/dist/ir/runtime-features.d.ts +68 -10
  486. package/dist/ir/runtime-features.js +285 -17
  487. package/dist/ir/runtime-features.js.map +1 -1
  488. package/dist/ir/runtime-features.test.js +190 -1
  489. package/dist/ir/runtime-features.test.js.map +1 -1
  490. package/dist/ir/validate.js +61 -24
  491. package/dist/ir/validate.js.map +1 -1
  492. package/dist/native/cache.d.ts +5 -0
  493. package/dist/native/cache.js +23 -1
  494. package/dist/native/cache.js.map +1 -1
  495. package/dist/native/cache.test.js +29 -1
  496. package/dist/native/cache.test.js.map +1 -1
  497. package/dist/native/cli.js +4 -2
  498. package/dist/native/cli.js.map +1 -1
  499. package/dist/native/compiler.d.ts +11 -3
  500. package/dist/native/compiler.js +102 -16
  501. package/dist/native/compiler.js.map +1 -1
  502. package/dist/native/compiler.test.js +244 -2
  503. package/dist/native/compiler.test.js.map +1 -1
  504. package/dist/native/prepare.d.ts +14 -1
  505. package/dist/native/prepare.js +79 -29
  506. package/dist/native/prepare.js.map +1 -1
  507. package/dist/native/sanitizer.test.js +3 -0
  508. package/dist/native/sanitizer.test.js.map +1 -1
  509. package/dist/native/unchanged.d.ts +80 -0
  510. package/dist/native/unchanged.js +301 -0
  511. package/dist/native/unchanged.js.map +1 -0
  512. package/dist/native/unchanged.test.d.ts +1 -0
  513. package/dist/native/unchanged.test.js +249 -0
  514. package/dist/native/unchanged.test.js.map +1 -0
  515. package/dist/node-islands/boundary.d.ts +16 -0
  516. package/dist/node-islands/boundary.js +70 -7
  517. package/dist/node-islands/boundary.js.map +1 -1
  518. package/dist/node-islands/boundary.test.js +59 -14
  519. package/dist/node-islands/boundary.test.js.map +1 -1
  520. package/dist/node-islands/detect.js +203 -47
  521. package/dist/node-islands/detect.js.map +1 -1
  522. package/dist/node-islands/detect.test.js +45 -0
  523. package/dist/node-islands/detect.test.js.map +1 -1
  524. package/dist/node-islands/growth.js +4 -16
  525. package/dist/node-islands/growth.js.map +1 -1
  526. package/dist/node-islands/modules.d.ts +3 -0
  527. package/dist/node-islands/modules.js +143 -12
  528. package/dist/node-islands/modules.js.map +1 -1
  529. package/dist/node-islands/modules.test.js +125 -0
  530. package/dist/node-islands/modules.test.js.map +1 -1
  531. package/dist/node-islands/report.d.ts +1 -1
  532. package/dist/node-islands/report.js +2 -1
  533. package/dist/node-islands/report.js.map +1 -1
  534. package/package.json +20 -20
  535. package/shims/undici/core/request.ts +7 -1
  536. package/surface-manifest.json +380 -2
@@ -0,0 +1,138 @@
1
+ // The npm-static ladder's per-build memo: one build loads the frontend more
2
+ // than once (the island decision reloads it), and every reload re-walks the
3
+ // library fixpoint's rungs from the smallest set. These tests pin the two
4
+ // halves of that: a rung the build already walked costs no load, and a rung
5
+ // whose answer the island set can change is never taken from the memo.
6
+ import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
7
+ import { tmpdir } from "node:os";
8
+ import { join } from "node:path";
9
+ import { afterEach, expect, test } from "vitest";
10
+ import { runFrontend } from "./pipeline.js";
11
+ import { loadProgramWithServices } from "./program-node.js";
12
+ import { createNodeFrontendServices } from "./services-node.js";
13
+ const scratch = [];
14
+ const services = [];
15
+ afterEach(() => {
16
+ for (const dir of scratch.splice(0))
17
+ rmSync(dir, { recursive: true, force: true });
18
+ for (const created of services.splice(0))
19
+ created.close();
20
+ });
21
+ function writePackage(dir, name, js, dts) {
22
+ const root = join(dir, "node_modules", name);
23
+ mkdirSync(root, { recursive: true });
24
+ writeFileSync(join(root, "package.json"), JSON.stringify({ name, version: "1.0.0", main: "index.js", types: "index.d.ts" }));
25
+ writeFileSync(join(root, "index.js"), js);
26
+ writeFileSync(join(root, "index.d.ts"), dts);
27
+ }
28
+ /** `outerpkg` (opted in) requires `innerpkg` from its own JavaScript, so the
29
+ * library fixpoint needs a second rung to settle the set. `unrelated` is
30
+ * installed and never imported: an island package outside every rung's
31
+ * reach. */
32
+ function fixture() {
33
+ const dir = mkdtempSync(join(tmpdir(), "scriptc-npm-ladder-"));
34
+ scratch.push(dir);
35
+ writePackage(dir, "outerpkg", 'const { half } = require("innerpkg");\nmodule.exports.double = function (n) { return half(n) * 4; };\n', "export declare function double(n: number): number;\n");
36
+ writePackage(dir, "innerpkg", "module.exports.half = function (n) { return n / 2; };\n", "export declare function half(n: number): number;\n");
37
+ writePackage(dir, "unrelated", "module.exports.nothing = function () { return 1; };\n", "export declare function nothing(): number;\n");
38
+ writeFileSync(join(dir, "main.ts"), 'import { double } from "outerpkg";\nconsole.log(double(2));\n');
39
+ return dir;
40
+ }
41
+ /** The entry's `outerpkg` requires `borrowed`, whose declarations come from
42
+ * another package: a plain opt-in refuses it at the declaration bar, while
43
+ * `outerpkg...` opts in the whole closure without that bar. */
44
+ function transitiveFixture() {
45
+ const dir = mkdtempSync(join(tmpdir(), "scriptc-npm-ladder-"));
46
+ scratch.push(dir);
47
+ writePackage(dir, "outerpkg", 'const { half } = require("innerpkg");\nconst twice = require("borrowed");\nmodule.exports.double = function (n) { return half(twice(n)) * 4; };\n', "export declare function double(n: number): number;\n");
48
+ writePackage(dir, "innerpkg", "module.exports.half = function (n) { return n / 2; };\n", "export declare function half(n: number): number;\n");
49
+ const donor = join(dir, "node_modules", "typesdonor");
50
+ mkdirSync(donor, { recursive: true });
51
+ writeFileSync(join(donor, "package.json"), JSON.stringify({ name: "typesdonor", version: "1.0.0", types: "index.d.ts" }));
52
+ writeFileSync(join(donor, "index.d.ts"), "declare function twice(n: number): number;\nexport = twice;\n");
53
+ const root = join(dir, "node_modules", "borrowed");
54
+ mkdirSync(root, { recursive: true });
55
+ writeFileSync(join(root, "package.json"), JSON.stringify({
56
+ name: "borrowed",
57
+ version: "1.0.0",
58
+ main: "index.js",
59
+ types: "../typesdonor/index.d.ts",
60
+ }));
61
+ writeFileSync(join(root, "index.js"), "module.exports = function (n) { return n * 2; };\n");
62
+ writeFileSync(join(dir, "main.ts"), 'import { double } from "outerpkg";\nconsole.log(double(2));\n');
63
+ return dir;
64
+ }
65
+ function compile(dir, shared, islandPackages, optIn = ["outerpkg"]) {
66
+ const loaded = [];
67
+ const loader = (path, options) => {
68
+ loaded.push([...(options.npmStatic ?? [])]);
69
+ return loadProgramWithServices(path, shared, {
70
+ npmStatic: options.npmStatic ?? [],
71
+ externalTypes: options.externalTypes,
72
+ });
73
+ };
74
+ const frontend = runFrontend(join(dir, "main.ts"), loader, "lib", undefined, optIn, {
75
+ islandPackages,
76
+ });
77
+ return { frontend, loaded };
78
+ }
79
+ function statuses(run) {
80
+ return run.frontend.npmStatic.map((status) => `${status.package}:${status.status}`);
81
+ }
82
+ test("a reload takes a rung the build already walked without loading it", () => {
83
+ const dir = fixture();
84
+ const shared = createNodeFrontendServices();
85
+ services.push(shared);
86
+ const first = compile(dir, shared, new Set());
87
+ // Scout, then the opted-in set, then the set with the dependency it found.
88
+ expect(first.loaded).toEqual([[], ["outerpkg"], ["outerpkg", "innerpkg"]]);
89
+ expect(statuses(first)).toEqual(["outerpkg:static", "innerpkg:static"]);
90
+ // The island reload: a package no rung consults leaves every answer the
91
+ // same, so the rung `["outerpkg"]` comes from the memo — the reload skips
92
+ // its load and lands on the converged set directly.
93
+ const reload = compile(dir, shared, new Set(["unrelated"]));
94
+ expect(reload.loaded).toEqual([[], ["outerpkg", "innerpkg"]]);
95
+ expect(statuses(reload)).toEqual(statuses(first));
96
+ expect(reload.frontend.npmImportSites).toEqual(first.frontend.npmImportSites);
97
+ first.frontend.dispose();
98
+ reload.frontend.dispose();
99
+ });
100
+ test("an island package a rung judges is a changed answer, not a memo hit", () => {
101
+ const dir = fixture();
102
+ const shared = createNodeFrontendServices();
103
+ services.push(shared);
104
+ const first = compile(dir, shared, new Set());
105
+ expect(statuses(first)).toEqual(["outerpkg:static", "innerpkg:static"]);
106
+ // `innerpkg` became an island: the fixpoint must not grow it, so the rung
107
+ // `["outerpkg"]` answers differently and the memo may not stand in for it.
108
+ const reload = compile(dir, shared, new Set(["innerpkg"]));
109
+ expect(reload.loaded).toEqual([[], ["outerpkg"]]);
110
+ expect(statuses(reload)).toEqual(["outerpkg:static"]);
111
+ first.frontend.dispose();
112
+ reload.frontend.dispose();
113
+ });
114
+ test("a `pkg...` selection does not take a rung walked for a plain `pkg`", () => {
115
+ const dir = transitiveFixture();
116
+ const shared = createNodeFrontendServices();
117
+ services.push(shared);
118
+ const plain = compile(dir, shared, new Set());
119
+ expect(statuses(plain)).toEqual(["borrowed:refused", "outerpkg:refused", "innerpkg:static"]);
120
+ // Same services, same entry, same npm-static list: only the trailing `...`
121
+ // differs, and it opts in the package's whole closure — `borrowed` with it.
122
+ // The first frontend's rung refused it, so its answer is no answer for this
123
+ // walk: taken from the memo, the dependency `outerpkg...` asked for would
124
+ // be silently missing.
125
+ const closure = compile(dir, shared, new Set(), ["outerpkg..."]);
126
+ expect(statuses(closure)).toEqual(["outerpkg:static", "innerpkg:static", "borrowed:static"]);
127
+ plain.frontend.dispose();
128
+ closure.frontend.dispose();
129
+ });
130
+ test("a build without a reload walks every rung once", () => {
131
+ const dir = fixture();
132
+ const shared = createNodeFrontendServices();
133
+ services.push(shared);
134
+ const only = compile(dir, shared, new Set());
135
+ expect(only.loaded).toEqual([[], ["outerpkg"], ["outerpkg", "innerpkg"]]);
136
+ only.frontend.dispose();
137
+ });
138
+ //# sourceMappingURL=npm-static-ladder.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-static-ladder.test.js","sourceRoot":"","sources":["../../src/frontend/npm-static-ladder.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /** One dependency's native compilation outcome.
2
+ *
3
+ * The frontend carries these statuses while it walks the npm-static ladder
4
+ * (npm-static-ladder.ts), so the type lives here, in a module with no
5
+ * imports. Taking it from coverage/report.ts would put that report's
6
+ * imports — the diagnostics renderer, the lowering types and the wasm
7
+ * discovery — into the import graph of every frontend load. */
8
+ export interface NpmStaticStatus {
9
+ package: string;
10
+ status: "static" | "refused";
11
+ /** The first refusal reason for a refused package. */
12
+ detail?: string;
13
+ /** How to act on the refusal, when there is a specific remedy. */
14
+ hint?: string;
15
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=npm-static-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"npm-static-status.js","sourceRoot":"","sources":["../../src/frontend/npm-static-status.ts"],"names":[],"mappings":""}
@@ -68,7 +68,7 @@ const IMPLEMENTATION_SHIMS = new Map([
68
68
  mainFile: "source/index.js",
69
69
  typesFile: "source/index.d.ts",
70
70
  versions: new Map([[5, "chalk/v5.ts"]]),
71
- sourceVersions: new Set([6]),
71
+ sourceVersions: new Set([4, 6]),
72
72
  },
73
73
  ],
74
74
  [
@@ -1 +1 @@
1
- {"version":3,"file":"package-shims.js","sourceRoot":"","sources":["../../src/frontend/package-shims.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"package-shims.js","sourceRoot":"","sources":["../../src/frontend/package-shims.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import type { ScrDiagnostic } from "../diagnostics/diagnostic.js";
2
2
  import type { IrModule } from "../ir/ir.js";
3
3
  import type { SrcLoc } from "../ir/ir.js";
4
- import type { NpmStaticStatus } from "../coverage/report.js";
4
+ import type { NpmStaticStatus } from "./npm-static-status.js";
5
5
  import { type EntryExport } from "./lib-exports.js";
6
6
  import { type ContractFacts } from "./lib-contract.js";
7
7
  import { type LoadResult } from "./program.js";
@@ -1,6 +1,6 @@
1
1
  /** Shared frontend orchestration. Hosts supply a program loader so Node
2
2
  * and native callers use the same npm selection, preflight and lowering. */
3
- import { beginShapeOverlayBuild, excludeRefusedOverlay, recordShapeOverlayMemo, restoreShapeOverlayState, setShapeOverlayDropped, shapeOverlayActive, shapeOverlayMemoPlainFences, shapeOverlayReport, } from "./shape-inference/index.js";
3
+ import { beginShapeOverlayBuild, excludeRefusedOverlay, recordShapeOverlayMemo, restoreShapeOverlayState, setShapeOverlayDropped, shapeOverlayActive, shapeOverlayEnabled, shapeOverlayMemoPlainFences, shapeOverlayReport, } from "./shape-inference/index.js";
4
4
  import { entryExportFacts } from "./lib-exports.js";
5
5
  import { entryContractFacts } from "./lib-contract.js";
6
6
  import { canonicalBuiltinModule, npmBuiltinAliasOf, checkModuleOrder, checkPreflight, isNodeTypesPath, locOf, npmStaticDepSf7, npmStaticLoadableFiles, requiresOf, resolveImport, resolveNpmImport, } from "./program.js";
@@ -19,7 +19,7 @@ import { NODE_API_MODULE } from "./node-api-import.js";
19
19
  import { erasedTypeOnlyImport } from "./type-only-imports.js";
20
20
  import { EXPERIMENTAL_MODULE } from "./experimental-import.js";
21
21
  import { readProjectConfig } from "../project-config.js";
22
- import { setFrontendIslands } from "../node-islands/boundary.js";
22
+ import { recordFrontendIslandReads, setFrontendIslands } from "../node-islands/boundary.js";
23
23
  import { typePatchDiagnostics } from "./type-patches/layer.js";
24
24
  import { packageDirOf } from "../node-islands/origin.js";
25
25
  import { scanFiles, } from "../node-islands/scan.js";
@@ -102,8 +102,76 @@ function addDynamicImportGraph(load, scanned) {
102
102
  }
103
103
  }
104
104
  }
105
- function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transitive = new Set()) {
105
+ /** Adds the package modules a compiled package loads LAZILY to `scanned`: a
106
+ * `require()` call inside a function or a nested declaration lowers at the
107
+ * call, so its target is not in the startup module order — but that file's
108
+ * own top-level requires still name packages the program loads on that path,
109
+ * and library mode compiles the package whole. Package sources hide their
110
+ * dependency edges exactly there (fastify's logger-factory.js requires
111
+ * ./logger-pino.js inside createLogger, and only logger-pino.js requires
112
+ * pino). Every literal require()/import() call in the package's JavaScript
113
+ * counts, wherever it sits; the walk follows the files it reaches, including
114
+ * the files the package loader brought into the program for exactly this.
115
+ * A file the graph already holds keeps the graph's own static edges: the
116
+ * program pruned the ones a pure package's unused exports back (a
117
+ * re-exported module the program never reads, whose own `export *` would
118
+ * otherwise name a package), and rescanning its declarations here would add
119
+ * them back. Only the files this walk discovers owe their static
120
+ * declarations to it. */
121
+ function addLazyRequireGraph(load, scanned) {
122
+ const inGraph = new Set(scanned);
123
+ const queue = [...scanned];
124
+ while (queue.length > 0) {
125
+ const sf = queue.pop();
126
+ if (npmStaticPackageOfPath(sf.fileName) === null || !isJsSourceFileName(sf.fileName))
127
+ continue;
128
+ const candidates = moduleSourceCandidates(load.program, sf);
129
+ // `candidates.specifiers` also names every literal require() call, which
130
+ // resolves with the IMPORT conditions. A package's require edge must use
131
+ // its own ("@hapi/hoek" answers lib/index.js, not lib/index.mjs there),
132
+ // so the static declarations are read separately and the calls below.
133
+ const specs = [];
134
+ if (!inGraph.has(sf)) {
135
+ for (const stmt of sf.statements.nodes) {
136
+ if ((isImportDeclaration(stmt) || isExportDeclaration(stmt)) &&
137
+ stmt.moduleSpecifier !== undefined &&
138
+ isStringLiteral(stmt.moduleSpecifier))
139
+ specs.push({ spec: stmt.moduleSpecifier.text, kind: "import" });
140
+ }
141
+ }
142
+ for (const call of candidates.calls) {
143
+ const arg = call.arguments.nodes[0];
144
+ if (arg === undefined || !isStringLiteralLike(arg))
145
+ continue;
146
+ if (call.expression.kind === SyntaxKind.ImportKeyword)
147
+ specs.push({ spec: arg.text, kind: "import" });
148
+ else if (isIdentifier(call.expression) && call.expression.text === "require")
149
+ specs.push({ spec: arg.text, kind: "require" });
150
+ }
151
+ for (const { spec, kind } of specs) {
152
+ if (canonicalBuiltinModule(spec) !== null)
153
+ continue;
154
+ const dep = resolveImport(load.program, sf, spec, kind) ??
155
+ npmStaticDepSf7(load.program, sf, spec, kind);
156
+ if (dep === null || scanned.has(dep) || dep.isDeclarationFile)
157
+ continue;
158
+ if (dep.fileName.includes("/node_modules/") && !isJsSourceFileName(dep.fileName))
159
+ continue;
160
+ scanned.add(dep);
161
+ queue.push(dep);
162
+ }
163
+ }
164
+ }
165
+ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transitive = new Set(), witness) {
106
166
  const chosen = [];
167
+ // Whether the package was already decided, recording that the answer
168
+ // depends on it: `judged` starts with the frontend's island packages, so a
169
+ // rung's outcome is a function of the island set through exactly the names
170
+ // this walk asks about (see LadderRung).
171
+ const judgedAlready = (pkg) => {
172
+ witness?.add(pkg);
173
+ return judged?.has(pkg) ?? false;
174
+ };
107
175
  // package → the resolved types file AND the file whose import found it:
108
176
  // the runtime-JS probe below must resolve from the SAME importing file,
109
177
  // or a package visible only to a nested package.json realm (a pnpm
@@ -115,6 +183,10 @@ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transi
115
183
  // dependencies.
116
184
  const scanned = new Set([...load.moduleOrder, load.entry]);
117
185
  addDynamicImportGraph(load, scanned);
186
+ // Library mode compiles a package whole: the modules a function-scoped
187
+ // require loads are part of its source graph, so their edges count.
188
+ if (mode === "lib")
189
+ addLazyRequireGraph(load, scanned);
118
190
  const transitiveFiles = transitive.size === 0
119
191
  ? []
120
192
  : load.program.getImplementationSourceFiles().filter((sf) => {
@@ -189,6 +261,10 @@ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transi
189
261
  for (const { spec, loc, nested } of edges) {
190
262
  if (load.externalTypes?.has(spec))
191
263
  continue;
264
+ // A required JSON document is data the package reads, not a package
265
+ // dependency of its own: it never needs declarations or an opt-in.
266
+ if (spec.endsWith(".json"))
267
+ continue;
192
268
  // scriptc's own packages are not npm dependencies: contract types are
193
269
  // declarations only, and @scriptc/threads and @scriptc/experimental
194
270
  // exports lower at their use sites (threads-import.ts,
@@ -222,7 +298,7 @@ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transi
222
298
  continue;
223
299
  // Explicit attempts name the runtime package. Types-first resolution
224
300
  // may instead identify its @types twin, which has no runtime to admit.
225
- if (judged?.has(packageNameOfSpecifier(spec)))
301
+ if (judgedAlready(packageNameOfSpecifier(spec)))
226
302
  continue;
227
303
  const npm = resolveNpmImport(sf.fileName, spec);
228
304
  if (npm !== null && isNodeTypesPath(npm.typesFile))
@@ -240,7 +316,7 @@ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transi
240
316
  !(npm !== null && !/\.d\.(ts|mts|cts)$/.test(npm.typesFile)))
241
317
  continue;
242
318
  if (npm === null || runtimePkg !== null) {
243
- if (mode !== "lib" || runtimePkg === null || judged.has(runtimePkg))
319
+ if (mode !== "lib" || runtimePkg === null || judgedAlready(runtimePkg))
244
320
  continue;
245
321
  judged.add(runtimePkg);
246
322
  sites.set(runtimePkg, loc);
@@ -272,7 +348,7 @@ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transi
272
348
  });
273
349
  continue;
274
350
  }
275
- if (judged?.has(npm.packageName))
351
+ if (judgedAlready(npm.packageName))
276
352
  continue;
277
353
  // An @types twin with no runtime package installed has nothing to
278
354
  // compile (Node cannot load it either).
@@ -290,6 +366,8 @@ function detectAutoPackages(load, statuses, mode = "auto", judged, sites, transi
290
366
  }
291
367
  }
292
368
  for (const [pkg, { typesFile, fromFile, spec, owner }] of seen) {
369
+ // npmStaticIneligibleReason reads the package's island membership.
370
+ witness?.add(pkg);
293
371
  judged?.add(pkg);
294
372
  // A package without a root entry (no "main", "exports" or index file)
295
373
  // can still serve the subpath the program imports.
@@ -415,6 +493,47 @@ export function runFrontend(entryPath, loadProgram, npmStatic, externalTypes, li
415
493
  throw error;
416
494
  }
417
495
  }
496
+ /** Everything a rung's answer is a function of besides the island set: the
497
+ * entry, the npm-static list the rung loads with, the external-type map that
498
+ * decides what that load compiles, and the packages a `pkg...` selection
499
+ * opted in transitively. The last is not in the list: `runFrontend` strips
500
+ * the `...` before the load, so `pkg` and `pkg...` load the same list and
501
+ * answer differently — the transitive walk skips the declaration bar. */
502
+ function ladderKey(entryPath, requested, externalTypes, transitive) {
503
+ const types = externalTypes === undefined
504
+ ? ""
505
+ : Object.keys(externalTypes)
506
+ .sort()
507
+ .map((spec) => `${spec}=${externalTypes[spec]}`)
508
+ .join("\n");
509
+ return `${entryPath}\n${requested.join("\n")}\n${[...transitive].sort().join("\n")}\n\n${types}`;
510
+ }
511
+ /** The recorded answer for this rung under an island set that answers the
512
+ * same about every package the recorded walk asked about.
513
+ *
514
+ * The island set is the one input the key does not spell out: it reaches a
515
+ * rung only by naming packages — a judged package is skipped, an island's
516
+ * undeclared subpath files serve their any-surface stub, and its imports
517
+ * pass the preflight fences — so the rung records every package whose
518
+ * membership it read together with the answers it ran under. Two island sets
519
+ * that agree on each of those packages leave every read unchanged, and a walk
520
+ * whose reads are unchanged cannot diverge. */
521
+ function ladderRead(ladder, key, islands) {
522
+ const entries = ladder.get(key);
523
+ if (entries === undefined)
524
+ return undefined;
525
+ for (const entry of entries) {
526
+ let same = true;
527
+ for (const pkg of entry.witness)
528
+ if (islands.has(pkg) !== entry.islands.has(pkg)) {
529
+ same = false;
530
+ break;
531
+ }
532
+ if (same)
533
+ return entry;
534
+ }
535
+ return undefined;
536
+ }
418
537
  /** A file path as the frontend and the island decision spell it. */
419
538
  function normalizeFile(file) {
420
539
  return file.replaceAll("\\", "/");
@@ -463,8 +582,10 @@ function loadFrontend(entryPath, loadProgram, npmStatic, externalTypes, libraryN
463
582
  let requested = [];
464
583
  let reusableScout = null;
465
584
  let reusablePreflight = null;
585
+ let scoutServices;
466
586
  if (npmStatic === "auto" || npmStatic === "lib") {
467
587
  const scout = loadProgram(entryPath, { externalTypes });
588
+ scoutServices = scout.services;
468
589
  let retained = false;
469
590
  try {
470
591
  const scoutPreflight = checkPreflight(scout);
@@ -523,14 +644,28 @@ function loadFrontend(entryPath, loadProgram, npmStatic, externalTypes, libraryN
523
644
  // remove that package from the active source graph. Reloading restores
524
645
  // its declarations for analysis; the recorded refusal stops executable
525
646
  // and library builds with a package-specific diagnostic.
526
- let load = reusableScout ?? loadProgram(entryPath, { npmStatic: requested, externalTypes });
527
- let preflight = reusablePreflight ?? checkPreflight(load);
647
+ //
648
+ // `held` is the fixpoint's working program: the ladder below answers a rung
649
+ // with no load at all, so it may be absent until the converged rung needs
650
+ // one. `load` is the program the rest of the pipeline reads.
651
+ const islandsForLadder = options.islandPackages ?? new Set();
652
+ // Only the library fixpoint walks rungs, and an overlay build keeps its
653
+ // first program's diagnostics for the fallback below: no memo there.
654
+ const ladder = npmStatic === "lib" && !shapeOverlayEnabled() && scoutServices !== undefined
655
+ ? scoutServices.npmStaticLadder
656
+ : null;
657
+ let held = reusableScout;
658
+ let preflight = reusablePreflight ?? [];
659
+ if (held === null && ladder === null) {
660
+ held = loadProgram(entryPath, { npmStatic: requested, externalTypes });
661
+ preflight = checkPreflight(held);
662
+ }
528
663
  // Shape inference never makes the preflight fail: when the overlay's
529
664
  // program reports diagnostics the program without it does not (its type
530
665
  // references can load package files the program would not), the build
531
666
  // continues without the overlay.
532
- if (preflight.length > 0 && load.shapeOverlayState !== undefined) {
533
- restoreShapeOverlayState(load.shapeOverlayState);
667
+ if (held !== null && preflight.length > 0 && held.shapeOverlayState !== undefined) {
668
+ restoreShapeOverlayState(held.shapeOverlayState);
534
669
  if (shapeOverlayActive()) {
535
670
  const key = (d) => `${d.code}|${d.loc.file}|${d.loc.start}`;
536
671
  setShapeOverlayDropped(true);
@@ -538,8 +673,8 @@ function loadFrontend(entryPath, loadProgram, npmStatic, externalTypes, libraryN
538
673
  const plainPreflight = checkPreflight(plain);
539
674
  const known = new Set(plainPreflight.map(key));
540
675
  if (preflight.some((d) => !known.has(key(d)))) {
541
- load.dispose();
542
- load = plain;
676
+ held.dispose();
677
+ held = plain;
543
678
  preflight = plainPreflight;
544
679
  if (process.env["SCRIPTC_DEBUG_SHAPE_FALLBACK"] !== undefined)
545
680
  process.stderr.write(`[shape-fallback] preflight: the overlay's program failed; overlay off\n`);
@@ -557,26 +692,88 @@ function loadFrontend(entryPath, loadProgram, npmStatic, externalTypes, libraryN
557
692
  // reloads; ineligible ones record a refusal. Bounded by the dependency
558
693
  // count (every iteration settles
559
694
  // at least one new package for good).
695
+ //
696
+ // A rung's only consumer is the next `detectAutoPackages`, which reads the
697
+ // module order and the dynamic-import rejections. Its diagnostics are read
698
+ // only if it turns out to be the fixpoint's LAST rung, so they wait for the
699
+ // single full preflight below (which completes this walk rather than
700
+ // repeating it). A rung this build already walked answers from the ladder,
701
+ // and the load that would only reproduce its program is skipped.
702
+ let walked = false;
560
703
  if (npmStatic === "lib") {
561
- let reloaded = false;
562
704
  for (;;) {
563
- const grown = detectAutoPackages(load, statuses, "lib", judged, npmSites, transitive);
705
+ const key = ladder === null ? "" : ladderKey(entryPath, requested, externalTypes, transitive);
706
+ const known = ladder === null ? undefined : ladderRead(ladder, key, islandsForLadder);
707
+ let grown;
708
+ if (known !== undefined) {
709
+ grown = known.grown;
710
+ for (const status of known.statuses)
711
+ statuses.push(status);
712
+ for (const [pkg, loc] of known.sites)
713
+ npmSites.set(pkg, loc);
714
+ for (const pkg of known.judged)
715
+ judged.add(pkg);
716
+ for (const pkg of known.transitive)
717
+ transitive.add(pkg);
718
+ }
719
+ else {
720
+ const witness = new Set();
721
+ const statusMark = statuses.length;
722
+ const siteMark = new Set(npmSites.keys());
723
+ const judgedMark = new Set(judged);
724
+ const transitiveMark = new Set(transitive);
725
+ // Everything this rung reads the island set through: the boundary's
726
+ // own answers while the load and its structure walk run, and the
727
+ // judged lookups in the walk below.
728
+ recordFrontendIslandReads(witness);
729
+ try {
730
+ if (held === null) {
731
+ held = loadProgram(entryPath, { npmStatic: requested, externalTypes });
732
+ checkModuleOrder(held);
733
+ walked = true;
734
+ }
735
+ grown = detectAutoPackages(held, statuses, "lib", judged, npmSites, transitive, witness);
736
+ }
737
+ finally {
738
+ recordFrontendIslandReads(null);
739
+ }
740
+ if (grown.length > 0 && ladder !== null) {
741
+ const sites = [];
742
+ for (const [pkg, loc] of npmSites)
743
+ if (!siteMark.has(pkg))
744
+ sites.push([pkg, loc]);
745
+ const entries = ladder.get(key) ?? [];
746
+ entries.push({
747
+ grown,
748
+ statuses: statuses.slice(statusMark),
749
+ sites,
750
+ judged: [...judged].filter((pkg) => !judgedMark.has(pkg)),
751
+ transitive: [...transitive].filter((pkg) => !transitiveMark.has(pkg)),
752
+ islands: new Set(islandsForLadder),
753
+ witness: [...witness],
754
+ });
755
+ ladder.set(key, entries);
756
+ }
757
+ }
564
758
  if (grown.length === 0)
565
759
  break;
566
760
  requested = [...requested, ...grown];
567
- load.dispose();
568
- load = loadProgram(entryPath, { npmStatic: requested, externalTypes });
569
- // A rung's only consumer is the next `detectAutoPackages`, which reads
570
- // the module order and the dynamic-import rejections. Its diagnostics
571
- // are read only if it turns out to be the fixpoint's LAST rung, so they
572
- // wait for the single full preflight below (which completes this walk
573
- // rather than repeating it).
574
- checkModuleOrder(load);
575
- reloaded = true;
761
+ if (held !== null) {
762
+ held.dispose();
763
+ held = null;
764
+ }
576
765
  }
577
- if (reloaded)
578
- preflight = checkPreflight(load);
579
766
  }
767
+ if (held === null) {
768
+ // The converged rung's answer came from the ladder; the frontend still
769
+ // owns the one program it lowers.
770
+ held = loadProgram(entryPath, { npmStatic: requested, externalTypes });
771
+ checkModuleOrder(held);
772
+ walked = true;
773
+ }
774
+ let load = held;
775
+ if (walked)
776
+ preflight = checkPreflight(load);
580
777
  const effective = new Set(requested);
581
778
  // Packages refused only because the program does not typecheck against
582
779
  // their inferred surface (no offender, no package-anchored diagnostic).