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,281 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
- import { vol } from 'memfs';
3
- import { ForkStorage } from '../storage.js';
4
-
5
- // Mock fs module
6
- vi.mock('fs', async () => {
7
- const memfs = await import('memfs');
8
- return memfs.fs;
9
- });
10
-
11
- describe('ForkStorage', () => {
12
- const forkPath = '/test-fork';
13
-
14
- beforeEach(() => {
15
- vol.reset();
16
- });
17
-
18
- afterEach(() => {
19
- vol.reset();
20
- });
21
-
22
- describe('initialize', () => {
23
- it('should create fork directory structure', () => {
24
- const storage = new ForkStorage(forkPath);
25
- storage.initialize();
26
-
27
- expect(vol.existsSync(forkPath)).toBe(true);
28
- expect(vol.existsSync(`${forkPath}/resources`)).toBe(true);
29
- expect(vol.existsSync(`${forkPath}/cache`)).toBe(true);
30
- expect(vol.existsSync(`${forkPath}/cache/.gitignore`)).toBe(true);
31
- expect(vol.existsSync(`${forkPath}/accounts.json`)).toBe(true);
32
- });
33
-
34
- it('should not overwrite existing files', () => {
35
- vol.fromJSON({
36
- [`${forkPath}/accounts.json`]: '{"existing": "data"}',
37
- });
38
-
39
- const storage = new ForkStorage(forkPath);
40
- storage.initialize();
41
-
42
- const content = vol.readFileSync(`${forkPath}/accounts.json`, 'utf-8');
43
- expect(content).toBe('{"existing": "data"}');
44
- });
45
- });
46
-
47
- describe('exists', () => {
48
- it('should return false if fork does not exist', () => {
49
- const storage = new ForkStorage(forkPath);
50
- expect(storage.exists()).toBe(false);
51
- });
52
-
53
- it('should return false if metadata.json is missing', () => {
54
- vol.fromJSON({
55
- [`${forkPath}/accounts.json`]: '{}',
56
- });
57
-
58
- const storage = new ForkStorage(forkPath);
59
- expect(storage.exists()).toBe(false);
60
- });
61
-
62
- it('should return true if fork exists with metadata', () => {
63
- vol.fromJSON({
64
- [`${forkPath}/metadata.json`]: '{}',
65
- });
66
-
67
- const storage = new ForkStorage(forkPath);
68
- expect(storage.exists()).toBe(true);
69
- });
70
- });
71
-
72
- describe('metadata', () => {
73
- it('should save and load metadata', () => {
74
- vol.mkdirSync(forkPath, { recursive: true });
75
-
76
- const storage = new ForkStorage(forkPath);
77
- const metadata = {
78
- network: 'testnet',
79
- nodeUrl: 'https://testnet.example.com/v1',
80
- chainId: 250,
81
- ledgerVersion: '12345',
82
- timestamp: '1234567890',
83
- epoch: '100',
84
- blockHeight: '1000',
85
- createdAt: '2024-01-01T00:00:00.000Z',
86
- };
87
-
88
- storage.saveMetadata(metadata);
89
- const loaded = storage.loadMetadata();
90
-
91
- expect(loaded).toEqual(metadata);
92
- });
93
-
94
- it('should throw error if metadata does not exist', () => {
95
- const storage = new ForkStorage(forkPath);
96
- expect(() => storage.loadMetadata()).toThrow('Fork metadata not found');
97
- });
98
- });
99
-
100
- describe('accounts', () => {
101
- it('should save and get account state', () => {
102
- vol.fromJSON({
103
- [`${forkPath}/accounts.json`]: '{}',
104
- });
105
-
106
- const storage = new ForkStorage(forkPath);
107
- const accountState = {
108
- sequenceNumber: '10',
109
- authenticationKey: '0xabc123',
110
- };
111
-
112
- storage.saveAccount('0x123', accountState);
113
- const loaded = storage.getAccount('0x123');
114
-
115
- expect(loaded).toEqual(accountState);
116
- });
117
-
118
- it('should return null for non-existent account', () => {
119
- vol.fromJSON({
120
- [`${forkPath}/accounts.json`]: '{}',
121
- });
122
-
123
- const storage = new ForkStorage(forkPath);
124
- const result = storage.getAccount('0xnonexistent');
125
-
126
- expect(result).toBeNull();
127
- });
128
-
129
- it('should list all accounts', () => {
130
- vol.fromJSON({
131
- [`${forkPath}/accounts.json`]: JSON.stringify({
132
- '0x1': { sequenceNumber: '0' },
133
- '0x2': { sequenceNumber: '5' },
134
- '0x3': { sequenceNumber: '10' },
135
- }),
136
- });
137
-
138
- const storage = new ForkStorage(forkPath);
139
- const accounts = storage.listAccounts();
140
-
141
- expect(accounts).toHaveLength(3);
142
- expect(accounts).toContain('0x1');
143
- expect(accounts).toContain('0x2');
144
- expect(accounts).toContain('0x3');
145
- });
146
-
147
- it('should clear all accounts', () => {
148
- vol.fromJSON({
149
- [`${forkPath}/accounts.json`]: JSON.stringify({
150
- '0x1': { sequenceNumber: '0' },
151
- }),
152
- });
153
-
154
- const storage = new ForkStorage(forkPath);
155
- storage.clearAccounts();
156
-
157
- const accounts = storage.listAccounts();
158
- expect(accounts).toHaveLength(0);
159
- });
160
- });
161
-
162
- describe('resources', () => {
163
- beforeEach(() => {
164
- vol.fromJSON({
165
- [`${forkPath}/resources/.gitkeep`]: '',
166
- });
167
- });
168
-
169
- it('should save and get resource', () => {
170
- const storage = new ForkStorage(forkPath);
171
- const resource = { value: '100' };
172
-
173
- storage.saveResource('0x1', '0x1::coin::CoinStore', resource);
174
- const loaded = storage.getResource('0x1', '0x1::coin::CoinStore');
175
-
176
- expect(loaded).toEqual(resource);
177
- });
178
-
179
- it('should return null for non-existent resource', () => {
180
- const storage = new ForkStorage(forkPath);
181
- const result = storage.getResource('0x1', '0x1::nonexistent::Resource');
182
-
183
- expect(result).toBeNull();
184
- });
185
-
186
- it('should get all resources for an account', () => {
187
- vol.fromJSON({
188
- [`${forkPath}/resources/0x1.json`]: JSON.stringify({
189
- '0x1::coin::CoinStore': { value: '100' },
190
- '0x1::account::Account': { sequence: '5' },
191
- }),
192
- });
193
-
194
- const storage = new ForkStorage(forkPath);
195
- const resources = storage.getAllResources('0x1');
196
-
197
- expect(Object.keys(resources)).toHaveLength(2);
198
- expect(resources['0x1::coin::CoinStore']).toEqual({ value: '100' });
199
- });
200
-
201
- it('should check if resource exists', () => {
202
- vol.fromJSON({
203
- [`${forkPath}/resources/0x1.json`]: JSON.stringify({
204
- '0x1::coin::CoinStore': { value: '100' },
205
- }),
206
- });
207
-
208
- const storage = new ForkStorage(forkPath);
209
-
210
- expect(storage.hasResource('0x1', '0x1::coin::CoinStore')).toBe(true);
211
- expect(storage.hasResource('0x1', '0x1::nonexistent::Resource')).toBe(false);
212
- });
213
-
214
- it('should clear all resources', () => {
215
- vol.fromJSON({
216
- [`${forkPath}/resources/0x1.json`]: '{}',
217
- [`${forkPath}/resources/0x2.json`]: '{}',
218
- });
219
-
220
- const storage = new ForkStorage(forkPath);
221
- storage.clearResources();
222
-
223
- expect(vol.existsSync(`${forkPath}/resources/0x1.json`)).toBe(false);
224
- expect(vol.existsSync(`${forkPath}/resources/0x2.json`)).toBe(false);
225
- });
226
- });
227
-
228
- describe('address sanitization', () => {
229
- beforeEach(() => {
230
- vol.fromJSON({
231
- [`${forkPath}/resources/.gitkeep`]: '',
232
- });
233
- });
234
-
235
- it('should handle addresses with 0x prefix', () => {
236
- const storage = new ForkStorage(forkPath);
237
- storage.saveResource('0xabc123', 'test::Resource', { value: 1 });
238
-
239
- expect(vol.existsSync(`${forkPath}/resources/0xabc123.json`)).toBe(true);
240
- });
241
-
242
- it('should normalize address to lowercase', () => {
243
- const storage = new ForkStorage(forkPath);
244
- storage.saveResource('0xABC123', 'test::Resource', { value: 1 });
245
-
246
- expect(vol.existsSync(`${forkPath}/resources/0xabc123.json`)).toBe(true);
247
- });
248
-
249
- it('should reject invalid address formats', () => {
250
- const storage = new ForkStorage(forkPath);
251
-
252
- expect(() => {
253
- storage.saveResource('../../../etc/passwd', 'test::Resource', { value: 1 });
254
- }).toThrow('Invalid address format');
255
-
256
- expect(() => {
257
- storage.saveResource('0x123/../../etc', 'test::Resource', { value: 1 });
258
- }).toThrow('Invalid address format');
259
- });
260
-
261
- it('should reject addresses with more than 64 hex chars (Movement cap)', () => {
262
- const storage = new ForkStorage(forkPath);
263
- const sixtyFiveHex = '0x' + 'a'.repeat(65);
264
-
265
- expect(() => {
266
- storage.saveResource(sixtyFiveHex, 'test::Resource', { value: 1 });
267
- }).toThrow('Invalid address format');
268
- });
269
-
270
- it('should accept addresses exactly at the 64 hex char limit', () => {
271
- const storage = new ForkStorage(forkPath);
272
- const sixtyFourHex = '0x' + 'a'.repeat(64);
273
-
274
- expect(() => {
275
- storage.saveResource(sixtyFourHex, 'test::Resource', { value: 1 });
276
- }).not.toThrow();
277
-
278
- expect(vol.existsSync(`${forkPath}/resources/${sixtyFourHex}.json`)).toBe(true);
279
- });
280
- });
281
- });
@@ -1,97 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it } from 'vitest';
2
- import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs';
3
- import { tmpdir } from 'node:os';
4
- import { join } from 'node:path';
5
- import { snapshot, viewForkResource } from '../test.js';
6
- import type { ChildProcessAdapter, RunResult } from '../../utils/childProcessAdapter.js';
7
-
8
- /**
9
- * Guards the exitCode-failure path that CodeRabbit flagged on PR #100:
10
- * before this hardening, an `aptos` command that exited non-zero with a
11
- * stderr containing the word "Success" (or no stderr at all) could slip
12
- * past the stderr-defense check in `snapshot`, and a non-JSON stderr from
13
- * `view-resource` produced a cryptic JSON parse error instead of the
14
- * actual aptos failure.
15
- */
16
- describe('fork/test — exitCode failure paths', () => {
17
- let tmpCwd: string;
18
- let origCwd: string;
19
-
20
- beforeEach(() => {
21
- tmpCwd = mkdtempSync(join(tmpdir(), 'movehat-fork-test-'));
22
- origCwd = process.cwd();
23
- process.chdir(tmpCwd);
24
- });
25
-
26
- afterEach(() => {
27
- try {
28
- process.chdir(origCwd);
29
- } finally {
30
- rmSync(tmpCwd, { recursive: true, force: true });
31
- }
32
- });
33
-
34
- function adapterReturning(result: RunResult): ChildProcessAdapter {
35
- return {
36
- async run() {
37
- return result;
38
- },
39
- spawn() {
40
- throw new Error('spawn not used in fork/test failure-path tests');
41
- },
42
- };
43
- }
44
-
45
- it("snapshot throws on non-zero exit even when stderr contains 'Success'", async () => {
46
- // The pre-fix edge case: aptos exits 1, stderr says
47
- // "Failed: Success criteria not met" → the stderr.includes('Success')
48
- // gate returned false-positive ok, and a stale directory from a prior
49
- // run would mask the failure entirely.
50
- const adapter = adapterReturning({
51
- exitCode: 1,
52
- stdout: '',
53
- stderr: 'Failed: Success criteria not met for snapshot init',
54
- });
55
-
56
- await expect(snapshot({ name: 'edge', adapter })).rejects.toThrow(
57
- /Success criteria not met/
58
- );
59
- });
60
-
61
- it('snapshot still throws when a stale directory from a prior run exists (the full edge case)', async () => {
62
- // The pre-fix combined edge case: aptos exits non-zero, stderr happens
63
- // to contain "Success" (so the stderr.includes('Success') gate would
64
- // false-positive), AND the snapshot directory already exists from a
65
- // previous successful run (so the existsSync check would false-positive
66
- // too). The new exitCode check fires first and throws regardless.
67
- const stalePath = join(tmpCwd, '.movehat', 'snapshots', 'stale');
68
- mkdirSync(stalePath, { recursive: true });
69
- writeFileSync(join(stalePath, 'config.json'), '{}');
70
-
71
- const adapter = adapterReturning({
72
- exitCode: 1,
73
- stdout: '',
74
- stderr: 'Failed but Success was nearby',
75
- });
76
-
77
- await expect(
78
- snapshot({ name: 'stale', path: stalePath, adapter })
79
- ).rejects.toThrow(/Failed but Success was nearby/);
80
- });
81
-
82
- it('viewForkResource throws on non-zero exit with non-JSON stderr (informative message)', async () => {
83
- // Pre-fix the failure surfaced as "Unexpected token ..." from
84
- // JSON.parse, which obscured the actual aptos error.
85
- const adapter = adapterReturning({
86
- exitCode: 1,
87
- stdout: '',
88
- stderr: 'Error: session not found',
89
- });
90
-
91
- await expect(
92
- viewForkResource('/nonexistent/session', '0x1', '0x1::coin::CoinStore', {
93
- adapter,
94
- })
95
- ).rejects.toThrow(/session not found/);
96
- });
97
- });
package/src/fork/api.ts DELETED
@@ -1,190 +0,0 @@
1
- import https from 'https';
2
- import http from 'http';
3
- import { URL } from 'url';
4
- import type { LedgerInfo, AccountData, AccountResource } from '../types/fork.js';
5
- import { normalizeAddressShort } from '../utils/address.js';
6
-
7
- export interface MovementApiClientOptions {
8
- /** Abort the request after this many ms (default: 30_000). */
9
- timeoutMs?: number;
10
- /** Reject responses larger than this many bytes (default: 16 MiB). */
11
- maxBytes?: number;
12
- }
13
-
14
- const DEFAULT_TIMEOUT_MS = 30_000;
15
- const DEFAULT_MAX_BYTES = 16 * 1024 * 1024;
16
-
17
- /**
18
- * Client for interacting with Movement L1 JSON API.
19
- *
20
- * When constructed with an `apiKey`, every outgoing request carries
21
- * an `Authorization: Bearer <apiKey>` header. Use this for rate-
22
- * limited public endpoints (e.g. Movement testnet under load) or
23
- * auth-gated nodes.
24
- */
25
- export class MovementApiClient {
26
- private nodeUrl: string;
27
- private readonly apiKey?: string;
28
- private readonly timeoutMs: number;
29
- private readonly maxBytes: number;
30
-
31
- constructor(
32
- nodeUrl: string,
33
- apiKey?: string,
34
- options: MovementApiClientOptions = {}
35
- ) {
36
- // Remove trailing slash
37
- let normalized = nodeUrl.replace(/\/$/, '');
38
-
39
- // If URL already ends with /v1, use as is
40
- // Otherwise, assume it's the base URL
41
- if (!normalized.endsWith('/v1')) {
42
- // Base URL without /v1, we'll add it in requests
43
- }
44
-
45
- this.nodeUrl = normalized;
46
- if (apiKey !== undefined) this.apiKey = apiKey;
47
- this.timeoutMs = options.timeoutMs ?? DEFAULT_TIMEOUT_MS;
48
- this.maxBytes = options.maxBytes ?? DEFAULT_MAX_BYTES;
49
- }
50
-
51
- /**
52
- * Make a GET request to the API.
53
- *
54
- * Adds `Authorization: Bearer <apiKey>` when the client was
55
- * constructed with an `apiKey`. The header is omitted otherwise
56
- * to preserve backwards-compatible behavior for unauthenticated
57
- * public endpoints.
58
- */
59
- private async get<T>(path: string): Promise<T> {
60
- const fullUrl = `${this.nodeUrl}${path}`;
61
- const parsedUrl = new URL(fullUrl);
62
- const isHttps = parsedUrl.protocol === 'https:';
63
- const client = isHttps ? https : http;
64
-
65
- const requestOptions: {
66
- method: 'GET';
67
- headers?: Record<string, string>;
68
- } = { method: 'GET' };
69
- if (this.apiKey !== undefined) {
70
- requestOptions.headers = { Authorization: `Bearer ${this.apiKey}` };
71
- }
72
-
73
- const timeoutMs = this.timeoutMs;
74
- const maxBytes = this.maxBytes;
75
-
76
- return new Promise((resolve, reject) => {
77
- let settled = false;
78
- const settle = (fn: () => void) => {
79
- if (settled) return;
80
- settled = true;
81
- fn();
82
- };
83
-
84
- const req = client.get(fullUrl, requestOptions, (res) => {
85
- const chunks: Buffer[] = [];
86
- let totalBytes = 0;
87
-
88
- res.on('data', (chunk: Buffer | string) => {
89
- const buf = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
90
- totalBytes += buf.length;
91
- if (totalBytes > maxBytes) {
92
- req.destroy();
93
- settle(() =>
94
- reject(
95
- new Error(
96
- `Response exceeded maxBytes (${maxBytes}); ${totalBytes} bytes received before abort`
97
- )
98
- )
99
- );
100
- return;
101
- }
102
- chunks.push(buf);
103
- });
104
-
105
- res.on('end', () => {
106
- if (settled) return;
107
- const data = Buffer.concat(chunks).toString('utf8');
108
- if (res.statusCode !== 200) {
109
- settle(() =>
110
- reject(
111
- new Error(
112
- `API request failed with status ${res.statusCode}: ${data}`
113
- )
114
- )
115
- );
116
- return;
117
- }
118
-
119
- try {
120
- const parsed = JSON.parse(data);
121
- settle(() => resolve(parsed));
122
- } catch (err) {
123
- settle(() =>
124
- reject(new Error(`Failed to parse JSON response: ${err}`))
125
- );
126
- }
127
- });
128
- });
129
-
130
- req.setTimeout(timeoutMs, () => {
131
- req.destroy();
132
- settle(() =>
133
- reject(new Error(`API request timed out after ${timeoutMs}ms`))
134
- );
135
- });
136
-
137
- req.on('error', (err) => {
138
- settle(() => reject(new Error(`API request failed: ${err.message}`)));
139
- });
140
-
141
- req.end();
142
- });
143
- }
144
-
145
- /**
146
- * Build API path with proper prefix
147
- */
148
- private apiPath(suffix: string): string {
149
- // If nodeUrl already ends with /v1, just add the suffix
150
- // Otherwise add /v1 prefix
151
- return this.nodeUrl.endsWith('/v1') ? suffix : `/v1${suffix}`;
152
- }
153
-
154
- /**
155
- * Get ledger information
156
- */
157
- async getLedgerInfo(): Promise<LedgerInfo> {
158
- return this.get<LedgerInfo>(this.apiPath('/'));
159
- }
160
-
161
- /**
162
- * Get account information
163
- */
164
- async getAccount(address: string): Promise<AccountData> {
165
- const normalizedAddress = normalizeAddressShort(address);
166
-
167
- return this.get<AccountData>(this.apiPath(`/accounts/${normalizedAddress}`));
168
- }
169
-
170
- /**
171
- * Get a specific account resource
172
- */
173
- async getAccountResource(address: string, resourceType: string): Promise<any> {
174
- const normalizedAddress = normalizeAddressShort(address);
175
-
176
- // URL encode the resource type
177
- const encodedType = encodeURIComponent(resourceType);
178
-
179
- return this.get<any>(this.apiPath(`/accounts/${normalizedAddress}/resource/${encodedType}`));
180
- }
181
-
182
- /**
183
- * Get all resources for an account
184
- */
185
- async getAccountResources(address: string): Promise<AccountResource[]> {
186
- const normalizedAddress = normalizeAddressShort(address);
187
-
188
- return this.get<AccountResource[]>(this.apiPath(`/accounts/${normalizedAddress}/resources`));
189
- }
190
- }