@scriptc/compiler 0.0.34 → 0.0.36

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 (424) hide show
  1. package/ambient/scriptc-node-fallback.d.ts +7 -6
  2. package/dist/backend/build-cache.d.ts +44 -0
  3. package/dist/backend/build-cache.js +241 -0
  4. package/dist/backend/build-cache.js.map +1 -0
  5. package/dist/backend/{emission/emit-async.d.ts → c/async.d.ts} +21 -30
  6. package/dist/backend/{emission/emit-async.js → c/async.js} +270 -286
  7. package/dist/backend/c/async.js.map +1 -0
  8. package/dist/backend/{emission/emitter.d.ts → c/c-emitter.d.ts} +6 -23
  9. package/dist/backend/{emission/emitter.js → c/c-emitter.js} +53 -107
  10. package/dist/backend/c/c-emitter.js.map +1 -0
  11. package/dist/backend/c/exprs.d.ts +8 -0
  12. package/dist/backend/c/exprs.js +7913 -0
  13. package/dist/backend/c/exprs.js.map +1 -0
  14. package/dist/backend/{emission/emit-island.d.ts → c/island.d.ts} +5 -5
  15. package/dist/backend/{emission/emit-island.js → c/island.js} +24 -22
  16. package/dist/backend/c/island.js.map +1 -0
  17. package/dist/backend/{emission → c}/may-throw.d.ts +1 -1
  18. package/dist/backend/{emission → c}/may-throw.js +1 -1
  19. package/dist/backend/c/may-throw.js.map +1 -0
  20. package/dist/backend/{emission/emit-shapes.d.ts → c/shapes.d.ts} +19 -19
  21. package/dist/backend/{emission/emit-shapes.js → c/shapes.js} +78 -87
  22. package/dist/backend/c/shapes.js.map +1 -0
  23. package/dist/backend/{emission/emit-stmts.d.ts → c/stmts.d.ts} +12 -12
  24. package/dist/backend/{emission/emit-stmts.js → c/stmts.js} +377 -343
  25. package/dist/backend/c/stmts.js.map +1 -0
  26. package/dist/backend/{emission/emit-types.d.ts → c/types.d.ts} +1 -1
  27. package/dist/backend/{emission/emit-types.js → c/types.js} +42 -286
  28. package/dist/backend/c/types.js.map +1 -0
  29. package/dist/backend/c/types.test.js +25 -0
  30. package/dist/backend/c/types.test.js.map +1 -0
  31. package/dist/backend/{emission/emit-walkers.d.ts → c/walkers.d.ts} +19 -41
  32. package/dist/backend/{emission/emit-walkers.js → c/walkers.js} +238 -298
  33. package/dist/backend/c/walkers.js.map +1 -0
  34. package/dist/backend/ffi-callbacks.d.ts +1 -1
  35. package/dist/backend/ffi-callbacks.js +4 -3
  36. package/dist/backend/ffi-callbacks.js.map +1 -1
  37. package/dist/backend/{library-identity.d.ts → library-identity-markers.d.ts} +0 -4
  38. package/dist/backend/{library-identity.js → library-identity-markers.js} +10 -9
  39. package/dist/backend/library-identity-markers.js.map +1 -0
  40. package/dist/backend/llvm/blocks.d.ts +4 -0
  41. package/dist/backend/llvm/blocks.js +29 -0
  42. package/dist/backend/llvm/blocks.js.map +1 -1
  43. package/dist/backend/llvm/classes.d.ts +2 -19
  44. package/dist/backend/llvm/classes.js +20 -52
  45. package/dist/backend/llvm/classes.js.map +1 -1
  46. package/dist/backend/llvm/common.d.ts +4 -0
  47. package/dist/backend/llvm/common.js +27 -0
  48. package/dist/backend/llvm/common.js.map +1 -0
  49. package/dist/backend/llvm/dyn.d.ts +3 -8
  50. package/dist/backend/llvm/dyn.js +152 -224
  51. package/dist/backend/llvm/dyn.js.map +1 -1
  52. package/dist/backend/llvm/emitter.d.ts +4 -1
  53. package/dist/backend/llvm/emitter.js +514 -9981
  54. package/dist/backend/llvm/emitter.js.map +1 -1
  55. package/dist/backend/llvm/expr-async.d.ts +4 -0
  56. package/dist/backend/llvm/expr-async.js +726 -0
  57. package/dist/backend/llvm/expr-async.js.map +1 -0
  58. package/dist/backend/llvm/expr-bytes.d.ts +13 -0
  59. package/dist/backend/llvm/expr-bytes.js +456 -0
  60. package/dist/backend/llvm/expr-bytes.js.map +1 -0
  61. package/dist/backend/llvm/expr-callbacks.d.ts +22 -0
  62. package/dist/backend/llvm/expr-callbacks.js +520 -0
  63. package/dist/backend/llvm/expr-callbacks.js.map +1 -0
  64. package/dist/backend/llvm/expr-calls.d.ts +2 -0
  65. package/dist/backend/llvm/expr-calls.js +618 -0
  66. package/dist/backend/llvm/expr-calls.js.map +1 -0
  67. package/dist/backend/llvm/expr-containers.d.ts +25 -0
  68. package/dist/backend/llvm/expr-containers.js +623 -0
  69. package/dist/backend/llvm/expr-containers.js.map +1 -0
  70. package/dist/backend/llvm/expr-context.d.ts +255 -0
  71. package/dist/backend/llvm/expr-context.js +2 -0
  72. package/dist/backend/llvm/expr-context.js.map +1 -0
  73. package/dist/backend/llvm/expr-control.d.ts +2 -0
  74. package/dist/backend/llvm/expr-control.js +473 -0
  75. package/dist/backend/llvm/expr-control.js.map +1 -0
  76. package/dist/backend/llvm/expr-dispatch.d.ts +4 -0
  77. package/dist/backend/llvm/expr-dispatch.js +151 -0
  78. package/dist/backend/llvm/expr-dispatch.js.map +1 -0
  79. package/dist/backend/llvm/expr-dynamic.d.ts +2 -0
  80. package/dist/backend/llvm/expr-dynamic.js +810 -0
  81. package/dist/backend/llvm/expr-dynamic.js.map +1 -0
  82. package/dist/backend/llvm/expr-island.d.ts +15 -0
  83. package/dist/backend/llvm/expr-island.js +690 -0
  84. package/dist/backend/llvm/expr-island.js.map +1 -0
  85. package/dist/backend/llvm/expr-primitives.d.ts +6 -0
  86. package/dist/backend/llvm/expr-primitives.js +622 -0
  87. package/dist/backend/llvm/expr-primitives.js.map +1 -0
  88. package/dist/backend/llvm/expr-records.d.ts +9 -0
  89. package/dist/backend/llvm/expr-records.js +299 -0
  90. package/dist/backend/llvm/expr-records.js.map +1 -0
  91. package/dist/backend/llvm/expr-stream-bridges.d.ts +13 -0
  92. package/dist/backend/llvm/expr-stream-bridges.js +396 -0
  93. package/dist/backend/llvm/expr-stream-bridges.js.map +1 -0
  94. package/dist/backend/llvm/expr-stream-callbacks.d.ts +12 -0
  95. package/dist/backend/llvm/expr-stream-callbacks.js +360 -0
  96. package/dist/backend/llvm/expr-stream-callbacks.js.map +1 -0
  97. package/dist/backend/llvm/lib-dispatch.d.ts +5 -0
  98. package/dist/backend/llvm/lib-dispatch.js +267 -0
  99. package/dist/backend/llvm/lib-dispatch.js.map +1 -0
  100. package/dist/backend/llvm/lib-filesystem.d.ts +6 -0
  101. package/dist/backend/llvm/lib-filesystem.js +594 -0
  102. package/dist/backend/llvm/lib-filesystem.js.map +1 -0
  103. package/dist/backend/llvm/lib-network.d.ts +2 -0
  104. package/dist/backend/llvm/lib-network.js +429 -0
  105. package/dist/backend/llvm/lib-network.js.map +1 -0
  106. package/dist/backend/llvm/lib-process.d.ts +5 -0
  107. package/dist/backend/llvm/lib-process.js +585 -0
  108. package/dist/backend/llvm/lib-process.js.map +1 -0
  109. package/dist/backend/llvm/lib-shared.d.ts +6 -0
  110. package/dist/backend/llvm/lib-shared.js +687 -0
  111. package/dist/backend/llvm/lib-shared.js.map +1 -0
  112. package/dist/backend/llvm/lib-stream.d.ts +2 -0
  113. package/dist/backend/llvm/lib-stream.js +470 -0
  114. package/dist/backend/llvm/lib-stream.js.map +1 -0
  115. package/dist/backend/llvm/shapes.d.ts +12 -2
  116. package/dist/backend/llvm/shapes.js +66 -307
  117. package/dist/backend/llvm/shapes.js.map +1 -1
  118. package/dist/backend/llvm/shapes.test.js +52 -0
  119. package/dist/backend/llvm/shapes.test.js.map +1 -0
  120. package/dist/backend/llvm/split.d.ts +43 -0
  121. package/dist/backend/llvm/split.js +227 -0
  122. package/dist/backend/llvm/split.js.map +1 -0
  123. package/dist/backend/llvm/split.test.d.ts +1 -0
  124. package/dist/backend/llvm/split.test.js +102 -0
  125. package/dist/backend/llvm/split.test.js.map +1 -0
  126. package/dist/backend/llvm/unsupported.d.ts +1 -1
  127. package/dist/backend/llvm/walkers.d.ts +2 -3
  128. package/dist/backend/llvm/walkers.js +164 -218
  129. package/dist/backend/llvm/walkers.js.map +1 -1
  130. package/dist/backend/native-codegen.d.ts +38 -0
  131. package/dist/backend/native-codegen.js +261 -0
  132. package/dist/backend/native-codegen.js.map +1 -0
  133. package/dist/backend/native-codegen.test.d.ts +1 -0
  134. package/dist/backend/native-codegen.test.js +188 -0
  135. package/dist/backend/native-codegen.test.js.map +1 -0
  136. package/dist/backend/native-link-info.d.ts +96 -0
  137. package/dist/backend/native-link-info.js +219 -0
  138. package/dist/backend/native-link-info.js.map +1 -0
  139. package/dist/backend/native-link-info.test.d.ts +1 -0
  140. package/dist/backend/native-link-info.test.js +134 -0
  141. package/dist/backend/native-link-info.test.js.map +1 -0
  142. package/dist/backend/{cc.d.ts → native-toolchain.d.ts} +139 -47
  143. package/dist/backend/{cc.js → native-toolchain.js} +1008 -910
  144. package/dist/backend/native-toolchain.js.map +1 -0
  145. package/dist/backend/native-toolchain.test.d.ts +1 -0
  146. package/dist/backend/{cc-cache.test.js → native-toolchain.test.js} +1297 -127
  147. package/dist/backend/native-toolchain.test.js.map +1 -0
  148. package/dist/backend/object-localize.js +1 -1
  149. package/dist/backend/object-localize.test.js +20 -0
  150. package/dist/backend/object-localize.test.js.map +1 -1
  151. package/dist/backend/runtime-abi.d.ts +10 -0
  152. package/dist/backend/runtime-abi.js +11 -0
  153. package/dist/backend/runtime-abi.js.map +1 -0
  154. package/dist/backend/runtime-pack.d.ts +137 -0
  155. package/dist/backend/runtime-pack.js +400 -0
  156. package/dist/backend/runtime-pack.js.map +1 -0
  157. package/dist/backend/runtime-pack.test.d.ts +1 -0
  158. package/dist/backend/runtime-pack.test.js +438 -0
  159. package/dist/backend/runtime-pack.test.js.map +1 -0
  160. package/dist/backend/targets.d.ts +30 -0
  161. package/dist/backend/targets.js +46 -0
  162. package/dist/backend/targets.js.map +1 -0
  163. package/dist/backend/targets.test.d.ts +1 -0
  164. package/dist/backend/targets.test.js +19 -0
  165. package/dist/backend/targets.test.js.map +1 -0
  166. package/dist/backend/vendor-archives.d.ts +41 -0
  167. package/dist/backend/vendor-archives.js +462 -0
  168. package/dist/backend/vendor-archives.js.map +1 -0
  169. package/dist/compat/fetch-profile.d.ts +0 -1
  170. package/dist/compat/fetch-profile.js +0 -1
  171. package/dist/compat/fetch-profile.js.map +1 -1
  172. package/dist/coverage/report.js +3 -3
  173. package/dist/coverage/report.js.map +1 -1
  174. package/dist/coverage/surface-manifest.js +25 -32
  175. package/dist/coverage/surface-manifest.js.map +1 -1
  176. package/dist/diagnostics/diagnostic.d.ts +11 -12
  177. package/dist/diagnostics/diagnostic.js +19 -17
  178. package/dist/diagnostics/diagnostic.js.map +1 -1
  179. package/dist/diagnostics/render.d.ts +1 -1
  180. package/dist/diagnostics/render.js +1 -1
  181. package/dist/diagnostics/render.js.map +1 -1
  182. package/dist/errors.d.ts +5 -0
  183. package/dist/errors.js +9 -0
  184. package/dist/errors.js.map +1 -0
  185. package/dist/executable/executable-cache.d.ts +86 -0
  186. package/dist/executable/executable-cache.js +398 -0
  187. package/dist/executable/executable-cache.js.map +1 -0
  188. package/dist/executable/executable-cache.test.d.ts +1 -0
  189. package/dist/executable/executable-cache.test.js +300 -0
  190. package/dist/executable/executable-cache.test.js.map +1 -0
  191. package/dist/ffi/{profile.d.ts → ffi-manifest.d.ts} +7 -2
  192. package/dist/ffi/{profile.js → ffi-manifest.js} +2 -1
  193. package/dist/ffi/ffi-manifest.js.map +1 -0
  194. package/dist/frontend/builtin-modules.d.ts +21 -0
  195. package/dist/frontend/builtin-modules.js +82 -0
  196. package/dist/frontend/builtin-modules.js.map +1 -0
  197. package/dist/frontend/cjs-lexer.d.ts +7 -0
  198. package/dist/frontend/cjs-lexer.js +15 -17
  199. package/dist/frontend/cjs-lexer.js.map +1 -1
  200. package/dist/frontend/dts-paths.d.ts +26 -0
  201. package/dist/frontend/dts-paths.js +41 -0
  202. package/dist/frontend/dts-paths.js.map +1 -0
  203. package/dist/frontend/input-tracker.d.ts +0 -2
  204. package/dist/frontend/input-tracker.js +1 -4
  205. package/dist/frontend/input-tracker.js.map +1 -1
  206. package/dist/frontend/lib-contract.d.ts +1 -5
  207. package/dist/frontend/lib-contract.js +1 -1
  208. package/dist/frontend/lib-contract.js.map +1 -1
  209. package/dist/frontend/lib-exports.d.ts +1 -1
  210. package/dist/frontend/lowering/call-position.d.ts +4 -0
  211. package/dist/frontend/lowering/call-position.js +7 -0
  212. package/dist/frontend/lowering/call-position.js.map +1 -0
  213. package/dist/frontend/lowering/callback-arg.d.ts +20 -0
  214. package/dist/frontend/lowering/callback-arg.js +44 -0
  215. package/dist/frontend/lowering/callback-arg.js.map +1 -0
  216. package/dist/frontend/lowering/lib-boundary.d.ts +1 -1
  217. package/dist/frontend/lowering/lib-boundary.js +34 -34
  218. package/dist/frontend/lowering/lib-boundary.js.map +1 -1
  219. package/dist/frontend/lowering/lower-assert.d.ts +3 -3
  220. package/dist/frontend/lowering/lower-assert.js +214 -241
  221. package/dist/frontend/lowering/lower-assert.js.map +1 -1
  222. package/dist/frontend/lowering/lower-builtins.d.ts +74 -146
  223. package/dist/frontend/lowering/lower-builtins.js +1126 -1234
  224. package/dist/frontend/lowering/lower-builtins.js.map +1 -1
  225. package/dist/frontend/lowering/lower-calls.d.ts +56 -188
  226. package/dist/frontend/lowering/lower-calls.js +1409 -1494
  227. package/dist/frontend/lowering/lower-calls.js.map +1 -1
  228. package/dist/frontend/lowering/lower-classes.d.ts +62 -125
  229. package/dist/frontend/lowering/lower-classes.js +832 -866
  230. package/dist/frontend/lowering/lower-classes.js.map +1 -1
  231. package/dist/frontend/lowering/lower-comptime.d.ts +5 -12
  232. package/dist/frontend/lowering/lower-comptime.js +32 -31
  233. package/dist/frontend/lowering/lower-comptime.js.map +1 -1
  234. package/dist/frontend/lowering/lower-containers.d.ts +35 -135
  235. package/dist/frontend/lowering/lower-containers.js +1394 -1715
  236. package/dist/frontend/lowering/lower-containers.js.map +1 -1
  237. package/dist/frontend/lowering/lower-dgram.d.ts +3 -7
  238. package/dist/frontend/lowering/lower-dgram.js +97 -111
  239. package/dist/frontend/lowering/lower-dgram.js.map +1 -1
  240. package/dist/frontend/lowering/lower-enums.d.ts +4 -4
  241. package/dist/frontend/lowering/lower-enums.js +30 -30
  242. package/dist/frontend/lowering/lower-enums.js.map +1 -1
  243. package/dist/frontend/lowering/{lower-emitter.d.ts → lower-event-emitter.d.ts} +7 -18
  244. package/dist/frontend/lowering/{lower-emitter.js → lower-event-emitter.js} +172 -174
  245. package/dist/frontend/lowering/lower-event-emitter.js.map +1 -0
  246. package/dist/frontend/lowering/lower-expando.d.ts +5 -5
  247. package/dist/frontend/lowering/lower-expando.js +40 -40
  248. package/dist/frontend/lowering/lower-expando.js.map +1 -1
  249. package/dist/frontend/lowering/lower-exprs.d.ts +56 -264
  250. package/dist/frontend/lowering/lower-exprs.js +1644 -1704
  251. package/dist/frontend/lowering/lower-exprs.js.map +1 -1
  252. package/dist/frontend/lowering/lower-generators.d.ts +6 -6
  253. package/dist/frontend/lowering/lower-generators.js +73 -72
  254. package/dist/frontend/lowering/lower-generators.js.map +1 -1
  255. package/dist/frontend/lowering/lower-inspect.d.ts +5 -17
  256. package/dist/frontend/lowering/lower-inspect.js +236 -238
  257. package/dist/frontend/lowering/lower-inspect.js.map +1 -1
  258. package/dist/frontend/lowering/lower-island.d.ts +34 -45
  259. package/dist/frontend/lowering/lower-island.js +440 -511
  260. package/dist/frontend/lowering/lower-island.js.map +1 -1
  261. package/dist/frontend/lowering/lower-mixins.d.ts +7 -10
  262. package/dist/frontend/lowering/lower-mixins.js +86 -86
  263. package/dist/frontend/lowering/lower-mixins.js.map +1 -1
  264. package/dist/frontend/lowering/lower-modules.d.ts +12 -18
  265. package/dist/frontend/lowering/lower-modules.js +284 -283
  266. package/dist/frontend/lowering/lower-modules.js.map +1 -1
  267. package/dist/frontend/lowering/lower-namespaces.d.ts +23 -49
  268. package/dist/frontend/lowering/lower-namespaces.js +123 -115
  269. package/dist/frontend/lowering/lower-namespaces.js.map +1 -1
  270. package/dist/frontend/lowering/lower-server.d.ts +18 -25
  271. package/dist/frontend/lowering/lower-server.js +899 -899
  272. package/dist/frontend/lowering/lower-server.js.map +1 -1
  273. package/dist/frontend/lowering/lower-stmts.d.ts +30 -149
  274. package/dist/frontend/lowering/lower-stmts.js +1176 -1229
  275. package/dist/frontend/lowering/lower-stmts.js.map +1 -1
  276. package/dist/frontend/lowering/lower-stream.d.ts +12 -12
  277. package/dist/frontend/lowering/lower-stream.js +300 -301
  278. package/dist/frontend/lowering/lower-stream.js.map +1 -1
  279. package/dist/frontend/lowering/lower-test.d.ts +5 -5
  280. package/dist/frontend/lowering/lower-test.js +82 -82
  281. package/dist/frontend/lowering/lower-test.js.map +1 -1
  282. package/dist/frontend/lowering/lowerer.d.ts +66 -20
  283. package/dist/frontend/lowering/lowerer.js +421 -198
  284. package/dist/frontend/lowering/lowerer.js.map +1 -1
  285. package/dist/frontend/lowering/pairs-snapshot.d.ts +11 -0
  286. package/dist/frontend/lowering/pairs-snapshot.js +85 -0
  287. package/dist/frontend/lowering/pairs-snapshot.js.map +1 -0
  288. package/dist/frontend/lowering/static-this.d.ts +6 -0
  289. package/dist/frontend/lowering/static-this.js +24 -0
  290. package/dist/frontend/lowering/static-this.js.map +1 -0
  291. package/dist/frontend/lowering/surfaces.d.ts +14 -33
  292. package/dist/frontend/lowering/surfaces.js +64 -64
  293. package/dist/frontend/lowering/surfaces.js.map +1 -1
  294. package/dist/frontend/npm-static-rewrite.js +6 -28
  295. package/dist/frontend/npm-static-rewrite.js.map +1 -1
  296. package/dist/frontend/npm-static.d.ts +0 -10
  297. package/dist/frontend/npm-static.js +4 -7
  298. package/dist/frontend/npm-static.js.map +1 -1
  299. package/dist/frontend/npm.d.ts +0 -24
  300. package/dist/frontend/npm.js +11 -85
  301. package/dist/frontend/npm.js.map +1 -1
  302. package/dist/frontend/program.d.ts +3 -1
  303. package/dist/frontend/program.js +51 -17
  304. package/dist/frontend/program.js.map +1 -1
  305. package/dist/frontend/provenance-registry.d.ts +0 -2
  306. package/dist/frontend/provenance-registry.js +0 -10
  307. package/dist/frontend/provenance-registry.js.map +1 -1
  308. package/dist/frontend/provenance.js +4 -7
  309. package/dist/frontend/provenance.js.map +1 -1
  310. package/dist/frontend/resolve.d.ts +7 -2
  311. package/dist/frontend/resolve.js +12 -17
  312. package/dist/frontend/resolve.js.map +1 -1
  313. package/dist/frontend/resolve.test.d.ts +1 -0
  314. package/dist/frontend/resolve.test.js +29 -0
  315. package/dist/frontend/resolve.test.js.map +1 -0
  316. package/dist/frontend/ts7/adapter.d.ts +2 -2
  317. package/dist/frontend/ts7/adapter.js +1 -1
  318. package/dist/frontend/ts7/adapter.js.map +1 -1
  319. package/dist/frontend/ts7/checker.d.ts +40 -2
  320. package/dist/frontend/ts7/checker.js +182 -54
  321. package/dist/frontend/ts7/checker.js.map +1 -1
  322. package/dist/frontend/ts7/enums.js +2 -1
  323. package/dist/frontend/ts7/enums.js.map +1 -1
  324. package/dist/frontend/ts7/{program.js → program-adapter.js} +7 -6
  325. package/dist/frontend/ts7/program-adapter.js.map +1 -0
  326. package/dist/frontend/ts7/world-check.d.ts +1 -3
  327. package/dist/frontend/ts7/world-check.js +3 -1
  328. package/dist/frontend/ts7/world-check.js.map +1 -1
  329. package/dist/frontend/tsc-codes.d.ts +8 -0
  330. package/dist/frontend/tsc-codes.js +109 -0
  331. package/dist/frontend/tsc-codes.js.map +1 -0
  332. package/dist/frontend/{types.d.ts → type-mapper.d.ts} +2 -25
  333. package/dist/frontend/{types.js → type-mapper.js} +31 -52
  334. package/dist/frontend/type-mapper.js.map +1 -0
  335. package/dist/frontend/workspace-registry.d.ts +26 -0
  336. package/dist/frontend/workspace-registry.js +71 -0
  337. package/dist/frontend/workspace-registry.js.map +1 -0
  338. package/dist/index.d.ts +115 -30
  339. package/dist/index.js +650 -146
  340. package/dist/index.js.map +1 -1
  341. package/dist/ir/analysis.d.ts +37 -0
  342. package/dist/ir/analysis.js +118 -0
  343. package/dist/ir/analysis.js.map +1 -0
  344. package/dist/ir/analysis.test.d.ts +1 -0
  345. package/dist/ir/analysis.test.js +21 -0
  346. package/dist/ir/analysis.test.js.map +1 -0
  347. package/dist/ir/build.d.ts +9 -0
  348. package/dist/ir/build.js +33 -0
  349. package/dist/ir/build.js.map +1 -0
  350. package/dist/ir/integer-loops.d.ts +1 -1
  351. package/dist/ir/{nodes.d.ts → ir.d.ts} +60 -26
  352. package/dist/ir/{nodes.js → ir.js} +173 -141
  353. package/dist/ir/ir.js.map +1 -0
  354. package/dist/ir/ir.test.d.ts +1 -0
  355. package/dist/ir/ir.test.js +17 -0
  356. package/dist/ir/ir.test.js.map +1 -0
  357. package/dist/ir/serialize.d.ts +1 -1
  358. package/dist/ir/serialize.js +2 -1
  359. package/dist/ir/serialize.js.map +1 -1
  360. package/dist/ir/validate.d.ts +1 -1
  361. package/dist/ir/validate.js +16 -5
  362. package/dist/ir/validate.js.map +1 -1
  363. package/dist/library/cache-primitives.d.ts +24 -0
  364. package/dist/library/cache-primitives.js +83 -0
  365. package/dist/library/cache-primitives.js.map +1 -0
  366. package/dist/library/cache-reset.test.d.ts +1 -0
  367. package/dist/library/cache-reset.test.js +47 -0
  368. package/dist/library/cache-reset.test.js.map +1 -0
  369. package/dist/library/compiler-self-identity.d.ts +23 -0
  370. package/dist/library/compiler-self-identity.js +84 -0
  371. package/dist/library/compiler-self-identity.js.map +1 -0
  372. package/dist/library/fence-eval.d.ts +3 -1
  373. package/dist/library/fence-eval.js +5 -1
  374. package/dist/library/fence-eval.js.map +1 -1
  375. package/dist/library/int-infer.d.ts +1 -36
  376. package/dist/library/int-infer.js +17 -17
  377. package/dist/library/int-infer.js.map +1 -1
  378. package/dist/library/{early-cache.d.ts → library-cache.d.ts} +1 -1
  379. package/dist/library/{early-cache.js → library-cache.js} +37 -111
  380. package/dist/library/library-cache.js.map +1 -0
  381. package/dist/library/library-cache.test.d.ts +1 -0
  382. package/dist/library/{early-cache.test.js → library-cache.test.js} +2 -2
  383. package/dist/library/library-cache.test.js.map +1 -0
  384. package/dist/library/{profile.d.ts → library-profile.d.ts} +4 -7
  385. package/dist/library/{profile.js → library-profile.js} +18 -11
  386. package/dist/library/library-profile.js.map +1 -0
  387. package/dist/library/semantic-source.js +2 -1
  388. package/dist/library/semantic-source.js.map +1 -1
  389. package/dist/library/sidecar.d.ts +5 -2
  390. package/dist/library/sidecar.js +11 -5
  391. package/dist/library/sidecar.js.map +1 -1
  392. package/dist/startup-cache.d.ts +6 -0
  393. package/dist/startup-cache.js +6 -0
  394. package/dist/startup-cache.js.map +1 -0
  395. package/package.json +7 -2
  396. package/surface-manifest.json +1 -1
  397. package/dist/backend/cc-cache.test.js.map +0 -1
  398. package/dist/backend/cc.js.map +0 -1
  399. package/dist/backend/emission/emit-async.js.map +0 -1
  400. package/dist/backend/emission/emit-exprs.d.ts +0 -13
  401. package/dist/backend/emission/emit-exprs.js +0 -7407
  402. package/dist/backend/emission/emit-exprs.js.map +0 -1
  403. package/dist/backend/emission/emit-island.js.map +0 -1
  404. package/dist/backend/emission/emit-shapes.js.map +0 -1
  405. package/dist/backend/emission/emit-stmts.js.map +0 -1
  406. package/dist/backend/emission/emit-types.js.map +0 -1
  407. package/dist/backend/emission/emit-walkers.js.map +0 -1
  408. package/dist/backend/emission/emitter.js.map +0 -1
  409. package/dist/backend/emission/may-throw.js.map +0 -1
  410. package/dist/backend/library-identity.js.map +0 -1
  411. package/dist/ffi/profile.js.map +0 -1
  412. package/dist/frontend/lowering/lower-emitter.js.map +0 -1
  413. package/dist/frontend/shared.d.ts +0 -82
  414. package/dist/frontend/shared.js +0 -308
  415. package/dist/frontend/shared.js.map +0 -1
  416. package/dist/frontend/ts7/program.js.map +0 -1
  417. package/dist/frontend/types.js.map +0 -1
  418. package/dist/ir/nodes.js.map +0 -1
  419. package/dist/library/early-cache.js.map +0 -1
  420. package/dist/library/early-cache.test.js.map +0 -1
  421. package/dist/library/profile.js.map +0 -1
  422. /package/dist/backend/{cc-cache.test.d.ts → c/types.test.d.ts} +0 -0
  423. /package/dist/{library/early-cache.test.d.ts → backend/llvm/shapes.test.d.ts} +0 -0
  424. /package/dist/frontend/ts7/{program.d.ts → program-adapter.d.ts} +0 -0
