ic-mops 1.12.0 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (322) hide show
  1. package/.DS_Store +0 -0
  2. package/.eslintrc.json +7 -7
  3. package/CHANGELOG.md +6 -0
  4. package/api/actors.ts +41 -37
  5. package/api/downloadPackageFiles.ts +75 -61
  6. package/api/getHighestVersion.ts +5 -5
  7. package/api/index.ts +4 -4
  8. package/api/network.ts +19 -21
  9. package/api/resolveVersion.ts +14 -11
  10. package/bin/mops.js +1 -1
  11. package/bundle/bench/bench-canister.mo +109 -101
  12. package/bundle/bench/user-bench.mo +6 -6
  13. package/bundle/bin/mops.js +1 -1
  14. package/bundle/cli.js +797 -792
  15. package/bundle/cli.tgz +0 -0
  16. package/bundle/package.json +6 -5
  17. package/bundle/templates/mops-publish.yml +3 -3
  18. package/bundle/templates/mops-test.yml +3 -3
  19. package/bundle/templates/src/lib.mo +13 -13
  20. package/bundle/templates/test/lib.test.mo +2 -2
  21. package/bundle-package-json.ts +8 -8
  22. package/cache.ts +80 -65
  23. package/check-requirements.ts +49 -45
  24. package/cli.ts +577 -376
  25. package/commands/add.ts +142 -129
  26. package/commands/available-updates.ts +55 -41
  27. package/commands/bench/bench-canister.mo +114 -108
  28. package/commands/bench/user-bench.mo +6 -6
  29. package/commands/bench-replica.ts +146 -118
  30. package/commands/bench.ts +563 -497
  31. package/commands/build.ts +177 -0
  32. package/commands/bump.ts +68 -57
  33. package/commands/check-candid.ts +24 -0
  34. package/commands/docs-coverage.ts +124 -102
  35. package/commands/docs.ts +118 -108
  36. package/commands/format.ts +171 -155
  37. package/commands/init.ts +301 -275
  38. package/commands/install/install-all.ts +75 -62
  39. package/commands/install/install-dep.ts +43 -28
  40. package/commands/install/install-deps.ts +23 -15
  41. package/commands/install/install-local-dep.ts +42 -34
  42. package/commands/install/install-mops-dep.ts +154 -123
  43. package/commands/install/sync-local-cache.ts +39 -35
  44. package/commands/maintainer.ts +109 -99
  45. package/commands/outdated.ts +30 -24
  46. package/commands/owner.ts +107 -99
  47. package/commands/publish.ts +534 -443
  48. package/commands/remove.ts +119 -89
  49. package/commands/replica.ts +391 -316
  50. package/commands/search.ts +42 -36
  51. package/commands/self.ts +63 -56
  52. package/commands/sources.ts +66 -49
  53. package/commands/sync.ts +92 -75
  54. package/commands/template.ts +145 -102
  55. package/commands/test/mmf1.ts +146 -119
  56. package/commands/test/reporters/compact-reporter.ts +87 -84
  57. package/commands/test/reporters/files-reporter.ts +56 -51
  58. package/commands/test/reporters/reporter.ts +12 -6
  59. package/commands/test/reporters/silent-reporter.ts +58 -59
  60. package/commands/test/reporters/verbose-reporter.ts +66 -54
  61. package/commands/test/test.ts +498 -401
  62. package/commands/test/utils.ts +72 -67
  63. package/commands/toolchain/index.ts +363 -322
  64. package/commands/toolchain/moc.ts +78 -50
  65. package/commands/toolchain/pocket-ic.ts +41 -34
  66. package/commands/toolchain/toolchain-utils.ts +92 -72
  67. package/commands/toolchain/wasmtime.ts +37 -34
  68. package/commands/update.ts +82 -64
  69. package/commands/user.ts +90 -81
  70. package/commands/watch/deployer.ts +188 -152
  71. package/commands/watch/error-checker.ts +90 -80
  72. package/commands/watch/formatter.ts +72 -60
  73. package/commands/watch/generator.ts +116 -96
  74. package/commands/watch/globMoFiles.ts +13 -13
  75. package/commands/watch/parseDfxJson.ts +63 -57
  76. package/commands/watch/tester.ts +83 -65
  77. package/commands/watch/warning-checker.ts +149 -136
  78. package/commands/watch/watch.ts +123 -95
  79. package/dist/api/actors.d.ts +4 -4
  80. package/dist/api/actors.js +8 -8
  81. package/dist/api/downloadPackageFiles.d.ts +2 -2
  82. package/dist/api/downloadPackageFiles.js +10 -10
  83. package/dist/api/getHighestVersion.js +1 -1
  84. package/dist/api/index.d.ts +4 -4
  85. package/dist/api/index.js +4 -4
  86. package/dist/api/network.js +9 -9
  87. package/dist/api/resolveVersion.js +3 -3
  88. package/dist/bin/mops.js +1 -1
  89. package/dist/bundle-package-json.js +8 -8
  90. package/dist/cache.js +22 -17
  91. package/dist/check-requirements.js +11 -11
  92. package/dist/cli.js +283 -186
  93. package/dist/commands/add.d.ts +1 -1
  94. package/dist/commands/add.js +40 -37
  95. package/dist/commands/available-updates.d.ts +1 -1
  96. package/dist/commands/available-updates.js +18 -12
  97. package/dist/commands/bench/bench-canister.mo +114 -108
  98. package/dist/commands/bench/user-bench.mo +6 -6
  99. package/dist/commands/bench-replica.d.ts +4 -4
  100. package/dist/commands/bench-replica.js +45 -34
  101. package/dist/commands/bench.d.ts +5 -5
  102. package/dist/commands/bench.js +134 -118
  103. package/dist/commands/build.d.ts +7 -0
  104. package/dist/commands/build.js +121 -0
  105. package/dist/commands/bump.js +27 -18
  106. package/dist/commands/check-candid.d.ts +4 -0
  107. package/dist/commands/check-candid.js +15 -0
  108. package/dist/commands/docs-coverage.d.ts +1 -1
  109. package/dist/commands/docs-coverage.js +45 -31
  110. package/dist/commands/docs.d.ts +1 -1
  111. package/dist/commands/docs.js +39 -38
  112. package/dist/commands/format.js +31 -27
  113. package/dist/commands/init.js +102 -92
  114. package/dist/commands/install/install-all.d.ts +2 -2
  115. package/dist/commands/install/install-all.js +23 -21
  116. package/dist/commands/install/install-dep.d.ts +1 -1
  117. package/dist/commands/install/install-dep.js +21 -8
  118. package/dist/commands/install/install-deps.d.ts +1 -1
  119. package/dist/commands/install/install-deps.js +1 -1
  120. package/dist/commands/install/install-local-dep.js +11 -9
  121. package/dist/commands/install/install-mops-dep.d.ts +1 -1
  122. package/dist/commands/install/install-mops-dep.js +32 -27
  123. package/dist/commands/install/sync-local-cache.js +10 -10
  124. package/dist/commands/maintainer.js +21 -21
  125. package/dist/commands/outdated.js +12 -8
  126. package/dist/commands/owner.js +21 -21
  127. package/dist/commands/publish.js +148 -128
  128. package/dist/commands/remove.d.ts +1 -1
  129. package/dist/commands/remove.js +42 -30
  130. package/dist/commands/replica.d.ts +7 -7
  131. package/dist/commands/replica.js +85 -57
  132. package/dist/commands/search.js +15 -13
  133. package/dist/commands/self.js +31 -28
  134. package/dist/commands/sources.d.ts +5 -1
  135. package/dist/commands/sources.js +23 -17
  136. package/dist/commands/sync.d.ts +1 -1
  137. package/dist/commands/sync.js +38 -25
  138. package/dist/commands/template.js +66 -56
  139. package/dist/commands/test/mmf1.d.ts +3 -3
  140. package/dist/commands/test/mmf1.js +33 -31
  141. package/dist/commands/test/reporters/compact-reporter.d.ts +3 -3
  142. package/dist/commands/test/reporters/compact-reporter.js +19 -15
  143. package/dist/commands/test/reporters/files-reporter.d.ts +3 -3
  144. package/dist/commands/test/reporters/files-reporter.js +18 -14
  145. package/dist/commands/test/reporters/reporter.d.ts +2 -2
  146. package/dist/commands/test/reporters/silent-reporter.d.ts +3 -3
  147. package/dist/commands/test/reporters/silent-reporter.js +4 -4
  148. package/dist/commands/test/reporters/verbose-reporter.d.ts +3 -3
  149. package/dist/commands/test/reporters/verbose-reporter.js +17 -13
  150. package/dist/commands/test/test.d.ts +4 -4
  151. package/dist/commands/test/test.js +134 -112
  152. package/dist/commands/test/utils.d.ts +3 -3
  153. package/dist/commands/test/utils.js +17 -17
  154. package/dist/commands/toolchain/index.d.ts +1 -1
  155. package/dist/commands/toolchain/index.js +81 -69
  156. package/dist/commands/toolchain/moc.d.ts +1 -1
  157. package/dist/commands/toolchain/moc.js +48 -24
  158. package/dist/commands/toolchain/pocket-ic.js +12 -12
  159. package/dist/commands/toolchain/toolchain-utils.d.ts +2 -0
  160. package/dist/commands/toolchain/toolchain-utils.js +32 -23
  161. package/dist/commands/toolchain/wasmtime.js +11 -11
  162. package/dist/commands/update.d.ts +1 -1
  163. package/dist/commands/update.js +18 -14
  164. package/dist/commands/user.js +31 -28
  165. package/dist/commands/watch/deployer.d.ts +4 -4
  166. package/dist/commands/watch/deployer.js +45 -36
  167. package/dist/commands/watch/error-checker.d.ts +2 -2
  168. package/dist/commands/watch/error-checker.js +27 -27
  169. package/dist/commands/watch/formatter.d.ts +4 -4
  170. package/dist/commands/watch/formatter.js +17 -17
  171. package/dist/commands/watch/generator.d.ts +3 -3
  172. package/dist/commands/watch/generator.js +28 -23
  173. package/dist/commands/watch/globMoFiles.js +8 -8
  174. package/dist/commands/watch/parseDfxJson.d.ts +2 -2
  175. package/dist/commands/watch/parseDfxJson.js +9 -9
  176. package/dist/commands/watch/tester.d.ts +4 -4
  177. package/dist/commands/watch/tester.js +23 -21
  178. package/dist/commands/watch/warning-checker.d.ts +3 -3
  179. package/dist/commands/watch/warning-checker.js +36 -36
  180. package/dist/commands/watch/watch.js +45 -32
  181. package/dist/environments/nodejs/cli.d.ts +1 -0
  182. package/dist/environments/nodejs/cli.js +4 -0
  183. package/dist/environments/web/cli.d.ts +1 -0
  184. package/dist/environments/web/cli.js +4 -0
  185. package/dist/error.d.ts +1 -0
  186. package/dist/error.js +5 -0
  187. package/dist/fix-dist.js +5 -5
  188. package/dist/helpers/find-changelog-entry.js +8 -5
  189. package/dist/helpers/get-dep-name.js +2 -2
  190. package/dist/helpers/get-dfx-version.js +4 -4
  191. package/dist/helpers/get-moc-path.js +8 -7
  192. package/dist/helpers/get-moc-version.js +10 -7
  193. package/dist/helpers/get-package-id.js +2 -2
  194. package/dist/helpers/is-candid-compatible.d.ts +1 -0
  195. package/dist/helpers/is-candid-compatible.js +20 -0
  196. package/dist/integrity.d.ts +1 -1
  197. package/dist/integrity.js +47 -38
  198. package/dist/jest.config.d.ts +11 -0
  199. package/dist/jest.config.js +14 -0
  200. package/dist/mops.d.ts +6 -6
  201. package/dist/mops.js +87 -80
  202. package/dist/notify-installs.js +4 -4
  203. package/dist/package.json +9 -5
  204. package/dist/pem.d.ts +3 -3
  205. package/dist/pem.js +20 -12
  206. package/dist/release-cli.js +20 -20
  207. package/dist/resolve-packages.d.ts +1 -1
  208. package/dist/resolve-packages.js +52 -36
  209. package/dist/templates/mops-publish.yml +3 -3
  210. package/dist/templates/mops-test.yml +3 -3
  211. package/dist/templates/src/lib.mo +13 -13
  212. package/dist/templates/test/lib.test.mo +2 -2
  213. package/dist/templates.js +1 -1
  214. package/dist/tests/cli.test.d.ts +1 -0
  215. package/dist/tests/cli.test.js +63 -0
  216. package/dist/types.d.ts +14 -4
  217. package/dist/vessel.d.ts +2 -2
  218. package/dist/vessel.js +41 -34
  219. package/dist/wasm/pkg/bundler/package.json +20 -0
  220. package/dist/wasm/pkg/bundler/wasm.d.ts +3 -0
  221. package/dist/wasm/pkg/bundler/wasm.js +5 -0
  222. package/dist/wasm/pkg/bundler/wasm_bg.js +93 -0
  223. package/dist/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  224. package/dist/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  225. package/dist/wasm/pkg/nodejs/package.json +14 -0
  226. package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
  227. package/dist/wasm/pkg/nodejs/wasm.js +98 -0
  228. package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  229. package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  230. package/dist/wasm/pkg/web/package.json +18 -0
  231. package/dist/wasm/pkg/web/wasm.d.ts +35 -0
  232. package/dist/wasm/pkg/web/wasm.js +191 -0
  233. package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
  234. package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  235. package/dist/wasm.d.ts +5 -0
  236. package/dist/wasm.js +10 -0
  237. package/environments/nodejs/cli.ts +6 -0
  238. package/environments/web/cli.ts +6 -0
  239. package/error.ts +6 -0
  240. package/fix-dist.ts +5 -5
  241. package/global.d.ts +3 -3
  242. package/helpers/find-changelog-entry.ts +26 -23
  243. package/helpers/get-dep-name.ts +5 -5
  244. package/helpers/get-dfx-version.ts +8 -9
  245. package/helpers/get-moc-path.ts +25 -26
  246. package/helpers/get-moc-version.ts +21 -19
  247. package/helpers/get-package-id.ts +4 -4
  248. package/helpers/is-candid-compatible.ts +22 -0
  249. package/integrity.ts +270 -236
  250. package/jest.config.js +14 -0
  251. package/mops.ts +238 -215
  252. package/notify-installs.ts +16 -17
  253. package/package.json +19 -10
  254. package/parallel.ts +28 -24
  255. package/pem.ts +55 -47
  256. package/release-cli.ts +73 -39
  257. package/resolve-packages.ts +231 -189
  258. package/templates/mops-publish.yml +3 -3
  259. package/templates/mops-test.yml +3 -3
  260. package/templates/src/lib.mo +13 -13
  261. package/templates/test/lib.test.mo +2 -2
  262. package/templates.ts +4 -4
  263. package/tests/__snapshots__/cli.test.ts.snap +202 -0
  264. package/tests/build/error/candid/bar.did +3 -0
  265. package/tests/build/error/dfx.json +12 -0
  266. package/tests/build/error/mops.toml +9 -0
  267. package/tests/build/error/src/Bar.mo +5 -0
  268. package/tests/build/error/src/Foo.mo +5 -0
  269. package/tests/build/success/.dfx/local/canister_ids.json +17 -0
  270. package/tests/build/success/.dfx/local/canisters/bar/bar.did +3 -0
  271. package/tests/build/success/.dfx/local/canisters/bar/bar.most +4 -0
  272. package/tests/build/success/.dfx/local/canisters/bar/bar.wasm +0 -0
  273. package/tests/build/success/.dfx/local/canisters/bar/constructor.did +3 -0
  274. package/tests/build/success/.dfx/local/canisters/bar/index.js +42 -0
  275. package/tests/build/success/.dfx/local/canisters/bar/init_args.txt +1 -0
  276. package/tests/build/success/.dfx/local/canisters/bar/service.did +3 -0
  277. package/tests/build/success/.dfx/local/canisters/bar/service.did.d.ts +7 -0
  278. package/tests/build/success/.dfx/local/canisters/bar/service.did.js +4 -0
  279. package/tests/build/success/.dfx/local/canisters/foo/constructor.did +3 -0
  280. package/tests/build/success/.dfx/local/canisters/foo/foo.did +3 -0
  281. package/tests/build/success/.dfx/local/canisters/foo/foo.most +4 -0
  282. package/tests/build/success/.dfx/local/canisters/foo/foo.wasm +0 -0
  283. package/tests/build/success/.dfx/local/canisters/foo/index.js +42 -0
  284. package/tests/build/success/.dfx/local/canisters/foo/init_args.txt +1 -0
  285. package/tests/build/success/.dfx/local/canisters/foo/service.did +3 -0
  286. package/tests/build/success/.dfx/local/canisters/foo/service.did.d.ts +7 -0
  287. package/tests/build/success/.dfx/local/canisters/foo/service.did.js +4 -0
  288. package/tests/build/success/.dfx/local/lsp/ucwa4-rx777-77774-qaada-cai.did +3 -0
  289. package/tests/build/success/.dfx/local/lsp/ulvla-h7777-77774-qaacq-cai.did +3 -0
  290. package/tests/build/success/.dfx/local/network-id +4 -0
  291. package/tests/build/success/candid/bar.did +3 -0
  292. package/tests/build/success/dfx.json +12 -0
  293. package/tests/build/success/mops.toml +9 -0
  294. package/tests/build/success/src/Bar.mo +5 -0
  295. package/tests/build/success/src/Foo.mo +5 -0
  296. package/tests/check-candid/a.did +3 -0
  297. package/tests/check-candid/b.did +5 -0
  298. package/tests/check-candid/c.did +3 -0
  299. package/tests/cli.test.ts +82 -0
  300. package/tsconfig.json +26 -19
  301. package/types.ts +41 -31
  302. package/vessel.ts +219 -187
  303. package/wasm/Cargo.lock +1475 -0
  304. package/wasm/Cargo.toml +28 -0
  305. package/wasm/pkg/bundler/package.json +20 -0
  306. package/wasm/pkg/bundler/wasm.d.ts +3 -0
  307. package/wasm/pkg/bundler/wasm.js +5 -0
  308. package/wasm/pkg/bundler/wasm_bg.js +93 -0
  309. package/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  310. package/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  311. package/wasm/pkg/nodejs/package.json +14 -0
  312. package/wasm/pkg/nodejs/wasm.d.ts +3 -0
  313. package/wasm/pkg/nodejs/wasm.js +98 -0
  314. package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  315. package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  316. package/wasm/pkg/web/package.json +18 -0
  317. package/wasm/pkg/web/wasm.d.ts +35 -0
  318. package/wasm/pkg/web/wasm.js +191 -0
  319. package/wasm/pkg/web/wasm_bg.wasm +0 -0
  320. package/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  321. package/wasm/src/lib.rs +17 -0
  322. package/wasm.ts +16 -0
