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,7 +1,7 @@
1
1
  type AddOptions = {
2
2
  verbose?: boolean;
3
3
  dev?: boolean;
4
- lock?: 'update' | 'ignore';
4
+ lock?: "update" | "ignore";
5
5
  };
6
6
  export declare function add(name: string, { verbose, dev, lock }?: AddOptions, asName?: string): Promise<void>;
7
7
  export {};
@@ -1,16 +1,16 @@
1
- import process from 'node:process';
2
- import path from 'node:path';
3
- import chalk from 'chalk';
4
- import { createLogUpdate } from 'log-update';
5
- import { checkConfigFile, getGithubCommit, parseGithubURL, readConfig, writeConfig } from '../mops.js';
6
- import { getHighestVersion } from '../api/getHighestVersion.js';
7
- import { installMopsDep } from './install/install-mops-dep.js';
8
- import { installFromGithub } from '../vessel.js';
9
- import { checkIntegrity } from '../integrity.js';
10
- import { checkRequirements } from '../check-requirements.js';
11
- import { syncLocalCache } from './install/sync-local-cache.js';
12
- import { notifyInstalls } from '../notify-installs.js';
13
- import { resolvePackages } from '../resolve-packages.js';
1
+ import process from "node:process";
2
+ import path from "node:path";
3
+ import chalk from "chalk";
4
+ import { createLogUpdate } from "log-update";
5
+ import { checkConfigFile, getGithubCommit, parseGithubURL, readConfig, writeConfig, } from "../mops.js";
6
+ import { getHighestVersion } from "../api/getHighestVersion.js";
7
+ import { installMopsDep } from "./install/install-mops-dep.js";
8
+ import { installFromGithub } from "../vessel.js";
9
+ import { checkIntegrity } from "../integrity.js";
10
+ import { checkRequirements } from "../check-requirements.js";
11
+ import { syncLocalCache } from "./install/sync-local-cache.js";
12
+ import { notifyInstalls } from "../notify-installs.js";
13
+ import { resolvePackages } from "../resolve-packages.js";
14
14
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
15
  export async function add(name, { verbose = false, dev = false, lock } = {}, asName) {
16
16
  if (!checkConfigFile()) {
@@ -18,8 +18,8 @@ export async function add(name, { verbose = false, dev = false, lock } = {}, asN
18
18
  }
19
19
  let config = readConfig();
20
20
  if (dev) {
21
- if (!config['dev-dependencies']) {
22
- config['dev-dependencies'] = {};
21
+ if (!config["dev-dependencies"]) {
22
+ config["dev-dependencies"] = {};
23
23
  }
24
24
  }
25
25
  else {
@@ -29,16 +29,17 @@ export async function add(name, { verbose = false, dev = false, lock } = {}, asN
29
29
  }
30
30
  let pkgDetails;
31
31
  // local package
32
- if (name.startsWith('./') || name.startsWith('../') || name.startsWith('/')) {
32
+ if (name.startsWith("./") || name.startsWith("../") || name.startsWith("/")) {
33
33
  pkgDetails = {
34
- name: path.parse(name).name === '.' ? '_' : path.parse(name).name,
34
+ name: path.parse(name).name === "." ? "_" : path.parse(name).name,
35
35
  path: name,
36
- repo: '',
37
- version: '',
36
+ repo: "",
37
+ version: "",
38
38
  };
39
39
  }
40
40
  // github package
41
- else if (name.startsWith('https://github.com') || name.split('/').length > 1) {
41
+ else if (name.startsWith("https://github.com") ||
42
+ name.split("/").length > 1) {
42
43
  let { org, gitName, branch, commitHash } = parseGithubURL(name);
43
44
  // fetch latest commit hash of branch if not specified
44
45
  if (!commitHash) {
@@ -51,40 +52,44 @@ export async function add(name, { verbose = false, dev = false, lock } = {}, asN
51
52
  pkgDetails = {
52
53
  name: asName || parseGithubURL(name).gitName,
53
54
  repo: `https://github.com/${org}/${gitName}#${branch}@${commitHash}`,
54
- version: '',
55
+ version: "",
55
56
  };
56
57
  }
57
58
  // mops package
58
59
  else {
59
60
  let ver;
60
- if (name.includes('@')) {
61
+ if (name.includes("@")) {
61
62
  // @ts-ignore
62
- [name, ver] = name.split('@');
63
+ [name, ver] = name.split("@");
63
64
  }
64
65
  else {
65
66
  let versionRes = await getHighestVersion(name);
66
- if ('err' in versionRes) {
67
- console.log(chalk.red('Error: ') + versionRes.err);
67
+ if ("err" in versionRes) {
68
+ console.log(chalk.red("Error: ") + versionRes.err);
68
69
  return;
69
70
  }
70
71
  ver = versionRes.ok;
71
72
  }
72
73
  pkgDetails = {
73
- name: name,
74
- repo: '',
74
+ name: asName || name,
75
+ repo: "",
75
76
  version: ver,
76
77
  };
77
78
  }
78
79
  if (pkgDetails.repo) {
79
- await installFromGithub(pkgDetails.name, pkgDetails.repo, { verbose: verbose });
80
+ await installFromGithub(pkgDetails.name, pkgDetails.repo, {
81
+ verbose: verbose,
82
+ });
80
83
  }
81
84
  else if (!pkgDetails.path) {
82
- let res = await installMopsDep(pkgDetails.name, pkgDetails.version, { verbose: verbose });
85
+ let res = await installMopsDep(pkgDetails.name, pkgDetails.version, {
86
+ verbose: verbose,
87
+ });
83
88
  if (res === false) {
84
89
  return;
85
90
  }
86
91
  }
87
- const depsProp = dev ? 'dev-dependencies' : 'dependencies';
92
+ const depsProp = dev ? "dev-dependencies" : "dependencies";
88
93
  let deps = config[depsProp];
89
94
  if (deps) {
90
95
  deps[pkgDetails.name] = pkgDetails;
@@ -94,17 +99,15 @@ export async function add(name, { verbose = false, dev = false, lock } = {}, asN
94
99
  }
95
100
  writeConfig(config);
96
101
  let logUpdate = createLogUpdate(process.stdout, { showCursor: true });
97
- if (lock !== 'ignore') {
98
- logUpdate('Checking integrity...');
102
+ if (lock !== "ignore") {
103
+ logUpdate("Checking integrity...");
99
104
  }
100
105
  let installedPackages = await syncLocalCache();
101
- await Promise.all([
102
- notifyInstalls(installedPackages),
103
- checkIntegrity(lock),
104
- ]);
106
+ await Promise.all([notifyInstalls(installedPackages), checkIntegrity(lock)]);
105
107
  logUpdate.clear();
106
108
  await checkRequirements({ verbose });
107
- console.log(chalk.green('Package installed ') + `${pkgDetails.name} = "${pkgDetails.repo || pkgDetails.path || pkgDetails.version}"`);
109
+ console.log(chalk.green("Package installed ") +
110
+ `${pkgDetails.name} = "${pkgDetails.repo || pkgDetails.path || pkgDetails.version}"`);
108
111
  // check conflicts
109
- await resolvePackages({ conflicts: 'warning' });
112
+ await resolvePackages({ conflicts: "warning" });
110
113
  }
@@ -1,2 +1,2 @@
1
- import { Config } from '../types.js';
1
+ import { Config } from "../types.js";
2
2
  export declare function getAvailableUpdates(config: Config, pkg?: string): Promise<Array<[string, string, string]>>;
@@ -1,28 +1,46 @@
1
- import process from 'node:process';
2
- import chalk from 'chalk';
3
- import { mainActor } from '../api/actors.js';
4
- import { getDepName } from '../helpers/get-dep-name.js';
1
+ import process from "node:process";
2
+ import chalk from "chalk";
3
+ import { mainActor } from "../api/actors.js";
4
+ import { getDepName, getDepPinnedVersion } from "../helpers/get-dep-name.js";
5
5
  // [pkg, oldVersion, newVersion]
6
6
  export async function getAvailableUpdates(config, pkg) {
7
7
  let deps = Object.values(config.dependencies || {});
8
- let devDeps = Object.values(config['dev-dependencies'] || {});
8
+ let devDeps = Object.values(config["dev-dependencies"] || {});
9
9
  let allDeps = [...deps, ...devDeps].filter((dep) => dep.version);
10
10
  let depsToUpdate = pkg ? allDeps.filter((dep) => dep.name === pkg) : allDeps;
11
- // skip pinned dependencies
12
- depsToUpdate = depsToUpdate.filter((dep) => getDepName(dep.name) === dep.name);
13
- let getCurrentVersion = (pkg) => {
11
+ // skip hard pinned dependencies (e.g. "base@X.Y.Z")
12
+ depsToUpdate = depsToUpdate.filter((dep) => getDepName(dep.name) === dep.name ||
13
+ getDepPinnedVersion(dep.name).split(".").length !== 3);
14
+ let getCurrentVersion = (pkg, updateVersion) => {
14
15
  for (let dep of allDeps) {
15
- if (dep.name === pkg && dep.version) {
16
+ if (getDepName(dep.name) === pkg && dep.version) {
17
+ let pinnedVersion = getDepPinnedVersion(dep.name);
18
+ if (pinnedVersion && !updateVersion.startsWith(pinnedVersion)) {
19
+ continue;
20
+ }
16
21
  return dep.version;
17
22
  }
18
23
  }
19
- return '';
24
+ return "";
20
25
  };
21
26
  let actor = await mainActor();
22
- let res = await actor.getHighestSemverBatch(depsToUpdate.map((dep) => [dep.name, dep.version || '', { major: null }]));
23
- if ('err' in res) {
24
- console.log(chalk.red('Error:'), res.err);
27
+ let res = await actor.getHighestSemverBatch(depsToUpdate.map((dep) => {
28
+ let semverPart = { major: null };
29
+ let name = getDepName(dep.name);
30
+ let pinnedVersion = getDepPinnedVersion(dep.name);
31
+ if (pinnedVersion) {
32
+ semverPart =
33
+ pinnedVersion.split(".").length === 1
34
+ ? { minor: null }
35
+ : { patch: null };
36
+ }
37
+ return [name, dep.version || "", semverPart];
38
+ }));
39
+ if ("err" in res) {
40
+ console.log(chalk.red("Error:"), res.err);
25
41
  process.exit(1);
26
42
  }
27
- return res.ok.filter((dep) => dep[1] !== getCurrentVersion(dep[0])).map((dep) => [dep[0], getCurrentVersion(dep[0]), dep[1]]);
43
+ return res.ok
44
+ .filter((dep) => dep[1] !== getCurrentVersion(dep[0], dep[1]))
45
+ .map((dep) => [dep[0], getCurrentVersion(dep[0], dep[1]), dep[1]]);
28
46
  }
@@ -1,113 +1,119 @@
1
- import Nat64 "mo:base/Nat64";
2
- import Nat "mo:base/Nat";
3
- import Debug "mo:base/Debug";
4
- import ExperimentalInternetComputer "mo:base/ExperimentalInternetComputer";
5
- import ExperimentalStableMemory "mo:base/ExperimentalStableMemory";
6
- import Int64 "mo:base/Int64";
7
- import Region "mo:base/Region";
1
+ import Nat64 "mo:core/Nat64";
2
+ import Nat "mo:core/Nat";
3
+ import Runtime "mo:core/Runtime";
4
+ import InternetComputer "mo:core/InternetComputer";
5
+ import Int64 "mo:core/Int64";
6
+ import Region "mo:core/Region";
8
7
  import Prim "mo:prim";
9
8
  import Bench "mo:bench";
10
9
 
11
10
  import UserBench "./user-bench"; // file path will be replaced with the *.bench.mo file path
12
11
 
13
- persistent actor class() {
14
- type BenchResult = {
15
- instructions : Int;
16
- rts_mutator_instructions : Int;
17
- stable_memory_size : Int;
18
- rts_stable_memory_size : Int;
19
- rts_logical_stable_memory_size : Int;
20
- rts_collector_instructions : Int;
21
- rts_heap_size : Int;
22
- rts_memory_size : Int;
23
- rts_total_allocation : Int;
24
- rts_reclaimed : Int;
25
- };
26
-
27
- transient var benchOpt : ?Bench.Bench = null;
28
-
29
- public func init() : async Bench.BenchSchema {
30
- let bench = UserBench.init();
31
- benchOpt := ?bench;
32
- // ignore ExperimentalStableMemory.grow(1);
33
- ignore Region.grow(Region.new(), 1);
34
- bench.getSchema();
35
- };
36
-
37
- public query func getSchema() : async Bench.BenchSchema {
38
- let ?bench = benchOpt else Debug.trap("bench not initialized");
39
- bench.getSchema();
40
- };
41
-
42
- func _getStats() : BenchResult {
43
- {
44
- instructions = 0;
45
- rts_heap_size = Prim.rts_heap_size();
46
- stable_memory_size = Int64.toInt(Int64.fromNat64(ExperimentalStableMemory.size())) * 65536;
47
- rts_stable_memory_size = Prim.rts_stable_memory_size();
48
- rts_logical_stable_memory_size = Prim.rts_logical_stable_memory_size();
49
- rts_memory_size = Prim.rts_memory_size();
50
- rts_total_allocation = Prim.rts_total_allocation();
51
- rts_reclaimed = Prim.rts_reclaimed();
52
- rts_mutator_instructions = Prim.rts_mutator_instructions();
53
- rts_collector_instructions = Prim.rts_collector_instructions();
54
- }
55
- };
56
-
57
- func _diffStats(before : BenchResult, after : BenchResult) : BenchResult {
58
- {
59
- instructions = after.instructions - before.instructions;
60
- rts_heap_size = after.rts_heap_size - before.rts_heap_size;
61
- stable_memory_size = after.stable_memory_size - before.stable_memory_size;
62
- rts_stable_memory_size = after.rts_stable_memory_size - before.rts_stable_memory_size;
63
- rts_logical_stable_memory_size = after.rts_logical_stable_memory_size - before.rts_logical_stable_memory_size;
64
- rts_memory_size = after.rts_memory_size - before.rts_memory_size;
65
- rts_total_allocation = after.rts_total_allocation - before.rts_total_allocation;
66
- rts_reclaimed = after.rts_reclaimed - before.rts_reclaimed;
67
- rts_mutator_instructions = after.rts_mutator_instructions - before.rts_mutator_instructions;
68
- rts_collector_instructions = after.rts_collector_instructions - before.rts_collector_instructions;
69
- }
70
- };
71
-
72
- func _runCell(rowIndex : Nat, colIndex : Nat) : BenchResult {
73
- let ?bench = benchOpt else Debug.trap("bench not initialized");
74
- let statsBefore = _getStats();
75
-
76
- let instructions = Nat64.toNat(ExperimentalInternetComputer.countInstructions(func() {
77
- bench.runCell(rowIndex, colIndex);
78
- }));
79
-
80
- let statsAfter = _getStats();
81
- _diffStats(statsBefore, { statsAfter with instructions });
82
- };
83
-
84
- func _runCellAwait(rowIndex : Nat, colIndex : Nat) : async BenchResult {
85
- let ?bench = benchOpt else Debug.trap("bench not initialized");
86
- let statsBefore = _getStats();
87
-
88
- let instructions = Nat64.toNat(ExperimentalInternetComputer.countInstructions(func() {
89
- bench.runCell(rowIndex, colIndex);
90
- }));
91
-
92
- await (func() : async () {})();
93
-
94
- let statsAfter = _getStats();
95
- _diffStats(statsBefore, { statsAfter with instructions });
96
- };
97
-
98
- public query func getStats() : async BenchResult {
99
- _getStats();
100
- };
101
-
102
- public query func runCellQuery(rowIndex : Nat, colIndex : Nat) : async BenchResult {
103
- _runCell(rowIndex, colIndex);
104
- };
105
-
106
- public func runCellUpdate(rowIndex : Nat, colIndex : Nat) : async BenchResult {
107
- _runCell(rowIndex, colIndex);
108
- };
109
-
110
- public func runCellUpdateAwait(rowIndex : Nat, colIndex : Nat) : async BenchResult {
111
- await _runCellAwait(rowIndex, colIndex);
112
- };
113
- };
12
+ persistent actor class () {
13
+ type BenchResult = {
14
+ instructions : Int;
15
+ rts_mutator_instructions : Int;
16
+ stable_memory_size : Int;
17
+ rts_stable_memory_size : Int;
18
+ rts_logical_stable_memory_size : Int;
19
+ rts_collector_instructions : Int;
20
+ rts_heap_size : Int;
21
+ rts_memory_size : Int;
22
+ rts_total_allocation : Int;
23
+ rts_reclaimed : Int;
24
+ };
25
+
26
+ transient var benchOpt : ?Bench.Bench = null;
27
+
28
+ public func init() : async Bench.BenchSchema {
29
+ let bench = UserBench.init();
30
+ benchOpt := ?bench;
31
+ ignore Region.grow(Region.new(), 1);
32
+ bench.getSchema();
33
+ };
34
+
35
+ public query func getSchema() : async Bench.BenchSchema {
36
+ let ?bench = benchOpt else Runtime.trap("bench not initialized");
37
+ bench.getSchema();
38
+ };
39
+
40
+ func _getStats() : BenchResult {
41
+ {
42
+ instructions = 0;
43
+ rts_heap_size = Prim.rts_heap_size();
44
+ stable_memory_size = Int64.toInt(Int64.fromNat64(Prim.stableMemorySize())) * 65536;
45
+ rts_stable_memory_size = Prim.rts_stable_memory_size();
46
+ rts_logical_stable_memory_size = Prim.rts_logical_stable_memory_size();
47
+ rts_memory_size = Prim.rts_memory_size();
48
+ rts_total_allocation = Prim.rts_total_allocation();
49
+ rts_reclaimed = Prim.rts_reclaimed();
50
+ rts_mutator_instructions = Prim.rts_mutator_instructions();
51
+ rts_collector_instructions = Prim.rts_collector_instructions();
52
+ };
53
+ };
54
+
55
+ func _diffStats(before : BenchResult, after : BenchResult) : BenchResult {
56
+ {
57
+ instructions = after.instructions - before.instructions;
58
+ rts_heap_size = after.rts_heap_size - before.rts_heap_size;
59
+ stable_memory_size = after.stable_memory_size - before.stable_memory_size;
60
+ rts_stable_memory_size = after.rts_stable_memory_size - before.rts_stable_memory_size;
61
+ rts_logical_stable_memory_size = after.rts_logical_stable_memory_size - before.rts_logical_stable_memory_size;
62
+ rts_memory_size = after.rts_memory_size - before.rts_memory_size;
63
+ rts_total_allocation = after.rts_total_allocation - before.rts_total_allocation;
64
+ rts_reclaimed = after.rts_reclaimed - before.rts_reclaimed;
65
+ rts_mutator_instructions = after.rts_mutator_instructions - before.rts_mutator_instructions;
66
+ rts_collector_instructions = after.rts_collector_instructions - before.rts_collector_instructions;
67
+ };
68
+ };
69
+
70
+ func _runCell(rowIndex : Nat, colIndex : Nat) : BenchResult {
71
+ let ?bench = benchOpt else Runtime.trap("bench not initialized");
72
+ let statsBefore = _getStats();
73
+
74
+ let instructions = Nat64.toNat(
75
+ InternetComputer.countInstructions(
76
+ func() {
77
+ bench.runCell(rowIndex, colIndex);
78
+ }
79
+ )
80
+ );
81
+
82
+ let statsAfter = _getStats();
83
+ _diffStats(statsBefore, { statsAfter with instructions });
84
+ };
85
+
86
+ func _runCellAwait(rowIndex : Nat, colIndex : Nat) : async BenchResult {
87
+ let ?bench = benchOpt else Runtime.trap("bench not initialized");
88
+ let statsBefore = _getStats();
89
+
90
+ let instructions = Nat64.toNat(
91
+ InternetComputer.countInstructions(
92
+ func() {
93
+ bench.runCell(rowIndex, colIndex);
94
+ }
95
+ )
96
+ );
97
+
98
+ await (func() : async () {})();
99
+
100
+ let statsAfter = _getStats();
101
+ _diffStats(statsBefore, { statsAfter with instructions });
102
+ };
103
+
104
+ public query func getStats() : async BenchResult {
105
+ _getStats();
106
+ };
107
+
108
+ public query func runCellQuery(rowIndex : Nat, colIndex : Nat) : async BenchResult {
109
+ _runCell(rowIndex, colIndex);
110
+ };
111
+
112
+ public func runCellUpdate(rowIndex : Nat, colIndex : Nat) : async BenchResult {
113
+ _runCell(rowIndex, colIndex);
114
+ };
115
+
116
+ public func runCellUpdateAwait(rowIndex : Nat, colIndex : Nat) : async BenchResult {
117
+ await _runCellAwait(rowIndex, colIndex);
118
+ };
119
+ };
@@ -2,9 +2,9 @@ import Bench "mo:bench";
2
2
 
3
3
  // placeholder file that will be replaced with the *.bench.mo file
4
4
  module {
5
- public func init() : Bench.Bench {
6
- let bench = Bench.Bench();
7
- // benchmark code goes here...
8
- bench;
9
- };
10
- };
5
+ public func init() : Bench.Bench {
6
+ let bench = Bench.Bench();
7
+ // benchmark code goes here...
8
+ bench;
9
+ };
10
+ };
@@ -1,15 +1,16 @@
1
- import { PocketIc, PocketIcServer } from 'pic-ic';
1
+ import { PocketIc, PocketIcServer } from "pic-ic";
2
+ import { PocketIc as PocketIcMops, PocketIcServer as PocketIcServerMops } from "pic-js-mops";
2
3
  export declare class BenchReplica {
3
- type: 'dfx' | 'pocket-ic' | 'dfx-pocket-ic';
4
+ type: "dfx" | "pocket-ic" | "dfx-pocket-ic";
4
5
  verbose: boolean;
5
6
  canisters: Record<string, {
6
7
  cwd: string;
7
8
  canisterId: string;
8
9
  actor: any;
9
10
  }>;
10
- pocketIcServer?: PocketIcServer;
11
- pocketIc?: PocketIc;
12
- constructor(type: 'dfx' | 'pocket-ic' | 'dfx-pocket-ic', verbose?: boolean);
11
+ pocketIcServer?: PocketIcServer | PocketIcServerMops;
12
+ pocketIc?: PocketIc | PocketIcMops;
13
+ constructor(type: "dfx" | "pocket-ic" | "dfx-pocket-ic", verbose?: boolean);
13
14
  start({ silent }?: {
14
15
  silent?: boolean | undefined;
15
16
  }): Promise<void>;
@@ -1,13 +1,14 @@
1
- import process from 'node:process';
2
- import { execSync } from 'node:child_process';
3
- import path from 'node:path';
4
- import fs from 'node:fs';
5
- import { execaCommand } from 'execa';
6
- import { PocketIc, PocketIcServer } from 'pic-ic';
7
- import { getRootDir, readConfig } from '../mops.js';
8
- import { createActor, idlFactory } from '../declarations/bench/index.js';
9
- import { toolchain } from './toolchain/index.js';
10
- import { getDfxVersion } from '../helpers/get-dfx-version.js';
1
+ import process from "node:process";
2
+ import { execSync } from "node:child_process";
3
+ import path from "node:path";
4
+ import fs from "node:fs";
5
+ import { execaCommand } from "execa";
6
+ import { PocketIc, PocketIcServer } from "pic-ic";
7
+ import { PocketIc as PocketIcMops, PocketIcServer as PocketIcServerMops, } from "pic-js-mops";
8
+ import { getRootDir, readConfig } from "../mops.js";
9
+ import { createActor, idlFactory } from "../declarations/bench/index.js";
10
+ import { toolchain } from "./toolchain/index.js";
11
+ import { getDfxVersion } from "../helpers/get-dfx-version.js";
11
12
  export class BenchReplica {
12
13
  type;
13
14
  verbose = false;
@@ -22,29 +23,48 @@ export class BenchReplica {
22
23
  if (!process.env.CI && !silent) {
23
24
  console.log(`Starting ${this.type} replica...`);
24
25
  }
25
- if (this.type == 'dfx' || this.type === 'dfx-pocket-ic') {
26
+ if (this.type == "dfx" || this.type === "dfx-pocket-ic") {
26
27
  await this.stop();
27
- let dir = path.join(getRootDir(), '.mops/.bench');
28
- fs.writeFileSync(path.join(dir, 'dfx.json'), JSON.stringify(this.dfxJson(''), null, 2));
29
- execSync('dfx start --background --clean --artificial-delay 0' + (this.type === 'dfx-pocket-ic' ? ' --pocketic' : '') + (this.verbose ? '' : ' -qqqq'), { cwd: dir, stdio: ['inherit', this.verbose ? 'inherit' : 'ignore', 'inherit'] });
28
+ let dir = path.join(getRootDir(), ".mops/.bench");
29
+ fs.writeFileSync(path.join(dir, "dfx.json"), JSON.stringify(this.dfxJson(""), null, 2));
30
+ execSync("dfx start --background --clean --artificial-delay 0" +
31
+ (this.type === "dfx-pocket-ic" ? " --pocketic" : "") +
32
+ (this.verbose ? "" : " -qqqq"), {
33
+ cwd: dir,
34
+ stdio: ["inherit", this.verbose ? "inherit" : "ignore", "inherit"],
35
+ });
30
36
  }
31
37
  else {
32
- let pocketIcBin = await toolchain.bin('pocket-ic');
38
+ let pocketIcBin = await toolchain.bin("pocket-ic");
33
39
  let config = readConfig();
34
- if (config.toolchain?.['pocket-ic'] !== '4.0.0') {
35
- console.error('Current Mops CLI only supports pocket-ic 4.0.0');
40
+ if (config.toolchain?.["pocket-ic"] !== "4.0.0" &&
41
+ !config.toolchain?.["pocket-ic"]?.startsWith("9.")) {
42
+ console.error("Current Mops CLI only supports pocket-ic 9.x.x and 4.0.0");
36
43
  process.exit(1);
37
44
  }
38
- this.pocketIcServer = await PocketIcServer.start({
39
- binPath: pocketIcBin,
40
- });
41
- this.pocketIc = await PocketIc.create(this.pocketIcServer.getUrl());
45
+ // pocket-ic 9.x.x
46
+ if (config.toolchain?.["pocket-ic"]?.startsWith("9.")) {
47
+ this.pocketIcServer = await PocketIcServerMops.start({
48
+ binPath: pocketIcBin,
49
+ });
50
+ this.pocketIc = await PocketIcMops.create(this.pocketIcServer.getUrl());
51
+ }
52
+ // pocket-ic 4.0.0
53
+ else {
54
+ this.pocketIcServer = await PocketIcServer.start({
55
+ binPath: pocketIcBin,
56
+ });
57
+ this.pocketIc = await PocketIc.create(this.pocketIcServer.getUrl());
58
+ }
42
59
  }
43
60
  }
44
61
  async stop() {
45
- if (this.type == 'dfx' || this.type === 'dfx-pocket-ic') {
46
- let dir = path.join(getRootDir(), '.mops/.bench');
47
- execSync('dfx stop' + (this.verbose ? '' : ' -qqqq'), { cwd: dir, stdio: ['pipe', this.verbose ? 'inherit' : 'ignore', 'pipe'] });
62
+ if (this.type == "dfx" || this.type === "dfx-pocket-ic") {
63
+ let dir = path.join(getRootDir(), ".mops/.bench");
64
+ execSync("dfx stop" + (this.verbose ? "" : " -qqqq"), {
65
+ cwd: dir,
66
+ stdio: ["pipe", this.verbose ? "inherit" : "ignore", "pipe"],
67
+ });
48
68
  }
49
69
  else if (this.pocketIc && this.pocketIcServer) {
50
70
  await this.pocketIc.tearDown();
@@ -52,12 +72,14 @@ export class BenchReplica {
52
72
  }
53
73
  }
54
74
  async deploy(name, wasm, cwd = process.cwd()) {
55
- if (this.type === 'dfx' || this.type === 'dfx-pocket-ic') {
56
- await execaCommand(`dfx deploy ${name} --mode reinstall --yes --identity anonymous`, { cwd, stdio: this.verbose ? 'pipe' : ['pipe', 'ignore', 'pipe'] });
57
- let canisterId = execSync(`dfx canister id ${name}`, { cwd }).toString().trim();
75
+ if (this.type === "dfx" || this.type === "dfx-pocket-ic") {
76
+ await execaCommand(`dfx deploy ${name} --mode reinstall --yes --identity anonymous`, { cwd, stdio: this.verbose ? "pipe" : ["pipe", "ignore", "pipe"] });
77
+ let canisterId = execSync(`dfx canister id ${name}`, { cwd })
78
+ .toString()
79
+ .trim();
58
80
  let actor = await createActor(canisterId, {
59
81
  agentOptions: {
60
- host: 'http://127.0.0.1:4944',
82
+ host: "http://127.0.0.1:4944",
61
83
  },
62
84
  });
63
85
  this.canisters[name] = { cwd, canisterId, actor };
@@ -75,16 +97,16 @@ export class BenchReplica {
75
97
  return this.canisters[name]?.actor;
76
98
  }
77
99
  getCanisterId(name) {
78
- return this.canisters[name]?.canisterId || '';
100
+ return this.canisters[name]?.canisterId || "";
79
101
  }
80
102
  dfxJson(canisterName) {
81
103
  let canisters = {};
82
104
  if (canisterName) {
83
105
  canisters[canisterName] = {
84
- type: 'custom',
85
- wasm: 'canister.wasm',
86
- candid: 'canister.did',
87
- optimize: 'cycles',
106
+ type: "custom",
107
+ wasm: "canister.wasm",
108
+ candid: "canister.did",
109
+ optimize: "cycles",
88
110
  };
89
111
  }
90
112
  return {
@@ -93,13 +115,13 @@ export class BenchReplica {
93
115
  dfx: getDfxVersion(),
94
116
  defaults: {
95
117
  build: {
96
- packtool: 'mops sources',
118
+ packtool: "mops sources",
97
119
  },
98
120
  },
99
121
  networks: {
100
122
  local: {
101
- type: 'ephemeral',
102
- bind: '127.0.0.1:4944',
123
+ type: "ephemeral",
124
+ bind: "127.0.0.1:4944",
103
125
  },
104
126
  },
105
127
  };