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,36 +1,40 @@
1
- import fs from 'node:fs';
2
- import path from 'node:path';
3
- import {copyCache, getDepCacheName} from '../../cache.js';
4
- import {getDependencyType, getRootDir} from '../../mops.js';
5
- import {resolvePackages} from '../../resolve-packages.js';
6
-
7
- export async function syncLocalCache({verbose = false} = {}) : Promise<Record<string, string>> {
8
- let resolvedPackages = await resolvePackages();
9
- let rootDir = getRootDir();
10
-
11
- verbose && console.log('Syncing local cache...');
12
-
13
- let installedDeps : Record<string, string> = {};
14
-
15
- await Promise.all(Object.entries(resolvedPackages).map(([name, value]) => {
16
- let depType = getDependencyType(value);
17
-
18
- if (depType === 'mops' || depType === 'github') {
19
- let cacheName = getDepCacheName(name, value);
20
- let dest = path.join(rootDir, '.mops', cacheName);
21
-
22
- if (!fs.existsSync(dest)) {
23
- if (depType === 'mops') {
24
- installedDeps[name] = value;
25
- }
26
- return copyCache(cacheName, path.join(rootDir, '.mops', cacheName));
27
- }
28
- }
29
-
30
- return Promise.resolve();
31
- })).catch((errors) => {
32
- throw errors?.[0];
33
- });
34
-
35
- return installedDeps;
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import { copyCache, getDepCacheName } from "../../cache.js";
4
+ import { getDependencyType, getRootDir } from "../../mops.js";
5
+ import { resolvePackages } from "../../resolve-packages.js";
6
+
7
+ export async function syncLocalCache({ verbose = false } = {}): Promise<
8
+ Record<string, string>
9
+ > {
10
+ let resolvedPackages = await resolvePackages();
11
+ let rootDir = getRootDir();
12
+
13
+ verbose && console.log("Syncing local cache...");
14
+
15
+ let installedDeps: Record<string, string> = {};
16
+
17
+ await Promise.all(
18
+ Object.entries(resolvedPackages).map(([name, value]) => {
19
+ let depType = getDependencyType(value);
20
+
21
+ if (depType === "mops" || depType === "github") {
22
+ let cacheName = getDepCacheName(name, value);
23
+ let dest = path.join(rootDir, ".mops", cacheName);
24
+
25
+ if (!fs.existsSync(dest)) {
26
+ if (depType === "mops") {
27
+ installedDeps[name] = value;
28
+ }
29
+ return copyCache(cacheName, path.join(rootDir, ".mops", cacheName));
30
+ }
31
+ }
32
+
33
+ return Promise.resolve();
34
+ }),
35
+ ).catch((errors) => {
36
+ throw errors?.[0];
37
+ });
38
+
39
+ return installedDeps;
36
40
  }
@@ -1,105 +1,115 @@
1
- import process from 'node:process';
2
- import chalk from 'chalk';
3
- import {checkConfigFile, getIdentity, readConfig} from '../mops.js';
4
- import {mainActor} from '../api/actors.js';
5
- import {Principal} from '@dfinity/principal';
6
- import prompts from 'prompts';
1
+ import process from "node:process";
2
+ import chalk from "chalk";
3
+ import { checkConfigFile, getIdentity, readConfig } from "../mops.js";
4
+ import { mainActor } from "../api/actors.js";
5
+ import { Principal } from "@icp-sdk/core/principal";
6
+ import prompts from "prompts";
7
7
 
8
8
  export async function printMaintainers() {
9
- if (!checkConfigFile()) {
10
- return;
11
- }
12
-
13
- let config = readConfig();
14
- let actor = await mainActor();
15
-
16
- let maintainers = await actor.getPackageMaintainers(config.package?.name || '');
17
- console.log(`Maintainers of package ${chalk.bold(config.package?.name)}:`);
18
- for (let maintainer of maintainers) {
19
- console.log(maintainer.toText());
20
- }
9
+ if (!checkConfigFile()) {
10
+ return;
11
+ }
12
+
13
+ let config = readConfig();
14
+ let actor = await mainActor();
15
+
16
+ let maintainers = await actor.getPackageMaintainers(
17
+ config.package?.name || "",
18
+ );
19
+ console.log(`Maintainers of package ${chalk.bold(config.package?.name)}:`);
20
+ for (let maintainer of maintainers) {
21
+ console.log(maintainer.toText());
22
+ }
21
23
  }
22
24
 
23
- export async function addMaintainer(maintainer : string, yes = false) {
24
- if (!checkConfigFile()) {
25
- return;
26
- }
27
-
28
- let config = readConfig();
29
- let principal = Principal.fromText(maintainer);
30
-
31
- if (!yes) {
32
- let promptsConfig = {
33
- onCancel() {
34
- console.log('aborted');
35
- process.exit(0);
36
- },
37
- };
38
-
39
- let {confirm} = await prompts({
40
- type: 'confirm',
41
- name: 'confirm',
42
- message: `Are you sure you want to add maintainer ${chalk.yellow(maintainer)} to ${chalk.yellow(config.package?.name)} package?`,
43
- initial: true,
44
- }, promptsConfig);
45
-
46
- if (!confirm) {
47
- return;
48
- }
49
- }
50
-
51
- let identity = await getIdentity();
52
- let actor = await mainActor(identity);
53
-
54
- let res = await actor.addMaintainer(config.package?.name || '', principal);
55
- if ('ok' in res) {
56
- console.log(chalk.green('Success!'));
57
- console.log(`Added maintainer ${chalk.bold(maintainer)} to package ${chalk.bold(config.package?.name)}`);
58
- }
59
- else {
60
- console.error(chalk.red('Error: ') + res.err);
61
- process.exit(1);
62
- }
25
+ export async function addMaintainer(maintainer: string, yes = false) {
26
+ if (!checkConfigFile()) {
27
+ return;
28
+ }
29
+
30
+ let config = readConfig();
31
+ let principal = Principal.fromText(maintainer);
32
+
33
+ if (!yes) {
34
+ let promptsConfig = {
35
+ onCancel() {
36
+ console.log("aborted");
37
+ process.exit(0);
38
+ },
39
+ };
40
+
41
+ let { confirm } = await prompts(
42
+ {
43
+ type: "confirm",
44
+ name: "confirm",
45
+ message: `Are you sure you want to add maintainer ${chalk.yellow(maintainer)} to ${chalk.yellow(config.package?.name)} package?`,
46
+ initial: true,
47
+ },
48
+ promptsConfig,
49
+ );
50
+
51
+ if (!confirm) {
52
+ return;
53
+ }
54
+ }
55
+
56
+ let identity = await getIdentity();
57
+ let actor = await mainActor(identity);
58
+
59
+ let res = await actor.addMaintainer(config.package?.name || "", principal);
60
+ if ("ok" in res) {
61
+ console.log(chalk.green("Success!"));
62
+ console.log(
63
+ `Added maintainer ${chalk.bold(maintainer)} to package ${chalk.bold(config.package?.name)}`,
64
+ );
65
+ } else {
66
+ console.error(chalk.red("Error: ") + res.err);
67
+ process.exit(1);
68
+ }
63
69
  }
64
70
 
65
- export async function removeMaintainer(maintainer : string, yes = false) {
66
- if (!checkConfigFile()) {
67
- return;
68
- }
69
-
70
- let config = readConfig();
71
- let principal = Principal.fromText(maintainer);
72
-
73
- if (!yes) {
74
- let promptsConfig = {
75
- onCancel() {
76
- console.log('aborted');
77
- process.exit(0);
78
- },
79
- };
80
-
81
- let {confirm} = await prompts({
82
- type: 'confirm',
83
- name: 'confirm',
84
- message: `Are you sure you want to remove maintainer ${chalk.red(maintainer)} from ${chalk.red(config.package?.name)} package?`,
85
- initial: true,
86
- }, promptsConfig);
87
-
88
- if (!confirm) {
89
- return;
90
- }
91
- }
92
-
93
- let identity = await getIdentity();
94
- let actor = await mainActor(identity);
95
-
96
- let res = await actor.removeMaintainer(config.package?.name || '', principal);
97
- if ('ok' in res) {
98
- console.log(chalk.green('Success!'));
99
- console.log(`Removed maintainer ${chalk.bold(maintainer)} from package ${chalk.bold(config.package?.name)}`);
100
- }
101
- else {
102
- console.error(chalk.red('Error: ') + res.err);
103
- process.exit(1);
104
- }
105
- }
71
+ export async function removeMaintainer(maintainer: string, yes = false) {
72
+ if (!checkConfigFile()) {
73
+ return;
74
+ }
75
+
76
+ let config = readConfig();
77
+ let principal = Principal.fromText(maintainer);
78
+
79
+ if (!yes) {
80
+ let promptsConfig = {
81
+ onCancel() {
82
+ console.log("aborted");
83
+ process.exit(0);
84
+ },
85
+ };
86
+
87
+ let { confirm } = await prompts(
88
+ {
89
+ type: "confirm",
90
+ name: "confirm",
91
+ message: `Are you sure you want to remove maintainer ${chalk.red(maintainer)} from ${chalk.red(config.package?.name)} package?`,
92
+ initial: true,
93
+ },
94
+ promptsConfig,
95
+ );
96
+
97
+ if (!confirm) {
98
+ return;
99
+ }
100
+ }
101
+
102
+ let identity = await getIdentity();
103
+ let actor = await mainActor(identity);
104
+
105
+ let res = await actor.removeMaintainer(config.package?.name || "", principal);
106
+ if ("ok" in res) {
107
+ console.log(chalk.green("Success!"));
108
+ console.log(
109
+ `Removed maintainer ${chalk.bold(maintainer)} from package ${chalk.bold(config.package?.name)}`,
110
+ );
111
+ } else {
112
+ console.error(chalk.red("Error: ") + res.err);
113
+ process.exit(1);
114
+ }
115
+ }
@@ -1,22 +1,35 @@
1
- import chalk from 'chalk';
2
- import {checkConfigFile, readConfig} from '../mops.js';
3
- import {getAvailableUpdates} from './available-updates.js';
1
+ import chalk from "chalk";
2
+ import { checkConfigFile, readConfig } from "../mops.js";
3
+ import { getAvailableUpdates } from "./available-updates.js";
4
+ import { getDepName, getDepPinnedVersion } from "../helpers/get-dep-name.js";
4
5
 
5
6
  export async function outdated() {
6
- if (!checkConfigFile()) {
7
- return;
8
- }
9
- let config = readConfig();
7
+ if (!checkConfigFile()) {
8
+ return;
9
+ }
10
+ let config = readConfig();
10
11
 
11
- let available = await getAvailableUpdates(config);
12
+ let available = await getAvailableUpdates(config);
12
13
 
13
- if (available.length === 0) {
14
- console.log(chalk.green('All dependencies are up to date!'));
15
- }
16
- else {
17
- console.log('Available updates:');
18
- for (let dep of available) {
19
- console.log(`${dep[0]} ${chalk.yellow(dep[1])} -> ${chalk.green(dep[2])}`);
20
- }
21
- }
22
- }
14
+ if (available.length === 0) {
15
+ console.log(chalk.green("All dependencies are up to date!"));
16
+ } else {
17
+ console.log("Available updates:");
18
+ let allDeps = [
19
+ ...Object.keys(config.dependencies || {}),
20
+ ...Object.keys(config["dev-dependencies"] || {}),
21
+ ];
22
+ for (let dep of available) {
23
+ let name =
24
+ allDeps.find((d) => {
25
+ let pinnedVersion = getDepPinnedVersion(d);
26
+ return (
27
+ getDepName(d) === dep[0] &&
28
+ (!pinnedVersion || dep[1].startsWith(pinnedVersion))
29
+ );
30
+ }) || dep[0];
31
+
32
+ console.log(`${name} ${chalk.yellow(dep[1])} -> ${chalk.green(dep[2])}`);
33
+ }
34
+ }
35
+ }
package/commands/owner.ts CHANGED
@@ -1,105 +1,113 @@
1
- import process from 'node:process';
2
- import chalk from 'chalk';
3
- import {checkConfigFile, getIdentity, readConfig} from '../mops.js';
4
- import {mainActor} from '../api/actors.js';
5
- import {Principal} from '@dfinity/principal';
6
- import prompts from 'prompts';
1
+ import process from "node:process";
2
+ import chalk from "chalk";
3
+ import { checkConfigFile, getIdentity, readConfig } from "../mops.js";
4
+ import { mainActor } from "../api/actors.js";
5
+ import { Principal } from "@icp-sdk/core/principal";
6
+ import prompts from "prompts";
7
7
 
8
8
  export async function printOwners() {
9
- if (!checkConfigFile()) {
10
- return;
11
- }
12
-
13
- let config = readConfig();
14
- let actor = await mainActor();
15
-
16
- let owners = await actor.getPackageOwners(config.package?.name || '');
17
- console.log(`Owners of package ${chalk.bold(config.package?.name)}:`);
18
- for (let owner of owners) {
19
- console.log(owner.toText());
20
- }
9
+ if (!checkConfigFile()) {
10
+ return;
11
+ }
12
+
13
+ let config = readConfig();
14
+ let actor = await mainActor();
15
+
16
+ let owners = await actor.getPackageOwners(config.package?.name || "");
17
+ console.log(`Owners of package ${chalk.bold(config.package?.name)}:`);
18
+ for (let owner of owners) {
19
+ console.log(owner.toText());
20
+ }
21
21
  }
22
22
 
23
- export async function addOwner(owner : string, yes = false) {
24
- if (!checkConfigFile()) {
25
- return;
26
- }
27
-
28
- let config = readConfig();
29
- let principal = Principal.fromText(owner);
30
-
31
- if (!yes) {
32
- let promptsConfig = {
33
- onCancel() {
34
- console.log('aborted');
35
- process.exit(0);
36
- },
37
- };
38
-
39
- let {confirm} = await prompts({
40
- type: 'confirm',
41
- name: 'confirm',
42
- message: `Are you sure you want to add owner ${chalk.yellow(owner)} to ${chalk.yellow(config.package?.name)} package?`,
43
- initial: true,
44
- }, promptsConfig);
45
-
46
- if (!confirm) {
47
- return;
48
- }
49
- }
50
-
51
- let identity = await getIdentity();
52
- let actor = await mainActor(identity);
53
-
54
- let res = await actor.addOwner(config.package?.name || '', principal);
55
- if ('ok' in res) {
56
- console.log(chalk.green('Success!'));
57
- console.log(`Added owner ${chalk.bold(owner)} to package ${chalk.bold(config.package?.name)}`);
58
- }
59
- else {
60
- console.error(chalk.red('Error: ') + res.err);
61
- process.exit(1);
62
- }
23
+ export async function addOwner(owner: string, yes = false) {
24
+ if (!checkConfigFile()) {
25
+ return;
26
+ }
27
+
28
+ let config = readConfig();
29
+ let principal = Principal.fromText(owner);
30
+
31
+ if (!yes) {
32
+ let promptsConfig = {
33
+ onCancel() {
34
+ console.log("aborted");
35
+ process.exit(0);
36
+ },
37
+ };
38
+
39
+ let { confirm } = await prompts(
40
+ {
41
+ type: "confirm",
42
+ name: "confirm",
43
+ message: `Are you sure you want to add owner ${chalk.yellow(owner)} to ${chalk.yellow(config.package?.name)} package?`,
44
+ initial: true,
45
+ },
46
+ promptsConfig,
47
+ );
48
+
49
+ if (!confirm) {
50
+ return;
51
+ }
52
+ }
53
+
54
+ let identity = await getIdentity();
55
+ let actor = await mainActor(identity);
56
+
57
+ let res = await actor.addOwner(config.package?.name || "", principal);
58
+ if ("ok" in res) {
59
+ console.log(chalk.green("Success!"));
60
+ console.log(
61
+ `Added owner ${chalk.bold(owner)} to package ${chalk.bold(config.package?.name)}`,
62
+ );
63
+ } else {
64
+ console.error(chalk.red("Error: ") + res.err);
65
+ process.exit(1);
66
+ }
63
67
  }
64
68
 
65
- export async function removeOwner(owner : string, yes = false) {
66
- if (!checkConfigFile()) {
67
- return;
68
- }
69
-
70
- let config = readConfig();
71
- let principal = Principal.fromText(owner);
72
-
73
- if (!yes) {
74
- let promptsConfig = {
75
- onCancel() {
76
- console.log('aborted');
77
- process.exit(0);
78
- },
79
- };
80
-
81
- let {confirm} = await prompts({
82
- type: 'confirm',
83
- name: 'confirm',
84
- message: `Are you sure you want to remove owner ${chalk.red(owner)} from ${chalk.red(config.package?.name)} package?`,
85
- initial: true,
86
- }, promptsConfig);
87
-
88
- if (!confirm) {
89
- return;
90
- }
91
- }
92
-
93
- let identity = await getIdentity();
94
- let actor = await mainActor(identity);
95
-
96
- let res = await actor.removeOwner(config.package?.name || '', principal);
97
- if ('ok' in res) {
98
- console.log(chalk.green('Success!'));
99
- console.log(`Removed owner ${chalk.bold(owner)} from package ${chalk.bold(config.package?.name)}`);
100
- }
101
- else {
102
- console.error(chalk.red('Error: ') + res.err);
103
- process.exit(1);
104
- }
105
- }
69
+ export async function removeOwner(owner: string, yes = false) {
70
+ if (!checkConfigFile()) {
71
+ return;
72
+ }
73
+
74
+ let config = readConfig();
75
+ let principal = Principal.fromText(owner);
76
+
77
+ if (!yes) {
78
+ let promptsConfig = {
79
+ onCancel() {
80
+ console.log("aborted");
81
+ process.exit(0);
82
+ },
83
+ };
84
+
85
+ let { confirm } = await prompts(
86
+ {
87
+ type: "confirm",
88
+ name: "confirm",
89
+ message: `Are you sure you want to remove owner ${chalk.red(owner)} from ${chalk.red(config.package?.name)} package?`,
90
+ initial: true,
91
+ },
92
+ promptsConfig,
93
+ );
94
+
95
+ if (!confirm) {
96
+ return;
97
+ }
98
+ }
99
+
100
+ let identity = await getIdentity();
101
+ let actor = await mainActor(identity);
102
+
103
+ let res = await actor.removeOwner(config.package?.name || "", principal);
104
+ if ("ok" in res) {
105
+ console.log(chalk.green("Success!"));
106
+ console.log(
107
+ `Removed owner ${chalk.bold(owner)} from package ${chalk.bold(config.package?.name)}`,
108
+ );
109
+ } else {
110
+ console.error(chalk.red("Error: ") + res.err);
111
+ process.exit(1);
112
+ }
113
+ }