@thi.ng/wasm-api 0.3.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -1
- package/README.md +12 -8
- package/api.d.ts +27 -3
- package/bridge.d.ts +66 -4
- package/bridge.js +92 -29
- package/dev/hello.zig +5 -0
- package/package.json +6 -5
- package/test/custom.zig +6 -2
- package/zig/core.zig +63 -26
- package/dev/zig-cache/o/85202d15b9c43c8c66de01ab98d6eb2c/builtin.zig +0 -39
- package/dev/zig-cache/o/9e1187e9310422c9c2330ebceeaecce7/builtin.zig +0 -39
- package/dev/zig-cache/o/f647d1186cb589536c92b809f6e25f75/builtin.zig +0 -39
- package/doc/assets/main.js +0 -52
- package/doc/assets/search.js +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Change Log
|
|
2
2
|
|
|
3
|
-
- **Last updated**: 2022-08-
|
|
3
|
+
- **Last updated**: 2022-08-08T22:36:17Z
|
|
4
4
|
- **Generator**: [thi.ng/monopub](https://thi.ng/monopub)
|
|
5
5
|
|
|
6
6
|
All notable changes to this project will be documented in this file.
|
|
@@ -9,6 +9,26 @@ See [Conventional Commits](https://conventionalcommits.org/) for commit guidelin
|
|
|
9
9
|
**Note:** Unlisted _patch_ versions only involve non-code or otherwise excluded changes
|
|
10
10
|
and/or version bumps of transitive dependencies.
|
|
11
11
|
|
|
12
|
+
## [0.5.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.5.0) (2022-08-08)
|
|
13
|
+
|
|
14
|
+
#### 🚀 Features
|
|
15
|
+
|
|
16
|
+
- add memory allocation ([980c1f2](https://github.com/thi-ng/umbrella/commit/980c1f2))
|
|
17
|
+
- add WasmBridge.allocate()/free()
|
|
18
|
+
- add WasmBridge.growMemory()
|
|
19
|
+
- extract WasmBridge.ensureMemory()
|
|
20
|
+
- update WasmExports
|
|
21
|
+
- update Zig bindings (configurable allocator, GPA as default)
|
|
22
|
+
|
|
23
|
+
## [0.4.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.4.0) (2022-08-07)
|
|
24
|
+
|
|
25
|
+
#### 🚀 Features
|
|
26
|
+
|
|
27
|
+
- use named import objects ([4965f20](https://github.com/thi-ng/umbrella/commit/4965f20))
|
|
28
|
+
- switch to name import objects to avoid merging into flat namespace
|
|
29
|
+
- update externs in core.zig
|
|
30
|
+
- update docstrings
|
|
31
|
+
|
|
12
32
|
## [0.3.0](https://github.com/thi-ng/umbrella/tree/@thi.ng/wasm-api@0.3.0) (2022-08-04)
|
|
13
33
|
|
|
14
34
|
#### 🚀 Features
|
package/README.md
CHANGED
|
@@ -57,15 +57,15 @@ export class CustomAPI implements IWasmAPI {
|
|
|
57
57
|
|
|
58
58
|
/**
|
|
59
59
|
* Returns object of functions to import as externals into
|
|
60
|
-
* the WASM module. These imports are merged
|
|
61
|
-
*
|
|
60
|
+
* the WASM module. These imports are merged into a larger
|
|
61
|
+
* imports object alongside the bridge's core API...
|
|
62
62
|
*/
|
|
63
63
|
getImports(): WebAssembly.Imports {
|
|
64
64
|
return {
|
|
65
65
|
/**
|
|
66
66
|
* Writes 2 random float32 numbers to given address
|
|
67
67
|
*/
|
|
68
|
-
|
|
68
|
+
randomVec2: (addr: number) => {
|
|
69
69
|
this.parent.f32.set(
|
|
70
70
|
[Math.random(), Math.random()],
|
|
71
71
|
addr >> 2
|
|
@@ -83,14 +83,17 @@ export const bridge = new WasmBridge({ custom: new CustomAPI() });
|
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
In Zig (or any other language of your choice) we can then utilize this custom
|
|
86
|
-
API like so (Please also see example further below in this
|
|
86
|
+
API like so (Please also see /test/index.ts` & the example further below in this
|
|
87
|
+
readme):
|
|
87
88
|
|
|
88
89
|
```zig
|
|
89
90
|
// Import JS core API
|
|
90
91
|
const js = @import("wasmapi");
|
|
91
92
|
|
|
92
93
|
/// JS external to fill vec2 w/ random values
|
|
93
|
-
|
|
94
|
+
/// Note: Each API module uses a separate import object to avoid naming clashes
|
|
95
|
+
/// Here we declare an external binding belonging to the "custom" import group
|
|
96
|
+
extern "custom" fn randomVec2(addr: usize) void;
|
|
94
97
|
|
|
95
98
|
export fn test_randomVec2() void {
|
|
96
99
|
var foo = [2]f32{ 0, 0 };
|
|
@@ -99,7 +102,7 @@ export fn test_randomVec2() void {
|
|
|
99
102
|
js.printF32Array(foo[0..]);
|
|
100
103
|
|
|
101
104
|
// populate foo with random numbers
|
|
102
|
-
|
|
105
|
+
randomVec2(@ptrToInt(&foo));
|
|
103
106
|
|
|
104
107
|
// print result
|
|
105
108
|
js.printF32Array(foo[0..]);
|
|
@@ -182,7 +185,7 @@ node --experimental-repl-await
|
|
|
182
185
|
> const wasmApi = await import("@thi.ng/wasm-api");
|
|
183
186
|
```
|
|
184
187
|
|
|
185
|
-
Package sizes (gzipped, pre-treeshake): ESM: 1.
|
|
188
|
+
Package sizes (gzipped, pre-treeshake): ESM: 1.61 KB
|
|
186
189
|
|
|
187
190
|
## Dependencies
|
|
188
191
|
|
|
@@ -212,6 +215,7 @@ interface App extends WasmExports {
|
|
|
212
215
|
|
|
213
216
|
// instantiate WASM module using imports provided by the bridge
|
|
214
217
|
// this also initializes any bindings & bridge child APIs (if any)
|
|
218
|
+
// (also accepts a fetch() `Response` as input)
|
|
215
219
|
await bridge.instantiate(readFileSync("hello.wasm"));
|
|
216
220
|
|
|
217
221
|
// call an exported WASM function
|
|
@@ -253,7 +257,7 @@ The resulting WASM:
|
|
|
253
257
|
(module
|
|
254
258
|
(type $i32_i32_=>_none (func (param i32 i32)))
|
|
255
259
|
(type $none_=>_none (func))
|
|
256
|
-
(import "
|
|
260
|
+
(import "core" "_printStr" (func $fimport$0 (param i32 i32)))
|
|
257
261
|
(global $global$0 (mut i32) (i32.const 65536))
|
|
258
262
|
(memory $0 2)
|
|
259
263
|
(data (i32.const 65536) "hello world!\00")
|
package/api.d.ts
CHANGED
|
@@ -27,7 +27,8 @@ export interface IWasmAPI<T extends WasmExports = WasmExports> {
|
|
|
27
27
|
}
|
|
28
28
|
/**
|
|
29
29
|
* Base interface of exports declared by the WASM module. At the very least, the
|
|
30
|
-
* module needs to export its memory
|
|
30
|
+
* module needs to export its memory and the functions defined in this
|
|
31
|
+
* interface.
|
|
31
32
|
*
|
|
32
33
|
* @remarks
|
|
33
34
|
* This interface is supposed to be extended with the concrete exports defined
|
|
@@ -39,16 +40,39 @@ export interface IWasmAPI<T extends WasmExports = WasmExports> {
|
|
|
39
40
|
export interface WasmExports {
|
|
40
41
|
/**
|
|
41
42
|
* The WASM module's linear memory buffer. The `WasmBridge` automatically
|
|
42
|
-
* creates various typed views of that memory.
|
|
43
|
+
* creates various typed views of that memory (i.e. u8, u16, u32, f32 etc.)
|
|
43
44
|
*/
|
|
44
45
|
memory: WebAssembly.Memory;
|
|
46
|
+
/**
|
|
47
|
+
* Implementation specific memory allocation function (likely heap-based).
|
|
48
|
+
* If successful returns address of new memory block, or zero if
|
|
49
|
+
* unsuccessful.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* In the supplied Zig bindings (see `/zig/core.zig`), by default this is
|
|
53
|
+
* using the `std.heap.GeneralPurposeAllocator` (which also automatically
|
|
54
|
+
* handles growing the WASM memory), however as mentioned the underlying
|
|
55
|
+
* mechanism is purposefully left to the actual WASM-side implementation. In
|
|
56
|
+
* a C program, this would likely use `malloc()` or similar...
|
|
57
|
+
*/
|
|
58
|
+
_wasm_allocate(numBytes: number): number;
|
|
59
|
+
/**
|
|
60
|
+
* Implementation specific function to free a previously allocated chunk of
|
|
61
|
+
* of WASM memory (allocated via {@link WasmExports._wasm_allocate}).
|
|
62
|
+
*
|
|
63
|
+
* @remarks
|
|
64
|
+
* In the supplied Zig bindings (/zig/core.zig) this is a no-op (currently).
|
|
65
|
+
*
|
|
66
|
+
* @param addr
|
|
67
|
+
*/
|
|
68
|
+
_wasm_free(addr: number): void;
|
|
45
69
|
}
|
|
46
70
|
/**
|
|
47
71
|
* Core API of WASM imports defined by the {@link WasmBridge}. The same
|
|
48
72
|
* functions are declared as bindings in `/zig/core.zig`. Also see this file for
|
|
49
73
|
* documentation of each function...
|
|
50
74
|
*/
|
|
51
|
-
export interface CoreAPI {
|
|
75
|
+
export interface CoreAPI extends WebAssembly.ModuleImports {
|
|
52
76
|
printI8: Fn<number, void>;
|
|
53
77
|
printU8: Fn<number, void>;
|
|
54
78
|
printU8Hex: Fn<number, void>;
|
package/bridge.d.ts
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
1
2
|
import type { NumericArray } from "@thi.ng/api";
|
|
2
3
|
import type { ILogger } from "@thi.ng/logger";
|
|
3
4
|
import type { BigIntArray, CoreAPI, IWasmAPI, WasmExports } from "./api.js";
|
|
5
|
+
export declare const OutOfMemoryError: {
|
|
6
|
+
new (msg?: string | undefined): {
|
|
7
|
+
name: string;
|
|
8
|
+
message: string;
|
|
9
|
+
stack?: string | undefined;
|
|
10
|
+
};
|
|
11
|
+
captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void;
|
|
12
|
+
prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined;
|
|
13
|
+
stackTraceLimit: number;
|
|
14
|
+
};
|
|
4
15
|
/**
|
|
5
16
|
* The main interop API bridge between the JS host environment and a WebAssembly
|
|
6
17
|
* module. This class provides a small core API with various typed accessors and
|
|
@@ -32,8 +43,9 @@ export declare class WasmBridge<T extends WasmExports = WasmExports> {
|
|
|
32
43
|
f64: Float64Array;
|
|
33
44
|
utf8Decoder: TextDecoder;
|
|
34
45
|
utf8Encoder: TextEncoder;
|
|
35
|
-
|
|
46
|
+
imports: WebAssembly.Imports;
|
|
36
47
|
exports: T;
|
|
48
|
+
core: CoreAPI;
|
|
37
49
|
constructor(modules?: Record<string, IWasmAPI<T>>, logger?: ILogger);
|
|
38
50
|
/**
|
|
39
51
|
* Instantiates WASM module from given `src` (and optional provided extra
|
|
@@ -57,17 +69,67 @@ export declare class WasmBridge<T extends WasmExports = WasmExports> {
|
|
|
57
69
|
* @param exports
|
|
58
70
|
*/
|
|
59
71
|
init(exports: T): Promise<boolean>;
|
|
72
|
+
/**
|
|
73
|
+
* Called automatically. Initializes and/or updates the various typed WASM
|
|
74
|
+
* memory views (e.g. after growing the WASM memory).
|
|
75
|
+
*/
|
|
76
|
+
ensureMemory(): void;
|
|
60
77
|
/**
|
|
61
78
|
* Required use for WASM module instantiation to provide JS imports to the
|
|
62
79
|
* module. Returns an object of all WASM imports declared by the bridge core
|
|
63
80
|
* API and any provided bridge API modules.
|
|
64
81
|
*
|
|
65
82
|
* @remarks
|
|
66
|
-
* Since
|
|
67
|
-
*
|
|
68
|
-
*
|
|
83
|
+
* Since v0.4.0 each API module's imports will be in their own WASM import
|
|
84
|
+
* object, named using the same key which was assigned to the module when
|
|
85
|
+
* creating the WASM bridge. The bridge's core API will be named `core` and
|
|
86
|
+
* is reserved.
|
|
87
|
+
*
|
|
88
|
+
* @example
|
|
89
|
+
* The following creates a bridge with a fictional `custom` API module:
|
|
90
|
+
*
|
|
91
|
+
* ```ts
|
|
92
|
+
* const bridge = new WasmBridge({ custom: new CustomAPI() });
|
|
93
|
+
*
|
|
94
|
+
* // get combined imports object
|
|
95
|
+
* bridge.getImports();
|
|
96
|
+
* {
|
|
97
|
+
* // imports defined by the core API of the bridge itself
|
|
98
|
+
* core: { ... },
|
|
99
|
+
* // imports defined by the CustomAPI module
|
|
100
|
+
* custom: { ... }
|
|
101
|
+
* }
|
|
102
|
+
* ```
|
|
103
|
+
*
|
|
104
|
+
* Any related API bindings on the WASM (Zig) side then also need to refer
|
|
105
|
+
* to these custom import sections (also see `/zig/core.zig`):
|
|
106
|
+
*
|
|
107
|
+
* ```zig
|
|
108
|
+
* pub export "custom" fn foo(x: u32) void;
|
|
109
|
+
* ```
|
|
69
110
|
*/
|
|
70
111
|
getImports(): WebAssembly.Imports;
|
|
112
|
+
/**
|
|
113
|
+
* Attempts to grow the WASM memory by an additional `numPages` (64KB/page)
|
|
114
|
+
* and if successful updates all typed memory views to use the new
|
|
115
|
+
* underlying buffer.
|
|
116
|
+
*
|
|
117
|
+
* @param numPages
|
|
118
|
+
*/
|
|
119
|
+
growMemory(numPages: number): void;
|
|
120
|
+
/**
|
|
121
|
+
* Attempts to allocate `numBytes` using the exported WASM core API function
|
|
122
|
+
* {@link WasmExports._wasm_allocate} (implementation specific) and returns
|
|
123
|
+
* start address of the new memory block. If unsuccessful, throws an
|
|
124
|
+
* {@link OutOfMemoryError}.
|
|
125
|
+
*
|
|
126
|
+
* @remarks
|
|
127
|
+
* See {@link WasmExports._wasm_allocate} docs for further details.
|
|
128
|
+
*
|
|
129
|
+
* @param numBytes
|
|
130
|
+
*/
|
|
131
|
+
allocate(numBytes: number): number;
|
|
132
|
+
free(addr: number): void;
|
|
71
133
|
getI8(addr: number): number;
|
|
72
134
|
getU8(addr: number): number;
|
|
73
135
|
getI16(addr: number): number;
|
package/bridge.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
+
import { defError } from "@thi.ng/errors/deferror";
|
|
1
2
|
import { illegalArgs } from "@thi.ng/errors/illegal-arguments";
|
|
2
3
|
import { U16, U32, U64HL, U8 } from "@thi.ng/hex";
|
|
3
4
|
import { ConsoleLogger } from "@thi.ng/logger/console";
|
|
4
5
|
const B32 = BigInt(32);
|
|
6
|
+
export const OutOfMemoryError = defError(() => "Out of memory");
|
|
5
7
|
/**
|
|
6
8
|
* The main interop API bridge between the JS host environment and a WebAssembly
|
|
7
9
|
* module. This class provides a small core API with various typed accessors and
|
|
@@ -70,14 +72,10 @@ export class WasmBridge {
|
|
|
70
72
|
*/
|
|
71
73
|
async instantiate(src, imports) {
|
|
72
74
|
const $src = await src;
|
|
73
|
-
const $imports = { ...
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
wasm = await WebAssembly.instantiate($src, $imports);
|
|
80
|
-
}
|
|
75
|
+
const $imports = { ...this.getImports(), ...imports };
|
|
76
|
+
const wasm = await ($src instanceof Response
|
|
77
|
+
? WebAssembly.instantiateStreaming($src, $imports)
|
|
78
|
+
: WebAssembly.instantiate($src, $imports));
|
|
81
79
|
return this.init(wasm.instance.exports);
|
|
82
80
|
}
|
|
83
81
|
/**
|
|
@@ -89,7 +87,23 @@ export class WasmBridge {
|
|
|
89
87
|
*/
|
|
90
88
|
async init(exports) {
|
|
91
89
|
this.exports = exports;
|
|
92
|
-
|
|
90
|
+
this.ensureMemory();
|
|
91
|
+
for (let id in this.modules) {
|
|
92
|
+
this.logger.debug(`initializing API module: ${id}`);
|
|
93
|
+
const status = await this.modules[id].init(this);
|
|
94
|
+
if (!status)
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Called automatically. Initializes and/or updates the various typed WASM
|
|
101
|
+
* memory views (e.g. after growing the WASM memory).
|
|
102
|
+
*/
|
|
103
|
+
ensureMemory() {
|
|
104
|
+
const buf = this.exports.memory.buffer;
|
|
105
|
+
if (this.u8 && this.u8.buffer === buf)
|
|
106
|
+
return;
|
|
93
107
|
this.i8 = new Int8Array(buf);
|
|
94
108
|
this.u8 = new Uint8Array(buf);
|
|
95
109
|
this.i16 = new Int16Array(buf);
|
|
@@ -100,13 +114,6 @@ export class WasmBridge {
|
|
|
100
114
|
this.u64 = new BigUint64Array(buf);
|
|
101
115
|
this.f32 = new Float32Array(buf);
|
|
102
116
|
this.f64 = new Float64Array(buf);
|
|
103
|
-
for (let id in this.modules) {
|
|
104
|
-
this.logger.debug(`initializing API module: ${id}`);
|
|
105
|
-
const status = await this.modules[id].init(this);
|
|
106
|
-
if (!status)
|
|
107
|
-
return false;
|
|
108
|
-
}
|
|
109
|
-
return true;
|
|
110
117
|
}
|
|
111
118
|
/**
|
|
112
119
|
* Required use for WASM module instantiation to provide JS imports to the
|
|
@@ -114,23 +121,79 @@ export class WasmBridge {
|
|
|
114
121
|
* API and any provided bridge API modules.
|
|
115
122
|
*
|
|
116
123
|
* @remarks
|
|
117
|
-
* Since
|
|
118
|
-
*
|
|
119
|
-
*
|
|
124
|
+
* Since v0.4.0 each API module's imports will be in their own WASM import
|
|
125
|
+
* object, named using the same key which was assigned to the module when
|
|
126
|
+
* creating the WASM bridge. The bridge's core API will be named `core` and
|
|
127
|
+
* is reserved.
|
|
128
|
+
*
|
|
129
|
+
* @example
|
|
130
|
+
* The following creates a bridge with a fictional `custom` API module:
|
|
131
|
+
*
|
|
132
|
+
* ```ts
|
|
133
|
+
* const bridge = new WasmBridge({ custom: new CustomAPI() });
|
|
134
|
+
*
|
|
135
|
+
* // get combined imports object
|
|
136
|
+
* bridge.getImports();
|
|
137
|
+
* {
|
|
138
|
+
* // imports defined by the core API of the bridge itself
|
|
139
|
+
* core: { ... },
|
|
140
|
+
* // imports defined by the CustomAPI module
|
|
141
|
+
* custom: { ... }
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*
|
|
145
|
+
* Any related API bindings on the WASM (Zig) side then also need to refer
|
|
146
|
+
* to these custom import sections (also see `/zig/core.zig`):
|
|
147
|
+
*
|
|
148
|
+
* ```zig
|
|
149
|
+
* pub export "custom" fn foo(x: u32) void;
|
|
150
|
+
* ```
|
|
120
151
|
*/
|
|
121
152
|
getImports() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (env[k] !== undefined) {
|
|
128
|
-
illegalArgs(`attempt to redeclare import: ${k} by API module ${id}`);
|
|
153
|
+
if (!this.imports) {
|
|
154
|
+
this.imports = { core: this.core };
|
|
155
|
+
for (let id in this.modules) {
|
|
156
|
+
if (this.imports[id] !== undefined) {
|
|
157
|
+
illegalArgs(`attempt to redeclare API module ${id}`);
|
|
129
158
|
}
|
|
159
|
+
this.imports[id] = this.modules[id].getImports();
|
|
130
160
|
}
|
|
131
|
-
Object.assign(env, imports);
|
|
132
161
|
}
|
|
133
|
-
return
|
|
162
|
+
return this.imports;
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Attempts to grow the WASM memory by an additional `numPages` (64KB/page)
|
|
166
|
+
* and if successful updates all typed memory views to use the new
|
|
167
|
+
* underlying buffer.
|
|
168
|
+
*
|
|
169
|
+
* @param numPages
|
|
170
|
+
*/
|
|
171
|
+
growMemory(numPages) {
|
|
172
|
+
this.exports.memory.grow(numPages);
|
|
173
|
+
this.ensureMemory();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Attempts to allocate `numBytes` using the exported WASM core API function
|
|
177
|
+
* {@link WasmExports._wasm_allocate} (implementation specific) and returns
|
|
178
|
+
* start address of the new memory block. If unsuccessful, throws an
|
|
179
|
+
* {@link OutOfMemoryError}.
|
|
180
|
+
*
|
|
181
|
+
* @remarks
|
|
182
|
+
* See {@link WasmExports._wasm_allocate} docs for further details.
|
|
183
|
+
*
|
|
184
|
+
* @param numBytes
|
|
185
|
+
*/
|
|
186
|
+
allocate(numBytes) {
|
|
187
|
+
const addr = this.exports._wasm_allocate(numBytes);
|
|
188
|
+
if (!addr)
|
|
189
|
+
throw new OutOfMemoryError(`unable to allocate: ${numBytes}`);
|
|
190
|
+
this.logger.debug(`allocated ${numBytes} bytes @ 0x${U32(addr)}`);
|
|
191
|
+
this.ensureMemory();
|
|
192
|
+
return addr;
|
|
193
|
+
}
|
|
194
|
+
free(addr) {
|
|
195
|
+
this.logger.debug(`freeing memory @ 0x${U32(addr)}`);
|
|
196
|
+
this.exports._wasm_free(addr);
|
|
134
197
|
}
|
|
135
198
|
getI8(addr) {
|
|
136
199
|
return this.i8[addr];
|
|
@@ -286,7 +349,7 @@ export class WasmBridge {
|
|
|
286
349
|
setString(str, addr, maxBytes, terminate = true) {
|
|
287
350
|
maxBytes = Math.min(maxBytes, this.u8.length - addr);
|
|
288
351
|
const len = this.utf8Encoder.encodeInto(str, this.u8.subarray(addr, addr + maxBytes)).written;
|
|
289
|
-
if (len
|
|
352
|
+
if (len == null || len >= maxBytes + (terminate ? 0 : 1)) {
|
|
290
353
|
illegalArgs(`error writing string to 0x${U32(addr)}`);
|
|
291
354
|
}
|
|
292
355
|
if (terminate) {
|
package/dev/hello.zig
CHANGED
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
/// import externals
|
|
4
4
|
/// see build command for configuration
|
|
5
5
|
const js = @import("wasmapi");
|
|
6
|
+
const std = @import("std");
|
|
7
|
+
|
|
8
|
+
// var buf: [1024]u8 = undefined;
|
|
9
|
+
// var fba = std.heap.FixedBufferAllocator.init(&buf);
|
|
10
|
+
pub const WASM_ALLOCATOR: ?std.mem.Allocator = null; //fba.allocator();
|
|
6
11
|
|
|
7
12
|
export fn start() void {
|
|
8
13
|
js.printStr("hello world!");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@thi.ng/wasm-api",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.0",
|
|
4
4
|
"description": "Modular, extensible API bridge and generic glue code between JS & WebAssembly",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"module": "./index.js",
|
|
@@ -31,13 +31,14 @@
|
|
|
31
31
|
"doc:readme": "yarn doc:stats && tools:readme",
|
|
32
32
|
"doc:stats": "tools:module-stats",
|
|
33
33
|
"pub": "yarn npm publish --access public",
|
|
34
|
-
"test": "testament test"
|
|
34
|
+
"test": "testament test",
|
|
35
|
+
"test:build-zig": "zig build-lib -O ReleaseSmall -target wasm32-freestanding -dynamic --strip --pkg-begin wasmapi zig/core.zig --pkg-end test/custom.zig && wasm-dis -o custom.wast custom.wasm && cp custom.wasm test"
|
|
35
36
|
},
|
|
36
37
|
"dependencies": {
|
|
37
38
|
"@thi.ng/api": "^8.3.9",
|
|
38
|
-
"@thi.ng/errors": "^2.1.
|
|
39
|
+
"@thi.ng/errors": "^2.1.10",
|
|
39
40
|
"@thi.ng/hex": "^2.1.9",
|
|
40
|
-
"@thi.ng/idgen": "^2.1.
|
|
41
|
+
"@thi.ng/idgen": "^2.1.10",
|
|
41
42
|
"@thi.ng/logger": "^1.2.0"
|
|
42
43
|
},
|
|
43
44
|
"devDependencies": {
|
|
@@ -92,5 +93,5 @@
|
|
|
92
93
|
"status": "alpha",
|
|
93
94
|
"year": 2022
|
|
94
95
|
},
|
|
95
|
-
"gitHead": "
|
|
96
|
+
"gitHead": "e579cb171fc720cbf0b71d3a5f4adfacccdaf214\n"
|
|
96
97
|
}
|
package/test/custom.zig
CHANGED
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
// Import JS core API
|
|
2
2
|
const js = @import("wasmapi");
|
|
3
|
+
const std = @import("std");
|
|
4
|
+
|
|
5
|
+
pub const WASM_ALLOCATOR: ?std.mem.Allocator = null;
|
|
3
6
|
|
|
4
7
|
/// Fill vec2 with random values
|
|
5
|
-
|
|
8
|
+
/// Associate this function with the "custom" import section
|
|
9
|
+
extern "custom" fn setVec2(addr: usize) void;
|
|
6
10
|
|
|
7
11
|
export fn test_setVec2() void {
|
|
8
12
|
var foo = [2]f32{ 0, 0 };
|
|
9
13
|
js.printF32Array(foo[0..]);
|
|
10
|
-
|
|
14
|
+
setVec2(@ptrToInt(&foo));
|
|
11
15
|
js.printF32Array(foo[0..]);
|
|
12
16
|
}
|
package/zig/core.zig
CHANGED
|
@@ -1,51 +1,88 @@
|
|
|
1
1
|
//! JavaScript externals for https://thi.ng/wasm-api
|
|
2
2
|
|
|
3
|
+
const std = @import("std");
|
|
4
|
+
const root = @import("root");
|
|
5
|
+
|
|
6
|
+
/// Initialize the allocator to be exposed to the WASM host env
|
|
7
|
+
/// (via `_wasm_allocate()` and `_wasm_free()`).
|
|
8
|
+
/// If the user defines a public `WASM_ALLOCATOR` in their root file
|
|
9
|
+
/// then this allocator will be used, otherwise the implementation
|
|
10
|
+
/// falls back to using GPA.
|
|
11
|
+
/// Note: The type for this var is purposefully chosen as an optional,
|
|
12
|
+
/// effectively disabling allocations from the WASM host side if
|
|
13
|
+
/// `WASM_ALLOCATOR` is set to null.
|
|
14
|
+
pub const allocator: ?std.mem.Allocator = alloc: {
|
|
15
|
+
if (@hasDecl(root, "WASM_ALLOCATOR")) {
|
|
16
|
+
break :alloc root.WASM_ALLOCATOR;
|
|
17
|
+
} else {
|
|
18
|
+
var gpa = std.heap.GeneralPurposeAllocator(.{}){};
|
|
19
|
+
break :alloc gpa.allocator();
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/// Attempts to allocate memory using configured `allocator` and if
|
|
24
|
+
/// successful returns address of new chunk or zero if failed
|
|
25
|
+
/// Note: For SIMD compatibility all allocations are aligned to 16 bytes
|
|
26
|
+
pub export fn _wasm_allocate(numBytes: usize) usize {
|
|
27
|
+
if (allocator) |a| {
|
|
28
|
+
var buf = a.alignedAlloc(u8, 16, numBytes) catch return 0;
|
|
29
|
+
return @ptrToInt(buf.ptr);
|
|
30
|
+
}
|
|
31
|
+
return 0;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/// Frees chunk of heap memory (previously allocated using `_wasm_allocate()`)
|
|
35
|
+
/// starting at given address. Note: This is a no-op currently.
|
|
36
|
+
pub export fn _wasm_free(addr: usize) void {
|
|
37
|
+
_ = addr;
|
|
38
|
+
}
|
|
39
|
+
|
|
3
40
|
/// Prints number using configured JS logger
|
|
4
|
-
pub extern fn printI8(x: i8) void;
|
|
41
|
+
pub extern "core" fn printI8(x: i8) void;
|
|
5
42
|
/// Prints number using configured JS logger
|
|
6
|
-
pub extern fn printU8(x: u8) void;
|
|
43
|
+
pub extern "core" fn printU8(x: u8) void;
|
|
7
44
|
/// Prints hex number using configured JS logger
|
|
8
|
-
pub extern fn printU8Hex(x: u8) void;
|
|
45
|
+
pub extern "core" fn printU8Hex(x: u8) void;
|
|
9
46
|
|
|
10
47
|
/// Prints number using configured JS logger
|
|
11
|
-
pub extern fn printI16(x: i16) void;
|
|
48
|
+
pub extern "core" fn printI16(x: i16) void;
|
|
12
49
|
/// Prints number using configured JS logger
|
|
13
|
-
pub extern fn printU16(x: u16) void;
|
|
50
|
+
pub extern "core" fn printU16(x: u16) void;
|
|
14
51
|
/// Prints hex number using configured JS logger
|
|
15
|
-
pub extern fn printU16Hex(x: u16) void;
|
|
52
|
+
pub extern "core" fn printU16Hex(x: u16) void;
|
|
16
53
|
|
|
17
54
|
/// Prints number using configured JS logger
|
|
18
|
-
pub extern fn printI32(x: i32) void;
|
|
55
|
+
pub extern "core" fn printI32(x: i32) void;
|
|
19
56
|
/// Prints number using configured JS logger
|
|
20
|
-
pub extern fn printU32(x: u32) void;
|
|
57
|
+
pub extern "core" fn printU32(x: u32) void;
|
|
21
58
|
/// Prints hex number using configured JS logger
|
|
22
|
-
pub extern fn printU32Hex(x: u32) void;
|
|
59
|
+
pub extern "core" fn printU32Hex(x: u32) void;
|
|
23
60
|
|
|
24
61
|
/// Prints decomposed i64 number using configured JS logger
|
|
25
|
-
pub extern fn _printI64(hi: i32, lo: i32) void;
|
|
62
|
+
pub extern "core" fn _printI64(hi: i32, lo: i32) void;
|
|
26
63
|
/// Convenience wrapper for _printI64(), accepting an i64
|
|
27
64
|
pub fn printI64(x: i64) void {
|
|
28
65
|
_printI64(@truncate(i32, x >> 32), @truncate(i32, x));
|
|
29
66
|
}
|
|
30
67
|
|
|
31
68
|
/// Prints decomposed u64 number using configured JS logger
|
|
32
|
-
pub extern fn _printU64(hi: u32, lo: u32) void;
|
|
69
|
+
pub extern "core" fn _printU64(hi: u32, lo: u32) void;
|
|
33
70
|
/// Convenience wrapper for _printU64(), accepting an u64
|
|
34
71
|
pub fn printU64(x: u64) void {
|
|
35
72
|
_printU64(@truncate(u32, x >> 32), @truncate(u32, x));
|
|
36
73
|
}
|
|
37
74
|
|
|
38
75
|
/// Prints decomposed u64 hex number using configured JS logger
|
|
39
|
-
pub extern fn _printU64Hex(hi: u32, lo: u32) void;
|
|
76
|
+
pub extern "core" fn _printU64Hex(hi: u32, lo: u32) void;
|
|
40
77
|
/// Convenience wrapper for _printU64Hex(), accepting an u64
|
|
41
78
|
pub fn printU64Hex(x: u64) void {
|
|
42
79
|
_printU64Hex(@truncate(u32, x >> 32), @truncate(u32, x));
|
|
43
80
|
}
|
|
44
81
|
|
|
45
82
|
/// Prints number using configured JS logger
|
|
46
|
-
pub extern fn printF32(x: f32) void;
|
|
83
|
+
pub extern "core" fn printF32(x: f32) void;
|
|
47
84
|
/// Prints number using configured JS logger
|
|
48
|
-
pub extern fn printF64(x: f64) void;
|
|
85
|
+
pub extern "core" fn printF64(x: f64) void;
|
|
49
86
|
|
|
50
87
|
/// Prints pointer as hex number using configured JS logger
|
|
51
88
|
pub fn printPtr(ptr: *const anyopaque) void {
|
|
@@ -53,25 +90,25 @@ pub fn printPtr(ptr: *const anyopaque) void {
|
|
|
53
90
|
}
|
|
54
91
|
|
|
55
92
|
/// Prints number array using configured JS logger
|
|
56
|
-
pub extern fn _printI8Array(addr: usize, len: usize) void;
|
|
93
|
+
pub extern "core" fn _printI8Array(addr: usize, len: usize) void;
|
|
57
94
|
/// Prints number array using configured JS logger
|
|
58
|
-
pub extern fn _printU8Array(addr: usize, len: usize) void;
|
|
95
|
+
pub extern "core" fn _printU8Array(addr: usize, len: usize) void;
|
|
59
96
|
/// Prints number array using configured JS logger
|
|
60
|
-
pub extern fn _printI16Array(addr: usize, len: usize) void;
|
|
97
|
+
pub extern "core" fn _printI16Array(addr: usize, len: usize) void;
|
|
61
98
|
/// Prints number array using configured JS logger
|
|
62
|
-
pub extern fn _printU16Array(addr: usize, len: usize) void;
|
|
99
|
+
pub extern "core" fn _printU16Array(addr: usize, len: usize) void;
|
|
63
100
|
/// Prints number array using configured JS logger
|
|
64
|
-
pub extern fn _printI32Array(addr: usize, len: usize) void;
|
|
101
|
+
pub extern "core" fn _printI32Array(addr: usize, len: usize) void;
|
|
65
102
|
/// Prints number array using configured JS logger
|
|
66
|
-
pub extern fn _printU32Array(addr: usize, len: usize) void;
|
|
103
|
+
pub extern "core" fn _printU32Array(addr: usize, len: usize) void;
|
|
67
104
|
/// Prints number array using configured JS logger
|
|
68
|
-
pub extern fn _printI64Array(addr: usize, len: usize) void;
|
|
105
|
+
pub extern "core" fn _printI64Array(addr: usize, len: usize) void;
|
|
69
106
|
/// Prints number array using configured JS logger
|
|
70
|
-
pub extern fn _printU64Array(addr: usize, len: usize) void;
|
|
107
|
+
pub extern "core" fn _printU64Array(addr: usize, len: usize) void;
|
|
71
108
|
/// Prints number array using configured JS logger
|
|
72
|
-
pub extern fn _printF32Array(addr: usize, len: usize) void;
|
|
109
|
+
pub extern "core" fn _printF32Array(addr: usize, len: usize) void;
|
|
73
110
|
/// Prints number array using configured JS logger
|
|
74
|
-
pub extern fn _printF64Array(addr: usize, len: usize) void;
|
|
111
|
+
pub extern "core" fn _printF64Array(addr: usize, len: usize) void;
|
|
75
112
|
|
|
76
113
|
/// Prints number array using configured JS logger
|
|
77
114
|
pub fn printI8Array(buf: []const i8) void {
|
|
@@ -115,9 +152,9 @@ pub fn printF64Array(buf: []const f64) void {
|
|
|
115
152
|
}
|
|
116
153
|
|
|
117
154
|
/// Prints a zero-terminated string using configured JS logger
|
|
118
|
-
extern fn _printStr0(addr: usize) void;
|
|
155
|
+
pub extern "core" fn _printStr0(addr: usize) void;
|
|
119
156
|
/// Prints a string of given length using configured JS logger
|
|
120
|
-
extern fn _printStr(addr: usize, len: usize) void;
|
|
157
|
+
pub extern "core" fn _printStr(addr: usize, len: usize) void;
|
|
121
158
|
/// Convenience wrapper for _printStr, accepting a slice as arg
|
|
122
159
|
pub fn printStr(msg: []const u8) void {
|
|
123
160
|
_printStr(@ptrToInt(msg.ptr), msg.len);
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const std = @import("std");
|
|
2
|
-
/// Zig version. When writing code that supports multiple versions of Zig, prefer
|
|
3
|
-
/// feature detection (i.e. with `@hasDecl` or `@hasField`) over version checks.
|
|
4
|
-
pub const zig_version = std.SemanticVersion.parse("0.10.0-dev.3034+6fab6c3e4") catch unreachable;
|
|
5
|
-
pub const zig_backend = std.builtin.CompilerBackend.stage1;
|
|
6
|
-
/// Temporary until self-hosted supports the `cpu.arch` value.
|
|
7
|
-
pub const stage2_arch: std.Target.Cpu.Arch = .wasm32;
|
|
8
|
-
|
|
9
|
-
pub const output_mode = std.builtin.OutputMode.Lib;
|
|
10
|
-
pub const link_mode = std.builtin.LinkMode.Dynamic;
|
|
11
|
-
pub const is_test = false;
|
|
12
|
-
pub const single_threaded = true;
|
|
13
|
-
pub const abi = std.Target.Abi.musl;
|
|
14
|
-
pub const cpu: std.Target.Cpu = .{
|
|
15
|
-
.arch = .wasm32,
|
|
16
|
-
.model = &std.Target.wasm.cpu.generic,
|
|
17
|
-
.features = std.Target.wasm.featureSet(&[_]std.Target.wasm.Feature{
|
|
18
|
-
}),
|
|
19
|
-
};
|
|
20
|
-
pub const os = std.Target.Os{
|
|
21
|
-
.tag = .freestanding,
|
|
22
|
-
.version_range = .{ .none = {} },
|
|
23
|
-
};
|
|
24
|
-
pub const target = std.Target{
|
|
25
|
-
.cpu = cpu,
|
|
26
|
-
.os = os,
|
|
27
|
-
.abi = abi,
|
|
28
|
-
};
|
|
29
|
-
pub const object_format = std.Target.ObjectFormat.wasm;
|
|
30
|
-
pub const mode = std.builtin.Mode.ReleaseSmall;
|
|
31
|
-
pub const link_libc = false;
|
|
32
|
-
pub const link_libcpp = false;
|
|
33
|
-
pub const have_error_return_tracing = false;
|
|
34
|
-
pub const valgrind_support = false;
|
|
35
|
-
pub const sanitize_thread = false;
|
|
36
|
-
pub const position_independent_code = true;
|
|
37
|
-
pub const position_independent_executable = false;
|
|
38
|
-
pub const strip_debug_info = true;
|
|
39
|
-
pub const code_model = std.builtin.CodeModel.default;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const std = @import("std");
|
|
2
|
-
/// Zig version. When writing code that supports multiple versions of Zig, prefer
|
|
3
|
-
/// feature detection (i.e. with `@hasDecl` or `@hasField`) over version checks.
|
|
4
|
-
pub const zig_version = std.SemanticVersion.parse("0.10.0-dev.3034+6fab6c3e4") catch unreachable;
|
|
5
|
-
pub const zig_backend = std.builtin.CompilerBackend.stage1;
|
|
6
|
-
/// Temporary until self-hosted supports the `cpu.arch` value.
|
|
7
|
-
pub const stage2_arch: std.Target.Cpu.Arch = .wasm32;
|
|
8
|
-
|
|
9
|
-
pub const output_mode = std.builtin.OutputMode.Lib;
|
|
10
|
-
pub const link_mode = std.builtin.LinkMode.Dynamic;
|
|
11
|
-
pub const is_test = false;
|
|
12
|
-
pub const single_threaded = true;
|
|
13
|
-
pub const abi = std.Target.Abi.musl;
|
|
14
|
-
pub const cpu: std.Target.Cpu = .{
|
|
15
|
-
.arch = .wasm32,
|
|
16
|
-
.model = &std.Target.wasm.cpu.generic,
|
|
17
|
-
.features = std.Target.wasm.featureSet(&[_]std.Target.wasm.Feature{
|
|
18
|
-
}),
|
|
19
|
-
};
|
|
20
|
-
pub const os = std.Target.Os{
|
|
21
|
-
.tag = .freestanding,
|
|
22
|
-
.version_range = .{ .none = {} },
|
|
23
|
-
};
|
|
24
|
-
pub const target = std.Target{
|
|
25
|
-
.cpu = cpu,
|
|
26
|
-
.os = os,
|
|
27
|
-
.abi = abi,
|
|
28
|
-
};
|
|
29
|
-
pub const object_format = std.Target.ObjectFormat.wasm;
|
|
30
|
-
pub const mode = std.builtin.Mode.ReleaseSmall;
|
|
31
|
-
pub const link_libc = false;
|
|
32
|
-
pub const link_libcpp = false;
|
|
33
|
-
pub const have_error_return_tracing = false;
|
|
34
|
-
pub const valgrind_support = false;
|
|
35
|
-
pub const sanitize_thread = false;
|
|
36
|
-
pub const position_independent_code = true;
|
|
37
|
-
pub const position_independent_executable = false;
|
|
38
|
-
pub const strip_debug_info = true;
|
|
39
|
-
pub const code_model = std.builtin.CodeModel.default;
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
const std = @import("std");
|
|
2
|
-
/// Zig version. When writing code that supports multiple versions of Zig, prefer
|
|
3
|
-
/// feature detection (i.e. with `@hasDecl` or `@hasField`) over version checks.
|
|
4
|
-
pub const zig_version = std.SemanticVersion.parse("0.10.0-dev.3034+6fab6c3e4") catch unreachable;
|
|
5
|
-
pub const zig_backend = std.builtin.CompilerBackend.stage1;
|
|
6
|
-
/// Temporary until self-hosted supports the `cpu.arch` value.
|
|
7
|
-
pub const stage2_arch: std.Target.Cpu.Arch = .wasm32;
|
|
8
|
-
|
|
9
|
-
pub const output_mode = std.builtin.OutputMode.Lib;
|
|
10
|
-
pub const link_mode = std.builtin.LinkMode.Dynamic;
|
|
11
|
-
pub const is_test = false;
|
|
12
|
-
pub const single_threaded = true;
|
|
13
|
-
pub const abi = std.Target.Abi.musl;
|
|
14
|
-
pub const cpu: std.Target.Cpu = .{
|
|
15
|
-
.arch = .wasm32,
|
|
16
|
-
.model = &std.Target.wasm.cpu.generic,
|
|
17
|
-
.features = std.Target.wasm.featureSet(&[_]std.Target.wasm.Feature{
|
|
18
|
-
}),
|
|
19
|
-
};
|
|
20
|
-
pub const os = std.Target.Os{
|
|
21
|
-
.tag = .freestanding,
|
|
22
|
-
.version_range = .{ .none = {} },
|
|
23
|
-
};
|
|
24
|
-
pub const target = std.Target{
|
|
25
|
-
.cpu = cpu,
|
|
26
|
-
.os = os,
|
|
27
|
-
.abi = abi,
|
|
28
|
-
};
|
|
29
|
-
pub const object_format = std.Target.ObjectFormat.wasm;
|
|
30
|
-
pub const mode = std.builtin.Mode.ReleaseSmall;
|
|
31
|
-
pub const link_libc = false;
|
|
32
|
-
pub const link_libcpp = false;
|
|
33
|
-
pub const have_error_return_tracing = false;
|
|
34
|
-
pub const valgrind_support = false;
|
|
35
|
-
pub const sanitize_thread = false;
|
|
36
|
-
pub const position_independent_code = true;
|
|
37
|
-
pub const position_independent_executable = false;
|
|
38
|
-
pub const strip_debug_info = true;
|
|
39
|
-
pub const code_model = std.builtin.CodeModel.default;
|
package/doc/assets/main.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
(()=>{var Ce=Object.create;var ue=Object.defineProperty;var Pe=Object.getOwnPropertyDescriptor;var Oe=Object.getOwnPropertyNames;var Re=Object.getPrototypeOf,_e=Object.prototype.hasOwnProperty;var Me=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var De=(t,e,r,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Oe(e))!_e.call(t,i)&&i!==r&&ue(t,i,{get:()=>e[i],enumerable:!(n=Pe(e,i))||n.enumerable});return t};var Fe=(t,e,r)=>(r=t!=null?Ce(Re(t)):{},De(e||!t||!t.__esModule?ue(r,"default",{value:t,enumerable:!0}):r,t));var pe=Me((de,fe)=>{(function(){var t=function(e){var r=new t.Builder;return r.pipeline.add(t.trimmer,t.stopWordFilter,t.stemmer),r.searchPipeline.add(t.stemmer),e.call(r,r),r.build()};t.version="2.3.9";t.utils={},t.utils.warn=function(e){return function(r){e.console&&console.warn&&console.warn(r)}}(this),t.utils.asString=function(e){return e==null?"":e.toString()},t.utils.clone=function(e){if(e==null)return e;for(var r=Object.create(null),n=Object.keys(e),i=0;i<n.length;i++){var s=n[i],o=e[s];if(Array.isArray(o)){r[s]=o.slice();continue}if(typeof o=="string"||typeof o=="number"||typeof o=="boolean"){r[s]=o;continue}throw new TypeError("clone is not deep and does not support nested objects")}return r},t.FieldRef=function(e,r,n){this.docRef=e,this.fieldName=r,this._stringValue=n},t.FieldRef.joiner="/",t.FieldRef.fromString=function(e){var r=e.indexOf(t.FieldRef.joiner);if(r===-1)throw"malformed field ref string";var n=e.slice(0,r),i=e.slice(r+1);return new t.FieldRef(i,n,e)},t.FieldRef.prototype.toString=function(){return this._stringValue==null&&(this._stringValue=this.fieldName+t.FieldRef.joiner+this.docRef),this._stringValue};t.Set=function(e){if(this.elements=Object.create(null),e){this.length=e.length;for(var r=0;r<this.length;r++)this.elements[e[r]]=!0}else this.length=0},t.Set.complete={intersect:function(e){return e},union:function(){return this},contains:function(){return!0}},t.Set.empty={intersect:function(){return this},union:function(e){return e},contains:function(){return!1}},t.Set.prototype.contains=function(e){return!!this.elements[e]},t.Set.prototype.intersect=function(e){var r,n,i,s=[];if(e===t.Set.complete)return this;if(e===t.Set.empty)return e;this.length<e.length?(r=this,n=e):(r=e,n=this),i=Object.keys(r.elements);for(var o=0;o<i.length;o++){var a=i[o];a in n.elements&&s.push(a)}return new t.Set(s)},t.Set.prototype.union=function(e){return e===t.Set.complete?t.Set.complete:e===t.Set.empty?this:new t.Set(Object.keys(this.elements).concat(Object.keys(e.elements)))},t.idf=function(e,r){var n=0;for(var i in e)i!="_index"&&(n+=Object.keys(e[i]).length);var s=(r-n+.5)/(n+.5);return Math.log(1+Math.abs(s))},t.Token=function(e,r){this.str=e||"",this.metadata=r||{}},t.Token.prototype.toString=function(){return this.str},t.Token.prototype.update=function(e){return this.str=e(this.str,this.metadata),this},t.Token.prototype.clone=function(e){return e=e||function(r){return r},new t.Token(e(this.str,this.metadata),this.metadata)};t.tokenizer=function(e,r){if(e==null||e==null)return[];if(Array.isArray(e))return e.map(function(f){return new t.Token(t.utils.asString(f).toLowerCase(),t.utils.clone(r))});for(var n=e.toString().toLowerCase(),i=n.length,s=[],o=0,a=0;o<=i;o++){var l=n.charAt(o),u=o-a;if(l.match(t.tokenizer.separator)||o==i){if(u>0){var h=t.utils.clone(r)||{};h.position=[a,u],h.index=s.length,s.push(new t.Token(n.slice(a,o),h))}a=o+1}}return s},t.tokenizer.separator=/[\s\-]+/;t.Pipeline=function(){this._stack=[]},t.Pipeline.registeredFunctions=Object.create(null),t.Pipeline.registerFunction=function(e,r){r in this.registeredFunctions&&t.utils.warn("Overwriting existing registered function: "+r),e.label=r,t.Pipeline.registeredFunctions[e.label]=e},t.Pipeline.warnIfFunctionNotRegistered=function(e){var r=e.label&&e.label in this.registeredFunctions;r||t.utils.warn(`Function is not registered with pipeline. This may cause problems when serialising the index.
|
|
2
|
-
`,e)},t.Pipeline.load=function(e){var r=new t.Pipeline;return e.forEach(function(n){var i=t.Pipeline.registeredFunctions[n];if(i)r.add(i);else throw new Error("Cannot load unregistered function: "+n)}),r},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(r){t.Pipeline.warnIfFunctionNotRegistered(r),this._stack.push(r)},this)},t.Pipeline.prototype.after=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");n=n+1,this._stack.splice(n,0,r)},t.Pipeline.prototype.before=function(e,r){t.Pipeline.warnIfFunctionNotRegistered(r);var n=this._stack.indexOf(e);if(n==-1)throw new Error("Cannot find existingFn");this._stack.splice(n,0,r)},t.Pipeline.prototype.remove=function(e){var r=this._stack.indexOf(e);r!=-1&&this._stack.splice(r,1)},t.Pipeline.prototype.run=function(e){for(var r=this._stack.length,n=0;n<r;n++){for(var i=this._stack[n],s=[],o=0;o<e.length;o++){var a=i(e[o],o,e);if(!(a==null||a===""))if(Array.isArray(a))for(var l=0;l<a.length;l++)s.push(a[l]);else s.push(a)}e=s}return e},t.Pipeline.prototype.runString=function(e,r){var n=new t.Token(e,r);return this.run([n]).map(function(i){return i.toString()})},t.Pipeline.prototype.reset=function(){this._stack=[]},t.Pipeline.prototype.toJSON=function(){return this._stack.map(function(e){return t.Pipeline.warnIfFunctionNotRegistered(e),e.label})};t.Vector=function(e){this._magnitude=0,this.elements=e||[]},t.Vector.prototype.positionForIndex=function(e){if(this.elements.length==0)return 0;for(var r=0,n=this.elements.length/2,i=n-r,s=Math.floor(i/2),o=this.elements[s*2];i>1&&(o<e&&(r=s),o>e&&(n=s),o!=e);)i=n-r,s=r+Math.floor(i/2),o=this.elements[s*2];if(o==e||o>e)return s*2;if(o<e)return(s+1)*2},t.Vector.prototype.insert=function(e,r){this.upsert(e,r,function(){throw"duplicate index"})},t.Vector.prototype.upsert=function(e,r,n){this._magnitude=0;var i=this.positionForIndex(e);this.elements[i]==e?this.elements[i+1]=n(this.elements[i+1],r):this.elements.splice(i,0,e,r)},t.Vector.prototype.magnitude=function(){if(this._magnitude)return this._magnitude;for(var e=0,r=this.elements.length,n=1;n<r;n+=2){var i=this.elements[n];e+=i*i}return this._magnitude=Math.sqrt(e)},t.Vector.prototype.dot=function(e){for(var r=0,n=this.elements,i=e.elements,s=n.length,o=i.length,a=0,l=0,u=0,h=0;u<s&&h<o;)a=n[u],l=i[h],a<l?u+=2:a>l?h+=2:a==l&&(r+=n[u+1]*i[h+1],u+=2,h+=2);return r},t.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},t.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),r=1,n=0;r<this.elements.length;r+=2,n++)e[n]=this.elements[r];return e},t.Vector.prototype.toJSON=function(){return this.elements};t.stemmer=function(){var e={ational:"ate",tional:"tion",enci:"ence",anci:"ance",izer:"ize",bli:"ble",alli:"al",entli:"ent",eli:"e",ousli:"ous",ization:"ize",ation:"ate",ator:"ate",alism:"al",iveness:"ive",fulness:"ful",ousness:"ous",aliti:"al",iviti:"ive",biliti:"ble",logi:"log"},r={icate:"ic",ative:"",alize:"al",iciti:"ic",ical:"ic",ful:"",ness:""},n="[^aeiou]",i="[aeiouy]",s=n+"[^aeiouy]*",o=i+"[aeiou]*",a="^("+s+")?"+o+s,l="^("+s+")?"+o+s+"("+o+")?$",u="^("+s+")?"+o+s+o+s,h="^("+s+")?"+i,f=new RegExp(a),p=new RegExp(u),E=new RegExp(l),y=new RegExp(h),b=/^(.+?)(ss|i)es$/,m=/^(.+?)([^s])s$/,v=/^(.+?)eed$/,T=/^(.+?)(ed|ing)$/,w=/.$/,I=/(at|bl|iz)$/,M=new RegExp("([^aeiouylsz])\\1$"),B=new RegExp("^"+s+i+"[^aeiouwxy]$"),V=/^(.+?[^aeiou])y$/,q=/^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/,$=/^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/,H=/^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/,W=/^(.+?)(s|t)(ion)$/,P=/^(.+?)e$/,U=/ll$/,G=new RegExp("^"+s+i+"[^aeiouwxy]$"),z=function(c){var g,O,S,d,x,R,F;if(c.length<3)return c;if(S=c.substr(0,1),S=="y"&&(c=S.toUpperCase()+c.substr(1)),d=b,x=m,d.test(c)?c=c.replace(d,"$1$2"):x.test(c)&&(c=c.replace(x,"$1$2")),d=v,x=T,d.test(c)){var L=d.exec(c);d=f,d.test(L[1])&&(d=w,c=c.replace(d,""))}else if(x.test(c)){var L=x.exec(c);g=L[1],x=y,x.test(g)&&(c=g,x=I,R=M,F=B,x.test(c)?c=c+"e":R.test(c)?(d=w,c=c.replace(d,"")):F.test(c)&&(c=c+"e"))}if(d=V,d.test(c)){var L=d.exec(c);g=L[1],c=g+"i"}if(d=q,d.test(c)){var L=d.exec(c);g=L[1],O=L[2],d=f,d.test(g)&&(c=g+e[O])}if(d=$,d.test(c)){var L=d.exec(c);g=L[1],O=L[2],d=f,d.test(g)&&(c=g+r[O])}if(d=H,x=W,d.test(c)){var L=d.exec(c);g=L[1],d=p,d.test(g)&&(c=g)}else if(x.test(c)){var L=x.exec(c);g=L[1]+L[2],x=p,x.test(g)&&(c=g)}if(d=P,d.test(c)){var L=d.exec(c);g=L[1],d=p,x=E,R=G,(d.test(g)||x.test(g)&&!R.test(g))&&(c=g)}return d=U,x=p,d.test(c)&&x.test(c)&&(d=w,c=c.replace(d,"")),S=="y"&&(c=S.toLowerCase()+c.substr(1)),c};return function(D){return D.update(z)}}(),t.Pipeline.registerFunction(t.stemmer,"stemmer");t.generateStopWordFilter=function(e){var r=e.reduce(function(n,i){return n[i]=i,n},{});return function(n){if(n&&r[n.toString()]!==n.toString())return n}},t.stopWordFilter=t.generateStopWordFilter(["a","able","about","across","after","all","almost","also","am","among","an","and","any","are","as","at","be","because","been","but","by","can","cannot","could","dear","did","do","does","either","else","ever","every","for","from","get","got","had","has","have","he","her","hers","him","his","how","however","i","if","in","into","is","it","its","just","least","let","like","likely","may","me","might","most","must","my","neither","no","nor","not","of","off","often","on","only","or","other","our","own","rather","said","say","says","she","should","since","so","some","than","that","the","their","them","then","there","these","they","this","tis","to","too","twas","us","wants","was","we","were","what","when","where","which","while","who","whom","why","will","with","would","yet","you","your"]),t.Pipeline.registerFunction(t.stopWordFilter,"stopWordFilter");t.trimmer=function(e){return e.update(function(r){return r.replace(/^\W+/,"").replace(/\W+$/,"")})},t.Pipeline.registerFunction(t.trimmer,"trimmer");t.TokenSet=function(){this.final=!1,this.edges={},this.id=t.TokenSet._nextId,t.TokenSet._nextId+=1},t.TokenSet._nextId=1,t.TokenSet.fromArray=function(e){for(var r=new t.TokenSet.Builder,n=0,i=e.length;n<i;n++)r.insert(e[n]);return r.finish(),r.root},t.TokenSet.fromClause=function(e){return"editDistance"in e?t.TokenSet.fromFuzzyString(e.term,e.editDistance):t.TokenSet.fromString(e.term)},t.TokenSet.fromFuzzyString=function(e,r){for(var n=new t.TokenSet,i=[{node:n,editsRemaining:r,str:e}];i.length;){var s=i.pop();if(s.str.length>0){var o=s.str.charAt(0),a;o in s.node.edges?a=s.node.edges[o]:(a=new t.TokenSet,s.node.edges[o]=a),s.str.length==1&&(a.final=!0),i.push({node:a,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(s.editsRemaining!=0){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new t.TokenSet;s.node.edges["*"]=l}if(s.str.length==0&&(l.final=!0),i.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&i.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),s.str.length==1&&(s.node.final=!0),s.str.length>=1){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new t.TokenSet;s.node.edges["*"]=u}s.str.length==1&&(u.final=!0),i.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var h=s.str.charAt(0),f=s.str.charAt(1),p;f in s.node.edges?p=s.node.edges[f]:(p=new t.TokenSet,s.node.edges[f]=p),s.str.length==1&&(p.final=!0),i.push({node:p,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return n},t.TokenSet.fromString=function(e){for(var r=new t.TokenSet,n=r,i=0,s=e.length;i<s;i++){var o=e[i],a=i==s-1;if(o=="*")r.edges[o]=r,r.final=a;else{var l=new t.TokenSet;l.final=a,r.edges[o]=l,r=l}}return n},t.TokenSet.prototype.toArray=function(){for(var e=[],r=[{prefix:"",node:this}];r.length;){var n=r.pop(),i=Object.keys(n.node.edges),s=i.length;n.node.final&&(n.prefix.charAt(0),e.push(n.prefix));for(var o=0;o<s;o++){var a=i[o];r.push({prefix:n.prefix.concat(a),node:n.node.edges[a]})}}return e},t.TokenSet.prototype.toString=function(){if(this._str)return this._str;for(var e=this.final?"1":"0",r=Object.keys(this.edges).sort(),n=r.length,i=0;i<n;i++){var s=r[i],o=this.edges[s];e=e+s+o.id}return e},t.TokenSet.prototype.intersect=function(e){for(var r=new t.TokenSet,n=void 0,i=[{qNode:e,output:r,node:this}];i.length;){n=i.pop();for(var s=Object.keys(n.qNode.edges),o=s.length,a=Object.keys(n.node.edges),l=a.length,u=0;u<o;u++)for(var h=s[u],f=0;f<l;f++){var p=a[f];if(p==h||h=="*"){var E=n.node.edges[p],y=n.qNode.edges[h],b=E.final&&y.final,m=void 0;p in n.output.edges?(m=n.output.edges[p],m.final=m.final||b):(m=new t.TokenSet,m.final=b,n.output.edges[p]=m),i.push({qNode:y,output:m,node:E})}}}return r},t.TokenSet.Builder=function(){this.previousWord="",this.root=new t.TokenSet,this.uncheckedNodes=[],this.minimizedNodes={}},t.TokenSet.Builder.prototype.insert=function(e){var r,n=0;if(e<this.previousWord)throw new Error("Out of order word insertion");for(var i=0;i<e.length&&i<this.previousWord.length&&e[i]==this.previousWord[i];i++)n++;this.minimize(n),this.uncheckedNodes.length==0?r=this.root:r=this.uncheckedNodes[this.uncheckedNodes.length-1].child;for(var i=n;i<e.length;i++){var s=new t.TokenSet,o=e[i];r.edges[o]=s,this.uncheckedNodes.push({parent:r,char:o,child:s}),r=s}r.final=!0,this.previousWord=e},t.TokenSet.Builder.prototype.finish=function(){this.minimize(0)},t.TokenSet.Builder.prototype.minimize=function(e){for(var r=this.uncheckedNodes.length-1;r>=e;r--){var n=this.uncheckedNodes[r],i=n.child.toString();i in this.minimizedNodes?n.parent.edges[n.char]=this.minimizedNodes[i]:(n.child._str=i,this.minimizedNodes[i]=n.child),this.uncheckedNodes.pop()}};t.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},t.Index.prototype.search=function(e){return this.query(function(r){var n=new t.QueryParser(e,r);n.parse()})},t.Index.prototype.query=function(e){for(var r=new t.Query(this.fields),n=Object.create(null),i=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),l=0;l<this.fields.length;l++)i[this.fields[l]]=new t.Vector;e.call(r,r);for(var l=0;l<r.clauses.length;l++){var u=r.clauses[l],h=null,f=t.Set.empty;u.usePipeline?h=this.pipeline.runString(u.term,{fields:u.fields}):h=[u.term];for(var p=0;p<h.length;p++){var E=h[p];u.term=E;var y=t.TokenSet.fromClause(u),b=this.tokenSet.intersect(y).toArray();if(b.length===0&&u.presence===t.Query.presence.REQUIRED){for(var m=0;m<u.fields.length;m++){var v=u.fields[m];o[v]=t.Set.empty}break}for(var T=0;T<b.length;T++)for(var w=b[T],I=this.invertedIndex[w],M=I._index,m=0;m<u.fields.length;m++){var v=u.fields[m],B=I[v],V=Object.keys(B),q=w+"/"+v,$=new t.Set(V);if(u.presence==t.Query.presence.REQUIRED&&(f=f.union($),o[v]===void 0&&(o[v]=t.Set.complete)),u.presence==t.Query.presence.PROHIBITED){a[v]===void 0&&(a[v]=t.Set.empty),a[v]=a[v].union($);continue}if(i[v].upsert(M,u.boost,function(Qe,Ie){return Qe+Ie}),!s[q]){for(var H=0;H<V.length;H++){var W=V[H],P=new t.FieldRef(W,v),U=B[W],G;(G=n[P])===void 0?n[P]=new t.MatchData(w,v,U):G.add(w,v,U)}s[q]=!0}}}if(u.presence===t.Query.presence.REQUIRED)for(var m=0;m<u.fields.length;m++){var v=u.fields[m];o[v]=o[v].intersect(f)}}for(var z=t.Set.complete,D=t.Set.empty,l=0;l<this.fields.length;l++){var v=this.fields[l];o[v]&&(z=z.intersect(o[v])),a[v]&&(D=D.union(a[v]))}var c=Object.keys(n),g=[],O=Object.create(null);if(r.isNegated()){c=Object.keys(this.fieldVectors);for(var l=0;l<c.length;l++){var P=c[l],S=t.FieldRef.fromString(P);n[P]=new t.MatchData}}for(var l=0;l<c.length;l++){var S=t.FieldRef.fromString(c[l]),d=S.docRef;if(!!z.contains(d)&&!D.contains(d)){var x=this.fieldVectors[S],R=i[S.fieldName].similarity(x),F;if((F=O[d])!==void 0)F.score+=R,F.matchData.combine(n[S]);else{var L={ref:d,score:R,matchData:n[S]};O[d]=L,g.push(L)}}}return g.sort(function(Se,ke){return ke.score-Se.score})},t.Index.prototype.toJSON=function(){var e=Object.keys(this.invertedIndex).sort().map(function(n){return[n,this.invertedIndex[n]]},this),r=Object.keys(this.fieldVectors).map(function(n){return[n,this.fieldVectors[n].toJSON()]},this);return{version:t.version,fields:this.fields,fieldVectors:r,invertedIndex:e,pipeline:this.pipeline.toJSON()}},t.Index.load=function(e){var r={},n={},i=e.fieldVectors,s=Object.create(null),o=e.invertedIndex,a=new t.TokenSet.Builder,l=t.Pipeline.load(e.pipeline);e.version!=t.version&&t.utils.warn("Version mismatch when loading serialised index. Current version of lunr '"+t.version+"' does not match serialized index '"+e.version+"'");for(var u=0;u<i.length;u++){var h=i[u],f=h[0],p=h[1];n[f]=new t.Vector(p)}for(var u=0;u<o.length;u++){var h=o[u],E=h[0],y=h[1];a.insert(E),s[E]=y}return a.finish(),r.fields=e.fields,r.fieldVectors=n,r.invertedIndex=s,r.tokenSet=a.root,r.pipeline=l,new t.Index(r)};t.Builder=function(){this._ref="id",this._fields=Object.create(null),this._documents=Object.create(null),this.invertedIndex=Object.create(null),this.fieldTermFrequencies={},this.fieldLengths={},this.tokenizer=t.tokenizer,this.pipeline=new t.Pipeline,this.searchPipeline=new t.Pipeline,this.documentCount=0,this._b=.75,this._k1=1.2,this.termIndex=0,this.metadataWhitelist=[]},t.Builder.prototype.ref=function(e){this._ref=e},t.Builder.prototype.field=function(e,r){if(/\//.test(e))throw new RangeError("Field '"+e+"' contains illegal character '/'");this._fields[e]=r||{}},t.Builder.prototype.b=function(e){e<0?this._b=0:e>1?this._b=1:this._b=e},t.Builder.prototype.k1=function(e){this._k1=e},t.Builder.prototype.add=function(e,r){var n=e[this._ref],i=Object.keys(this._fields);this._documents[n]=r||{},this.documentCount+=1;for(var s=0;s<i.length;s++){var o=i[s],a=this._fields[o].extractor,l=a?a(e):e[o],u=this.tokenizer(l,{fields:[o]}),h=this.pipeline.run(u),f=new t.FieldRef(n,o),p=Object.create(null);this.fieldTermFrequencies[f]=p,this.fieldLengths[f]=0,this.fieldLengths[f]+=h.length;for(var E=0;E<h.length;E++){var y=h[E];if(p[y]==null&&(p[y]=0),p[y]+=1,this.invertedIndex[y]==null){var b=Object.create(null);b._index=this.termIndex,this.termIndex+=1;for(var m=0;m<i.length;m++)b[i[m]]=Object.create(null);this.invertedIndex[y]=b}this.invertedIndex[y][o][n]==null&&(this.invertedIndex[y][o][n]=Object.create(null));for(var v=0;v<this.metadataWhitelist.length;v++){var T=this.metadataWhitelist[v],w=y.metadata[T];this.invertedIndex[y][o][n][T]==null&&(this.invertedIndex[y][o][n][T]=[]),this.invertedIndex[y][o][n][T].push(w)}}}},t.Builder.prototype.calculateAverageFieldLengths=function(){for(var e=Object.keys(this.fieldLengths),r=e.length,n={},i={},s=0;s<r;s++){var o=t.FieldRef.fromString(e[s]),a=o.fieldName;i[a]||(i[a]=0),i[a]+=1,n[a]||(n[a]=0),n[a]+=this.fieldLengths[o]}for(var l=Object.keys(this._fields),s=0;s<l.length;s++){var u=l[s];n[u]=n[u]/i[u]}this.averageFieldLength=n},t.Builder.prototype.createFieldVectors=function(){for(var e={},r=Object.keys(this.fieldTermFrequencies),n=r.length,i=Object.create(null),s=0;s<n;s++){for(var o=t.FieldRef.fromString(r[s]),a=o.fieldName,l=this.fieldLengths[o],u=new t.Vector,h=this.fieldTermFrequencies[o],f=Object.keys(h),p=f.length,E=this._fields[a].boost||1,y=this._documents[o.docRef].boost||1,b=0;b<p;b++){var m=f[b],v=h[m],T=this.invertedIndex[m]._index,w,I,M;i[m]===void 0?(w=t.idf(this.invertedIndex[m],this.documentCount),i[m]=w):w=i[m],I=w*((this._k1+1)*v)/(this._k1*(1-this._b+this._b*(l/this.averageFieldLength[a]))+v),I*=E,I*=y,M=Math.round(I*1e3)/1e3,u.insert(T,M)}e[o]=u}this.fieldVectors=e},t.Builder.prototype.createTokenSet=function(){this.tokenSet=t.TokenSet.fromArray(Object.keys(this.invertedIndex).sort())},t.Builder.prototype.build=function(){return this.calculateAverageFieldLengths(),this.createFieldVectors(),this.createTokenSet(),new t.Index({invertedIndex:this.invertedIndex,fieldVectors:this.fieldVectors,tokenSet:this.tokenSet,fields:Object.keys(this._fields),pipeline:this.searchPipeline})},t.Builder.prototype.use=function(e){var r=Array.prototype.slice.call(arguments,1);r.unshift(this),e.apply(this,r)},t.MatchData=function(e,r,n){for(var i=Object.create(null),s=Object.keys(n||{}),o=0;o<s.length;o++){var a=s[o];i[a]=n[a].slice()}this.metadata=Object.create(null),e!==void 0&&(this.metadata[e]=Object.create(null),this.metadata[e][r]=i)},t.MatchData.prototype.combine=function(e){for(var r=Object.keys(e.metadata),n=0;n<r.length;n++){var i=r[n],s=Object.keys(e.metadata[i]);this.metadata[i]==null&&(this.metadata[i]=Object.create(null));for(var o=0;o<s.length;o++){var a=s[o],l=Object.keys(e.metadata[i][a]);this.metadata[i][a]==null&&(this.metadata[i][a]=Object.create(null));for(var u=0;u<l.length;u++){var h=l[u];this.metadata[i][a][h]==null?this.metadata[i][a][h]=e.metadata[i][a][h]:this.metadata[i][a][h]=this.metadata[i][a][h].concat(e.metadata[i][a][h])}}}},t.MatchData.prototype.add=function(e,r,n){if(!(e in this.metadata)){this.metadata[e]=Object.create(null),this.metadata[e][r]=n;return}if(!(r in this.metadata[e])){this.metadata[e][r]=n;return}for(var i=Object.keys(n),s=0;s<i.length;s++){var o=i[s];o in this.metadata[e][r]?this.metadata[e][r][o]=this.metadata[e][r][o].concat(n[o]):this.metadata[e][r][o]=n[o]}},t.Query=function(e){this.clauses=[],this.allFields=e},t.Query.wildcard=new String("*"),t.Query.wildcard.NONE=0,t.Query.wildcard.LEADING=1,t.Query.wildcard.TRAILING=2,t.Query.presence={OPTIONAL:1,REQUIRED:2,PROHIBITED:3},t.Query.prototype.clause=function(e){return"fields"in e||(e.fields=this.allFields),"boost"in e||(e.boost=1),"usePipeline"in e||(e.usePipeline=!0),"wildcard"in e||(e.wildcard=t.Query.wildcard.NONE),e.wildcard&t.Query.wildcard.LEADING&&e.term.charAt(0)!=t.Query.wildcard&&(e.term="*"+e.term),e.wildcard&t.Query.wildcard.TRAILING&&e.term.slice(-1)!=t.Query.wildcard&&(e.term=""+e.term+"*"),"presence"in e||(e.presence=t.Query.presence.OPTIONAL),this.clauses.push(e),this},t.Query.prototype.isNegated=function(){for(var e=0;e<this.clauses.length;e++)if(this.clauses[e].presence!=t.Query.presence.PROHIBITED)return!1;return!0},t.Query.prototype.term=function(e,r){if(Array.isArray(e))return e.forEach(function(i){this.term(i,t.utils.clone(r))},this),this;var n=r||{};return n.term=e.toString(),this.clause(n),this},t.QueryParseError=function(e,r,n){this.name="QueryParseError",this.message=e,this.start=r,this.end=n},t.QueryParseError.prototype=new Error,t.QueryLexer=function(e){this.lexemes=[],this.str=e,this.length=e.length,this.pos=0,this.start=0,this.escapeCharPositions=[]},t.QueryLexer.prototype.run=function(){for(var e=t.QueryLexer.lexText;e;)e=e(this)},t.QueryLexer.prototype.sliceString=function(){for(var e=[],r=this.start,n=this.pos,i=0;i<this.escapeCharPositions.length;i++)n=this.escapeCharPositions[i],e.push(this.str.slice(r,n)),r=n+1;return e.push(this.str.slice(r,this.pos)),this.escapeCharPositions.length=0,e.join("")},t.QueryLexer.prototype.emit=function(e){this.lexemes.push({type:e,str:this.sliceString(),start:this.start,end:this.pos}),this.start=this.pos},t.QueryLexer.prototype.escapeCharacter=function(){this.escapeCharPositions.push(this.pos-1),this.pos+=1},t.QueryLexer.prototype.next=function(){if(this.pos>=this.length)return t.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},t.QueryLexer.prototype.width=function(){return this.pos-this.start},t.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},t.QueryLexer.prototype.backup=function(){this.pos-=1},t.QueryLexer.prototype.acceptDigitRun=function(){var e,r;do e=this.next(),r=e.charCodeAt(0);while(r>47&&r<58);e!=t.QueryLexer.EOS&&this.backup()},t.QueryLexer.prototype.more=function(){return this.pos<this.length},t.QueryLexer.EOS="EOS",t.QueryLexer.FIELD="FIELD",t.QueryLexer.TERM="TERM",t.QueryLexer.EDIT_DISTANCE="EDIT_DISTANCE",t.QueryLexer.BOOST="BOOST",t.QueryLexer.PRESENCE="PRESENCE",t.QueryLexer.lexField=function(e){return e.backup(),e.emit(t.QueryLexer.FIELD),e.ignore(),t.QueryLexer.lexText},t.QueryLexer.lexTerm=function(e){if(e.width()>1&&(e.backup(),e.emit(t.QueryLexer.TERM)),e.ignore(),e.more())return t.QueryLexer.lexText},t.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.EDIT_DISTANCE),t.QueryLexer.lexText},t.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(t.QueryLexer.BOOST),t.QueryLexer.lexText},t.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(t.QueryLexer.TERM)},t.QueryLexer.termSeparator=t.tokenizer.separator,t.QueryLexer.lexText=function(e){for(;;){var r=e.next();if(r==t.QueryLexer.EOS)return t.QueryLexer.lexEOS;if(r.charCodeAt(0)==92){e.escapeCharacter();continue}if(r==":")return t.QueryLexer.lexField;if(r=="~")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexEditDistance;if(r=="^")return e.backup(),e.width()>0&&e.emit(t.QueryLexer.TERM),t.QueryLexer.lexBoost;if(r=="+"&&e.width()===1||r=="-"&&e.width()===1)return e.emit(t.QueryLexer.PRESENCE),t.QueryLexer.lexText;if(r.match(t.QueryLexer.termSeparator))return t.QueryLexer.lexTerm}},t.QueryParser=function(e,r){this.lexer=new t.QueryLexer(e),this.query=r,this.currentClause={},this.lexemeIdx=0},t.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=t.QueryParser.parseClause;e;)e=e(this);return this.query},t.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},t.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},t.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},t.QueryParser.parseClause=function(e){var r=e.peekLexeme();if(r!=null)switch(r.type){case t.QueryLexer.PRESENCE:return t.QueryParser.parsePresence;case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(n+=" with value '"+r.str+"'"),new t.QueryParseError(n,r.start,r.end)}},t.QueryParser.parsePresence=function(e){var r=e.consumeLexeme();if(r!=null){switch(r.str){case"-":e.currentClause.presence=t.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=t.Query.presence.REQUIRED;break;default:var n="unrecognised presence operator'"+r.str+"'";throw new t.QueryParseError(n,r.start,r.end)}var i=e.peekLexeme();if(i==null){var n="expecting term or field, found nothing";throw new t.QueryParseError(n,r.start,r.end)}switch(i.type){case t.QueryLexer.FIELD:return t.QueryParser.parseField;case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var n="expecting term or field, found '"+i.type+"'";throw new t.QueryParseError(n,i.start,i.end)}}},t.QueryParser.parseField=function(e){var r=e.consumeLexeme();if(r!=null){if(e.query.allFields.indexOf(r.str)==-1){var n=e.query.allFields.map(function(o){return"'"+o+"'"}).join(", "),i="unrecognised field '"+r.str+"', possible fields: "+n;throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.fields=[r.str];var s=e.peekLexeme();if(s==null){var i="expecting term, found nothing";throw new t.QueryParseError(i,r.start,r.end)}switch(s.type){case t.QueryLexer.TERM:return t.QueryParser.parseTerm;default:var i="expecting term, found '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseTerm=function(e){var r=e.consumeLexeme();if(r!=null){e.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(e.currentClause.usePipeline=!1);var n=e.peekLexeme();if(n==null){e.nextClause();return}switch(n.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+n.type+"'";throw new t.QueryParseError(i,n.start,n.end)}}},t.QueryParser.parseEditDistance=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="edit distance must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.editDistance=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},t.QueryParser.parseBoost=function(e){var r=e.consumeLexeme();if(r!=null){var n=parseInt(r.str,10);if(isNaN(n)){var i="boost must be numeric";throw new t.QueryParseError(i,r.start,r.end)}e.currentClause.boost=n;var s=e.peekLexeme();if(s==null){e.nextClause();return}switch(s.type){case t.QueryLexer.TERM:return e.nextClause(),t.QueryParser.parseTerm;case t.QueryLexer.FIELD:return e.nextClause(),t.QueryParser.parseField;case t.QueryLexer.EDIT_DISTANCE:return t.QueryParser.parseEditDistance;case t.QueryLexer.BOOST:return t.QueryParser.parseBoost;case t.QueryLexer.PRESENCE:return e.nextClause(),t.QueryParser.parsePresence;default:var i="Unexpected lexeme type '"+s.type+"'";throw new t.QueryParseError(i,s.start,s.end)}}},function(e,r){typeof define=="function"&&define.amd?define(r):typeof de=="object"?fe.exports=r():e.lunr=r()}(this,function(){return t})})()});var ce=[];function N(t,e){ce.push({selector:e,constructor:t})}var Y=class{constructor(){this.createComponents(document.body)}createComponents(e){ce.forEach(r=>{e.querySelectorAll(r.selector).forEach(n=>{n.dataset.hasInstance||(new r.constructor({el:n}),n.dataset.hasInstance=String(!0))})})}};var k=class{constructor(e){this.el=e.el}};var J=class{constructor(){this.listeners={}}addEventListener(e,r){e in this.listeners||(this.listeners[e]=[]),this.listeners[e].push(r)}removeEventListener(e,r){if(!(e in this.listeners))return;let n=this.listeners[e];for(let i=0,s=n.length;i<s;i++)if(n[i]===r){n.splice(i,1);return}}dispatchEvent(e){if(!(e.type in this.listeners))return!0;let r=this.listeners[e.type].slice();for(let n=0,i=r.length;n<i;n++)r[n].call(this,e);return!e.defaultPrevented}};var ne=(t,e=100)=>{let r=Date.now();return(...n)=>{r+e-Date.now()<0&&(t(...n),r=Date.now())}};var ie=class extends J{constructor(){super();this.scrollTop=0;this.lastY=0;this.width=0;this.height=0;this.showToolbar=!0;this.toolbar=document.querySelector(".tsd-page-toolbar"),this.secondaryNav=document.querySelector(".tsd-navigation.secondary"),window.addEventListener("scroll",ne(()=>this.onScroll(),10)),window.addEventListener("resize",ne(()=>this.onResize(),10)),this.onResize(),this.onScroll()}triggerResize(){let r=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(r)}onResize(){this.width=window.innerWidth||0,this.height=window.innerHeight||0;let r=new CustomEvent("resize",{detail:{width:this.width,height:this.height}});this.dispatchEvent(r)}onScroll(){this.scrollTop=window.scrollY||0;let r=new CustomEvent("scroll",{detail:{scrollTop:this.scrollTop}});this.dispatchEvent(r),this.hideShowToolbar()}hideShowToolbar(){var n;let r=this.showToolbar;this.showToolbar=this.lastY>=this.scrollTop||this.scrollTop<=0,r!==this.showToolbar&&(this.toolbar.classList.toggle("tsd-page-toolbar--hide"),(n=this.secondaryNav)==null||n.classList.toggle("tsd-navigation--toolbar-hide")),this.lastY=this.scrollTop}},Q=ie;Q.instance=new ie;var X=class extends k{constructor(r){super(r);this.anchors=[];this.index=-1;Q.instance.addEventListener("resize",()=>this.onResize()),Q.instance.addEventListener("scroll",n=>this.onScroll(n)),this.createAnchors()}createAnchors(){let r=window.location.href;r.indexOf("#")!=-1&&(r=r.substr(0,r.indexOf("#"))),this.el.querySelectorAll("a").forEach(n=>{let i=n.href;if(i.indexOf("#")==-1||i.substr(0,r.length)!=r)return;let s=i.substr(i.indexOf("#")+1),o=document.querySelector("a.tsd-anchor[name="+s+"]"),a=n.parentNode;!o||!a||this.anchors.push({link:a,anchor:o,position:0})}),this.onResize()}onResize(){let r;for(let i=0,s=this.anchors.length;i<s;i++){r=this.anchors[i];let o=r.anchor.getBoundingClientRect();r.position=o.top+document.body.scrollTop}this.anchors.sort((i,s)=>i.position-s.position);let n=new CustomEvent("scroll",{detail:{scrollTop:Q.instance.scrollTop}});this.onScroll(n)}onScroll(r){let n=r.detail.scrollTop+5,i=this.anchors,s=i.length-1,o=this.index;for(;o>-1&&i[o].position>n;)o-=1;for(;o<s&&i[o+1].position<n;)o+=1;this.index!=o&&(this.index>-1&&this.anchors[this.index].link.classList.remove("focus"),this.index=o,this.index>-1&&this.anchors[this.index].link.classList.add("focus"))}};var he=(t,e=100)=>{let r;return(...n)=>{clearTimeout(r),r=setTimeout(()=>t(n),e)}};var ge=Fe(pe());function ye(){let t=document.getElementById("tsd-search");if(!t)return;let e=document.getElementById("search-script");t.classList.add("loading"),e&&(e.addEventListener("error",()=>{t.classList.remove("loading"),t.classList.add("failure")}),e.addEventListener("load",()=>{t.classList.remove("loading"),t.classList.add("ready")}),window.searchData&&t.classList.remove("loading"));let r=document.querySelector("#tsd-search input"),n=document.querySelector("#tsd-search .results");if(!r||!n)throw new Error("The input field or the result list wrapper was not found");let i=!1;n.addEventListener("mousedown",()=>i=!0),n.addEventListener("mouseup",()=>{i=!1,t.classList.remove("has-focus")}),r.addEventListener("focus",()=>t.classList.add("has-focus")),r.addEventListener("blur",()=>{i||(i=!1,t.classList.remove("has-focus"))});let s={base:t.dataset.base+"/"};Ae(t,n,r,s)}function Ae(t,e,r,n){r.addEventListener("input",he(()=>{He(t,e,r,n)},200));let i=!1;r.addEventListener("keydown",s=>{i=!0,s.key=="Enter"?ze(e,r):s.key=="Escape"?r.blur():s.key=="ArrowUp"?me(e,-1):s.key==="ArrowDown"?me(e,1):i=!1}),r.addEventListener("keypress",s=>{i&&s.preventDefault()}),document.body.addEventListener("keydown",s=>{s.altKey||s.ctrlKey||s.metaKey||!r.matches(":focus")&&s.key==="/"&&(r.focus(),s.preventDefault())})}function Ve(t,e){t.index||window.searchData&&(e.classList.remove("loading"),e.classList.add("ready"),t.data=window.searchData,t.index=ge.Index.load(window.searchData.index))}function He(t,e,r,n){var o,a;if(Ve(n,t),!n.index||!n.data)return;e.textContent="";let i=r.value.trim(),s=i?n.index.search(`*${i}*`):[];for(let l=0;l<s.length;l++){let u=s[l],h=n.data.rows[Number(u.ref)],f=1;h.name.toLowerCase().startsWith(i.toLowerCase())&&(f*=1+1/(Math.abs(h.name.length-i.length)*10)),f*=(o=h.boost)!=null?o:1,u.score*=f}s.sort((l,u)=>u.score-l.score);for(let l=0,u=Math.min(10,s.length);l<u;l++){let h=n.data.rows[Number(s[l].ref)],f=ve(h.name,i);h.parent&&(f=`<span class="parent">${ve(h.parent,i)}.</span>${f}`);let p=document.createElement("li");p.classList.value=(a=h.classes)!=null?a:"";let E=document.createElement("a");E.href=n.base+h.url,E.classList.add("tsd-kind-icon"),E.innerHTML=f,p.append(E),e.appendChild(p)}}function me(t,e){var n,i;let r=t.querySelector(".current");if(!r)r=t.querySelector(e==1?"li:first-child":"li:last-child"),r&&r.classList.add("current");else{let s=r;if(e===1)do s=(n=s.nextElementSibling)!=null?n:void 0;while(s instanceof HTMLElement&&s.offsetParent==null);else do s=(i=s.previousElementSibling)!=null?i:void 0;while(s instanceof HTMLElement&&s.offsetParent==null);s&&(r.classList.remove("current"),s.classList.add("current"))}}function ze(t,e){let r=t.querySelector(".current");if(r||(r=t.querySelector("li:first-child")),r){let n=r.querySelector("a");n&&(window.location.href=n.href),e.blur()}}function ve(t,e){if(e==="")return t;let r=t.toLocaleLowerCase(),n=e.toLocaleLowerCase(),i=[],s=0,o=r.indexOf(n);for(;o!=-1;)i.push(se(t.substring(s,o)),`<b>${se(t.substring(o,o+n.length))}</b>`),s=o+n.length,o=r.indexOf(n,s);return i.push(se(t.substring(s))),i.join("")}var Ne={"&":"&","<":"<",">":">","'":"'",'"':"""};function se(t){return t.replace(/[&<>"'"]/g,e=>Ne[e])}var oe=class{constructor(e,r){this.signature=e,this.description=r}addClass(e){return this.signature.classList.add(e),this.description.classList.add(e),this}removeClass(e){return this.signature.classList.remove(e),this.description.classList.remove(e),this}},Z=class extends k{constructor(r){super(r);this.groups=[];this.index=-1;this.createGroups(),this.container&&(this.el.classList.add("active"),Array.from(this.el.children).forEach(n=>{n.addEventListener("touchstart",i=>this.onClick(i)),n.addEventListener("click",i=>this.onClick(i))}),this.container.classList.add("active"),this.setIndex(0))}setIndex(r){if(r<0&&(r=0),r>this.groups.length-1&&(r=this.groups.length-1),this.index==r)return;let n=this.groups[r];if(this.index>-1){let i=this.groups[this.index];i.removeClass("current").addClass("fade-out"),n.addClass("current"),n.addClass("fade-in"),Q.instance.triggerResize(),setTimeout(()=>{i.removeClass("fade-out"),n.removeClass("fade-in")},300)}else n.addClass("current"),Q.instance.triggerResize();this.index=r}createGroups(){let r=this.el.children;if(r.length<2)return;this.container=this.el.nextElementSibling;let n=this.container.children;this.groups=[];for(let i=0;i<r.length;i++)this.groups.push(new oe(r[i],n[i]))}onClick(r){this.groups.forEach((n,i)=>{n.signature===r.currentTarget&&this.setIndex(i)})}};var C="mousedown",Le="mousemove",_="mouseup",K={x:0,y:0},xe=!1,ae=!1,je=!1,A=!1,Ee=/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);document.documentElement.classList.add(Ee?"is-mobile":"not-mobile");Ee&&"ontouchstart"in document.documentElement&&(je=!0,C="touchstart",Le="touchmove",_="touchend");document.addEventListener(C,t=>{ae=!0,A=!1;let e=C=="touchstart"?t.targetTouches[0]:t;K.y=e.pageY||0,K.x=e.pageX||0});document.addEventListener(Le,t=>{if(!!ae&&!A){let e=C=="touchstart"?t.targetTouches[0]:t,r=K.x-(e.pageX||0),n=K.y-(e.pageY||0);A=Math.sqrt(r*r+n*n)>10}});document.addEventListener(_,()=>{ae=!1});document.addEventListener("click",t=>{xe&&(t.preventDefault(),t.stopImmediatePropagation(),xe=!1)});var ee=class extends k{constructor(r){super(r);this.className=this.el.dataset.toggle||"",this.el.addEventListener(_,n=>this.onPointerUp(n)),this.el.addEventListener("click",n=>n.preventDefault()),document.addEventListener(C,n=>this.onDocumentPointerDown(n)),document.addEventListener(_,n=>this.onDocumentPointerUp(n))}setActive(r){if(this.active==r)return;this.active=r,document.documentElement.classList.toggle("has-"+this.className,r),this.el.classList.toggle("active",r);let n=(this.active?"to-has-":"from-has-")+this.className;document.documentElement.classList.add(n),setTimeout(()=>document.documentElement.classList.remove(n),500)}onPointerUp(r){A||(this.setActive(!0),r.preventDefault())}onDocumentPointerDown(r){if(this.active){if(r.target.closest(".col-menu, .tsd-filter-group"))return;this.setActive(!1)}}onDocumentPointerUp(r){if(!A&&this.active&&r.target.closest(".col-menu")){let n=r.target.closest("a");if(n){let i=window.location.href;i.indexOf("#")!=-1&&(i=i.substr(0,i.indexOf("#"))),n.href.substr(0,i.length)==i&&setTimeout(()=>this.setActive(!1),250)}}}};var te=class{constructor(e,r){this.key=e,this.value=r,this.defaultValue=r,this.initialize(),window.localStorage[this.key]&&this.setValue(this.fromLocalStorage(window.localStorage[this.key]))}initialize(){}setValue(e){if(this.value==e)return;let r=this.value;this.value=e,window.localStorage[this.key]=this.toLocalStorage(e),this.handleValueChange(r,e)}},re=class extends te{initialize(){let r=document.querySelector("#tsd-filter-"+this.key);!r||(this.checkbox=r,this.checkbox.addEventListener("change",()=>{this.setValue(this.checkbox.checked)}))}handleValueChange(r,n){!this.checkbox||(this.checkbox.checked=this.value,document.documentElement.classList.toggle("toggle-"+this.key,this.value!=this.defaultValue))}fromLocalStorage(r){return r=="true"}toLocalStorage(r){return r?"true":"false"}},le=class extends te{initialize(){document.documentElement.classList.add("toggle-"+this.key+this.value);let r=document.querySelector("#tsd-filter-"+this.key);if(!r)return;this.select=r;let n=()=>{this.select.classList.add("active")},i=()=>{this.select.classList.remove("active")};this.select.addEventListener(C,n),this.select.addEventListener("mouseover",n),this.select.addEventListener("mouseleave",i),this.select.querySelectorAll("li").forEach(s=>{s.addEventListener(_,o=>{r.classList.remove("active"),this.setValue(o.target.dataset.value||"")})}),document.addEventListener(C,s=>{this.select.contains(s.target)||this.select.classList.remove("active")})}handleValueChange(r,n){this.select.querySelectorAll("li.selected").forEach(o=>{o.classList.remove("selected")});let i=this.select.querySelector('li[data-value="'+n+'"]'),s=this.select.querySelector(".tsd-select-label");i&&s&&(i.classList.add("selected"),s.textContent=i.textContent),document.documentElement.classList.remove("toggle-"+r),document.documentElement.classList.add("toggle-"+n)}fromLocalStorage(r){return r}toLocalStorage(r){return r}},j=class extends k{constructor(r){super(r);this.optionVisibility=new le("visibility","private"),this.optionInherited=new re("inherited",!0),this.optionExternals=new re("externals",!0)}static isSupported(){try{return typeof window.localStorage!="undefined"}catch{return!1}}};function we(t){let e=localStorage.getItem("tsd-theme")||"os";t.value=e,be(e),t.addEventListener("change",()=>{localStorage.setItem("tsd-theme",t.value),be(t.value)})}function be(t){switch(t){case"os":document.body.classList.remove("light","dark");break;case"light":document.body.classList.remove("dark"),document.body.classList.add("light");break;case"dark":document.body.classList.remove("light"),document.body.classList.add("dark");break}}ye();N(X,".menu-highlight");N(Z,".tsd-signatures");N(ee,"a[data-toggle]");j.isSupported()?N(j,"#tsd-filter"):document.documentElement.classList.add("no-filter");var Te=document.getElementById("theme");Te&&we(Te);var Be=new Y;Object.defineProperty(window,"app",{value:Be});})();
|
|
3
|
-
/*!
|
|
4
|
-
* lunr.Builder
|
|
5
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
6
|
-
*/
|
|
7
|
-
/*!
|
|
8
|
-
* lunr.Index
|
|
9
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
10
|
-
*/
|
|
11
|
-
/*!
|
|
12
|
-
* lunr.Pipeline
|
|
13
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
14
|
-
*/
|
|
15
|
-
/*!
|
|
16
|
-
* lunr.Set
|
|
17
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
18
|
-
*/
|
|
19
|
-
/*!
|
|
20
|
-
* lunr.TokenSet
|
|
21
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
22
|
-
*/
|
|
23
|
-
/*!
|
|
24
|
-
* lunr.Vector
|
|
25
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
26
|
-
*/
|
|
27
|
-
/*!
|
|
28
|
-
* lunr.stemmer
|
|
29
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
30
|
-
* Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
|
|
31
|
-
*/
|
|
32
|
-
/*!
|
|
33
|
-
* lunr.stopWordFilter
|
|
34
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
35
|
-
*/
|
|
36
|
-
/*!
|
|
37
|
-
* lunr.tokenizer
|
|
38
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
39
|
-
*/
|
|
40
|
-
/*!
|
|
41
|
-
* lunr.trimmer
|
|
42
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
43
|
-
*/
|
|
44
|
-
/*!
|
|
45
|
-
* lunr.utils
|
|
46
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
47
|
-
*/
|
|
48
|
-
/**
|
|
49
|
-
* lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
|
|
50
|
-
* Copyright (C) 2020 Oliver Nightingale
|
|
51
|
-
* @license MIT
|
|
52
|
-
*/
|
package/doc/assets/search.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
window.searchData = JSON.parse("{\"kinds\":{\"128\":\"Class\",\"256\":\"Interface\",\"512\":\"Constructor\",\"1024\":\"Property\",\"2048\":\"Method\",\"4194304\":\"Type alias\"},\"rows\":[{\"id\":0,\"kind\":4194304,\"name\":\"BigIntArray\",\"url\":\"modules.html#BigIntArray\",\"classes\":\"tsd-kind-type-alias\"},{\"id\":1,\"kind\":256,\"name\":\"IWasmAPI\",\"url\":\"interfaces/IWasmAPI.html\",\"classes\":\"tsd-kind-interface tsd-has-type-parameter\"},{\"id\":2,\"kind\":2048,\"name\":\"init\",\"url\":\"interfaces/IWasmAPI.html#init\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"IWasmAPI\"},{\"id\":3,\"kind\":2048,\"name\":\"getImports\",\"url\":\"interfaces/IWasmAPI.html#getImports\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"IWasmAPI\"},{\"id\":4,\"kind\":256,\"name\":\"WasmExports\",\"url\":\"interfaces/WasmExports.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":5,\"kind\":1024,\"name\":\"memory\",\"url\":\"interfaces/WasmExports.html#memory\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"WasmExports\"},{\"id\":6,\"kind\":256,\"name\":\"CoreAPI\",\"url\":\"interfaces/CoreAPI.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":7,\"kind\":1024,\"name\":\"printI8\",\"url\":\"interfaces/CoreAPI.html#printI8\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":8,\"kind\":1024,\"name\":\"printU8\",\"url\":\"interfaces/CoreAPI.html#printU8\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":9,\"kind\":1024,\"name\":\"printU8Hex\",\"url\":\"interfaces/CoreAPI.html#printU8Hex\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":10,\"kind\":1024,\"name\":\"printI16\",\"url\":\"interfaces/CoreAPI.html#printI16\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":11,\"kind\":1024,\"name\":\"printU16\",\"url\":\"interfaces/CoreAPI.html#printU16\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":12,\"kind\":1024,\"name\":\"printU16Hex\",\"url\":\"interfaces/CoreAPI.html#printU16Hex\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":13,\"kind\":1024,\"name\":\"printI32\",\"url\":\"interfaces/CoreAPI.html#printI32\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":14,\"kind\":1024,\"name\":\"printU32\",\"url\":\"interfaces/CoreAPI.html#printU32\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":15,\"kind\":1024,\"name\":\"printU32Hex\",\"url\":\"interfaces/CoreAPI.html#printU32Hex\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":16,\"kind\":1024,\"name\":\"_printI64\",\"url\":\"interfaces/CoreAPI.html#_printI64\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":17,\"kind\":1024,\"name\":\"_printU64\",\"url\":\"interfaces/CoreAPI.html#_printU64\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":18,\"kind\":1024,\"name\":\"_printU64Hex\",\"url\":\"interfaces/CoreAPI.html#_printU64Hex\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":19,\"kind\":1024,\"name\":\"printF32\",\"url\":\"interfaces/CoreAPI.html#printF32\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":20,\"kind\":1024,\"name\":\"printF64\",\"url\":\"interfaces/CoreAPI.html#printF64\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":21,\"kind\":2048,\"name\":\"_printI8Array\",\"url\":\"interfaces/CoreAPI.html#_printI8Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":22,\"kind\":2048,\"name\":\"_printU8Array\",\"url\":\"interfaces/CoreAPI.html#_printU8Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":23,\"kind\":2048,\"name\":\"_printI16Array\",\"url\":\"interfaces/CoreAPI.html#_printI16Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":24,\"kind\":2048,\"name\":\"_printU16Array\",\"url\":\"interfaces/CoreAPI.html#_printU16Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":25,\"kind\":2048,\"name\":\"_printI32Array\",\"url\":\"interfaces/CoreAPI.html#_printI32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":26,\"kind\":2048,\"name\":\"_printU32Array\",\"url\":\"interfaces/CoreAPI.html#_printU32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":27,\"kind\":2048,\"name\":\"_printI64Array\",\"url\":\"interfaces/CoreAPI.html#_printI64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":28,\"kind\":2048,\"name\":\"_printU64Array\",\"url\":\"interfaces/CoreAPI.html#_printU64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":29,\"kind\":2048,\"name\":\"_printF32Array\",\"url\":\"interfaces/CoreAPI.html#_printF32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":30,\"kind\":2048,\"name\":\"_printF64Array\",\"url\":\"interfaces/CoreAPI.html#_printF64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":31,\"kind\":2048,\"name\":\"_printStr0\",\"url\":\"interfaces/CoreAPI.html#_printStr0\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":32,\"kind\":2048,\"name\":\"_printStr\",\"url\":\"interfaces/CoreAPI.html#_printStr\",\"classes\":\"tsd-kind-method tsd-parent-kind-interface\",\"parent\":\"CoreAPI\"},{\"id\":33,\"kind\":128,\"name\":\"WasmBridge\",\"url\":\"classes/WasmBridge.html\",\"classes\":\"tsd-kind-class tsd-has-type-parameter\"},{\"id\":34,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/WasmBridge.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"WasmBridge\"},{\"id\":35,\"kind\":1024,\"name\":\"i8\",\"url\":\"classes/WasmBridge.html#i8\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":36,\"kind\":1024,\"name\":\"u8\",\"url\":\"classes/WasmBridge.html#u8\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":37,\"kind\":1024,\"name\":\"i16\",\"url\":\"classes/WasmBridge.html#i16\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":38,\"kind\":1024,\"name\":\"u16\",\"url\":\"classes/WasmBridge.html#u16\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":39,\"kind\":1024,\"name\":\"i32\",\"url\":\"classes/WasmBridge.html#i32\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":40,\"kind\":1024,\"name\":\"u32\",\"url\":\"classes/WasmBridge.html#u32\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":41,\"kind\":1024,\"name\":\"i64\",\"url\":\"classes/WasmBridge.html#i64\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":42,\"kind\":1024,\"name\":\"u64\",\"url\":\"classes/WasmBridge.html#u64\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":43,\"kind\":1024,\"name\":\"f32\",\"url\":\"classes/WasmBridge.html#f32\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":44,\"kind\":1024,\"name\":\"f64\",\"url\":\"classes/WasmBridge.html#f64\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":45,\"kind\":1024,\"name\":\"utf8Decoder\",\"url\":\"classes/WasmBridge.html#utf8Decoder\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":46,\"kind\":1024,\"name\":\"utf8Encoder\",\"url\":\"classes/WasmBridge.html#utf8Encoder\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":47,\"kind\":1024,\"name\":\"core\",\"url\":\"classes/WasmBridge.html#core\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":48,\"kind\":1024,\"name\":\"exports\",\"url\":\"classes/WasmBridge.html#exports\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":49,\"kind\":1024,\"name\":\"modules\",\"url\":\"classes/WasmBridge.html#modules\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":50,\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/WasmBridge.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":51,\"kind\":2048,\"name\":\"instantiate\",\"url\":\"classes/WasmBridge.html#instantiate\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":52,\"kind\":2048,\"name\":\"init\",\"url\":\"classes/WasmBridge.html#init\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":53,\"kind\":2048,\"name\":\"getImports\",\"url\":\"classes/WasmBridge.html#getImports\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":54,\"kind\":2048,\"name\":\"getI8\",\"url\":\"classes/WasmBridge.html#getI8\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":55,\"kind\":2048,\"name\":\"getU8\",\"url\":\"classes/WasmBridge.html#getU8\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":56,\"kind\":2048,\"name\":\"getI16\",\"url\":\"classes/WasmBridge.html#getI16\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":57,\"kind\":2048,\"name\":\"getU16\",\"url\":\"classes/WasmBridge.html#getU16\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":58,\"kind\":2048,\"name\":\"getI32\",\"url\":\"classes/WasmBridge.html#getI32\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":59,\"kind\":2048,\"name\":\"getU32\",\"url\":\"classes/WasmBridge.html#getU32\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":60,\"kind\":2048,\"name\":\"getI64\",\"url\":\"classes/WasmBridge.html#getI64\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":61,\"kind\":2048,\"name\":\"getU64\",\"url\":\"classes/WasmBridge.html#getU64\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":62,\"kind\":2048,\"name\":\"getF32\",\"url\":\"classes/WasmBridge.html#getF32\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":63,\"kind\":2048,\"name\":\"getF64\",\"url\":\"classes/WasmBridge.html#getF64\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":64,\"kind\":2048,\"name\":\"setI8\",\"url\":\"classes/WasmBridge.html#setI8\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":65,\"kind\":2048,\"name\":\"setU8\",\"url\":\"classes/WasmBridge.html#setU8\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":66,\"kind\":2048,\"name\":\"setI16\",\"url\":\"classes/WasmBridge.html#setI16\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":67,\"kind\":2048,\"name\":\"setU16\",\"url\":\"classes/WasmBridge.html#setU16\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":68,\"kind\":2048,\"name\":\"setI32\",\"url\":\"classes/WasmBridge.html#setI32\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":69,\"kind\":2048,\"name\":\"setU32\",\"url\":\"classes/WasmBridge.html#setU32\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":70,\"kind\":2048,\"name\":\"setI64\",\"url\":\"classes/WasmBridge.html#setI64\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":71,\"kind\":2048,\"name\":\"setU64\",\"url\":\"classes/WasmBridge.html#setU64\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":72,\"kind\":2048,\"name\":\"setF32\",\"url\":\"classes/WasmBridge.html#setF32\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":73,\"kind\":2048,\"name\":\"setF64\",\"url\":\"classes/WasmBridge.html#setF64\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":74,\"kind\":2048,\"name\":\"getI8Array\",\"url\":\"classes/WasmBridge.html#getI8Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":75,\"kind\":2048,\"name\":\"getU8Array\",\"url\":\"classes/WasmBridge.html#getU8Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":76,\"kind\":2048,\"name\":\"getI16Array\",\"url\":\"classes/WasmBridge.html#getI16Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":77,\"kind\":2048,\"name\":\"getU16Array\",\"url\":\"classes/WasmBridge.html#getU16Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":78,\"kind\":2048,\"name\":\"getI32Array\",\"url\":\"classes/WasmBridge.html#getI32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":79,\"kind\":2048,\"name\":\"getU32Array\",\"url\":\"classes/WasmBridge.html#getU32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":80,\"kind\":2048,\"name\":\"getI64Array\",\"url\":\"classes/WasmBridge.html#getI64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":81,\"kind\":2048,\"name\":\"getU64Array\",\"url\":\"classes/WasmBridge.html#getU64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":82,\"kind\":2048,\"name\":\"getF32Array\",\"url\":\"classes/WasmBridge.html#getF32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":83,\"kind\":2048,\"name\":\"getF64Array\",\"url\":\"classes/WasmBridge.html#getF64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":84,\"kind\":2048,\"name\":\"setI8Array\",\"url\":\"classes/WasmBridge.html#setI8Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":85,\"kind\":2048,\"name\":\"setU8Array\",\"url\":\"classes/WasmBridge.html#setU8Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":86,\"kind\":2048,\"name\":\"setI16Array\",\"url\":\"classes/WasmBridge.html#setI16Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":87,\"kind\":2048,\"name\":\"setU16Array\",\"url\":\"classes/WasmBridge.html#setU16Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":88,\"kind\":2048,\"name\":\"setI32Array\",\"url\":\"classes/WasmBridge.html#setI32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":89,\"kind\":2048,\"name\":\"setU32Array\",\"url\":\"classes/WasmBridge.html#setU32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":90,\"kind\":2048,\"name\":\"setI64Array\",\"url\":\"classes/WasmBridge.html#setI64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":91,\"kind\":2048,\"name\":\"setU64Array\",\"url\":\"classes/WasmBridge.html#setU64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":92,\"kind\":2048,\"name\":\"setF32Array\",\"url\":\"classes/WasmBridge.html#setF32Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":93,\"kind\":2048,\"name\":\"setF64Array\",\"url\":\"classes/WasmBridge.html#setF64Array\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":94,\"kind\":2048,\"name\":\"getString\",\"url\":\"classes/WasmBridge.html#getString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":95,\"kind\":2048,\"name\":\"setString\",\"url\":\"classes/WasmBridge.html#setString\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":96,\"kind\":2048,\"name\":\"getElementById\",\"url\":\"classes/WasmBridge.html#getElementById\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"WasmBridge\"},{\"id\":97,\"kind\":256,\"name\":\"ObjectIndexOpts\",\"url\":\"interfaces/ObjectIndexOpts.html\",\"classes\":\"tsd-kind-interface\"},{\"id\":98,\"kind\":1024,\"name\":\"name\",\"url\":\"interfaces/ObjectIndexOpts.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ObjectIndexOpts\"},{\"id\":99,\"kind\":1024,\"name\":\"logger\",\"url\":\"interfaces/ObjectIndexOpts.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ObjectIndexOpts\"},{\"id\":100,\"kind\":1024,\"name\":\"bits\",\"url\":\"interfaces/ObjectIndexOpts.html#bits\",\"classes\":\"tsd-kind-property tsd-parent-kind-interface\",\"parent\":\"ObjectIndexOpts\"},{\"id\":101,\"kind\":128,\"name\":\"ObjectIndex\",\"url\":\"classes/ObjectIndex.html\",\"classes\":\"tsd-kind-class tsd-has-type-parameter\"},{\"id\":102,\"kind\":512,\"name\":\"constructor\",\"url\":\"classes/ObjectIndex.html#constructor\",\"classes\":\"tsd-kind-constructor tsd-parent-kind-class tsd-has-type-parameter\",\"parent\":\"ObjectIndex\"},{\"id\":103,\"kind\":1024,\"name\":\"name\",\"url\":\"classes/ObjectIndex.html#name\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":104,\"kind\":1024,\"name\":\"logger\",\"url\":\"classes/ObjectIndex.html#logger\",\"classes\":\"tsd-kind-property tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":105,\"kind\":1024,\"name\":\"idgen\",\"url\":\"classes/ObjectIndex.html#idgen\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ObjectIndex\"},{\"id\":106,\"kind\":1024,\"name\":\"items\",\"url\":\"classes/ObjectIndex.html#items\",\"classes\":\"tsd-kind-property tsd-parent-kind-class tsd-is-protected\",\"parent\":\"ObjectIndex\"},{\"id\":107,\"kind\":2048,\"name\":\"keys\",\"url\":\"classes/ObjectIndex.html#keys\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":108,\"kind\":2048,\"name\":\"values\",\"url\":\"classes/ObjectIndex.html#values\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":109,\"kind\":2048,\"name\":\"add\",\"url\":\"classes/ObjectIndex.html#add\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":110,\"kind\":2048,\"name\":\"has\",\"url\":\"classes/ObjectIndex.html#has\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":111,\"kind\":2048,\"name\":\"delete\",\"url\":\"classes/ObjectIndex.html#delete\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":112,\"kind\":2048,\"name\":\"get\",\"url\":\"classes/ObjectIndex.html#get\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"},{\"id\":113,\"kind\":2048,\"name\":\"find\",\"url\":\"classes/ObjectIndex.html#find\",\"classes\":\"tsd-kind-method tsd-parent-kind-class\",\"parent\":\"ObjectIndex\"}],\"index\":{\"version\":\"2.3.9\",\"fields\":[\"name\",\"parent\"],\"fieldVectors\":[[\"name/0\",[0,43.395]],[\"parent/0\",[]],[\"name/1\",[1,34.922]],[\"parent/1\",[]],[\"name/2\",[2,38.286]],[\"parent/2\",[1,3.401]],[\"name/3\",[3,38.286]],[\"parent/3\",[1,3.401]],[\"name/4\",[4,38.286]],[\"parent/4\",[]],[\"name/5\",[5,43.395]],[\"parent/5\",[4,3.729]],[\"name/6\",[6,14.307]],[\"parent/6\",[]],[\"name/7\",[7,43.395]],[\"parent/7\",[6,1.393]],[\"name/8\",[8,43.395]],[\"parent/8\",[6,1.393]],[\"name/9\",[9,43.395]],[\"parent/9\",[6,1.393]],[\"name/10\",[10,43.395]],[\"parent/10\",[6,1.393]],[\"name/11\",[11,43.395]],[\"parent/11\",[6,1.393]],[\"name/12\",[12,43.395]],[\"parent/12\",[6,1.393]],[\"name/13\",[13,43.395]],[\"parent/13\",[6,1.393]],[\"name/14\",[14,43.395]],[\"parent/14\",[6,1.393]],[\"name/15\",[15,43.395]],[\"parent/15\",[6,1.393]],[\"name/16\",[16,43.395]],[\"parent/16\",[6,1.393]],[\"name/17\",[17,43.395]],[\"parent/17\",[6,1.393]],[\"name/18\",[18,43.395]],[\"parent/18\",[6,1.393]],[\"name/19\",[19,43.395]],[\"parent/19\",[6,1.393]],[\"name/20\",[20,43.395]],[\"parent/20\",[6,1.393]],[\"name/21\",[21,43.395]],[\"parent/21\",[6,1.393]],[\"name/22\",[22,43.395]],[\"parent/22\",[6,1.393]],[\"name/23\",[23,43.395]],[\"parent/23\",[6,1.393]],[\"name/24\",[24,43.395]],[\"parent/24\",[6,1.393]],[\"name/25\",[25,43.395]],[\"parent/25\",[6,1.393]],[\"name/26\",[26,43.395]],[\"parent/26\",[6,1.393]],[\"name/27\",[27,43.395]],[\"parent/27\",[6,1.393]],[\"name/28\",[28,43.395]],[\"parent/28\",[6,1.393]],[\"name/29\",[29,43.395]],[\"parent/29\",[6,1.393]],[\"name/30\",[30,43.395]],[\"parent/30\",[6,1.393]],[\"name/31\",[31,43.395]],[\"parent/31\",[6,1.393]],[\"name/32\",[32,43.395]],[\"parent/32\",[6,1.393]],[\"name/33\",[33,5.783]],[\"parent/33\",[]],[\"name/34\",[34,38.286]],[\"parent/34\",[33,0.563]],[\"name/35\",[35,43.395]],[\"parent/35\",[33,0.563]],[\"name/36\",[36,43.395]],[\"parent/36\",[33,0.563]],[\"name/37\",[37,43.395]],[\"parent/37\",[33,0.563]],[\"name/38\",[38,43.395]],[\"parent/38\",[33,0.563]],[\"name/39\",[39,43.395]],[\"parent/39\",[33,0.563]],[\"name/40\",[40,43.395]],[\"parent/40\",[33,0.563]],[\"name/41\",[41,43.395]],[\"parent/41\",[33,0.563]],[\"name/42\",[42,43.395]],[\"parent/42\",[33,0.563]],[\"name/43\",[43,43.395]],[\"parent/43\",[33,0.563]],[\"name/44\",[44,43.395]],[\"parent/44\",[33,0.563]],[\"name/45\",[45,43.395]],[\"parent/45\",[33,0.563]],[\"name/46\",[46,43.395]],[\"parent/46\",[33,0.563]],[\"name/47\",[47,43.395]],[\"parent/47\",[33,0.563]],[\"name/48\",[48,43.395]],[\"parent/48\",[33,0.563]],[\"name/49\",[49,43.395]],[\"parent/49\",[33,0.563]],[\"name/50\",[50,34.922]],[\"parent/50\",[33,0.563]],[\"name/51\",[51,43.395]],[\"parent/51\",[33,0.563]],[\"name/52\",[2,38.286]],[\"parent/52\",[33,0.563]],[\"name/53\",[3,38.286]],[\"parent/53\",[33,0.563]],[\"name/54\",[52,43.395]],[\"parent/54\",[33,0.563]],[\"name/55\",[53,43.395]],[\"parent/55\",[33,0.563]],[\"name/56\",[54,43.395]],[\"parent/56\",[33,0.563]],[\"name/57\",[55,43.395]],[\"parent/57\",[33,0.563]],[\"name/58\",[56,43.395]],[\"parent/58\",[33,0.563]],[\"name/59\",[57,43.395]],[\"parent/59\",[33,0.563]],[\"name/60\",[58,43.395]],[\"parent/60\",[33,0.563]],[\"name/61\",[59,43.395]],[\"parent/61\",[33,0.563]],[\"name/62\",[60,43.395]],[\"parent/62\",[33,0.563]],[\"name/63\",[61,43.395]],[\"parent/63\",[33,0.563]],[\"name/64\",[62,43.395]],[\"parent/64\",[33,0.563]],[\"name/65\",[63,43.395]],[\"parent/65\",[33,0.563]],[\"name/66\",[64,43.395]],[\"parent/66\",[33,0.563]],[\"name/67\",[65,43.395]],[\"parent/67\",[33,0.563]],[\"name/68\",[66,43.395]],[\"parent/68\",[33,0.563]],[\"name/69\",[67,43.395]],[\"parent/69\",[33,0.563]],[\"name/70\",[68,43.395]],[\"parent/70\",[33,0.563]],[\"name/71\",[69,43.395]],[\"parent/71\",[33,0.563]],[\"name/72\",[70,43.395]],[\"parent/72\",[33,0.563]],[\"name/73\",[71,43.395]],[\"parent/73\",[33,0.563]],[\"name/74\",[72,43.395]],[\"parent/74\",[33,0.563]],[\"name/75\",[73,43.395]],[\"parent/75\",[33,0.563]],[\"name/76\",[74,43.395]],[\"parent/76\",[33,0.563]],[\"name/77\",[75,43.395]],[\"parent/77\",[33,0.563]],[\"name/78\",[76,43.395]],[\"parent/78\",[33,0.563]],[\"name/79\",[77,43.395]],[\"parent/79\",[33,0.563]],[\"name/80\",[78,43.395]],[\"parent/80\",[33,0.563]],[\"name/81\",[79,43.395]],[\"parent/81\",[33,0.563]],[\"name/82\",[80,43.395]],[\"parent/82\",[33,0.563]],[\"name/83\",[81,43.395]],[\"parent/83\",[33,0.563]],[\"name/84\",[82,43.395]],[\"parent/84\",[33,0.563]],[\"name/85\",[83,43.395]],[\"parent/85\",[33,0.563]],[\"name/86\",[84,43.395]],[\"parent/86\",[33,0.563]],[\"name/87\",[85,43.395]],[\"parent/87\",[33,0.563]],[\"name/88\",[86,43.395]],[\"parent/88\",[33,0.563]],[\"name/89\",[87,43.395]],[\"parent/89\",[33,0.563]],[\"name/90\",[88,43.395]],[\"parent/90\",[33,0.563]],[\"name/91\",[89,43.395]],[\"parent/91\",[33,0.563]],[\"name/92\",[90,43.395]],[\"parent/92\",[33,0.563]],[\"name/93\",[91,43.395]],[\"parent/93\",[33,0.563]],[\"name/94\",[92,43.395]],[\"parent/94\",[33,0.563]],[\"name/95\",[93,43.395]],[\"parent/95\",[33,0.563]],[\"name/96\",[94,43.395]],[\"parent/96\",[33,0.563]],[\"name/97\",[95,32.409]],[\"parent/97\",[]],[\"name/98\",[96,38.286]],[\"parent/98\",[95,3.156]],[\"name/99\",[50,34.922]],[\"parent/99\",[95,3.156]],[\"name/100\",[97,43.395]],[\"parent/100\",[95,3.156]],[\"name/101\",[98,21.422]],[\"parent/101\",[]],[\"name/102\",[34,38.286]],[\"parent/102\",[98,2.086]],[\"name/103\",[96,38.286]],[\"parent/103\",[98,2.086]],[\"name/104\",[50,34.922]],[\"parent/104\",[98,2.086]],[\"name/105\",[99,43.395]],[\"parent/105\",[98,2.086]],[\"name/106\",[100,43.395]],[\"parent/106\",[98,2.086]],[\"name/107\",[101,43.395]],[\"parent/107\",[98,2.086]],[\"name/108\",[102,43.395]],[\"parent/108\",[98,2.086]],[\"name/109\",[103,43.395]],[\"parent/109\",[98,2.086]],[\"name/110\",[104,43.395]],[\"parent/110\",[98,2.086]],[\"name/111\",[105,43.395]],[\"parent/111\",[98,2.086]],[\"name/112\",[106,43.395]],[\"parent/112\",[98,2.086]],[\"name/113\",[107,43.395]],[\"parent/113\",[98,2.086]]],\"invertedIndex\":[[\"_printf32array\",{\"_index\":29,\"name\":{\"29\":{}},\"parent\":{}}],[\"_printf64array\",{\"_index\":30,\"name\":{\"30\":{}},\"parent\":{}}],[\"_printi16array\",{\"_index\":23,\"name\":{\"23\":{}},\"parent\":{}}],[\"_printi32array\",{\"_index\":25,\"name\":{\"25\":{}},\"parent\":{}}],[\"_printi64\",{\"_index\":16,\"name\":{\"16\":{}},\"parent\":{}}],[\"_printi64array\",{\"_index\":27,\"name\":{\"27\":{}},\"parent\":{}}],[\"_printi8array\",{\"_index\":21,\"name\":{\"21\":{}},\"parent\":{}}],[\"_printstr\",{\"_index\":32,\"name\":{\"32\":{}},\"parent\":{}}],[\"_printstr0\",{\"_index\":31,\"name\":{\"31\":{}},\"parent\":{}}],[\"_printu16array\",{\"_index\":24,\"name\":{\"24\":{}},\"parent\":{}}],[\"_printu32array\",{\"_index\":26,\"name\":{\"26\":{}},\"parent\":{}}],[\"_printu64\",{\"_index\":17,\"name\":{\"17\":{}},\"parent\":{}}],[\"_printu64array\",{\"_index\":28,\"name\":{\"28\":{}},\"parent\":{}}],[\"_printu64hex\",{\"_index\":18,\"name\":{\"18\":{}},\"parent\":{}}],[\"_printu8array\",{\"_index\":22,\"name\":{\"22\":{}},\"parent\":{}}],[\"add\",{\"_index\":103,\"name\":{\"109\":{}},\"parent\":{}}],[\"bigintarray\",{\"_index\":0,\"name\":{\"0\":{}},\"parent\":{}}],[\"bits\",{\"_index\":97,\"name\":{\"100\":{}},\"parent\":{}}],[\"constructor\",{\"_index\":34,\"name\":{\"34\":{},\"102\":{}},\"parent\":{}}],[\"core\",{\"_index\":47,\"name\":{\"47\":{}},\"parent\":{}}],[\"coreapi\",{\"_index\":6,\"name\":{\"6\":{}},\"parent\":{\"7\":{},\"8\":{},\"9\":{},\"10\":{},\"11\":{},\"12\":{},\"13\":{},\"14\":{},\"15\":{},\"16\":{},\"17\":{},\"18\":{},\"19\":{},\"20\":{},\"21\":{},\"22\":{},\"23\":{},\"24\":{},\"25\":{},\"26\":{},\"27\":{},\"28\":{},\"29\":{},\"30\":{},\"31\":{},\"32\":{}}}],[\"delete\",{\"_index\":105,\"name\":{\"111\":{}},\"parent\":{}}],[\"exports\",{\"_index\":48,\"name\":{\"48\":{}},\"parent\":{}}],[\"f32\",{\"_index\":43,\"name\":{\"43\":{}},\"parent\":{}}],[\"f64\",{\"_index\":44,\"name\":{\"44\":{}},\"parent\":{}}],[\"find\",{\"_index\":107,\"name\":{\"113\":{}},\"parent\":{}}],[\"get\",{\"_index\":106,\"name\":{\"112\":{}},\"parent\":{}}],[\"getelementbyid\",{\"_index\":94,\"name\":{\"96\":{}},\"parent\":{}}],[\"getf32\",{\"_index\":60,\"name\":{\"62\":{}},\"parent\":{}}],[\"getf32array\",{\"_index\":80,\"name\":{\"82\":{}},\"parent\":{}}],[\"getf64\",{\"_index\":61,\"name\":{\"63\":{}},\"parent\":{}}],[\"getf64array\",{\"_index\":81,\"name\":{\"83\":{}},\"parent\":{}}],[\"geti16\",{\"_index\":54,\"name\":{\"56\":{}},\"parent\":{}}],[\"geti16array\",{\"_index\":74,\"name\":{\"76\":{}},\"parent\":{}}],[\"geti32\",{\"_index\":56,\"name\":{\"58\":{}},\"parent\":{}}],[\"geti32array\",{\"_index\":76,\"name\":{\"78\":{}},\"parent\":{}}],[\"geti64\",{\"_index\":58,\"name\":{\"60\":{}},\"parent\":{}}],[\"geti64array\",{\"_index\":78,\"name\":{\"80\":{}},\"parent\":{}}],[\"geti8\",{\"_index\":52,\"name\":{\"54\":{}},\"parent\":{}}],[\"geti8array\",{\"_index\":72,\"name\":{\"74\":{}},\"parent\":{}}],[\"getimports\",{\"_index\":3,\"name\":{\"3\":{},\"53\":{}},\"parent\":{}}],[\"getstring\",{\"_index\":92,\"name\":{\"94\":{}},\"parent\":{}}],[\"getu16\",{\"_index\":55,\"name\":{\"57\":{}},\"parent\":{}}],[\"getu16array\",{\"_index\":75,\"name\":{\"77\":{}},\"parent\":{}}],[\"getu32\",{\"_index\":57,\"name\":{\"59\":{}},\"parent\":{}}],[\"getu32array\",{\"_index\":77,\"name\":{\"79\":{}},\"parent\":{}}],[\"getu64\",{\"_index\":59,\"name\":{\"61\":{}},\"parent\":{}}],[\"getu64array\",{\"_index\":79,\"name\":{\"81\":{}},\"parent\":{}}],[\"getu8\",{\"_index\":53,\"name\":{\"55\":{}},\"parent\":{}}],[\"getu8array\",{\"_index\":73,\"name\":{\"75\":{}},\"parent\":{}}],[\"has\",{\"_index\":104,\"name\":{\"110\":{}},\"parent\":{}}],[\"i16\",{\"_index\":37,\"name\":{\"37\":{}},\"parent\":{}}],[\"i32\",{\"_index\":39,\"name\":{\"39\":{}},\"parent\":{}}],[\"i64\",{\"_index\":41,\"name\":{\"41\":{}},\"parent\":{}}],[\"i8\",{\"_index\":35,\"name\":{\"35\":{}},\"parent\":{}}],[\"idgen\",{\"_index\":99,\"name\":{\"105\":{}},\"parent\":{}}],[\"init\",{\"_index\":2,\"name\":{\"2\":{},\"52\":{}},\"parent\":{}}],[\"instantiate\",{\"_index\":51,\"name\":{\"51\":{}},\"parent\":{}}],[\"items\",{\"_index\":100,\"name\":{\"106\":{}},\"parent\":{}}],[\"iwasmapi\",{\"_index\":1,\"name\":{\"1\":{}},\"parent\":{\"2\":{},\"3\":{}}}],[\"keys\",{\"_index\":101,\"name\":{\"107\":{}},\"parent\":{}}],[\"logger\",{\"_index\":50,\"name\":{\"50\":{},\"99\":{},\"104\":{}},\"parent\":{}}],[\"memory\",{\"_index\":5,\"name\":{\"5\":{}},\"parent\":{}}],[\"modules\",{\"_index\":49,\"name\":{\"49\":{}},\"parent\":{}}],[\"name\",{\"_index\":96,\"name\":{\"98\":{},\"103\":{}},\"parent\":{}}],[\"objectindex\",{\"_index\":98,\"name\":{\"101\":{}},\"parent\":{\"102\":{},\"103\":{},\"104\":{},\"105\":{},\"106\":{},\"107\":{},\"108\":{},\"109\":{},\"110\":{},\"111\":{},\"112\":{},\"113\":{}}}],[\"objectindexopts\",{\"_index\":95,\"name\":{\"97\":{}},\"parent\":{\"98\":{},\"99\":{},\"100\":{}}}],[\"printf32\",{\"_index\":19,\"name\":{\"19\":{}},\"parent\":{}}],[\"printf64\",{\"_index\":20,\"name\":{\"20\":{}},\"parent\":{}}],[\"printi16\",{\"_index\":10,\"name\":{\"10\":{}},\"parent\":{}}],[\"printi32\",{\"_index\":13,\"name\":{\"13\":{}},\"parent\":{}}],[\"printi8\",{\"_index\":7,\"name\":{\"7\":{}},\"parent\":{}}],[\"printu16\",{\"_index\":11,\"name\":{\"11\":{}},\"parent\":{}}],[\"printu16hex\",{\"_index\":12,\"name\":{\"12\":{}},\"parent\":{}}],[\"printu32\",{\"_index\":14,\"name\":{\"14\":{}},\"parent\":{}}],[\"printu32hex\",{\"_index\":15,\"name\":{\"15\":{}},\"parent\":{}}],[\"printu8\",{\"_index\":8,\"name\":{\"8\":{}},\"parent\":{}}],[\"printu8hex\",{\"_index\":9,\"name\":{\"9\":{}},\"parent\":{}}],[\"setf32\",{\"_index\":70,\"name\":{\"72\":{}},\"parent\":{}}],[\"setf32array\",{\"_index\":90,\"name\":{\"92\":{}},\"parent\":{}}],[\"setf64\",{\"_index\":71,\"name\":{\"73\":{}},\"parent\":{}}],[\"setf64array\",{\"_index\":91,\"name\":{\"93\":{}},\"parent\":{}}],[\"seti16\",{\"_index\":64,\"name\":{\"66\":{}},\"parent\":{}}],[\"seti16array\",{\"_index\":84,\"name\":{\"86\":{}},\"parent\":{}}],[\"seti32\",{\"_index\":66,\"name\":{\"68\":{}},\"parent\":{}}],[\"seti32array\",{\"_index\":86,\"name\":{\"88\":{}},\"parent\":{}}],[\"seti64\",{\"_index\":68,\"name\":{\"70\":{}},\"parent\":{}}],[\"seti64array\",{\"_index\":88,\"name\":{\"90\":{}},\"parent\":{}}],[\"seti8\",{\"_index\":62,\"name\":{\"64\":{}},\"parent\":{}}],[\"seti8array\",{\"_index\":82,\"name\":{\"84\":{}},\"parent\":{}}],[\"setstring\",{\"_index\":93,\"name\":{\"95\":{}},\"parent\":{}}],[\"setu16\",{\"_index\":65,\"name\":{\"67\":{}},\"parent\":{}}],[\"setu16array\",{\"_index\":85,\"name\":{\"87\":{}},\"parent\":{}}],[\"setu32\",{\"_index\":67,\"name\":{\"69\":{}},\"parent\":{}}],[\"setu32array\",{\"_index\":87,\"name\":{\"89\":{}},\"parent\":{}}],[\"setu64\",{\"_index\":69,\"name\":{\"71\":{}},\"parent\":{}}],[\"setu64array\",{\"_index\":89,\"name\":{\"91\":{}},\"parent\":{}}],[\"setu8\",{\"_index\":63,\"name\":{\"65\":{}},\"parent\":{}}],[\"setu8array\",{\"_index\":83,\"name\":{\"85\":{}},\"parent\":{}}],[\"u16\",{\"_index\":38,\"name\":{\"38\":{}},\"parent\":{}}],[\"u32\",{\"_index\":40,\"name\":{\"40\":{}},\"parent\":{}}],[\"u64\",{\"_index\":42,\"name\":{\"42\":{}},\"parent\":{}}],[\"u8\",{\"_index\":36,\"name\":{\"36\":{}},\"parent\":{}}],[\"utf8decoder\",{\"_index\":45,\"name\":{\"45\":{}},\"parent\":{}}],[\"utf8encoder\",{\"_index\":46,\"name\":{\"46\":{}},\"parent\":{}}],[\"values\",{\"_index\":102,\"name\":{\"108\":{}},\"parent\":{}}],[\"wasmbridge\",{\"_index\":33,\"name\":{\"33\":{}},\"parent\":{\"34\":{},\"35\":{},\"36\":{},\"37\":{},\"38\":{},\"39\":{},\"40\":{},\"41\":{},\"42\":{},\"43\":{},\"44\":{},\"45\":{},\"46\":{},\"47\":{},\"48\":{},\"49\":{},\"50\":{},\"51\":{},\"52\":{},\"53\":{},\"54\":{},\"55\":{},\"56\":{},\"57\":{},\"58\":{},\"59\":{},\"60\":{},\"61\":{},\"62\":{},\"63\":{},\"64\":{},\"65\":{},\"66\":{},\"67\":{},\"68\":{},\"69\":{},\"70\":{},\"71\":{},\"72\":{},\"73\":{},\"74\":{},\"75\":{},\"76\":{},\"77\":{},\"78\":{},\"79\":{},\"80\":{},\"81\":{},\"82\":{},\"83\":{},\"84\":{},\"85\":{},\"86\":{},\"87\":{},\"88\":{},\"89\":{},\"90\":{},\"91\":{},\"92\":{},\"93\":{},\"94\":{},\"95\":{},\"96\":{}}}],[\"wasmexports\",{\"_index\":4,\"name\":{\"4\":{}},\"parent\":{\"5\":{}}}]],\"pipeline\":[]}}");
|