ic-mops 1.12.0 → 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 (322) hide show
  1. package/.DS_Store +0 -0
  2. package/.eslintrc.json +7 -7
  3. package/CHANGELOG.md +6 -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/bundle/bench/bench-canister.mo +109 -101
  12. package/bundle/bench/user-bench.mo +6 -6
  13. package/bundle/bin/mops.js +1 -1
  14. package/bundle/cli.js +797 -792
  15. package/bundle/cli.tgz +0 -0
  16. package/bundle/package.json +6 -5
  17. package/bundle/templates/mops-publish.yml +3 -3
  18. package/bundle/templates/mops-test.yml +3 -3
  19. package/bundle/templates/src/lib.mo +13 -13
  20. package/bundle/templates/test/lib.test.mo +2 -2
  21. package/bundle-package-json.ts +8 -8
  22. package/cache.ts +80 -65
  23. package/check-requirements.ts +49 -45
  24. package/cli.ts +577 -376
  25. package/commands/add.ts +142 -129
  26. package/commands/available-updates.ts +55 -41
  27. package/commands/bench/bench-canister.mo +114 -108
  28. package/commands/bench/user-bench.mo +6 -6
  29. package/commands/bench-replica.ts +146 -118
  30. package/commands/bench.ts +563 -497
  31. package/commands/build.ts +177 -0
  32. package/commands/bump.ts +68 -57
  33. package/commands/check-candid.ts +24 -0
  34. package/commands/docs-coverage.ts +124 -102
  35. package/commands/docs.ts +118 -108
  36. package/commands/format.ts +171 -155
  37. package/commands/init.ts +301 -275
  38. package/commands/install/install-all.ts +75 -62
  39. package/commands/install/install-dep.ts +43 -28
  40. package/commands/install/install-deps.ts +23 -15
  41. package/commands/install/install-local-dep.ts +42 -34
  42. package/commands/install/install-mops-dep.ts +154 -123
  43. package/commands/install/sync-local-cache.ts +39 -35
  44. package/commands/maintainer.ts +109 -99
  45. package/commands/outdated.ts +30 -24
  46. package/commands/owner.ts +107 -99
  47. package/commands/publish.ts +534 -443
  48. package/commands/remove.ts +119 -89
  49. package/commands/replica.ts +391 -316
  50. package/commands/search.ts +42 -36
  51. package/commands/self.ts +63 -56
  52. package/commands/sources.ts +66 -49
  53. package/commands/sync.ts +92 -75
  54. package/commands/template.ts +145 -102
  55. package/commands/test/mmf1.ts +146 -119
  56. package/commands/test/reporters/compact-reporter.ts +87 -84
  57. package/commands/test/reporters/files-reporter.ts +56 -51
  58. package/commands/test/reporters/reporter.ts +12 -6
  59. package/commands/test/reporters/silent-reporter.ts +58 -59
  60. package/commands/test/reporters/verbose-reporter.ts +66 -54
  61. package/commands/test/test.ts +498 -401
  62. package/commands/test/utils.ts +72 -67
  63. package/commands/toolchain/index.ts +363 -322
  64. package/commands/toolchain/moc.ts +78 -50
  65. package/commands/toolchain/pocket-ic.ts +41 -34
  66. package/commands/toolchain/toolchain-utils.ts +92 -72
  67. package/commands/toolchain/wasmtime.ts +37 -34
  68. package/commands/update.ts +82 -64
  69. package/commands/user.ts +90 -81
  70. package/commands/watch/deployer.ts +188 -152
  71. package/commands/watch/error-checker.ts +90 -80
  72. package/commands/watch/formatter.ts +72 -60
  73. package/commands/watch/generator.ts +116 -96
  74. package/commands/watch/globMoFiles.ts +13 -13
  75. package/commands/watch/parseDfxJson.ts +63 -57
  76. package/commands/watch/tester.ts +83 -65
  77. package/commands/watch/warning-checker.ts +149 -136
  78. package/commands/watch/watch.ts +123 -95
  79. package/dist/api/actors.d.ts +4 -4
  80. package/dist/api/actors.js +8 -8
  81. package/dist/api/downloadPackageFiles.d.ts +2 -2
  82. package/dist/api/downloadPackageFiles.js +10 -10
  83. package/dist/api/getHighestVersion.js +1 -1
  84. package/dist/api/index.d.ts +4 -4
  85. package/dist/api/index.js +4 -4
  86. package/dist/api/network.js +9 -9
  87. package/dist/api/resolveVersion.js +3 -3
  88. package/dist/bin/mops.js +1 -1
  89. package/dist/bundle-package-json.js +8 -8
  90. package/dist/cache.js +22 -17
  91. package/dist/check-requirements.js +11 -11
  92. package/dist/cli.js +283 -186
  93. package/dist/commands/add.d.ts +1 -1
  94. package/dist/commands/add.js +40 -37
  95. package/dist/commands/available-updates.d.ts +1 -1
  96. package/dist/commands/available-updates.js +18 -12
  97. package/dist/commands/bench/bench-canister.mo +114 -108
  98. package/dist/commands/bench/user-bench.mo +6 -6
  99. package/dist/commands/bench-replica.d.ts +4 -4
  100. package/dist/commands/bench-replica.js +45 -34
  101. package/dist/commands/bench.d.ts +5 -5
  102. package/dist/commands/bench.js +134 -118
  103. package/dist/commands/build.d.ts +7 -0
  104. package/dist/commands/build.js +121 -0
  105. package/dist/commands/bump.js +27 -18
  106. package/dist/commands/check-candid.d.ts +4 -0
  107. package/dist/commands/check-candid.js +15 -0
  108. package/dist/commands/docs-coverage.d.ts +1 -1
  109. package/dist/commands/docs-coverage.js +45 -31
  110. package/dist/commands/docs.d.ts +1 -1
  111. package/dist/commands/docs.js +39 -38
  112. package/dist/commands/format.js +31 -27
  113. package/dist/commands/init.js +102 -92
  114. package/dist/commands/install/install-all.d.ts +2 -2
  115. package/dist/commands/install/install-all.js +23 -21
  116. package/dist/commands/install/install-dep.d.ts +1 -1
  117. package/dist/commands/install/install-dep.js +21 -8
  118. package/dist/commands/install/install-deps.d.ts +1 -1
  119. package/dist/commands/install/install-deps.js +1 -1
  120. package/dist/commands/install/install-local-dep.js +11 -9
  121. package/dist/commands/install/install-mops-dep.d.ts +1 -1
  122. package/dist/commands/install/install-mops-dep.js +32 -27
  123. package/dist/commands/install/sync-local-cache.js +10 -10
  124. package/dist/commands/maintainer.js +21 -21
  125. package/dist/commands/outdated.js +12 -8
  126. package/dist/commands/owner.js +21 -21
  127. package/dist/commands/publish.js +148 -128
  128. package/dist/commands/remove.d.ts +1 -1
  129. package/dist/commands/remove.js +42 -30
  130. package/dist/commands/replica.d.ts +7 -7
  131. package/dist/commands/replica.js +85 -57
  132. package/dist/commands/search.js +15 -13
  133. package/dist/commands/self.js +31 -28
  134. package/dist/commands/sources.d.ts +5 -1
  135. package/dist/commands/sources.js +23 -17
  136. package/dist/commands/sync.d.ts +1 -1
  137. package/dist/commands/sync.js +38 -25
  138. package/dist/commands/template.js +66 -56
  139. package/dist/commands/test/mmf1.d.ts +3 -3
  140. package/dist/commands/test/mmf1.js +33 -31
  141. package/dist/commands/test/reporters/compact-reporter.d.ts +3 -3
  142. package/dist/commands/test/reporters/compact-reporter.js +19 -15
  143. package/dist/commands/test/reporters/files-reporter.d.ts +3 -3
  144. package/dist/commands/test/reporters/files-reporter.js +18 -14
  145. package/dist/commands/test/reporters/reporter.d.ts +2 -2
  146. package/dist/commands/test/reporters/silent-reporter.d.ts +3 -3
  147. package/dist/commands/test/reporters/silent-reporter.js +4 -4
  148. package/dist/commands/test/reporters/verbose-reporter.d.ts +3 -3
  149. package/dist/commands/test/reporters/verbose-reporter.js +17 -13
  150. package/dist/commands/test/test.d.ts +4 -4
  151. package/dist/commands/test/test.js +134 -112
  152. package/dist/commands/test/utils.d.ts +3 -3
  153. package/dist/commands/test/utils.js +17 -17
  154. package/dist/commands/toolchain/index.d.ts +1 -1
  155. package/dist/commands/toolchain/index.js +81 -69
  156. package/dist/commands/toolchain/moc.d.ts +1 -1
  157. package/dist/commands/toolchain/moc.js +48 -24
  158. package/dist/commands/toolchain/pocket-ic.js +12 -12
  159. package/dist/commands/toolchain/toolchain-utils.d.ts +2 -0
  160. package/dist/commands/toolchain/toolchain-utils.js +32 -23
  161. package/dist/commands/toolchain/wasmtime.js +11 -11
  162. package/dist/commands/update.d.ts +1 -1
  163. package/dist/commands/update.js +18 -14
  164. package/dist/commands/user.js +31 -28
  165. package/dist/commands/watch/deployer.d.ts +4 -4
  166. package/dist/commands/watch/deployer.js +45 -36
  167. package/dist/commands/watch/error-checker.d.ts +2 -2
  168. package/dist/commands/watch/error-checker.js +27 -27
  169. package/dist/commands/watch/formatter.d.ts +4 -4
  170. package/dist/commands/watch/formatter.js +17 -17
  171. package/dist/commands/watch/generator.d.ts +3 -3
  172. package/dist/commands/watch/generator.js +28 -23
  173. package/dist/commands/watch/globMoFiles.js +8 -8
  174. package/dist/commands/watch/parseDfxJson.d.ts +2 -2
  175. package/dist/commands/watch/parseDfxJson.js +9 -9
  176. package/dist/commands/watch/tester.d.ts +4 -4
  177. package/dist/commands/watch/tester.js +23 -21
  178. package/dist/commands/watch/warning-checker.d.ts +3 -3
  179. package/dist/commands/watch/warning-checker.js +36 -36
  180. package/dist/commands/watch/watch.js +45 -32
  181. package/dist/environments/nodejs/cli.d.ts +1 -0
  182. package/dist/environments/nodejs/cli.js +4 -0
  183. package/dist/environments/web/cli.d.ts +1 -0
  184. package/dist/environments/web/cli.js +4 -0
  185. package/dist/error.d.ts +1 -0
  186. package/dist/error.js +5 -0
  187. package/dist/fix-dist.js +5 -5
  188. package/dist/helpers/find-changelog-entry.js +8 -5
  189. package/dist/helpers/get-dep-name.js +2 -2
  190. package/dist/helpers/get-dfx-version.js +4 -4
  191. package/dist/helpers/get-moc-path.js +8 -7
  192. package/dist/helpers/get-moc-version.js +10 -7
  193. package/dist/helpers/get-package-id.js +2 -2
  194. package/dist/helpers/is-candid-compatible.d.ts +1 -0
  195. package/dist/helpers/is-candid-compatible.js +20 -0
  196. package/dist/integrity.d.ts +1 -1
  197. package/dist/integrity.js +47 -38
  198. package/dist/jest.config.d.ts +11 -0
  199. package/dist/jest.config.js +14 -0
  200. package/dist/mops.d.ts +6 -6
  201. package/dist/mops.js +87 -80
  202. package/dist/notify-installs.js +4 -4
  203. package/dist/package.json +9 -5
  204. package/dist/pem.d.ts +3 -3
  205. package/dist/pem.js +20 -12
  206. package/dist/release-cli.js +20 -20
  207. package/dist/resolve-packages.d.ts +1 -1
  208. package/dist/resolve-packages.js +52 -36
  209. package/dist/templates/mops-publish.yml +3 -3
  210. package/dist/templates/mops-test.yml +3 -3
  211. package/dist/templates/src/lib.mo +13 -13
  212. package/dist/templates/test/lib.test.mo +2 -2
  213. package/dist/templates.js +1 -1
  214. package/dist/tests/cli.test.d.ts +1 -0
  215. package/dist/tests/cli.test.js +63 -0
  216. package/dist/types.d.ts +14 -4
  217. package/dist/vessel.d.ts +2 -2
  218. package/dist/vessel.js +41 -34
  219. package/dist/wasm/pkg/bundler/package.json +20 -0
  220. package/dist/wasm/pkg/bundler/wasm.d.ts +3 -0
  221. package/dist/wasm/pkg/bundler/wasm.js +5 -0
  222. package/dist/wasm/pkg/bundler/wasm_bg.js +93 -0
  223. package/dist/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  224. package/dist/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  225. package/dist/wasm/pkg/nodejs/package.json +14 -0
  226. package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
  227. package/dist/wasm/pkg/nodejs/wasm.js +98 -0
  228. package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  229. package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  230. package/dist/wasm/pkg/web/package.json +18 -0
  231. package/dist/wasm/pkg/web/wasm.d.ts +35 -0
  232. package/dist/wasm/pkg/web/wasm.js +191 -0
  233. package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
  234. package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  235. package/dist/wasm.d.ts +5 -0
  236. package/dist/wasm.js +10 -0
  237. package/environments/nodejs/cli.ts +6 -0
  238. package/environments/web/cli.ts +6 -0
  239. package/error.ts +6 -0
  240. package/fix-dist.ts +5 -5
  241. package/global.d.ts +3 -3
  242. package/helpers/find-changelog-entry.ts +26 -23
  243. package/helpers/get-dep-name.ts +5 -5
  244. package/helpers/get-dfx-version.ts +8 -9
  245. package/helpers/get-moc-path.ts +25 -26
  246. package/helpers/get-moc-version.ts +21 -19
  247. package/helpers/get-package-id.ts +4 -4
  248. package/helpers/is-candid-compatible.ts +22 -0
  249. package/integrity.ts +270 -236
  250. package/jest.config.js +14 -0
  251. package/mops.ts +238 -215
  252. package/notify-installs.ts +16 -17
  253. package/package.json +19 -10
  254. package/parallel.ts +28 -24
  255. package/pem.ts +55 -47
  256. package/release-cli.ts +73 -39
  257. package/resolve-packages.ts +231 -189
  258. package/templates/mops-publish.yml +3 -3
  259. package/templates/mops-test.yml +3 -3
  260. package/templates/src/lib.mo +13 -13
  261. package/templates/test/lib.test.mo +2 -2
  262. package/templates.ts +4 -4
  263. package/tests/__snapshots__/cli.test.ts.snap +202 -0
  264. package/tests/build/error/candid/bar.did +3 -0
  265. package/tests/build/error/dfx.json +12 -0
  266. package/tests/build/error/mops.toml +9 -0
  267. package/tests/build/error/src/Bar.mo +5 -0
  268. package/tests/build/error/src/Foo.mo +5 -0
  269. package/tests/build/success/.dfx/local/canister_ids.json +17 -0
  270. package/tests/build/success/.dfx/local/canisters/bar/bar.did +3 -0
  271. package/tests/build/success/.dfx/local/canisters/bar/bar.most +4 -0
  272. package/tests/build/success/.dfx/local/canisters/bar/bar.wasm +0 -0
  273. package/tests/build/success/.dfx/local/canisters/bar/constructor.did +3 -0
  274. package/tests/build/success/.dfx/local/canisters/bar/index.js +42 -0
  275. package/tests/build/success/.dfx/local/canisters/bar/init_args.txt +1 -0
  276. package/tests/build/success/.dfx/local/canisters/bar/service.did +3 -0
  277. package/tests/build/success/.dfx/local/canisters/bar/service.did.d.ts +7 -0
  278. package/tests/build/success/.dfx/local/canisters/bar/service.did.js +4 -0
  279. package/tests/build/success/.dfx/local/canisters/foo/constructor.did +3 -0
  280. package/tests/build/success/.dfx/local/canisters/foo/foo.did +3 -0
  281. package/tests/build/success/.dfx/local/canisters/foo/foo.most +4 -0
  282. package/tests/build/success/.dfx/local/canisters/foo/foo.wasm +0 -0
  283. package/tests/build/success/.dfx/local/canisters/foo/index.js +42 -0
  284. package/tests/build/success/.dfx/local/canisters/foo/init_args.txt +1 -0
  285. package/tests/build/success/.dfx/local/canisters/foo/service.did +3 -0
  286. package/tests/build/success/.dfx/local/canisters/foo/service.did.d.ts +7 -0
  287. package/tests/build/success/.dfx/local/canisters/foo/service.did.js +4 -0
  288. package/tests/build/success/.dfx/local/lsp/ucwa4-rx777-77774-qaada-cai.did +3 -0
  289. package/tests/build/success/.dfx/local/lsp/ulvla-h7777-77774-qaacq-cai.did +3 -0
  290. package/tests/build/success/.dfx/local/network-id +4 -0
  291. package/tests/build/success/candid/bar.did +3 -0
  292. package/tests/build/success/dfx.json +12 -0
  293. package/tests/build/success/mops.toml +9 -0
  294. package/tests/build/success/src/Bar.mo +5 -0
  295. package/tests/build/success/src/Foo.mo +5 -0
  296. package/tests/check-candid/a.did +3 -0
  297. package/tests/check-candid/b.did +5 -0
  298. package/tests/check-candid/c.did +3 -0
  299. package/tests/cli.test.ts +82 -0
  300. package/tsconfig.json +26 -19
  301. package/types.ts +41 -31
  302. package/vessel.ts +219 -187
  303. package/wasm/Cargo.lock +1475 -0
  304. package/wasm/Cargo.toml +28 -0
  305. package/wasm/pkg/bundler/package.json +20 -0
  306. package/wasm/pkg/bundler/wasm.d.ts +3 -0
  307. package/wasm/pkg/bundler/wasm.js +5 -0
  308. package/wasm/pkg/bundler/wasm_bg.js +93 -0
  309. package/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  310. package/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  311. package/wasm/pkg/nodejs/package.json +14 -0
  312. package/wasm/pkg/nodejs/wasm.d.ts +3 -0
  313. package/wasm/pkg/nodejs/wasm.js +98 -0
  314. package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  315. package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  316. package/wasm/pkg/web/package.json +18 -0
  317. package/wasm/pkg/web/wasm.d.ts +35 -0
  318. package/wasm/pkg/web/wasm.js +191 -0
  319. package/wasm/pkg/web/wasm_bg.wasm +0 -0
  320. package/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  321. package/wasm/src/lib.rs +17 -0
  322. package/wasm.ts +16 -0
