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
package/dist/resolve-packages.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import process from
|
|
2
|
-
import path from
|
|
3
|
-
import { existsSync } from
|
|
4
|
-
import chalk from
|
|
5
|
-
import { checkConfigFile, getRootDir, parseGithubURL, readConfig } from
|
|
6
|
-
import { readVesselConfig } from
|
|
7
|
-
import { getDepCacheDir, getDepCacheName } from
|
|
8
|
-
import { getPackageId } from
|
|
9
|
-
import { checkLockFileLight, readLockFile } from
|
|
10
|
-
export async function resolvePackages({ conflicts =
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import { existsSync } from "node:fs";
|
|
4
|
+
import chalk from "chalk";
|
|
5
|
+
import { checkConfigFile, getRootDir, parseGithubURL, readConfig, } from "./mops.js";
|
|
6
|
+
import { readVesselConfig } from "./vessel.js";
|
|
7
|
+
import { getDepCacheDir, getDepCacheName } from "./cache.js";
|
|
8
|
+
import { getPackageId } from "./helpers/get-package-id.js";
|
|
9
|
+
import { checkLockFileLight, readLockFile } from "./integrity.js";
|
|
10
|
+
export async function resolvePackages({ conflicts = "ignore", } = {}) {
|
|
11
11
|
if (!checkConfigFile()) {
|
|
12
12
|
return {};
|
|
13
13
|
}
|
|
@@ -20,9 +20,9 @@ export async function resolvePackages({ conflicts = 'ignore' } = {}) {
|
|
|
20
20
|
let rootDir = getRootDir();
|
|
21
21
|
let packages = {};
|
|
22
22
|
let versions = {};
|
|
23
|
-
let compareVersions = (a =
|
|
24
|
-
let ap = a.split(
|
|
25
|
-
let bp = b.split(
|
|
23
|
+
let compareVersions = (a = "0.0.0", b = "0.0.0") => {
|
|
24
|
+
let ap = a.split(".").map((x) => parseInt(x));
|
|
25
|
+
let bp = b.split(".").map((x) => parseInt(x));
|
|
26
26
|
if (ap[0] - bp[0]) {
|
|
27
27
|
return Math.sign(ap[0] - bp[0]);
|
|
28
28
|
}
|
|
@@ -51,16 +51,21 @@ export async function resolvePackages({ conflicts = 'ignore' } = {}) {
|
|
|
51
51
|
let collectDeps = async (config, configDir, isRoot = false) => {
|
|
52
52
|
let allDeps = [...Object.values(config.dependencies || {})];
|
|
53
53
|
if (isRoot) {
|
|
54
|
-
allDeps = [
|
|
54
|
+
allDeps = [
|
|
55
|
+
...allDeps,
|
|
56
|
+
...Object.values(config["dev-dependencies"] || {}),
|
|
57
|
+
];
|
|
55
58
|
}
|
|
56
59
|
for (const pkgDetails of allDeps) {
|
|
57
60
|
const { name, repo, version } = pkgDetails;
|
|
58
61
|
// take root dep version or bigger one
|
|
59
|
-
if (isRoot
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
62
|
+
if (isRoot ||
|
|
63
|
+
!packages[name] ||
|
|
64
|
+
(!packages[name]?.isRoot &&
|
|
65
|
+
((repo &&
|
|
66
|
+
packages[name]?.repo &&
|
|
67
|
+
compareGitVersions(packages[name]?.repo || "", repo) === -1) ||
|
|
68
|
+
compareVersions(packages[name]?.version, version) === -1))) {
|
|
64
69
|
let temp = {
|
|
65
70
|
...pkgDetails,
|
|
66
71
|
isRoot,
|
|
@@ -72,22 +77,27 @@ export async function resolvePackages({ conflicts = 'ignore' } = {}) {
|
|
|
72
77
|
}
|
|
73
78
|
}
|
|
74
79
|
let nestedConfig;
|
|
75
|
-
let localNestedDir =
|
|
80
|
+
let localNestedDir = "";
|
|
76
81
|
// read nested config
|
|
77
82
|
if (repo) {
|
|
78
83
|
let cacheDir = getDepCacheName(name, repo);
|
|
79
|
-
nestedConfig =
|
|
84
|
+
nestedConfig =
|
|
85
|
+
(await readVesselConfig(getDepCacheDir(cacheDir), {
|
|
86
|
+
silent: true,
|
|
87
|
+
})) || {};
|
|
80
88
|
}
|
|
81
89
|
else if (pkgDetails.path) {
|
|
82
|
-
localNestedDir = path
|
|
83
|
-
|
|
90
|
+
localNestedDir = path
|
|
91
|
+
.resolve(configDir, pkgDetails.path)
|
|
92
|
+
.replaceAll("{MOPS_ENV}", process.env.MOPS_ENV || "local");
|
|
93
|
+
let mopsToml = path.join(localNestedDir, "mops.toml");
|
|
84
94
|
if (existsSync(mopsToml)) {
|
|
85
95
|
nestedConfig = readConfig(mopsToml);
|
|
86
96
|
}
|
|
87
97
|
}
|
|
88
98
|
else if (version) {
|
|
89
99
|
let cacheDir = getDepCacheName(name, version);
|
|
90
|
-
nestedConfig = readConfig(getDepCacheDir(cacheDir) +
|
|
100
|
+
nestedConfig = readConfig(getDepCacheDir(cacheDir) + "/mops.toml");
|
|
91
101
|
}
|
|
92
102
|
// collect nested deps
|
|
93
103
|
if (nestedConfig) {
|
|
@@ -96,9 +106,9 @@ export async function resolvePackages({ conflicts = 'ignore' } = {}) {
|
|
|
96
106
|
if (!versions[name]) {
|
|
97
107
|
versions[name] = [];
|
|
98
108
|
}
|
|
99
|
-
let parentPkgId = isRoot ?
|
|
100
|
-
if (
|
|
101
|
-
parentPkgId = getPackageId(config.package?.name ||
|
|
109
|
+
let parentPkgId = isRoot ? "<root>" : "";
|
|
110
|
+
if ("package" in config) {
|
|
111
|
+
parentPkgId = getPackageId(config.package?.name || "", config.package?.version || "");
|
|
102
112
|
}
|
|
103
113
|
if (repo) {
|
|
104
114
|
const { branch } = parseGithubURL(repo);
|
|
@@ -121,25 +131,30 @@ export async function resolvePackages({ conflicts = 'ignore' } = {}) {
|
|
|
121
131
|
await collectDeps(config, rootDir, true);
|
|
122
132
|
// show conflicts
|
|
123
133
|
let hasConflicts = false;
|
|
124
|
-
if (conflicts !==
|
|
134
|
+
if (conflicts !== "ignore") {
|
|
125
135
|
for (let [dep, vers] of Object.entries(versions)) {
|
|
126
|
-
let majors = new Set(vers.filter(x => x.isMopsPackage).map(x => x.version.split(
|
|
136
|
+
let majors = new Set(vers.filter((x) => x.isMopsPackage).map((x) => x.version.split(".")[0]));
|
|
127
137
|
if (majors.size > 1) {
|
|
128
|
-
console.error(chalk.reset(
|
|
138
|
+
console.error(chalk.reset("") +
|
|
139
|
+
chalk.redBright(conflicts === "error" ? "Error!" : "Warning!"), `Conflicting versions of dependency "${dep}"`);
|
|
129
140
|
for (let { version, dependencyOf } of vers.reverse()) {
|
|
130
|
-
console.error(chalk.reset(
|
|
141
|
+
console.error(chalk.reset(" ") +
|
|
142
|
+
`${dep} ${chalk.bold.red(version.split(".")[0])}.${version.split(".").slice(1).join(".")} is dependency of ${chalk.bold(dependencyOf)}`);
|
|
131
143
|
}
|
|
132
144
|
hasConflicts = true;
|
|
133
145
|
}
|
|
134
146
|
}
|
|
135
147
|
}
|
|
136
|
-
if (conflicts ===
|
|
148
|
+
if (conflicts === "error" && hasConflicts) {
|
|
137
149
|
process.exit(1);
|
|
138
150
|
}
|
|
139
|
-
return Object.fromEntries(Object.entries(packages)
|
|
151
|
+
return Object.fromEntries(Object.entries(packages)
|
|
152
|
+
.map(([name, pkg]) => {
|
|
140
153
|
let version;
|
|
141
154
|
if (pkg.path) {
|
|
142
|
-
version = path
|
|
155
|
+
version = path
|
|
156
|
+
.resolve(rootDir, pkg.path)
|
|
157
|
+
.replaceAll("{MOPS_ENV}", process.env.MOPS_ENV || "local");
|
|
143
158
|
}
|
|
144
159
|
else if (pkg.repo) {
|
|
145
160
|
version = pkg.repo;
|
|
@@ -148,8 +163,9 @@ export async function resolvePackages({ conflicts = 'ignore' } = {}) {
|
|
|
148
163
|
version = pkg.version;
|
|
149
164
|
}
|
|
150
165
|
else {
|
|
151
|
-
return [name,
|
|
166
|
+
return [name, ""];
|
|
152
167
|
}
|
|
153
168
|
return [name, version];
|
|
154
|
-
})
|
|
169
|
+
})
|
|
170
|
+
.filter(([, version]) => version !== ""));
|
|
155
171
|
}
|
|
@@ -9,9 +9,9 @@ jobs:
|
|
|
9
9
|
runs-on: ubuntu-latest
|
|
10
10
|
|
|
11
11
|
steps:
|
|
12
|
-
- uses: actions/checkout@
|
|
13
|
-
- uses:
|
|
12
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
13
|
+
- uses: dfinity/setup-mops@v1
|
|
14
14
|
with:
|
|
15
15
|
# Make sure you set the MOPS_IDENTITY_PEM secret in your repository settings https://docs.github.com/en/actions/security-guides/using-secrets-in-github-actions#creating-secrets-for-a-repository
|
|
16
16
|
identity-pem: ${{ secrets.MOPS_IDENTITY_PEM }}
|
|
17
|
-
- run: mops publish
|
|
17
|
+
- run: mops publish
|
|
@@ -12,8 +12,8 @@ jobs:
|
|
|
12
12
|
runs-on: ubuntu-latest
|
|
13
13
|
|
|
14
14
|
steps:
|
|
15
|
-
- uses: actions/checkout@
|
|
16
|
-
- uses:
|
|
15
|
+
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0
|
|
16
|
+
- uses: dfinity/setup-mops@v1
|
|
17
17
|
with:
|
|
18
18
|
mops-version: 1
|
|
19
19
|
|
|
@@ -21,4 +21,4 @@ jobs:
|
|
|
21
21
|
run: mops install
|
|
22
22
|
|
|
23
23
|
- name: run tests
|
|
24
|
-
run: mops test
|
|
24
|
+
run: mops test
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
module {
|
|
2
|
-
|
|
3
|
-
|
|
2
|
+
// This comment will not be included in the documentation
|
|
3
|
+
// Use triple slash for documentation
|
|
4
4
|
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
};
|
|
5
|
+
/// Add two natural numbers
|
|
6
|
+
///
|
|
7
|
+
/// Example:
|
|
8
|
+
/// ```motoko
|
|
9
|
+
/// assert add(1, 2) == 3;
|
|
10
|
+
/// assert add(7, 3) == 10;
|
|
11
|
+
/// ```
|
|
12
|
+
public func add(x : Nat, y : Nat) : Nat {
|
|
13
|
+
return x + y;
|
|
14
|
+
};
|
|
15
|
+
};
|
package/dist/templates.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { describe, expect, test } from "@jest/globals";
|
|
2
|
+
import { execa } from "execa";
|
|
3
|
+
import path from "path";
|
|
4
|
+
const cli = async (args, { cwd } = {}) => {
|
|
5
|
+
return await execa("npm", ["run", "mops", "--", ...args], {
|
|
6
|
+
env: { MOPS_CWD: cwd },
|
|
7
|
+
stdio: "pipe",
|
|
8
|
+
reject: false,
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
const cliSnapshot = async (args, options, exitCode) => {
|
|
12
|
+
const result = await cli(args, options);
|
|
13
|
+
expect({
|
|
14
|
+
command: result.command,
|
|
15
|
+
exitCode: result.exitCode,
|
|
16
|
+
timedOut: result.timedOut,
|
|
17
|
+
stdio: Boolean(result.stdout || result.stderr),
|
|
18
|
+
}).toEqual({
|
|
19
|
+
command: result.command,
|
|
20
|
+
exitCode,
|
|
21
|
+
timedOut: false,
|
|
22
|
+
stdio: true,
|
|
23
|
+
});
|
|
24
|
+
expect({
|
|
25
|
+
exitCode: result.exitCode,
|
|
26
|
+
stdout: result.stdout,
|
|
27
|
+
stderr: result.stderr,
|
|
28
|
+
}).toMatchSnapshot();
|
|
29
|
+
return result;
|
|
30
|
+
};
|
|
31
|
+
describe("mops", () => {
|
|
32
|
+
test("version", async () => {
|
|
33
|
+
expect((await cli(["--version"])).stdout).toMatch(/CLI \d+\.\d+\.\d+/);
|
|
34
|
+
});
|
|
35
|
+
test("help", async () => {
|
|
36
|
+
expect((await cli(["--help"])).stdout).toMatch(/^Usage: mops/m);
|
|
37
|
+
});
|
|
38
|
+
test("build success", async () => {
|
|
39
|
+
const cwd = path.join(import.meta.dirname, "build/success");
|
|
40
|
+
await cliSnapshot(["build"], { cwd }, 0);
|
|
41
|
+
await cliSnapshot(["build", "foo"], { cwd }, 0);
|
|
42
|
+
await cliSnapshot(["build", "bar"], { cwd }, 0);
|
|
43
|
+
await cliSnapshot(["build", "foo", "bar"], { cwd }, 0);
|
|
44
|
+
});
|
|
45
|
+
test("build error", async () => {
|
|
46
|
+
const cwd = path.join(import.meta.dirname, "build/error");
|
|
47
|
+
await cliSnapshot(["build", "foo"], { cwd }, 0);
|
|
48
|
+
expect((await cliSnapshot(["build", "bar"], { cwd }, 1)).stderr).toMatch("Candid compatibility check failed for canister bar");
|
|
49
|
+
expect((await cliSnapshot(["build", "foo", "bar"], { cwd }, 1)).stderr).toMatch("Candid compatibility check failed for canister bar");
|
|
50
|
+
});
|
|
51
|
+
test("check-candid", async () => {
|
|
52
|
+
const cwd = path.join(import.meta.dirname, "check-candid");
|
|
53
|
+
await cliSnapshot(["check-candid", "a.did", "a.did"], { cwd }, 0);
|
|
54
|
+
await cliSnapshot(["check-candid", "b.did", "b.did"], { cwd }, 0);
|
|
55
|
+
await cliSnapshot(["check-candid", "c.did", "c.did"], { cwd }, 0);
|
|
56
|
+
await cliSnapshot(["check-candid", "a.did", "b.did"], { cwd }, 0);
|
|
57
|
+
await cliSnapshot(["check-candid", "b.did", "a.did"], { cwd }, 0);
|
|
58
|
+
await cliSnapshot(["check-candid", "a.did", "c.did"], { cwd }, 1);
|
|
59
|
+
await cliSnapshot(["check-candid", "c.did", "a.did"], { cwd }, 1);
|
|
60
|
+
await cliSnapshot(["check-candid", "b.did", "c.did"], { cwd }, 1);
|
|
61
|
+
await cliSnapshot(["check-candid", "c.did", "b.did"], { cwd }, 1);
|
|
62
|
+
});
|
|
63
|
+
});
|
package/dist/types.d.ts
CHANGED
|
@@ -16,9 +16,19 @@ export type Config = {
|
|
|
16
16
|
donation?: string;
|
|
17
17
|
};
|
|
18
18
|
dependencies?: Dependencies;
|
|
19
|
-
|
|
19
|
+
"dev-dependencies"?: Dependencies;
|
|
20
20
|
toolchain?: Toolchain;
|
|
21
21
|
requirements?: Requirements;
|
|
22
|
+
canisters?: Record<string, string | CanisterConfig>;
|
|
23
|
+
build?: {
|
|
24
|
+
outputDir?: string;
|
|
25
|
+
args?: string[];
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
export type CanisterConfig = {
|
|
29
|
+
main: string;
|
|
30
|
+
args?: string[];
|
|
31
|
+
candid?: string;
|
|
22
32
|
};
|
|
23
33
|
export type Dependencies = Record<string, Dependency>;
|
|
24
34
|
export type Dependency = {
|
|
@@ -30,10 +40,10 @@ export type Dependency = {
|
|
|
30
40
|
export type Toolchain = {
|
|
31
41
|
moc?: string;
|
|
32
42
|
wasmtime?: string;
|
|
33
|
-
|
|
43
|
+
"pocket-ic"?: string;
|
|
34
44
|
};
|
|
35
|
-
export type Tool =
|
|
45
|
+
export type Tool = "moc" | "wasmtime" | "pocket-ic";
|
|
36
46
|
export type Requirements = {
|
|
37
47
|
moc?: string;
|
|
38
48
|
};
|
|
39
|
-
export type TestMode =
|
|
49
|
+
export type TestMode = "interpreter" | "wasi" | "replica";
|
package/dist/vessel.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export type VesselConfig = {
|
|
2
2
|
dependencies: VesselDependencies;
|
|
3
|
-
|
|
3
|
+
"dev-dependencies": VesselDependencies;
|
|
4
4
|
};
|
|
5
5
|
export type VesselDependencies = Array<{
|
|
6
6
|
name: string;
|
|
@@ -13,7 +13,7 @@ export declare const readVesselConfig: (dir: string, { cache, silent }?: {
|
|
|
13
13
|
silent?: boolean | undefined;
|
|
14
14
|
}) => Promise<VesselConfig | null>;
|
|
15
15
|
export declare const downloadFromGithub: (repo: string, dest: string, onProgress: any) => Promise<unknown>;
|
|
16
|
-
export declare const installFromGithub: (name: string, repo: string, { verbose, dep, silent, ignoreTransitive }?: {
|
|
16
|
+
export declare const installFromGithub: (name: string, repo: string, { verbose, dep, silent, ignoreTransitive, }?: {
|
|
17
17
|
verbose?: boolean | undefined;
|
|
18
18
|
dep?: boolean | undefined;
|
|
19
19
|
silent?: boolean | undefined;
|
package/dist/vessel.js
CHANGED
|
@@ -1,24 +1,28 @@
|
|
|
1
|
-
import process from
|
|
2
|
-
import { existsSync, mkdirSync, createWriteStream, readFileSync, writeFileSync } from
|
|
3
|
-
import path from
|
|
4
|
-
import { pipeline } from
|
|
5
|
-
import { deleteSync } from
|
|
6
|
-
import { execaCommand } from
|
|
7
|
-
import chalk from
|
|
8
|
-
import { createLogUpdate } from
|
|
9
|
-
import got from
|
|
10
|
-
import decompress from
|
|
11
|
-
import { parseGithubURL, progressBar } from
|
|
12
|
-
import { getDepCacheDir, getGithubDepCacheName, isDepCached } from
|
|
1
|
+
import process from "node:process";
|
|
2
|
+
import { existsSync, mkdirSync, createWriteStream, readFileSync, writeFileSync, } from "node:fs";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
import { pipeline } from "node:stream";
|
|
5
|
+
import { deleteSync } from "del";
|
|
6
|
+
import { execaCommand } from "execa";
|
|
7
|
+
import chalk from "chalk";
|
|
8
|
+
import { createLogUpdate } from "log-update";
|
|
9
|
+
import got from "got";
|
|
10
|
+
import decompress from "decompress";
|
|
11
|
+
import { parseGithubURL, progressBar } from "./mops.js";
|
|
12
|
+
import { getDepCacheDir, getGithubDepCacheName, isDepCached } from "./cache.js";
|
|
13
13
|
const dhallFileToJson = async (filePath, silent) => {
|
|
14
14
|
if (existsSync(filePath)) {
|
|
15
15
|
let cwd = new URL(path.dirname(import.meta.url)).pathname;
|
|
16
16
|
let res;
|
|
17
17
|
try {
|
|
18
|
-
res = await execaCommand(`dhall-to-json --file ${filePath}`, {
|
|
18
|
+
res = await execaCommand(`dhall-to-json --file ${filePath}`, {
|
|
19
|
+
preferLocal: true,
|
|
20
|
+
cwd,
|
|
21
|
+
});
|
|
19
22
|
}
|
|
20
23
|
catch (err) {
|
|
21
|
-
silent ||
|
|
24
|
+
silent ||
|
|
25
|
+
console.error("dhall-to-json error:", err.message?.split("Message:")[0]);
|
|
22
26
|
return null;
|
|
23
27
|
}
|
|
24
28
|
if (res.exitCode === 0) {
|
|
@@ -31,14 +35,14 @@ const dhallFileToJson = async (filePath, silent) => {
|
|
|
31
35
|
return null;
|
|
32
36
|
};
|
|
33
37
|
export const readVesselConfig = async (dir, { cache = true, silent = false } = {}) => {
|
|
34
|
-
const cachedFile = (dir || process.cwd()) +
|
|
38
|
+
const cachedFile = (dir || process.cwd()) + "/vessel.json";
|
|
35
39
|
if (existsSync(cachedFile)) {
|
|
36
40
|
let cachedConfig = readFileSync(cachedFile).toString();
|
|
37
41
|
return JSON.parse(cachedConfig);
|
|
38
42
|
}
|
|
39
43
|
const [vessel, packageSetArray] = await Promise.all([
|
|
40
|
-
dhallFileToJson((dir || process.cwd()) +
|
|
41
|
-
dhallFileToJson((dir || process.cwd()) +
|
|
44
|
+
dhallFileToJson((dir || process.cwd()) + "/vessel.dhall", silent),
|
|
45
|
+
dhallFileToJson((dir || process.cwd()) + "/package-set.dhall", silent),
|
|
42
46
|
]);
|
|
43
47
|
if (!vessel || !packageSetArray) {
|
|
44
48
|
return null;
|
|
@@ -50,12 +54,12 @@ export const readVesselConfig = async (dir, { cache = true, silent = false } = {
|
|
|
50
54
|
}
|
|
51
55
|
let config = {
|
|
52
56
|
dependencies: vessel.dependencies.map((name) => {
|
|
53
|
-
return { name, repo: repos[name], version:
|
|
57
|
+
return { name, repo: repos[name], version: "" };
|
|
54
58
|
}),
|
|
55
|
-
|
|
59
|
+
"dev-dependencies": [],
|
|
56
60
|
};
|
|
57
61
|
if (cache === true) {
|
|
58
|
-
writeFileSync(cachedFile, JSON.stringify(config),
|
|
62
|
+
writeFileSync(cachedFile, JSON.stringify(config), "utf-8");
|
|
59
63
|
}
|
|
60
64
|
return config;
|
|
61
65
|
};
|
|
@@ -64,25 +68,25 @@ export const downloadFromGithub = async (repo, dest, onProgress) => {
|
|
|
64
68
|
const zipFile = `https://github.com/${org}/${gitName}/archive/${commitHash || branch}.zip`;
|
|
65
69
|
const readStream = got.stream(zipFile);
|
|
66
70
|
const promise = new Promise((resolve, reject) => {
|
|
67
|
-
readStream.on(
|
|
71
|
+
readStream.on("error", (err) => {
|
|
68
72
|
console.error(chalk.red(`Error: failed to download from GitHub: ${zipFile}`));
|
|
69
73
|
console.error(err.message);
|
|
70
74
|
reject(err);
|
|
71
75
|
});
|
|
72
|
-
readStream.on(
|
|
73
|
-
onProgress?.(transferred, total || 2 *
|
|
76
|
+
readStream.on("downloadProgress", ({ transferred, total }) => {
|
|
77
|
+
onProgress?.(transferred, total || 2 * 1024 ** 2);
|
|
74
78
|
});
|
|
75
|
-
readStream.on(
|
|
79
|
+
readStream.on("response", (response) => {
|
|
76
80
|
if (response.headers.age > 3600) {
|
|
77
|
-
console.error(chalk.red(
|
|
81
|
+
console.error(chalk.red("Error: ") + "Failure - response too old");
|
|
78
82
|
readStream.destroy(); // Destroy the stream to prevent hanging resources.
|
|
79
83
|
reject();
|
|
80
84
|
return;
|
|
81
85
|
}
|
|
82
86
|
// Prevent `onError` being called twice.
|
|
83
|
-
readStream.off(
|
|
84
|
-
const tmpDir = path.resolve(process.cwd(),
|
|
85
|
-
const tmpFile = path.resolve(tmpDir, `${gitName}@${(commitHash || branch).replaceAll(
|
|
87
|
+
readStream.off("error", reject);
|
|
88
|
+
const tmpDir = path.resolve(process.cwd(), ".mops/_tmp/");
|
|
89
|
+
const tmpFile = path.resolve(tmpDir, `${gitName}@${(commitHash || branch).replaceAll("/", "___")}.zip`);
|
|
86
90
|
try {
|
|
87
91
|
mkdirSync(tmpDir, { recursive: true });
|
|
88
92
|
pipeline(readStream, createWriteStream(tmpFile), (err) => {
|
|
@@ -95,13 +99,15 @@ export const downloadFromGithub = async (repo, dest, onProgress) => {
|
|
|
95
99
|
extract: true,
|
|
96
100
|
strip: 1,
|
|
97
101
|
headers: {
|
|
98
|
-
accept:
|
|
102
|
+
accept: "application/zip",
|
|
99
103
|
},
|
|
100
104
|
};
|
|
101
|
-
decompress(tmpFile, dest, options)
|
|
105
|
+
decompress(tmpFile, dest, options)
|
|
106
|
+
.then((unzippedFiles) => {
|
|
102
107
|
deleteSync([tmpDir]);
|
|
103
108
|
resolve(unzippedFiles);
|
|
104
|
-
})
|
|
109
|
+
})
|
|
110
|
+
.catch((err) => {
|
|
105
111
|
deleteSync([tmpDir]);
|
|
106
112
|
reject(err);
|
|
107
113
|
});
|
|
@@ -116,16 +122,17 @@ export const downloadFromGithub = async (repo, dest, onProgress) => {
|
|
|
116
122
|
});
|
|
117
123
|
return promise;
|
|
118
124
|
};
|
|
119
|
-
export const installFromGithub = async (name, repo, { verbose = false, dep = false, silent = false, ignoreTransitive = false } = {}) => {
|
|
125
|
+
export const installFromGithub = async (name, repo, { verbose = false, dep = false, silent = false, ignoreTransitive = false, } = {}) => {
|
|
120
126
|
let cacheName = getGithubDepCacheName(name, repo);
|
|
121
127
|
let cacheDir = getDepCacheDir(cacheName);
|
|
122
128
|
let logUpdate = createLogUpdate(process.stdout, { showCursor: true });
|
|
123
129
|
if (isDepCached(cacheName)) {
|
|
124
|
-
silent || logUpdate(`${dep ?
|
|
130
|
+
silent || logUpdate(`${dep ? "Dependency" : "Installing"} ${repo} (cache)`);
|
|
125
131
|
}
|
|
126
132
|
else {
|
|
127
133
|
let progress = (step, total) => {
|
|
128
|
-
silent ||
|
|
134
|
+
silent ||
|
|
135
|
+
logUpdate(`${dep ? "Dependency" : "Installing"} ${repo} ${progressBar(step, total)}`);
|
|
129
136
|
};
|
|
130
137
|
progress(0, 1024 * 500);
|
|
131
138
|
mkdirSync(cacheDir, { recursive: true });
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "wasm",
|
|
3
|
+
"type": "module",
|
|
4
|
+
"collaborators": [
|
|
5
|
+
"Ryan Vandersmith <ryan.vandersmith@dfinity.org>"
|
|
6
|
+
],
|
|
7
|
+
"version": "0.1.0",
|
|
8
|
+
"files": [
|
|
9
|
+
"wasm_bg.wasm",
|
|
10
|
+
"wasm.js",
|
|
11
|
+
"wasm_bg.js",
|
|
12
|
+
"wasm.d.ts"
|
|
13
|
+
],
|
|
14
|
+
"main": "wasm.js",
|
|
15
|
+
"types": "wasm.d.ts",
|
|
16
|
+
"sideEffects": [
|
|
17
|
+
"./wasm.js",
|
|
18
|
+
"./snippets/*"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
let wasm;
|
|
2
|
+
export function __wbg_set_wasm(val) {
|
|
3
|
+
wasm = val;
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
let WASM_VECTOR_LEN = 0;
|
|
8
|
+
|
|
9
|
+
let cachedUint8ArrayMemory0 = null;
|
|
10
|
+
|
|
11
|
+
function getUint8ArrayMemory0() {
|
|
12
|
+
if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
|
|
13
|
+
cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
|
|
14
|
+
}
|
|
15
|
+
return cachedUint8ArrayMemory0;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const cachedTextEncoder = new TextEncoder();
|
|
19
|
+
|
|
20
|
+
if (!('encodeInto' in cachedTextEncoder)) {
|
|
21
|
+
cachedTextEncoder.encodeInto = function (arg, view) {
|
|
22
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
23
|
+
view.set(buf);
|
|
24
|
+
return {
|
|
25
|
+
read: arg.length,
|
|
26
|
+
written: buf.length
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
function passStringToWasm0(arg, malloc, realloc) {
|
|
32
|
+
|
|
33
|
+
if (realloc === undefined) {
|
|
34
|
+
const buf = cachedTextEncoder.encode(arg);
|
|
35
|
+
const ptr = malloc(buf.length, 1) >>> 0;
|
|
36
|
+
getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
|
|
37
|
+
WASM_VECTOR_LEN = buf.length;
|
|
38
|
+
return ptr;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
let len = arg.length;
|
|
42
|
+
let ptr = malloc(len, 1) >>> 0;
|
|
43
|
+
|
|
44
|
+
const mem = getUint8ArrayMemory0();
|
|
45
|
+
|
|
46
|
+
let offset = 0;
|
|
47
|
+
|
|
48
|
+
for (; offset < len; offset++) {
|
|
49
|
+
const code = arg.charCodeAt(offset);
|
|
50
|
+
if (code > 0x7F) break;
|
|
51
|
+
mem[ptr + offset] = code;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (offset !== len) {
|
|
55
|
+
if (offset !== 0) {
|
|
56
|
+
arg = arg.slice(offset);
|
|
57
|
+
}
|
|
58
|
+
ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
|
|
59
|
+
const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
|
|
60
|
+
const ret = cachedTextEncoder.encodeInto(arg, view);
|
|
61
|
+
|
|
62
|
+
offset += ret.written;
|
|
63
|
+
ptr = realloc(ptr, len, offset, 1) >>> 0;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
WASM_VECTOR_LEN = offset;
|
|
67
|
+
return ptr;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* @param {string} new_interface
|
|
71
|
+
* @param {string} original_interface
|
|
72
|
+
* @returns {boolean}
|
|
73
|
+
*/
|
|
74
|
+
export function is_candid_compatible(new_interface, original_interface) {
|
|
75
|
+
const ptr0 = passStringToWasm0(new_interface, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
76
|
+
const len0 = WASM_VECTOR_LEN;
|
|
77
|
+
const ptr1 = passStringToWasm0(original_interface, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
|
|
78
|
+
const len1 = WASM_VECTOR_LEN;
|
|
79
|
+
const ret = wasm.is_candid_compatible(ptr0, len0, ptr1, len1);
|
|
80
|
+
return ret !== 0;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export function __wbindgen_init_externref_table() {
|
|
84
|
+
const table = wasm.__wbindgen_externrefs;
|
|
85
|
+
const offset = table.grow(4);
|
|
86
|
+
table.set(0, undefined);
|
|
87
|
+
table.set(offset + 0, undefined);
|
|
88
|
+
table.set(offset + 1, null);
|
|
89
|
+
table.set(offset + 2, true);
|
|
90
|
+
table.set(offset + 3, false);
|
|
91
|
+
;
|
|
92
|
+
};
|
|
93
|
+
|
|
Binary file
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
/* tslint:disable */
|
|
2
|
+
/* eslint-disable */
|
|
3
|
+
export const memory: WebAssembly.Memory;
|
|
4
|
+
export const is_candid_compatible: (a: number, b: number, c: number, d: number) => number;
|
|
5
|
+
export const __wbindgen_externrefs: WebAssembly.Table;
|
|
6
|
+
export const __wbindgen_malloc: (a: number, b: number) => number;
|
|
7
|
+
export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
|
|
8
|
+
export const __wbindgen_start: () => void;
|