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,148 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import type { ClientRequest, IncomingMessage } from "node:http";
3
- import { EventEmitter } from "node:events";
4
-
5
- /**
6
- * Tests for `MovementApiClient` Authorization header injection —
7
- * verifies the apiKey threading from `Harness.createFork`.
8
- *
9
- * Strategy: `vi.mock` `node:https` and `node:http` so the test
10
- * captures the request options passed to `client.get(url, options, cb)`
11
- * without making real network requests. Two assertions:
12
- *
13
- * 1. When the client is constructed with an apiKey, every `get`
14
- * call carries `Authorization: Bearer <apiKey>` in
15
- * `options.headers`.
16
- * 2. When constructed without an apiKey, no Authorization header
17
- * is added (back-compat for unauthenticated public endpoints).
18
- */
19
-
20
- const httpsGet = vi.fn();
21
- const httpGet = vi.fn();
22
-
23
- vi.mock("https", () => ({
24
- default: { get: httpsGet },
25
- get: httpsGet,
26
- }));
27
- vi.mock("http", () => ({
28
- default: { get: httpGet },
29
- get: httpGet,
30
- }));
31
-
32
- /**
33
- * Build a fake `IncomingMessage`-like emitter that immediately emits
34
- * a valid JSON body and ends. The MovementApiClient.get callback
35
- * consumes the response via `data` / `end` events.
36
- */
37
- function makeFakeResponse(body: string, statusCode = 200): IncomingMessage {
38
- const res = new EventEmitter() as unknown as IncomingMessage;
39
- (res as unknown as { statusCode: number }).statusCode = statusCode;
40
- // Use setImmediate so the listener attaches before the events fire.
41
- setImmediate(() => {
42
- (res as unknown as EventEmitter).emit("data", body);
43
- (res as unknown as EventEmitter).emit("end");
44
- });
45
- return res;
46
- }
47
-
48
- /**
49
- * Capture the options arg from `client.get(url, options, callback)`
50
- * and immediately resolve with a fake successful ledger-info response.
51
- * Returns the captured options for assertion.
52
- */
53
- function setupGetCapture(): {
54
- captured: { url?: string; options?: { headers?: Record<string, string> } };
55
- } {
56
- const captured: {
57
- url?: string;
58
- options?: { headers?: Record<string, string> };
59
- } = {};
60
-
61
- const handler = (
62
- url: string,
63
- options:
64
- | { headers?: Record<string, string> }
65
- | ((res: IncomingMessage) => void),
66
- cb?: (res: IncomingMessage) => void
67
- ): ClientRequest => {
68
- captured.url = url;
69
- // Distinguish (url, callback) vs (url, options, callback) overloads.
70
- let callback: ((res: IncomingMessage) => void) | undefined;
71
- if (typeof options === "function") {
72
- callback = options;
73
- } else {
74
- captured.options = options;
75
- callback = cb;
76
- }
77
-
78
- const fakeReq = new EventEmitter() as unknown as ClientRequest;
79
- (fakeReq as unknown as { end: () => void }).end = () => {};
80
- // F3: api.ts now installs a setTimeout on the request and may call
81
- // destroy() on overflow / timeout. Stub both so this happy-path
82
- // capture mock still satisfies the new contract.
83
- (fakeReq as unknown as { setTimeout: (ms: number, cb?: () => void) => void }).setTimeout = () => {};
84
- (fakeReq as unknown as { destroy: () => void }).destroy = () => {};
85
-
86
- if (callback) {
87
- const body = JSON.stringify({
88
- chain_id: 250,
89
- ledger_version: "1",
90
- ledger_timestamp: "0",
91
- epoch: "0",
92
- block_height: "0",
93
- });
94
- callback(makeFakeResponse(body));
95
- }
96
- return fakeReq;
97
- };
98
-
99
- httpsGet.mockImplementation(handler);
100
- httpGet.mockImplementation(handler);
101
-
102
- return { captured };
103
- }
104
-
105
- describe("MovementApiClient — Authorization header (apiKey wiring)", () => {
106
- beforeEach(() => {
107
- httpsGet.mockReset();
108
- httpGet.mockReset();
109
- });
110
-
111
- afterEach(() => {
112
- vi.restoreAllMocks();
113
- });
114
-
115
- it("injects 'Authorization: Bearer <apiKey>' when constructed with an apiKey", async () => {
116
- const { captured } = setupGetCapture();
117
-
118
- const { MovementApiClient } = await import("../../fork/api.js");
119
- const client = new MovementApiClient(
120
- "https://testnet.example.com/v1",
121
- "secret-key-123"
122
- );
123
-
124
- await client.getLedgerInfo();
125
-
126
- expect(captured.url).toBe("https://testnet.example.com/v1/");
127
- expect(captured.options).toBeDefined();
128
- expect(captured.options?.headers).toEqual({
129
- Authorization: "Bearer secret-key-123",
130
- });
131
- expect(httpsGet).toHaveBeenCalledTimes(1);
132
- });
133
-
134
- it("omits the Authorization header when constructed without an apiKey (back-compat)", async () => {
135
- const { captured } = setupGetCapture();
136
-
137
- const { MovementApiClient } = await import("../../fork/api.js");
138
- const client = new MovementApiClient("https://testnet.example.com/v1");
139
-
140
- await client.getLedgerInfo();
141
-
142
- expect(captured.url).toBe("https://testnet.example.com/v1/");
143
- if (captured.options !== undefined) {
144
- expect(captured.options.headers).toBeUndefined();
145
- }
146
- expect(httpsGet).toHaveBeenCalledTimes(1);
147
- });
148
- });
@@ -1,150 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import type { ClientRequest, IncomingMessage } from "node:http";
3
- import { EventEmitter } from "node:events";
4
-
5
- /**
6
- * F3 — MovementApiClient must bound responses by time AND bytes.
7
- *
8
- * Without these guards a malicious / hung upstream can:
9
- * - leak the request promise forever (never emits 'end'), or
10
- * - exhaust heap by pushing unbounded `data` chunks.
11
- *
12
- * Strategy mirrors src/__tests__/fork/api.test.ts: vi.mock node:http
13
- * and node:https, intercept `client.get(url, options, cb)`, and feed
14
- * a controllable `IncomingMessage` to the callback. The fake
15
- * `ClientRequest` exposes `setTimeout`, `destroy`, and emits 'error' /
16
- * 'timeout' so we can drive the failure modes from the test.
17
- */
18
-
19
- interface FakeReq extends EventEmitter {
20
- end(): void;
21
- destroy(err?: Error): void;
22
- setTimeout(ms: number, cb?: () => void): void;
23
- destroyed: boolean;
24
- }
25
-
26
- const httpsGet = vi.fn();
27
- const httpGet = vi.fn();
28
-
29
- vi.mock("https", () => ({ default: { get: httpsGet }, get: httpsGet }));
30
- vi.mock("http", () => ({ default: { get: httpGet }, get: httpGet }));
31
-
32
- function makeFakeReq(): FakeReq {
33
- const req = new EventEmitter() as FakeReq;
34
- req.destroyed = false;
35
- let timeoutHandle: NodeJS.Timeout | undefined;
36
- req.end = () => {};
37
- req.destroy = (err?: Error) => {
38
- req.destroyed = true;
39
- if (timeoutHandle) clearTimeout(timeoutHandle);
40
- setImmediate(() => req.emit("error", err ?? new Error("destroyed")));
41
- };
42
- req.setTimeout = (ms: number, cb?: () => void) => {
43
- timeoutHandle = setTimeout(() => {
44
- req.emit("timeout");
45
- if (cb) cb();
46
- }, ms);
47
- // Don't keep the event loop alive — Node sets this itself but the
48
- // mock has no native socket to inherit from.
49
- timeoutHandle.unref?.();
50
- };
51
- return req;
52
- }
53
-
54
- function makeUnresolvableResponse(): IncomingMessage {
55
- const res = new EventEmitter() as unknown as IncomingMessage;
56
- (res as unknown as { statusCode: number }).statusCode = 200;
57
- return res;
58
- }
59
-
60
- function makeStreamingResponse(
61
- bytesPerChunk: number,
62
- chunks: number
63
- ): IncomingMessage {
64
- const res = new EventEmitter() as unknown as IncomingMessage;
65
- (res as unknown as { statusCode: number }).statusCode = 200;
66
- setImmediate(() => {
67
- let i = 0;
68
- const pump = () => {
69
- if (i >= chunks) {
70
- (res as unknown as EventEmitter).emit("end");
71
- return;
72
- }
73
- (res as unknown as EventEmitter).emit(
74
- "data",
75
- Buffer.alloc(bytesPerChunk, 0x61)
76
- );
77
- i++;
78
- setImmediate(pump);
79
- };
80
- pump();
81
- });
82
- return res;
83
- }
84
-
85
- describe("F3 — MovementApiClient timeouts and byte cap", () => {
86
- beforeEach(() => {
87
- httpsGet.mockReset();
88
- httpGet.mockReset();
89
- });
90
-
91
- afterEach(() => {
92
- vi.restoreAllMocks();
93
- });
94
-
95
- it("rejects with a timeout error when the upstream never responds", async () => {
96
- const fakeReq = makeFakeReq();
97
- httpGet.mockImplementation(
98
- (
99
- _url: string,
100
- options: unknown,
101
- cb?: (res: IncomingMessage) => void
102
- ) => {
103
- const callback =
104
- typeof options === "function"
105
- ? (options as (r: IncomingMessage) => void)
106
- : cb;
107
- if (callback) callback(makeUnresolvableResponse());
108
- return fakeReq as unknown as ClientRequest;
109
- }
110
- );
111
-
112
- const { MovementApiClient } = await import("../../fork/api.js");
113
- const client = new MovementApiClient("http://hung.example/v1", undefined, {
114
- timeoutMs: 25,
115
- maxBytes: 1024 * 1024,
116
- });
117
-
118
- await expect(client.getLedgerInfo()).rejects.toThrow(/timed out|timeout/i);
119
- expect(fakeReq.destroyed).toBe(true);
120
- });
121
-
122
- it("rejects and destroys the request when the response exceeds maxBytes", async () => {
123
- const fakeReq = makeFakeReq();
124
- httpGet.mockImplementation(
125
- (
126
- _url: string,
127
- options: unknown,
128
- cb?: (res: IncomingMessage) => void
129
- ) => {
130
- const callback =
131
- typeof options === "function"
132
- ? (options as (r: IncomingMessage) => void)
133
- : cb;
134
- if (callback) callback(makeStreamingResponse(2048, 100));
135
- return fakeReq as unknown as ClientRequest;
136
- }
137
- );
138
-
139
- const { MovementApiClient } = await import("../../fork/api.js");
140
- const client = new MovementApiClient("http://big.example/v1", undefined, {
141
- timeoutMs: 5000,
142
- maxBytes: 4096,
143
- });
144
-
145
- await expect(client.getLedgerInfo()).rejects.toThrow(
146
- /maxBytes|too large|exceeded/i
147
- );
148
- expect(fakeReq.destroyed).toBe(true);
149
- });
150
- });
@@ -1,57 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it } from "vitest";
2
-
3
- import { Harness } from "../../harness/index.js";
4
- import { setupHarnessTestFixture, type HarnessTestFixture } from "./_fixture.js";
5
-
6
- describe("Harness.createLive", () => {
7
- let fixture: HarnessTestFixture;
8
-
9
- beforeEach(() => {
10
- fixture = setupHarnessTestFixture({
11
- extraNetworks: {
12
- custom: {
13
- url: "https://custom.example.com/v1",
14
- chainId: "custom",
15
- accounts: ["0x" + "a".repeat(64)],
16
- },
17
- },
18
- });
19
- });
20
-
21
- afterEach(() => {
22
- fixture.teardown();
23
- });
24
-
25
- it("returns a Harness bound to the requested network with mode='live'", async () => {
26
- const harness = await Harness.createLive("testnet");
27
- try {
28
- expect(harness.mode).toBe("live");
29
- expect(harness.runtime).toBeDefined();
30
- expect(harness.runtime.network.name).toBe("testnet");
31
- expect(harness.runtime.network.rpc).toContain("testnet.movementnetwork.xyz");
32
- // createLive does not own a local node or fork server.
33
- expect(harness.localNode).toBeUndefined();
34
- expect(harness.forkServer).toBeUndefined();
35
- expect(harness.forkManager).toBeUndefined();
36
- } finally {
37
- await harness.cleanup();
38
- }
39
- });
40
-
41
- it("can switch networks via the first argument", async () => {
42
- const harness = await Harness.createLive("custom");
43
- try {
44
- expect(harness.runtime.network.name).toBe("custom");
45
- expect(harness.runtime.network.rpc).toContain("custom.example.com");
46
- } finally {
47
- await harness.cleanup();
48
- }
49
- });
50
-
51
- it("cleanup() is a no-op for createLive (no owned services) but still poisons", async () => {
52
- const harness = await Harness.createLive("testnet");
53
- expect(harness.poisoned).toBe(false);
54
- await harness.cleanup();
55
- expect(harness.poisoned).toBe(true);
56
- });
57
- });
@@ -1,111 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it } from "vitest";
2
-
3
- import { Harness, HarnessDisposedError } from "../../harness/index.js";
4
- import { setupHarnessTestFixture, type HarnessTestFixture } from "./_fixture.js";
5
-
6
- /**
7
- * Proxy poisoning is the load-bearing safety guarantee of the Harness:
8
- * once cleaned up, any further deploy / view / script / upgrade call
9
- * must throw `HarnessDisposedError` synchronously on property access —
10
- * not after the awaited method body. These tests lock that contract.
11
- *
12
- * Uses `Harness.createLive(network)` because it does not spawn a real
13
- * Movement node — `initRuntime` only constructs the SDK client (no RPC
14
- * round-trip) from the fixture config. `createLocal` / `createFork`
15
- * runtime tests live in the integration suite.
16
- */
17
- describe("Harness — proxy poisoning", () => {
18
- let fixture: HarnessTestFixture;
19
-
20
- beforeEach(() => {
21
- fixture = setupHarnessTestFixture();
22
- });
23
-
24
- afterEach(() => {
25
- fixture.teardown();
26
- });
27
-
28
- it("cleanup() flips poisoned to true", async () => {
29
- const harness = await Harness.createLive("testnet");
30
- expect(harness.poisoned).toBe(false);
31
- await harness.cleanup();
32
- expect(harness.poisoned).toBe(true);
33
- });
34
-
35
- it("cleanup() is idempotent", async () => {
36
- const harness = await Harness.createLive("testnet");
37
- await harness.cleanup();
38
- // Second call must not throw and must leave the harness poisoned.
39
- await expect(harness.cleanup()).resolves.toBeUndefined();
40
- expect(harness.poisoned).toBe(true);
41
- });
42
-
43
- it("post-cleanup, deployCodeObject throws HarnessDisposedError synchronously on property access", async () => {
44
- const harness = await Harness.createLive("testnet");
45
- await harness.cleanup();
46
-
47
- // Property access itself throws — the call site never gets a Promise back.
48
- // The args ({moduleName: "x"}) typecheck but never execute (the get trap
49
- // fires before the method body runs).
50
- expect(() => harness.deployCodeObject({ moduleName: "x" })).toThrow(
51
- HarnessDisposedError
52
- );
53
- });
54
-
55
- it("post-cleanup, upgradeCodeObject / runViewFunction / runMoveScript all throw HarnessDisposedError synchronously", async () => {
56
- const harness = await Harness.createLive("testnet");
57
- await harness.cleanup();
58
-
59
- expect(() =>
60
- harness.upgradeCodeObject({ moduleName: "x", objectAddress: "0x1" })
61
- ).toThrow(HarnessDisposedError);
62
- expect(() =>
63
- harness.runViewFunction({ function: "0x1::m::f" })
64
- ).toThrow(HarnessDisposedError);
65
- expect(() =>
66
- harness.runMoveScript({ scriptPath: "irrelevant.move" })
67
- ).toThrow(HarnessDisposedError);
68
- });
69
-
70
- it("HarnessDisposedError carries the offending method name", async () => {
71
- const harness = await Harness.createLive("testnet");
72
- await harness.cleanup();
73
-
74
- let captured: unknown;
75
- try {
76
- harness.deployCodeObject({ moduleName: "x" });
77
- } catch (err) {
78
- captured = err;
79
- }
80
- expect(captured).toBeInstanceOf(HarnessDisposedError);
81
- expect((captured as HarnessDisposedError).methodName).toBe("deployCodeObject");
82
- });
83
-
84
- it("post-cleanup, metadata accessors (mode, poisoned, runtime) still work", async () => {
85
- const harness = await Harness.createLive("testnet");
86
- await harness.cleanup();
87
-
88
- // None of these should throw — only the 4 poisoned methods do.
89
- expect(harness.mode).toBe("live");
90
- expect(harness.poisoned).toBe(true);
91
- expect(harness.runtime).toBeDefined();
92
- });
93
-
94
- // Dedicated suites exist for each of the four methods
95
- // (codeObject.deploy/upgrade.test.ts, view.test.ts, script.test.ts).
96
-
97
- it("await harness.someAsyncMethod() pattern: post-cleanup throw happens before await", async () => {
98
- const harness = await Harness.createLive("testnet");
99
- await harness.cleanup();
100
-
101
- // The error is synchronous (property access), but the typical caller
102
- // shape uses await. Confirm that pattern surfaces the error too.
103
- let captured: unknown;
104
- try {
105
- await harness.deployCodeObject({ moduleName: "x" });
106
- } catch (err) {
107
- captured = err;
108
- }
109
- expect(captured).toBeInstanceOf(HarnessDisposedError);
110
- });
111
- });
@@ -1,131 +0,0 @@
1
- import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from "node:fs";
2
- import { tmpdir } from "node:os";
3
- import { join } from "node:path";
4
- import { _resetConfigCache } from "../../core/config.js";
5
-
6
- /**
7
- * Shared test fixture for Harness tests.
8
- *
9
- * Six test files in `__tests__/harness/` all needed the same setup
10
- * boilerplate (~30 LoC each) before this helper landed: tmpdir for
11
- * cwd, write a `movehat.config.js`, write a minimal Move package
12
- * (`move/Move.toml` + `move/sources/dummy.move`), chdir, reset the
13
- * mtime-based config cache, manage HOME for tests that exercise
14
- * `~/.aptos/config.yaml` profile management. Extracted as a single
15
- * helper to eliminate the drift surface across siblings.
16
- *
17
- * The defaults match the most common test shape: a single `testnet`
18
- * network and no HOME management. Tests that need more (a `custom`
19
- * network for switching, an isolated HOME for profile tests) opt in
20
- * via the options.
21
- *
22
- * @internal — not exported from `src/index.ts`. Test-only.
23
- */
24
-
25
- /**
26
- * Additional networks to merge into the fixture's `movehat.config.js`.
27
- * Keyed by network name. Each network needs `url` + `chainId` at
28
- * minimum; pass `accounts` when the test exercises a code path that
29
- * requires explicit account configuration (e.g. mainnet-like security
30
- * checks in `resolveNetworkConfig`).
31
- */
32
- export interface ExtraNetwork {
33
- url: string;
34
- chainId: string;
35
- accounts?: string[];
36
- }
37
-
38
- export interface HarnessTestFixtureOptions {
39
- /** Additional networks merged on top of the default `testnet` entry. */
40
- extraNetworks?: Record<string, ExtraNetwork>;
41
-
42
- /**
43
- * When `true`, manage a separate `process.env.HOME` directory for
44
- * the test. Used by tests that exercise `~/.aptos/config.yaml`
45
- * profile writes (codeObject.* and script.* test suites).
46
- */
47
- withTmpHome?: boolean;
48
- }
49
-
50
- export interface HarnessTestFixture {
51
- /** Fresh per-test cwd. The test is chdir'd here. */
52
- tmpCwd: string;
53
- /** Fresh per-test HOME, only set when `withTmpHome: true`. */
54
- tmpHome?: string;
55
- /** Restore cwd + HOME, remove the tmp dirs, and reset config cache. */
56
- teardown: () => void;
57
- }
58
-
59
- /**
60
- * Build a fresh per-test fixture. Call from `beforeEach`, capture the
61
- * returned object, and call `fixture.teardown()` in `afterEach`.
62
- */
63
- export function setupHarnessTestFixture(
64
- options: HarnessTestFixtureOptions = {}
65
- ): HarnessTestFixture {
66
- const tmpCwd = mkdtempSync(join(tmpdir(), "movehat-harness-test-"));
67
- const tmpHome = options.withTmpHome
68
- ? mkdtempSync(join(tmpdir(), "movehat-harness-home-"))
69
- : undefined;
70
-
71
- // Build the network map. Default `testnet` + caller's extras.
72
- const networks: Record<string, ExtraNetwork> = {
73
- testnet: {
74
- url: "https://testnet.movementnetwork.xyz/v1",
75
- chainId: "testnet",
76
- },
77
- ...(options.extraNetworks ?? {}),
78
- };
79
-
80
- writeFileSync(
81
- join(tmpCwd, "movehat.config.js"),
82
- `export default {
83
- defaultNetwork: "testnet",
84
- networks: ${JSON.stringify(networks, null, 2)}
85
- };
86
- `
87
- );
88
-
89
- // Minimal Move package — `extractNamedAddresses` reads from
90
- // `<moveDir>/sources/*.move`; an empty file yields an empty Set.
91
- const moveDir = join(tmpCwd, "move");
92
- mkdirSync(join(moveDir, "sources"), { recursive: true });
93
- writeFileSync(
94
- join(moveDir, "Move.toml"),
95
- `[package]
96
- name = "dummy"
97
- version = "0.0.1"
98
-
99
- [addresses]
100
- `
101
- );
102
- writeFileSync(join(moveDir, "sources", "dummy.move"), "// intentionally empty\n");
103
-
104
- const origCwd = process.cwd();
105
- const origHome = process.env.HOME;
106
- process.chdir(tmpCwd);
107
- if (tmpHome !== undefined) process.env.HOME = tmpHome;
108
- _resetConfigCache();
109
-
110
- const teardown = () => {
111
- try {
112
- process.chdir(origCwd);
113
- } finally {
114
- if (options.withTmpHome) {
115
- if (origHome === undefined) delete process.env.HOME;
116
- else process.env.HOME = origHome;
117
- if (tmpHome !== undefined && existsSync(tmpHome)) {
118
- rmSync(tmpHome, { recursive: true, force: true });
119
- }
120
- }
121
- if (existsSync(tmpCwd)) {
122
- rmSync(tmpCwd, { recursive: true, force: true });
123
- }
124
- _resetConfigCache();
125
- }
126
- };
127
-
128
- const fixture: HarnessTestFixture = { tmpCwd, teardown };
129
- if (tmpHome !== undefined) fixture.tmpHome = tmpHome;
130
- return fixture;
131
- }