@@ -1,111 +1,139 @@
1
- import chokidar from 'chokidar';
2
- import path from 'node:path';
3
- import debounce from 'debounce';
4
- import chalk from 'chalk';
5
- import {ErrorChecker} from './error-checker.js';
6
- import {WarningChecker} from './warning-checker.js';
7
- import {getMotokoCanisters, getMotokoCanistersWithDeclarations} from './parseDfxJson.js';
8
- import {getRootDir} from '../../mops.js';
9
- import {Tester} from './tester.js';
10
- import {Generator} from './generator.js';
11
- import {Deployer} from './deployer.js';
12
- import {Formatter} from './formatter.js';
1
+ import chokidar from "chokidar";
2
+ import path from "node:path";
3
+ import debounce from "debounce";
4
+ import chalk from "chalk";
5
+ import { ErrorChecker } from "./error-checker.js";
6
+ import { WarningChecker } from "./warning-checker.js";
7
+ import {
8
+ getMotokoCanisters,
9
+ getMotokoCanistersWithDeclarations,
10
+ } from "./parseDfxJson.js";
11
+ import { getRootDir } from "../../mops.js";
12
+ import { Tester } from "./tester.js";
13
+ import { Generator } from "./generator.js";
14
+ import { Deployer } from "./deployer.js";
15
+ import { Formatter } from "./formatter.js";
13
16
 
