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 +40 -13
- package/dist/commands/build.js +36 -12
- package/dist/package.json +2 -2
- package/dist/types.d.ts +1 -0
- package/dist/wasm/pkg/nodejs/wasm.d.ts +3 -0
- package/dist/wasm/pkg/nodejs/wasm.js +323 -17
- package/dist/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +6 -1
- package/dist/wasm/pkg/web/wasm.d.ts +10 -1
- package/dist/wasm/pkg/web/wasm.js +300 -21
- package/dist/wasm/pkg/web/wasm_bg.wasm +0 -0
- package/dist/wasm/pkg/web/wasm_bg.wasm.d.ts +6 -1
- package/dist/wasm.d.ts +6 -1
- package/package.json +2 -2
- package/tests/__snapshots__/cli.test.ts.snap +16 -16
- package/tests/build/error/src/Bar.mo +2 -2
- package/tests/build/success/candid/bar.did +1 -0
- package/tests/build/success/mops.toml +8 -3
- package/types.ts +1 -0
- package/wasm/Cargo.toml +2 -5
- package/wasm/pkg/nodejs/wasm.d.ts +3 -0
- package/wasm/pkg/nodejs/wasm.js +323 -17
- package/wasm/pkg/nodejs/wasm_bg.wasm +0 -0
- package/wasm/pkg/nodejs/wasm_bg.wasm.d.ts +6 -1
- package/wasm/pkg/web/wasm.d.ts +10 -1
- package/wasm/pkg/web/wasm.js +300 -21
- package/wasm/pkg/web/wasm_bg.wasm +0 -0
- package/wasm/pkg/web/wasm_bg.wasm.d.ts +6 -1
- package/wasm/src/lib.rs +10 -5
- package/wasm/src/utils.rs +15 -0
- package/wasm/src/wasm_utils.rs +79 -0
- package/wasm.ts +10 -1
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
|
-
|
|
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.
|
|
157
|
+
chalk.gray(
|
|
150
158
|
`Candid compatibility check passed for canister ${canisterName}`,
|
|
151
159
|
),
|
|
152
160
|
);
|
|
153
161
|
}
|
|
154
|
-
} catch (
|
|
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
|
-
|
|
162
|
-
|
|
163
|
-
|
|
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}${
|
|
193
|
+
`Error while compiling canister ${canisterName}${err?.message ? `\n${err.message}` : ""}`,
|
|
167
194
|
);
|
|
168
195
|
}
|
|
169
196
|
options.verbose && console.timeEnd(`build canister ${canisterName}`);
|
package/dist/commands/build.js
CHANGED
|
@@ -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
|
-
|
|
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.
|
|
112
|
+
console.log(chalk.gray(`Candid compatibility check passed for canister ${canisterName}`));
|
|
105
113
|
}
|
|
106
114
|
}
|
|
107
|
-
catch (
|
|
108
|
-
cliError(`Error during Candid compatibility check for canister ${canisterName}
|
|
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 (
|
|
113
|
-
if (
|
|
114
|
-
throw
|
|
136
|
+
catch (err) {
|
|
137
|
+
if (err.message?.includes("Build failed for canister")) {
|
|
138
|
+
throw err;
|
|
115
139
|
}
|
|
116
|
-
cliError(`Error while compiling canister ${canisterName}${
|
|
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.
|
|
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.
|
|
73
|
+
"tar": "7.5.6",
|
|
74
74
|
"terminal-size": "4.0.0"
|
|
75
75
|
},
|
|
76
76
|
"devDependencies": {
|
package/dist/types.d.ts
CHANGED
|
@@ -2,10 +2,96 @@
|
|
|
2
2
|
let imports = {};
|
|
3
3
|
imports['__wbindgen_placeholder__'] = module.exports;
|
|
4
4
|
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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`.
|