@@ -0,0 +1,300 @@
1
+ import { chmod, mkdtemp, readFile, readdir, rm, stat, utimes, writeFile } from "node:fs/promises";
2
+ import { tmpdir } from "node:os";
3
+ import { join } from "node:path";
4
+ import { afterEach, expect, test } from "vitest";
5
+ import { FrontendInputTracker, trackedFileExists, trackedReadFile } from "../frontend/input-tracker.js";
6
+ import { nativeArtifactDependenciesStillMatch } from "../backend/native-toolchain.js";
7
+ import { publishEarlyExecutableCache, readEarlyExecutableCache, readRoutedExecutableCache, } from "./executable-cache.js";
8
+ const scratch = [];
9
+ afterEach(async () => {
10
+ await Promise.all(scratch.splice(0).map((path) => rm(path, { recursive: true, force: true })));
11
+ });
12
+ const native = {
13
+ backend: "llvm",
14
+ dynamic: false,
15
+ regex: false,
16
+ copying: false,
17
+ textDecoderLegacy: false,
18
+ fileHandle: false,
19
+ fetch: true,
20
+ netIsland: false,
21
+ zlib: false,
22
+ assert: false,
23
+ inspect: false,
24
+ dynInvoke: false,
25
+ dc: false,
26
+ dynAsync: false,
27
+ events: false,
28
+ emitter: false,
29
+ symbol: false,
30
+ searchParams: false,
31
+ qs: false,
32
+ parseArgs: false,
33
+ stream: false,
34
+ net: false,
35
+ http: false,
36
+ http2: false,
37
+ dgram: false,
38
+ watch: false,
39
+ foreignFfi: false,
40
+ nodeTest: false,
41
+ tls: false,
42
+ tlsCa: false,
43
+ };
44
+ async function fixture() {
45
+ const dir = await mkdtemp(join(tmpdir(), "scriptc-early-executable-"));
46
+ scratch.push(dir);
47
+ const source = join(dir, "entry.ts");
48
+ const cPath = join(dir, "entry.ll");
49
+ const irPath = join(dir, "entry.ir.json");
50
+ await Promise.all([
51
+ writeFile(source, 'console.log("hello");\n'),
52
+ writeFile(cPath, "; generated llvm\n"),
53
+ writeFile(irPath, '{"irVersion":6}\n'),
54
+ ]);
55
+ return {
56
+ root: join(dir, "cache"),
57
+ source,
58
+ missing: join(dir, "missing.ts"),
59
+ cPath,
60
+ irPath,
61
+ options: {
62
+ entryPath: source,
63
+ outDir: dir,
64
+ outPath: join(dir, "entry"),
65
+ emitIr: true,
66
+ sanitize: false,
67
+ dynamic: false,
68
+ backend: "auto",
69
+ npmStatic: null,
70
+ ffiProfile: null,
71
+ target: "test",
72
+ compiler: ["clang"],
73
+ nativeEnvironment: "test-native-environment",
74
+ nodeVersion: "v24-test",
75
+ implementation: "a".repeat(64),
76
+ implementationDependencies: [],
77
+ },
78
+ };
79
+ }
80
+ test("early executable cache restores the emitted TU, IR, and native feature gates", async () => {
81
+ const f = await fixture();
82
+ const tracker = new FrontendInputTracker();
83
+ tracker.run(() => {
84
+ trackedReadFile(f.source);
85
+ trackedFileExists(f.missing);
86
+ });
87
+ await publishEarlyExecutableCache(f.root, f.options, {
88
+ cPath: f.cPath,
89
+ irPath: f.irPath,
90
+ native,
91
+ executableRestored: false,
92
+ frontend: tracker.snapshot(),
93
+ });
94
+ await Promise.all([rm(f.cPath), rm(f.irPath)]);
95
+ const staleC = join(f.options.outDir, "entry.c");
96
+ await writeFile(staleC, "/* stale C backend */\n");
97
+ const hit = await readEarlyExecutableCache(f.root, f.options);
98
+ expect(hit?.native).toEqual(native);
99
+ expect(hit?.executableRestored).toBe(false);
100
+ expect(await readFile(f.cPath, "utf8")).toBe("; generated llvm\n");
101
+ expect(await readFile(f.irPath, "utf8")).toContain("irVersion");
102
+ await expect(readFile(staleC, "utf8")).rejects.toMatchObject({ code: "ENOENT" });
103
+ });
104
+ test("early executable cache misses on source and resolution changes", async () => {
105
+ const f = await fixture();
106
+ const tracker = new FrontendInputTracker();
107
+ tracker.run(() => {
108
+ trackedReadFile(f.source);
109
+ trackedFileExists(f.missing);
110
+ });
111
+ await publishEarlyExecutableCache(f.root, f.options, {
112
+ cPath: f.cPath,
113
+ irPath: f.irPath,
114
+ native,
115
+ executableRestored: false,
116
+ frontend: tracker.snapshot(),
117
+ });
118
+ await writeFile(f.source, 'console.log("edited");\n');
119
+ expect(await readEarlyExecutableCache(f.root, f.options)).toBeNull();
120
+ await writeFile(f.source, 'console.log("hello");\n');
121
+ expect(await readEarlyExecutableCache(f.root, f.options)).not.toBeNull();
122
+ await writeFile(f.missing, "export {};\n");
123
+ expect(await readEarlyExecutableCache(f.root, f.options)).toBeNull();
124
+ });
125
+ test("early executable keys isolate compile modes, paths, implementation, and FFI manifests", async () => {
126
+ const f = await fixture();
127
+ const tracker = new FrontendInputTracker();
128
+ tracker.run(() => trackedReadFile(f.source));
129
+ await publishEarlyExecutableCache(f.root, f.options, {
130
+ cPath: f.cPath,
131
+ irPath: f.irPath,
132
+ native,
133
+ executableRestored: false,
134
+ frontend: tracker.snapshot(),
135
+ });
136
+ const variants = [
137
+ { ...f.options, emitIr: false },
138
+ { ...f.options, sanitize: true },
139
+ { ...f.options, dynamic: true },
140
+ { ...f.options, backend: "c" },
141
+ { ...f.options, optimization: "dev" },
142
+ { ...f.options, npmStatic: "auto" },
143
+ { ...f.options, npmStatic: ["commander"] },
144
+ { ...f.options, outPath: join(f.options.outDir, "other") },
145
+ { ...f.options, target: "other" },
146
+ { ...f.options, compiler: ["zig", "cc"] },
147
+ { ...f.options, nativeEnvironment: "other-native-environment" },
148
+ { ...f.options, nodeVersion: "v24-other" },
149
+ { ...f.options, implementation: "other-implementation" },
150
+ { ...f.options, ffiProfile: { path: join(f.options.outDir, "ffi.json"), bytes: Buffer.from("one") } },
151
+ ];
152
+ for (const options of variants) {
153
+ expect(await readEarlyExecutableCache(f.root, options)).toBeNull();
154
+ }
155
+ });
156
+ test("early executable cache rejects corruption and refreshes payload LRU times", async () => {
157
+ const f = await fixture();
158
+ const tracker = new FrontendInputTracker();
159
+ tracker.run(() => trackedReadFile(f.source));
160
+ await publishEarlyExecutableCache(f.root, f.options, {
161
+ cPath: f.cPath,
162
+ irPath: f.irPath,
163
+ native,
164
+ executableRestored: false,
165
+ frontend: tracker.snapshot(),
166
+ });
167
+ const [key] = await readdir(join(f.root, "early-exe"));
168
+ const directory = join(f.root, "early-exe", key);
169
+ const paths = [
170
+ join(directory, "stamp.json"),
171
+ join(directory, "program.tu"),
172
+ join(directory, "program.ir.json"),
173
+ ];
174
+ const old = new Date("2000-01-01T00:00:00.000Z");
175
+ await Promise.all(paths.map((path) => utimes(path, old, old)));
176
+ expect(await readEarlyExecutableCache(f.root, f.options)).not.toBeNull();
177
+ for (const path of paths)
178
+ expect((await stat(path)).mtimeMs).toBeGreaterThan(old.getTime());
179
+ await writeFile(join(directory, "program.tu"), "; poisoned\n");
180
+ expect(await readEarlyExecutableCache(f.root, f.options)).toBeNull();
181
+ });
182
+ test("early executable cache restores a validated final binary", async () => {
183
+ const f = await fixture();
184
+ const dependency = join(f.options.outDir, "native-tool");
185
+ await writeFile(dependency, "tool-v1\n");
186
+ const info = await stat(dependency);
187
+ const outMode = 0o777 & ~process.umask();
188
+ await writeFile(f.options.outPath, "native-v1\n", { mode: outMode });
189
+ await chmod(f.options.outPath, outMode);
190
+ const tracker = new FrontendInputTracker();
191
+ tracker.run(() => trackedReadFile(f.source));
192
+ await publishEarlyExecutableCache(f.root, f.options, {
193
+ cPath: f.cPath,
194
+ irPath: f.irPath,
195
+ native,
196
+ executableRestored: true,
197
+ nativeDependencies: [{
198
+ path: dependency,
199
+ kind: "file",
200
+ dev: info.dev,
201
+ ino: info.ino,
202
+ size: info.size,
203
+ mtimeMs: info.mtimeMs,
204
+ ctimeMs: info.ctimeMs,
205
+ }],
206
+ frontend: tracker.snapshot(),
207
+ });
208
+ await writeFile(f.options.outPath, "caller-modified\n");
209
+ const hit = await readEarlyExecutableCache(f.root, f.options);
210
+ expect(hit?.executableRestored).toBe(true);
211
+ expect(await readFile(f.options.outPath, "utf8")).toBe("native-v1\n");
212
+ await writeFile(dependency, "tool-v2\n");
213
+ await writeFile(f.options.outPath, "keep-current\n");
214
+ const staleNative = await readEarlyExecutableCache(f.root, f.options);
215
+ expect(staleNative?.executableRestored).toBe(false);
216
+ expect(await readFile(f.options.outPath, "utf8")).toBe("keep-current\n");
217
+ });
218
+ test("routed executable hits require an unchanged compiler implementation proof", async () => {
219
+ const f = await fixture();
220
+ const dependency = join(f.options.outDir, "compiler-file.js");
221
+ const nativeDependency = join(f.options.outDir, "native-tool");
222
+ await Promise.all([
223
+ writeFile(dependency, "compiler-v1\n"),
224
+ writeFile(nativeDependency, "tool-v1\n"),
225
+ writeFile(f.options.outPath, "native-v1\n"),
226
+ ]);
227
+ const [implementationInfo, nativeInfo] = await Promise.all([
228
+ stat(dependency),
229
+ stat(nativeDependency),
230
+ ]);
231
+ f.options.implementationDependencies = [{
232
+ path: dependency,
233
+ kind: "file",
234
+ dev: implementationInfo.dev,
235
+ ino: implementationInfo.ino,
236
+ size: implementationInfo.size,
237
+ mtimeMs: implementationInfo.mtimeMs,
238
+ ctimeMs: implementationInfo.ctimeMs,
239
+ }];
240
+ const tracker = new FrontendInputTracker();
241
+ tracker.run(() => trackedReadFile(f.source));
242
+ await publishEarlyExecutableCache(f.root, f.options, {
243
+ cPath: f.cPath,
244
+ irPath: f.irPath,
245
+ native,
246
+ executableRestored: true,
247
+ nativeDependencies: [{
248
+ path: nativeDependency,
249
+ kind: "file",
250
+ dev: nativeInfo.dev,
251
+ ino: nativeInfo.ino,
252
+ size: nativeInfo.size,
253
+ mtimeMs: nativeInfo.mtimeMs,
254
+ ctimeMs: nativeInfo.ctimeMs,
255
+ }],
256
+ frontend: tracker.snapshot(),
257
+ });
258
+ const route = { ...f.options };
259
+ delete route.implementation;
260
+ delete route.implementationDependencies;
261
+ const routeDirectory = join(f.root, "early-exe-route");
262
+ const [routeName] = await readdir(routeDirectory);
263
+ const routePath = join(routeDirectory, routeName);
264
+ const proofInstallDirectory = join(f.root, "early-exe-implementation");
265
+ const [proofInstall] = await readdir(proofInstallDirectory);
266
+ const proofPath = join(proofInstallDirectory, proofInstall, f.options.implementation);
267
+ const old = new Date("2000-01-01T00:00:00.000Z");
268
+ await Promise.all([routePath, proofPath].map((path) => utimes(path, old, old)));
269
+ expect(await readRoutedExecutableCache(f.root, route)).not.toBeNull();
270
+ for (const path of [routePath, proofPath]) {
271
+ expect((await stat(path)).mtimeMs).toBeGreaterThan(old.getTime());
272
+ }
273
+ // Publishing the same route again must replace its metadata on every
274
+ // platform (notably Windows, whose rename does not overwrite files).
275
+ await publishEarlyExecutableCache(f.root, f.options, {
276
+ cPath: f.cPath,
277
+ irPath: f.irPath,
278
+ native,
279
+ executableRestored: true,
280
+ nativeDependencies: [{
281
+ path: nativeDependency,
282
+ kind: "file",
283
+ dev: nativeInfo.dev,
284
+ ino: nativeInfo.ino,
285
+ size: nativeInfo.size,
286
+ mtimeMs: nativeInfo.mtimeMs,
287
+ ctimeMs: nativeInfo.ctimeMs,
288
+ }],
289
+ frontend: tracker.snapshot(),
290
+ });
291
+ expect(await readRoutedExecutableCache(f.root, route)).not.toBeNull();
292
+ await writeFile(dependency, "compiler-v2\n");
293
+ expect(await readRoutedExecutableCache(f.root, route)).toBeNull();
294
+ });
295
+ test("native dependency validation rejects malformed cache data", async () => {
296
+ expect(await nativeArtifactDependenciesStillMatch([
297
+ { path: "/tmp/not-enough-fields", kind: "file" },
298
+ ])).toBe(false);
299
+ });
300
+ //# sourceMappingURL=executable-cache.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executable-cache.test.js","sourceRoot":"","sources":["../../src/executable/executable-cache.test.ts"],"names":[],"mappings":"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"}
@@ -49,11 +49,16 @@ export interface FfiProfile {
49
49
  /** Driver-neutral names; the linker receives each as `-l<name>`. */
50
50
  systemLibraries: string[];
51
51
  }
