gate-evm-tools 1.0.28 → 1.0.31

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 (618) hide show
  1. package/README.md +16 -1
  2. package/bin/cli.js +3 -0
  3. package/bin/delivery.cjs +51 -0
  4. package/bin/manifest-bootstrap.js +4 -15
  5. package/bin/workflow.cjs +1 -1
  6. package/dist/commands/plan/file-store.d.ts.map +1 -0
  7. package/dist/commands/plan/generate-deployment.d.ts +48 -0
  8. package/dist/commands/plan/generate-deployment.d.ts.map +1 -0
  9. package/dist/commands/plan/generate-deployment.js +211 -0
  10. package/dist/commands/plan/generate-deployment.js.map +1 -0
  11. package/dist/commands/plan/helpers.d.ts.map +1 -0
  12. package/dist/commands/plan/index.d.ts +3 -0
  13. package/dist/commands/plan/index.d.ts.map +1 -0
  14. package/dist/commands/plan/index.js +88 -0
  15. package/dist/commands/plan/index.js.map +1 -0
  16. package/dist/commands/sync.js +1 -1
  17. package/dist/commands/sync.js.map +1 -1
  18. package/dist/core/BytecodeChecker.d.ts.map +1 -1
  19. package/dist/core/BytecodeChecker.js +27 -8
  20. package/dist/core/BytecodeChecker.js.map +1 -1
  21. package/dist/core/preparation/artifacts.d.ts +2 -0
  22. package/dist/core/preparation/artifacts.d.ts.map +1 -1
  23. package/dist/core/preparation/artifacts.js +9 -3
  24. package/dist/core/preparation/artifacts.js.map +1 -1
  25. package/dist/core/preparation/evm.d.ts +38 -2
  26. package/dist/core/preparation/evm.d.ts.map +1 -1
  27. package/dist/core/preparation/evm.js +104 -32
  28. package/dist/core/preparation/evm.js.map +1 -1
  29. package/dist/core/preparation/evmManifestSync.d.ts +63 -0
  30. package/dist/core/preparation/evmManifestSync.d.ts.map +1 -0
  31. package/dist/core/preparation/evmManifestSync.js +146 -0
  32. package/dist/core/preparation/evmManifestSync.js.map +1 -0
  33. package/dist/core/preparation/index.d.ts +40 -2
  34. package/dist/core/preparation/index.d.ts.map +1 -1
  35. package/dist/core/preparation/index.js +3 -3
  36. package/dist/core/preparation/index.js.map +1 -1
  37. package/dist/core/preparation/manifest.d.ts +15 -3
  38. package/dist/core/preparation/manifest.d.ts.map +1 -1
  39. package/dist/core/preparation/manifest.js +21 -26
  40. package/dist/core/preparation/manifest.js.map +1 -1
  41. package/dist/core/preparation/normalize.d.ts.map +1 -1
  42. package/dist/core/preparation/normalize.js +14 -9
  43. package/dist/core/preparation/normalize.js.map +1 -1
  44. package/dist/core/preparation/types.d.ts +7 -2
  45. package/dist/core/preparation/types.d.ts.map +1 -1
  46. package/dist/custody/hardhat-runtime.d.ts.map +1 -1
  47. package/dist/custody/hardhat-runtime.js +2 -0
  48. package/dist/custody/hardhat-runtime.js.map +1 -1
  49. package/dist/custody/hardhat.d.ts +1 -0
  50. package/dist/custody/hardhat.d.ts.map +1 -1
  51. package/dist/custody/hardhat.js +1 -0
  52. package/dist/custody/hardhat.js.map +1 -1
  53. package/dist/custody/index.d.ts +1 -0
  54. package/dist/custody/index.d.ts.map +1 -1
  55. package/dist/custody/index.js +1 -0
  56. package/dist/custody/index.js.map +1 -1
  57. package/dist/custody/provider-wait.d.ts +13 -0
  58. package/dist/custody/provider-wait.d.ts.map +1 -0
  59. package/dist/custody/provider-wait.js +78 -0
  60. package/dist/custody/provider-wait.js.map +1 -0
  61. package/dist/delivery/policy.d.ts +6 -0
  62. package/dist/delivery/policy.d.ts.map +1 -0
  63. package/dist/delivery/policy.js +24 -0
  64. package/dist/delivery/policy.js.map +1 -0
  65. package/dist/index.d.ts.map +1 -1
  66. package/dist/index.js +5 -0
  67. package/dist/index.js.map +1 -1
  68. package/dist/sync/index.d.ts +15 -0
  69. package/dist/sync/index.d.ts.map +1 -1
  70. package/dist/sync/index.js +8 -0
  71. package/dist/sync/index.js.map +1 -1
  72. package/dist/workflow/index.d.ts +6 -1
  73. package/dist/workflow/index.d.ts.map +1 -1
  74. package/dist/workflow/index.js +4 -0
  75. package/dist/workflow/index.js.map +1 -1
  76. package/dist-cjs/core/BytecodeChecker.js +526 -0
  77. package/dist-cjs/core/BytecodeChecker.js.map +1 -0
  78. package/dist-cjs/core/legacyProxyArtifact.js +42 -0
  79. package/dist-cjs/core/legacyProxyArtifact.js.map +1 -0
  80. package/dist-cjs/core/preparation/artifacts.js +11 -4
  81. package/dist-cjs/core/preparation/artifacts.js.map +1 -1
  82. package/dist-cjs/core/preparation/evm.js +105 -32
  83. package/dist-cjs/core/preparation/evm.js.map +1 -1
  84. package/dist-cjs/core/preparation/evmManifestSync.js +155 -0
  85. package/dist-cjs/core/preparation/evmManifestSync.js.map +1 -0
  86. package/dist-cjs/core/preparation/index.js +3 -3
  87. package/dist-cjs/core/preparation/index.js.map +1 -1
  88. package/dist-cjs/core/preparation/manifest.js +23 -28
  89. package/dist-cjs/core/preparation/manifest.js.map +1 -1
  90. package/dist-cjs/core/preparation/normalize.js +14 -9
  91. package/dist-cjs/core/preparation/normalize.js.map +1 -1
  92. package/dist-cjs/custody/hardhat-runtime.js +2 -0
  93. package/dist-cjs/custody/hardhat-runtime.js.map +1 -1
  94. package/dist-cjs/custody/hardhat.js +3 -1
  95. package/dist-cjs/custody/hardhat.js.map +1 -1
  96. package/dist-cjs/custody/index.js +3 -1
  97. package/dist-cjs/custody/index.js.map +1 -1
  98. package/dist-cjs/custody/provider-wait.js +81 -0
  99. package/dist-cjs/custody/provider-wait.js.map +1 -0
  100. package/dist-cjs/delivery/policy.js +29 -0
  101. package/dist-cjs/delivery/policy.js.map +1 -0
  102. package/dist-cjs/sync/index.js +8 -0
  103. package/dist-cjs/sync/index.js.map +1 -1
  104. package/dist-cjs/workflow/index.js +12 -1
  105. package/dist-cjs/workflow/index.js.map +1 -1
  106. package/dist-runtime/config/openzeppelin.d.ts +2 -1
  107. package/dist-runtime/config/openzeppelin.js +2 -19
  108. package/dist-runtime/config/openzeppelin.js.map +1 -1
  109. package/dist-runtime/delivery/abi.d.ts +14 -0
  110. package/dist-runtime/delivery/abi.js +161 -0
  111. package/dist-runtime/delivery/abi.js.map +1 -0
  112. package/dist-runtime/delivery/aggregate-bootstrap.d.ts +12 -0
  113. package/dist-runtime/delivery/aggregate-bootstrap.js +40 -0
  114. package/dist-runtime/delivery/aggregate-bootstrap.js.map +1 -0
  115. package/dist-runtime/delivery/aggregate-channel.d.ts +28 -0
  116. package/dist-runtime/delivery/aggregate-channel.js +155 -0
  117. package/dist-runtime/delivery/aggregate-channel.js.map +1 -0
  118. package/dist-runtime/delivery/aggregate-inputs.d.ts +168 -0
  119. package/dist-runtime/delivery/aggregate-inputs.js +57 -0
  120. package/dist-runtime/delivery/aggregate-inputs.js.map +1 -0
  121. package/dist-runtime/delivery/aggregate-source.d.ts +25 -0
  122. package/dist-runtime/delivery/aggregate-source.js +79 -0
  123. package/dist-runtime/delivery/aggregate-source.js.map +1 -0
  124. package/dist-runtime/delivery/aggregate-worker.d.ts +1 -0
  125. package/dist-runtime/delivery/aggregate-worker.js +191 -0
  126. package/dist-runtime/delivery/aggregate-worker.js.map +1 -0
  127. package/dist-runtime/delivery/aggregate.d.ts +51 -0
  128. package/dist-runtime/delivery/aggregate.js +190 -0
  129. package/dist-runtime/delivery/aggregate.js.map +1 -0
  130. package/dist-runtime/delivery/bindings.d.ts +21 -0
  131. package/dist-runtime/delivery/bindings.js +53 -0
  132. package/dist-runtime/delivery/bindings.js.map +1 -0
  133. package/dist-runtime/delivery/check-code.d.ts +19 -0
  134. package/dist-runtime/delivery/check-code.js +63 -0
  135. package/dist-runtime/delivery/check-code.js.map +1 -0
  136. package/dist-runtime/delivery/closure-format.d.ts +77 -0
  137. package/dist-runtime/delivery/closure-format.js +225 -0
  138. package/dist-runtime/delivery/closure-format.js.map +1 -0
  139. package/dist-runtime/delivery/codec-pin.d.ts +2 -0
  140. package/dist-runtime/delivery/codec-pin.js +7 -0
  141. package/dist-runtime/delivery/codec-pin.js.map +1 -0
  142. package/dist-runtime/delivery/codec.d.ts +19 -0
  143. package/dist-runtime/delivery/codec.js +73 -0
  144. package/dist-runtime/delivery/codec.js.map +1 -0
  145. package/dist-runtime/delivery/compiler-dependency-pins.d.ts +7 -0
  146. package/dist-runtime/delivery/compiler-dependency-pins.js +1689 -0
  147. package/dist-runtime/delivery/compiler-dependency-pins.js.map +1 -0
  148. package/dist-runtime/delivery/compiler-files.d.ts +40 -0
  149. package/dist-runtime/delivery/compiler-files.js +220 -0
  150. package/dist-runtime/delivery/compiler-files.js.map +1 -0
  151. package/dist-runtime/delivery/compiler-io.d.ts +2 -0
  152. package/dist-runtime/delivery/compiler-io.js +13 -0
  153. package/dist-runtime/delivery/compiler-io.js.map +1 -0
  154. package/dist-runtime/delivery/compiler-pins.d.ts +10 -0
  155. package/dist-runtime/delivery/compiler-pins.js +147 -0
  156. package/dist-runtime/delivery/compiler-pins.js.map +1 -0
  157. package/dist-runtime/delivery/compiler.d.ts +188 -0
  158. package/dist-runtime/delivery/compiler.js +850 -0
  159. package/dist-runtime/delivery/compiler.js.map +1 -0
  160. package/dist-runtime/delivery/config.d.ts +48 -0
  161. package/dist-runtime/delivery/config.js +99 -0
  162. package/dist-runtime/delivery/config.js.map +1 -0
  163. package/dist-runtime/delivery/configuration-definition.d.ts +22 -0
  164. package/dist-runtime/delivery/configuration-definition.js +316 -0
  165. package/dist-runtime/delivery/configuration-definition.js.map +1 -0
  166. package/dist-runtime/delivery/configuration-hre.d.ts +17 -0
  167. package/dist-runtime/delivery/configuration-hre.js +198 -0
  168. package/dist-runtime/delivery/configuration-hre.js.map +1 -0
  169. package/dist-runtime/delivery/configuration-runtime.d.ts +36 -0
  170. package/dist-runtime/delivery/configuration-runtime.js +248 -0
  171. package/dist-runtime/delivery/configuration-runtime.js.map +1 -0
  172. package/dist-runtime/delivery/configuration.d.ts +35 -0
  173. package/dist-runtime/delivery/configuration.js +83 -0
  174. package/dist-runtime/delivery/configuration.js.map +1 -0
  175. package/dist-runtime/delivery/create2.d.ts +3 -0
  176. package/dist-runtime/delivery/create2.js +48 -0
  177. package/dist-runtime/delivery/create2.js.map +1 -0
  178. package/dist-runtime/delivery/custom-closure.d.ts +27 -0
  179. package/dist-runtime/delivery/custom-closure.js +818 -0
  180. package/dist-runtime/delivery/custom-closure.js.map +1 -0
  181. package/dist-runtime/delivery/custom-format.d.ts +35 -0
  182. package/dist-runtime/delivery/custom-format.js +383 -0
  183. package/dist-runtime/delivery/custom-format.js.map +1 -0
  184. package/dist-runtime/delivery/custom.d.ts +32 -0
  185. package/dist-runtime/delivery/custom.js +158 -0
  186. package/dist-runtime/delivery/custom.js.map +1 -0
  187. package/dist-runtime/delivery/data.d.ts +7 -0
  188. package/dist-runtime/delivery/data.js +86 -0
  189. package/dist-runtime/delivery/data.js.map +1 -0
  190. package/dist-runtime/delivery/development.d.ts +91 -0
  191. package/dist-runtime/delivery/development.js +395 -0
  192. package/dist-runtime/delivery/development.js.map +1 -0
  193. package/dist-runtime/delivery/engine.d.ts +9 -0
  194. package/dist-runtime/delivery/engine.js +23 -0
  195. package/dist-runtime/delivery/engine.js.map +1 -0
  196. package/dist-runtime/delivery/eoa-observation.d.ts +43 -0
  197. package/dist-runtime/delivery/eoa-observation.js +145 -0
  198. package/dist-runtime/delivery/eoa-observation.js.map +1 -0
  199. package/dist-runtime/delivery/eoa-signed.d.ts +2 -0
  200. package/dist-runtime/delivery/eoa-signed.js +74 -0
  201. package/dist-runtime/delivery/eoa-signed.js.map +1 -0
  202. package/dist-runtime/delivery/eoa.d.ts +81 -0
  203. package/dist-runtime/delivery/eoa.js +274 -0
  204. package/dist-runtime/delivery/eoa.js.map +1 -0
  205. package/dist-runtime/delivery/execution-db.d.ts +20 -0
  206. package/dist-runtime/delivery/execution-db.js +153 -0
  207. package/dist-runtime/delivery/execution-db.js.map +1 -0
  208. package/dist-runtime/delivery/execution-files.d.ts +9 -0
  209. package/dist-runtime/delivery/execution-files.js +138 -0
  210. package/dist-runtime/delivery/execution-files.js.map +1 -0
  211. package/dist-runtime/delivery/execution-model.d.ts +56 -0
  212. package/dist-runtime/delivery/execution-model.js +66 -0
  213. package/dist-runtime/delivery/execution-model.js.map +1 -0
  214. package/dist-runtime/delivery/execution-store.d.ts +48 -0
  215. package/dist-runtime/delivery/execution-store.js +361 -0
  216. package/dist-runtime/delivery/execution-store.js.map +1 -0
  217. package/dist-runtime/delivery/existing-code.d.ts +37 -0
  218. package/dist-runtime/delivery/existing-code.js +75 -0
  219. package/dist-runtime/delivery/existing-code.js.map +1 -0
  220. package/dist-runtime/delivery/export.d.ts +51 -0
  221. package/dist-runtime/delivery/export.js +69 -0
  222. package/dist-runtime/delivery/export.js.map +1 -0
  223. package/dist-runtime/delivery/forkAudit.d.ts +119 -0
  224. package/dist-runtime/delivery/forkAudit.js +473 -0
  225. package/dist-runtime/delivery/forkAudit.js.map +1 -0
  226. package/dist-runtime/delivery/hardhat.d.ts +3 -0
  227. package/dist-runtime/delivery/hardhat.js +45 -0
  228. package/dist-runtime/delivery/hardhat.js.map +1 -0
  229. package/dist-runtime/delivery/history-registration.d.ts +2 -0
  230. package/dist-runtime/delivery/history-registration.js +17 -0
  231. package/dist-runtime/delivery/history-registration.js.map +1 -0
  232. package/dist-runtime/delivery/identities.d.ts +22 -0
  233. package/dist-runtime/delivery/identities.js +97 -0
  234. package/dist-runtime/delivery/identities.js.map +1 -0
  235. package/dist-runtime/delivery/input-files.d.ts +5 -0
  236. package/dist-runtime/delivery/input-files.js +70 -0
  237. package/dist-runtime/delivery/input-files.js.map +1 -0
  238. package/dist-runtime/delivery/inputs.d.ts +62 -0
  239. package/dist-runtime/delivery/inputs.js +187 -0
  240. package/dist-runtime/delivery/inputs.js.map +1 -0
  241. package/dist-runtime/delivery/journal.d.ts +35 -0
  242. package/dist-runtime/delivery/journal.js +270 -0
  243. package/dist-runtime/delivery/journal.js.map +1 -0
  244. package/dist-runtime/delivery/manifest.d.ts +14 -0
  245. package/dist-runtime/delivery/manifest.js +68 -0
  246. package/dist-runtime/delivery/manifest.js.map +1 -0
  247. package/dist-runtime/delivery/materialization.d.ts +20 -0
  248. package/dist-runtime/delivery/materialization.js +138 -0
  249. package/dist-runtime/delivery/materialization.js.map +1 -0
  250. package/dist-runtime/delivery/observations.d.ts +31 -0
  251. package/dist-runtime/delivery/observations.js +38 -0
  252. package/dist-runtime/delivery/observations.js.map +1 -0
  253. package/dist-runtime/delivery/parameters.d.ts +53 -0
  254. package/dist-runtime/delivery/parameters.js +257 -0
  255. package/dist-runtime/delivery/parameters.js.map +1 -0
  256. package/dist-runtime/delivery/pending.d.ts +70 -0
  257. package/dist-runtime/delivery/pending.js +99 -0
  258. package/dist-runtime/delivery/pending.js.map +1 -0
  259. package/dist-runtime/delivery/plan.d.ts +50 -0
  260. package/dist-runtime/delivery/plan.js +209 -0
  261. package/dist-runtime/delivery/plan.js.map +1 -0
  262. package/dist-runtime/delivery/planning.d.ts +81 -0
  263. package/dist-runtime/delivery/planning.js +302 -0
  264. package/dist-runtime/delivery/planning.js.map +1 -0
  265. package/dist-runtime/delivery/policy.d.ts +4 -0
  266. package/dist-runtime/delivery/policy.js +9 -0
  267. package/dist-runtime/delivery/policy.js.map +1 -0
  268. package/dist-runtime/delivery/preparation.d.ts +6 -0
  269. package/dist-runtime/delivery/preparation.js +158 -0
  270. package/dist-runtime/delivery/preparation.js.map +1 -0
  271. package/dist-runtime/delivery/production-environment.d.ts +2 -0
  272. package/dist-runtime/delivery/production-environment.js +12 -0
  273. package/dist-runtime/delivery/production-environment.js.map +1 -0
  274. package/dist-runtime/delivery/production-finalization.d.ts +86 -0
  275. package/dist-runtime/delivery/production-finalization.js +278 -0
  276. package/dist-runtime/delivery/production-finalization.js.map +1 -0
  277. package/dist-runtime/delivery/production.d.ts +461 -0
  278. package/dist-runtime/delivery/production.js +396 -0
  279. package/dist-runtime/delivery/production.js.map +1 -0
  280. package/dist-runtime/delivery/project-files.d.ts +8 -0
  281. package/dist-runtime/delivery/project-files.js +82 -0
  282. package/dist-runtime/delivery/project-files.js.map +1 -0
  283. package/dist-runtime/delivery/project.d.ts +15 -0
  284. package/dist-runtime/delivery/project.js +157 -0
  285. package/dist-runtime/delivery/project.js.map +1 -0
  286. package/dist-runtime/delivery/protocol.d.ts +49 -0
  287. package/dist-runtime/delivery/protocol.js +112 -0
  288. package/dist-runtime/delivery/protocol.js.map +1 -0
  289. package/dist-runtime/delivery/references.d.ts +19 -0
  290. package/dist-runtime/delivery/references.js +84 -0
  291. package/dist-runtime/delivery/references.js.map +1 -0
  292. package/dist-runtime/delivery/release-graph.d.ts +93 -0
  293. package/dist-runtime/delivery/release-graph.js +106 -0
  294. package/dist-runtime/delivery/release-graph.js.map +1 -0
  295. package/dist-runtime/delivery/release-history-capture.d.ts +7 -0
  296. package/dist-runtime/delivery/release-history-capture.js +76 -0
  297. package/dist-runtime/delivery/release-history-capture.js.map +1 -0
  298. package/dist-runtime/delivery/release-history.d.ts +43 -0
  299. package/dist-runtime/delivery/release-history.js +246 -0
  300. package/dist-runtime/delivery/release-history.js.map +1 -0
  301. package/dist-runtime/delivery/release.d.ts +172 -0
  302. package/dist-runtime/delivery/release.js +209 -0
  303. package/dist-runtime/delivery/release.js.map +1 -0
  304. package/dist-runtime/delivery/safe-manifest.d.ts +9 -0
  305. package/dist-runtime/delivery/safe-manifest.js +13 -0
  306. package/dist-runtime/delivery/safe-manifest.js.map +1 -0
  307. package/dist-runtime/delivery/safe-observation.d.ts +30 -0
  308. package/dist-runtime/delivery/safe-observation.js +487 -0
  309. package/dist-runtime/delivery/safe-observation.js.map +1 -0
  310. package/dist-runtime/delivery/safe-prepare.d.ts +13 -0
  311. package/dist-runtime/delivery/safe-prepare.js +81 -0
  312. package/dist-runtime/delivery/safe-prepare.js.map +1 -0
  313. package/dist-runtime/delivery/safe.d.ts +91 -0
  314. package/dist-runtime/delivery/safe.js +243 -0
  315. package/dist-runtime/delivery/safe.js.map +1 -0
  316. package/dist-runtime/delivery/same-fork-baseline.d.ts +8 -0
  317. package/dist-runtime/delivery/same-fork-baseline.js +20 -0
  318. package/dist-runtime/delivery/same-fork-baseline.js.map +1 -0
  319. package/dist-runtime/delivery/setup.d.ts +31 -0
  320. package/dist-runtime/delivery/setup.js +215 -0
  321. package/dist-runtime/delivery/setup.js.map +1 -0
  322. package/dist-runtime/delivery/source.d.ts +41 -0
  323. package/dist-runtime/delivery/source.js +137 -0
  324. package/dist-runtime/delivery/source.js.map +1 -0
  325. package/dist-runtime/delivery/target-fields.d.ts +2 -0
  326. package/dist-runtime/delivery/target-fields.js +11 -0
  327. package/dist-runtime/delivery/target-fields.js.map +1 -0
  328. package/dist-runtime/delivery/validation.d.ts +9 -0
  329. package/dist-runtime/delivery/validation.js +150 -0
  330. package/dist-runtime/delivery/validation.js.map +1 -0
  331. package/dist-runtime/delivery/verification.d.ts +16 -0
  332. package/dist-runtime/delivery/verification.js +65 -0
  333. package/dist-runtime/delivery/verification.js.map +1 -0
  334. package/dist-runtime/migrate.js +1 -0
  335. package/dist-runtime/migrate.js.map +1 -1
  336. package/dist-runtime/miner/binary.d.ts +2 -0
  337. package/dist-runtime/miner/binary.js +54 -0
  338. package/dist-runtime/miner/binary.js.map +1 -0
  339. package/dist-runtime/miner/cli.d.ts +1 -0
  340. package/dist-runtime/miner/cli.js +131 -0
  341. package/dist-runtime/miner/cli.js.map +1 -0
  342. package/dist-runtime/miner/index.d.ts +5 -0
  343. package/dist-runtime/miner/index.js +13 -0
  344. package/dist-runtime/miner/index.js.map +1 -0
  345. package/dist-runtime/miner/request.d.ts +7 -0
  346. package/dist-runtime/miner/request.js +73 -0
  347. package/dist-runtime/miner/request.js.map +1 -0
  348. package/dist-runtime/miner/runner.d.ts +2 -0
  349. package/dist-runtime/miner/runner.js +131 -0
  350. package/dist-runtime/miner/runner.js.map +1 -0
  351. package/dist-runtime/miner/types.d.ts +89 -0
  352. package/dist-runtime/miner/types.js +3 -0
  353. package/dist-runtime/miner/types.js.map +1 -0
  354. package/dist-runtime/miner/verify.d.ts +2 -0
  355. package/dist-runtime/miner/verify.js +75 -0
  356. package/dist-runtime/miner/verify.js.map +1 -0
  357. package/dist-runtime/runtime-identity.json +2 -2
  358. package/dist-runtime/vendor/plan-codec/index.cjs +820 -0
  359. package/dist-runtime/vendor/plan-codec/index.d.cts +32 -0
  360. package/dist-runtime/vendor/plan-codec/provenance.json +24 -0
  361. package/dist-runtime/workflow/engine.d.ts +14 -0
  362. package/dist-runtime/workflow/engine.js +160 -0
  363. package/dist-runtime/workflow/engine.js.map +1 -0
  364. package/dist-runtime/workflow/lib/authority.d.ts +6 -3
  365. package/dist-runtime/workflow/lib/authority.js.map +1 -1
  366. package/dist-runtime/workflow/lib/calls.d.ts +1 -1
  367. package/dist-runtime/workflow/lib/calls.js +43 -34
  368. package/dist-runtime/workflow/lib/calls.js.map +1 -1
  369. package/dist-runtime/workflow/lib/canonicalData.d.ts +8 -0
  370. package/dist-runtime/workflow/lib/canonicalData.js +68 -0
  371. package/dist-runtime/workflow/lib/canonicalData.js.map +1 -0
  372. package/dist-runtime/workflow/lib/config.d.ts +3 -1
  373. package/dist-runtime/workflow/lib/config.js.map +1 -1
  374. package/dist-runtime/workflow/lib/context.d.ts +76 -0
  375. package/dist-runtime/workflow/lib/context.js +3 -0
  376. package/dist-runtime/workflow/lib/context.js.map +1 -0
  377. package/dist-runtime/workflow/lib/create2.d.ts +1 -1
  378. package/dist-runtime/workflow/lib/create2.js +9 -12
  379. package/dist-runtime/workflow/lib/create2.js.map +1 -1
  380. package/dist-runtime/workflow/lib/deployments.d.ts +5 -5
  381. package/dist-runtime/workflow/lib/deployments.js +5 -13
  382. package/dist-runtime/workflow/lib/deployments.js.map +1 -1
  383. package/dist-runtime/workflow/lib/evidencePorts.d.ts +55 -0
  384. package/dist-runtime/workflow/lib/evidencePorts.js +3 -0
  385. package/dist-runtime/workflow/lib/evidencePorts.js.map +1 -0
  386. package/dist-runtime/workflow/lib/executionPlan.d.ts +4 -42
  387. package/dist-runtime/workflow/lib/executionPlan.js +15 -210
  388. package/dist-runtime/workflow/lib/executionPlan.js.map +1 -1
  389. package/dist-runtime/workflow/lib/gateTool.d.ts +6 -2
  390. package/dist-runtime/workflow/lib/gateTool.js +20 -10
  391. package/dist-runtime/workflow/lib/gateTool.js.map +1 -1
  392. package/dist-runtime/workflow/lib/gateToolSync.d.ts +1 -1
  393. package/dist-runtime/workflow/lib/gateToolSync.js +3 -2
  394. package/dist-runtime/workflow/lib/gateToolSync.js.map +1 -1
  395. package/dist-runtime/workflow/lib/operationNames.d.ts +3 -0
  396. package/dist-runtime/workflow/lib/operationNames.js +34 -0
  397. package/dist-runtime/workflow/lib/operationNames.js.map +1 -0
  398. package/dist-runtime/workflow/lib/parameters.d.ts +1 -1
  399. package/dist-runtime/workflow/lib/parameters.js +6 -22
  400. package/dist-runtime/workflow/lib/parameters.js.map +1 -1
  401. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js +18 -52
  402. package/dist-runtime/workflow/lib/pendingDeploymentReuse.js.map +1 -1
  403. package/dist-runtime/workflow/lib/pendingUupsBinding.d.ts +42 -0
  404. package/dist-runtime/workflow/lib/pendingUupsBinding.js +39 -0
  405. package/dist-runtime/workflow/lib/pendingUupsBinding.js.map +1 -0
  406. package/dist-runtime/workflow/lib/plan.d.ts +55 -0
  407. package/dist-runtime/workflow/lib/plan.js +324 -0
  408. package/dist-runtime/workflow/lib/plan.js.map +1 -0
  409. package/dist-runtime/workflow/lib/planCli.d.ts +14 -0
  410. package/dist-runtime/workflow/lib/planCli.js +279 -0
  411. package/dist-runtime/workflow/lib/planCli.js.map +1 -0
  412. package/dist-runtime/workflow/lib/preparationEvidence.d.ts +4 -0
  413. package/dist-runtime/workflow/lib/preparationEvidence.js +19 -0
  414. package/dist-runtime/workflow/lib/preparationEvidence.js.map +1 -0
  415. package/dist-runtime/workflow/lib/proxy.d.ts +3 -2
  416. package/dist-runtime/workflow/lib/proxy.js +3 -4
  417. package/dist-runtime/workflow/lib/proxy.js.map +1 -1
  418. package/dist-runtime/workflow/lib/runtime.d.ts +6 -0
  419. package/dist-runtime/workflow/lib/runtime.js +48 -0
  420. package/dist-runtime/workflow/lib/runtime.js.map +1 -0
  421. package/dist-runtime/workflow/lib/signer.d.ts +3 -2
  422. package/dist-runtime/workflow/lib/signer.js +18 -18
  423. package/dist-runtime/workflow/lib/signer.js.map +1 -1
  424. package/dist-runtime/workflow/lib/simulation.d.ts +13 -6
  425. package/dist-runtime/workflow/lib/simulation.js +39 -31
  426. package/dist-runtime/workflow/lib/simulation.js.map +1 -1
  427. package/dist-runtime/workflow/lib/state.js +3 -3
  428. package/dist-runtime/workflow/lib/state.js.map +1 -1
  429. package/dist-runtime/workflow/lib/staticValidation.d.ts +28 -0
  430. package/dist-runtime/workflow/lib/staticValidation.js +54 -10
  431. package/dist-runtime/workflow/lib/staticValidation.js.map +1 -1
  432. package/dist-runtime/workflow/lib/transactionPlanner.d.ts +62 -0
  433. package/dist-runtime/workflow/lib/transactionPlanner.js +258 -0
  434. package/dist-runtime/workflow/lib/transactionPlanner.js.map +1 -0
  435. package/dist-runtime/workflow/lib/typedValue.d.ts +3 -0
  436. package/dist-runtime/workflow/lib/typedValue.js +76 -0
  437. package/dist-runtime/workflow/lib/typedValue.js.map +1 -0
  438. package/dist-runtime/workflow/lib/validation.d.ts +23 -0
  439. package/dist-runtime/workflow/lib/validation.js +15 -0
  440. package/dist-runtime/workflow/lib/validation.js.map +1 -0
  441. package/dist-runtime/workflow/planAdd.d.ts +1 -0
  442. package/dist-runtime/workflow/planAdd.js +11 -0
  443. package/dist-runtime/workflow/planAdd.js.map +1 -0
  444. package/dist-runtime/workflow/planRead.d.ts +1 -0
  445. package/dist-runtime/workflow/planRead.js +11 -0
  446. package/dist-runtime/workflow/planRead.js.map +1 -0
  447. package/dist-runtime/workflow/planStatus.d.ts +1 -0
  448. package/dist-runtime/workflow/planStatus.js +11 -0
  449. package/dist-runtime/workflow/planStatus.js.map +1 -0
  450. package/dist-runtime/workflow/planWrite.d.ts +1 -0
  451. package/dist-runtime/workflow/planWrite.js +11 -0
  452. package/dist-runtime/workflow/planWrite.js.map +1 -0
  453. package/dist-runtime/workflow/run.d.ts +1 -40
  454. package/dist-runtime/workflow/run.js +68 -136
  455. package/dist-runtime/workflow/run.js.map +1 -1
  456. package/dist-runtime/workflow/staticValidate.js +8 -3
  457. package/dist-runtime/workflow/staticValidate.js.map +1 -1
  458. package/dist-runtime/workflow/steps/call.d.ts +1 -1
  459. package/dist-runtime/workflow/steps/check.d.ts +1 -1
  460. package/dist-runtime/workflow/steps/custom.d.ts +1 -1
  461. package/dist-runtime/workflow/steps/deploy.d.ts +1 -1
  462. package/dist-runtime/workflow/steps/deploy.js +57 -55
  463. package/dist-runtime/workflow/steps/deploy.js.map +1 -1
  464. package/dist-runtime/workflow/steps/upgrade.d.ts +1 -1
  465. package/dist-runtime/workflow/steps/upgrade.js +62 -41
  466. package/dist-runtime/workflow/steps/upgrade.js.map +1 -1
  467. package/dist-runtime/workflow/steps/view.d.ts +1 -1
  468. package/docs/compiler-qualification.md +32 -0
  469. package/docs/configuration-runtime-observation.md +29 -0
  470. package/docs/create2-miner.md +100 -0
  471. package/docs/delivery-aggregate.md +27 -0
  472. package/docs/delivery-custom-input-closure.md +51 -0
  473. package/docs/delivery-development.md +32 -0
  474. package/docs/delivery-eoa.md +46 -0
  475. package/docs/delivery-evm-manifest.md +20 -0
  476. package/docs/delivery-execution-store.md +33 -0
  477. package/docs/delivery-inputs.md +46 -0
  478. package/docs/delivery-parameters.md +65 -0
  479. package/docs/delivery-planning.md +140 -0
  480. package/docs/delivery-release.md +65 -0
  481. package/docs/delivery-safe.md +72 -0
  482. package/docs/delivery-setup.md +146 -0
  483. package/docs/delivery-source.md +67 -0
  484. package/docs/superpowers/plans/2026-09-24-scheme-aware-static-validation.md +193 -0
  485. package/docs/superpowers/plans/2026-10-28-create2-miner.md +82 -0
  486. package/package.json +133 -9
  487. package/resources/create2/LICENSE +21 -0
  488. package/resources/create2/README.md +9 -0
  489. package/resources/create2/darwin-arm64/smartflow_miner +0 -0
  490. package/resources/create2/darwin-x64/smartflow_miner +0 -0
  491. package/resources/create2/manifest.json +27 -0
  492. package/runtime/config/openzeppelin.ts +3 -21
  493. package/runtime/delivery/abi.ts +225 -0
  494. package/runtime/delivery/aggregate-bootstrap.ts +29 -0
  495. package/runtime/delivery/aggregate-channel.ts +85 -0
  496. package/runtime/delivery/aggregate-inputs.ts +39 -0
  497. package/runtime/delivery/aggregate-source.ts +53 -0
  498. package/runtime/delivery/aggregate-worker.ts +133 -0
  499. package/runtime/delivery/aggregate.ts +139 -0
  500. package/runtime/delivery/bindings.ts +37 -0
  501. package/runtime/delivery/check-code.ts +38 -0
  502. package/runtime/delivery/closure-format.ts +350 -0
  503. package/runtime/delivery/codec-pin.ts +3 -0
  504. package/runtime/delivery/codec.ts +50 -0
  505. package/runtime/delivery/compiler-dependency-pins.ts +1685 -0
  506. package/runtime/delivery/compiler-files.ts +179 -0
  507. package/runtime/delivery/compiler-io.ts +10 -0
  508. package/runtime/delivery/compiler-pins.ts +143 -0
  509. package/runtime/delivery/compiler.ts +700 -0
  510. package/runtime/delivery/config.ts +93 -0
  511. package/runtime/delivery/configuration-definition.ts +133 -0
  512. package/runtime/delivery/configuration-hre.ts +130 -0
  513. package/runtime/delivery/configuration-runtime.ts +163 -0
  514. package/runtime/delivery/configuration.ts +64 -0
  515. package/runtime/delivery/create2.ts +57 -0
  516. package/runtime/delivery/custom-closure.ts +993 -0
  517. package/runtime/delivery/custom-format.ts +464 -0
  518. package/runtime/delivery/custom.ts +219 -0
  519. package/runtime/delivery/data.ts +94 -0
  520. package/runtime/delivery/development.ts +262 -0
  521. package/runtime/delivery/engine.ts +29 -0
  522. package/runtime/delivery/eoa-observation.ts +106 -0
  523. package/runtime/delivery/eoa-signed.ts +55 -0
  524. package/runtime/delivery/eoa.ts +288 -0
  525. package/runtime/delivery/execution-db.ts +131 -0
  526. package/runtime/delivery/execution-files.ts +135 -0
  527. package/runtime/delivery/execution-model.ts +102 -0
  528. package/runtime/delivery/execution-store.ts +411 -0
  529. package/runtime/delivery/existing-code.ts +44 -0
  530. package/runtime/delivery/export.ts +99 -0
  531. package/runtime/delivery/forkAudit.ts +620 -0
  532. package/runtime/delivery/hardhat.ts +38 -0
  533. package/runtime/delivery/history-registration.ts +10 -0
  534. package/runtime/delivery/identities.ts +132 -0
  535. package/runtime/delivery/input-files.ts +46 -0
  536. package/runtime/delivery/inputs.ts +197 -0
  537. package/runtime/delivery/journal.ts +201 -0
  538. package/runtime/delivery/manifest.ts +54 -0
  539. package/runtime/delivery/materialization.ts +53 -0
  540. package/runtime/delivery/observations.ts +60 -0
  541. package/runtime/delivery/parameters.ts +349 -0
  542. package/runtime/delivery/pending.ts +98 -0
  543. package/runtime/delivery/plan.ts +337 -0
  544. package/runtime/delivery/planning.ts +397 -0
  545. package/runtime/delivery/policy.ts +9 -0
  546. package/runtime/delivery/preparation.ts +224 -0
  547. package/runtime/delivery/production-environment.ts +6 -0
  548. package/runtime/delivery/production-finalization.ts +172 -0
  549. package/runtime/delivery/production.ts +375 -0
  550. package/runtime/delivery/project-files.ts +58 -0
  551. package/runtime/delivery/project.ts +117 -0
  552. package/runtime/delivery/protocol.ts +94 -0
  553. package/runtime/delivery/references.ts +106 -0
  554. package/runtime/delivery/release-graph.ts +49 -0
  555. package/runtime/delivery/release-history-capture.ts +32 -0
  556. package/runtime/delivery/release-history.ts +120 -0
  557. package/runtime/delivery/release.ts +128 -0
  558. package/runtime/delivery/safe-manifest.ts +11 -0
  559. package/runtime/delivery/safe-observation.ts +626 -0
  560. package/runtime/delivery/safe-prepare.ts +101 -0
  561. package/runtime/delivery/safe.ts +344 -0
  562. package/runtime/delivery/same-fork-baseline.ts +16 -0
  563. package/runtime/delivery/setup.ts +172 -0
  564. package/runtime/delivery/source.ts +130 -0
  565. package/runtime/delivery/target-fields.ts +7 -0
  566. package/runtime/delivery/validation.ts +247 -0
  567. package/runtime/delivery/verification.ts +47 -0
  568. package/runtime/migrate.ts +1 -0
  569. package/runtime/miner/binary.ts +41 -0
  570. package/runtime/miner/cli.ts +87 -0
  571. package/runtime/miner/index.ts +5 -0
  572. package/runtime/miner/request.ts +54 -0
  573. package/runtime/miner/runner.ts +90 -0
  574. package/runtime/miner/types.ts +71 -0
  575. package/runtime/miner/verify.ts +61 -0
  576. package/runtime/vendor/plan-codec/index.cjs +820 -0
  577. package/runtime/vendor/plan-codec/index.d.cts +32 -0
  578. package/runtime/vendor/plan-codec/provenance.json +24 -0
  579. package/runtime/workflow/engine.ts +174 -0
  580. package/runtime/workflow/lib/authority.ts +3 -3
  581. package/runtime/workflow/lib/calls.ts +46 -37
  582. package/runtime/workflow/lib/canonicalData.ts +45 -0
  583. package/runtime/workflow/lib/config.ts +1 -1
  584. package/runtime/workflow/lib/context.ts +76 -0
  585. package/runtime/workflow/lib/create2.ts +10 -12
  586. package/runtime/workflow/lib/deployments.ts +6 -14
  587. package/runtime/workflow/lib/evidencePorts.ts +20 -0
  588. package/runtime/workflow/lib/executionPlan.ts +17 -268
  589. package/runtime/workflow/lib/gateTool.ts +20 -8
  590. package/runtime/workflow/lib/gateToolSync.ts +3 -3
  591. package/runtime/workflow/lib/operationNames.ts +32 -0
  592. package/runtime/workflow/lib/parameters.ts +4 -21
  593. package/runtime/workflow/lib/pendingDeploymentReuse.ts +4 -56
  594. package/runtime/workflow/lib/pendingUupsBinding.ts +43 -0
  595. package/runtime/workflow/lib/plan.ts +334 -0
  596. package/runtime/workflow/lib/planCli.ts +279 -0
  597. package/runtime/workflow/lib/preparationEvidence.ts +14 -0
  598. package/runtime/workflow/lib/proxy.ts +5 -3
  599. package/runtime/workflow/lib/runtime.ts +46 -0
  600. package/runtime/workflow/lib/signer.ts +8 -5
  601. package/runtime/workflow/lib/simulation.ts +41 -17
  602. package/runtime/workflow/lib/state.ts +3 -3
  603. package/runtime/workflow/lib/staticValidation.ts +92 -11
  604. package/runtime/workflow/lib/transactionPlanner.ts +314 -0
  605. package/runtime/workflow/lib/typedValue.ts +46 -0
  606. package/runtime/workflow/lib/validation.ts +50 -0
  607. package/runtime/workflow/planAdd.ts +8 -0
  608. package/runtime/workflow/planRead.ts +8 -0
  609. package/runtime/workflow/planStatus.ts +8 -0
  610. package/runtime/workflow/planWrite.ts +8 -0
  611. package/runtime/workflow/run.ts +41 -174
  612. package/runtime/workflow/staticValidate.ts +8 -3
  613. package/runtime/workflow/steps/call.ts +1 -1
  614. package/runtime/workflow/steps/check.ts +1 -1
  615. package/runtime/workflow/steps/custom.ts +1 -1
  616. package/runtime/workflow/steps/deploy.ts +57 -58
  617. package/runtime/workflow/steps/upgrade.ts +69 -46
  618. package/runtime/workflow/steps/view.ts +1 -1
