ic-mops 1.11.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (352) hide show
  1. package/.DS_Store +0 -0
  2. package/.eslintrc.json +7 -7
  3. package/CHANGELOG.md +15 -0
  4. package/api/actors.ts +41 -37
  5. package/api/downloadPackageFiles.ts +75 -61
  6. package/api/getHighestVersion.ts +5 -5
  7. package/api/index.ts +4 -4
  8. package/api/network.ts +19 -21
  9. package/api/resolveVersion.ts +14 -11
  10. package/bin/mops.js +1 -1
  11. package/bun.lock +234 -198
  12. package/bundle/bench/bench-canister.mo +2 -2
  13. package/bundle/bench/user-bench.mo +0 -4
  14. package/bundle/bin/mops.js +1 -1
  15. package/bundle/cli.js +1000 -924
  16. package/bundle/cli.tgz +0 -0
  17. package/bundle/declarations/bench/bench.did +3 -3
  18. package/bundle/declarations/bench/bench.did.d.ts +3 -3
  19. package/bundle/declarations/bench/index.d.ts +3 -3
  20. package/bundle/declarations/bench/index.js +1 -1
  21. package/bundle/declarations/main/index.d.ts +3 -3
  22. package/bundle/declarations/main/index.js +1 -1
  23. package/bundle/declarations/main/main.did +78 -121
  24. package/bundle/declarations/main/main.did.d.ts +48 -98
  25. package/bundle/declarations/main/main.did.js +53 -107
  26. package/bundle/declarations/storage/index.d.ts +3 -3
  27. package/bundle/declarations/storage/index.js +4 -4
  28. package/bundle/declarations/storage/storage.did.d.ts +3 -3
  29. package/bundle/package.json +6 -5
  30. package/bundle/templates/mops-publish.yml +3 -3
  31. package/bundle/templates/mops-test.yml +3 -3
  32. package/bundle-package-json.ts +8 -8
  33. package/cache.ts +80 -65
  34. package/check-requirements.ts +49 -45
  35. package/cli.ts +577 -376
  36. package/commands/add.ts +142 -129
  37. package/commands/available-updates.ts +55 -28
  38. package/commands/bench/bench-canister.mo +114 -108
  39. package/commands/bench/user-bench.mo +6 -6
  40. package/commands/bench-replica.ts +146 -106
  41. package/commands/bench.ts +563 -497
  42. package/commands/build.ts +177 -0
  43. package/commands/bump.ts +68 -57
  44. package/commands/check-candid.ts +24 -0
  45. package/commands/docs-coverage.ts +124 -102
  46. package/commands/docs.ts +118 -108
  47. package/commands/format.ts +171 -155
  48. package/commands/init.ts +301 -275
  49. package/commands/install/install-all.ts +75 -62
  50. package/commands/install/install-dep.ts +43 -28
  51. package/commands/install/install-deps.ts +23 -15
  52. package/commands/install/install-local-dep.ts +42 -34
  53. package/commands/install/install-mops-dep.ts +154 -123
  54. package/commands/install/sync-local-cache.ts +39 -35
  55. package/commands/maintainer.ts +109 -99
  56. package/commands/outdated.ts +31 -18
  57. package/commands/owner.ts +107 -99
  58. package/commands/publish.ts +534 -443
  59. package/commands/remove.ts +119 -89
  60. package/commands/replica.ts +391 -303
  61. package/commands/search.ts +42 -36
  62. package/commands/self.ts +63 -56
  63. package/commands/sources.ts +66 -49
  64. package/commands/sync.ts +92 -75
  65. package/commands/template.ts +145 -102
  66. package/commands/test/mmf1.ts +146 -119
  67. package/commands/test/reporters/compact-reporter.ts +87 -84
  68. package/commands/test/reporters/files-reporter.ts +56 -51
  69. package/commands/test/reporters/reporter.ts +12 -6
  70. package/commands/test/reporters/silent-reporter.ts +58 -59
  71. package/commands/test/reporters/verbose-reporter.ts +66 -54
  72. package/commands/test/test.ts +497 -460
  73. package/commands/test/utils.ts +85 -6
  74. package/commands/toolchain/index.ts +363 -322
  75. package/commands/toolchain/moc.ts +78 -50
  76. package/commands/toolchain/pocket-ic.ts +41 -34
  77. package/commands/toolchain/toolchain-utils.ts +92 -72
  78. package/commands/toolchain/wasmtime.ts +37 -34
  79. package/commands/update.ts +91 -56
  80. package/commands/user.ts +90 -81
  81. package/commands/watch/deployer.ts +188 -152
  82. package/commands/watch/error-checker.ts +90 -80
  83. package/commands/watch/formatter.ts +72 -60
  84. package/commands/watch/generator.ts +116 -96
  85. package/commands/watch/globMoFiles.ts +13 -13
  86. package/commands/watch/parseDfxJson.ts +63 -57
  87. package/commands/watch/tester.ts +83 -65
  88. package/commands/watch/warning-checker.ts +149 -136
  89. package/commands/watch/watch.ts +123 -95
  90. package/declarations/bench/bench.did.d.ts +3 -3
  91. package/declarations/bench/index.d.ts +3 -3
  92. package/declarations/bench/index.js +1 -1
  93. package/declarations/main/index.d.ts +3 -3
  94. package/declarations/main/index.js +1 -1
  95. package/declarations/main/main.did.d.ts +3 -3
  96. package/declarations/storage/index.d.ts +3 -3
  97. package/declarations/storage/index.js +4 -4
  98. package/declarations/storage/storage.did.d.ts +3 -3
  99. package/dist/api/actors.d.ts +4 -4
  100. package/dist/api/actors.js +8 -8
  101. package/dist/api/downloadPackageFiles.d.ts +2 -2
  102. package/dist/api/downloadPackageFiles.js +10 -10
  103. package/dist/api/getHighestVersion.js +1 -1
  104. package/dist/api/index.d.ts +4 -4
  105. package/dist/api/index.js +4 -4
  106. package/dist/api/network.js +9 -9
  107. package/dist/api/resolveVersion.js +3 -3
  108. package/dist/bin/mops.js +1 -1
  109. package/dist/bundle-package-json.js +8 -8
  110. package/dist/cache.js +22 -17
  111. package/dist/check-requirements.js +11 -11
  112. package/dist/cli.js +283 -186
  113. package/dist/commands/add.d.ts +1 -1
  114. package/dist/commands/add.js +41 -38
  115. package/dist/commands/available-updates.d.ts +1 -1
  116. package/dist/commands/available-updates.js +32 -14
  117. package/dist/commands/bench/bench-canister.mo +114 -108
  118. package/dist/commands/bench/user-bench.mo +6 -6
  119. package/dist/commands/bench-replica.d.ts +6 -5
  120. package/dist/commands/bench-replica.js +58 -36
  121. package/dist/commands/bench.d.ts +5 -5
  122. package/dist/commands/bench.js +134 -118
  123. package/dist/commands/build.d.ts +7 -0
  124. package/dist/commands/build.js +121 -0
  125. package/dist/commands/bump.js +27 -18
  126. package/dist/commands/check-candid.d.ts +4 -0
  127. package/dist/commands/check-candid.js +15 -0
  128. package/dist/commands/docs-coverage.d.ts +1 -1
  129. package/dist/commands/docs-coverage.js +45 -31
  130. package/dist/commands/docs.d.ts +1 -1
  131. package/dist/commands/docs.js +39 -38
  132. package/dist/commands/format.js +31 -27
  133. package/dist/commands/init.js +102 -92
  134. package/dist/commands/install/install-all.d.ts +2 -2
  135. package/dist/commands/install/install-all.js +23 -21
  136. package/dist/commands/install/install-dep.d.ts +1 -1
  137. package/dist/commands/install/install-dep.js +21 -8
  138. package/dist/commands/install/install-deps.d.ts +1 -1
  139. package/dist/commands/install/install-deps.js +1 -1
  140. package/dist/commands/install/install-local-dep.js +11 -9
  141. package/dist/commands/install/install-mops-dep.d.ts +1 -1
  142. package/dist/commands/install/install-mops-dep.js +32 -27
  143. package/dist/commands/install/sync-local-cache.js +10 -10
  144. package/dist/commands/maintainer.js +21 -21
  145. package/dist/commands/outdated.js +16 -6
  146. package/dist/commands/owner.js +21 -21
  147. package/dist/commands/publish.js +148 -128
  148. package/dist/commands/remove.d.ts +1 -1
  149. package/dist/commands/remove.js +42 -30
  150. package/dist/commands/replica.d.ts +9 -8
  151. package/dist/commands/replica.js +105 -65
  152. package/dist/commands/search.js +15 -13
  153. package/dist/commands/self.js +31 -28
  154. package/dist/commands/sources.d.ts +5 -1
  155. package/dist/commands/sources.js +23 -17
  156. package/dist/commands/sync.d.ts +1 -1
  157. package/dist/commands/sync.js +38 -25
  158. package/dist/commands/template.js +66 -56
  159. package/dist/commands/test/mmf1.d.ts +3 -3
  160. package/dist/commands/test/mmf1.js +33 -31
  161. package/dist/commands/test/reporters/compact-reporter.d.ts +3 -3
  162. package/dist/commands/test/reporters/compact-reporter.js +19 -15
  163. package/dist/commands/test/reporters/files-reporter.d.ts +3 -3
  164. package/dist/commands/test/reporters/files-reporter.js +18 -14
  165. package/dist/commands/test/reporters/reporter.d.ts +2 -2
  166. package/dist/commands/test/reporters/silent-reporter.d.ts +3 -3
  167. package/dist/commands/test/reporters/silent-reporter.js +4 -4
  168. package/dist/commands/test/reporters/verbose-reporter.d.ts +3 -3
  169. package/dist/commands/test/reporters/verbose-reporter.js +17 -13
  170. package/dist/commands/test/test.d.ts +4 -4
  171. package/dist/commands/test/test.js +151 -181
  172. package/dist/commands/test/utils.d.ts +6 -0
  173. package/dist/commands/test/utils.js +63 -2
  174. package/dist/commands/toolchain/index.d.ts +1 -1
  175. package/dist/commands/toolchain/index.js +81 -69
  176. package/dist/commands/toolchain/moc.d.ts +1 -1
  177. package/dist/commands/toolchain/moc.js +48 -24
  178. package/dist/commands/toolchain/pocket-ic.js +12 -12
  179. package/dist/commands/toolchain/toolchain-utils.d.ts +2 -0
  180. package/dist/commands/toolchain/toolchain-utils.js +32 -23
  181. package/dist/commands/toolchain/wasmtime.js +11 -11
  182. package/dist/commands/update.d.ts +1 -1
  183. package/dist/commands/update.js +30 -12
  184. package/dist/commands/user.js +31 -28
  185. package/dist/commands/watch/deployer.d.ts +4 -4
  186. package/dist/commands/watch/deployer.js +45 -36
  187. package/dist/commands/watch/error-checker.d.ts +2 -2
  188. package/dist/commands/watch/error-checker.js +27 -27
  189. package/dist/commands/watch/formatter.d.ts +4 -4
  190. package/dist/commands/watch/formatter.js +17 -17
  191. package/dist/commands/watch/generator.d.ts +3 -3
  192. package/dist/commands/watch/generator.js +28 -23
  193. package/dist/commands/watch/globMoFiles.js +8 -8
  194. package/dist/commands/watch/parseDfxJson.d.ts +2 -2
  195. package/dist/commands/watch/parseDfxJson.js +9 -9
  196. package/dist/commands/watch/tester.d.ts +4 -4
  197. package/dist/commands/watch/tester.js +23 -21
  198. package/dist/commands/watch/warning-checker.d.ts +3 -3
  199. package/dist/commands/watch/warning-checker.js +36 -36
  200. package/dist/commands/watch/watch.js +45 -32
  201. package/dist/declarations/bench/bench.did.d.ts +3 -3
  202. package/dist/declarations/bench/index.d.ts +3 -3
  203. package/dist/declarations/bench/index.js +1 -1
  204. package/dist/declarations/main/index.d.ts +3 -3
  205. package/dist/declarations/main/index.js +1 -1
  206. package/dist/declarations/main/main.did.d.ts +3 -3
  207. package/dist/declarations/storage/index.d.ts +3 -3
  208. package/dist/declarations/storage/index.js +4 -4
  209. package/dist/declarations/storage/storage.did.d.ts +3 -3
  210. package/dist/environments/nodejs/cli.d.ts +1 -0
  211. package/dist/environments/nodejs/cli.js +4 -0
  212. package/dist/environments/web/cli.d.ts +1 -0
  213. package/dist/environments/web/cli.js +4 -0
  214. package/dist/error.d.ts +1 -0
  215. package/dist/error.js +5 -0
  216. package/dist/fix-dist.js +5 -5
  217. package/dist/helpers/find-changelog-entry.js +8 -5
  218. package/dist/helpers/get-dep-name.d.ts +1 -0
  219. package/dist/helpers/get-dep-name.js +4 -1
  220. package/dist/helpers/get-dfx-version.js +4 -4
  221. package/dist/helpers/get-moc-path.js +8 -7
  222. package/dist/helpers/get-moc-version.js +10 -7
  223. package/dist/helpers/get-package-id.js +2 -2
  224. package/dist/helpers/is-candid-compatible.d.ts +1 -0
  225. package/dist/helpers/is-candid-compatible.js +20 -0
  226. package/dist/integrity.d.ts +1 -1
  227. package/dist/integrity.js +47 -38
  228. package/dist/jest.config.d.ts +11 -0
  229. package/dist/jest.config.js +14 -0
  230. package/dist/mops.d.ts +6 -6
  231. package/dist/mops.js +87 -80
  232. package/dist/notify-installs.js +4 -4
  233. package/dist/package.json +11 -10
  234. package/dist/pem.d.ts +3 -3
  235. package/dist/pem.js +20 -12
  236. package/dist/release-cli.js +20 -20
  237. package/dist/resolve-packages.d.ts +1 -1
  238. package/dist/resolve-packages.js +52 -36
  239. package/dist/templates/mops-publish.yml +3 -3
  240. package/dist/templates/mops-test.yml +3 -3
  241. package/dist/templates/src/lib.mo +13 -13
  242. package/dist/templates/test/lib.test.mo +2 -2
  243. package/dist/templates.js +1 -1
  244. package/dist/tests/cli.test.d.ts +1 -0
  245. package/dist/tests/cli.test.js +63 -0
  246. package/dist/types.d.ts +14 -4
  247. package/dist/vessel.d.ts +2 -2
  248. package/dist/vessel.js +41 -34
  249. package/dist/wasm/pkg/bundler/package.json +20 -0
  250. package/dist/wasm/pkg/bundler/wasm.d.ts +3 -0
  251. package/dist/wasm/pkg/bundler/wasm.js +5 -0
  252. package/dist/wasm/pkg/bundler/wasm_bg.js +93 -0
  253. package/dist/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  254. package/dist/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  255. package/dist/wasm/pkg/nodejs/package.json +14 -0
  256. package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
  257. package/dist/wasm/pkg/nodejs/wasm.js +98 -0
  258. package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  259. package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  260. package/dist/wasm/pkg/web/package.json +18 -0
  261. package/dist/wasm/pkg/web/wasm.d.ts +35 -0
  262. package/dist/wasm/pkg/web/wasm.js +191 -0
  263. package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
  264. package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  265. package/dist/wasm.d.ts +5 -0
  266. package/dist/wasm.js +10 -0
  267. package/environments/nodejs/cli.ts +6 -0
  268. package/environments/web/cli.ts +6 -0
  269. package/error.ts +6 -0
  270. package/fix-dist.ts +5 -5
  271. package/global.d.ts +3 -3
  272. package/helpers/find-changelog-entry.ts +26 -23
  273. package/helpers/get-dep-name.ts +7 -3
  274. package/helpers/get-dfx-version.ts +8 -9
  275. package/helpers/get-moc-path.ts +25 -26
  276. package/helpers/get-moc-version.ts +21 -19
  277. package/helpers/get-package-id.ts +4 -4
  278. package/helpers/is-candid-compatible.ts +22 -0
  279. package/integrity.ts +270 -236
  280. package/jest.config.js +14 -0
  281. package/mops.ts +238 -215
  282. package/notify-installs.ts +16 -17
  283. package/package.json +21 -15
  284. package/parallel.ts +28 -24
  285. package/pem.ts +55 -47
  286. package/release-cli.ts +73 -39
  287. package/resolve-packages.ts +231 -189
  288. package/templates/mops-publish.yml +3 -3
  289. package/templates/mops-test.yml +3 -3
  290. package/templates/src/lib.mo +13 -13
  291. package/templates/test/lib.test.mo +2 -2
  292. package/templates.ts +4 -4
  293. package/tests/__snapshots__/cli.test.ts.snap +202 -0
  294. package/tests/build/error/candid/bar.did +3 -0
  295. package/tests/build/error/dfx.json +12 -0
  296. package/tests/build/error/mops.toml +9 -0
  297. package/tests/build/error/src/Bar.mo +5 -0
  298. package/tests/build/error/src/Foo.mo +5 -0
  299. package/tests/build/success/.dfx/local/canister_ids.json +17 -0
  300. package/tests/build/success/.dfx/local/canisters/bar/bar.did +3 -0
  301. package/tests/build/success/.dfx/local/canisters/bar/bar.most +4 -0
  302. package/tests/build/success/.dfx/local/canisters/bar/bar.wasm +0 -0
  303. package/tests/build/success/.dfx/local/canisters/bar/constructor.did +3 -0
  304. package/tests/build/success/.dfx/local/canisters/bar/index.js +42 -0
  305. package/tests/build/success/.dfx/local/canisters/bar/init_args.txt +1 -0
  306. package/tests/build/success/.dfx/local/canisters/bar/service.did +3 -0
  307. package/tests/build/success/.dfx/local/canisters/bar/service.did.d.ts +7 -0
  308. package/tests/build/success/.dfx/local/canisters/bar/service.did.js +4 -0
  309. package/tests/build/success/.dfx/local/canisters/foo/constructor.did +3 -0
  310. package/tests/build/success/.dfx/local/canisters/foo/foo.did +3 -0
  311. package/tests/build/success/.dfx/local/canisters/foo/foo.most +4 -0
  312. package/tests/build/success/.dfx/local/canisters/foo/foo.wasm +0 -0
  313. package/tests/build/success/.dfx/local/canisters/foo/index.js +42 -0
  314. package/tests/build/success/.dfx/local/canisters/foo/init_args.txt +1 -0
  315. package/tests/build/success/.dfx/local/canisters/foo/service.did +3 -0
  316. package/tests/build/success/.dfx/local/canisters/foo/service.did.d.ts +7 -0
  317. package/tests/build/success/.dfx/local/canisters/foo/service.did.js +4 -0
  318. package/tests/build/success/.dfx/local/lsp/ucwa4-rx777-77774-qaada-cai.did +3 -0
  319. package/tests/build/success/.dfx/local/lsp/ulvla-h7777-77774-qaacq-cai.did +3 -0
  320. package/tests/build/success/.dfx/local/network-id +4 -0
  321. package/tests/build/success/candid/bar.did +3 -0
  322. package/tests/build/success/dfx.json +12 -0
  323. package/tests/build/success/mops.toml +9 -0
  324. package/tests/build/success/src/Bar.mo +5 -0
  325. package/tests/build/success/src/Foo.mo +5 -0
  326. package/tests/check-candid/a.did +3 -0
  327. package/tests/check-candid/b.did +5 -0
  328. package/tests/check-candid/c.did +3 -0
  329. package/tests/cli.test.ts +82 -0
  330. package/tsconfig.json +26 -19
  331. package/types.ts +41 -31
  332. package/vessel.ts +219 -187
  333. package/wasm/Cargo.lock +1475 -0
  334. package/wasm/Cargo.toml +28 -0
  335. package/wasm/pkg/bundler/package.json +20 -0
  336. package/wasm/pkg/bundler/wasm.d.ts +3 -0
  337. package/wasm/pkg/bundler/wasm.js +5 -0
  338. package/wasm/pkg/bundler/wasm_bg.js +93 -0
  339. package/wasm/pkg/bundler/wasm_bg.wasm +0 -0
  340. package/wasm/pkg/bundler/wasm_bg.wasm.d.ts +8 -0
  341. package/wasm/pkg/nodejs/package.json +14 -0
  342. package/wasm/pkg/nodejs/wasm.d.ts +3 -0
  343. package/wasm/pkg/nodejs/wasm.js +98 -0
  344. package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
  345. package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +8 -0
  346. package/wasm/pkg/web/package.json +18 -0
  347. package/wasm/pkg/web/wasm.d.ts +35 -0
  348. package/wasm/pkg/web/wasm.js +191 -0
  349. package/wasm/pkg/web/wasm_bg.wasm +0 -0
  350. package/wasm/pkg/web/wasm_bg.wasm.d.ts +8 -0
  351. package/wasm/src/lib.rs +17 -0
  352. package/wasm.ts +16 -0
@@ -1,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;