movehat 0.2.4 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (557) hide show
  1. package/README.md +1 -1
  2. package/dist/cli.d.ts +0 -1
  3. package/dist/cli.js +0 -1
  4. package/dist/commands/compile.d.ts +0 -1
  5. package/dist/commands/compile.js +0 -1
  6. package/dist/commands/fork/create.d.ts +1 -1
  7. package/dist/commands/fork/create.js +18 -3
  8. package/dist/commands/fork/fund.d.ts +0 -1
  9. package/dist/commands/fork/fund.js +0 -1
  10. package/dist/commands/fork/list.d.ts +0 -1
  11. package/dist/commands/fork/list.js +0 -1
  12. package/dist/commands/fork/serve.d.ts +0 -1
  13. package/dist/commands/fork/serve.js +0 -1
  14. package/dist/commands/fork/view-resource.d.ts +0 -1
  15. package/dist/commands/fork/view-resource.js +0 -1
  16. package/dist/commands/init.d.ts +0 -1
  17. package/dist/commands/init.js +0 -1
  18. package/dist/commands/run.d.ts +17 -1
  19. package/dist/commands/run.js +46 -33
  20. package/dist/commands/test-move.d.ts +0 -1
  21. package/dist/commands/test-move.js +0 -1
  22. package/dist/commands/test.d.ts +0 -1
  23. package/dist/commands/test.js +8 -1
  24. package/dist/commands/update.d.ts +0 -1
  25. package/dist/commands/update.js +0 -1
  26. package/dist/core/AccountManager.d.ts +15 -2
  27. package/dist/core/AccountManager.js +32 -20
  28. package/dist/core/Publisher.d.ts +0 -1
  29. package/dist/core/Publisher.js +0 -1
  30. package/dist/core/config.d.ts +0 -1
  31. package/dist/core/config.js +109 -28
  32. package/dist/core/contract.d.ts +0 -1
  33. package/dist/core/contract.js +0 -1
  34. package/dist/core/deployments.d.ts +0 -1
  35. package/dist/core/deployments.js +0 -1
  36. package/dist/core/movementProfile.d.ts +0 -1
  37. package/dist/core/movementProfile.js +0 -1
  38. package/dist/core/shell.d.ts +0 -1
  39. package/dist/core/shell.js +0 -1
  40. package/dist/errors.d.ts +0 -1
  41. package/dist/errors.js +0 -1
  42. package/dist/fork/api.d.ts +24 -1
  43. package/dist/fork/api.js +95 -1
  44. package/dist/fork/manager.d.ts +14 -1
  45. package/dist/fork/manager.js +19 -1
  46. package/dist/fork/server.d.ts +19 -1
  47. package/dist/fork/server.js +188 -8
  48. package/dist/fork/storage.d.ts +0 -1
  49. package/dist/fork/storage.js +50 -32
  50. package/dist/fork/test.d.ts +0 -1
  51. package/dist/fork/test.js +0 -1
  52. package/dist/harness/Harness.d.ts +0 -1
  53. package/dist/harness/Harness.js +6 -2
  54. package/dist/harness/codeObject.d.ts +0 -1
  55. package/dist/harness/codeObject.js +0 -1
  56. package/dist/harness/errors.d.ts +0 -1
  57. package/dist/harness/errors.js +0 -1
  58. package/dist/harness/index.d.ts +0 -1
  59. package/dist/harness/index.js +0 -1
  60. package/dist/harness/proxy.d.ts +12 -1
  61. package/dist/harness/proxy.js +23 -1
  62. package/dist/harness/script.d.ts +0 -1
  63. package/dist/harness/script.js +0 -1
  64. package/dist/harness/view.d.ts +0 -1
  65. package/dist/harness/view.js +0 -1
  66. package/dist/helpers/assertions.d.ts +0 -1
  67. package/dist/helpers/assertions.js +0 -1
  68. package/dist/helpers/banner.d.ts +0 -1
  69. package/dist/helpers/banner.js +0 -1
  70. package/dist/helpers/index.d.ts +0 -1
  71. package/dist/helpers/index.js +0 -1
  72. package/dist/helpers/move-tests.d.ts +0 -1
  73. package/dist/helpers/move-tests.js +0 -1
  74. package/dist/helpers/npm-registry.d.ts +0 -1
  75. package/dist/helpers/npm-registry.js +0 -1
  76. package/dist/helpers/semver-utils.d.ts +0 -1
  77. package/dist/helpers/semver-utils.js +0 -1
  78. package/dist/helpers/setup.d.ts +0 -1
  79. package/dist/helpers/setup.js +0 -1
  80. package/dist/helpers/setupLocalTesting.d.ts +2 -5
  81. package/dist/helpers/setupLocalTesting.js +0 -1
  82. package/dist/helpers/testFixtures.d.ts +0 -1
  83. package/dist/helpers/testFixtures.js +0 -1
  84. package/dist/helpers/version-check.d.ts +0 -1
  85. package/dist/helpers/version-check.js +0 -1
  86. package/dist/index.d.ts +0 -1
  87. package/dist/index.js +0 -1
  88. package/dist/node/LocalNodeManager.d.ts +0 -1
  89. package/dist/node/LocalNodeManager.js +4 -2
  90. package/dist/runtime.d.ts +0 -1
  91. package/dist/runtime.js +0 -1
  92. package/dist/types/config.d.ts +0 -1
  93. package/dist/types/config.js +0 -1
  94. package/dist/types/fork.d.ts +0 -1
  95. package/dist/types/fork.js +0 -1
  96. package/dist/types/harness.d.ts +0 -1
  97. package/dist/types/harness.js +0 -1
  98. package/dist/types/runtime.d.ts +0 -1
  99. package/dist/types/runtime.js +0 -1
  100. package/dist/ui/colors.d.ts +0 -1
  101. package/dist/ui/colors.js +0 -1
  102. package/dist/ui/formatters.d.ts +0 -1
  103. package/dist/ui/formatters.js +0 -1
  104. package/dist/ui/index.d.ts +0 -1
  105. package/dist/ui/index.js +0 -1
  106. package/dist/ui/logger.d.ts +0 -1
  107. package/dist/ui/logger.js +0 -1
  108. package/dist/ui/spinner.d.ts +0 -1
  109. package/dist/ui/spinner.js +0 -1
  110. package/dist/ui/symbols.d.ts +0 -1
  111. package/dist/ui/symbols.js +0 -1
  112. package/dist/ui/table.d.ts +0 -1
  113. package/dist/ui/table.js +0 -1
  114. package/dist/utils/address.d.ts +0 -1
  115. package/dist/utils/address.js +0 -1
  116. package/dist/utils/childProcessAdapter.d.ts +0 -1
  117. package/dist/utils/childProcessAdapter.js +46 -20
  118. package/dist/utils/movementCli.d.ts +5 -0
  119. package/dist/utils/movementCli.js +91 -0
  120. package/dist/utils/parseCliOutput.d.ts +6 -4
  121. package/dist/utils/parseCliOutput.js +10 -6
  122. package/dist/utils/redact.d.ts +3 -3
  123. package/dist/utils/redact.js +6 -5
  124. package/dist/utils/runCli.d.ts +0 -1
  125. package/dist/utils/runCli.js +10 -2
  126. package/package.json +4 -4
  127. package/dist/__tests__/deployContract.test.d.ts +0 -2
  128. package/dist/__tests__/deployContract.test.d.ts.map +0 -1
  129. package/dist/__tests__/deployContract.test.js +0 -377
  130. package/dist/__tests__/deployContract.test.js.map +0 -1
  131. package/dist/__tests__/errors.test.d.ts +0 -2
  132. package/dist/__tests__/errors.test.d.ts.map +0 -1
  133. package/dist/__tests__/errors.test.js +0 -46
  134. package/dist/__tests__/errors.test.js.map +0 -1
  135. package/dist/__tests__/exports.test.d.ts +0 -2
  136. package/dist/__tests__/exports.test.d.ts.map +0 -1
  137. package/dist/__tests__/exports.test.js +0 -30
  138. package/dist/__tests__/exports.test.js.map +0 -1
  139. package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts +0 -25
  140. package/dist/__tests__/fixtures/sigint-deploy-harness.d.ts.map +0 -1
  141. package/dist/__tests__/fixtures/sigint-deploy-harness.js +0 -83
  142. package/dist/__tests__/fixtures/sigint-deploy-harness.js.map +0 -1
  143. package/dist/__tests__/fork/api.test.d.ts +0 -2
  144. package/dist/__tests__/fork/api.test.d.ts.map +0 -1
  145. package/dist/__tests__/fork/api.test.js +0 -115
  146. package/dist/__tests__/fork/api.test.js.map +0 -1
  147. package/dist/__tests__/fork/api.timeout.test.d.ts +0 -2
  148. package/dist/__tests__/fork/api.timeout.test.d.ts.map +0 -1
  149. package/dist/__tests__/fork/api.timeout.test.js +0 -98
  150. package/dist/__tests__/fork/api.timeout.test.js.map +0 -1
  151. package/dist/__tests__/harness/Harness.createLive.test.d.ts +0 -2
  152. package/dist/__tests__/harness/Harness.createLive.test.d.ts.map +0 -1
  153. package/dist/__tests__/harness/Harness.createLive.test.js +0 -53
  154. package/dist/__tests__/harness/Harness.createLive.test.js.map +0 -1
  155. package/dist/__tests__/harness/Harness.proxy.test.d.ts +0 -2
  156. package/dist/__tests__/harness/Harness.proxy.test.d.ts.map +0 -1
  157. package/dist/__tests__/harness/Harness.proxy.test.js +0 -89
  158. package/dist/__tests__/harness/Harness.proxy.test.js.map +0 -1
  159. package/dist/__tests__/harness/_fixture.d.ts +0 -54
  160. package/dist/__tests__/harness/_fixture.d.ts.map +0 -1
  161. package/dist/__tests__/harness/_fixture.js +0 -69
  162. package/dist/__tests__/harness/_fixture.js.map +0 -1
  163. package/dist/__tests__/harness/codeObject.deploy.test.d.ts +0 -2
  164. package/dist/__tests__/harness/codeObject.deploy.test.d.ts.map +0 -1
  165. package/dist/__tests__/harness/codeObject.deploy.test.js +0 -288
  166. package/dist/__tests__/harness/codeObject.deploy.test.js.map +0 -1
  167. package/dist/__tests__/harness/codeObject.upgrade.test.d.ts +0 -2
  168. package/dist/__tests__/harness/codeObject.upgrade.test.d.ts.map +0 -1
  169. package/dist/__tests__/harness/codeObject.upgrade.test.js +0 -138
  170. package/dist/__tests__/harness/codeObject.upgrade.test.js.map +0 -1
  171. package/dist/__tests__/harness/script.test.d.ts +0 -2
  172. package/dist/__tests__/harness/script.test.d.ts.map +0 -1
  173. package/dist/__tests__/harness/script.test.js +0 -219
  174. package/dist/__tests__/harness/script.test.js.map +0 -1
  175. package/dist/__tests__/harness/view.test.d.ts +0 -2
  176. package/dist/__tests__/harness/view.test.d.ts.map +0 -1
  177. package/dist/__tests__/harness/view.test.js +0 -92
  178. package/dist/__tests__/harness/view.test.js.map +0 -1
  179. package/dist/__tests__/runtime.test.d.ts +0 -2
  180. package/dist/__tests__/runtime.test.d.ts.map +0 -1
  181. package/dist/__tests__/runtime.test.js +0 -141
  182. package/dist/__tests__/runtime.test.js.map +0 -1
  183. package/dist/cli.d.ts.map +0 -1
  184. package/dist/cli.js.map +0 -1
  185. package/dist/commands/__tests__/compile.test.d.ts +0 -2
  186. package/dist/commands/__tests__/compile.test.d.ts.map +0 -1
  187. package/dist/commands/__tests__/compile.test.js +0 -351
  188. package/dist/commands/__tests__/compile.test.js.map +0 -1
  189. package/dist/commands/__tests__/compile.toml-mutation.test.d.ts +0 -2
  190. package/dist/commands/__tests__/compile.toml-mutation.test.d.ts.map +0 -1
  191. package/dist/commands/__tests__/compile.toml-mutation.test.js +0 -69
  192. package/dist/commands/__tests__/compile.toml-mutation.test.js.map +0 -1
  193. package/dist/commands/__tests__/init.test.d.ts +0 -2
  194. package/dist/commands/__tests__/init.test.d.ts.map +0 -1
  195. package/dist/commands/__tests__/init.test.js +0 -163
  196. package/dist/commands/__tests__/init.test.js.map +0 -1
  197. package/dist/commands/__tests__/run.test.d.ts +0 -2
  198. package/dist/commands/__tests__/run.test.d.ts.map +0 -1
  199. package/dist/commands/__tests__/run.test.js +0 -166
  200. package/dist/commands/__tests__/run.test.js.map +0 -1
  201. package/dist/commands/__tests__/test-move.test.d.ts +0 -2
  202. package/dist/commands/__tests__/test-move.test.d.ts.map +0 -1
  203. package/dist/commands/__tests__/test-move.test.js +0 -59
  204. package/dist/commands/__tests__/test-move.test.js.map +0 -1
  205. package/dist/commands/__tests__/test.test.d.ts +0 -2
  206. package/dist/commands/__tests__/test.test.d.ts.map +0 -1
  207. package/dist/commands/__tests__/test.test.js +0 -168
  208. package/dist/commands/__tests__/test.test.js.map +0 -1
  209. package/dist/commands/__tests__/update.test.d.ts +0 -2
  210. package/dist/commands/__tests__/update.test.d.ts.map +0 -1
  211. package/dist/commands/__tests__/update.test.js +0 -176
  212. package/dist/commands/__tests__/update.test.js.map +0 -1
  213. package/dist/commands/compile.d.ts.map +0 -1
  214. package/dist/commands/compile.js.map +0 -1
  215. package/dist/commands/fork/__tests__/create.test.d.ts +0 -2
  216. package/dist/commands/fork/__tests__/create.test.d.ts.map +0 -1
  217. package/dist/commands/fork/__tests__/create.test.js +0 -108
  218. package/dist/commands/fork/__tests__/create.test.js.map +0 -1
  219. package/dist/commands/fork/__tests__/fund.test.d.ts +0 -2
  220. package/dist/commands/fork/__tests__/fund.test.d.ts.map +0 -1
  221. package/dist/commands/fork/__tests__/fund.test.js +0 -72
  222. package/dist/commands/fork/__tests__/fund.test.js.map +0 -1
  223. package/dist/commands/fork/__tests__/list.test.d.ts +0 -2
  224. package/dist/commands/fork/__tests__/list.test.d.ts.map +0 -1
  225. package/dist/commands/fork/__tests__/list.test.js +0 -119
  226. package/dist/commands/fork/__tests__/list.test.js.map +0 -1
  227. package/dist/commands/fork/__tests__/serve.test.d.ts +0 -2
  228. package/dist/commands/fork/__tests__/serve.test.d.ts.map +0 -1
  229. package/dist/commands/fork/__tests__/serve.test.js +0 -97
  230. package/dist/commands/fork/__tests__/serve.test.js.map +0 -1
  231. package/dist/commands/fork/__tests__/view-resource.test.d.ts +0 -2
  232. package/dist/commands/fork/__tests__/view-resource.test.d.ts.map +0 -1
  233. package/dist/commands/fork/__tests__/view-resource.test.js +0 -77
  234. package/dist/commands/fork/__tests__/view-resource.test.js.map +0 -1
  235. package/dist/commands/fork/create.d.ts.map +0 -1
  236. package/dist/commands/fork/create.js.map +0 -1
  237. package/dist/commands/fork/fund.d.ts.map +0 -1
  238. package/dist/commands/fork/fund.js.map +0 -1
  239. package/dist/commands/fork/list.d.ts.map +0 -1
  240. package/dist/commands/fork/list.js.map +0 -1
  241. package/dist/commands/fork/serve.d.ts.map +0 -1
  242. package/dist/commands/fork/serve.js.map +0 -1
  243. package/dist/commands/fork/view-resource.d.ts.map +0 -1
  244. package/dist/commands/fork/view-resource.js.map +0 -1
  245. package/dist/commands/init.d.ts.map +0 -1
  246. package/dist/commands/init.js.map +0 -1
  247. package/dist/commands/run.d.ts.map +0 -1
  248. package/dist/commands/run.js.map +0 -1
  249. package/dist/commands/test-move.d.ts.map +0 -1
  250. package/dist/commands/test-move.js.map +0 -1
  251. package/dist/commands/test.d.ts.map +0 -1
  252. package/dist/commands/test.js.map +0 -1
  253. package/dist/commands/update.d.ts.map +0 -1
  254. package/dist/commands/update.js.map +0 -1
  255. package/dist/core/AccountManager.d.ts.map +0 -1
  256. package/dist/core/AccountManager.js.map +0 -1
  257. package/dist/core/Publisher.d.ts.map +0 -1
  258. package/dist/core/Publisher.js.map +0 -1
  259. package/dist/core/__tests__/AccountManager.global-state.test.d.ts +0 -2
  260. package/dist/core/__tests__/AccountManager.global-state.test.d.ts.map +0 -1
  261. package/dist/core/__tests__/AccountManager.global-state.test.js +0 -69
  262. package/dist/core/__tests__/AccountManager.global-state.test.js.map +0 -1
  263. package/dist/core/__tests__/AccountManager.test.d.ts +0 -2
  264. package/dist/core/__tests__/AccountManager.test.d.ts.map +0 -1
  265. package/dist/core/__tests__/AccountManager.test.js +0 -239
  266. package/dist/core/__tests__/AccountManager.test.js.map +0 -1
  267. package/dist/core/__tests__/config.test.d.ts +0 -2
  268. package/dist/core/__tests__/config.test.d.ts.map +0 -1
  269. package/dist/core/__tests__/config.test.js +0 -311
  270. package/dist/core/__tests__/config.test.js.map +0 -1
  271. package/dist/core/__tests__/deployments.test.d.ts +0 -2
  272. package/dist/core/__tests__/deployments.test.d.ts.map +0 -1
  273. package/dist/core/__tests__/deployments.test.js +0 -201
  274. package/dist/core/__tests__/deployments.test.js.map +0 -1
  275. package/dist/core/__tests__/movementProfile.test.d.ts +0 -2
  276. package/dist/core/__tests__/movementProfile.test.d.ts.map +0 -1
  277. package/dist/core/__tests__/movementProfile.test.js +0 -112
  278. package/dist/core/__tests__/movementProfile.test.js.map +0 -1
  279. package/dist/core/__tests__/shell.test.d.ts +0 -2
  280. package/dist/core/__tests__/shell.test.d.ts.map +0 -1
  281. package/dist/core/__tests__/shell.test.js +0 -107
  282. package/dist/core/__tests__/shell.test.js.map +0 -1
  283. package/dist/core/config.d.ts.map +0 -1
  284. package/dist/core/config.js.map +0 -1
  285. package/dist/core/contract.d.ts.map +0 -1
  286. package/dist/core/contract.js.map +0 -1
  287. package/dist/core/deployments.d.ts.map +0 -1
  288. package/dist/core/deployments.js.map +0 -1
  289. package/dist/core/movementProfile.d.ts.map +0 -1
  290. package/dist/core/movementProfile.js.map +0 -1
  291. package/dist/core/shell.d.ts.map +0 -1
  292. package/dist/core/shell.js.map +0 -1
  293. package/dist/errors.d.ts.map +0 -1
  294. package/dist/errors.js.map +0 -1
  295. package/dist/fork/__tests__/manager.test.d.ts +0 -2
  296. package/dist/fork/__tests__/manager.test.d.ts.map +0 -1
  297. package/dist/fork/__tests__/manager.test.js +0 -309
  298. package/dist/fork/__tests__/manager.test.js.map +0 -1
  299. package/dist/fork/__tests__/server.cors.test.d.ts +0 -2
  300. package/dist/fork/__tests__/server.cors.test.d.ts.map +0 -1
  301. package/dist/fork/__tests__/server.cors.test.js +0 -79
  302. package/dist/fork/__tests__/server.cors.test.js.map +0 -1
  303. package/dist/fork/__tests__/server.test.d.ts +0 -2
  304. package/dist/fork/__tests__/server.test.d.ts.map +0 -1
  305. package/dist/fork/__tests__/server.test.js +0 -54
  306. package/dist/fork/__tests__/server.test.js.map +0 -1
  307. package/dist/fork/__tests__/storage.test.d.ts +0 -2
  308. package/dist/fork/__tests__/storage.test.d.ts.map +0 -1
  309. package/dist/fork/__tests__/storage.test.js +0 -222
  310. package/dist/fork/__tests__/storage.test.js.map +0 -1
  311. package/dist/fork/__tests__/test.test.d.ts +0 -2
  312. package/dist/fork/__tests__/test.test.d.ts.map +0 -1
  313. package/dist/fork/__tests__/test.test.js +0 -81
  314. package/dist/fork/__tests__/test.test.js.map +0 -1
  315. package/dist/fork/api.d.ts.map +0 -1
  316. package/dist/fork/api.js.map +0 -1
  317. package/dist/fork/manager.d.ts.map +0 -1
  318. package/dist/fork/manager.js.map +0 -1
  319. package/dist/fork/server.d.ts.map +0 -1
  320. package/dist/fork/server.js.map +0 -1
  321. package/dist/fork/storage.d.ts.map +0 -1
  322. package/dist/fork/storage.js.map +0 -1
  323. package/dist/fork/test.d.ts.map +0 -1
  324. package/dist/fork/test.js.map +0 -1
  325. package/dist/harness/Harness.d.ts.map +0 -1
  326. package/dist/harness/Harness.js.map +0 -1
  327. package/dist/harness/codeObject.d.ts.map +0 -1
  328. package/dist/harness/codeObject.js.map +0 -1
  329. package/dist/harness/errors.d.ts.map +0 -1
  330. package/dist/harness/errors.js.map +0 -1
  331. package/dist/harness/index.d.ts.map +0 -1
  332. package/dist/harness/index.js.map +0 -1
  333. package/dist/harness/proxy.d.ts.map +0 -1
  334. package/dist/harness/proxy.js.map +0 -1
  335. package/dist/harness/script.d.ts.map +0 -1
  336. package/dist/harness/script.js.map +0 -1
  337. package/dist/harness/view.d.ts.map +0 -1
  338. package/dist/harness/view.js.map +0 -1
  339. package/dist/helpers/__tests__/semver-utils.test.d.ts +0 -2
  340. package/dist/helpers/__tests__/semver-utils.test.d.ts.map +0 -1
  341. package/dist/helpers/__tests__/semver-utils.test.js +0 -103
  342. package/dist/helpers/__tests__/semver-utils.test.js.map +0 -1
  343. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts +0 -2
  344. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.d.ts.map +0 -1
  345. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js +0 -172
  346. package/dist/helpers/__tests__/setupLocalTesting.fork-network.test.js.map +0 -1
  347. package/dist/helpers/assertions.d.ts.map +0 -1
  348. package/dist/helpers/assertions.js.map +0 -1
  349. package/dist/helpers/banner.d.ts.map +0 -1
  350. package/dist/helpers/banner.js.map +0 -1
  351. package/dist/helpers/index.d.ts.map +0 -1
  352. package/dist/helpers/index.js.map +0 -1
  353. package/dist/helpers/move-tests.d.ts.map +0 -1
  354. package/dist/helpers/move-tests.js.map +0 -1
  355. package/dist/helpers/npm-registry.d.ts.map +0 -1
  356. package/dist/helpers/npm-registry.js.map +0 -1
  357. package/dist/helpers/semver-utils.d.ts.map +0 -1
  358. package/dist/helpers/semver-utils.js.map +0 -1
  359. package/dist/helpers/setup.d.ts.map +0 -1
  360. package/dist/helpers/setup.js.map +0 -1
  361. package/dist/helpers/setupLocalTesting.d.ts.map +0 -1
  362. package/dist/helpers/setupLocalTesting.js.map +0 -1
  363. package/dist/helpers/testFixtures.d.ts.map +0 -1
  364. package/dist/helpers/testFixtures.js.map +0 -1
  365. package/dist/helpers/version-check.d.ts.map +0 -1
  366. package/dist/helpers/version-check.js.map +0 -1
  367. package/dist/index.d.ts.map +0 -1
  368. package/dist/index.js.map +0 -1
  369. package/dist/node/LocalNodeManager.d.ts.map +0 -1
  370. package/dist/node/LocalNodeManager.js.map +0 -1
  371. package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts +0 -2
  372. package/dist/node/__tests__/LocalNodeManager.api-port.test.d.ts.map +0 -1
  373. package/dist/node/__tests__/LocalNodeManager.api-port.test.js +0 -55
  374. package/dist/node/__tests__/LocalNodeManager.api-port.test.js.map +0 -1
  375. package/dist/node/__tests__/LocalNodeManager.test.d.ts +0 -2
  376. package/dist/node/__tests__/LocalNodeManager.test.d.ts.map +0 -1
  377. package/dist/node/__tests__/LocalNodeManager.test.js +0 -449
  378. package/dist/node/__tests__/LocalNodeManager.test.js.map +0 -1
  379. package/dist/runtime.d.ts.map +0 -1
  380. package/dist/runtime.js.map +0 -1
  381. package/dist/types/config.d.ts.map +0 -1
  382. package/dist/types/config.js.map +0 -1
  383. package/dist/types/fork.d.ts.map +0 -1
  384. package/dist/types/fork.js.map +0 -1
  385. package/dist/types/harness.d.ts.map +0 -1
  386. package/dist/types/harness.js.map +0 -1
  387. package/dist/types/runtime.d.ts.map +0 -1
  388. package/dist/types/runtime.js.map +0 -1
  389. package/dist/ui/__tests__/colors.test.d.ts +0 -2
  390. package/dist/ui/__tests__/colors.test.d.ts.map +0 -1
  391. package/dist/ui/__tests__/colors.test.js +0 -127
  392. package/dist/ui/__tests__/colors.test.js.map +0 -1
  393. package/dist/ui/__tests__/logger.test.d.ts +0 -2
  394. package/dist/ui/__tests__/logger.test.d.ts.map +0 -1
  395. package/dist/ui/__tests__/logger.test.js +0 -75
  396. package/dist/ui/__tests__/logger.test.js.map +0 -1
  397. package/dist/ui/colors.d.ts.map +0 -1
  398. package/dist/ui/colors.js.map +0 -1
  399. package/dist/ui/formatters.d.ts.map +0 -1
  400. package/dist/ui/formatters.js.map +0 -1
  401. package/dist/ui/index.d.ts.map +0 -1
  402. package/dist/ui/index.js.map +0 -1
  403. package/dist/ui/logger.d.ts.map +0 -1
  404. package/dist/ui/logger.js.map +0 -1
  405. package/dist/ui/spinner.d.ts.map +0 -1
  406. package/dist/ui/spinner.js.map +0 -1
  407. package/dist/ui/symbols.d.ts.map +0 -1
  408. package/dist/ui/symbols.js.map +0 -1
  409. package/dist/ui/table.d.ts.map +0 -1
  410. package/dist/ui/table.js.map +0 -1
  411. package/dist/utils/__tests__/address.test.d.ts +0 -2
  412. package/dist/utils/__tests__/address.test.d.ts.map +0 -1
  413. package/dist/utils/__tests__/address.test.js +0 -70
  414. package/dist/utils/__tests__/address.test.js.map +0 -1
  415. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts +0 -2
  416. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.d.ts.map +0 -1
  417. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js +0 -43
  418. package/dist/utils/__tests__/childProcessAdapter.maxBuffer.test.js.map +0 -1
  419. package/dist/utils/__tests__/childProcessAdapter.test.d.ts +0 -2
  420. package/dist/utils/__tests__/childProcessAdapter.test.d.ts.map +0 -1
  421. package/dist/utils/__tests__/childProcessAdapter.test.js +0 -217
  422. package/dist/utils/__tests__/childProcessAdapter.test.js.map +0 -1
  423. package/dist/utils/__tests__/runCli.test.d.ts +0 -2
  424. package/dist/utils/__tests__/runCli.test.d.ts.map +0 -1
  425. package/dist/utils/__tests__/runCli.test.js +0 -187
  426. package/dist/utils/__tests__/runCli.test.js.map +0 -1
  427. package/dist/utils/address.d.ts.map +0 -1
  428. package/dist/utils/address.js.map +0 -1
  429. package/dist/utils/childProcessAdapter.d.ts.map +0 -1
  430. package/dist/utils/childProcessAdapter.js.map +0 -1
  431. package/dist/utils/parseCliOutput.d.ts.map +0 -1
  432. package/dist/utils/parseCliOutput.js.map +0 -1
  433. package/dist/utils/redact.d.ts.map +0 -1
  434. package/dist/utils/redact.js.map +0 -1
  435. package/dist/utils/runCli.d.ts.map +0 -1
  436. package/dist/utils/runCli.js.map +0 -1
  437. package/src/__tests__/deployContract.test.ts +0 -438
  438. package/src/__tests__/errors.test.ts +0 -84
  439. package/src/__tests__/exports.test.ts +0 -32
  440. package/src/__tests__/fixtures/sigint-deploy-harness.ts +0 -96
  441. package/src/__tests__/fork/api.test.ts +0 -148
  442. package/src/__tests__/fork/api.timeout.test.ts +0 -150
  443. package/src/__tests__/harness/Harness.createLive.test.ts +0 -57
  444. package/src/__tests__/harness/Harness.proxy.test.ts +0 -111
  445. package/src/__tests__/harness/_fixture.ts +0 -131
  446. package/src/__tests__/harness/codeObject.deploy.test.ts +0 -319
  447. package/src/__tests__/harness/codeObject.upgrade.test.ts +0 -156
  448. package/src/__tests__/harness/script.test.ts +0 -245
  449. package/src/__tests__/harness/view.test.ts +0 -104
  450. package/src/__tests__/runtime.test.ts +0 -182
  451. package/src/cli.ts +0 -164
  452. package/src/commands/__tests__/compile.test.ts +0 -407
  453. package/src/commands/__tests__/compile.toml-mutation.test.ts +0 -77
  454. package/src/commands/__tests__/init.test.ts +0 -210
  455. package/src/commands/__tests__/run.test.ts +0 -192
  456. package/src/commands/__tests__/test-move.test.ts +0 -81
  457. package/src/commands/__tests__/test.test.ts +0 -204
  458. package/src/commands/__tests__/update.test.ts +0 -223
  459. package/src/commands/compile.ts +0 -339
  460. package/src/commands/fork/__tests__/create.test.ts +0 -132
  461. package/src/commands/fork/__tests__/fund.test.ts +0 -104
  462. package/src/commands/fork/__tests__/list.test.ts +0 -139
  463. package/src/commands/fork/__tests__/serve.test.ts +0 -121
  464. package/src/commands/fork/__tests__/view-resource.test.ts +0 -101
  465. package/src/commands/fork/create.ts +0 -110
  466. package/src/commands/fork/fund.ts +0 -64
  467. package/src/commands/fork/list.ts +0 -98
  468. package/src/commands/fork/serve.ts +0 -80
  469. package/src/commands/fork/view-resource.ts +0 -51
  470. package/src/commands/init.ts +0 -264
  471. package/src/commands/run.ts +0 -125
  472. package/src/commands/test-move.ts +0 -27
  473. package/src/commands/test.ts +0 -255
  474. package/src/commands/update.ts +0 -201
  475. package/src/core/AccountManager.ts +0 -457
  476. package/src/core/Publisher.ts +0 -310
  477. package/src/core/__tests__/AccountManager.global-state.test.ts +0 -83
  478. package/src/core/__tests__/AccountManager.test.ts +0 -290
  479. package/src/core/__tests__/config.test.ts +0 -377
  480. package/src/core/__tests__/deployments.test.ts +0 -247
  481. package/src/core/__tests__/movementProfile.test.ts +0 -131
  482. package/src/core/__tests__/shell.test.ts +0 -138
  483. package/src/core/config.ts +0 -286
  484. package/src/core/contract.ts +0 -103
  485. package/src/core/deployments.ts +0 -155
  486. package/src/core/movementProfile.ts +0 -127
  487. package/src/core/shell.ts +0 -86
  488. package/src/errors.ts +0 -81
  489. package/src/fork/__tests__/manager.test.ts +0 -385
  490. package/src/fork/__tests__/server.cors.test.ts +0 -101
  491. package/src/fork/__tests__/server.test.ts +0 -65
  492. package/src/fork/__tests__/storage.test.ts +0 -281
  493. package/src/fork/__tests__/test.test.ts +0 -97
  494. package/src/fork/api.ts +0 -190
  495. package/src/fork/manager.ts +0 -343
  496. package/src/fork/server.ts +0 -380
  497. package/src/fork/storage.ts +0 -253
  498. package/src/fork/test.ts +0 -221
  499. package/src/harness/Harness.ts +0 -231
  500. package/src/harness/codeObject.ts +0 -381
  501. package/src/harness/errors.ts +0 -22
  502. package/src/harness/index.ts +0 -3
  503. package/src/harness/proxy.ts +0 -40
  504. package/src/harness/script.ts +0 -200
  505. package/src/harness/view.ts +0 -34
  506. package/src/helpers/__tests__/semver-utils.test.ts +0 -121
  507. package/src/helpers/__tests__/setupLocalTesting.fork-network.test.ts +0 -212
  508. package/src/helpers/assertions.ts +0 -29
  509. package/src/helpers/banner.ts +0 -63
  510. package/src/helpers/index.ts +0 -37
  511. package/src/helpers/move-tests.ts +0 -72
  512. package/src/helpers/npm-registry.ts +0 -72
  513. package/src/helpers/semver-utils.ts +0 -54
  514. package/src/helpers/setup.ts +0 -54
  515. package/src/helpers/setupLocalTesting.ts +0 -387
  516. package/src/helpers/testFixtures.ts +0 -210
  517. package/src/helpers/version-check.ts +0 -114
  518. package/src/index.ts +0 -30
  519. package/src/node/LocalNodeManager.ts +0 -383
  520. package/src/node/__tests__/LocalNodeManager.api-port.test.ts +0 -62
  521. package/src/node/__tests__/LocalNodeManager.test.ts +0 -579
  522. package/src/runtime.ts +0 -157
  523. package/src/templates/.env.example +0 -9
  524. package/src/templates/.mocharc.json +0 -8
  525. package/src/templates/.vscode/settings.json +0 -11
  526. package/src/templates/README.md +0 -146
  527. package/src/templates/gitignore +0 -22
  528. package/src/templates/move/Move.toml +0 -19
  529. package/src/templates/move/sources/Counter.move +0 -96
  530. package/src/templates/movehat.config.ts +0 -57
  531. package/src/templates/package.json +0 -27
  532. package/src/templates/scripts/deploy-counter.ts +0 -66
  533. package/src/templates/tests/Counter.test.ts +0 -113
  534. package/src/templates/tsconfig.json +0 -15
  535. package/src/templates/types/movehat.d.ts +0 -101
  536. package/src/types/config.ts +0 -83
  537. package/src/types/fork.ts +0 -47
  538. package/src/types/harness.ts +0 -182
  539. package/src/types/runtime.ts +0 -57
  540. package/src/ui/__tests__/colors.test.ts +0 -156
  541. package/src/ui/__tests__/logger.test.ts +0 -89
  542. package/src/ui/colors.ts +0 -144
  543. package/src/ui/formatters.ts +0 -246
  544. package/src/ui/index.ts +0 -62
  545. package/src/ui/logger.ts +0 -310
  546. package/src/ui/spinner.ts +0 -218
  547. package/src/ui/symbols.ts +0 -80
  548. package/src/ui/table.ts +0 -191
  549. package/src/utils/__tests__/address.test.ts +0 -93
  550. package/src/utils/__tests__/childProcessAdapter.maxBuffer.test.ts +0 -51
  551. package/src/utils/__tests__/childProcessAdapter.test.ts +0 -266
  552. package/src/utils/__tests__/runCli.test.ts +0 -240
  553. package/src/utils/address.ts +0 -52
  554. package/src/utils/childProcessAdapter.ts +0 -244
  555. package/src/utils/parseCliOutput.ts +0 -27
  556. package/src/utils/redact.ts +0 -24
  557. package/src/utils/runCli.ts +0 -64
