@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 CHANGED
@@ -1,6 +1,6 @@
1
1
  # Change Log
2
2
 
3
- - **Last updated**: 2022-08-04T21:21:08Z
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 with the bridge's
61
- * core API and hence should use naming prefixes...
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
- custom_randomVec2: (addr: number) => {
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 readme):
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
- extern fn custom_randomVec2(addr: usize) void;
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
- custom_randomVec2(@ptrToInt(&foo));
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.63 KB
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 "env" "_printStr" (func $fimport$0 (param i32 i32)))
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
- core: CoreAPI;
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 all declared imports will be merged into a single flat namespace,
67
- * it's recommended to use per-module naming prefixes to avoid clashes. If
68
- * there're any naming clashes, this function will throw an error.
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 = { ...imports, ...this.getImports() };
74
- let wasm;
75
- if ($src instanceof Response) {
76
- wasm = await WebAssembly.instantiateStreaming($src, $imports);
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
- const buf = exports.memory.buffer;
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 all declared imports will be merged into a single flat namespace,
118
- * it's recommended to use per-module naming prefixes to avoid clashes. If
119
- * there're any naming clashes, this function will throw an error.
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
- const env = { ...this.core };
123
- for (let id in this.modules) {
124
- const imports = this.modules[id].getImports();
125
- // check for naming clashes
126
- for (let k in imports) {
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 { env };
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 != null && len < maxBytes + (terminate ? 0 : 1)) {
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.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.9",
39
+ "@thi.ng/errors": "^2.1.10",
39
40
  "@thi.ng/hex": "^2.1.9",
40
- "@thi.ng/idgen": "^2.1.9",
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": "488e782dcb7311dd7b1804015ccc0848fc52ae8b\n"
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
- extern fn custom_setVec2(addr: usize) void;
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
- custom_setVec2(@ptrToInt(&foo));
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;
@@ -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={"&":"&amp;","<":"&lt;",">":"&gt;","'":"&#039;",'"':"&quot;"};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
- */
@@ -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\":[]}}");