14
17
  let ignore = [
15
- '**/node_modules/**',
16
- '**/.mops/**',
17
- '**/.vessel/**',
18
- '**/.git/**',
18
+ "**/node_modules/**",
19
+ "**/.mops/**",
20
+ "**/.vessel/**",
21
+ "**/.git/**",
19
22
  ];
20
23
 
21
- export async function watch(options : {error : boolean, warning : boolean, test : boolean, generate : boolean, deploy : boolean, format : boolean}) {
22
- let hasOptions = Object.values(options).includes(true);
23
- if (!hasOptions) {
24
- options = {
25
- error: true,
26
- warning: true,
27
- test: true,
28
- generate: true,
29
- deploy: true,
30
- format: false,
31
- };
32
- }
33
- options.error = true;
24
+ export async function watch(options: {
25
+ error: boolean;
26
+ warning: boolean;
27
+ test: boolean;
28
+ generate: boolean;
29
+ deploy: boolean;
30
+ format: boolean;
31
+ }) {
32
+ let hasOptions = Object.values(options).includes(true);
33
+ if (!hasOptions) {
34
+ options = {
35
+ error: true,
36
+ warning: true,
37
+ test: true,
38
+ generate: true,
39
+ deploy: true,
40
+ format: false,
41
+ };
42
+ }
43
+ options.error = true;
34
44
 
35
- let rootDir = getRootDir();
36
- let canisters = getMotokoCanisters();
37
- let canistersWithDeclarations = getMotokoCanistersWithDeclarations();
38
- let errorChecker = new ErrorChecker({verbose: true, canisters: canisters});
39
- let warningChecker = new WarningChecker({errorChecker, verbose: true, canisters: canisters});
40
- let tester = new Tester({errorChecker, verbose: true});
41
- let generator = new Generator({errorChecker, verbose: true, canisters: canistersWithDeclarations});
42
- let deployer = new Deployer({errorChecker, generator, verbose: true, canisters: canisters});
43
- let formatter = new Formatter({errorChecker, verbose: true});
45
+ let rootDir = getRootDir();
46
+ let canisters = getMotokoCanisters();
47
+ let canistersWithDeclarations = getMotokoCanistersWithDeclarations();
48
+ let errorChecker = new ErrorChecker({ verbose: true, canisters: canisters });
49
+ let warningChecker = new WarningChecker({
50
+ errorChecker,
51
+ verbose: true,
52
+ canisters: canisters,
53
+ });
54
+ let tester = new Tester({ errorChecker, verbose: true });
55
+ let generator = new Generator({
56
+ errorChecker,
57
+ verbose: true,
58
+ canisters: canistersWithDeclarations,
59
+ });
60
+ let deployer = new Deployer({
61
+ errorChecker,
62
+ generator,
63
+ verbose: true,
64
+ canisters: canisters,
65
+ });
66
+ let formatter = new Formatter({ errorChecker, verbose: true });
44
67
 
45
- let watcher = chokidar.watch([
46
- path.join(rootDir, '**/*.mo'),
47
- path.join(rootDir, 'mops.toml'),
48
- ], {
49
- ignored: ignore,
50
- ignoreInitial: true,
51
- });
68
+ let watcher = chokidar.watch(
69
+ [path.join(rootDir, "**/*.mo"), path.join(rootDir, "mops.toml")],
70
+ {
71
+ ignored: ignore,
72
+ ignoreInitial: true,
73
+ },
74
+ );
52
75
 
53
- let formatting = false;
76
+ let formatting = false;
54
77
 
55
- let run = debounce(async () => {
56
- if (formatting) {
57
- return;
58
- }
78
+ let run = debounce(async () => {
79
+ if (formatting) {
80
+ return;
81
+ }
59
82
 
60
- errorChecker.reset();
61
- warningChecker.reset();
62
- tester.reset();
63
- generator.reset();
64
- deployer.reset();
65
- formatter.reset();
83
+ errorChecker.reset();
84
+ warningChecker.reset();
85
+ tester.reset();
86
+ generator.reset();
87
+ deployer.reset();
88
+ formatter.reset();
66
89
 
67
- if (options.format) {
68
- formatting = true;
69
- }
90
+ if (options.format) {
91
+ formatting = true;
92
+ }
70
93
 
71
- options.error && await errorChecker.run(print);
72
- options.warning && warningChecker.run(print);
73
- options.format && formatter.run(print).then(() => setTimeout(() => formatting = false, 500));
74
- options.test && tester.run(print);
75
- options.generate && await generator.run(print);
76
- options.deploy && deployer.run(print);
77
- }, 200);
94
+ options.error && (await errorChecker.run(print));
95
+ options.warning && warningChecker.run(print);
96
+ options.format &&
97
+ formatter
98
+ .run(print)
99
+ .then(() => setTimeout(() => (formatting = false), 500));
100
+ options.test && tester.run(print);
101
+ options.generate && (await generator.run(print));
102
+ options.deploy && deployer.run(print);
103
+ }, 200);
78
104
 
79
- let print = () => {
80
- console.clear();
81
- process.stdout.write('\x1Bc');
105
+ let print = () => {
106
+ console.clear();
107
+ process.stdout.write("\x1Bc");
82
108
 
83
- options.error && console.log(errorChecker.getOutput());
84
- options.warning && console.log(warningChecker.getOutput());
85
- options.format && console.log(formatter.getOutput());
86
- options.test && console.log(tester.getOutput());
87
- options.generate && console.log(generator.getOutput());
88
- options.deploy && console.log(deployer.getOutput());
109
+ options.error && console.log(errorChecker.getOutput());
110
+ options.warning && console.log(warningChecker.getOutput());
111
+ options.format && console.log(formatter.getOutput());
112
+ options.test && console.log(tester.getOutput());
113
+ options.generate && console.log(generator.getOutput());
114
+ options.deploy && console.log(deployer.getOutput());
89
115
 
90
- let statuses = [];
91
- options.error && statuses.push(errorChecker.status);
92
- options.warning && statuses.push(warningChecker.status);
93
- options.format && statuses.push(formatter.status);
94
- options.test && statuses.push(tester.status);
95
- options.generate && statuses.push(generator.status);
96
- options.deploy && statuses.push(deployer.status);
116
+ let statuses = [];
117
+ options.error && statuses.push(errorChecker.status);
118
+ options.warning && statuses.push(warningChecker.status);
119
+ options.format && statuses.push(formatter.status);
120
+ options.test && statuses.push(tester.status);
121
+ options.generate && statuses.push(generator.status);
122
+ options.deploy && statuses.push(deployer.status);
97
123
 
98
- if (statuses.every(status => status !== 'pending' && status !== 'running')) {
99
- console.log(chalk.dim('-'.repeat(50)));
100
- console.log(chalk.dim('Waiting for file changes...'));
101
- console.log(chalk.dim(`Press ${chalk.bold('Ctrl+C')} to exit.`));
102
- }
103
- };
124
+ if (
125
+ statuses.every((status) => status !== "pending" && status !== "running")
126
+ ) {
127
+ console.log(chalk.dim("-".repeat(50)));
128
+ console.log(chalk.dim("Waiting for file changes..."));
129
+ console.log(chalk.dim(`Press ${chalk.bold("Ctrl+C")} to exit.`));
130
+ }
131
+ };
104
132
 
105
- watcher.on('all', () => {
106
- if (!formatting) {
107
- run();
108
- }
109
- });
110
- run();
111
- }
133
+ watcher.on("all", () => {
134
+ if (!formatting) {
135
+ run();
136
+ }
137
+ });
138
+ run();
139
+ }
@@ -1,6 +1,6 @@
1
- import { Identity } from '@icp-sdk/core/agent';
2
- import { Principal } from '@icp-sdk/core/principal';
3
- import { _SERVICE } from '../declarations/main/main.did.js';
4
- import { _SERVICE as _STORAGE_SERVICE } from '../declarations/storage/storage.did.js';
1
+ import { Identity } from "@icp-sdk/core/agent";
2
+ import { Principal } from "@icp-sdk/core/principal";
3
+ import { _SERVICE } from "../declarations/main/main.did.js";
4
+ import { _SERVICE as _STORAGE_SERVICE } from "../declarations/storage/storage.did.js";
5
5
  export declare let mainActor: (identity?: Identity) => Promise<_SERVICE>;