@@ -1,13 +1,13 @@
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' } = {}) {
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 = '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));
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 = [...allDeps, ...Object.values(config['dev-dependencies'] || {})];
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
- || !packages[name]
61
- || !packages[name]?.isRoot
62
- && (repo && packages[name]?.repo && compareGitVersions(packages[name]?.repo || '', repo) === -1
63
- || compareVersions(packages[name]?.version, version) === -1)) {
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 = await readVesselConfig(getDepCacheDir(cacheDir), { silent: true }) || {};
84
+ nestedConfig =
85
+ (await readVesselConfig(getDepCacheDir(cacheDir), {
86
+ silent: true,
87
+ })) || {};
80
88
  }
81
89
  else if (pkgDetails.path) {
82
- localNestedDir = path.resolve(configDir, pkgDetails.path).replaceAll('{MOPS_ENV}', process.env.MOPS_ENV || 'local');
83
- let mopsToml = path.join(localNestedDir, 'mops.toml');
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) + '/mops.toml');
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 ? '<root>' : '';
100
- if ('package' in config) {
101
- parentPkgId = getPackageId(config.package?.name || '', config.package?.version || '');
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 !== 'ignore') {
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('.')[0]));
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('') + chalk.redBright(conflicts === 'error' ? 'Error!' : 'Warning!'), `Conflicting versions of dependency "${dep}"`);
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(' ') + `${dep} ${chalk.bold.red(version.split('.')[0])}.${version.split('.').slice(1).join('.')} is dependency of ${chalk.bold(dependencyOf)}`);
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 === 'error' && hasConflicts) {
148
+ if (conflicts === "error" && hasConflicts) {
137
149
  process.exit(1);
138
150
  }
139
- return Object.fromEntries(Object.entries(packages).map(([name, pkg]) => {
151
+ return Object.fromEntries(Object.entries(packages)
152
+ .map(([name, pkg]) => {
140
153
  let version;
141
154
  if (pkg.path) {
142
- version = path.resolve(rootDir, pkg.path).replaceAll('{MOPS_ENV}', process.env.MOPS_ENV || 'local');
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
- }).filter(([, version]) => version !== ''));
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@v4
13
- - uses: ZenVoich/setup-mops@v1
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@v4
16
- - uses: ZenVoich/setup-mops@v1
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
- // This comment will not be included in the documentation
3
- // Use triple slash for documentation
2
+ // This comment will not be included in the documentation
3
+ // Use triple slash for documentation
4
4
 
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
- };
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
+ };
@@ -1,4 +1,4 @@
1
- import {add} "../src";
1
+ import { add } "../src";
2
2
 
3
3
  assert add(1, 2) == 3;
4
- assert add(3, 22) == 25;
4
+ assert add(3, 22) == 25;
package/dist/templates.js CHANGED
@@ -1,4 +1,4 @@
1
- import fs from 'node:fs';
1
+ import fs from "node:fs";
2
2
  export function copyTemplateFileSync(file, dest) {
3
3
  fs.copyFileSync(new URL(`./templates/${file}`, import.meta.url), dest);
4
4
  }
@@ -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
- 'dev-dependencies'?: Dependencies;
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
- 'pocket-ic'?: string;
43
+ "pocket-ic"?: string;
34
44
  };
35
- export type Tool = 'moc' | 'wasmtime' | 'pocket-ic';
45
+ export type Tool = "moc" | "wasmtime" | "pocket-ic";
36
46
  export type Requirements = {
37
47
  moc?: string;
38
48
  };
39
- export type TestMode = 'interpreter' | 'wasi' | 'replica';
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
- 'dev-dependencies': VesselDependencies;
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 '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';
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}`, { preferLocal: true, cwd });
18
+ res = await execaCommand(`dhall-to-json --file ${filePath}`, {
19
+ preferLocal: true,
20
+ cwd,
21
+ });
19
22
  }
20
23
  catch (err) {
21
- silent || console.error('dhall-to-json error:', err.message?.split('Message:')[0]);
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()) + '/vessel.json';
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()) + '/vessel.dhall', silent),
41
- dhallFileToJson((dir || process.cwd()) + '/package-set.dhall', silent),
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
- 'dev-dependencies': [],
59
+ "dev-dependencies": [],
56
60
  };
57
61
  if (cache === true) {
58
- writeFileSync(cachedFile, JSON.stringify(config), 'utf-8');
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('error', (err) => {
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('downloadProgress', ({ transferred, total }) => {
73
- onProgress?.(transferred, total || 2 * (1024 ** 2));
76
+ readStream.on("downloadProgress", ({ transferred, total }) => {
77
+ onProgress?.(transferred, total || 2 * 1024 ** 2);
74
78
  });
75
- readStream.on('response', (response) => {
79
+ readStream.on("response", (response) => {
76
80
  if (response.headers.age > 3600) {
77
- console.error(chalk.red('Error: ') + 'Failure - response too old');
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('error', reject);
84
- const tmpDir = path.resolve(process.cwd(), '.mops/_tmp/');
85
- const tmpFile = path.resolve(tmpDir, `${gitName}@${(commitHash || branch).replaceAll('/', '___')}.zip`);
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: 'application/zip',
102
+ accept: "application/zip",
99
103
  },
100
104
  };
101
- decompress(tmpFile, dest, options).then((unzippedFiles) => {
105
+ decompress(tmpFile, dest, options)
106
+ .then((unzippedFiles) => {
102
107
  deleteSync([tmpDir]);
103
108
  resolve(unzippedFiles);
104
- }).catch(err => {
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 ? 'Dependency' : 'Installing'} ${repo} (cache)`);
130
+ silent || logUpdate(`${dep ? "Dependency" : "Installing"} ${repo} (cache)`);
125
131
  }
126
132
  else {
127
133
  let progress = (step, total) => {
128
- silent || logUpdate(`${dep ? 'Dependency' : 'Installing'} ${repo} ${progressBar(step, total)}`);
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,3 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+ export function is_candid_compatible(new_interface: string, original_interface: string): boolean;
@@ -0,0 +1,5 @@
1
+ import * as wasm from "./wasm_bg.wasm";
2
+ export * from "./wasm_bg.js";
3
+ import { __wbg_set_wasm } from "./wasm_bg.js";
4
+ __wbg_set_wasm(wasm);
5
+ wasm.__wbindgen_start();
@@ -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
+
@@ -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;