52
- /** Parse and strictly validate one outbound native-FFI manifest. */
53
- export declare function loadFfiProfile(profilePath: string): {
52
+ export type FfiProfileLoadResult = {
54
53
  ok: true;
55
54
  profile: FfiProfile;
55
+ /** Exact manifest snapshot parsed into `profile`. Executable cache keys
56
+ * use these same bytes so a concurrent file replacement cannot split
57
+ * the cache identity from the frontend/native configuration. */
58
+ profileBytes: Uint8Array;
56
59
  } | {
57
60
  ok: false;
58
61
  diagnostics: ScrDiagnostic[];
59
62
  };
63
+ /** Parse and strictly validate one outbound native-FFI manifest. */
64
+ export declare function loadFfiProfile(profilePath: string): FfiProfileLoadResult;
@@ -445,6 +445,7 @@ export function loadFfiProfile(profilePath) {
445
445
  }
446
446
  return {
447
447
  ok: true,
448
+ profileBytes: bytes,
448
449
  profile: {
449
450
  ffiFormat: format,
450
451
  functions: resolvedFunctions,
@@ -459,4 +460,4 @@ export function loadFfiProfile(profilePath) {
459
460
  throw err;
460
461
  }
461
462
  }
462
- //# sourceMappingURL=profile.js.map
463
+ //# sourceMappingURL=ffi-manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ffi-manifest.js","sourceRoot":"","sources":["../../src/ffi/ffi-manifest.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /** The node builtin modules with scriptc lowerings, by canonical bare name. */
2
+ export declare const SUPPORTED_BUILTIN_MODULES: readonly ["fs", "path", "path/posix", "path/win32", "os", "url", "fs/promises", "crypto", "zlib", "child_process", "net", "http", "tls", "https", "dgram", "dns", "util", "util/types", "string_decoder", "querystring", "readline", "http2", "assert", "assert/strict", "worker_threads", "buffer", "cluster", "tty", "async_hooks", "events", "stream", "stream/promises", "stream/consumers", "test", "timers", "timers/promises", "diagnostics_channel", "perf_hooks", "module"];
3
+ /** The builtin modules whose DEFAULT import binding lowers: node:assert's
4
+ * module object IS a callable function (`import assert from "node:assert";
5
+ * assert(x)`), and node:events' module object IS the EventEmitter class
6
+ * (`module.exports = EventEmitter` — `import EventEmitter from
7
+ * "node:events"; new EventEmitter()`), so those default bindings lower —
8
+ * for every other builtin the default-import fence stands. */
9
+ export declare function builtinDefaultImportModule(spec: string): string | null;
10
+ /** Canonical (bare) name of a supported builtin-module specifier — "fs"
11
+ * for both "fs" and "node:fs" — or null for everything else. The lowering
12
+ * tables and the preflight allowlist share this one normalization. */
13
+ export declare function canonicalBuiltinModule(spec: string): string | null;
14
+ /** Both specifier spellings of every supported builtin (prefix-only ones
15
+ * keep just the node: form) — the ambient-module allowlist preflight uses. */
16
+ export declare const SUPPORTED_NODE_MODULES: readonly string[];
17
+ /** The SC1010 feature string for an unsupported module specifier: the
18
+ * plain "the 'x' module" for pending surface, with the out-of-scope
19
+ * reason appended for the modules above. Every "the '<spec>' module"
20
+ * fence site words through this one helper. */
21
+ export declare function unsupportedModuleFeatureOf(spec: string): string;
@@ -0,0 +1,82 @@
1
+ /** The node builtin modules with scriptc lowerings, by canonical bare name. */
2
+ export const SUPPORTED_BUILTIN_MODULES = ["fs", "path", "path/posix", "path/win32", "os", "url", "fs/promises", "crypto", "zlib", "child_process", "net", "http", "tls", "https", "dgram", "dns", "util", "util/types", "string_decoder", "querystring", "readline", "http2", "assert", "assert/strict", "worker_threads", "buffer", "cluster", "tty", "async_hooks", "events", "stream", "stream/promises", "stream/consumers", "test", "timers", "timers/promises", "diagnostics_channel", "perf_hooks", "module"];
3
+ /** Builtins Node itself serves ONLY under the node: prefix —
4
+ * require("test") is MODULE_NOT_FOUND in Node, so the bare name stays a
5
+ * user-package specifier and never canonicalizes to the builtin. Bare
6
+ * "module" is NOT in this set: Node serves the builtin for both spellings
7
+ * (a builtin always wins over a same-named npm package for the bare
8
+ * specifier — the npm package named "module" is unreachable in Node too),
9
+ * so both spellings key the same lowering tables here. */
10
+ const PREFIX_ONLY_BUILTIN_MODULES = new Set(["test"]);
11
+ /** The builtin modules whose DEFAULT import binding lowers: node:assert's
12
+ * module object IS a callable function (`import assert from "node:assert";
13
+ * assert(x)`), and node:events' module object IS the EventEmitter class
14
+ * (`module.exports = EventEmitter` — `import EventEmitter from
15
+ * "node:events"; new EventEmitter()`), so those default bindings lower —
16
+ * for every other builtin the default-import fence stands. */
17
+ export function builtinDefaultImportModule(spec) {
18
+ const canon = canonicalBuiltinModule(spec);
19
+ // node:test's module object IS the test function (`import test from
20
+ // "node:test"; test(...)`), like assert's callable module object.
21
+ return canon === "assert" || canon === "assert/strict" || canon === "events" || canon === "test"
22
+ ? canon
23
+ : null;
24
+ }
25
+ /** Canonical (bare) name of a supported builtin-module specifier — "fs"
26
+ * for both "fs" and "node:fs" — or null for everything else. The lowering
27
+ * tables and the preflight allowlist share this one normalization. */
28
+ export function canonicalBuiltinModule(spec) {
29
+ const bare = spec.startsWith("node:") ? spec.slice(5) : spec;
30
+ if (bare === spec && PREFIX_ONLY_BUILTIN_MODULES.has(bare))
31
+ return null;
32
+ return SUPPORTED_BUILTIN_MODULES.includes(bare) ? bare : null;
33
+ }
34
+ /** Both specifier spellings of every supported builtin (prefix-only ones
35
+ * keep just the node: form) — the ambient-module allowlist preflight uses. */
36
+ export const SUPPORTED_NODE_MODULES = SUPPORTED_BUILTIN_MODULES.flatMap((m) => PREFIX_ONLY_BUILTIN_MODULES.has(m) ? [`node:${m}`] : [m, `node:${m}`]);
37
+ /* ── out-of-scope builtins ───────────────────────────────────────────────
38
+ * Builtin modules a compiled binary is not going to serve — not "yet",
39
+ * but by construction — each with the reason its SC1010 fence prints.
40
+ * Keyed by CANONICAL (bare) name; the node: prefix strips before lookup,
41
+ * so 'node:sqlite' keys as 'sqlite'. Exact-match only: an npm package
42
+ * whose name collides with none of these keys keeps the generic wording.
43
+ * Everything absent from this table stays the plain "not supported yet"
44
+ * story — genuinely pending surface (console's Console class, stream/web)
45
+ * must not read as permanently refused. */
46
+ /** Node's own HTTP/TLS/stream implementation internals, requireable by
47
+ * legacy convention (underscore-prefixed lib/ modules). They expose
48
+ * Node-internal objects — parsers, wrap handles, the Agent's socket
49
+ * pools — that only exist inside Node's own stack. */
50
+ const NODE_INTERNAL_REASON = "a Node-internal module: it exposes Node's own implementation objects, which the scriptc runtime does not replicate";
51
+ const V8_REASON = "it observes V8 engine internals — heap statistics and snapshots, GC and CPU profiles, serialize/deserialize — and a compiled binary embeds no V8 engine to observe";
52
+ const OUT_OF_SCOPE_BUILTIN_REASONS = {
53
+ v8: V8_REASON,
54
+ inspector: "it drives the V8 inspector protocol — debugger, profiler, heap access — and a compiled binary embeds no V8 engine to inspect",
55
+ "inspector/promises": "it drives the V8 inspector protocol — debugger, profiler, heap access — and a compiled binary embeds no V8 engine to inspect",
56
+ sqlite: "it wraps the SQLite library bundled into the node executable, and scriptc binaries bundle no SQLite engine",
57
+ domain: "deprecated in Node and slated for removal; its implicit error interception hooks every async callback at engine level, which is not modeled",
58
+ _http_agent: NODE_INTERNAL_REASON,
59
+ _http_client: NODE_INTERNAL_REASON,
60
+ _http_common: NODE_INTERNAL_REASON,
61
+ _http_incoming: NODE_INTERNAL_REASON,
62
+ _http_outgoing: NODE_INTERNAL_REASON,
63
+ _http_server: NODE_INTERNAL_REASON,
64
+ _stream_duplex: NODE_INTERNAL_REASON,
65
+ _stream_passthrough: NODE_INTERNAL_REASON,
66
+ _stream_readable: NODE_INTERNAL_REASON,
67
+ _stream_transform: NODE_INTERNAL_REASON,
68
+ _stream_wrap: NODE_INTERNAL_REASON,
69
+ _stream_writable: NODE_INTERNAL_REASON,
70
+ _tls_common: NODE_INTERNAL_REASON,
71
+ _tls_wrap: NODE_INTERNAL_REASON,
72
+ };
73
+ /** The SC1010 feature string for an unsupported module specifier: the
74
+ * plain "the 'x' module" for pending surface, with the out-of-scope
75
+ * reason appended for the modules above. Every "the '<spec>' module"
76
+ * fence site words through this one helper. */
77
+ export function unsupportedModuleFeatureOf(spec) {
78
+ const bare = spec.startsWith("node:") ? spec.slice(5) : spec;
79
+ const reason = Object.hasOwn(OUT_OF_SCOPE_BUILTIN_REASONS, bare) ? OUT_OF_SCOPE_BUILTIN_REASONS[bare] : undefined;
80
+ return reason === undefined ? `the '${spec}' module` : `the '${spec}' module (${reason})`;
81
+ }
82
+ //# sourceMappingURL=builtin-modules.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"builtin-modules.js","sourceRoot":"","sources":["../../src/frontend/builtin-modules.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import ts from "typescript5";
1
2
  export interface CjsLexedExports {
2
3
  /** Names Node's lexer detects in THIS file (no reexport resolution). */
3
4
  exports: Set<string>;
@@ -6,6 +7,12 @@ export interface CjsLexedExports {
6
7
  * (or unclear-ed) star-pattern / Babel-loop match. */
7
8
  reexports: string[];
8
9
  }
10
+ /** The bare `require('spec')` call merve recognizes. */
11
+ export declare function bareRequireSpecOf(e: ts.Node): string | null;
12
+ /** True when `e` is exactly the `exports` identifier. */
13
+ export declare function isExportsIdent(e: ts.Expression): boolean;
14
+ /** True when `e` is exactly `module.exports`. */
15
+ export declare function isModuleExports(e: ts.Expression): boolean;
9
16
  /** The single-file lex over SOURCE TEXT: every detection site, position-
10
17
  * blind like the real lexer for the assignment forms (nested functions and
11
18
  * dead branches count), brace-depth-0 for the star patterns. */
@@ -128,10 +128,8 @@ function identPrefixOf(node, sf) {
128
128
  const start = node.getStart(sf);
129
129
  return sf.text.slice(start, identRunEnd(sf.text, start));
130
130
  }
131
- /** The bare `require('spec')` call merve recognizes: callee is exactly the
132
- * identifier `require` (no optional chaining), one string-literal argument
133
- * (quotes only — templates never match). */
134
- function bareRequireSpecOf(e) {
131
+ /** The bare `require('spec')` call merve recognizes. */
132
+ export function bareRequireSpecOf(e) {
135
133
  if (!ts.isCallExpression(e) || e.questionDotToken !== undefined)
136
134
  return null;
137
135
  if (!ts.isIdentifier(e.expression) || e.expression.text !== "require")
@@ -141,6 +139,19 @@ function bareRequireSpecOf(e) {
141
139
  const arg = e.arguments[0];
142
140
  return ts.isStringLiteral(arg) ? arg.text : null;
143
141
  }
142
+ /** True when `e` is exactly the `exports` identifier. */
143
+ export function isExportsIdent(e) {
144
+ return ts.isIdentifier(e) && e.text === "exports";
145
+ }
146
+ /** True when `e` is exactly `module.exports`. */
147
+ export function isModuleExports(e) {
148
+ return (ts.isPropertyAccessExpression(e) &&
149
+ e.questionDotToken === undefined &&
150
+ ts.isIdentifier(e.expression) &&
151
+ e.expression.text === "module" &&
152
+ ts.isIdentifier(e.name) &&
153
+ e.name.text === "exports");
154
+ }
144
155
  /** The `require(...)` call at the very START of `e`'s source span, if any:
145
156
  * merve records the reexport as soon as it lexes `require('spec')` and any
146
157
  * TRAILER (`.foo`, `()`, `|| y`, `? a : b`) merely stops whatever scan
@@ -163,19 +174,6 @@ function leadingRequireOf(e, sf) {
163
174
  cur = first;
164
175
  }
165
176
  }
166
- /** True when `e` is exactly the `exports` identifier. */
167
- function isExportsIdent(e) {
168
- return ts.isIdentifier(e) && e.text === "exports";
169
- }
170
- /** True when `e` is exactly `module.exports`. */
171
- function isModuleExports(e) {
172
- return (ts.isPropertyAccessExpression(e) &&
173
- e.questionDotToken === undefined &&
174
- ts.isIdentifier(e.expression) &&
175
- e.expression.text === "module" &&
176
- ts.isIdentifier(e.name) &&
177
- e.name.text === "exports");
178
- }
179
177
  /** Skips ECMA whitespace and comments forward from `pos` (merve's
180
178
  * commentWhitespace) and answers the next meaningful character (or ""). */
181
179
  function nextMeaningfulChar(text, pos) {