ic-mops 1.11.1 → 2.0.0

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 (352) hide show
  1. package/.DS_Store +0 -0
  2. package/.eslintrc.json +7 -7
  3. package/CHANGELOG.md +15 -0
  4. package/api/actors.ts +41 -37
  5. package/api/downloadPackageFiles.ts +75 -61
  6. package/api/getHighestVersion.ts +5 -5
  7. package/api/index.ts +4 -4
  8. package/api/network.ts +19 -21
  9. package/api/resolveVersion.ts +14 -11
  10. package/bin/mops.js +1 -1
  11. package/bun.lock +234 -198
  12. package/bundle/bench/bench-canister.mo +2 -2
  13. package/bundle/bench/user-bench.mo +0 -4
  14. package/bundle/bin/mops.js +1 -1
  15. package/bundle/cli.js +1000 -924
  16. package/bundle/cli.tgz +0 -0
  17. package/bundle/declarations/bench/bench.did +3 -3
  18. package/bundle/declarations/bench/bench.did.d.ts +3 -3
  19. package/bundle/declarations/bench/index.d.ts +3 -3
  20. package/bundle/declarations/bench/index.js +1 -1
  21. package/bundle/declarations/main/index.d.ts +3 -3
  22. package/bundle/declarations/main/index.js +1 -1
  23. package/bundle/declarations/main/main.did +78 -121
  24. package/bundle/declarations/main/main.did.d.ts +48 -98
  25. package/bundle/declarations/main/main.did.js +53 -107
  26. package/bundle/declarations/storage/index.d.ts +3 -3
  27. package/bundle/declarations/storage/index.js +4 -4
  28. package/bundle/declarations/storage/storage.did.d.ts +3 -3
  29. package/bundle/package.json +6 -5
  30. package/bundle/templates/mops-publish.yml +3 -3
  31. package/bundle/templates/mops-test.yml +3 -3
  32. package/bundle-package-json.ts +8 -8
  33. package/cache.ts +80 -65
  34. package/check-requirements.ts +49 -45
  35. package/cli.ts +577 -376
  36. package/commands/add.ts +142 -129
  37. package/commands/available-updates.ts +55 -28
  38. package/commands/bench/bench-canister.mo +114 -108
  39. package/commands/bench/user-bench.mo +6 -6
  40. package/commands/bench-replica.ts +146 -106
  41. package/commands/bench.ts +563 -497
  42. package/commands/build.ts +177 -0
  43. package/commands/bump.ts +68 -57
  44. package/commands/check-candid.ts +24 -0
  45. package/commands/docs-coverage.ts +124 -102
  46. package/commands/docs.ts +118 -108
  47. package/commands/format.ts +171 -155
  48. package/commands/init.ts +301 -275
  49. package/commands/install/install-all.ts +75 -62
  50. package/commands/install/install-dep.ts +43 -28
  51. package/commands/install/install-deps.ts +23 -15
  52. package/commands/install/install-local-dep.ts +42 -34
  53. package/commands/install/install-mops-dep.ts +154 -123
  54. package/commands/install/sync-local-cache.ts +39 -35
  55. package/commands/maintainer.ts +109 -99
  56. package/commands/outdated.ts +31 -18
  57. package/commands/owner.ts +107 -99
  58. package/commands/publish.ts +534 -443
  59. package/commands/remove.ts +119 -89
  60. package/commands/replica.ts +391 -303
  61. package/commands/search.ts +42 -36
  62. package/commands/self.ts +63 -56
  63. package/commands/sources.ts +66 -49
  64. package/commands/sync.ts +92 -75
  65. package/commands/template.ts +145 -102
  66. package/commands/test/mmf1.ts +146 -119
  67. package/commands/test/reporters/compact-reporter.ts +87 -84
  68. package/commands/test/reporters/files-reporter.ts +56 -51
  69. package/commands/test/reporters/reporter.ts +12 -6
  70. package/commands/test/reporters/silent-reporter.ts +58 -59
  71. package/commands/test/reporters/verbose-reporter.ts +66 -54
  72. package/commands/test/test.ts +497 -460
  73. package/commands/test/utils.ts +85 -6
  74. package/commands/toolchain/index.ts +363 -322
  75. package/commands/toolchain/moc.ts +78 -50
  76. package/commands/toolchain/pocket-ic.ts +41 -34
  77. package/commands/toolchain/toolchain-utils.ts +92 -72
  78. package/commands/toolchain/wasmtime.ts +37 -34
  79. package/commands/update.ts +91 -56
  80. package/commands/user.ts +90 -81
  81. package/commands/watch/deployer.ts +188 -152
  82. package/commands/watch/error-checker.ts +90 -80
  83. package/commands/watch/formatter.ts +72 -60
  84. package/commands/watch/generator.ts +116 -96
  85. package/commands/watch/globMoFiles.ts +13 -13
  86. package/commands/watch/parseDfxJson.ts +63 -57
  87. package/commands/watch/tester.ts +83 -65
  88. package/commands/watch/warning-checker.ts +149 -136
  89. package/commands/watch/watch.ts +123 -95
  90. package/declarations/bench/bench.did.d.ts +3 -3
  91. package/declarations/bench/index.d.ts +3 -3
  92. package/declarations/bench/index.js +1 -1
  93. package/declarations/main/index.d.ts +3 -3
  94. package/declarations/main/index.js +1 -1
  95. package/declarations/main/main.did.d.ts +3 -3
  96. package/declarations/storage/index.d.ts +3 -3
  97. package/declarations/storage/index.js +4 -4
  98. package/declarations/storage/storage.did.d.ts +3 -3
  99. package/dist/api/actors.d.ts +4 -4
  100. package/dist/api/actors.js +8 -8
  101. package/dist/api/downloadPackageFiles.d.ts +2 -2
  102. package/dist/api/downloadPackageFiles.js +10 -10
  103. package/dist/api/getHighestVersion.js +1 -1
  104. package/dist/api/index.d.ts +4 -4
  105. package/dist/api/index.js +4 -4
  106. package/dist/api/network.js +9 -9
  107. package/dist/api/resolveVersion.js +3 -3
  108. package/dist/bin/mops.js +1 -1
  109. package/dist/bundle-package-json.js +8 -8
  110. package/dist/cache.js +22 -17
  111. package/dist/check-requirements.js +11 -11
  112. package/dist/cli.js +283 -186
  113. package/dist/commands/add.d.ts +1 -1
  114. package/dist/commands/add.js +41 -38
  115. package/dist/commands/available-updates.d.ts +1 -1
  116. package/dist/commands/available-updates.js +32 -14
  117. package/dist/commands/bench/bench-canister.mo +114 -108
  118. package/dist/commands/bench/user-bench.mo +6 -6
  119. package/dist/commands/bench-replica.d.ts +6 -5
  120. package/dist/commands/bench-replica.js +58 -36
  121. package/dist/commands/bench.d.ts +5 -5
  122. package/dist/commands/bench.js +134 -118
  123. package/dist/commands/build.d.ts +7 -0
  124. package/dist/commands/build.js +121 -0
  125. package/dist/commands/bump.js +27 -18
  126. package/dist/commands/check-candid.d.ts +4 -0
  127. package/dist/commands/check-candid.js +15 -0
  128. package/dist/commands/docs-coverage.d.ts +1 -1
  129. package/dist/commands/docs-coverage.js +45 -31
  130. package/dist/commands/docs.d.ts +1 -1
  131. package/dist/commands/docs.js +39 -38
  132. package/dist/commands/format.js +31 -27
  133. package/dist/commands/init.js +102 -92
  134. package/dist/commands/install/install-all.d.ts +2 -2
  135. package/dist/commands/install/install-all.js +23 -21
  136. package/dist/commands/install/install-dep.d.ts +1 -1
  137. package/dist/commands/install/install-dep.js +21 -8
  138. package/dist/commands/install/install-deps.d.ts +1 -1
  139. package/dist/commands/install/install-deps.js +1 -1
  140. package/dist/commands/install/install-local-dep.js +11 -9
  141. package/dist/commands/install/install-mops-dep.d.ts +1 -1
  142. package/dist/commands/install/install-mops-dep.js +32 -27
  143. package/dist/commands/install/sync-local-cache.js +10 -10
  144. package/dist/commands/maintainer.js +21 -21
  145. package/dist/commands/outdated.js +16 -6
  146. package/dist/commands/owner.js +21 -21
  147. package/dist/commands/publish.js +148 -128
  148. package/dist/commands/remove.d.ts +1 -1
  149. package/dist/commands/remove.js +42 -30
  150. package/dist/commands/replica.d.ts +9 -8
  151. package/dist/commands/replica.js +105 -65
  152. package/dist/commands/search.js +15 -13
  153. package/dist/commands/self.js +31 -28
  154. package/dist/commands/sources.d.ts +5 -1
  155. package/dist/commands/sources.js +23 -17
  156. package/dist/commands/sync.d.ts +1 -1
  157. package/dist/commands/sync.js +38 -25
  158. package/dist/commands/template.js +66 -56
  159. package/dist/commands/test/mmf1.d.ts +3 -3
  160. package/dist/commands/test/mmf1.js +33 -31
  161. package/dist/commands/test/reporters/compact-reporter.d.ts +3 -3
  162. package/dist/commands/test/reporters/compact-reporter.js +19 -15
  163. package/dist/commands/test/reporters/files-reporter.d.ts +3 -3
  164. package/dist/commands/test/reporters/files-reporter.js +18 -14
  165. package/dist/commands/test/reporters/reporter.d.ts +2 -2
  166. package/dist/commands/test/reporters/silent-reporter.d.ts +3 -3
  167. package/dist/commands/test/reporters/silent-reporter.js +4 -4
  168. package/dist/commands/test/reporters/verbose-reporter.d.ts +3 -3
  169. package/dist/commands/test/reporters/verbose-reporter.js +17 -13
  170. package/dist/commands/test/test.d.ts +4 -4
  171. package/dist/commands/test/test.js +151 -181
  172. package/dist/commands/test/utils.d.ts +6 -0
  173. package/dist/commands/test/utils.js +63 -2
  174. package/dist/commands/toolchain/index.d.ts +1 -1
  175. package/dist/commands/toolchain/index.js +81 -69
  176. package/dist/commands/toolchain/moc.d.ts +1 -1
  177. package/dist/commands/toolchain/moc.js +48 -24
  178. package/dist/commands/toolchain/pocket-ic.js +12 -12
  179. package/dist/commands/toolchain/toolchain-utils.d.ts +2 -0
  180. package/dist/commands/toolchain/toolchain-utils.js +32 -23
  181. package/dist/commands/toolchain/wasmtime.js +11 -11
  182. package/dist/commands/update.d.ts +1 -1
  183. package/dist/commands/update.js +30 -12
  184. package/dist/commands/user.js +31 -28
  185. package/dist/commands/watch/deployer.d.ts +4 -4
  186. package/dist/commands/watch/deployer.js +45 -36
  187. package/dist/commands/watch/error-checker.d.ts +2 -2
  188. package/dist/commands/watch/error-checker.js +27 -27
  189. package/dist/commands/watch/formatter.d.ts +4 -4
  190. package/dist/commands/watch/formatter.js +17 -17
  191. package/dist/commands/watch/generator.d.ts +3 -3
  192. package/dist/commands/watch/generator.js +28 -23
  193. package/dist/commands/watch/globMoFiles.js +8 -8
  194. package/dist/commands/watch/parseDfxJson.d.ts +2 -2
  195. package/dist/commands/watch/parseDfxJson.js +9 -9
  196. package/dist/commands/watch/tester.d.ts +4 -4
  197. package/dist/commands/watch/tester.js +23 -21
  198. package/dist/commands/watch/warning-checker.d.ts +3 -3
  199. package/dist/commands/watch/warning-checker.js +36 -36
  200. package/dist/commands/watch/watch.js +45 -32
  201. package/dist/declarations/bench/bench.did.d.ts +3 -3
  202. package/dist/declarations/bench/index.d.ts +3 -3
  203. package/dist/declarations/bench/index.js +1 -1
  204. package/dist/declarations/main/index.d.ts +3 -3
  205. package/dist/declarations/main/index.js +1 -1
  206. package/dist/declarations/main/main.did.d.ts +3 -3
  207. package/dist/declarations/storage/index.d.ts +3 -3
  208. package/dist/declarations/storage/index.js +4 -4
  209. package/dist/declarations/storage/storage.did.d.ts +3 -3
  210. package/dist/environments/nodejs/cli.d.ts +1 -0
  211. package/dist/environments/nodejs/cli.js +4 -0
  212. package/dist/environments/web/cli.d.ts +1 -0
  213. package/dist/environments/web/cli.js +4 -0
  214. package/dist/error.d.ts +1 -0
  215. package/dist/error.js +5 -0
  216. package/dist/fix-dist.js +5 -5
  217. package/dist/helpers/find-changelog-entry.js +8 -5
  218. package/dist/helpers/get-dep-name.d.ts +1 -0
  219. package/dist/helpers/get-dep-name.js +4 -1
  220. package/dist/helpers/get-dfx-version.js +4 -4
  221. package/dist/helpers/get-moc-path.js +8 -7
  222. package/dist/helpers/get-moc-version.js +10 -7
  223. package/dist/helpers/get-package-id.js +2 -2
  224. package/dist/helpers/is-candid-compatible.d.ts +1 -0
  225. package/dist/helpers/is-candid-compatible.js +20 -0
  226. package/dist/integrity.d.ts +1 -1
  227. package/dist/integrity.js +47 -38
  228. package/dist/jest.config.d.ts +11 -0
  229. package/dist/jest.config.js +14 -0
  230. package/dist/mops.d.ts +6 -6
  231. package/dist/mops.js +87 -80
  232. package/dist/notify-installs.js +4 -4
  233. package/dist/package.json +11 -10
  234. package/dist/pem.d.ts +3 -3
  235. package/dist/pem.js +20 -12
  236. package/dist/release-cli.js +20 -20
  237. package/dist/resolve-packages.d.ts +1 -1
  238. package/dist/resolve-packages.js +52 -36
  239. package/dist/templates/mops-publish.yml +3 -3
  240. package/dist/templates/mops-test.yml +3 -3
  241. package/dist/templates/src/lib.mo +13 -13
  242. package/dist/templates/test/lib.test.mo +2 -2
  243. package/dist/templates.js +1 -1
  244. package/dist/tests/cli.test.d.ts +1 -0
  245. package/dist/tests/cli.test.js +63 -0
  246. package/dist/types.d.ts +14 -4
  247. package/dist/vessel.d.ts +2 -2
  248. package/dist/vessel.js +41 -34
  249. package/dist/wasm/pkg/bundler/package.json +20 -0
  250. package/dist/wasm/pkg/bundler/wasm.d.ts +3 -0
  251. package/dist/wasm/pkg/bundler/wasm.js +5 -0
  252. package/dist/wasm/pkg/bundler/wasm_bg.js +93 -0
  253. package/dist/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  254. package/dist/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  255. package/dist/wasm/pkg/nodejs/package.json +14 -0
  256. package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
  257. package/dist/wasm/pkg/nodejs/wasm.js +98 -0
  258. package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  259. package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  260. package/dist/wasm/pkg/web/package.json +18 -0
  261. package/dist/wasm/pkg/web/wasm.d.ts +35 -0
  262. package/dist/wasm/pkg/web/wasm.js +191 -0
  263. package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
  264. package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  265. package/dist/wasm.d.ts +5 -0
  266. package/dist/wasm.js +10 -0
  267. package/environments/nodejs/cli.ts +6 -0
  268. package/environments/web/cli.ts +6 -0
  269. package/error.ts +6 -0
  270. package/fix-dist.ts +5 -5
  271. package/global.d.ts +3 -3
  272. package/helpers/find-changelog-entry.ts +26 -23
  273. package/helpers/get-dep-name.ts +7 -3
  274. package/helpers/get-dfx-version.ts +8 -9
  275. package/helpers/get-moc-path.ts +25 -26
  276. package/helpers/get-moc-version.ts +21 -19
  277. package/helpers/get-package-id.ts +4 -4
  278. package/helpers/is-candid-compatible.ts +22 -0
  279. package/integrity.ts +270 -236
  280. package/jest.config.js +14 -0
  281. package/mops.ts +238 -215
  282. package/notify-installs.ts +16 -17
  283. package/package.json +21 -15
  284. package/parallel.ts +28 -24
  285. package/pem.ts +55 -47
  286. package/release-cli.ts +73 -39
  287. package/resolve-packages.ts +231 -189
  288. package/templates/mops-publish.yml +3 -3
  289. package/templates/mops-test.yml +3 -3
  290. package/templates/src/lib.mo +13 -13
  291. package/templates/test/lib.test.mo +2 -2
  292. package/templates.ts +4 -4
  293. package/tests/__snapshots__/cli.test.ts.snap +202 -0
  294. package/tests/build/error/candid/bar.did +3 -0
  295. package/tests/build/error/dfx.json +12 -0
  296. package/tests/build/error/mops.toml +9 -0
  297. package/tests/build/error/src/Bar.mo +5 -0
  298. package/tests/build/error/src/Foo.mo +5 -0
  299. package/tests/build/success/.dfx/local/canister_ids.json +17 -0
  300. package/tests/build/success/.dfx/local/canisters/bar/bar.did +3 -0
  301. package/tests/build/success/.dfx/local/canisters/bar/bar.most +4 -0
  302. package/tests/build/success/.dfx/local/canisters/bar/bar.wasm +0 -0
  303. package/tests/build/success/.dfx/local/canisters/bar/constructor.did +3 -0
  304. package/tests/build/success/.dfx/local/canisters/bar/index.js +42 -0
  305. package/tests/build/success/.dfx/local/canisters/bar/init_args.txt +1 -0
  306. package/tests/build/success/.dfx/local/canisters/bar/service.did +3 -0
  307. package/tests/build/success/.dfx/local/canisters/bar/service.did.d.ts +7 -0
  308. package/tests/build/success/.dfx/local/canisters/bar/service.did.js +4 -0
  309. package/tests/build/success/.dfx/local/canisters/foo/constructor.did +3 -0
  310. package/tests/build/success/.dfx/local/canisters/foo/foo.did +3 -0
  311. package/tests/build/success/.dfx/local/canisters/foo/foo.most +4 -0
  312. package/tests/build/success/.dfx/local/canisters/foo/foo.wasm +0 -0
  313. package/tests/build/success/.dfx/local/canisters/foo/index.js +42 -0
  314. package/tests/build/success/.dfx/local/canisters/foo/init_args.txt +1 -0
  315. package/tests/build/success/.dfx/local/canisters/foo/service.did +3 -0
  316. package/tests/build/success/.dfx/local/canisters/foo/service.did.d.ts +7 -0
  317. package/tests/build/success/.dfx/local/canisters/foo/service.did.js +4 -0
  318. package/tests/build/success/.dfx/local/lsp/ucwa4-rx777-77774-qaada-cai.did +3 -0
  319. package/tests/build/success/.dfx/local/lsp/ulvla-h7777-77774-qaacq-cai.did +3 -0
  320. package/tests/build/success/.dfx/local/network-id +4 -0
  321. package/tests/build/success/candid/bar.did +3 -0
  322. package/tests/build/success/dfx.json +12 -0
  323. package/tests/build/success/mops.toml +9 -0
  324. package/tests/build/success/src/Bar.mo +5 -0
  325. package/tests/build/success/src/Foo.mo +5 -0
  326. package/tests/check-candid/a.did +3 -0
  327. package/tests/check-candid/b.did +5 -0
  328. package/tests/check-candid/c.did +3 -0
  329. package/tests/cli.test.ts +82 -0
  330. package/tsconfig.json +26 -19
  331. package/types.ts +41 -31
  332. package/vessel.ts +219 -187
  333. package/wasm/Cargo.lock +1475 -0
  334. package/wasm/Cargo.toml +28 -0
  335. package/wasm/pkg/bundler/package.json +20 -0
  336. package/wasm/pkg/bundler/wasm.d.ts +3 -0
  337. package/wasm/pkg/bundler/wasm.js +5 -0
  338. package/wasm/pkg/bundler/wasm_bg.js +93 -0
  339. package/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  340. package/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  341. package/wasm/pkg/nodejs/package.json +14 -0
  342. package/wasm/pkg/nodejs/wasm.d.ts +3 -0
  343. package/wasm/pkg/nodejs/wasm.js +98 -0
  344. package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  345. package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  346. package/wasm/pkg/web/package.json +18 -0
  347. package/wasm/pkg/web/wasm.d.ts +35 -0
  348. package/wasm/pkg/web/wasm.js +191 -0
  349. package/wasm/pkg/web/wasm_bg.wasm +0 -0
  350. package/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  351. package/wasm/src/lib.rs +17 -0
  352. package/wasm.ts +16 -0