@@ -0,0 +1,818 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.CustomModuleClosure = exports.parseCustomInputClosure = void 0;
7
+ exports.customBusinessRoot = customBusinessRoot;
8
+ exports.assertBusinessInput = assertBusinessInput;
9
+ const closure_format_1 = require("./closure-format");
10
+ var closure_format_2 = require("./closure-format");
11
+ Object.defineProperty(exports, "parseCustomInputClosure", { enumerable: true, get: function () { return closure_format_2.parseCustomInputClosure; } });
12
+ /** Bounded deterministic CJS input collector. Supported-code validation, not a hostile-code sandbox. */
13
+ const node_fs_1 = __importDefault(require("node:fs"));
14
+ const node_path_1 = __importDefault(require("node:path"));
15
+ const node_vm_1 = __importDefault(require("node:vm"));
16
+ const node_child_process_1 = require("node:child_process");
17
+ const node_crypto_1 = require("node:crypto");
18
+ const typescript_1 = __importDefault(require("typescript"));
19
+ const project_files_1 = require("./project-files");
20
+ const data_1 = require("./data");
21
+ const input_files_1 = require("./input-files");
22
+ const protocol_1 = require("./protocol");
23
+ const canonicalData_1 = require("../workflow/lib/canonicalData");
24
+ const hash = (bytes) => (0, node_crypto_1.createHash)("sha256").update(bytes).digest("hex");
25
+ const portable = (name) => name.split(node_path_1.default.sep).join("/");
26
+ const compare = (a, b) => (a < b ? -1 : a > b ? 1 : 0);
27
+ const extensions = [".ts", ".cts", ".js", ".cjs", ".json"];
28
+ const policy = "gate-custom-cjs@1";
29
+ /** Validate before normalization; only the supplied project root and its realpath are aliases. */
30
+ function customBusinessRoot(root, businessRoot) {
31
+ if (typeof businessRoot !== "string" ||
32
+ !node_path_1.default.isAbsolute(businessRoot) ||
33
+ businessRoot.includes("\\") ||
34
+ businessRoot.split(node_path_1.default.sep).some((part) => part === "." || part === ".."))
35
+ throw new Error("Unsafe custom business root directory");
36
+ const canonicalRoot = node_fs_1.default.realpathSync(root);
37
+ const base = node_path_1.default.resolve(businessRoot);
38
+ const alias = [node_path_1.default.resolve(root), canonicalRoot].find((candidate) => base === candidate || base.startsWith(candidate + node_path_1.default.sep));
39
+ if (!alias)
40
+ throw new Error("Custom business root must be confined to the project");
41
+ const relative = portable(node_path_1.default.relative(alias, base));
42
+ // A not-yet-created task directory is valid when the script uses no file ports.
43
+ return relative
44
+ ? (0, project_files_1.confinedFile)(canonicalRoot, relative, "directory")
45
+ : canonicalRoot;
46
+ }
47
+ const runtimeOptions = closure_format_1.closureRuntimeOptions;
48
+ const ambient = new Set([
49
+ "process",
50
+ "global",
51
+ "globalThis",
52
+ "window",
53
+ "self",
54
+ "document",
55
+ "Deno",
56
+ "Bun",
57
+ "Date",
58
+ "performance",
59
+ "crypto",
60
+ "fetch",
61
+ "WebSocket",
62
+ "XMLHttpRequest",
63
+ "Worker",
64
+ "SharedArrayBuffer",
65
+ "Atomics",
66
+ "Buffer",
67
+ "console",
68
+ "setTimeout",
69
+ "setInterval",
70
+ "setImmediate",
71
+ "queueMicrotask",
72
+ "eval",
73
+ "Function",
74
+ "AsyncFunction",
75
+ "WebAssembly",
76
+ "createRequire",
77
+ "__dirname",
78
+ "__filename",
79
+ "Intl",
80
+ "Reflect",
81
+ "Proxy",
82
+ "WeakRef",
83
+ "FinalizationRegistry",
84
+ ]);
85
+ const forbiddenMembers = new Set([
86
+ "constructor",
87
+ "__proto__",
88
+ "getPrototypeOf",
89
+ "setPrototypeOf",
90
+ "getOwnPropertyDescriptor",
91
+ "getOwnPropertyDescriptors",
92
+ "random",
93
+ "stack",
94
+ "captureStackTrace",
95
+ "prepareStackTrace",
96
+ ]);
97
+ /** Same restrictions for business ports and project imports: config/provenance is a separate future projection. */
98
+ function assertBusinessInput(relative, packageCode = false) {
99
+ (0, protocol_1.portablePath)(relative, "business input path");
100
+ if (/[*?\[\]{}]/.test(relative))
101
+ throw new Error("Unsupported directory/glob business input");
102
+ if (relative
103
+ .split("/")
104
+ .some((segment) => /^(?:\.env.*|\.npmrc(?:\..*)?|\.yarnrc(?:\..*)?|\.git|\.ssh|\.aws|\.openzeppelin(?:\..*)?|keys?|keystores?|credentials?|secrets?|wallets?|results?|reports?|status|releases?|candidates?|handoffs?|manifests?)(?:\..*)?$/i.test(segment) ||
105
+ /^(?:contractInfo|deploymentInfo|state|release|pending|handoff|manifest|status|private[-_]?keys?|package-lock|npm-shrinkwrap|yarn\.lock|pnpm-lock|deploy(?:ment)?[-_.]?(?:config|settings)|\.gate-template|hardhat\.config|foundry)(?:\..*)?$/i.test(segment) ||
106
+ /\.(?:pem|key|p12|pfx)$/i.test(segment) ||
107
+ (!packageCode &&
108
+ /^(?:artifacts?|cache|dist(?:-.*)?|node_modules|config|configs|deployments?)(?:\..*)?$/i.test(segment))))
109
+ throw new Error("Business input cannot access sensitive, generated-state or private config paths");
110
+ }
111
+ function packageName(specifier) {
112
+ const parts = specifier.split("/");
113
+ return specifier.startsWith("@") ? parts.slice(0, 2).join("/") : parts[0];
114
+ }
115
+ function propertyText(node) {
116
+ if (typescript_1.default.isComputedPropertyName(node))
117
+ return propertyText(node.expression);
118
+ return typescript_1.default.isIdentifier(node) ||
119
+ typescript_1.default.isStringLiteral(node) ||
120
+ typescript_1.default.isNumericLiteral(node)
121
+ ? node.text
122
+ : "";
123
+ }
124
+ function staticEdges(source, name) {
125
+ const ast = typescript_1.default.createSourceFile(name, source, typescript_1.default.ScriptTarget.Latest, true, name.endsWith(".ts") || name.endsWith(".cts")
126
+ ? typescript_1.default.ScriptKind.TS
127
+ : typescript_1.default.ScriptKind.JS);
128
+ if (ast
129
+ .parseDiagnostics.length)
130
+ throw new Error(`Unsupported module syntax: ${name}`);
131
+ const edges = new Set();
132
+ const literal = (node) => {
133
+ if (!node || !typescript_1.default.isStringLiteral(node))
134
+ throw new Error(`Unsupported nonliteral loader: ${name}`);
135
+ edges.add(node.text);
136
+ };
137
+ const visit = (node) => {
138
+ // Transpile-only type edges are deliberately absent from the runtime graph.
139
+ if (typescript_1.default.isTypeNode(node) ||
140
+ typescript_1.default.isInterfaceDeclaration(node) ||
141
+ typescript_1.default.isTypeAliasDeclaration(node))
142
+ return;
143
+ if (typescript_1.default.isImportDeclaration(node)) {
144
+ const clause = node.importClause;
145
+ if (clause?.isTypeOnly ||
146
+ (clause &&
147
+ !clause.name &&
148
+ clause.namedBindings &&
149
+ typescript_1.default.isNamedImports(clause.namedBindings) &&
150
+ clause.namedBindings.elements.every((e) => e.isTypeOnly)))
151
+ return;
152
+ literal(node.moduleSpecifier);
153
+ return;
154
+ }
155
+ if (typescript_1.default.isExportDeclaration(node)) {
156
+ if (node.isTypeOnly ||
157
+ (node.exportClause &&
158
+ typescript_1.default.isNamedExports(node.exportClause) &&
159
+ node.exportClause.elements.length > 0 &&
160
+ node.exportClause.elements.every((e) => e.isTypeOnly)))
161
+ return;
162
+ if (node.moduleSpecifier)
163
+ literal(node.moduleSpecifier);
164
+ return;
165
+ }
166
+ if (typescript_1.default.isImportEqualsDeclaration(node)) {
167
+ if (node.isTypeOnly)
168
+ return;
169
+ if (!typescript_1.default.isExternalModuleReference(node.moduleReference))
170
+ throw new Error(`Unsupported import alias: ${name}`);
171
+ literal(node.moduleReference.expression);
172
+ return;
173
+ }
174
+ if (typescript_1.default.isCallExpression(node) &&
175
+ node.expression.kind === typescript_1.default.SyntaxKind.ImportKeyword)
176
+ throw new Error(`Unsupported runtime import loader: ${name}`);
177
+ if (typescript_1.default.isIdentifier(node)) {
178
+ if (ambient.has(node.text))
179
+ throw new Error(`Unsupported ambient capability ${node.text}: ${name}`);
180
+ if (node.text === "require") {
181
+ const p = node.parent;
182
+ if (!typescript_1.default.isCallExpression(p) ||
183
+ p.expression !== node ||
184
+ p.arguments.length !== 1)
185
+ throw new Error(`Unsupported require loader access: ${name}`);
186
+ literal(p.arguments[0]);
187
+ }
188
+ if (node.text === "module" &&
189
+ !(typescript_1.default.isPropertyAccessExpression(node.parent) &&
190
+ node.parent.expression === node &&
191
+ node.parent.name.text === "exports"))
192
+ throw new Error(`Unsupported module loader access: ${name}`);
193
+ }
194
+ if ((typescript_1.default.isElementAccessExpression(node) &&
195
+ !typescript_1.default.isStringLiteral(node.argumentExpression) &&
196
+ !typescript_1.default.isNumericLiteral(node.argumentExpression)) ||
197
+ (typescript_1.default.isComputedPropertyName(node) &&
198
+ ((!typescript_1.default.isStringLiteral(node.expression) &&
199
+ !typescript_1.default.isNumericLiteral(node.expression)) ||
200
+ forbiddenMembers.has(propertyText(node)))) ||
201
+ (typescript_1.default.isBindingElement(node) &&
202
+ forbiddenMembers.has(propertyText(node.propertyName ?? node.name))))
203
+ throw new Error(`Unsupported dynamic reflective access: ${name}`);
204
+ if ((typescript_1.default.isPropertyAccessExpression(node) &&
205
+ forbiddenMembers.has(node.name.text)) ||
206
+ (typescript_1.default.isElementAccessExpression(node) &&
207
+ node.argumentExpression &&
208
+ typescript_1.default.isStringLiteral(node.argumentExpression) &&
209
+ forbiddenMembers.has(node.argumentExpression.text)))
210
+ throw new Error(`Unsupported reflective or ambient access: ${name}`);
211
+ typescript_1.default.forEachChild(node, visit);
212
+ };
213
+ visit(ast);
214
+ return [...edges].sort();
215
+ }
216
+ /** A fresh Node process avoids require.resolve's path and package-json caches during drift checks. */
217
+ function nodeResolve(root, importer, specifier) {
218
+ const output = (0, node_child_process_1.spawnSync)(process.execPath, [
219
+ "--preserve-symlinks",
220
+ "-e",
221
+ `const fs=require('node:fs'),{createRequire}=require('node:module');const q=JSON.parse(fs.readFileSync(0,'utf8'));try{process.stdout.write(createRequire(q.importer).resolve(q.specifier))}catch{process.exitCode=1}`,
222
+ ], {
223
+ cwd: root,
224
+ env: {},
225
+ input: JSON.stringify({ importer, specifier }),
226
+ encoding: "utf8",
227
+ timeout: 10000,
228
+ maxBuffer: 1024 * 1024,
229
+ });
230
+ if (output.status !== 0 || !node_path_1.default.isAbsolute(output.stdout))
231
+ throw new Error("Unsupported ambient package or missing Node CJS resolution");
232
+ return output.stdout;
233
+ }
234
+ function validateHost(root) {
235
+ if (process.env.NODE_PATH ||
236
+ process.env.NODE_OPTIONS ||
237
+ Object.keys(process.env).some((k) => k.startsWith("TS_NODE_")))
238
+ throw new Error("Unsupported ambient loader environment");
239
+ const args = process.execArgv;
240
+ // Node's test runner may pass only test-related switches, which do not install loaders.
241
+ const relevant = args.filter((a) => !/^--test(?:=|$|-)/.test(a));
242
+ if (!relevant.length)
243
+ return { kind: "isolated-cjs", preload: null, packages: [] };
244
+ if (relevant.length !== 2 ||
245
+ !["-r", "--require"].includes(relevant[0]) ||
246
+ relevant[1] !== "ts-node/register")
247
+ throw new Error("Unsupported preload, loader or conditions");
248
+ try {
249
+ const packages = [];
250
+ const lock = JSON.parse(node_fs_1.default.readFileSync((0, project_files_1.confinedFile)(root, "package-lock.json"), "utf8"));
251
+ for (const [name, version] of [
252
+ ["ts-node", "10.9.2"],
253
+ ["hardhat", "2.26.3"],
254
+ ]) {
255
+ const bytes = node_fs_1.default.readFileSync((0, project_files_1.confinedFile)(root, `node_modules/${name}/package.json`));
256
+ const metadata = JSON.parse(bytes.toString("utf8"));
257
+ const locked = lock.packages?.[`node_modules/${name}`];
258
+ if (![2, 3].includes(lock.lockfileVersion) ||
259
+ metadata.name !== name ||
260
+ metadata.version !== version ||
261
+ locked?.version !== version ||
262
+ locked?.link)
263
+ throw new Error();
264
+ packages.push({ name, version, metadataDigest: hash(bytes) });
265
+ }
266
+ const actual = nodeResolve(root, node_path_1.default.join(root, "package.json"), "ts-node/register");
267
+ if (actual !== (0, project_files_1.confinedFile)(root, "node_modules/ts-node/register/index.js") ||
268
+ !require.cache[actual]?.loaded)
269
+ throw new Error();
270
+ if (process.env.HARDHAT_TSCONFIG &&
271
+ node_path_1.default.resolve(process.env.HARDHAT_TSCONFIG) !==
272
+ node_path_1.default.join(root, "tsconfig.json"))
273
+ throw new Error();
274
+ return {
275
+ kind: "hardhat-2.26.3-ts-node-10.9.2",
276
+ preload: {
277
+ path: "node_modules/ts-node/register/index.js",
278
+ digest: hash(node_fs_1.default.readFileSync(actual)),
279
+ },
280
+ packages,
281
+ };
282
+ }
283
+ catch {
284
+ throw new Error("Unsupported pinned Hardhat preload adapter identity/location");
285
+ }
286
+ }
287
+ class CustomModuleClosure {
288
+ #root;
289
+ #inputRoot;
290
+ #files = new Map();
291
+ #edges = new Map();
292
+ #packages = new Map();
293
+ #roots = new Set();
294
+ #failure;
295
+ #absent = new Set();
296
+ #cache = new Map();
297
+ #context = node_vm_1.default.createContext(Object.create(null), {
298
+ codeGeneration: { strings: false, wasm: false },
299
+ });
300
+ #realm;
301
+ #options = { ...runtimeOptions };
302
+ #adapter;
303
+ #config = null;
304
+ constructor(root) {
305
+ if (typescript_1.default.version !== "5.9.3")
306
+ throw new Error("Unsupported custom TypeScript compiler version");
307
+ this.#inputRoot = node_path_1.default.resolve(root);
308
+ this.#root = node_fs_1.default.realpathSync(root);
309
+ this.#adapter = validateHost(this.#root);
310
+ this.#realm = node_vm_1.default.runInContext("({object:Object.prototype,array:Array.prototype})", this.#context);
311
+ node_vm_1.default.runInContext('Object.defineProperty(Math,"random",{value:undefined});Object.freeze(Math);', this.#context);
312
+ this.#readConfig();
313
+ }
314
+ #relative(file) {
315
+ const relative = portable(node_path_1.default.relative(this.#root, file));
316
+ (0, protocol_1.portablePath)(relative, "confined module path");
317
+ return relative;
318
+ }
319
+ #file(relative) {
320
+ return (0, project_files_1.confinedFile)(this.#root, relative);
321
+ }
322
+ #capture(relative, kind) {
323
+ const bytes = node_fs_1.default.readFileSync(this.#file(relative));
324
+ const previous = this.#files.get(relative);
325
+ if (previous) {
326
+ if (hash(bytes) !== previous.identity.digest)
327
+ throw new Error(`Custom input changed during session: ${relative}`);
328
+ if (kind === "module" ||
329
+ kind === "json" ||
330
+ (kind === "config" && previous.identity.kind === "metadata"))
331
+ previous.identity.kind = kind;
332
+ return previous;
333
+ }
334
+ const captured = {
335
+ identity: {
336
+ path: relative,
337
+ kind,
338
+ digest: hash(bytes),
339
+ emittedDigest: null,
340
+ },
341
+ bytes,
342
+ };
343
+ this.#files.set(relative, captured);
344
+ return captured;
345
+ }
346
+ #metadata(relative) {
347
+ try {
348
+ return (0, data_1.strictData)(JSON.parse(this.#capture(relative, "metadata").bytes.toString("utf8")));
349
+ }
350
+ catch {
351
+ throw new Error("Invalid package metadata");
352
+ }
353
+ }
354
+ #sourceFormat(relative) {
355
+ let dir = node_path_1.default.posix.dirname(relative);
356
+ while (true) {
357
+ const name = dir === "." ? "package.json" : `${dir}/package.json`;
358
+ if ((0, project_files_1.stat)(this.#file(name))) {
359
+ const metadata = this.#metadata(name);
360
+ if ((relative.endsWith(".js") || relative.endsWith(".ts")) &&
361
+ metadata.type === "module")
362
+ throw new Error("Unsupported native ESM source format");
363
+ break;
364
+ }
365
+ this.#absent.add(name);
366
+ if (dir === ".")
367
+ break;
368
+ dir = node_path_1.default.posix.dirname(dir);
369
+ }
370
+ }
371
+ #packageFor(relative) {
372
+ const parts = relative.split("/");
373
+ const i = parts.lastIndexOf("node_modules");
374
+ if (i < 0)
375
+ return null;
376
+ const count = parts[i + 1]?.startsWith("@") ? 3 : 2;
377
+ if (parts.length <= i + count)
378
+ throw new Error("Invalid package runtime path");
379
+ return parts.slice(0, i + count).join("/");
380
+ }
381
+ #payload(location) {
382
+ const entries = [];
383
+ const walk = (dir) => {
384
+ for (const name of node_fs_1.default
385
+ .readdirSync((0, project_files_1.confinedFile)(this.#root, `${location}${dir ? "/" + dir : ""}`, "directory"))
386
+ .sort()) {
387
+ if (name === "node_modules")
388
+ continue; // Independently resolved nested packages; never merge identities.
389
+ const relative = dir ? `${dir}/${name}` : name;
390
+ const info = (0, project_files_1.stat)(node_path_1.default.join(this.#root, location, relative));
391
+ if (info.isSymbolicLink())
392
+ throw new Error("Unsafe symlink in package payload");
393
+ if (info.isDirectory())
394
+ walk(relative);
395
+ else {
396
+ const file = this.#file(`${location}/${relative}`);
397
+ if (name.endsWith(".node"))
398
+ throw new Error("Unsupported native package payload");
399
+ entries.push({ path: relative, digest: hash(node_fs_1.default.readFileSync(file)) });
400
+ }
401
+ }
402
+ };
403
+ walk("");
404
+ return entries.sort((a, b) => compare(a.path, b.path));
405
+ }
406
+ #package(location) {
407
+ const metadata = this.#metadata(`${location}/package.json`);
408
+ let lock;
409
+ try {
410
+ lock = (0, data_1.strictData)(JSON.parse(node_fs_1.default.readFileSync(this.#file("package-lock.json"), "utf8")));
411
+ }
412
+ catch {
413
+ throw new Error("Custom packages require a local npm lock v2/v3");
414
+ }
415
+ if (![2, 3].includes(lock.lockfileVersion) ||
416
+ !lock.packages ||
417
+ typeof lock.packages !== "object")
418
+ throw new Error("Unsupported npm lock");
419
+ const entry = Object.getOwnPropertyDescriptor(lock.packages, location)?.value;
420
+ const installedName = location
421
+ .split("/node_modules/")
422
+ .at(-1)
423
+ .replace(/^node_modules\//, "");
424
+ if (!entry ||
425
+ entry.link ||
426
+ entry.extraneous ||
427
+ typeof metadata.name !== "string" ||
428
+ metadata.name !== installedName ||
429
+ (entry.name !== undefined && entry.name !== metadata.name) ||
430
+ entry.version !== metadata.version ||
431
+ typeof metadata.version !== "string" ||
432
+ !/^\d+\.\d+\.\d+(?:-[\w.-]+)?(?:\+[\w.-]+)?$/.test(metadata.version))
433
+ throw new Error("Package lock identity/version mismatch or extraneous package");
434
+ if (typeof entry.integrity !== "string" ||
435
+ !/^sha(?:256|384|512)-[A-Za-z0-9+/]+={0,2}$/.test(entry.integrity) ||
436
+ Buffer.from(entry.integrity.split("-")[1], "base64").length !==
437
+ Number(entry.integrity.slice(3).split("-")[0]) / 8 ||
438
+ typeof entry.resolved !== "string")
439
+ throw new Error("Package requires locked source integrity");
440
+ const tarball = /^file:.*\.tgz$/.test(entry.resolved);
441
+ if (!tarball && !/^https?:\/\//.test(entry.resolved))
442
+ throw new Error("Unsupported package source: directory/workspace links are not supported");
443
+ const resolution = Object.fromEntries(["type", "main", "exports", "imports"]
444
+ .filter((k) => Object.hasOwn(metadata, k))
445
+ .map((k) => [k, metadata[k]]));
446
+ const payload = this.#payload(location);
447
+ const result = {
448
+ lockLocation: location,
449
+ name: metadata.name,
450
+ version: metadata.version,
451
+ integrity: entry.integrity,
452
+ // Never serialize URLs or local tarball paths; installed payload and tarball SRI are separate identities.
453
+ source: {
454
+ kind: tarball ? "tarball" : "registry",
455
+ identity: tarball ? hash(entry.integrity) : hash(entry.resolved),
456
+ },
457
+ metadataDigest: this.#files.get(`${location}/package.json`).identity
458
+ .digest,
459
+ resolution,
460
+ payload,
461
+ payloadDigest: (0, canonicalData_1.semanticHash)(payload),
462
+ };
463
+ const previous = this.#packages.get(location);
464
+ if (previous && (0, canonicalData_1.canonicalJson)(previous) !== (0, canonicalData_1.canonicalJson)(result))
465
+ throw new Error(`Package payload/lock drift: ${location}`);
466
+ this.#packages.set(location, result);
467
+ return result;
468
+ }
469
+ #resolve(importer, specifier, kind) {
470
+ if (!specifier ||
471
+ specifier.includes("\\") ||
472
+ specifier.startsWith("#") ||
473
+ node_path_1.default.isAbsolute(specifier) ||
474
+ /^[a-zA-Z][a-zA-Z\d+.-]*:/.test(specifier))
475
+ throw new Error("Unsupported loader specifier");
476
+ if (specifier.startsWith(".")) {
477
+ const base = this.#relative(node_path_1.default.resolve(this.#root, node_path_1.default.posix.dirname(importer), specifier));
478
+ const importerPackage = this.#packageFor(importer);
479
+ assertBusinessInput(base, !!importerPackage);
480
+ if (importerPackage) {
481
+ const selected = this.#relative(nodeResolve(this.#root, node_path_1.default.join(this.#root, importer), specifier));
482
+ const location = this.#packageFor(selected);
483
+ if (!location)
484
+ throw new Error("Unsupported package relative resolution escape");
485
+ this.#file(selected);
486
+ this.#package(location);
487
+ return selected;
488
+ }
489
+ const candidates = node_path_1.default.posix.extname(base)
490
+ ? [base]
491
+ : [
492
+ base,
493
+ ...extensions.map((ext) => base + ext),
494
+ ...extensions.map((ext) => `${base}/index${ext}`),
495
+ ];
496
+ const present = candidates.filter((name) => {
497
+ const info = (0, project_files_1.stat)(node_path_1.default.join(this.#root, name));
498
+ if (!info)
499
+ return false;
500
+ if (info.isDirectory()) {
501
+ (0, project_files_1.confinedFile)(this.#root, name, "directory");
502
+ return false;
503
+ }
504
+ this.#file(name);
505
+ return info.isFile();
506
+ });
507
+ if (present.length !== 1)
508
+ throw new Error(`Missing or ambiguous runtime target: ${importer}`);
509
+ return present[0];
510
+ }
511
+ if (specifier.split("/").some((p) => !p || p === "." || p === "..") ||
512
+ !/^(@[A-Za-z0-9._-]+\/)?[A-Za-z0-9_-][A-Za-z0-9._-]*(\/.*)?$/.test(specifier))
513
+ throw new Error("Unsupported package specifier");
514
+ const selected = this.#relative(nodeResolve(this.#root, node_path_1.default.join(this.#root, importer), specifier));
515
+ const location = this.#packageFor(selected);
516
+ if (!location || !selected.startsWith(location + "/"))
517
+ throw new Error("Unsupported ancestor/global package resolution");
518
+ this.#file(selected);
519
+ const metadata = this.#package(location);
520
+ if (metadata.name !== packageName(specifier))
521
+ throw new Error("Package resolution identity mismatch");
522
+ if (kind === "runtime" &&
523
+ (selected.endsWith(".mjs") ||
524
+ selected.endsWith(".node") ||
525
+ (selected.endsWith(".js") && metadata.resolution.type === "module")))
526
+ throw new Error("Unsupported native ESM or addon package");
527
+ return selected;
528
+ }
529
+ #edge(importer, specifier, kind) {
530
+ const target = this.#resolve(importer, specifier, kind);
531
+ const key = (0, canonicalData_1.canonicalJson)([importer, specifier, kind]);
532
+ const previous = this.#edges.get(key);
533
+ if (previous && previous.target !== target)
534
+ throw new Error("Custom resolution drift");
535
+ this.#edges.set(key, { importer, specifier, target, kind });
536
+ return target;
537
+ }
538
+ #readConfig() {
539
+ const rootConfig = "tsconfig.json";
540
+ const active = new Set();
541
+ const read = (name) => {
542
+ assertBusinessInput(name, true);
543
+ const location = this.#packageFor(name);
544
+ if (location)
545
+ this.#package(location);
546
+ if (active.has(name))
547
+ throw new Error("Unsupported tsconfig extends cycle");
548
+ active.add(name);
549
+ const raw = typescript_1.default.parseConfigFileTextToJson(name, this.#capture(name, "config").bytes.toString("utf8"));
550
+ if (raw.error)
551
+ throw new Error("Invalid tsconfig JSONC");
552
+ const value = (0, data_1.strictData)(raw.config);
553
+ if (Object.hasOwn(value, "ts-node") || Object.hasOwn(value, "plugins"))
554
+ throw new Error("Unsupported tsconfig loader hooks");
555
+ let inherited = {};
556
+ if (value.extends !== undefined) {
557
+ if (typeof value.extends !== "string")
558
+ throw new Error("Unsupported tsconfig extends");
559
+ const spec = value.extends;
560
+ const parent = spec.startsWith(".")
561
+ ? this.#relative(node_path_1.default.resolve(this.#root, node_path_1.default.posix.dirname(name), spec.endsWith(".json") ? spec : spec + ".json"))
562
+ : this.#edge(name, spec, "config");
563
+ if (spec.startsWith(".")) {
564
+ this.#edges.set((0, canonicalData_1.canonicalJson)([name, spec, "config"]), {
565
+ importer: name,
566
+ specifier: spec,
567
+ target: parent,
568
+ kind: "config",
569
+ });
570
+ }
571
+ inherited = read(parent);
572
+ }
573
+ const options = value.compilerOptions ?? {};
574
+ if (!options || typeof options !== "object" || Array.isArray(options))
575
+ throw new Error("Invalid compiler options");
576
+ for (const key of [
577
+ "baseUrl",
578
+ "paths",
579
+ "rootDirs",
580
+ "plugins",
581
+ "customConditions",
582
+ "moduleSuffixes",
583
+ "outFile",
584
+ "jsx",
585
+ "jsxFactory",
586
+ "jsxImportSource",
587
+ "experimentalDecorators",
588
+ "emitDecoratorMetadata",
589
+ "importHelpers",
590
+ "noResolve",
591
+ ])
592
+ if (Object.hasOwn(options, key))
593
+ throw new Error(`Unsupported runtime compiler option/alias: ${key}`);
594
+ active.delete(name);
595
+ return { ...inherited, ...options };
596
+ };
597
+ if ((0, project_files_1.stat)(this.#file(rootConfig))) {
598
+ this.#config = rootConfig;
599
+ const options = read(rootConfig);
600
+ const parsed = typescript_1.default.convertCompilerOptionsFromJson(options, ".");
601
+ if (parsed.errors.length)
602
+ throw new Error("Unsupported or invalid tsconfig options");
603
+ if (parsed.options.module !== undefined &&
604
+ ![
605
+ typescript_1.default.ModuleKind.CommonJS,
606
+ typescript_1.default.ModuleKind.Node16,
607
+ typescript_1.default.ModuleKind.NodeNext,
608
+ ].includes(parsed.options.module))
609
+ throw new Error("Unsupported runtime module option");
610
+ if (parsed.options.target !== undefined)
611
+ this.#options.target = parsed.options.target;
612
+ if (parsed.options.esModuleInterop !== undefined)
613
+ this.#options.esModuleInterop = parsed.options.esModuleInterop;
614
+ if (parsed.options.useDefineForClassFields !== undefined)
615
+ this.#options.useDefineForClassFields =
616
+ parsed.options.useDefineForClassFields;
617
+ }
618
+ else
619
+ this.#absent.add(rootConfig);
620
+ }
621
+ #collect(relative) {
622
+ if (this.#files.get(relative)?.identity.kind === "module" ||
623
+ this.#files.get(relative)?.identity.kind === "json")
624
+ return;
625
+ const location = this.#packageFor(relative);
626
+ assertBusinessInput(location ? relative.slice(location.length + 1) : relative, !!location);
627
+ if (location)
628
+ this.#package(location);
629
+ const ext = node_path_1.default.posix.extname(relative);
630
+ if (!extensions.includes(ext) || /\.d\.(?:ts|cts)$/.test(relative))
631
+ throw new Error("Unsupported runtime module extension");
632
+ if (location && [".ts", ".cts"].includes(ext))
633
+ throw new Error("Unsupported package TypeScript runtime adapter");
634
+ this.#sourceFormat(relative);
635
+ const captured = this.#capture(relative, ext === ".json" ? "json" : "module");
636
+ if (ext === ".json") {
637
+ (0, input_files_1.parseInputDocument)(captured.bytes, 'json');
638
+ return;
639
+ }
640
+ const dependencies = staticEdges(captured.bytes.toString("utf8"), relative);
641
+ const emitted = typescript_1.default.transpileModule(captured.bytes.toString("utf8"), {
642
+ compilerOptions: this.#options,
643
+ fileName: relative,
644
+ reportDiagnostics: true,
645
+ });
646
+ if (emitted.diagnostics?.some((d) => d.category === typescript_1.default.DiagnosticCategory.Error))
647
+ throw new Error(`Unsupported transpilation: ${relative}`);
648
+ captured.emitted = emitted.outputText;
649
+ captured.identity.emittedDigest = hash(emitted.outputText);
650
+ for (const specifier of dependencies)
651
+ this.#collect(this.#edge(relative, specifier, "runtime"));
652
+ }
653
+ #load(relative) {
654
+ const previous = this.#cache.get(relative);
655
+ if (previous)
656
+ return previous.exports; // Node CJS cycle semantics: publish partial exports before evaluation.
657
+ const captured = this.#files.get(relative);
658
+ const module = { exports: {} };
659
+ this.#cache.set(relative, module);
660
+ try {
661
+ if (captured.identity.kind === "json")
662
+ module.exports = (0, canonicalData_1.deepFreeze)((0, input_files_1.parseInputDocument)(captured.bytes, 'json'));
663
+ else {
664
+ const ownedRequire = (specifier) => {
665
+ const edge = this.#edges.get((0, canonicalData_1.canonicalJson)([relative, specifier, "runtime"]));
666
+ if (!edge)
667
+ throw new Error("Unsupported uncaptured loader access");
668
+ return this.#load(edge.target);
669
+ };
670
+ const wrapper = new node_vm_1.default.Script(`(function(exports,module,require){"use strict";\n${captured.emitted}\n})`, { filename: relative }).runInContext(this.#context);
671
+ wrapper(module.exports, module, ownedRequire);
672
+ }
673
+ return module.exports;
674
+ }
675
+ catch (error) {
676
+ // CJS retries failed initializers, retaining any successfully loaded dependencies.
677
+ this.#cache.delete(relative);
678
+ throw error;
679
+ }
680
+ }
681
+ /** Normalize only this collector's own VM prototypes; never invoke getters or toJSON. */
682
+ normalize(raw) {
683
+ const active = new Set();
684
+ const visit = (value) => {
685
+ if (value === null ||
686
+ typeof value === "string" ||
687
+ typeof value === "boolean" ||
688
+ (typeof value === "number" && Number.isSafeInteger(value)))
689
+ return value;
690
+ if (!value ||
691
+ typeof value !== "object" ||
692
+ active.has(value) ||
693
+ Object.getOwnPropertySymbols(value).length)
694
+ throw new Error("Custom result requires acyclic own JSON data");
695
+ const array = Array.isArray(value), proto = Object.getPrototypeOf(value);
696
+ if (!(array
697
+ ? [this.#realm.array, Array.prototype]
698
+ : [this.#realm.object, Object.prototype, null]).includes(proto))
699
+ throw new Error("Custom result requires plain own data");
700
+ const keys = Object.getOwnPropertyNames(value);
701
+ if (array &&
702
+ (keys.length !== value.length + 1 ||
703
+ keys.some((k) => k !== "length" &&
704
+ (!/^(0|[1-9][0-9]*)$/.test(k) || Number(k) >= value.length))))
705
+ throw new Error("Custom result requires dense own array data");
706
+ active.add(value);
707
+ const out = array ? [] : {};
708
+ for (const key of keys) {
709
+ if (array && key === "length")
710
+ continue;
711
+ const d = Object.getOwnPropertyDescriptor(value, key);
712
+ if (!d.enumerable || !("value" in d))
713
+ throw new Error("Custom result requires enumerable own data");
714
+ Object.defineProperty(out, key, {
715
+ value: visit(d.value),
716
+ enumerable: true,
717
+ writable: true,
718
+ configurable: true,
719
+ });
720
+ }
721
+ active.delete(value);
722
+ return out;
723
+ };
724
+ return (0, data_1.strictData)(visit(raw));
725
+ }
726
+ #readsClosed = false;
727
+ closeReads() { this.#readsClosed = true; }
728
+ load(relative) {
729
+ try {
730
+ if (this.#readsClosed)
731
+ throw new Error("Custom input reads closed");
732
+ (0, protocol_1.portablePath)(relative, "custom module");
733
+ this.assertUnchanged();
734
+ this.#collect(relative);
735
+ this.#roots.add(relative);
736
+ return {
737
+ module: this.#load(relative),
738
+ identity: {
739
+ path: relative,
740
+ digest: this.#files.get(relative).identity.digest,
741
+ },
742
+ };
743
+ }
744
+ catch (error) {
745
+ this.#failure =
746
+ error instanceof Error
747
+ ? error
748
+ : new Error("Unsupported module evaluation");
749
+ throw error;
750
+ }
751
+ }
752
+ readData(root, relative) {
753
+ if (this.#readsClosed)
754
+ throw new Error("Custom input reads closed");
755
+ assertBusinessInput(relative);
756
+ const base = customBusinessRoot(this.#inputRoot, root);
757
+ const name = portable(node_path_1.default.relative(this.#root, node_path_1.default.join(base, relative)));
758
+ (0, protocol_1.portablePath)(name, "business input");
759
+ assertBusinessInput(name);
760
+ return {
761
+ bytes: Buffer.from(this.#capture(name, "data").bytes),
762
+ path: name,
763
+ };
764
+ }
765
+ assertUnchanged() {
766
+ if (this.#failure)
767
+ throw new Error(`Custom closure collection failed: ${this.#failure.message}`);
768
+ if ((0, canonicalData_1.canonicalJson)(validateHost(this.#root)) !== (0, canonicalData_1.canonicalJson)(this.#adapter))
769
+ throw new Error("Host loader adapter drift");
770
+ for (const name of this.#absent)
771
+ if ((0, project_files_1.stat)(this.#file(name)))
772
+ throw new Error(`Custom resolution metadata changed: ${name}`);
773
+ for (const [name, value] of this.#files)
774
+ if (hash(node_fs_1.default.readFileSync(this.#file(name))) !== value.identity.digest)
775
+ throw new Error(`Custom input drift: ${name}`);
776
+ for (const edge of this.#edges.values()) {
777
+ const selected = edge.kind === "config" && edge.specifier.startsWith(".")
778
+ ? this.#relative(node_path_1.default.resolve(this.#root, node_path_1.default.posix.dirname(edge.importer), edge.specifier.endsWith(".json")
779
+ ? edge.specifier
780
+ : edge.specifier + ".json"))
781
+ : this.#resolve(edge.importer, edge.specifier, edge.kind);
782
+ if (selected !== edge.target)
783
+ throw new Error("Custom resolution changed during session");
784
+ }
785
+ for (const location of this.#packages.keys())
786
+ this.#package(location);
787
+ }
788
+ seal() {
789
+ this.assertUnchanged();
790
+ const body = {
791
+ version: 1,
792
+ policy,
793
+ roots: [...this.#roots].sort(),
794
+ files: [...this.#files.values()]
795
+ .map((f) => ({ ...f.identity }))
796
+ .sort((a, b) => (a.path < b.path ? -1 : a.path > b.path ? 1 : 0)),
797
+ edges: [...this.#edges.values()].sort((a, b) => compare((0, canonicalData_1.canonicalJson)(a), (0, canonicalData_1.canonicalJson)(b))),
798
+ packages: [...this.#packages.values()].sort((a, b) => compare(a.lockLocation, b.lockLocation)),
799
+ compiler: {
800
+ version: typescript_1.default.version,
801
+ options: { ...this.#options },
802
+ config: this.#config,
803
+ },
804
+ hostAdapter: this.#adapter,
805
+ resolver: {
806
+ policy: "node-default-cjs",
807
+ version: process.versions.node,
808
+ flags: ["--preserve-symlinks"],
809
+ environment: "empty",
810
+ },
811
+ };
812
+ return (0, canonicalData_1.deepFreeze)({ ...body, closureHash: (0, canonicalData_1.semanticHash)(body) });
813
+ }
814
+ }
815
+ exports.CustomModuleClosure = CustomModuleClosure;
816
+ Object.freeze(CustomModuleClosure.prototype);
817
+ /** Pure structural parser; only collector-owned sessions establish collection authority. */
818
+ //# sourceMappingURL=custom-closure.js.map