movehat 0.2.3 → 0.2.5

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 +0 -1
  19. package/dist/commands/run.js +0 -1
  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 +0 -1
  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 +15 -2
  45. package/dist/fork/manager.js +20 -2
  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 +2 -3
  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 +1 -2
  89. package/dist/node/LocalNodeManager.js +6 -4
  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 +0 -1
  121. package/dist/utils/parseCliOutput.js +0 -1
  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,407 +0,0 @@
1
- import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest';
2
- import { vol, fs as memfsFs } from 'memfs';
3
-
4
- // Mock fs module - handle both default and named exports
5
- vi.mock('fs', () => {
6
- return {
7
- default: memfsFs,
8
- ...memfsFs,
9
- };
10
- });
11
-
12
- // Mock runCli so the compileCommand orchestrator tests below never hit
13
- // the real `movement` binary.
14
- const runCliMock = vi.fn();
15
- vi.mock('../../utils/runCli.js', () => ({
16
- runCli: runCliMock,
17
- }));
18
-
19
- // Mock loadUserConfig so we don't need a real movehat.config.ts on disk
20
- // (memfs replaces fs but not the dynamic-import path inside loadUserConfig).
21
- const loadUserConfigMock = vi.fn();
22
- vi.mock('../../core/config.js', () => ({
23
- loadUserConfig: loadUserConfigMock,
24
- }));
25
-
26
- // Import after mocks are set up
27
- const compileModule = await import('../compile.js');
28
- const { extractNamedAddresses, updateMoveToml } = compileModule;
29
- const compileCommand = compileModule.default;
30
-
31
- describe('extractNamedAddresses', () => {
32
- beforeEach(() => {
33
- vol.reset();
34
- });
35
-
36
- afterEach(() => {
37
- vol.reset();
38
- });
39
-
40
- it('should extract single module address', () => {
41
- vol.fromJSON({
42
- '/move/sources/counter.move': `
43
- module counter::my_counter {
44
- public fun increment() {}
45
- }
46
- `,
47
- });
48
-
49
- const addresses = extractNamedAddresses('/move');
50
- expect(addresses).toContain('counter');
51
- expect(addresses.size).toBe(1);
52
- });
53
-
54
- it('should extract multiple module addresses', () => {
55
- vol.fromJSON({
56
- '/move/sources/counter.move': `
57
- module counter::my_counter {
58
- public fun increment() {}
59
- }
60
- `,
61
- '/move/sources/token.move': `
62
- module my_token::token {
63
- public fun mint() {}
64
- }
65
- `,
66
- });
67
-
68
- const addresses = extractNamedAddresses('/move');
69
- expect(addresses).toContain('counter');
70
- expect(addresses).toContain('my_token');
71
- expect(addresses.size).toBe(2);
72
- });
73
-
74
- it('should ignore standard addresses (std, aptos_framework, aptos_std)', () => {
75
- vol.fromJSON({
76
- '/move/sources/counter.move': `
77
- module std::something {
78
- public fun test() {}
79
- }
80
- module aptos_framework::coin {
81
- public fun transfer() {}
82
- }
83
- module aptos_std::table {
84
- public fun new() {}
85
- }
86
- module my_module::counter {
87
- public fun increment() {}
88
- }
89
- `,
90
- });
91
-
92
- const addresses = extractNamedAddresses('/move');
93
- expect(addresses).not.toContain('std');
94
- expect(addresses).not.toContain('aptos_framework');
95
- expect(addresses).not.toContain('aptos_std');
96
- expect(addresses).toContain('my_module');
97
- expect(addresses.size).toBe(1);
98
- });
99
-
100
- it('should ignore addresses in comments', () => {
101
- vol.fromJSON({
102
- '/move/sources/counter.move': `
103
- // module commented_out::should_not_match {
104
- /*
105
- module block_comment::also_ignored {
106
- */
107
- module real_module::counter {
108
- public fun increment() {}
109
- }
110
- `,
111
- });
112
-
113
- const addresses = extractNamedAddresses('/move');
114
- expect(addresses).not.toContain('commented_out');
115
- expect(addresses).not.toContain('block_comment');
116
- expect(addresses).toContain('real_module');
117
- expect(addresses.size).toBe(1);
118
- });
119
-
120
- it('should handle nested directories', () => {
121
- vol.fromJSON({
122
- '/move/sources/core/counter.move': `
123
- module core_module::counter {
124
- public fun increment() {}
125
- }
126
- `,
127
- '/move/sources/utils/helpers.move': `
128
- module utils_module::helpers {
129
- public fun helper() {}
130
- }
131
- `,
132
- });
133
-
134
- const addresses = extractNamedAddresses('/move');
135
- expect(addresses).toContain('core_module');
136
- expect(addresses).toContain('utils_module');
137
- expect(addresses.size).toBe(2);
138
- });
139
-
140
- it('should return empty set for empty directory', () => {
141
- vol.fromJSON({
142
- '/move/sources/.gitkeep': '',
143
- });
144
-
145
- const addresses = extractNamedAddresses('/move');
146
- expect(addresses.size).toBe(0);
147
- });
148
-
149
- it('should handle module with underscore in name', () => {
150
- vol.fromJSON({
151
- '/move/sources/counter.move': `
152
- module hello_blockchain::my_counter_v2 {
153
- public fun increment() {}
154
- }
155
- `,
156
- });
157
-
158
- const addresses = extractNamedAddresses('/move');
159
- expect(addresses).toContain('hello_blockchain');
160
- expect(addresses.size).toBe(1);
161
- });
162
- });
163
-
164
- describe('updateMoveToml', () => {
165
- beforeEach(() => {
166
- vol.reset();
167
- });
168
-
169
- afterEach(() => {
170
- vol.reset();
171
- });
172
-
173
- it('should add missing addresses to Move.toml', () => {
174
- vol.fromJSON({
175
- '/move/Move.toml': `[package]
176
- name = "test"
177
- version = "1.0.0"
178
-
179
- [addresses]
180
- existing = "_"
181
-
182
- [dev-addresses]
183
- existing = "0xcafe"
184
-
185
- [dependencies]
186
- `,
187
- });
188
-
189
- const detected = new Set(['existing', 'new_address']);
190
- const added = updateMoveToml('/move', detected);
191
-
192
- expect(added).toContain('new_address');
193
- expect(added).not.toContain('existing');
194
- expect(added.length).toBe(1);
195
-
196
- const content = vol.readFileSync('/move/Move.toml', 'utf-8') as string;
197
- expect(content).toContain('new_address = "_"');
198
- expect(content).toContain('new_address = "0xbeef"'); // Second dev address
199
- });
200
-
201
- it('should assign unique dev addresses', () => {
202
- vol.fromJSON({
203
- '/move/Move.toml': `[package]
204
- name = "test"
205
-
206
- [addresses]
207
-
208
- [dev-addresses]
209
-
210
- [dependencies]
211
- `,
212
- });
213
-
214
- const detected = new Set(['addr1', 'addr2', 'addr3']);
215
- const added = updateMoveToml('/move', detected);
216
-
217
- expect(added.length).toBe(3);
218
-
219
- const content = vol.readFileSync('/move/Move.toml', 'utf-8') as string;
220
- expect(content).toContain('addr1 = "0xcafe"');
221
- expect(content).toContain('addr2 = "0xbeef"');
222
- expect(content).toContain('addr3 = "0xdead"');
223
- });
224
-
225
- it('should not duplicate existing addresses', () => {
226
- vol.fromJSON({
227
- '/move/Move.toml': `[package]
228
- name = "test"
229
-
230
- [addresses]
231
- counter = "_"
232
-
233
- [dev-addresses]
234
- counter = "0xcafe"
235
-
236
- [dependencies]
237
- `,
238
- });
239
-
240
- const detected = new Set(['counter']);
241
- const added = updateMoveToml('/move', detected);
242
-
243
- expect(added.length).toBe(0);
244
- });
245
-
246
- it('should return empty array if Move.toml does not exist', () => {
247
- vol.fromJSON({
248
- '/move/sources/counter.move': 'module test::counter {}',
249
- });
250
-
251
- const detected = new Set(['test']);
252
- const added = updateMoveToml('/move', detected);
253
-
254
- expect(added.length).toBe(0);
255
- });
256
-
257
- it('should avoid dev address conflicts', () => {
258
- vol.fromJSON({
259
- '/move/Move.toml': `[package]
260
- name = "test"
261
-
262
- [addresses]
263
- existing = "_"
264
-
265
- [dev-addresses]
266
- existing = "0xcafe"
267
-
268
- [dependencies]
269
- `,
270
- });
271
-
272
- const detected = new Set(['existing', 'new_one']);
273
- const added = updateMoveToml('/move', detected);
274
-
275
- const content = vol.readFileSync('/move/Move.toml', 'utf-8') as string;
276
- // new_one should get 0xbeef since 0xcafe is taken
277
- expect(content).toContain('new_one = "0xbeef"');
278
- });
279
- });
280
-
281
- describe('compileCommand — orchestrator', () => {
282
- let exitSpy: ReturnType<typeof vi.spyOn>;
283
-
284
- beforeEach(() => {
285
- vol.reset();
286
- runCliMock.mockReset();
287
- loadUserConfigMock.mockReset();
288
- exitSpy = vi
289
- .spyOn(process, 'exit')
290
- .mockImplementation(((code?: number) => {
291
- throw new Error(`__test_exit_${code ?? 0}__`);
292
- }) as never);
293
- vi.spyOn(console, 'log').mockImplementation(() => undefined);
294
- vi.spyOn(console, 'error').mockImplementation(() => undefined);
295
- });
296
-
297
- afterEach(() => {
298
- vol.reset();
299
- vi.restoreAllMocks();
300
- });
301
-
302
- it('happy path: detects named addresses, invokes movement build, finishes', async () => {
303
- loadUserConfigMock.mockResolvedValueOnce({
304
- moveDir: '/proj/move',
305
- namedAddresses: {},
306
- });
307
- vol.fromJSON({
308
- '/proj/move/Move.toml': `[package]
309
- name = "proj"
310
-
311
- [addresses]
312
- counter = "_"
313
-
314
- [dev-addresses]
315
- counter = "0xcafe"
316
-
317
- [dependencies]
318
- `,
319
- '/proj/move/sources/counter.move': 'module counter::lib {}',
320
- });
321
- runCliMock.mockResolvedValueOnce({ exitCode: 0, stdout: 'ok', stderr: '' });
322
-
323
- await compileCommand();
324
-
325
- expect(runCliMock).toHaveBeenCalledTimes(1);
326
- const call = runCliMock.mock.calls[0]!;
327
- expect(call[0].command).toBe('movement');
328
- expect(call[0].args.slice(0, 2)).toEqual(['move', 'build']);
329
- });
330
-
331
- it('exits 1 with a clear error when moveDir is missing', async () => {
332
- loadUserConfigMock.mockResolvedValueOnce({
333
- moveDir: '/nonexistent',
334
- namedAddresses: {},
335
- });
336
-
337
- await expect(compileCommand()).rejects.toThrow('__test_exit_1__');
338
- expect(runCliMock).not.toHaveBeenCalled();
339
- });
340
-
341
- it('exits 1 when the build step returns non-zero', async () => {
342
- loadUserConfigMock.mockResolvedValueOnce({
343
- moveDir: '/proj/move',
344
- namedAddresses: {},
345
- });
346
- vol.fromJSON({
347
- '/proj/move/Move.toml': '[package]\nname="x"\n[addresses]\n',
348
- '/proj/move/sources/x.move': 'module x::lib {}',
349
- });
350
- runCliMock.mockResolvedValueOnce({
351
- exitCode: 1,
352
- stdout: '',
353
- stderr: 'compile error',
354
- });
355
-
356
- await expect(compileCommand()).rejects.toThrow('__test_exit_1__');
357
- });
358
-
359
- it('merges user-configured namedAddresses over auto-assigned dev addresses', async () => {
360
- loadUserConfigMock.mockResolvedValueOnce({
361
- moveDir: '/proj/move',
362
- namedAddresses: { counter: '0xabc' },
363
- });
364
- vol.fromJSON({
365
- '/proj/move/Move.toml':
366
- '[package]\nname="x"\n[addresses]\ncounter = "_"\n[dev-addresses]\n',
367
- '/proj/move/sources/counter.move': 'module counter::lib {}',
368
- });
369
- runCliMock.mockResolvedValueOnce({ exitCode: 0, stdout: '', stderr: '' });
370
-
371
- await compileCommand();
372
-
373
- const args = runCliMock.mock.calls[0]![0].args;
374
- const namedIdx = args.indexOf('--named-addresses');
375
- expect(namedIdx).toBeGreaterThanOrEqual(0);
376
- // User-configured override (0xabc) wins over auto-assigned (0xcafe).
377
- expect(args[namedIdx + 1]).toContain('counter=0xabc');
378
- });
379
-
380
- it('rejects an invalid named-address key', async () => {
381
- loadUserConfigMock.mockResolvedValueOnce({
382
- moveDir: '/proj/move',
383
- namedAddresses: { 'bad-name-with-dash': '0x1' },
384
- });
385
- vol.fromJSON({
386
- '/proj/move/Move.toml': '[package]\nname="x"\n[addresses]\n',
387
- '/proj/move/sources/x.move': 'module x::lib {}',
388
- });
389
-
390
- await expect(compileCommand()).rejects.toThrow('__test_exit_1__');
391
- expect(runCliMock).not.toHaveBeenCalled();
392
- });
393
-
394
- it('rejects an invalid address value (non-hex)', async () => {
395
- loadUserConfigMock.mockResolvedValueOnce({
396
- moveDir: '/proj/move',
397
- namedAddresses: { counter: 'not-hex' },
398
- });
399
- vol.fromJSON({
400
- '/proj/move/Move.toml': '[package]\nname="x"\n[addresses]\n',
401
- '/proj/move/sources/x.move': 'module counter::lib {}',
402
- });
403
-
404
- await expect(compileCommand()).rejects.toThrow('__test_exit_1__');
405
- expect(runCliMock).not.toHaveBeenCalled();
406
- });
407
- });
@@ -1,77 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import { vol, fs as memfsFs } from "memfs";
3
-
4
- vi.mock("fs", () => {
5
- return {
6
- default: memfsFs,
7
- ...memfsFs,
8
- };
9
- });
10
-
11
- import { updateMoveToml } from "../compile.js";
12
-
13
- /**
14
- * F7 — `movehat compile` mutates `Move.toml` when it detects a named
15
- * address that isn't declared yet. This test pins down the current
16
- * behavior so a future change (introducing a `--write` flag, moving
17
- * the mutation to a dedicated `movehat update-toml` command, etc.)
18
- * MUST update this test alongside the source change.
19
- *
20
- * Audit finding F7 is marked "no concluyente — requires product
21
- * decision": the mutation may be the right UX default for the
22
- * Hardhat-style workflow, but the asymmetry (compile reading + writing)
23
- * deserves to be a deliberate choice. See ROADMAP follow-up.
24
- */
25
- describe("F7 — updateMoveToml mutates Move.toml on disk (current behavior captured)", () => {
26
- beforeEach(() => vol.reset());
27
- afterEach(() => vol.reset());
28
-
29
- it("writes new named addresses into [addresses] and [dev-addresses] when missing", () => {
30
- const before = `[package]
31
- name = "captured"
32
- version = "1.0.0"
33
-
34
- [addresses]
35
- existing = "_"
36
-
37
- [dev-addresses]
38
- existing = "0xcafe"
39
-
40
- [dependencies]
41
- `;
42
- vol.fromJSON({ "/move/Move.toml": before });
43
-
44
- const detected = new Set(["existing", "audit_module"]);
45
- const added = updateMoveToml("/move", detected);
46
-
47
- expect(added).toEqual(["audit_module"]);
48
-
49
- // Source-of-truth assertion: the on-disk file CHANGED. F7 is the
50
- // observation that a "compile" verb has a side effect on the user's
51
- // working tree. The behavior is captured here so an unintended
52
- // regression (or a deliberate revisit) cannot land silently.
53
- const after = vol.readFileSync("/move/Move.toml", "utf-8") as string;
54
- expect(after).not.toBe(before);
55
- expect(after).toContain("audit_module = \"_\"");
56
- });
57
-
58
- it("returns an empty list and leaves Move.toml byte-identical when all named addresses are already declared", () => {
59
- const before = `[package]
60
- name = "captured"
61
-
62
- [addresses]
63
- existing = "_"
64
-
65
- [dev-addresses]
66
- existing = "0xcafe"
67
- `;
68
- vol.fromJSON({ "/move/Move.toml": before });
69
-
70
- const added = updateMoveToml("/move", new Set(["existing"]));
71
- expect(added).toEqual([]);
72
- // No mutation in the no-op path — the asymmetry only triggers when
73
- // detected ⊄ declared. Useful boundary for the F7 product decision.
74
- const after = vol.readFileSync("/move/Move.toml", "utf-8") as string;
75
- expect(after).toBe(before);
76
- });
77
- });
@@ -1,210 +0,0 @@
1
- import { afterEach, beforeEach, describe, expect, it, vi } from "vitest";
2
- import { existsSync, mkdtempSync, mkdirSync, readFileSync, rmSync } from "node:fs";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
-
6
- const promptsMock = vi.fn();
7
- vi.mock("prompts", () => ({
8
- default: promptsMock,
9
- }));
10
-
11
- // Silence the ASCII banner.
12
- vi.mock("../../helpers/banner.js", () => ({
13
- printMovehatBanner: () => undefined,
14
- }));
15
-
16
- const initModule = await import("../init.js");
17
- const { default: initCommand, resolveProjectNames, InvalidProjectNameError } = initModule;
18
-
19
- /**
20
- * Strategy: real tmpdir + real fs ops (matches §6.1's example-as-canonical
21
- * scaffold philosophy — if `init` can't actually copy files end-to-end,
22
- * users land on a broken state). We chdir into a fresh tmp parent for
23
- * each test and verify the target project directory was created and
24
- * contains the expected files.
25
- *
26
- * The Move templates ship at `src/templates/` in the source tree; when
27
- * vitest runs the TS source, `__dirname` of `init.ts` resolves to
28
- * `src/commands/` so `path.join(__dirname, "..", "templates")` resolves
29
- * to `src/templates/` cleanly. No bundling step required.
30
- */
31
-
32
- describe("resolveProjectNames", () => {
33
- const cases: Array<[
34
- string,
35
- { dirName: string; npmName: string; moveName: string; sanitized: boolean }
36
- ]> = [
37
- ["my_project", { dirName: "my_project", npmName: "my_project", moveName: "my_project", sanitized: false }],
38
- ["my-project", { dirName: "my-project", npmName: "my-project", moveName: "my_project", sanitized: true }],
39
- ["/tmp/my-project", { dirName: "/tmp/my-project", npmName: "my-project", moveName: "my_project", sanitized: true }],
40
- ["123abc", { dirName: "123abc", npmName: "123abc", moveName: "pkg_123abc", sanitized: true }],
41
- ["_underscore", { dirName: "_underscore", npmName: "_underscore", moveName: "_underscore", sanitized: false }],
42
- ["UPPER", { dirName: "UPPER", npmName: "UPPER", moveName: "UPPER", sanitized: false }],
43
- [" spaced ", { dirName: "spaced", npmName: "spaced", moveName: "spaced", sanitized: false }],
44
- ["with spaces", { dirName: "with spaces", npmName: "with spaces", moveName: "with_spaces", sanitized: true }],
45
- ];
46
-
47
- it.each(cases)("derives names for %j", (input, expected) => {
48
- expect(resolveProjectNames(input)).toEqual(expected);
49
- });
50
-
51
- it.each(["", " ", ".", "..", "/", "////"])(
52
- "rejects %j as an invalid project name",
53
- (input) => {
54
- expect(() => resolveProjectNames(input)).toThrow(InvalidProjectNameError);
55
- }
56
- );
57
- });
58
-
59
- describe("initCommand", () => {
60
- let tmpParent: string;
61
- let origCwd: string;
62
- let exitSpy: ReturnType<typeof vi.spyOn>;
63
- let warnSpy: ReturnType<typeof vi.spyOn>;
64
-
65
- beforeEach(() => {
66
- promptsMock.mockReset();
67
- origCwd = process.cwd();
68
- tmpParent = mkdtempSync(join(tmpdir(), "movehat-init-test-"));
69
- process.chdir(tmpParent);
70
- // Throw a sentinel error so flow actually aborts (in real CLI usage
71
- // process.exit terminates the process; for tests we need it to break
72
- // out of the rest of init.ts via a thrown error).
73
- exitSpy = vi
74
- .spyOn(process, "exit")
75
- .mockImplementation(((code?: number) => {
76
- throw new Error(`__test_exit_${code ?? 0}__`);
77
- }) as never);
78
- vi.spyOn(console, "log").mockImplementation(() => undefined);
79
- vi.spyOn(console, "error").mockImplementation(() => undefined);
80
- warnSpy = vi.spyOn(console, "warn").mockImplementation(() => undefined);
81
- });
82
-
83
- afterEach(() => {
84
- process.chdir(origCwd);
85
- if (existsSync(tmpParent)) {
86
- rmSync(tmpParent, { recursive: true, force: true });
87
- }
88
- vi.restoreAllMocks();
89
- });
90
-
91
- it("happy path: scaffolds a project from the canonical template", async () => {
92
- await initCommand("my_test_project");
93
-
94
- const target = join(tmpParent, "my_test_project");
95
- expect(existsSync(target)).toBe(true);
96
- // Canonical files at the project root.
97
- expect(existsSync(join(target, "package.json"))).toBe(true);
98
- expect(existsSync(join(target, "tsconfig.json"))).toBe(true);
99
- expect(existsSync(join(target, ".mocharc.json"))).toBe(true);
100
- expect(existsSync(join(target, "movehat.config.ts"))).toBe(true);
101
- expect(existsSync(join(target, ".env.example"))).toBe(true);
102
- expect(existsSync(join(target, ".gitignore"))).toBe(true);
103
- expect(existsSync(join(target, "README.md"))).toBe(true);
104
- // Subdirectories with their own files.
105
- expect(existsSync(join(target, "move"))).toBe(true);
106
- expect(existsSync(join(target, "scripts"))).toBe(true);
107
- expect(existsSync(join(target, "tests"))).toBe(true);
108
- // Excluded template-development directory.
109
- expect(existsSync(join(target, "types"))).toBe(false);
110
- expect(existsSync(join(target, ".vscode"))).toBe(false);
111
- // Move.toml gets a valid Move identifier.
112
- const moveToml = readFileSync(join(target, "move", "Move.toml"), "utf-8");
113
- expect(moveToml).toContain('name = "my_test_project"');
114
- expect(moveToml).not.toContain("{{movePackageName}}");
115
- expect(moveToml).not.toContain("{{projectName}}");
116
- });
117
-
118
- it("substitutes {{projectName}} placeholders inside template files", async () => {
119
- await initCommand("substituted_project");
120
-
121
- const pkg = readFileSync(
122
- join(tmpParent, "substituted_project", "package.json"),
123
- "utf-8"
124
- );
125
- expect(pkg).toContain("substituted_project");
126
- expect(pkg).not.toContain("{{projectName}}");
127
-
128
- const readme = readFileSync(
129
- join(tmpParent, "substituted_project", "README.md"),
130
- "utf-8"
131
- );
132
- expect(readme).toContain("substituted_project");
133
- });
134
-
135
- it("prompts for project name when none is provided", async () => {
136
- promptsMock.mockResolvedValueOnce({ projectName: "from_prompt" });
137
-
138
- await initCommand();
139
-
140
- expect(promptsMock).toHaveBeenCalledTimes(1);
141
- expect(existsSync(join(tmpParent, "from_prompt"))).toBe(true);
142
- });
143
-
144
- it("exits 0 when the user Ctrl+Cs the prompt (no project created)", async () => {
145
- promptsMock.mockResolvedValueOnce({});
146
-
147
- await expect(initCommand()).rejects.toThrow("__test_exit_0__");
148
- expect(exitSpy).toHaveBeenCalledWith(0);
149
- });
150
-
151
- it("exits 1 when the template copy step hits an unwriteable target", async () => {
152
- // Plant a directory where the command will try to write package.json
153
- // as a file — fs.writeFile rejects with EISDIR.
154
- const targetName = "blocked_project";
155
- mkdirSync(join(tmpParent, targetName, "package.json"), { recursive: true });
156
-
157
- await expect(initCommand(targetName)).rejects.toThrow("__test_exit_1__");
158
- expect(exitSpy).toHaveBeenCalledWith(1);
159
- });
160
-
161
- it("sanitizes Move.toml for hyphenated names but keeps package.json original", async () => {
162
- await initCommand("my-project");
163
-
164
- const target = join(tmpParent, "my-project");
165
- expect(existsSync(target)).toBe(true);
166
- // package.json keeps the original (npm allows hyphens).
167
- const pkg = readFileSync(join(target, "package.json"), "utf-8");
168
- expect(pkg).toContain('"my-project"');
169
- // Move.toml gets the sanitized identifier.
170
- const moveToml = readFileSync(join(target, "move", "Move.toml"), "utf-8");
171
- expect(moveToml).toContain('name = "my_project"');
172
- expect(moveToml).not.toContain('"my-project"');
173
- // Warning was emitted.
174
- expect(warnSpy).toHaveBeenCalled();
175
- const warningText = warnSpy.mock.calls.flat().join(" ");
176
- expect(warningText).toContain("my-project");
177
- expect(warningText).toContain("my_project");
178
- });
179
-
180
- it("with a path argument, creates the dir at the full path and sanitizes Move.toml", async () => {
181
- const nestedPath = join(tmpParent, "nested", "sub-project");
182
-
183
- await initCommand(nestedPath);
184
-
185
- expect(existsSync(nestedPath)).toBe(true);
186
- const moveToml = readFileSync(join(nestedPath, "move", "Move.toml"), "utf-8");
187
- expect(moveToml).toContain('name = "sub_project"');
188
- const pkg = readFileSync(join(nestedPath, "package.json"), "utf-8");
189
- expect(pkg).toContain('"sub-project"');
190
- });
191
-
192
- it("prefixes Move.toml package name with pkg_ for names that start with a digit", async () => {
193
- await initCommand("123abc");
194
-
195
- const moveToml = readFileSync(
196
- join(tmpParent, "123abc", "move", "Move.toml"),
197
- "utf-8"
198
- );
199
- expect(moveToml).toContain('name = "pkg_123abc"');
200
- expect(warnSpy).toHaveBeenCalled();
201
- });
202
-
203
- it.each([".", "..", "/", " "])(
204
- "rejects %j as an invalid project name and exits 1",
205
- async (input) => {
206
- await expect(initCommand(input)).rejects.toThrow("__test_exit_1__");
207
- expect(exitSpy).toHaveBeenCalledWith(1);
208
- }
209
- );
210
- });