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.
- package/.DS_Store +0 -0
- package/.eslintrc.json +7 -7
- package/CHANGELOG.md +15 -0
- package/api/actors.ts +41 -37
- package/api/downloadPackageFiles.ts +75 -61
- package/api/getHighestVersion.ts +5 -5
- package/api/index.ts +4 -4
- package/api/network.ts +19 -21
- package/api/resolveVersion.ts +14 -11
- package/bin/mops.js +1 -1
- package/bun.lock +234 -198
- package/bundle/bench/bench-canister.mo +2 -2
- package/bundle/bench/user-bench.mo +0 -4
- package/bundle/bin/mops.js +1 -1
- package/bundle/cli.js +1000 -924
- package/bundle/cli.tgz +0 -0
- package/bundle/declarations/bench/bench.did +3 -3
- package/bundle/declarations/bench/bench.did.d.ts +3 -3
- package/bundle/declarations/bench/index.d.ts +3 -3
- package/bundle/declarations/bench/index.js +1 -1
- package/bundle/declarations/main/index.d.ts +3 -3
- package/bundle/declarations/main/index.js +1 -1
- package/bundle/declarations/main/main.did +78 -121
- package/bundle/declarations/main/main.did.d.ts +48 -98
- package/bundle/declarations/main/main.did.js +53 -107
- package/bundle/declarations/storage/index.d.ts +3 -3
- package/bundle/declarations/storage/index.js +4 -4
- package/bundle/declarations/storage/storage.did.d.ts +3 -3
- package/bundle/package.json +6 -5
- package/bundle/templates/mops-publish.yml +3 -3
- package/bundle/templates/mops-test.yml +3 -3
- package/bundle-package-json.ts +8 -8
- package/cache.ts +80 -65
- package/check-requirements.ts +49 -45
- package/cli.ts +577 -376
- package/commands/add.ts +142 -129
- package/commands/available-updates.ts +55 -28
- package/commands/bench/bench-canister.mo +114 -108
- package/commands/bench/user-bench.mo +6 -6
- package/commands/bench-replica.ts +146 -106
- package/commands/bench.ts +563 -497
- package/commands/build.ts +177 -0
- package/commands/bump.ts +68 -57
- package/commands/check-candid.ts +24 -0
- package/commands/docs-coverage.ts +124 -102
- package/commands/docs.ts +118 -108
- package/commands/format.ts +171 -155
- package/commands/init.ts +301 -275
- package/commands/install/install-all.ts +75 -62
- package/commands/install/install-dep.ts +43 -28
- package/commands/install/install-deps.ts +23 -15
- package/commands/install/install-local-dep.ts +42 -34
- package/commands/install/install-mops-dep.ts +154 -123
- package/commands/install/sync-local-cache.ts +39 -35
- package/commands/maintainer.ts +109 -99
- package/commands/outdated.ts +31 -18
- package/commands/owner.ts +107 -99
- package/commands/publish.ts +534 -443
- package/commands/remove.ts +119 -89
- package/commands/replica.ts +391 -303
- package/commands/search.ts +42 -36
- package/commands/self.ts +63 -56
- package/commands/sources.ts +66 -49
- package/commands/sync.ts +92 -75
- package/commands/template.ts +145 -102
- package/commands/test/mmf1.ts +146 -119
- package/commands/test/reporters/compact-reporter.ts +87 -84
- package/commands/test/reporters/files-reporter.ts +56 -51
- package/commands/test/reporters/reporter.ts +12 -6
- package/commands/test/reporters/silent-reporter.ts +58 -59
- package/commands/test/reporters/verbose-reporter.ts +66 -54
- package/commands/test/test.ts +497 -460
- package/commands/test/utils.ts +85 -6
- package/commands/toolchain/index.ts +363 -322
- package/commands/toolchain/moc.ts +78 -50
- package/commands/toolchain/pocket-ic.ts +41 -34
- package/commands/toolchain/toolchain-utils.ts +92 -72
- package/commands/toolchain/wasmtime.ts +37 -34
- package/commands/update.ts +91 -56
- package/commands/user.ts +90 -81
- package/commands/watch/deployer.ts +188 -152
- package/commands/watch/error-checker.ts +90 -80
- package/commands/watch/formatter.ts +72 -60
- package/commands/watch/generator.ts +116 -96
- package/commands/watch/globMoFiles.ts +13 -13
- package/commands/watch/parseDfxJson.ts +63 -57
- package/commands/watch/tester.ts +83 -65
- package/commands/watch/warning-checker.ts +149 -136
- package/commands/watch/watch.ts +123 -95
- package/declarations/bench/bench.did.d.ts +3 -3
- package/declarations/bench/index.d.ts +3 -3
- package/declarations/bench/index.js +1 -1
- package/declarations/main/index.d.ts +3 -3
- package/declarations/main/index.js +1 -1
- package/declarations/main/main.did.d.ts +3 -3
- package/declarations/storage/index.d.ts +3 -3
- package/declarations/storage/index.js +4 -4
- package/declarations/storage/storage.did.d.ts +3 -3
- package/dist/api/actors.d.ts +4 -4
- package/dist/api/actors.js +8 -8
- package/dist/api/downloadPackageFiles.d.ts +2 -2
- package/dist/api/downloadPackageFiles.js +10 -10
- package/dist/api/getHighestVersion.js +1 -1
- package/dist/api/index.d.ts +4 -4
- package/dist/api/index.js +4 -4
- package/dist/api/network.js +9 -9
- package/dist/api/resolveVersion.js +3 -3
- package/dist/bin/mops.js +1 -1
- package/dist/bundle-package-json.js +8 -8
- package/dist/cache.js +22 -17
- package/dist/check-requirements.js +11 -11
- package/dist/cli.js +283 -186
- package/dist/commands/add.d.ts +1 -1
- package/dist/commands/add.js +41 -38
- package/dist/commands/available-updates.d.ts +1 -1
- package/dist/commands/available-updates.js +32 -14
- package/dist/commands/bench/bench-canister.mo +114 -108
- package/dist/commands/bench/user-bench.mo +6 -6
- package/dist/commands/bench-replica.d.ts +6 -5
- package/dist/commands/bench-replica.js +58 -36
- package/dist/commands/bench.d.ts +5 -5
- package/dist/commands/bench.js +134 -118
- package/dist/commands/build.d.ts +7 -0
- package/dist/commands/build.js +121 -0
- package/dist/commands/bump.js +27 -18
- package/dist/commands/check-candid.d.ts +4 -0
- package/dist/commands/check-candid.js +15 -0
- package/dist/commands/docs-coverage.d.ts +1 -1
- package/dist/commands/docs-coverage.js +45 -31
- package/dist/commands/docs.d.ts +1 -1
- package/dist/commands/docs.js +39 -38
- package/dist/commands/format.js +31 -27
- package/dist/commands/init.js +102 -92
- package/dist/commands/install/install-all.d.ts +2 -2
- package/dist/commands/install/install-all.js +23 -21
- package/dist/commands/install/install-dep.d.ts +1 -1
- package/dist/commands/install/install-dep.js +21 -8
- package/dist/commands/install/install-deps.d.ts +1 -1
- package/dist/commands/install/install-deps.js +1 -1
- package/dist/commands/install/install-local-dep.js +11 -9
- package/dist/commands/install/install-mops-dep.d.ts +1 -1
- package/dist/commands/install/install-mops-dep.js +32 -27
- package/dist/commands/install/sync-local-cache.js +10 -10
- package/dist/commands/maintainer.js +21 -21
- package/dist/commands/outdated.js +16 -6
- package/dist/commands/owner.js +21 -21
- package/dist/commands/publish.js +148 -128
- package/dist/commands/remove.d.ts +1 -1
- package/dist/commands/remove.js +42 -30
- package/dist/commands/replica.d.ts +9 -8
- package/dist/commands/replica.js +105 -65
- package/dist/commands/search.js +15 -13
- package/dist/commands/self.js +31 -28
- package/dist/commands/sources.d.ts +5 -1
- package/dist/commands/sources.js +23 -17
- package/dist/commands/sync.d.ts +1 -1
- package/dist/commands/sync.js +38 -25
- package/dist/commands/template.js +66 -56
- package/dist/commands/test/mmf1.d.ts +3 -3
- package/dist/commands/test/mmf1.js +33 -31
- package/dist/commands/test/reporters/compact-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/compact-reporter.js +19 -15
- package/dist/commands/test/reporters/files-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/files-reporter.js +18 -14
- package/dist/commands/test/reporters/reporter.d.ts +2 -2
- package/dist/commands/test/reporters/silent-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/silent-reporter.js +4 -4
- package/dist/commands/test/reporters/verbose-reporter.d.ts +3 -3
- package/dist/commands/test/reporters/verbose-reporter.js +17 -13
- package/dist/commands/test/test.d.ts +4 -4
- package/dist/commands/test/test.js +151 -181
- package/dist/commands/test/utils.d.ts +6 -0
- package/dist/commands/test/utils.js +63 -2
- package/dist/commands/toolchain/index.d.ts +1 -1
- package/dist/commands/toolchain/index.js +81 -69
- package/dist/commands/toolchain/moc.d.ts +1 -1
- package/dist/commands/toolchain/moc.js +48 -24
- package/dist/commands/toolchain/pocket-ic.js +12 -12
- package/dist/commands/toolchain/toolchain-utils.d.ts +2 -0
- package/dist/commands/toolchain/toolchain-utils.js +32 -23
- package/dist/commands/toolchain/wasmtime.js +11 -11
- package/dist/commands/update.d.ts +1 -1
- package/dist/commands/update.js +30 -12
- package/dist/commands/user.js +31 -28
- package/dist/commands/watch/deployer.d.ts +4 -4
- package/dist/commands/watch/deployer.js +45 -36
- package/dist/commands/watch/error-checker.d.ts +2 -2
- package/dist/commands/watch/error-checker.js +27 -27
- package/dist/commands/watch/formatter.d.ts +4 -4
- package/dist/commands/watch/formatter.js +17 -17
- package/dist/commands/watch/generator.d.ts +3 -3
- package/dist/commands/watch/generator.js +28 -23
- package/dist/commands/watch/globMoFiles.js +8 -8
- package/dist/commands/watch/parseDfxJson.d.ts +2 -2
- package/dist/commands/watch/parseDfxJson.js +9 -9
- package/dist/commands/watch/tester.d.ts +4 -4
- package/dist/commands/watch/tester.js +23 -21
- package/dist/commands/watch/warning-checker.d.ts +3 -3
- package/dist/commands/watch/warning-checker.js +36 -36
- package/dist/commands/watch/watch.js +45 -32
- package/dist/declarations/bench/bench.did.d.ts +3 -3
- package/dist/declarations/bench/index.d.ts +3 -3
- package/dist/declarations/bench/index.js +1 -1
- package/dist/declarations/main/index.d.ts +3 -3
- package/dist/declarations/main/index.js +1 -1
- package/dist/declarations/main/main.did.d.ts +3 -3
- package/dist/declarations/storage/index.d.ts +3 -3
- package/dist/declarations/storage/index.js +4 -4
- package/dist/declarations/storage/storage.did.d.ts +3 -3
- package/dist/environments/nodejs/cli.d.ts +1 -0
- package/dist/environments/nodejs/cli.js +4 -0
- package/dist/environments/web/cli.d.ts +1 -0
- package/dist/environments/web/cli.js +4 -0
- package/dist/error.d.ts +1 -0
- package/dist/error.js +5 -0
- package/dist/fix-dist.js +5 -5
- package/dist/helpers/find-changelog-entry.js +8 -5
- package/dist/helpers/get-dep-name.d.ts +1 -0
- package/dist/helpers/get-dep-name.js +4 -1
- package/dist/helpers/get-dfx-version.js +4 -4
- package/dist/helpers/get-moc-path.js +8 -7
- package/dist/helpers/get-moc-version.js +10 -7
- package/dist/helpers/get-package-id.js +2 -2
- package/dist/helpers/is-candid-compatible.d.ts +1 -0
- package/dist/helpers/is-candid-compatible.js +20 -0
- package/dist/integrity.d.ts +1 -1
- package/dist/integrity.js +47 -38
- package/dist/jest.config.d.ts +11 -0
- package/dist/jest.config.js +14 -0
- package/dist/mops.d.ts +6 -6
- package/dist/mops.js +87 -80
- package/dist/notify-installs.js +4 -4
- package/dist/package.json +11 -10
- package/dist/pem.d.ts +3 -3
- package/dist/pem.js +20 -12
- package/dist/release-cli.js +20 -20
- package/dist/resolve-packages.d.ts +1 -1
- package/dist/resolve-packages.js +52 -36
- package/dist/templates/mops-publish.yml +3 -3
- package/dist/templates/mops-test.yml +3 -3
- package/dist/templates/src/lib.mo +13 -13
- package/dist/templates/test/lib.test.mo +2 -2
- package/dist/templates.js +1 -1
- package/dist/tests/cli.test.d.ts +1 -0
- package/dist/tests/cli.test.js +63 -0
- package/dist/types.d.ts +14 -4
- package/dist/vessel.d.ts +2 -2
- package/dist/vessel.js +41 -34
- package/dist/wasm/pkg/bundler/package.json +20 -0
- package/dist/wasm/pkg/bundler/wasm.d.ts +3 -0
- package/dist/wasm/pkg/bundler/wasm.js +5 -0
- package/dist/wasm/pkg/bundler/wasm_bg.js +93 -0
- package/dist/wasm/pkg/bundler/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
- package/dist/wasm/pkg/nodejs/package.json +14 -0
- package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
- package/dist/wasm/pkg/nodejs/wasm.js +98 -0
- package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
- package/dist/wasm/pkg/web/package.json +18 -0
- package/dist/wasm/pkg/web/wasm.d.ts +35 -0
- package/dist/wasm/pkg/web/wasm.js +191 -0
- package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
- package/dist/wasm.d.ts +5 -0
- package/dist/wasm.js +10 -0
- package/environments/nodejs/cli.ts +6 -0
- package/environments/web/cli.ts +6 -0
- package/error.ts +6 -0
- package/fix-dist.ts +5 -5
- package/global.d.ts +3 -3
- package/helpers/find-changelog-entry.ts +26 -23
- package/helpers/get-dep-name.ts +7 -3
- package/helpers/get-dfx-version.ts +8 -9
- package/helpers/get-moc-path.ts +25 -26
- package/helpers/get-moc-version.ts +21 -19
- package/helpers/get-package-id.ts +4 -4
- package/helpers/is-candid-compatible.ts +22 -0
- package/integrity.ts +270 -236
- package/jest.config.js +14 -0
- package/mops.ts +238 -215
- package/notify-installs.ts +16 -17
- package/package.json +21 -15
- package/parallel.ts +28 -24
- package/pem.ts +55 -47
- package/release-cli.ts +73 -39
- package/resolve-packages.ts +231 -189
- package/templates/mops-publish.yml +3 -3
- package/templates/mops-test.yml +3 -3
- package/templates/src/lib.mo +13 -13
- package/templates/test/lib.test.mo +2 -2
- package/templates.ts +4 -4
- package/tests/__snapshots__/cli.test.ts.snap +202 -0
- package/tests/build/error/candid/bar.did +3 -0
- package/tests/build/error/dfx.json +12 -0
- package/tests/build/error/mops.toml +9 -0
- package/tests/build/error/src/Bar.mo +5 -0
- package/tests/build/error/src/Foo.mo +5 -0
- package/tests/build/success/.dfx/local/canister_ids.json +17 -0
- package/tests/build/success/.dfx/local/canisters/bar/bar.did +3 -0
- package/tests/build/success/.dfx/local/canisters/bar/bar.most +4 -0
- package/tests/build/success/.dfx/local/canisters/bar/bar.wasm +0 -0
- package/tests/build/success/.dfx/local/canisters/bar/constructor.did +3 -0
- package/tests/build/success/.dfx/local/canisters/bar/index.js +42 -0
- package/tests/build/success/.dfx/local/canisters/bar/init_args.txt +1 -0
- package/tests/build/success/.dfx/local/canisters/bar/service.did +3 -0
- package/tests/build/success/.dfx/local/canisters/bar/service.did.d.ts +7 -0
- package/tests/build/success/.dfx/local/canisters/bar/service.did.js +4 -0
- package/tests/build/success/.dfx/local/canisters/foo/constructor.did +3 -0
- package/tests/build/success/.dfx/local/canisters/foo/foo.did +3 -0
- package/tests/build/success/.dfx/local/canisters/foo/foo.most +4 -0
- package/tests/build/success/.dfx/local/canisters/foo/foo.wasm +0 -0
- package/tests/build/success/.dfx/local/canisters/foo/index.js +42 -0
- package/tests/build/success/.dfx/local/canisters/foo/init_args.txt +1 -0
- package/tests/build/success/.dfx/local/canisters/foo/service.did +3 -0
- package/tests/build/success/.dfx/local/canisters/foo/service.did.d.ts +7 -0
- package/tests/build/success/.dfx/local/canisters/foo/service.did.js +4 -0
- package/tests/build/success/.dfx/local/lsp/ucwa4-rx777-77774-qaada-cai.did +3 -0
- package/tests/build/success/.dfx/local/lsp/ulvla-h7777-77774-qaacq-cai.did +3 -0
- package/tests/build/success/.dfx/local/network-id +4 -0
- package/tests/build/success/candid/bar.did +3 -0
- package/tests/build/success/dfx.json +12 -0
- package/tests/build/success/mops.toml +9 -0
- package/tests/build/success/src/Bar.mo +5 -0
- package/tests/build/success/src/Foo.mo +5 -0
- package/tests/check-candid/a.did +3 -0
- package/tests/check-candid/b.did +5 -0
- package/tests/check-candid/c.did +3 -0
- package/tests/cli.test.ts +82 -0
- package/tsconfig.json +26 -19
- package/types.ts +41 -31
- package/vessel.ts +219 -187
- package/wasm/Cargo.lock +1475 -0
- package/wasm/Cargo.toml +28 -0
- package/wasm/pkg/bundler/package.json +20 -0
- package/wasm/pkg/bundler/wasm.d.ts +3 -0
- package/wasm/pkg/bundler/wasm.js +5 -0
- package/wasm/pkg/bundler/wasm_bg.js +93 -0
- package/wasm/pkg/bundler/wasm_bg.wasm +0 -0
- package/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
- package/wasm/pkg/nodejs/package.json +14 -0
- package/wasm/pkg/nodejs/wasm.d.ts +3 -0
- package/wasm/pkg/nodejs/wasm.js +98 -0
- package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
- package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
- package/wasm/pkg/web/package.json +18 -0
- package/wasm/pkg/web/wasm.d.ts +35 -0
- package/wasm/pkg/web/wasm.js +191 -0
- package/wasm/pkg/web/wasm_bg.wasm +0 -0
- package/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
- package/wasm/src/lib.rs +17 -0
- package/wasm.ts +16 -0
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
// Jest Snapshot v1, https://jestjs.io/docs/snapshot-testing
|
|
2
|
+
|
|
3
|
+
exports[`mops build error 1`] = `
|
|
4
|
+
{
|
|
5
|
+
"exitCode": 0,
|
|
6
|
+
"stderr": "",
|
|
7
|
+
"stdout": "
|
|
8
|
+
> ic-mops@1.13.0 mops
|
|
9
|
+
> tsx ./environments/nodejs/cli build foo
|
|
10
|
+
|
|
11
|
+
build canister foo
|
|
12
|
+
|
|
13
|
+
✓ Built 1 canister successfully",
|
|
14
|
+
}
|
|
15
|
+
`;
|
|
16
|
+
|
|
17
|
+
exports[`mops build error 2`] = `
|
|
18
|
+
{
|
|
19
|
+
"exitCode": 1,
|
|
20
|
+
"stderr": "Candid compatibility check failed for canister bar",
|
|
21
|
+
"stdout": "
|
|
22
|
+
> ic-mops@1.13.0 mops
|
|
23
|
+
> tsx ./environments/nodejs/cli build bar
|
|
24
|
+
|
|
25
|
+
build canister bar",
|
|
26
|
+
}
|
|
27
|
+
`;
|
|
28
|
+
|
|
29
|
+
exports[`mops build error 3`] = `
|
|
30
|
+
{
|
|
31
|
+
"exitCode": 1,
|
|
32
|
+
"stderr": "Candid compatibility check failed for canister bar",
|
|
33
|
+
"stdout": "
|
|
34
|
+
> ic-mops@1.13.0 mops
|
|
35
|
+
> tsx ./environments/nodejs/cli build foo bar
|
|
36
|
+
|
|
37
|
+
build canister foo
|
|
38
|
+
build canister bar",
|
|
39
|
+
}
|
|
40
|
+
`;
|
|
41
|
+
|
|
42
|
+
exports[`mops build success 1`] = `
|
|
43
|
+
{
|
|
44
|
+
"exitCode": 0,
|
|
45
|
+
"stderr": "",
|
|
46
|
+
"stdout": "
|
|
47
|
+
> ic-mops@1.13.0 mops
|
|
48
|
+
> tsx ./environments/nodejs/cli build
|
|
49
|
+
|
|
50
|
+
build canister foo
|
|
51
|
+
build canister bar
|
|
52
|
+
|
|
53
|
+
✓ Built 2 canisters successfully",
|
|
54
|
+
}
|
|
55
|
+
`;
|
|
56
|
+
|
|
57
|
+
exports[`mops build success 2`] = `
|
|
58
|
+
{
|
|
59
|
+
"exitCode": 0,
|
|
60
|
+
"stderr": "",
|
|
61
|
+
"stdout": "
|
|
62
|
+
> ic-mops@1.13.0 mops
|
|
63
|
+
> tsx ./environments/nodejs/cli build foo
|
|
64
|
+
|
|
65
|
+
build canister foo
|
|
66
|
+
|
|
67
|
+
✓ Built 1 canister successfully",
|
|
68
|
+
}
|
|
69
|
+
`;
|
|
70
|
+
|
|
71
|
+
exports[`mops build success 3`] = `
|
|
72
|
+
{
|
|
73
|
+
"exitCode": 0,
|
|
74
|
+
"stderr": "",
|
|
75
|
+
"stdout": "
|
|
76
|
+
> ic-mops@1.13.0 mops
|
|
77
|
+
> tsx ./environments/nodejs/cli build bar
|
|
78
|
+
|
|
79
|
+
build canister bar
|
|
80
|
+
|
|
81
|
+
✓ Built 1 canister successfully",
|
|
82
|
+
}
|
|
83
|
+
`;
|
|
84
|
+
|
|
85
|
+
exports[`mops build success 4`] = `
|
|
86
|
+
{
|
|
87
|
+
"exitCode": 0,
|
|
88
|
+
"stderr": "",
|
|
89
|
+
"stdout": "
|
|
90
|
+
> ic-mops@1.13.0 mops
|
|
91
|
+
> tsx ./environments/nodejs/cli build foo bar
|
|
92
|
+
|
|
93
|
+
build canister foo
|
|
94
|
+
build canister bar
|
|
95
|
+
|
|
96
|
+
✓ Built 2 canisters successfully",
|
|
97
|
+
}
|
|
98
|
+
`;
|
|
99
|
+
|
|
100
|
+
exports[`mops check-candid 1`] = `
|
|
101
|
+
{
|
|
102
|
+
"exitCode": 0,
|
|
103
|
+
"stderr": "",
|
|
104
|
+
"stdout": "
|
|
105
|
+
> ic-mops@1.13.0 mops
|
|
106
|
+
> tsx ./environments/nodejs/cli check-candid a.did a.did
|
|
107
|
+
|
|
108
|
+
✓ Candid compatibility check passed",
|
|
109
|
+
}
|
|
110
|
+
`;
|
|
111
|
+
|
|
112
|
+
exports[`mops check-candid 2`] = `
|
|
113
|
+
{
|
|
114
|
+
"exitCode": 0,
|
|
115
|
+
"stderr": "",
|
|
116
|
+
"stdout": "
|
|
117
|
+
> ic-mops@1.13.0 mops
|
|
118
|
+
> tsx ./environments/nodejs/cli check-candid b.did b.did
|
|
119
|
+
|
|
120
|
+
✓ Candid compatibility check passed",
|
|
121
|
+
}
|
|
122
|
+
`;
|
|
123
|
+
|
|
124
|
+
exports[`mops check-candid 3`] = `
|
|
125
|
+
{
|
|
126
|
+
"exitCode": 0,
|
|
127
|
+
"stderr": "",
|
|
128
|
+
"stdout": "
|
|
129
|
+
> ic-mops@1.13.0 mops
|
|
130
|
+
> tsx ./environments/nodejs/cli check-candid c.did c.did
|
|
131
|
+
|
|
132
|
+
✓ Candid compatibility check passed",
|
|
133
|
+
}
|
|
134
|
+
`;
|
|
135
|
+
|
|
136
|
+
exports[`mops check-candid 4`] = `
|
|
137
|
+
{
|
|
138
|
+
"exitCode": 0,
|
|
139
|
+
"stderr": "",
|
|
140
|
+
"stdout": "
|
|
141
|
+
> ic-mops@1.13.0 mops
|
|
142
|
+
> tsx ./environments/nodejs/cli check-candid a.did b.did
|
|
143
|
+
|
|
144
|
+
✓ Candid compatibility check passed",
|
|
145
|
+
}
|
|
146
|
+
`;
|
|
147
|
+
|
|
148
|
+
exports[`mops check-candid 5`] = `
|
|
149
|
+
{
|
|
150
|
+
"exitCode": 0,
|
|
151
|
+
"stderr": "",
|
|
152
|
+
"stdout": "
|
|
153
|
+
> ic-mops@1.13.0 mops
|
|
154
|
+
> tsx ./environments/nodejs/cli check-candid b.did a.did
|
|
155
|
+
|
|
156
|
+
✓ Candid compatibility check passed",
|
|
157
|
+
}
|
|
158
|
+
`;
|
|
159
|
+
|
|
160
|
+
exports[`mops check-candid 6`] = `
|
|
161
|
+
{
|
|
162
|
+
"exitCode": 1,
|
|
163
|
+
"stderr": "✖ Candid compatibility check failed",
|
|
164
|
+
"stdout": "
|
|
165
|
+
> ic-mops@1.13.0 mops
|
|
166
|
+
> tsx ./environments/nodejs/cli check-candid a.did c.did
|
|
167
|
+
",
|
|
168
|
+
}
|
|
169
|
+
`;
|
|
170
|
+
|
|
171
|
+
exports[`mops check-candid 7`] = `
|
|
172
|
+
{
|
|
173
|
+
"exitCode": 1,
|
|
174
|
+
"stderr": "✖ Candid compatibility check failed",
|
|
175
|
+
"stdout": "
|
|
176
|
+
> ic-mops@1.13.0 mops
|
|
177
|
+
> tsx ./environments/nodejs/cli check-candid c.did a.did
|
|
178
|
+
",
|
|
179
|
+
}
|
|
180
|
+
`;
|
|
181
|
+
|
|
182
|
+
exports[`mops check-candid 8`] = `
|
|
183
|
+
{
|
|
184
|
+
"exitCode": 1,
|
|
185
|
+
"stderr": "✖ Candid compatibility check failed",
|
|
186
|
+
"stdout": "
|
|
187
|
+
> ic-mops@1.13.0 mops
|
|
188
|
+
> tsx ./environments/nodejs/cli check-candid b.did c.did
|
|
189
|
+
",
|
|
190
|
+
}
|
|
191
|
+
`;
|
|
192
|
+
|
|
193
|
+
exports[`mops check-candid 9`] = `
|
|
194
|
+
{
|
|
195
|
+
"exitCode": 1,
|
|
196
|
+
"stderr": "✖ Candid compatibility check failed",
|
|
197
|
+
"stdout": "
|
|
198
|
+
> ic-mops@1.13.0 mops
|
|
199
|
+
> tsx ./environments/nodejs/cli check-candid c.did b.did
|
|
200
|
+
",
|
|
201
|
+
}
|
|
202
|
+
`;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"__Candid_UI": {
|
|
3
|
+
"local": "ufxgi-4p777-77774-qaadq-cai"
|
|
4
|
+
},
|
|
5
|
+
"a": {
|
|
6
|
+
"local": "uzt4z-lp777-77774-qaabq-cai"
|
|
7
|
+
},
|
|
8
|
+
"b": {
|
|
9
|
+
"local": "umunu-kh777-77774-qaaca-cai"
|
|
10
|
+
},
|
|
11
|
+
"bar": {
|
|
12
|
+
"local": "ulvla-h7777-77774-qaacq-cai"
|
|
13
|
+
},
|
|
14
|
+
"foo": {
|
|
15
|
+
"local": "ucwa4-rx777-77774-qaada-cai"
|
|
16
|
+
}
|
|
17
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Actor, HttpAgent } from "@dfinity/agent";
|
|
2
|
+
|
|
3
|
+
// Imports and re-exports candid interface
|
|
4
|
+
import { idlFactory } from './bar.did.js';
|
|
5
|
+
export { idlFactory } from './bar.did.js';
|
|
6
|
+
// CANISTER_ID is replaced by webpack based on node environment
|
|
7
|
+
export const canisterId = process.env.CANISTER_ID_BAR;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated since dfx 0.11.1
|
|
11
|
+
* Do not import from `.dfx`, instead switch to using `dfx generate` to generate your JS interface.
|
|
12
|
+
* @param {string | import("@dfinity/principal").Principal} canisterId Canister ID of Agent
|
|
13
|
+
* @param {{agentOptions?: import("@dfinity/agent").HttpAgentOptions; actorOptions?: import("@dfinity/agent").ActorConfig} | { agent?: import("@dfinity/agent").Agent; actorOptions?: import("@dfinity/agent").ActorConfig }} [options]
|
|
14
|
+
* @return {import("@dfinity/agent").ActorSubclass<import("./bar.did.js")._SERVICE>}
|
|
15
|
+
*/
|
|
16
|
+
export const createActor = (canisterId, options = {}) => {
|
|
17
|
+
console.warn(`Deprecation warning: you are currently importing code from .dfx. Going forward, refactor to use the dfx generate command for JavaScript bindings.
|
|
18
|
+
|
|
19
|
+
See https://internetcomputer.org/docs/current/developer-docs/updates/release-notes/ for migration instructions`);
|
|
20
|
+
const agent = options.agent || new HttpAgent({ ...options.agentOptions });
|
|
21
|
+
|
|
22
|
+
// Fetch root key for certificate validation during development
|
|
23
|
+
if (process.env.DFX_NETWORK !== "ic") {
|
|
24
|
+
agent.fetchRootKey().catch(err => {
|
|
25
|
+
console.warn("Unable to fetch root key. Check to ensure that your local replica is running");
|
|
26
|
+
console.error(err);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Creates an actor with using the candid interface and the HttpAgent
|
|
31
|
+
return Actor.createActor(idlFactory, {
|
|
32
|
+
agent,
|
|
33
|
+
canisterId,
|
|
34
|
+
...(options ? options.actorOptions : {}),
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A ready-to-use agent for the bar canister
|
|
40
|
+
* @type {import("@dfinity/agent").ActorSubclass<import("./bar.did.js")._SERVICE>}
|
|
41
|
+
*/
|
|
42
|
+
export const bar = createActor(canisterId);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Principal } from '@dfinity/principal';
|
|
2
|
+
import type { ActorMethod } from '@dfinity/agent';
|
|
3
|
+
import type { IDL } from '@dfinity/candid';
|
|
4
|
+
|
|
5
|
+
export interface _SERVICE { 'call' : ActorMethod<[], string> }
|
|
6
|
+
export declare const idlFactory: IDL.InterfaceFactory;
|
|
7
|
+
export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[];
|
|
Binary file
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Actor, HttpAgent } from "@dfinity/agent";
|
|
2
|
+
|
|
3
|
+
// Imports and re-exports candid interface
|
|
4
|
+
import { idlFactory } from './foo.did.js';
|
|
5
|
+
export { idlFactory } from './foo.did.js';
|
|
6
|
+
// CANISTER_ID is replaced by webpack based on node environment
|
|
7
|
+
export const canisterId = process.env.CANISTER_ID_FOO;
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* @deprecated since dfx 0.11.1
|
|
11
|
+
* Do not import from `.dfx`, instead switch to using `dfx generate` to generate your JS interface.
|
|
12
|
+
* @param {string | import("@dfinity/principal").Principal} canisterId Canister ID of Agent
|
|
13
|
+
* @param {{agentOptions?: import("@dfinity/agent").HttpAgentOptions; actorOptions?: import("@dfinity/agent").ActorConfig} | { agent?: import("@dfinity/agent").Agent; actorOptions?: import("@dfinity/agent").ActorConfig }} [options]
|
|
14
|
+
* @return {import("@dfinity/agent").ActorSubclass<import("./foo.did.js")._SERVICE>}
|
|
15
|
+
*/
|
|
16
|
+
export const createActor = (canisterId, options = {}) => {
|
|
17
|
+
console.warn(`Deprecation warning: you are currently importing code from .dfx. Going forward, refactor to use the dfx generate command for JavaScript bindings.
|
|
18
|
+
|
|
19
|
+
See https://internetcomputer.org/docs/current/developer-docs/updates/release-notes/ for migration instructions`);
|
|
20
|
+
const agent = options.agent || new HttpAgent({ ...options.agentOptions });
|
|
21
|
+
|
|
22
|
+
// Fetch root key for certificate validation during development
|
|
23
|
+
if (process.env.DFX_NETWORK !== "ic") {
|
|
24
|
+
agent.fetchRootKey().catch(err => {
|
|
25
|
+
console.warn("Unable to fetch root key. Check to ensure that your local replica is running");
|
|
26
|
+
console.error(err);
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Creates an actor with using the candid interface and the HttpAgent
|
|
31
|
+
return Actor.createActor(idlFactory, {
|
|
32
|
+
agent,
|
|
33
|
+
canisterId,
|
|
34
|
+
...(options ? options.actorOptions : {}),
|
|
35
|
+
});
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* A ready-to-use agent for the foo canister
|
|
40
|
+
* @type {import("@dfinity/agent").ActorSubclass<import("./foo.did.js")._SERVICE>}
|
|
41
|
+
*/
|
|
42
|
+
export const foo = createActor(canisterId);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
()
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Principal } from '@dfinity/principal';
|
|
2
|
+
import type { ActorMethod } from '@dfinity/agent';
|
|
3
|
+
import type { IDL } from '@dfinity/candid';
|
|
4
|
+
|
|
5
|
+
export interface _SERVICE { 'call' : ActorMethod<[], string> }
|
|
6
|
+
export declare const idlFactory: IDL.InterfaceFactory;
|
|
7
|
+
export declare const init: (args: { IDL: typeof IDL }) => IDL.Type[];
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { describe, expect, test } from "@jest/globals";
|
|
2
|
+
import { execa } from "execa";
|
|
3
|
+
import path from "path";
|
|
4
|
+
|
|
5
|
+
interface CliOptions {
|
|
6
|
+
cwd?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
const cli = async (args: string[], { cwd }: CliOptions = {}) => {
|
|
10
|
+
return await execa("npm", ["run", "mops", "--", ...args], {
|
|
11
|
+
env: { MOPS_CWD: cwd },
|
|
12
|
+
stdio: "pipe",
|
|
13
|
+
reject: false,
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const cliSnapshot = async (
|
|
18
|
+
args: string[],
|
|
19
|
+
options: CliOptions,
|
|
20
|
+
exitCode: number,
|
|
21
|
+
) => {
|
|
22
|
+
const result = await cli(args, options);
|
|
23
|
+
expect({
|
|
24
|
+
command: result.command,
|
|
25
|
+
exitCode: result.exitCode,
|
|
26
|
+
timedOut: result.timedOut,
|
|
27
|
+
stdio: Boolean(result.stdout || result.stderr),
|
|
28
|
+
}).toEqual({
|
|
29
|
+
command: result.command,
|
|
30
|
+
exitCode,
|
|
31
|
+
timedOut: false,
|
|
32
|
+
stdio: true,
|
|
33
|
+
});
|
|
34
|
+
expect({
|
|
35
|
+
exitCode: result.exitCode,
|
|
36
|
+
stdout: result.stdout,
|
|
37
|
+
stderr: result.stderr,
|
|
38
|
+
}).toMatchSnapshot();
|
|
39
|
+
return result;
|
|
40
|
+
};
|
|
41
|
+
|
|
42
|
+
describe("mops", () => {
|
|
43
|
+
test("version", async () => {
|
|
44
|
+
expect((await cli(["--version"])).stdout).toMatch(/CLI \d+\.\d+\.\d+/);
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
test("help", async () => {
|
|
48
|
+
expect((await cli(["--help"])).stdout).toMatch(/^Usage: mops/m);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
test("build success", async () => {
|
|
52
|
+
const cwd = path.join(import.meta.dirname, "build/success");
|
|
53
|
+
await cliSnapshot(["build"], { cwd }, 0);
|
|
54
|
+
await cliSnapshot(["build", "foo"], { cwd }, 0);
|
|
55
|
+
await cliSnapshot(["build", "bar"], { cwd }, 0);
|
|
56
|
+
await cliSnapshot(["build", "foo", "bar"], { cwd }, 0);
|
|
57
|
+
});
|
|
58
|
+
|
|
59
|
+
test("build error", async () => {
|
|
60
|
+
const cwd = path.join(import.meta.dirname, "build/error");
|
|
61
|
+
await cliSnapshot(["build", "foo"], { cwd }, 0);
|
|
62
|
+
expect((await cliSnapshot(["build", "bar"], { cwd }, 1)).stderr).toMatch(
|
|
63
|
+
"Candid compatibility check failed for canister bar",
|
|
64
|
+
);
|
|
65
|
+
expect(
|
|
66
|
+
(await cliSnapshot(["build", "foo", "bar"], { cwd }, 1)).stderr,
|
|
67
|
+
).toMatch("Candid compatibility check failed for canister bar");
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
test("check-candid", async () => {
|
|
71
|
+
const cwd = path.join(import.meta.dirname, "check-candid");
|
|
72
|
+
await cliSnapshot(["check-candid", "a.did", "a.did"], { cwd }, 0);
|
|
73
|
+
await cliSnapshot(["check-candid", "b.did", "b.did"], { cwd }, 0);
|
|
74
|
+
await cliSnapshot(["check-candid", "c.did", "c.did"], { cwd }, 0);
|
|
75
|
+
await cliSnapshot(["check-candid", "a.did", "b.did"], { cwd }, 0);
|
|
76
|
+
await cliSnapshot(["check-candid", "b.did", "a.did"], { cwd }, 0);
|
|
77
|
+
await cliSnapshot(["check-candid", "a.did", "c.did"], { cwd }, 1);
|
|
78
|
+
await cliSnapshot(["check-candid", "c.did", "a.did"], { cwd }, 1);
|
|
79
|
+
await cliSnapshot(["check-candid", "b.did", "c.did"], { cwd }, 1);
|
|
80
|
+
await cliSnapshot(["check-candid", "c.did", "b.did"], { cwd }, 1);
|
|
81
|
+
});
|
|
82
|
+
});
|
package/tsconfig.json
CHANGED
|
@@ -1,20 +1,27 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
2
|
+
"extends": ["@tsconfig/strictest/tsconfig.json"],
|
|
3
|
+
"include": ["**/*.ts", "**/*.js"],
|
|
4
|
+
"exclude": [
|
|
5
|
+
"node_modules",
|
|
6
|
+
"dist",
|
|
7
|
+
"bundle",
|
|
8
|
+
"dist.js",
|
|
9
|
+
"declarations/**/*.js",
|
|
10
|
+
"wasm/**/*.js"
|
|
11
|
+
],
|
|
12
|
+
"compilerOptions": {
|
|
13
|
+
"target": "ES2022",
|
|
14
|
+
"lib": ["ES2022"],
|
|
15
|
+
"types": ["node"],
|
|
16
|
+
"outDir": "./dist",
|
|
17
|
+
"allowJs": true,
|
|
18
|
+
"module": "ES2022",
|
|
19
|
+
"moduleResolution": "bundler",
|
|
20
|
+
"noEmitOnError": false,
|
|
21
|
+
"noUnusedLocals": false,
|
|
22
|
+
"noUnusedParameters": false,
|
|
23
|
+
"noPropertyAccessFromIndexSignature": false,
|
|
24
|
+
"exactOptionalPropertyTypes": false,
|
|
25
|
+
"declaration": true
|
|
26
|
+
}
|
|
27
|
+
}
|