6
6
  export declare let storageActor: (storageId: Principal, identity?: Identity) => Promise<_STORAGE_SERVICE>;
@@ -1,11 +1,11 @@
1
- import { Actor, HttpAgent } from '@icp-sdk/core/agent';
2
- import { idlFactory } from '../declarations/main/main.did.js';
3
- import { idlFactory as storageIdlFactory } from '../declarations/storage/storage.did.js';
4
- import { getEndpoint } from './network.js';
5
- import { getNetwork } from './network.js';
1
+ import { Actor, HttpAgent } from "@icp-sdk/core/agent";
2
+ import { idlFactory } from "../declarations/main/main.did.js";
3
+ import { idlFactory as storageIdlFactory } from "../declarations/storage/storage.did.js";
4
+ import { getEndpoint } from "./network.js";
5
+ import { getNetwork } from "./network.js";
6
6
  let agentPromiseByPrincipal = new Map();
7
7
  let getAgent = async (identity) => {
8
- let principal = identity ? identity?.getPrincipal().toText() : '';
8
+ let principal = identity ? identity?.getPrincipal().toText() : "";
9
9
  let agentPromise = agentPromiseByPrincipal.get(principal);
10
10
  if (!agentPromise) {
11
11
  let network = getNetwork();
@@ -13,8 +13,8 @@ let getAgent = async (identity) => {
13
13
  agentPromise = HttpAgent.create({
14
14
  host,
15
15
  identity,
16
- shouldFetchRootKey: network === 'local',
17
- verifyQuerySignatures: process.env.MOPS_VERIFY_QUERY_SIGNATURES !== 'false',
16
+ shouldFetchRootKey: network === "local",
17
+ verifyQuerySignatures: process.env.MOPS_VERIFY_QUERY_SIGNATURES !== "false",
18
18
  shouldSyncTime: true,
19
19
  });
20
20
  agentPromiseByPrincipal.set(principal, agentPromise);
@@ -1,5 +1,5 @@
1
- import { Principal } from '@icp-sdk/core/principal';
2
- import { Storage } from '../declarations/storage/storage.did.js';
1
+ import { Principal } from "@icp-sdk/core/principal";
2
+ import { Storage } from "../declarations/storage/storage.did.js";
3
3
  export declare function downloadPackageFiles(pkg: string, version?: string, threads?: number, onLoad?: (_fileIds: string[], _fileId: string) => void): Promise<Map<string, Array<number>>>;
4
4
  export declare function getPackageFilesInfo(pkg: string, version: string): Promise<{
5
5
  storageId: Principal;
@@ -1,8 +1,8 @@
1
- import { Principal } from '@icp-sdk/core/principal';
2
- import { mainActor, storageActor } from './actors.js';
3
- import { resolveVersion } from './resolveVersion.js';
4
- import { parallel } from '../parallel.js';
5
- export async function downloadPackageFiles(pkg, version = '', threads = 8, onLoad = (_fileIds, _fileId) => { }) {
1
+ import { Principal } from "@icp-sdk/core/principal";
2
+ import { mainActor, storageActor } from "./actors.js";
3
+ import { resolveVersion } from "./resolveVersion.js";
4
+ import { parallel } from "../parallel.js";
5
+ export async function downloadPackageFiles(pkg, version = "", threads = 8, onLoad = (_fileIds, _fileId) => { }) {
6
6
  version = await resolveVersion(pkg, version);
7
7
  let { storageId, fileIds } = await getPackageFilesInfo(pkg, version);
8
8
  let storage = await storageActor(storageId);
@@ -21,7 +21,7 @@ export async function getPackageFilesInfo(pkg, version) {
21
21
  actor.getPackageDetails(pkg, version),
22
22
  getFileIds(pkg, version),
23
23
  ]);
24
- if ('err' in packageDetailsRes) {
24
+ if ("err" in packageDetailsRes) {
25
25
  throw packageDetailsRes.err;
26
26
  }
27
27
  let packageDetails = packageDetailsRes.ok;
@@ -34,7 +34,7 @@ export async function getPackageFilesInfo(pkg, version) {
34
34
  export async function getFileIds(pkg, version) {
35
35
  let actor = await mainActor();
36
36
  let fileIdsRes = await actor.getFileIds(pkg, version);
37
- if ('err' in fileIdsRes) {
37
+ if ("err" in fileIdsRes) {
38
38
  throw fileIdsRes.err;
39
39
  }
40
40
  let filesIds = fileIdsRes.ok;
@@ -42,18 +42,18 @@ export async function getFileIds(pkg, version) {
42
42
  }
43
43
  // download single file
44
44
  export async function downloadFile(storage, fileId) {
45
- if (typeof storage === 'string') {
45
+ if (typeof storage === "string") {
46
46
  storage = await storageActor(Principal.fromText(storage));
47
47
  }
48
48
  let fileMetaRes = await storage.getFileMeta(fileId);
49
- if ('err' in fileMetaRes) {
49
+ if ("err" in fileMetaRes) {
50
50
  throw fileMetaRes.err;
51
51
  }
52
52
  let fileMeta = fileMetaRes.ok;
53
53
  let data = [];
54
54
  for (let i = 0n; i < fileMeta.chunkCount; i++) {
55
55
  let chunkRes = await storage.downloadChunk(fileId, i);
56
- if ('err' in chunkRes) {
56
+ if ("err" in chunkRes) {
57
57
  throw chunkRes.err;
58
58
  }
59
59
  let chunk = chunkRes.ok;
@@ -1,4 +1,4 @@
1
- import { mainActor } from './actors.js';
1
+ import { mainActor } from "./actors.js";
2
2
  export async function getHighestVersion(pkgName) {
3
3
  let actor = await mainActor();
4
4
  return actor.getHighestVersion(pkgName);
@@ -1,4 +1,4 @@
1
- export { mainActor, storageActor } from './actors.js';
2
- export { downloadPackageFiles } from './downloadPackageFiles.js';
3
- export { getEndpoint, getNetwork } from './network.js';
4
- export { resolveVersion } from './resolveVersion.js';
1
+ export { mainActor, storageActor } from "./actors.js";
2
+ export { downloadPackageFiles } from "./downloadPackageFiles.js";
3
+ export { getEndpoint, getNetwork } from "./network.js";
4
+ export { resolveVersion } from "./resolveVersion.js";
package/dist/api/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export { mainActor, storageActor } from './actors.js';
2
- export { downloadPackageFiles } from './downloadPackageFiles.js';
3
- export { getEndpoint, getNetwork } from './network.js';
4
- export { resolveVersion } from './resolveVersion.js';
1
+ export { mainActor, storageActor } from "./actors.js";
2
+ export { downloadPackageFiles } from "./downloadPackageFiles.js";
3
+ export { getEndpoint, getNetwork } from "./network.js";
4
+ export { resolveVersion } from "./resolveVersion.js";
@@ -1,23 +1,23 @@
1
1
  export function getNetwork() {
2
- return globalThis.MOPS_NETWORK || 'ic';
2
+ return globalThis.MOPS_NETWORK || "ic";
3
3
  }
4
4
  export function getEndpoint(network) {
5
- if (network === 'staging') {
5
+ if (network === "staging") {
6
6
  return {
7
- host: 'https://icp-api.io',
8
- canisterId: '2d2zu-vaaaa-aaaak-qb6pq-cai',
7
+ host: "https://icp-api.io",
8
+ canisterId: "2d2zu-vaaaa-aaaak-qb6pq-cai",
9
9
  };
10
10
  }
11
- else if (network === 'ic') {
11
+ else if (network === "ic") {
12
12
  return {
13
- host: 'https://icp-api.io',
14
- canisterId: 'oknww-riaaa-aaaam-qaf6a-cai',
13
+ host: "https://icp-api.io",
14
+ canisterId: "oknww-riaaa-aaaam-qaf6a-cai",
15
15
  };
16
16
  }
17
17
  else {
18
18
  return {
19
- host: 'http://127.0.0.1:4943',
20
- canisterId: '2d2zu-vaaaa-aaaak-qb6pq-cai',
19
+ host: "http://127.0.0.1:4943",
20
+ canisterId: "2d2zu-vaaaa-aaaak-qb6pq-cai",
21
21
  };
22
22
  }
23
23
  }
@@ -1,8 +1,8 @@
1
- import { getHighestVersion } from './getHighestVersion.js';
2
- export async function resolveVersion(pkg, version = '') {
1
+ import { getHighestVersion } from "./getHighestVersion.js";
2
+ export async function resolveVersion(pkg, version = "") {
3
3
  if (!version) {
4
4
  let versionRes = await getHighestVersion(pkg);
5
- if ('err' in versionRes) {
5
+ if ("err" in versionRes) {
6
6
  throw versionRes.err;
7
7
  }
8
8
  version = versionRes.ok;
package/dist/bin/mops.js CHANGED
@@ -1,3 +1,3 @@
1
1
  #!/usr/bin/env node
2
2
 
3
- import '../cli.js';
3
+ import "../cli.js";
@@ -1,13 +1,13 @@
1
- import { readFileSync, writeFileSync } from 'node:fs';
2
- let packageJson = JSON.parse(readFileSync('./bundle/package.json', 'utf8'));
3
- packageJson.bin.mops = 'bin/mops.js';
4
- packageJson.bin['ic-mops'] = 'bin/mops.js';
1
+ import { readFileSync, writeFileSync } from "node:fs";
2
+ let packageJson = JSON.parse(readFileSync("./bundle/package.json", "utf8"));
3
+ packageJson.bin.mops = "bin/mops.js";
4
+ packageJson.bin["ic-mops"] = "bin/mops.js";
5
5
  delete packageJson.scripts;
6
6
  delete packageJson.devDependencies;
7
7
  delete packageJson.overrides;
8
8
  packageJson.dependencies = {
9
- 'dhall-to-json-cli': packageJson.dependencies['dhall-to-json-cli'],
10
- 'decomp-tarxz': packageJson.dependencies['decomp-tarxz'],
11
- 'buffer': packageJson.dependencies['buffer'],
9
+ "dhall-to-json-cli": packageJson.dependencies["dhall-to-json-cli"],
10
+ "decomp-tarxz": packageJson.dependencies["decomp-tarxz"],
11
+ buffer: packageJson.dependencies["buffer"],
12
12
  };
13
- writeFileSync('./bundle/package.json', JSON.stringify(packageJson, null, ' '));
13
+ writeFileSync("./bundle/package.json", JSON.stringify(packageJson, null, " "));
package/dist/cache.js CHANGED
@@ -1,18 +1,18 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import ncp from 'ncp';
4
- import getFolderSize from 'get-folder-size';
5
- import { getDependencyType, getNetwork, getRootDir, globalCacheDir, parseGithubURL } from './mops.js';
6
- import { getPackageId } from './helpers/get-package-id.js';
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import ncp from "ncp";
4
+ import getFolderSize from "get-folder-size";
5
+ import { getDependencyType, getNetwork, getRootDir, globalCacheDir, parseGithubURL, } from "./mops.js";
6
+ import { getPackageId } from "./helpers/get-package-id.js";
7
7
  let getGlobalCacheDir = () => {
8
8
  let network = getNetwork();
9
- return path.join(globalCacheDir, network === 'ic' ? '' : network);
9
+ return path.join(globalCacheDir, network === "ic" ? "" : network);
10
10
  };
11
11
  export let show = () => {
12
12
  return getGlobalCacheDir();
13
13
  };
14
14
  export let getDepCacheDir = (cacheName) => {
15
- return path.join(getGlobalCacheDir(), 'packages', cacheName);
15
+ return path.join(getGlobalCacheDir(), "packages", cacheName);
16
16
  };
17
17
  export let isDepCached = (cacheName) => {
18
18
  let dir = getDepCacheDir(cacheName);
@@ -20,17 +20,20 @@ export let isDepCached = (cacheName) => {
20
20
  };
21
21
  export function getDepCacheName(name, version) {
22
22
  let depType = getDependencyType(version);
23
- return depType === 'mops' ? getMopsDepCacheName(name, version) : getGithubDepCacheName(name, version);
23
+ return depType === "mops"
24
+ ? getMopsDepCacheName(name, version)
25
+ : getGithubDepCacheName(name, version);
24
26
  }
25
27
  export function getMopsDepCacheName(name, version) {
26
28
  return getPackageId(name, version);
27
29
  }
28
30
  export function getGithubDepCacheName(name, repo) {
29
31
  const { branch, commitHash } = parseGithubURL(repo);
30
- return `_github/${name}#${branch.replaceAll('/', '___')}` + (commitHash ? `@${commitHash}` : '');
32
+ return (`_github/${name}#${branch.replaceAll("/", "___")}` +
33
+ (commitHash ? `@${commitHash}` : ""));
31
34
  }
32
35
  export let addCache = (cacheName, source) => {
33
- let dest = path.join(getGlobalCacheDir(), 'packages', cacheName);
36
+ let dest = path.join(getGlobalCacheDir(), "packages", cacheName);
34
37
  fs.mkdirSync(dest, { recursive: true });
35
38
  return new Promise((resolve, reject) => {
36
39
  ncp.ncp(source, dest, { stopOnErr: true }, (err) => {
@@ -42,7 +45,7 @@ export let addCache = (cacheName, source) => {
42
45
  });
43
46
  };
44
47
  export let copyCache = (cacheName, dest) => {
45
- let source = path.join(getGlobalCacheDir(), 'packages', cacheName);
48
+ let source = path.join(getGlobalCacheDir(), "packages", cacheName);
46
49
  fs.mkdirSync(dest, { recursive: true });
47
50
  return new Promise((resolve, reject) => {
48
51
  ncp.ncp(source, dest, { stopOnErr: true }, (err) => {
@@ -58,16 +61,18 @@ export let cacheSize = async () => {
58
61
  fs.mkdirSync(dir, { recursive: true });
59
62
  let size = await getFolderSize.strict(dir);
60
63
  if (size < 1024 * 1024) {
61
- return (size / 1024).toFixed(2) + ' KB';
64
+ return (size / 1024).toFixed(2) + " KB";
62
65
  }
63
- return (size / 1024 / 1024).toFixed(2) + ' MB';
66
+ return (size / 1024 / 1024).toFixed(2) + " MB";
64
67
  };
65
68
  export let cleanCache = async () => {
66
- if (!getGlobalCacheDir().endsWith('mops/cache') && !getGlobalCacheDir().endsWith('/mops') && !getGlobalCacheDir().endsWith('/mops/' + getNetwork())) {
67
- throw new Error('Invalid cache directory: ' + getGlobalCacheDir());
69
+ if (!getGlobalCacheDir().endsWith("mops/cache") &&
70
+ !getGlobalCacheDir().endsWith("/mops") &&
71
+ !getGlobalCacheDir().endsWith("/mops/" + getNetwork())) {
72
+ throw new Error("Invalid cache directory: " + getGlobalCacheDir());
68
73
  }
69
74
  // local cache
70
- fs.rmSync(path.join(getRootDir(), '.mops'), { recursive: true, force: true });
75
+ fs.rmSync(path.join(getRootDir(), ".mops"), { recursive: true, force: true });
71
76
  // global cache
72
77
  fs.rmSync(getGlobalCacheDir(), { recursive: true, force: true });
73
78
  };
@@ -1,10 +1,10 @@
1
- import path from 'node:path';
2
- import { SemVer } from 'semver';
3
- import chalk from 'chalk';
4
- import { getDependencyType, getRootDir, readConfig } from './mops.js';
5
- import { resolvePackages } from './resolve-packages.js';
6
- import { getMocVersion } from './helpers/get-moc-version.js';
7
- import { getPackageId } from './helpers/get-package-id.js';
1
+ import path from "node:path";
2
+ import { SemVer } from "semver";
3
+ import chalk from "chalk";
4
+ import { getDependencyType, getRootDir, readConfig } from "./mops.js";
5
+ import { resolvePackages } from "./resolve-packages.js";
6
+ import { getMocVersion } from "./helpers/get-moc-version.js";
7
+ import { getPackageId } from "./helpers/get-package-id.js";
8
8
  export async function checkRequirements({ verbose = false } = {}) {
9
9
  let config = readConfig();
10
10
  let mocVersion = config.toolchain?.moc;
@@ -15,14 +15,14 @@ export async function checkRequirements({ verbose = false } = {}) {
15
15
  return;
16
16
  }
17
17
  let installedMoc = new SemVer(mocVersion);
18
- let highestRequiredMoc = new SemVer('0.0.0');
19
- let highestRequiredMocPkgId = '';
18
+ let highestRequiredMoc = new SemVer("0.0.0");
19
+ let highestRequiredMocPkgId = "";
20
20
  let rootDir = getRootDir();
21
21
  let resolvedPackages = await resolvePackages();
22
22
  for (let [name, version] of Object.entries(resolvedPackages)) {
23
- if (getDependencyType(version) === 'mops') {
23
+ if (getDependencyType(version) === "mops") {
24
24
  let pkgId = getPackageId(name, version);
25
- let depConfig = readConfig(path.join(rootDir, '.mops', pkgId, 'mops.toml'));
25
+ let depConfig = readConfig(path.join(rootDir, ".mops", pkgId, "mops.toml"));
26
26
  let moc = depConfig.requirements?.moc;
27
27
  if (moc) {
28
28
  let requiredMoc = new SemVer(moc);