ic-mops 2.0.0 → 2.0.1

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/commands/build.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  import chalk from "chalk";
2
2
  import { execa } from "execa";
3
3
  import { exists } from "fs-extra";
4
- import { mkdir } from "node:fs/promises";
4
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
5
5
  import { join } from "node:path";
6
+ import { cliError } from "../error.js";
6
7
  import { getMocPath } from "../helpers/get-moc-path.js";
8
+ import { isCandidCompatible } from "../helpers/is-candid-compatible.js";
9
+ import { CustomSection, getWasmBindings } from "../wasm.js";
7
10
  import { readConfig } from "../mops.js";
8
11
  import { CanisterConfig } from "../types.js";
9
12
  import { sourcesArgs } from "./sources.js";
10
- import { isCandidCompatible } from "../helpers/is-candid-compatible.js";
11
- import { cliError } from "../error.js";
12
13
 
13
14
  export interface BuildOptions {
14
15
  outputDir: string;
@@ -75,11 +76,12 @@ export async function build(
75
76
  if (!motokoPath) {
76
77
  cliError(`No main file is specified for canister ${canisterName}`);
77
78
  }
79
+ const wasmPath = join(outputDir, `${canisterName}.wasm`);
78
80
  let args = [
79
81
  "-c",
80
82
  "--idl",
81
83
  "-o",
82
- join(outputDir, `${canisterName}.wasm`),
84
+ wasmPath,
83
85
  motokoPath,
84
86
  ...(options.extraArgs ?? []),
85
87
  ...(await sourcesArgs()).flat(),
@@ -100,6 +102,12 @@ export async function build(
100
102
  }
101
103
  args.push(...canister.args);
102
104
  }
105
+ const isPublicCandid = true; // always true for now to reduce corner cases
106
+ const candidVisibility = isPublicCandid ? "icp:public" : "icp:private";
107
+ if (isPublicCandid) {
108
+ args.push("--public-metadata", "candid:service");
109
+ args.push("--public-metadata", "candid:args");
110
+ }
103
111
  try {
104
112
  if (options.verbose) {
105
113
  console.log(chalk.gray(mocPath, JSON.stringify(args)));
@@ -128,8 +136,8 @@ export async function build(
128
136
  console.log(result.stdout);
129
137
  }
130
138
 
139
+ const generatedDidPath = join(outputDir, `${canisterName}.did`);
131
140
  if (canister.candid) {
132
- const generatedDidPath = join(outputDir, `${canisterName}.did`);
133
141
  const originalCandidPath = canister.candid;
134
142
 
135
143
  try {
@@ -146,24 +154,43 @@ export async function build(
146
154
 
147
155
  if (options.verbose) {
148
156
  console.log(
149
- chalk.green(
157
+ chalk.gray(
150
158
  `Candid compatibility check passed for canister ${canisterName}`,
151
159
  ),
152
160
  );
153
161
  }
154
- } catch (candidError: any) {
162
+ } catch (err: any) {
155
163
  cliError(
156
- `Error during Candid compatibility check for canister ${canisterName}`,
157
- candidError,
164
+ `Error during Candid compatibility check for canister ${canisterName}${err?.message ? `\n${err.message}` : ""}`,
158
165
  );
159
166
  }
160
167
  }
161
- } catch (cliError: any) {
162
- if (cliError.message?.includes("Build failed for canister")) {
163
- throw cliError;
168
+
169
+ options.verbose &&
170
+ console.log(chalk.gray(`Adding metadata to ${wasmPath}`));
171
+ const candidPath = canister.candid ?? generatedDidPath;
172
+ const candidText = await readFile(candidPath, "utf-8");
173
+ const customSections: CustomSection[] = [
174
+ { name: `${candidVisibility} candid:service`, data: candidText },
175
+ ];
176
+ if (canister.initArg) {
177
+ customSections.push({
178
+ name: `${candidVisibility} candid:args`,
179
+ data: canister.initArg,
180
+ });
181
+ }
182
+ const wasmBytes = await readFile(wasmPath);
183
+ const newWasm = getWasmBindings().add_custom_sections(
184
+ wasmBytes,
185
+ customSections,
186
+ );
187
+ await writeFile(wasmPath, newWasm);
188
+ } catch (err: any) {
189
+ if (err.message?.includes("Build failed for canister")) {
190
+ throw err;
164
191
  }
165
192
  cliError(
166
- `Error while compiling canister ${canisterName}${cliError?.message ? `\n${cliError.message}` : ""}`,
193
+ `Error while compiling canister ${canisterName}${err?.message ? `\n${err.message}` : ""}`,
167
194
  );
168
195
  }
169
196
  options.verbose && console.timeEnd(`build canister ${canisterName}`);
@@ -1,13 +1,14 @@
1
1
  import chalk from "chalk";
2
2
  import { execa } from "execa";
3
3
  import { exists } from "fs-extra";
4
- import { mkdir } from "node:fs/promises";
4
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
5
5
  import { join } from "node:path";
6
+ import { cliError } from "../error.js";
6
7
  import { getMocPath } from "../helpers/get-moc-path.js";
8
+ import { isCandidCompatible } from "../helpers/is-candid-compatible.js";
9
+ import { getWasmBindings } from "../wasm.js";
7
10
  import { readConfig } from "../mops.js";
8
11
  import { sourcesArgs } from "./sources.js";
9
- import { isCandidCompatible } from "../helpers/is-candid-compatible.js";
10
- import { cliError } from "../error.js";
11
12
  export const DEFAULT_BUILD_OUTPUT_DIR = ".mops/.build";
12
13
  export async function build(canisterNames, options) {
13
14
  if (canisterNames?.length == 0) {
@@ -48,11 +49,12 @@ export async function build(canisterNames, options) {
48
49
  if (!motokoPath) {
49
50
  cliError(`No main file is specified for canister ${canisterName}`);
50
51
  }
52
+ const wasmPath = join(outputDir, `${canisterName}.wasm`);
51
53
  let args = [
52
54
  "-c",
53
55
  "--idl",
54
56
  "-o",
55
- join(outputDir, `${canisterName}.wasm`),
57
+ wasmPath,
56
58
  motokoPath,
57
59
  ...(options.extraArgs ?? []),
58
60
  ...(await sourcesArgs()).flat(),
@@ -69,6 +71,12 @@ export async function build(canisterNames, options) {
69
71
  }
70
72
  args.push(...canister.args);
71
73
  }
74
+ const isPublicCandid = true; // always true for now to reduce corner cases
75
+ const candidVisibility = isPublicCandid ? "icp:public" : "icp:private";
76
+ if (isPublicCandid) {
77
+ args.push("--public-metadata", "candid:service");
78
+ args.push("--public-metadata", "candid:args");
79
+ }
72
80
  try {
73
81
  if (options.verbose) {
74
82
  console.log(chalk.gray(mocPath, JSON.stringify(args)));
@@ -92,8 +100,8 @@ export async function build(canisterNames, options) {
92
100
  if (options.verbose && result.stdout && result.stdout.trim()) {
93
101
  console.log(result.stdout);
94
102
  }
103
+ const generatedDidPath = join(outputDir, `${canisterName}.did`);
95
104
  if (canister.candid) {
96
- const generatedDidPath = join(outputDir, `${canisterName}.did`);
97
105
  const originalCandidPath = canister.candid;
98
106
  try {
99
107
  const compatible = await isCandidCompatible(generatedDidPath, originalCandidPath);
@@ -101,19 +109,35 @@ export async function build(canisterNames, options) {
101
109
  cliError(`Candid compatibility check failed for canister ${canisterName}`);
102
110
  }
103
111
  if (options.verbose) {
104
- console.log(chalk.green(`Candid compatibility check passed for canister ${canisterName}`));
112
+ console.log(chalk.gray(`Candid compatibility check passed for canister ${canisterName}`));
105
113
  }
106
114
  }
107
- catch (candidError) {
108
- cliError(`Error during Candid compatibility check for canister ${canisterName}`, candidError);
115
+ catch (err) {
116
+ cliError(`Error during Candid compatibility check for canister ${canisterName}${err?.message ? `\n${err.message}` : ""}`);
109
117
  }
110
118
  }
119
+ options.verbose &&
120
+ console.log(chalk.gray(`Adding metadata to ${wasmPath}`));
121
+ const candidPath = canister.candid ?? generatedDidPath;
122
+ const candidText = await readFile(candidPath, "utf-8");
123
+ const customSections = [
124
+ { name: `${candidVisibility} candid:service`, data: candidText },
125
+ ];
126
+ if (canister.initArg) {
127
+ customSections.push({
128
+ name: `${candidVisibility} candid:args`,
129
+ data: canister.initArg,
130
+ });
131
+ }
132
+ const wasmBytes = await readFile(wasmPath);
133
+ const newWasm = getWasmBindings().add_custom_sections(wasmBytes, customSections);
134
+ await writeFile(wasmPath, newWasm);
111
135
  }
112
- catch (cliError) {
113
- if (cliError.message?.includes("Build failed for canister")) {
114
- throw cliError;
136
+ catch (err) {
137
+ if (err.message?.includes("Build failed for canister")) {
138
+ throw err;
115
139
  }
116
- cliError(`Error while compiling canister ${canisterName}${cliError?.message ? `\n${cliError.message}` : ""}`);
140
+ cliError(`Error while compiling canister ${canisterName}${err?.message ? `\n${err.message}` : ""}`);
117
141
  }
118
142
  options.verbose && console.timeEnd(`build canister ${canisterName}`);
119
143
  }
package/dist/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ic-mops",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mops": "bin/mops.js",
@@ -70,7 +70,7 @@
70
70
  "semver": "7.7.1",
71
71
  "stream-to-promise": "3.0.0",
72
72
  "string-width": "7.2.0",
73
- "tar": "7.4.3",
73
+ "tar": "7.5.6",
74
74
  "terminal-size": "4.0.0"
75
75
  },
76
76
  "devDependencies": {
package/dist/types.d.ts CHANGED
@@ -29,6 +29,7 @@ export type CanisterConfig = {
29
29
  main: string;
30
30
  args?: string[];
31
31
  candid?: string;
32
+ initArg?: string;
32
33
  };
33
34
  export type Dependencies = Record<string, Dependency>;
34
35
  export type Dependency = {
@@ -1,3 +1,6 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+
4
+ export function add_custom_sections(bytes: Uint8Array, custom_sections: any): Uint8Array;
5
+
3
6
  export function is_candid_compatible(new_interface: string, original_interface: string): boolean;
@@ -2,10 +2,96 @@
2
2
  let imports = {};
3
3
  imports['__wbindgen_placeholder__'] = module.exports;
4
4
 
5
- let WASM_VECTOR_LEN = 0;
5
+ function addToExternrefTable0(obj) {
6
+ const idx = wasm.__externref_table_alloc();
7
+ wasm.__wbindgen_externrefs.set(idx, obj);
8
+ return idx;
9
+ }
6
10
 
7
- let cachedUint8ArrayMemory0 = null;
11
+ function debugString(val) {
12
+ // primitive types
13
+ const type = typeof val;
14
+ if (type == 'number' || type == 'boolean' || val == null) {
15
+ return `${val}`;
16
+ }
17
+ if (type == 'string') {
18
+ return `"${val}"`;
19
+ }
20
+ if (type == 'symbol') {
21
+ const description = val.description;
22
+ if (description == null) {
23
+ return 'Symbol';
24
+ } else {
25
+ return `Symbol(${description})`;
26
+ }
27
+ }
28
+ if (type == 'function') {
29
+ const name = val.name;
30
+ if (typeof name == 'string' && name.length > 0) {
31
+ return `Function(${name})`;
32
+ } else {
33
+ return 'Function';
34
+ }
35
+ }
36
+ // objects
37
+ if (Array.isArray(val)) {
38
+ const length = val.length;
39
+ let debug = '[';
40
+ if (length > 0) {
41
+ debug += debugString(val[0]);
42
+ }
43
+ for(let i = 1; i < length; i++) {
44
+ debug += ', ' + debugString(val[i]);
45
+ }
46
+ debug += ']';
47
+ return debug;
48
+ }
49
+ // Test for built-in
50
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
51
+ let className;
52
+ if (builtInMatches && builtInMatches.length > 1) {
53
+ className = builtInMatches[1];
54
+ } else {
55
+ // Failed to match the standard '[object ClassName]'
56
+ return toString.call(val);
57
+ }
58
+ if (className == 'Object') {
59
+ // we're a user defined class or Object
60
+ // JSON.stringify avoids problems with cycles, and is generally much
61
+ // easier than looping through ownProperties of `val`.
62
+ try {
63
+ return 'Object(' + JSON.stringify(val) + ')';
64
+ } catch (_) {
65
+ return 'Object';
66
+ }
67
+ }
68
+ // errors
69
+ if (val instanceof Error) {
70
+ return `${val.name}: ${val.message}\n${val.stack}`;
71
+ }
72
+ // TODO we could test for more things here, like `Set`s and `Map`s.
73
+ return className;
74
+ }
75
+
76
+ function getArrayU8FromWasm0(ptr, len) {
77
+ ptr = ptr >>> 0;
78
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
79
+ }
80
+
81
+ let cachedDataViewMemory0 = null;
82
+ function getDataViewMemory0() {
83
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
84
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
85
+ }
86
+ return cachedDataViewMemory0;
87
+ }
88
+
89
+ function getStringFromWasm0(ptr, len) {
90
+ ptr = ptr >>> 0;
91
+ return decodeText(ptr, len);
92
+ }
8
93
 
94
+ let cachedUint8ArrayMemory0 = null;
9
95
  function getUint8ArrayMemory0() {
10
96
  if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
11
97
  cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
@@ -13,21 +99,27 @@ function getUint8ArrayMemory0() {
13
99
  return cachedUint8ArrayMemory0;
14
100
  }
15
101
 
16
- const cachedTextEncoder = new TextEncoder();
17
-
18
- if (!('encodeInto' in cachedTextEncoder)) {
19
- cachedTextEncoder.encodeInto = function (arg, view) {
20
- const buf = cachedTextEncoder.encode(arg);
21
- view.set(buf);
22
- return {
23
- read: arg.length,
24
- written: buf.length
25
- };
102
+ function handleError(f, args) {
103
+ try {
104
+ return f.apply(this, args);
105
+ } catch (e) {
106
+ const idx = addToExternrefTable0(e);
107
+ wasm.__wbindgen_exn_store(idx);
26
108
  }
27
109
  }
28
110
 
29
- function passStringToWasm0(arg, malloc, realloc) {
111
+ function isLikeNone(x) {
112
+ return x === undefined || x === null;
113
+ }
114
+
115
+ function passArray8ToWasm0(arg, malloc) {
116
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
117
+ getUint8ArrayMemory0().set(arg, ptr / 1);
118
+ WASM_VECTOR_LEN = arg.length;
119
+ return ptr;
120
+ }
30
121
 
122
+ function passStringToWasm0(arg, malloc, realloc) {
31
123
  if (realloc === undefined) {
32
124
  const buf = cachedTextEncoder.encode(arg);
33
125
  const ptr = malloc(buf.length, 1) >>> 0;
@@ -48,7 +140,6 @@ function passStringToWasm0(arg, malloc, realloc) {
48
140
  if (code > 0x7F) break;
49
141
  mem[ptr + offset] = code;
50
142
  }
51
-
52
143
  if (offset !== len) {
53
144
  if (offset !== 0) {
54
145
  arg = arg.slice(offset);
@@ -64,18 +155,235 @@ function passStringToWasm0(arg, malloc, realloc) {
64
155
  WASM_VECTOR_LEN = offset;
65
156
  return ptr;
66
157
  }
158
+
159
+ function takeFromExternrefTable0(idx) {
160
+ const value = wasm.__wbindgen_externrefs.get(idx);
161
+ wasm.__externref_table_dealloc(idx);
162
+ return value;
163
+ }
164
+
165
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
166
+ cachedTextDecoder.decode();
167
+ function decodeText(ptr, len) {
168
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
169
+ }
170
+
171
+ const cachedTextEncoder = new TextEncoder();
172
+
173
+ if (!('encodeInto' in cachedTextEncoder)) {
174
+ cachedTextEncoder.encodeInto = function (arg, view) {
175
+ const buf = cachedTextEncoder.encode(arg);
176
+ view.set(buf);
177
+ return {
178
+ read: arg.length,
179
+ written: buf.length
180
+ };
181
+ }
182
+ }
183
+
184
+ let WASM_VECTOR_LEN = 0;
185
+
186
+ /**
187
+ * @param {Uint8Array} bytes
188
+ * @param {any} custom_sections
189
+ * @returns {Uint8Array}
190
+ */
191
+ function add_custom_sections(bytes, custom_sections) {
192
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_malloc);
193
+ const len0 = WASM_VECTOR_LEN;
194
+ const ret = wasm.add_custom_sections(ptr0, len0, custom_sections);
195
+ if (ret[3]) {
196
+ throw takeFromExternrefTable0(ret[2]);
197
+ }
198
+ var v2 = getArrayU8FromWasm0(ret[0], ret[1]).slice();
199
+ wasm.__wbindgen_free(ret[0], ret[1] * 1, 1);
200
+ return v2;
201
+ }
202
+ exports.add_custom_sections = add_custom_sections;
203
+
67
204
  /**
68
205
  * @param {string} new_interface
69
206
  * @param {string} original_interface
70
207
  * @returns {boolean}
71
208
  */
72
- exports.is_candid_compatible = function(new_interface, original_interface) {
209
+ function is_candid_compatible(new_interface, original_interface) {
73
210
  const ptr0 = passStringToWasm0(new_interface, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
74
211
  const len0 = WASM_VECTOR_LEN;
75
212
  const ptr1 = passStringToWasm0(original_interface, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
76
213
  const len1 = WASM_VECTOR_LEN;
77
214
  const ret = wasm.is_candid_compatible(ptr0, len0, ptr1, len1);
78
215
  return ret !== 0;
216
+ }
217
+ exports.is_candid_compatible = is_candid_compatible;
218
+
219
+ exports.__wbg_Error_52673b7de5a0ca89 = function(arg0, arg1) {
220
+ const ret = Error(getStringFromWasm0(arg0, arg1));
221
+ return ret;
222
+ };
223
+
224
+ exports.__wbg_String_8f0eb39a4a4c2f66 = function(arg0, arg1) {
225
+ const ret = String(arg1);
226
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
227
+ const len1 = WASM_VECTOR_LEN;
228
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
229
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
230
+ };
231
+
232
+ exports.__wbg___wbindgen_boolean_get_dea25b33882b895b = function(arg0) {
233
+ const v = arg0;
234
+ const ret = typeof(v) === 'boolean' ? v : undefined;
235
+ return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
236
+ };
237
+
238
+ exports.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {
239
+ const ret = debugString(arg1);
240
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
241
+ const len1 = WASM_VECTOR_LEN;
242
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
243
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
244
+ };
245
+
246
+ exports.__wbg___wbindgen_in_0d3e1e8f0c669317 = function(arg0, arg1) {
247
+ const ret = arg0 in arg1;
248
+ return ret;
249
+ };
250
+
251
+ exports.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {
252
+ const ret = typeof(arg0) === 'function';
253
+ return ret;
254
+ };
255
+
256
+ exports.__wbg___wbindgen_is_object_ce774f3490692386 = function(arg0) {
257
+ const val = arg0;
258
+ const ret = typeof(val) === 'object' && val !== null;
259
+ return ret;
260
+ };
261
+
262
+ exports.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {
263
+ const ret = arg0 === undefined;
264
+ return ret;
265
+ };
266
+
267
+ exports.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d = function(arg0, arg1) {
268
+ const ret = arg0 == arg1;
269
+ return ret;
270
+ };
271
+
272
+ exports.__wbg___wbindgen_number_get_9619185a74197f95 = function(arg0, arg1) {
273
+ const obj = arg1;
274
+ const ret = typeof(obj) === 'number' ? obj : undefined;
275
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
276
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
277
+ };
278
+
279
+ exports.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {
280
+ const obj = arg1;
281
+ const ret = typeof(obj) === 'string' ? obj : undefined;
282
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
283
+ var len1 = WASM_VECTOR_LEN;
284
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
285
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
286
+ };
287
+
288
+ exports.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {
289
+ throw new Error(getStringFromWasm0(arg0, arg1));
290
+ };
291
+
292
+ exports.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {
293
+ const ret = arg0.call(arg1);
294
+ return ret;
295
+ }, arguments) };
296
+
297
+ exports.__wbg_done_62ea16af4ce34b24 = function(arg0) {
298
+ const ret = arg0.done;
299
+ return ret;
300
+ };
301
+
302
+ exports.__wbg_get_6b7bd52aca3f9671 = function(arg0, arg1) {
303
+ const ret = arg0[arg1 >>> 0];
304
+ return ret;
305
+ };
306
+
307
+ exports.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {
308
+ const ret = Reflect.get(arg0, arg1);
309
+ return ret;
310
+ }, arguments) };
311
+
312
+ exports.__wbg_get_with_ref_key_1dc361bd10053bfe = function(arg0, arg1) {
313
+ const ret = arg0[arg1];
314
+ return ret;
315
+ };
316
+
317
+ exports.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355 = function(arg0) {
318
+ let result;
319
+ try {
320
+ result = arg0 instanceof ArrayBuffer;
321
+ } catch (_) {
322
+ result = false;
323
+ }
324
+ const ret = result;
325
+ return ret;
326
+ };
327
+
328
+ exports.__wbg_instanceof_Uint8Array_da54ccc9d3e09434 = function(arg0) {
329
+ let result;
330
+ try {
331
+ result = arg0 instanceof Uint8Array;
332
+ } catch (_) {
333
+ result = false;
334
+ }
335
+ const ret = result;
336
+ return ret;
337
+ };
338
+
339
+ exports.__wbg_isArray_51fd9e6422c0a395 = function(arg0) {
340
+ const ret = Array.isArray(arg0);
341
+ return ret;
342
+ };
343
+
344
+ exports.__wbg_iterator_27b7c8b35ab3e86b = function() {
345
+ const ret = Symbol.iterator;
346
+ return ret;
347
+ };
348
+
349
+ exports.__wbg_length_22ac23eaec9d8053 = function(arg0) {
350
+ const ret = arg0.length;
351
+ return ret;
352
+ };
353
+
354
+ exports.__wbg_length_d45040a40c570362 = function(arg0) {
355
+ const ret = arg0.length;
356
+ return ret;
357
+ };
358
+
359
+ exports.__wbg_new_6421f6084cc5bc5a = function(arg0) {
360
+ const ret = new Uint8Array(arg0);
361
+ return ret;
362
+ };
363
+
364
+ exports.__wbg_next_138a17bbf04e926c = function(arg0) {
365
+ const ret = arg0.next;
366
+ return ret;
367
+ };
368
+
369
+ exports.__wbg_next_3cfe5c0fe2a4cc53 = function() { return handleError(function (arg0) {
370
+ const ret = arg0.next();
371
+ return ret;
372
+ }, arguments) };
373
+
374
+ exports.__wbg_prototypesetcall_dfe9b766cdc1f1fd = function(arg0, arg1, arg2) {
375
+ Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);
376
+ };
377
+
378
+ exports.__wbg_value_57b7b035e117f7ee = function(arg0) {
379
+ const ret = arg0.value;
380
+ return ret;
381
+ };
382
+
383
+ exports.__wbindgen_cast_2241b6af4c4b2941 = function(arg0, arg1) {
384
+ // Cast intrinsic for `Ref(String) -> Externref`.
385
+ const ret = getStringFromWasm0(arg0, arg1);
386
+ return ret;
79
387
  };
80
388
 
81
389
  exports.__wbindgen_init_externref_table = function() {
@@ -86,7 +394,6 @@ exports.__wbindgen_init_externref_table = function() {
86
394
  table.set(offset + 1, null);
87
395
  table.set(offset + 2, true);
88
396
  table.set(offset + 3, false);
89
- ;
90
397
  };
91
398
 
92
399
  const wasmPath = `${__dirname}/wasm_bg.wasm`;
@@ -95,4 +402,3 @@ const wasmModule = new WebAssembly.Module(wasmBytes);
95
402
  const wasm = exports.__wasm = new WebAssembly.Instance(wasmModule, imports).exports;
96
403
 
97
404
  wasm.__wbindgen_start();
98
-
Binary file
@@ -2,7 +2,12 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const is_candid_compatible: (a: number, b: number, c: number, d: number) => number;
5
- export const __wbindgen_externrefs: WebAssembly.Table;
5
+ export const add_custom_sections: (a: number, b: number, c: any) => [number, number, number, number];
6
6
  export const __wbindgen_malloc: (a: number, b: number) => number;
7
7
  export const __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
8
+ export const __wbindgen_exn_store: (a: number) => void;
9
+ export const __externref_table_alloc: () => number;
10
+ export const __wbindgen_externrefs: WebAssembly.Table;
11
+ export const __externref_table_dealloc: (a: number) => void;
12
+ export const __wbindgen_free: (a: number, b: number, c: number) => void;
8
13
  export const __wbindgen_start: () => void;
@@ -1,5 +1,8 @@
1
1
  /* tslint:disable */
2
2
  /* eslint-disable */
3
+
4
+ export function add_custom_sections(bytes: Uint8Array, custom_sections: any): Uint8Array;
5
+
3
6
  export function is_candid_compatible(new_interface: string, original_interface: string): boolean;
4
7
 
5
8
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
@@ -7,13 +10,19 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
7
10
  export interface InitOutput {
8
11
  readonly memory: WebAssembly.Memory;
9
12
  readonly is_candid_compatible: (a: number, b: number, c: number, d: number) => number;
10
- readonly __wbindgen_externrefs: WebAssembly.Table;
13
+ readonly add_custom_sections: (a: number, b: number, c: any) => [number, number, number, number];
11
14
  readonly __wbindgen_malloc: (a: number, b: number) => number;
12
15
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
16
+ readonly __wbindgen_exn_store: (a: number) => void;
17
+ readonly __externref_table_alloc: () => number;
18
+ readonly __wbindgen_externrefs: WebAssembly.Table;
19
+ readonly __externref_table_dealloc: (a: number) => void;
20
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
13
21
  readonly __wbindgen_start: () => void;
14
22
  }
15
23
 
16
24
  export type SyncInitInput = BufferSource | WebAssembly.Module;
25
+
17
26
  /**
18
27
  * Instantiates the given `module`, which can either be bytes or
19
28
  * a precompiled `WebAssembly.Module`.