@@ -1,4 +1,4 @@
1
- import { Tool } from '../../types.js';
1
+ import { Tool } from "../../types.js";
2
2
  declare function ensureToolchainInited({ strict }?: {
3
3
  strict?: boolean | undefined;
4
4
  }): Promise<boolean>;
@@ -1,24 +1,24 @@
1
- import process from 'node:process';
2
- import path from 'node:path';
3
- import fs from 'node:fs';
4
- import os from 'node:os';
5
- import { execSync } from 'node:child_process';
6
- import chalk from 'chalk';
7
- import prompts from 'prompts';
8
- import { createLogUpdate } from 'log-update';
9
- import { checkConfigFile, getClosestConfigFile, getRootDir, globalCacheDir, readConfig, writeConfig } from '../../mops.js';
10
- import { checkRequirements } from '../../check-requirements.js';
11
- import * as moc from './moc.js';
12
- import * as pocketIc from './pocket-ic.js';
13
- import * as wasmtime from './wasmtime.js';
1
+ import process from "node:process";
2
+ import path from "node:path";
3
+ import fs from "node:fs";
4
+ import os from "node:os";
5
+ import { execSync } from "node:child_process";
6
+ import chalk from "chalk";
7
+ import prompts from "prompts";
8
+ import { createLogUpdate } from "log-update";
9
+ import { checkConfigFile, getClosestConfigFile, getRootDir, globalCacheDir, readConfig, writeConfig, } from "../../mops.js";
10
+ import { checkRequirements } from "../../check-requirements.js";
11
+ import * as moc from "./moc.js";
12
+ import * as pocketIc from "./pocket-ic.js";
13
+ import * as wasmtime from "./wasmtime.js";
14
14
  function getToolUtils(tool) {
15
- if (tool === 'moc') {
15
+ if (tool === "moc") {
16
16
  return moc;
17
17
  }
18
- else if (tool === 'pocket-ic') {
18
+ else if (tool === "pocket-ic") {
19
19
  return pocketIc;
20
20
  }
21
- else if (tool === 'wasmtime') {
21
+ else if (tool === "wasmtime") {
22
22
  return wasmtime;
23
23
  }
24
24
  else {
@@ -35,12 +35,14 @@ async function ensureToolchainInited({ strict = true } = {}) {
35
35
  // for non-stict perform check only if dfx.json exists and moc is listed in [toolchain] section
36
36
  let rootDir = getRootDir();
37
37
  let config = readConfig();
38
- if (!strict && (!config.toolchain?.moc || rootDir && !fs.existsSync(path.join(rootDir, 'dfx.json')))) {
38
+ if (!strict &&
39
+ (!config.toolchain?.moc ||
40
+ (rootDir && !fs.existsSync(path.join(rootDir, "dfx.json"))))) {
39
41
  return true;
40
42
  }
41
43
  try {
42
- let res = execSync('which moc-wrapper').toString().trim();
43
- if (res && process.env.DFX_MOC_PATH === 'moc-wrapper') {
44
+ let res = execSync("which moc-wrapper").toString().trim();
45
+ if (res && process.env.DFX_MOC_PATH === "moc-wrapper") {
44
46
  return true;
45
47
  }
46
48
  }
@@ -50,82 +52,88 @@ async function ensureToolchainInited({ strict = true } = {}) {
50
52
  }
51
53
  // update shell config files to set DFX_MOC_PATH to moc-wrapper
52
54
  async function init({ reset = false, silent = false } = {}) {
53
- if (process.platform == 'win32') {
54
- console.error('Windows is not supported. Please use WSL');
55
+ if (process.platform == "win32") {
56
+ console.error("Windows is not supported. Please use WSL");
55
57
  process.exit(1);
56
58
  }
57
59
  try {
58
- let res = execSync('which mocv').toString().trim();
60
+ let res = execSync("which mocv").toString().trim();
59
61
  if (res) {
60
- console.error('Mops is not compatible with mocv. Please uninstall mocv and try again.');
61
- console.log('Steps to uninstall mocv:');
62
+ console.error("Mops is not compatible with mocv. Please uninstall mocv and try again.");
63
+ console.log("Steps to uninstall mocv:");
62
64
  console.log('1. Run "mocv reset"');
63
65
  console.log('2. Run "npm uninstall -g mocv"');
64
66
  console.log('TIP: Alternative to "mocv use <version>" is "mops toolchain use moc <version>" (installs moc only for current project)');
65
- console.log('TIP: More details at https://docs.mops.one/cli/toolchain');
67
+ console.log("TIP: More details at https://docs.mops.one/cli/toolchain");
66
68
  if (!process.env.CI || !silent) {
67
69
  process.exit(1);
68
70
  }
69
71
  }
70
72
  }
71
73
  catch { }
72
- let zshrc = path.join(os.homedir(), '.zshrc');
73
- let bashrc = path.join(os.homedir(), '.bashrc');
74
- let bashProfile = path.join(os.homedir(), '.bash_profile');
75
- let zprofile = path.join(os.homedir(), '.zprofile');
76
- let shellConfigFiles = [bashrc, zshrc, bashProfile, zprofile, process.env.GITHUB_ENV || ''].map(x => x).filter((file) => {
74
+ let zshrc = path.join(os.homedir(), ".zshrc");
75
+ let bashrc = path.join(os.homedir(), ".bashrc");
76
+ let bashProfile = path.join(os.homedir(), ".bash_profile");
77
+ let zprofile = path.join(os.homedir(), ".zprofile");
78
+ let shellConfigFiles = [
79
+ bashrc,
80
+ zshrc,
81
+ bashProfile,
82
+ zprofile,
83
+ process.env.GITHUB_ENV || "",
84
+ ]
85
+ .map((x) => x)
86
+ .filter((file) => {
77
87
  return fs.existsSync(file);
78
88
  });
79
89
  if (shellConfigFiles.length === 0) {
80
- console.error('Shell config files not found: .bashrc, .zshrc, .bash_profile, .zprofile');
90
+ console.error("Shell config files not found: .bashrc, .zshrc, .bash_profile, .zprofile");
81
91
  console.log('TIP: You can add "export DFX_MOC_PATH=moc-wrapper" to your shell config file manually to initialize Mops toolchain');
82
92
  process.exit(1);
83
93
  }
84
94
  // update all existing shell config files
85
95
  for (let shellConfigFile of shellConfigFiles) {
86
96
  let text = fs.readFileSync(shellConfigFile).toString();
87
- let setDfxMocPathLine = '\nexport DFX_MOC_PATH=moc-wrapper';
88
- let newLines = [
89
- setDfxMocPathLine,
90
- ];
97
+ let setDfxMocPathLine = "\nexport DFX_MOC_PATH=moc-wrapper";
98
+ let newLines = [setDfxMocPathLine];
91
99
  let oldLines = [
92
100
  // legacy mocv lines
93
- `\nexport DFX_MOC_PATH=${path.join(path.join(os.homedir(), '.cache/mocv'), 'versions/current')}/moc`,
101
+ `\nexport DFX_MOC_PATH=${path.join(path.join(os.homedir(), ".cache/mocv"), "versions/current")}/moc`,
94
102
  '\nexport DFX_MOC_PATH="$HOME/.cache/mocv/versions/current/moc"',
95
103
  // new
96
104
  setDfxMocPathLine,
97
105
  ];
98
106
  // remove old lines
99
107
  for (let oldLine of oldLines) {
100
- text = text.replace(oldLine, '');
108
+ text = text.replace(oldLine, "");
101
109
  }
102
- if (text.endsWith('\n\n')) {
103
- text = text.trimEnd() + '\n';
110
+ if (text.endsWith("\n\n")) {
111
+ text = text.trimEnd() + "\n";
104
112
  }
105
113
  // insert new lines
106
114
  if (!reset) {
107
- if (!text.endsWith('\n')) {
108
- text += '\n';
115
+ if (!text.endsWith("\n")) {
116
+ text += "\n";
109
117
  }
110
118
  for (let newLine of newLines) {
111
119
  if (shellConfigFile === process.env.GITHUB_ENV) {
112
- newLine = newLine.replace('export ', '');
120
+ newLine = newLine.replace("export ", "");
113
121
  }
114
122
  text += newLine;
115
123
  }
116
- text += '\n';
124
+ text += "\n";
117
125
  }
118
126
  fs.writeFileSync(shellConfigFile, text);
119
127
  }
120
128
  if (!silent) {
121
- console.log(chalk.green('Success!'));
122
- console.log('Restart terminal to apply changes');
129
+ console.log(chalk.green("Success!"));
130
+ console.log("Restart terminal to apply changes");
123
131
  }
124
132
  }
125
133
  async function download(tool, version, { silent = false, verbose = false } = {}) {
126
134
  let toolUtils = getToolUtils(tool);
127
135
  let logUpdate = createLogUpdate(process.stdout, { showCursor: true });
128
- silent || logUpdate('Installing', tool, version);
136
+ silent || logUpdate("Installing", tool, version);
129
137
  await toolUtils.download(version, { silent, verbose });
130
138
  if (verbose) {
131
139
  logUpdate.done();
@@ -151,19 +159,22 @@ async function installAll({ silent = false, verbose = false } = {}) {
151
159
  logUpdate(...args);
152
160
  }
153
161
  };
154
- log('Installing toolchain...');
162
+ log("Installing toolchain...");
155
163
  if (config.toolchain?.moc) {
156
- await download('moc', config.toolchain.moc, { silent, verbose });
164
+ await download("moc", config.toolchain.moc, { silent, verbose });
157
165
  }
158
166
  if (config.toolchain?.wasmtime) {
159
- await download('wasmtime', config.toolchain.wasmtime, { silent, verbose });
167
+ await download("wasmtime", config.toolchain.wasmtime, { silent, verbose });
160
168
  }
161
- if (config.toolchain?.['pocket-ic']) {
162
- await download('pocket-ic', config.toolchain['pocket-ic'], { silent, verbose });
169
+ if (config.toolchain?.["pocket-ic"]) {
170
+ await download("pocket-ic", config.toolchain["pocket-ic"], {
171
+ silent,
172
+ verbose,
173
+ });
163
174
  }
164
175
  if (!silent) {
165
176
  logUpdate.clear();
166
- console.log(chalk.green('Toolchain installed'));
177
+ console.log(chalk.green("Toolchain installed"));
167
178
  }
168
179
  }
169
180
  async function promptVersion(tool) {
@@ -175,13 +186,14 @@ async function promptVersion(tool) {
175
186
  let versions = releases.map((item) => item.tag_name);
176
187
  let currentIndex = versions.indexOf(current);
177
188
  let res = await prompts({
178
- type: 'select',
179
- name: 'version',
189
+ type: "select",
190
+ name: "version",
180
191
  message: `Select ${tool} version`,
181
192
  choices: releases.map((release, i) => {
182
- let date = new Date(release.published_at).toLocaleDateString(undefined, { year: 'numeric', month: 'short', day: 'numeric' });
193
+ let date = new Date(release.published_at).toLocaleDateString(undefined, { year: "numeric", month: "short", day: "numeric" });
183
194
  return {
184
- title: release.tag_name + chalk.gray(` ${date}${currentIndex === i ? chalk.italic(' (current)') : ''}`),
195
+ title: release.tag_name +
196
+ chalk.gray(` ${date}${currentIndex === i ? chalk.italic(" (current)") : ""}`),
185
197
  value: release.tag_name,
186
198
  };
187
199
  }),
@@ -191,7 +203,7 @@ async function promptVersion(tool) {
191
203
  }
192
204
  // download binary and set version in mops.toml
193
205
  async function use(tool, version) {
194
- if (tool === 'moc') {
206
+ if (tool === "moc") {
195
207
  await ensureToolchainInited();
196
208
  }
197
209
  if (!version) {
@@ -200,7 +212,7 @@ async function use(tool, version) {
200
212
  if (!version) {
201
213
  return;
202
214
  }
203
- if (version === 'latest') {
215
+ if (version === "latest") {
204
216
  version = await getToolUtils(tool).getLatestReleaseTag();
205
217
  }
206
218
  await download(tool, version);
@@ -211,7 +223,7 @@ async function use(tool, version) {
211
223
  writeConfig(config);
212
224
  await checkRequirements();
213
225
  if (oldVersion === version) {
214
- console.log((`${tool} ${version} is already installed`));
226
+ console.log(`${tool} ${version} is already installed`);
215
227
  }
216
228
  else {
217
229
  console.log(chalk.green(`Installed ${tool} ${version}`));
@@ -219,7 +231,7 @@ async function use(tool, version) {
219
231
  }
220
232
  // download latest binary and set version in mops.toml
221
233
  async function update(tool) {
222
- if (tool === 'moc') {
234
+ if (tool === "moc") {
223
235
  await ensureToolchainInited();
224
236
  }
225
237
  let config = readConfig();
@@ -236,11 +248,11 @@ async function update(tool) {
236
248
  let oldVersion = config.toolchain[tool];
237
249
  config.toolchain[tool] = version;
238
250
  writeConfig(config);
239
- if (tool === 'moc') {
251
+ if (tool === "moc") {
240
252
  await checkRequirements();
241
253
  }
242
254
  if (oldVersion === version) {
243
- console.log((`Latest ${tool} ${version} is already installed`));
255
+ console.log(`Latest ${tool} ${version} is already installed`);
244
256
  }
245
257
  else {
246
258
  console.log(chalk.green(`Installed ${tool} ${version}`));
@@ -252,8 +264,8 @@ async function bin(tool, { fallback = false } = {}) {
252
264
  let hasConfig = getClosestConfigFile();
253
265
  // fallback to dfx moc
254
266
  if (!hasConfig) {
255
- if (tool === 'moc' && fallback) {
256
- return execSync('dfx cache show').toString().trim() + '/moc';
267
+ if (tool === "moc" && fallback) {
268
+ return execSync("dfx cache show").toString().trim() + "/moc";
257
269
  }
258
270
  checkConfigFile();
259
271
  process.exit(1);
@@ -261,12 +273,12 @@ async function bin(tool, { fallback = false } = {}) {
261
273
  let config = readConfig();
262
274
  let version = config.toolchain?.[tool];
263
275
  if (version) {
264
- if (tool === 'moc') {
276
+ if (tool === "moc") {
265
277
  await ensureToolchainInited();
266
278
  }
267
279
  await download(tool, version, { silent: true });
268
- if (tool === 'moc') {
269
- return path.join(globalCacheDir, 'moc', version, tool);
280
+ if (tool === "moc") {
281
+ return path.join(globalCacheDir, "moc", version, tool);
270
282
  }
271
283
  else {
272
284
  return path.join(globalCacheDir, tool, version, tool);
@@ -274,8 +286,8 @@ async function bin(tool, { fallback = false } = {}) {
274
286
  }
275
287
  else {
276
288
  // fallback to dfx moc
277
- if (tool === 'moc' && fallback) {
278
- return execSync('dfx cache show').toString().trim() + '/moc';
289
+ if (tool === "moc" && fallback) {
290
+ return execSync("dfx cache show").toString().trim() + "/moc";
279
291
  }
280
292
  console.error(`Tool '${tool}' is not defined in [toolchain] section in mops.toml`);
281
293
  console.log(`Run ${chalk.green(`mops toolchain use ${tool}`)} to install it`);
@@ -1,7 +1,7 @@
1
1
  export declare let repo: string;
2
2
  export declare let getLatestReleaseTag: () => Promise<string>;
3
3
  export declare let getReleases: () => Promise<any>;
4
- export declare let isCached: (version: string) => boolean;
4
+ export declare let isCached: (version: string, filename: "moc" | "moc.js") => boolean;
5
5
  export declare let download: (version: string, { silent, verbose }?: {
6
6
  silent?: boolean | undefined;
7
7
  verbose?: boolean | undefined;
@@ -1,55 +1,79 @@
1
- import process from 'node:process';
2
- import path from 'node:path';
3
- import fs from 'fs-extra';
4
- import { SemVer } from 'semver';
5
- import { globalCacheDir } from '../../mops.js';
6
- import * as toolchainUtils from './toolchain-utils.js';
7
- let cacheDir = path.join(globalCacheDir, 'moc');
8
- export let repo = 'dfinity/motoko';
1
+ import process from "node:process";
2
+ import path from "node:path";
3
+ import fs from "fs-extra";
4
+ import { SemVer } from "semver";
5
+ import { globalCacheDir } from "../../mops.js";
6
+ import * as toolchainUtils from "./toolchain-utils.js";
7
+ let cacheDir = path.join(globalCacheDir, "moc");
8
+ export let repo = "dfinity/motoko";
9
9
  export let getLatestReleaseTag = async () => {
10
10
  return toolchainUtils.getLatestReleaseTag(repo);
11
11
  };
12
12
  export let getReleases = async () => {
13
13
  return toolchainUtils.getReleases(repo);
14
14
  };
15
- export let isCached = (version) => {
15
+ export let isCached = (version, filename) => {
16
16
  let dir = path.join(cacheDir, version);
17
- return fs.existsSync(dir) && fs.existsSync(path.join(dir, 'moc'));
17
+ return fs.existsSync(dir) && fs.existsSync(path.join(dir, filename));
18
18
  };
19
19
  export let download = async (version, { silent = false, verbose = false } = {}) => {
20
- if (process.platform == 'win32') {
21
- console.error('Windows is not supported. Please use WSL');
20
+ if (process.platform == "win32") {
21
+ console.error("Windows is not supported. Please use WSL");
22
22
  process.exit(1);
23
23
  }
24
24
  if (!version) {
25
- console.error('version is not defined');
25
+ console.error("version is not defined");
26
26
  process.exit(1);
27
27
  }
28
- if (isCached(version)) {
28
+ const destDir = path.join(cacheDir, version);
29
+ if (isCached(version, "moc.js")) {
30
+ if (verbose) {
31
+ console.log(`moc.js ${version} is already downloaded`);
32
+ }
33
+ }
34
+ else {
35
+ // Download the .js artifact
36
+ const jsUrl = `https://github.com/dfinity/motoko/releases/download/${version}/moc-${version}.js`;
37
+ const jsDestPath = path.join(destDir, "moc.js");
38
+ if (verbose && !silent) {
39
+ console.log(`Downloading ${jsUrl}`);
40
+ }
41
+ const buffer = await toolchainUtils.tryDownloadFile(jsUrl);
42
+ if (buffer) {
43
+ fs.mkdirSync(destDir, { recursive: true });
44
+ fs.writeFileSync(jsDestPath, buffer);
45
+ }
46
+ else if (verbose && !silent) {
47
+ console.log(`Warning: Could not download ${jsUrl}`);
48
+ }
49
+ }
50
+ if (isCached(version, "moc")) {
29
51
  if (verbose) {
30
52
  console.log(`moc ${version} is already installed`);
31
53
  }
32
54
  return;
33
55
  }
34
56
  let url;
35
- if (new SemVer(version).compare(new SemVer('0.14.6')) >= 0) {
36
- let platfrom = process.platform == 'darwin' ? 'Darwin' : 'Linux';
37
- let arch = process.arch.startsWith('arm')
38
- ? (process.platform == 'darwin' ? 'arm64' : 'aarch64')
39
- : 'x86_64';
57
+ if (new SemVer(version).compare(new SemVer("0.14.6")) >= 0) {
58
+ let platfrom = process.platform == "darwin" ? "Darwin" : "Linux";
59
+ let arch = process.arch.startsWith("arm")
60
+ ? process.platform == "darwin"
61
+ ? "arm64"
62
+ : "aarch64"
63
+ : "x86_64";
40
64
  url = `https://github.com/dfinity/motoko/releases/download/${version}/motoko-${platfrom}-${arch}-${version}.tar.gz`;
41
65
  }
42
- else if (new SemVer(version).compare(new SemVer('0.9.5')) >= 0) {
43
- let platfrom = process.platform == 'darwin' ? 'Darwin' : 'Linux';
44
- let arch = 'x86_64';
66
+ else if (new SemVer(version).compare(new SemVer("0.9.5")) >= 0) {
67
+ let platfrom = process.platform == "darwin" ? "Darwin" : "Linux";
68
+ let arch = "x86_64";
45
69
  url = `https://github.com/dfinity/motoko/releases/download/${version}/motoko-${platfrom}-${arch}-${version}.tar.gz`;
46
70
  }
47
71
  else {
48
- let platfrom = process.platform == 'darwin' ? 'macos' : 'linux64';
72
+ let platfrom = process.platform == "darwin" ? "macos" : "linux64";
49
73
  url = `https://github.com/dfinity/motoko/releases/download/${version}/motoko-${platfrom}-${version}.tar.gz`;
50
74
  }
51
75
  if (verbose && !silent) {
52
76
  console.log(`Downloading ${url}`);
53
77
  }
54
- await toolchainUtils.downloadAndExtract(url, path.join(cacheDir, version));
78
+ await toolchainUtils.downloadAndExtract(url, destDir);
55
79
  };
@@ -1,10 +1,10 @@
1
- import process from 'node:process';
2
- import path from 'node:path';
3
- import fs from 'node:fs';
4
- import { globalCacheDir } from '../../mops.js';
5
- import * as toolchainUtils from './toolchain-utils.js';
6
- let cacheDir = path.join(globalCacheDir, 'pocket-ic');
7
- export let repo = 'dfinity/pocketic';
1
+ import process from "node:process";
2
+ import path from "node:path";
3
+ import fs from "node:fs";
4
+ import { globalCacheDir } from "../../mops.js";
5
+ import * as toolchainUtils from "./toolchain-utils.js";
6
+ let cacheDir = path.join(globalCacheDir, "pocket-ic");
7
+ export let repo = "dfinity/pocketic";
8
8
  export let getLatestReleaseTag = async () => {
9
9
  return toolchainUtils.getLatestReleaseTag(repo);
10
10
  };
@@ -13,11 +13,11 @@ export let getReleases = async () => {
13
13
  };
14
14
  export let isCached = (version) => {
15
15
  let dir = path.join(cacheDir, version);
16
- return fs.existsSync(dir) && fs.existsSync(path.join(dir, 'pocket-ic'));
16
+ return fs.existsSync(dir) && fs.existsSync(path.join(dir, "pocket-ic"));
17
17
  };
18
18
  export let download = async (version, { silent = false, verbose = false } = {}) => {
19
19
  if (!version) {
20
- console.error('version is not defined');
20
+ console.error("version is not defined");
21
21
  process.exit(1);
22
22
  }
23
23
  if (isCached(version)) {
@@ -26,11 +26,11 @@ export let download = async (version, { silent = false, verbose = false } = {})
26
26
  }
27
27
  return;
28
28
  }
29
- let platfrom = process.platform == 'darwin' ? 'darwin' : 'linux';
30
- let arch = 'x86_64';
29
+ let platfrom = process.platform == "darwin" ? "darwin" : "linux";
30
+ let arch = "x86_64";
31
31
  let url = `https://github.com/dfinity/pocketic/releases/download/${version}/pocket-ic-${arch}-${platfrom}.gz`;
32
32
  if (verbose && !silent) {
33
33
  console.log(`Downloading ${url}`);
34
34
  }
35
- await toolchainUtils.downloadAndExtract(url, path.join(cacheDir, version), 'pocket-ic');
35
+ await toolchainUtils.downloadAndExtract(url, path.join(cacheDir, version), "pocket-ic");
36
36
  };
@@ -1,3 +1,5 @@
1
+ import { Buffer } from "node:buffer";
2
+ export declare let tryDownloadFile: (url: string) => Promise<Buffer | null>;
1
3
  export declare let downloadAndExtract: (url: string, destDir: string, destFileName?: string) => Promise<void>;
2
4
  export declare let getLatestReleaseTag: (repo: string) => Promise<string>;
3
5
  export declare let getReleases: (repo: string) => Promise<any>;
@@ -1,16 +1,25 @@
1
- import process from 'node:process';
2
- import path from 'node:path';
3
- import { Buffer } from 'node:buffer';
4
- import { unzipSync } from 'node:zlib';
5
- import { chmodSync } from 'node:fs';
6
- import fs from 'fs-extra';
7
- import decompress from 'decompress';
1
+ import process from "node:process";
2
+ import path from "node:path";
3
+ import { Buffer } from "node:buffer";
4
+ import { unzipSync } from "node:zlib";
5
+ import { chmodSync } from "node:fs";
6
+ import fs from "fs-extra";
7
+ import decompress from "decompress";
8
8
  // import decompressTarxz from 'decomp-tarxz';
9
- import { deleteSync } from 'del';
10
- import { Octokit } from 'octokit';
11
- import { extract as extractTar } from 'tar';
12
- import { getRootDir } from '../../mops.js';
13
- export let downloadAndExtract = async (url, destDir, destFileName = '') => {
9
+ import { deleteSync } from "del";
10
+ import { Octokit } from "octokit";
11
+ import { extract as extractTar } from "tar";
12
+ import { getRootDir } from "../../mops.js";
13
+ export let tryDownloadFile = async (url) => {
14
+ let res = await fetch(url);
15
+ if (!res.ok) {
16
+ console.error(`HTTP ${res.status} ${url}`);
17
+ return null;
18
+ }
19
+ let arrayBuffer = await res.arrayBuffer();
20
+ return Buffer.from(arrayBuffer);
21
+ };
22
+ export let downloadAndExtract = async (url, destDir, destFileName = "") => {
14
23
  let res = await fetch(url);
15
24
  if (res.status !== 200) {
16
25
  console.error(`ERROR ${res.status} ${url}`);
@@ -18,27 +27,27 @@ export let downloadAndExtract = async (url, destDir, destFileName = '') => {
18
27
  }
19
28
  let arrayBuffer = await res.arrayBuffer();
20
29
  let buffer = Buffer.from(arrayBuffer);
21
- let tmpDir = path.join(getRootDir(), '.mops', '_tmp');
30
+ let tmpDir = path.join(getRootDir(), ".mops", "_tmp");
22
31
  let archive = path.join(tmpDir, path.basename(url));
23
32
  fs.mkdirSync(tmpDir, { recursive: true });
24
33
  fs.writeFileSync(archive, buffer);
25
34
  fs.mkdirSync(destDir, { recursive: true });
26
- if (archive.endsWith('.xz')) {
27
- let decompressTarxz = await import('decomp-tarxz');
35
+ if (archive.endsWith(".xz")) {
36
+ let decompressTarxz = await import("decomp-tarxz");
28
37
  await decompress(archive, tmpDir, {
29
38
  plugins: [decompressTarxz.default()],
30
39
  }).catch(() => {
31
40
  deleteSync([tmpDir]);
32
41
  });
33
- fs.cpSync(path.join(tmpDir, path.parse(archive).name.replace('.tar', '')), destDir, { recursive: true });
42
+ fs.cpSync(path.join(tmpDir, path.parse(archive).name.replace(".tar", "")), destDir, { recursive: true });
34
43
  }
35
- else if (archive.endsWith('tar.gz')) {
44
+ else if (archive.endsWith("tar.gz")) {
36
45
  await extractTar({
37
46
  file: archive,
38
47
  cwd: destDir,
39
48
  });
40
49
  }
41
- else if (archive.endsWith('.gz')) {
50
+ else if (archive.endsWith(".gz")) {
42
51
  let destFile = path.join(destDir, destFileName || path.parse(archive).name);
43
52
  fs.writeFileSync(destFile, unzipSync(buffer));
44
53
  chmodSync(destFile, 0o700);
@@ -52,24 +61,24 @@ export let getLatestReleaseTag = async (repo) => {
52
61
  console.error(`Failed to fetch latest release tag for ${repo}`);
53
62
  process.exit(1);
54
63
  }
55
- return release.tag_name.replace(/^v/, '');
64
+ return release.tag_name.replace(/^v/, "");
56
65
  };
57
66
  export let getReleases = async (repo) => {
58
- let octokit = new Octokit;
67
+ let octokit = new Octokit();
59
68
  let res = await octokit.request(`GET /repos/${repo}/releases`, {
60
69
  per_page: 10,
61
70
  headers: {
62
- 'X-GitHub-Api-Version': '2022-11-28',
71
+ "X-GitHub-Api-Version": "2022-11-28",
63
72
  },
64
73
  });
65
74
  if (res.status !== 200) {
66
- console.log('Releases fetch error');
75
+ console.log("Releases fetch error");
67
76
  process.exit(1);
68
77
  }
69
78
  return res.data.map((release) => {
70
79
  return {
71
80
  ...release,
72
- tag_name: release.tag_name.replace(/^v/, ''),
81
+ tag_name: release.tag_name.replace(/^v/, ""),
73
82
  };
74
83
  });
75
84
  };
@@ -1,10 +1,10 @@
1
- import process from 'node:process';
2
- import path from 'node:path';
3
- import fs from 'fs-extra';
4
- import { globalCacheDir } from '../../mops.js';
5
- import * as toolchainUtils from './toolchain-utils.js';
6
- let cacheDir = path.join(globalCacheDir, 'wasmtime');
7
- export let repo = 'bytecodealliance/wasmtime';
1
+ import process from "node:process";
2
+ import path from "node:path";
3
+ import fs from "fs-extra";
4
+ import { globalCacheDir } from "../../mops.js";
5
+ import * as toolchainUtils from "./toolchain-utils.js";
6
+ let cacheDir = path.join(globalCacheDir, "wasmtime");
7
+ export let repo = "bytecodealliance/wasmtime";
8
8
  export let getLatestReleaseTag = async () => {
9
9
  return toolchainUtils.getLatestReleaseTag(repo);
10
10
  };
@@ -13,11 +13,11 @@ export let getReleases = async () => {
13
13
  };
14
14
  export let isCached = (version) => {
15
15
  let dir = path.join(cacheDir, version);
16
- return fs.existsSync(dir) && fs.existsSync(path.join(dir, 'wasmtime'));
16
+ return fs.existsSync(dir) && fs.existsSync(path.join(dir, "wasmtime"));
17
17
  };
18
18
  export let download = async (version, { silent = false, verbose = false } = {}) => {
19
19
  if (!version) {
20
- console.error('version is not defined');
20
+ console.error("version is not defined");
21
21
  process.exit(1);
22
22
  }
23
23
  if (isCached(version)) {
@@ -26,8 +26,8 @@ export let download = async (version, { silent = false, verbose = false } = {})
26
26
  }
27
27
  return;
28
28
  }
29
- let platfrom = process.platform == 'darwin' ? 'macos' : 'linux';
30
- let arch = process.arch.startsWith('arm') ? 'aarch64' : 'x86_64';
29
+ let platfrom = process.platform == "darwin" ? "macos" : "linux";
30
+ let arch = process.arch.startsWith("arm") ? "aarch64" : "x86_64";
31
31
  let url = `https://github.com/bytecodealliance/wasmtime/releases/download/v${version}/wasmtime-v${version}-${arch}-${platfrom}.tar.xz`;
32
32
  if (verbose && !silent) {
33
33
  console.log(`Downloading ${url}`);
@@ -1,7 +1,7 @@
1
1
  type UpdateOptions = {
2
2
  verbose?: boolean;
3
3
  dev?: boolean;
4
- lock?: 'update' | 'ignore';
4
+ lock?: "update" | "ignore";
5
5
  };
6
6
  export declare function update(pkg?: string, { lock }?: UpdateOptions): Promise<void>;
7
7
  export {};