@@ -1,381 +0,0 @@
1
- import { PrivateKey, PrivateKeyVariants } from "@aptos-labs/ts-sdk";
2
- import type { MovehatRuntime } from "../types/runtime.js";
3
- import type {
4
- DeployCodeObjectOptions,
5
- UpgradeCodeObjectOptions,
6
- CodeObjectInfo,
7
- } from "../types/harness.js";
8
- import { extractNamedAddresses } from "../commands/compile.js";
9
- import {
10
- saveDeployment,
11
- loadDeployment,
12
- validateSafeName,
13
- type DeploymentInfo,
14
- } from "../core/deployments.js";
15
- import { validatePathSafety } from "../core/shell.js";
16
- import {
17
- CliExecutionError,
18
- ModuleAlreadyDeployedError,
19
- PostPublishError,
20
- } from "../errors.js";
21
- import { runCli } from "../utils/runCli.js";
22
- import { parseTxHash } from "../utils/parseCliOutput.js";
23
- import { logger, isVerbose } from "../ui/index.js";
24
- import {
25
- writeTempKeyFile,
26
- removeKeyFile,
27
- removeKeyFileSyncBestEffort,
28
- ensureSignalHandler,
29
- cleanupCallbacks,
30
- } from "../core/movementProfile.js";
31
-
32
- /**
33
- * Deploy a Move package as a code object via `movement move deploy-object`.
34
- *
35
- * Mirrors `core/Publisher.deploy` exactly for the security-critical parts
36
- * (per-deploy unique profile, atomic ~/.aptos/config.yaml mutation under
37
- * the shared mutex, SIGINT-safe sync cleanup, stderr redaction via
38
- * `runCli`). The only differences are:
39
- *
40
- * 1. CLI subcommand: `deploy-object` instead of `publish` + a required
41
- * `--address-name <moduleName>` flag that binds the derived object
42
- * address to the package's named-address slot.
43
- * 2. `DeploymentInfo.address` is the derived **object address** parsed
44
- * from CLI output, not the deployer's account address.
45
- *
46
- * @internal — called from `Harness.deployCodeObject`.
47
- */
48
- export async function deployCodeObject(
49
- runtime: MovehatRuntime,
50
- options: DeployCodeObjectOptions
51
- ): Promise<CodeObjectInfo> {
52
- return executeMovementMoveObject({
53
- runtime,
54
- moduleName: options.moduleName,
55
- addressName: options.addressName,
56
- packageDir: options.packageDir,
57
- namedAddresses: options.namedAddresses,
58
- includedArtifacts: options.includedArtifacts,
59
- adapter: options.adapter,
60
- subcommand: "deploy-object",
61
- extraArgs: [],
62
- checkIdempotency: true,
63
- });
64
- }
65
-
66
- /**
67
- * Upgrade an existing code object via `movement move upgrade-object`.
68
- *
69
- * Requires {@link UpgradeCodeObjectOptions.objectAddress} — the address
70
- * of the existing on-chain object. The local `DeploymentInfo` record
71
- * for `moduleName` is overwritten with a new timestamp + txHash; the
72
- * address stays the same.
73
- *
74
- * @internal — called from `Harness.upgradeCodeObject`.
75
- */
76
- export async function upgradeCodeObject(
77
- runtime: MovehatRuntime,
78
- options: UpgradeCodeObjectOptions
79
- ): Promise<CodeObjectInfo> {
80
- if (!options.objectAddress) {
81
- throw new Error(
82
- "Harness.upgradeCodeObject requires options.objectAddress (the existing object's address)."
83
- );
84
- }
85
- return executeMovementMoveObject({
86
- runtime,
87
- moduleName: options.moduleName,
88
- addressName: options.addressName,
89
- packageDir: options.packageDir,
90
- namedAddresses: options.namedAddresses,
91
- includedArtifacts: options.includedArtifacts,
92
- adapter: options.adapter,
93
- subcommand: "upgrade-object",
94
- extraArgs: ["--object-address", options.objectAddress],
95
- checkIdempotency: false,
96
- fixedAddress: options.objectAddress,
97
- });
98
- }
99
-
100
- interface ExecuteOptions {
101
- runtime: MovehatRuntime;
102
- moduleName: string;
103
- /**
104
- * Move.toml named address for the `--address-name` CLI flag.
105
- * Defaults to `moduleName` when undefined.
106
- */
107
- addressName?: string | undefined;
108
- packageDir?: string | undefined;
109
- namedAddresses?: Record<string, string> | undefined;
110
- includedArtifacts?: "none" | "sparse" | "all" | undefined;
111
- adapter?: import("../utils/childProcessAdapter.js").ChildProcessAdapter | undefined;
112
- subcommand: "deploy-object" | "upgrade-object";
113
- extraArgs: readonly string[];
114
- /** Whether to throw `ModuleAlreadyDeployedError` if a record exists. */
115
- checkIdempotency: boolean;
116
- /**
117
- * For upgrade-object: the object's existing address. Skips the parse-
118
- * from-stdout step (the address is known up front).
119
- */
120
- fixedAddress?: string;
121
- }
122
-
123
- async function executeMovementMoveObject(
124
- opts: ExecuteOptions
125
- ): Promise<CodeObjectInfo> {
126
- const { runtime, moduleName, subcommand } = opts;
127
- const config = runtime.config;
128
- const account = runtime.account;
129
-
130
- validateSafeName(moduleName, "module");
131
-
132
- // Idempotency: deploy-object refuses re-deploy unless MH_CLI_REDEPLOY=true.
133
- // Upgrade does not check this (the whole point is to overwrite).
134
- const forceRedeploy = process.env.MH_CLI_REDEPLOY === "true";
135
- if (opts.checkIdempotency) {
136
- const existing = loadDeployment(config.network, moduleName);
137
- if (existing && !forceRedeploy) {
138
- const errorDetails = [
139
- `Module "${moduleName}" is already deployed on ${config.network}`,
140
- `Address: ${existing.address}`,
141
- `Deployed at: ${new Date(existing.timestamp).toLocaleString()}`,
142
- existing.txHash ? `Transaction: ${existing.txHash}` : null,
143
- `\nTo redeploy, set MH_CLI_REDEPLOY=true or call harness.upgradeCodeObject({ objectAddress: "${existing.address}", ... }).`,
144
- ]
145
- .filter(Boolean)
146
- .join("\n");
147
-
148
- logger.error(
149
- `Module "${moduleName}" is already deployed on ${config.network}`
150
- );
151
- logger.plain(` Address: ${existing.address}`);
152
- logger.plain(
153
- ` Deployed at: ${new Date(existing.timestamp).toLocaleString()}`
154
- );
155
- if (existing.txHash) logger.plain(` Transaction: ${existing.txHash}`);
156
- logger.newline();
157
-
158
- throw new ModuleAlreadyDeployedError(
159
- errorDetails,
160
- moduleName,
161
- config.network,
162
- existing.address,
163
- existing.timestamp,
164
- existing.txHash
165
- );
166
- }
167
- }
168
-
169
- const dir = opts.packageDir || config.moveDir;
170
- const safeDir = validatePathSafety(dir, "package directory");
171
-
172
- logger.step(
173
- `${subcommand === "deploy-object" ? "Deploying" : "Upgrading"} module "${moduleName}" from ${dir}...`
174
- );
175
-
176
- try {
177
- const deployerAddress = account.accountAddress.toString();
178
-
179
- // Build named-addresses arg: auto-detected names from Move sources
180
- // are bound to the deployer's address (Publisher convention).
181
- // Caller-supplied `namedAddresses` overlay on top.
182
- const detectedAddresses = extractNamedAddresses(dir);
183
- const addrMap = new Map<string, string>();
184
- for (const name of detectedAddresses) addrMap.set(name, deployerAddress);
185
- if (opts.namedAddresses) {
186
- for (const [k, v] of Object.entries(opts.namedAddresses)) addrMap.set(k, v);
187
- }
188
- const namedAddrArgs: string[] =
189
- addrMap.size > 0
190
- ? [
191
- "--named-addresses",
192
- Array.from(addrMap.entries())
193
- .map(([k, v]) => `${k}=${v}`)
194
- .join(","),
195
- ]
196
- : [];
197
-
198
- // Build step (same as Publisher — produces the bytecode the
199
- // subcommand will publish/upgrade).
200
- logger.step("Building package...");
201
- const buildResult = await runCli(
202
- {
203
- command: "movement",
204
- args: ["move", "build", "--package-dir", safeDir, ...namedAddrArgs],
205
- timeoutMs: 120000,
206
- },
207
- { adapter: opts.adapter }
208
- );
209
- if (isVerbose() && buildResult.stdout) logger.info(buildResult.stdout.trim(), 2);
210
-
211
- // Format the private key into AIP-80 shape so the Movement CLI
212
- // doesn't emit its raw-hex deprecation warning. `formatPrivateKey`
213
- // is idempotent for already-prefixed inputs.
214
- const formattedPrivateKey = PrivateKey.formatPrivateKey(
215
- config.privateKey,
216
- PrivateKeyVariants.Ed25519,
217
- );
218
-
219
- // Pass the private key via a 0o600 temp file (--private-key-file)
220
- // and the on-chain address via --sender-account. This avoids the
221
- // CLI's profile-yaml lookup entirely — no CWD / HOME / .aptos /
222
- // .movement dance, no CLI-variant dependency.
223
- const keyFilePath = writeTempKeyFile(formattedPrivateKey);
224
-
225
- // Register SIGINT-safe sync cleanup BEFORE invoking the CLI so
226
- // the private key never persists on disk after an abnormal exit.
227
- // The signal-handler path uses the best-effort variant because the
228
- // event loop is dead and we cannot logger.warning.
229
- ensureSignalHandler();
230
- const syncCleanup = () => removeKeyFileSyncBestEffort(keyFilePath);
231
- cleanupCallbacks.add(syncCleanup);
232
-
233
- let deployOut = "";
234
- try {
235
- logger.step(
236
- `Running 'movement move ${subcommand}'${subcommand === "upgrade-object" ? "" : " (this may take a moment)"}...`
237
- );
238
- const includedArtifacts: ("--included-artifacts" | string)[] =
239
- opts.includedArtifacts
240
- ? ["--included-artifacts", opts.includedArtifacts]
241
- : [];
242
- const result = await runCli(
243
- {
244
- command: "movement",
245
- args: [
246
- "move",
247
- subcommand,
248
- "--address-name",
249
- opts.addressName ?? moduleName,
250
- "--package-dir",
251
- safeDir,
252
- "--url",
253
- config.rpc,
254
- "--private-key-file",
255
- keyFilePath,
256
- "--sender-account",
257
- deployerAddress,
258
- "--assume-yes",
259
- ...includedArtifacts,
260
- ...namedAddrArgs,
261
- ...opts.extraArgs,
262
- ],
263
- timeoutMs: 180000, // 3 min — deploy-object can be slow with chunked publishing.
264
- },
265
- { adapter: opts.adapter }
266
- );
267
- deployOut = result.stdout;
268
- // Both streams gated behind isVerbose(); see §9 — stream channel
269
- // is not by itself a failure signal. Real failures throw via
270
- // CliExecutionError and are surfaced from the catch below.
271
- if (isVerbose() && result.stdout) logger.info(result.stdout.trim(), 2);
272
- if (isVerbose() && result.stderr) logger.info(result.stderr.trim(), 2);
273
- } finally {
274
- // Unlink via the observable helper — emit a warning if the file
275
- // could not be removed AND still exists on disk (private key
276
- // would persist silently otherwise). ENOENT and races are
277
- // treated as benign success.
278
- const cleanupErr = removeKeyFile(keyFilePath);
279
- if (cleanupErr) {
280
- logger.warning(
281
- `Failed to remove temp key file '${keyFilePath}': ${cleanupErr.message}. ` +
282
- `The file has mode 0o600 but should be removed manually: rm ${keyFilePath}`
283
- );
284
- }
285
- cleanupCallbacks.delete(syncCleanup);
286
- }
287
-
288
- // Parse object address (for deploy-object) and txHash (both flows).
289
- const objectAddress = opts.fixedAddress ?? parseObjectAddress(deployOut);
290
- const txHash = parseTxHash(deployOut);
291
-
292
- if (!objectAddress) {
293
- throw new Error(
294
- `Could not parse object address from '${subcommand}' output. ` +
295
- `Expected a line containing 'object address 0x...' or a JSON ` +
296
- `'Result' block with an 'object_address' field. Captured stdout:\n${deployOut.slice(0, 1000)}`
297
- );
298
- }
299
-
300
- logger.success(
301
- `${subcommand === "deploy-object" ? "Module deployed" : "Module upgraded"} successfully!`
302
- );
303
-
304
- // Publish/upgrade succeeded. Everything below this point that throws
305
- // is a local-side bookkeeping failure, not an on-chain failure.
306
-
307
- const deployment: DeploymentInfo = {
308
- address: objectAddress,
309
- moduleName,
310
- network: config.network,
311
- deployer: deployerAddress,
312
- timestamp: Date.now(),
313
- ...(txHash !== undefined ? { txHash } : {}),
314
- };
315
-
316
- try {
317
- saveDeployment(deployment);
318
- } catch (error) {
319
- const err = error instanceof Error ? error : new Error(String(error));
320
- throw new PostPublishError(
321
- `Module "${moduleName}" ${subcommand === "deploy-object" ? "deployed" : "upgraded"} to ${deployment.address} ` +
322
- `but local deployment record could not be written: ${err.message}`,
323
- deployment,
324
- err
325
- );
326
- }
327
-
328
- return deployment;
329
- } catch (error) {
330
- if (error instanceof PostPublishError) {
331
- logger.warning(
332
- `Module ${subcommand === "deploy-object" ? "deployed" : "upgraded"} successfully to ${error.deployment.address} ` +
333
- `(tx=${error.deployment.txHash ?? "unknown"}) but local deployment record could not be written.`
334
- );
335
- logger.warning(` Cause: ${error.cause.message}`);
336
- logger.warning(
337
- ` To recover, manually write the deployment to deployments/${error.deployment.network}/${error.deployment.moduleName}.json.`
338
- );
339
- throw error;
340
- }
341
- if (error instanceof CliExecutionError) {
342
- if (error.stdoutPreview) logger.info(error.stdoutPreview, 2);
343
- logger.error(
344
- `Failed to ${subcommand === "deploy-object" ? "deploy" : "upgrade"} module: ${error.message}\n${error.stderr}`
345
- );
346
- } else {
347
- const err = error instanceof Error ? error : new Error(String(error));
348
- logger.error(
349
- `Failed to ${subcommand === "deploy-object" ? "deploy" : "upgrade"} module: ${err.message}`
350
- );
351
- }
352
- throw error;
353
- }
354
- }
355
-
356
- /**
357
- * Extract a code-object address from `movement move deploy-object` stdout.
358
- *
359
- * Movement CLI typically emits the address in one of these shapes:
360
- *
361
- * - Free text: `Code was successfully deployed to object address 0x…`
362
- * - Free text: `Object address: 0x…`
363
- * - JSON `Result` block with `"object_address": "0x…"`
364
- *
365
- * Falls through the patterns in order. Returns `undefined` on no match.
366
- */
367
- function parseObjectAddress(stdout: string): string | undefined {
368
- // Pattern 1: phrase-context match.
369
- const phraseMatch = stdout.match(
370
- /object\s+address[:\s]+\b(0x[a-fA-F0-9]{1,64})\b/i
371
- );
372
- if (phraseMatch?.[1]) return phraseMatch[1];
373
-
374
- // Pattern 2: JSON-shaped key.
375
- const jsonMatch = stdout.match(
376
- /"object_address"\s*:\s*"(0x[a-fA-F0-9]{1,64})"/
377
- );
378
- if (jsonMatch?.[1]) return jsonMatch[1];
379
-
380
- return undefined;
381
- }
@@ -1,22 +0,0 @@
1
- /**
2
- * Thrown synchronously when any method other than `cleanup` is invoked
3
- * on a Harness instance whose `cleanup()` has already run.
4
- *
5
- * The throw happens on property access (Proxy `get` trap), not after the
6
- * async method body. That means `await harness.deployCodeObject(...)`
7
- * throws *before* the call site awaits — callers can use a plain
8
- * `try`/`catch` or rely on the rejected promise; either form will fire.
9
- */
10
- export class HarnessDisposedError extends Error {
11
- constructor(public readonly methodName: string) {
12
- super(
13
- `Harness is disposed; call to '${methodName}' is not allowed. ` +
14
- `Create a new Harness via Harness.createLocal/createFork/createLive instead.`
15
- );
16
- this.name = "HarnessDisposedError";
17
-
18
- if (Error.captureStackTrace) {
19
- Error.captureStackTrace(this, HarnessDisposedError);
20
- }
21
- }
22
- }
@@ -1,3 +0,0 @@
1
- export { Harness } from "./Harness.js";
2
- export type { HarnessMode } from "./Harness.js";
3
- export { HarnessDisposedError } from "./errors.js";
@@ -1,40 +0,0 @@
1
- import { HarnessDisposedError } from "./errors.js";
2
-
3
- /**
4
- * Names of Harness methods that must throw `HarnessDisposedError`
5
- * synchronously once the harness has been disposed (via `cleanup()`).
6
- *
7
- * Properties NOT in this set — `cleanup`, `mode`, `poisoned`, the runtime
8
- * accessors, well-known Symbols, and the promise-protocol hooks
9
- * (`then`/`catch`/`finally`) — always pass through. That keeps:
10
- * - `await harness` from breaking on `.then` access
11
- * - debug tools (`console.log`, `util.inspect`) from throwing
12
- * - idempotent `cleanup()` callable post-poisoning
13
- *
14
- * New Harness methods that should fail post-cleanup MUST be added here.
15
- */
16
- const POISONED_METHODS: ReadonlySet<string> = new Set([
17
- "deployCodeObject",
18
- "upgradeCodeObject",
19
- "runViewFunction",
20
- "runMoveScript",
21
- ]);
22
-
23
- /**
24
- * Wrap a Harness instance in a Proxy that throws `HarnessDisposedError`
25
- * synchronously on access to any method in {@link POISONED_METHODS} once
26
- * `isPoisoned()` returns true.
27
- */
28
- export function createHarnessProxy<T extends object>(
29
- target: T,
30
- isPoisoned: () => boolean
31
- ): T {
32
- return new Proxy(target, {
33
- get(obj, prop, receiver) {
34
- if (typeof prop === "string" && POISONED_METHODS.has(prop) && isPoisoned()) {
35
- throw new HarnessDisposedError(prop);
36
- }
37
- return Reflect.get(obj, prop, receiver);
38
- },
39
- });
40
- }
@@ -1,200 +0,0 @@
1
- import { existsSync } from "fs";
2
- import { extname } from "path";
3
- import { PrivateKey, PrivateKeyVariants } from "@aptos-labs/ts-sdk";
4
- import type { MovehatRuntime } from "../types/runtime.js";
5
- import type {
6
- RunMoveScriptOptions,
7
- MoveScriptResult,
8
- } from "../types/harness.js";
9
- import { validatePathSafety } from "../core/shell.js";
10
- import { CliExecutionError } from "../errors.js";
11
- import { runCli } from "../utils/runCli.js";
12
- import { parseTxHash } from "../utils/parseCliOutput.js";
13
- import { logger, isVerbose } from "../ui/index.js";
14
- import {
15
- writeTempKeyFile,
16
- removeKeyFile,
17
- removeKeyFileSyncBestEffort,
18
- ensureSignalHandler,
19
- cleanupCallbacks,
20
- } from "../core/movementProfile.js";
21
-
22
- /**
23
- * Execute a Move script via `movement move run-script`.
24
- *
25
- * Auto-detects the script kind from the extension:
26
- * - `.move` source → `--script-path` (CLI compiles inline)
27
- * - `.mv` compiled bytecode → `--compiled-script-path`
28
- *
29
- * Reuses Publisher's security model via the shared `movementProfile`
30
- * helpers: per-invocation temp key file (0o600), SIGINT-safe sync
31
- * cleanup, `--private-key-file` auth (key never appears in `ps`
32
- * output or in the user's `~/.aptos/config.yaml`).
33
- *
34
- * Returns {@link MoveScriptResult}. `txHash` is guaranteed; `success`
35
- * and `vmStatus` are best-effort parsed from the CLI's Result JSON.
36
- *
37
- * @internal — called from `Harness.runMoveScript`.
38
- */
39
- export async function runMoveScript(
40
- runtime: MovehatRuntime,
41
- options: RunMoveScriptOptions
42
- ): Promise<MoveScriptResult> {
43
- const config = runtime.config;
44
- const account = runtime.account;
45
-
46
- // Synchronous validation before any CLI call.
47
- if (!options.scriptPath || typeof options.scriptPath !== "string") {
48
- throw new Error(
49
- "Harness.runMoveScript requires options.scriptPath (string path to .move or .mv)."
50
- );
51
- }
52
- const ext = extname(options.scriptPath).toLowerCase();
53
- let scriptFlag: "--script-path" | "--compiled-script-path";
54
- if (ext === ".move") {
55
- scriptFlag = "--script-path";
56
- } else if (ext === ".mv") {
57
- scriptFlag = "--compiled-script-path";
58
- } else {
59
- throw new Error(
60
- `Harness.runMoveScript: unsupported script extension '${ext || "<none>"}'. ` +
61
- `Expected '.move' (source — CLI auto-compiles) or '.mv' (pre-compiled bytecode).`
62
- );
63
- }
64
- if (!existsSync(options.scriptPath)) {
65
- throw new Error(
66
- `Harness.runMoveScript: script not found at '${options.scriptPath}'.`
67
- );
68
- }
69
-
70
- const safeScriptPath = validatePathSafety(options.scriptPath, "script path");
71
-
72
- logger.step(
73
- `Running Move script '${options.scriptPath}' on ${config.network}...`
74
- );
75
-
76
- try {
77
- const deployerAddress = account.accountAddress.toString();
78
-
79
- // Format the private key into AIP-80 shape before writing to the
80
- // temp key file. `formatPrivateKey` is idempotent for already-
81
- // prefixed inputs.
82
- const formattedPrivateKey = PrivateKey.formatPrivateKey(
83
- config.privateKey,
84
- PrivateKeyVariants.Ed25519,
85
- );
86
-
87
- // Pass the private key via a 0o600 temp file (--private-key-file)
88
- // and the on-chain address via --sender-account. Avoids the CLI's
89
- // profile-yaml lookup chain entirely (no CWD / HOME / .aptos /
90
- // .movement dance, no CLI-variant dependency).
91
- const keyFilePath = writeTempKeyFile(formattedPrivateKey);
92
-
93
- // SIGINT-safe sync cleanup BEFORE the CLI call so the private key
94
- // never persists on disk after an abnormal exit. The signal-handler
95
- // path uses the best-effort variant because the event loop is dead
96
- // and we cannot logger.warning.
97
- ensureSignalHandler();
98
- const syncCleanup = () => removeKeyFileSyncBestEffort(keyFilePath);
99
- cleanupCallbacks.add(syncCleanup);
100
-
101
- let scriptOut = "";
102
- try {
103
- const typeArgsFragment: string[] =
104
- options.typeArgs && options.typeArgs.length > 0
105
- ? ["--type-args", ...options.typeArgs]
106
- : [];
107
- const argsFragment: string[] =
108
- options.args && options.args.length > 0
109
- ? ["--args", ...options.args]
110
- : [];
111
-
112
- const result = await runCli(
113
- {
114
- command: "movement",
115
- args: [
116
- "move",
117
- "run-script",
118
- "--private-key-file",
119
- keyFilePath,
120
- "--sender-account",
121
- deployerAddress,
122
- "--url",
123
- config.rpc,
124
- "--assume-yes",
125
- scriptFlag,
126
- safeScriptPath,
127
- ...typeArgsFragment,
128
- ...argsFragment,
129
- ],
130
- timeoutMs: 120000,
131
- },
132
- { adapter: options.adapter }
133
- );
134
- scriptOut = result.stdout;
135
- // Both streams gated behind isVerbose(); Movement CLI uses
136
- // stderr for progress messages too. Real failures throw via
137
- // CliExecutionError and are surfaced from the catch below.
138
- if (isVerbose() && result.stdout) logger.info(result.stdout.trim(), 2);
139
- if (isVerbose() && result.stderr) logger.info(result.stderr.trim(), 2);
140
- } finally {
141
- // Observable cleanup — emit a warning if the unlink failed and
142
- // the file is still on disk (private key would persist silently
143
- // otherwise).
144
- const cleanupErr = removeKeyFile(keyFilePath);
145
- if (cleanupErr) {
146
- logger.warning(
147
- `Failed to remove temp key file '${keyFilePath}': ${cleanupErr.message}. ` +
148
- `The file has mode 0o600 but should be removed manually: rm ${keyFilePath}`
149
- );
150
- }
151
- cleanupCallbacks.delete(syncCleanup);
152
- }
153
-
154
- const txHash = parseTxHash(scriptOut);
155
- if (!txHash) {
156
- throw new Error(
157
- `Could not parse transaction hash from 'move run-script' output. ` +
158
- `Captured stdout:\n${scriptOut.slice(0, 1000)}`
159
- );
160
- }
161
-
162
- const success = parseSuccess(scriptOut);
163
- const vmStatus = parseVmStatus(scriptOut);
164
-
165
- logger.success(`Move script executed (tx ${txHash}).`);
166
-
167
- const out: MoveScriptResult = { txHash };
168
- if (success !== undefined) out.success = success;
169
- if (vmStatus !== undefined) out.vmStatus = vmStatus;
170
- return out;
171
- } catch (error) {
172
- if (error instanceof CliExecutionError) {
173
- if (error.stdoutPreview) logger.info(error.stdoutPreview, 2);
174
- logger.error(`Failed to run Move script: ${error.message}\n${error.stderr}`);
175
- } else {
176
- const err = error instanceof Error ? error : new Error(String(error));
177
- logger.error(`Failed to run Move script: ${err.message}`);
178
- }
179
- throw error;
180
- }
181
- }
182
-
183
- /**
184
- * Best-effort parse of the `"success": true|false` field from
185
- * Movement CLI's Result JSON block. Returns `undefined` on no match.
186
- */
187
- function parseSuccess(stdout: string): boolean | undefined {
188
- const m = stdout.match(/"success"\s*:\s*(true|false)/);
189
- if (!m) return undefined;
190
- return m[1] === "true";
191
- }
192
-
193
- /**
194
- * Best-effort parse of the `"vm_status"` string. Returns `undefined`
195
- * on no match.
196
- */
197
- function parseVmStatus(stdout: string): string | undefined {
198
- const m = stdout.match(/"vm_status"\s*:\s*"([^"]*)"/);
199
- return m?.[1];
200
- }
@@ -1,34 +0,0 @@
1
- import type { MoveFunctionId } from "@aptos-labs/ts-sdk";
2
- import type { MovehatRuntime } from "../types/runtime.js";
3
- import type { RunViewFunctionOptions } from "../types/harness.js";
4
-
5
- /**
6
- * Execute a Move view function via the Aptos SDK (no CLI invocation).
7
- *
8
- * Returns the SDK's raw `unknown[]` — the Move boundary may return a
9
- * tuple of any arity. Callers destructure:
10
- *
11
- * ```ts
12
- * const [count] = await harness.runViewFunction({
13
- * function: "0xCAFE::counter::get",
14
- * functionArguments: ["0xdeployer"],
15
- * });
16
- * ```
17
- *
18
- * Works on all 3 harness modes (createLocal, createFork, createLive) —
19
- * view functions read on-chain state without writing.
20
- *
21
- * @internal — called from `Harness.runViewFunction`.
22
- */
23
- export async function runViewFunction(
24
- runtime: MovehatRuntime,
25
- options: RunViewFunctionOptions
26
- ): Promise<unknown[]> {
27
- return runtime.aptos.view({
28
- payload: {
29
- function: options.function as MoveFunctionId,
30
- typeArguments: options.typeArguments ?? [],
31
- functionArguments: (options.functionArguments ?? []) as never[],
32
- },
33
- });
34
- }