@k9o/kibo-react-native 1.1.1 → 1.3.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 ADDED
@@ -0,0 +1,22 @@
1
+ # @k9o/kibo-react-native — Changelog
2
+
3
+ ## 1.3.0 — 2026-10-26
4
+
5
+ ### Changed
6
+
7
+ - The web glue of the Kibo core initialises lazily on the first `encrypt` or `decrypt`.
8
+ - A core that was supplied but cannot start fails with the new `KIBO_WASM_INIT_FAILED`. A later call retries.
9
+ - README: the core ships inside the package under `wasm/`. It is not something your app has to bundle.
10
+
11
+ ### Removed
12
+
13
+ - Nothing.
14
+
15
+ ### Added
16
+
17
+ - `init({ core, wasm? })` supplies the core and initialises it now. `wasm` takes the compiled `.wasm` bytes.
18
+ - Types `ZkCoreModule` and `InitOptions`.
19
+
20
+ ## 1.0.0
21
+
22
+ First public release.
package/README.md CHANGED
@@ -2,6 +2,9 @@
2
2
 
3
3
  Kibo for React Native. Encrypt and decrypt on the device with keys held in your own KMS, so the platform never sees your plaintext.
4
4
 
5
+ Kilimanjaro is the AI-native foundation for building critical applications. Its products are Keep (AI Security and Governance),
6
+ Pulse (Data Intelligence), Gate (Customer Identity and Access Management) and Kibo (Keys and Secrets Management).
7
+
5
8
  ## Contents
6
9
 
7
10
  - [Links](#links)
@@ -11,6 +14,11 @@ Kibo for React Native. Encrypt and decrypt on the device with keys held in your
11
14
  - [Encrypt and decrypt](#encrypt-and-decrypt)
12
15
  - [Handle errors](#handle-errors)
13
16
  - [Appendix](#appendix)
17
+ - [Requirements](#requirements)
18
+ - [Methods](#methods)
19
+ - [Encrypt and decrypt fields](#encrypt-and-decrypt-fields)
20
+ - [Error codes](#error-codes)
21
+ - [Related packages](#related-packages)
14
22
 
15
23
  ## Links
16
24
 
@@ -18,11 +26,6 @@ Kibo for React Native. Encrypt and decrypt on the device with keys held in your
18
26
  - Documentation / Developer Hub: <https://docs.kilimanjaro.dev>
19
27
  - Platform API: <https://api.k9o.io>
20
28
  - Platform Console: <https://console.k9o.io>
21
- - [Requirements](#requirements)
22
- - [Methods](#methods)
23
- - [Encrypt and decrypt fields](#encrypt-and-decrypt-fields)
24
- - [Error codes](#error-codes)
25
- - [Related packages](#related-packages)
26
29
 
27
30
  ## Install
28
31
 
@@ -34,25 +37,29 @@ Yarn works too: `yarn add @k9o/kibo-react-native`. See [requirements](#requireme
34
37
 
35
38
  ## Quick start
36
39
 
37
- - Load the Kibo core once at app start. See [load the core](#load-the-core).
40
+ - Hand the Kibo core to the package once at app start. See [load the core](#load-the-core).
38
41
  - Call `encrypt` and `decrypt`. See [encrypt and decrypt](#encrypt-and-decrypt).
39
42
 
40
43
  This package has no cryptography of its own. It passes typed input to the Kibo core, a WebAssembly module, and returns the result.
44
+ The core ships inside the package, under `wasm/`.
41
45
 
42
46
  ## Load the core
43
47
 
44
- React Native cannot import the WebAssembly core on demand. Your app loads it and hands it over once with `setZkWasm`.
48
+ React Native cannot import the WebAssembly core on demand. Your app imports it and hands it over once with `init`.
45
49
 
46
50
  ```ts
47
- import { setZkWasm } from "@k9o/kibo-react-native";
48
- import * as core from "./kibo_kms_rest_ffi.js";
51
+ import { init } from "@k9o/kibo-react-native";
52
+ import * as core from "@k9o/kibo-react-native/wasm/kibo_kms_rest_ffi.js";
49
53
 
50
- setZkWasm(core);
54
+ await init({ core });
51
55
  ```
52
56
 
53
- - The core is not shipped inside this package. Your app bundles it.
54
- - It must expose async `zk_encrypt` and `zk_decrypt` functions (the `ZkWasm` type).
55
- - Until `setZkWasm` runs, `encrypt` and `decrypt` fail with `KIBO_WASM_NOT_LOADED`.
57
+ - `init` is optional. Without it, the core is initialised on the first `encrypt` or `decrypt`.
58
+ - `setZkWasm(core)` supplies the core without initialising it. `init({ core })` does both.
59
+ - If your runtime cannot fetch the `.wasm` file itself, pass its bytes: `init({ core, wasm })`.
60
+ - The module must expose async `zk_encrypt` and `zk_decrypt` functions (the `ZkWasm` type).
61
+ - Before a core is supplied, `encrypt` and `decrypt` fail with `KIBO_WASM_NOT_LOADED`.
62
+ - If the core is supplied but cannot start, they fail with `KIBO_WASM_INIT_FAILED`. A later call retries.
56
63
 
57
64
  ## Encrypt and decrypt
58
65
 
@@ -60,12 +67,13 @@ The example encrypts the title of a task. `kms_cred.secret` is a short-lived fed
60
67
 
61
68
  ```ts
62
69
  import { encrypt, decrypt } from "@k9o/kibo-react-native";
70
+ import type { KiboEncryptInput } from "@k9o/kibo-react-native";
63
71
 
64
72
  const kmsToken = "FEDERATED_TOKEN";
65
73
  const context = [{ key: "collection", value: "tasks" }];
66
74
  const title = new TextEncoder().encode("Write the README");
67
75
 
68
- const sealed = await encrypt({
76
+ const input: KiboEncryptInput = {
69
77
  provider: "aws-kms",
70
78
  posture: "byok",
71
79
  kms_cred: { secret: kmsToken, expires_at_unix_secs: 1_800_000_000 },
@@ -74,7 +82,9 @@ const sealed = await encrypt({
74
82
  attestation_tier: "software",
75
83
  encryption_context: context,
76
84
  plaintext: title,
77
- });
85
+ };
86
+
87
+ const sealed = await encrypt(input);
78
88
 
79
89
  const opened = await decrypt({
80
90
  kms_cred: { secret: kmsToken, expires_at_unix_secs: 1_800_000_000 },
@@ -98,7 +108,7 @@ Write the README
98
108
 
99
109
  ## Handle errors
100
110
 
101
- Every failure is a `KiboError` with `code`, `message` and `context`.
111
+ Every failure is a `KiboError` with `code`, `message` and `context`. The `input` is the one from the previous section.
102
112
 
103
113
  ```ts
104
114
  import { KiboError } from "@k9o/kibo-react-native";
@@ -112,7 +122,7 @@ try {
112
122
  }
113
123
  ```
114
124
 
115
- If `setZkWasm` was skipped, this prints:
125
+ If no core was supplied, this prints:
116
126
 
117
127
  ```text
118
128
  KIBO_WASM_NOT_LOADED
@@ -128,13 +138,14 @@ See [error codes](#error-codes) for the full list.
128
138
  |---|---|
129
139
  | React | 18 or later |
130
140
  | React Native | 0.74 or later |
131
- | Kibo core (WebAssembly) | Bundled by your app |
141
+ | Kibo core (WebAssembly) | Shipped in the package under `wasm/` |
132
142
 
133
143
  ### Methods
134
144
 
135
145
  | Function | What it does |
136
146
  |---|---|
137
- | `setZkWasm(core)` | Supply the Kibo core; call once at app start |
147
+ | `init({ core, wasm? })` | Supply the core and initialise it now; optional, `encrypt` initialises on first use |
148
+ | `setZkWasm(core)` | Supply the core; it is initialised on first use |
138
149
  | `encrypt(input)` | Encrypt bytes with your KMS; returns `{ envelope }` |
139
150
  | `decrypt(input)` | Decrypt an envelope; returns `{ plaintext }` |
140
151
 
@@ -161,7 +172,8 @@ Codes from the core are passed through unchanged.
161
172
 
162
173
  | Code | When |
163
174
  |---|---|
164
- | `KIBO_WASM_NOT_LOADED` | `setZkWasm` has not been called |
175
+ | `KIBO_WASM_NOT_LOADED` | No core was supplied with `init` or `setZkWasm` |
176
+ | `KIBO_WASM_INIT_FAILED` | A core was supplied but failed to initialise; `context.cause` has the reason |
165
177
  | `K9O_CRYPTO_POSTURE_FLOOR_VIOLATION` | `posture` is below the floor in `posture_policy`; `context` has `dimension`, `requested`, `declared` |
166
178
  | `UPSTREAM_KMS_ERROR` | Your own KMS rejected or failed the call |
167
179
  | `KIBO_WASM_DECODE_ERROR` | The core returned something other than bytes |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@k9o/kibo-react-native",
3
- "version": "1.1.1",
3
+ "version": "1.3.0",
4
4
  "description": "Kibo Zero-Knowledge BYOK/HYOK vault SDK for React Native — client-side encrypt/decrypt against your own KMS, over the audited Rust core (kibo-kms-rest-ffi) compiled to wasm. The platform never sees plaintext.",
5
5
  "main": "src/index.ts",
6
6
  "types": "src/index.ts",
@@ -10,7 +10,8 @@
10
10
  "!src/__tests__",
11
11
  "LICENSE",
12
12
  "NOTICE",
13
- "README.md"
13
+ "README.md",
14
+ "CHANGELOG.md"
14
15
  ],
15
16
  "repository": {
16
17
  "type": "git",
package/src/KiboError.ts CHANGED
@@ -15,8 +15,9 @@ export class KiboError extends Error {
15
15
  readonly code: string;
16
16
  readonly context: Record<string, unknown>;
17
17
 
18
- constructor(opts: { code: string; message: string; context?: Record<string, unknown> }) {
18
+ constructor(opts: { code: string; message: string; context?: Record<string, unknown>; cause?: unknown }) {
19
19
  super(opts.message);
20
+ if (opts.cause !== undefined) (this as { cause?: unknown }).cause = opts.cause;
20
21
  this.name = "KiboError";
21
22
  this.code = opts.code;
22
23
  this.context = opts.context ?? {};
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * TS contract for the ZK encrypt/decrypt FFI surface — mirrors the Rust
3
- * `kibo-kms-rest-ffi::types` (the bound core, piece C) field-for-field.
3
+ * `kibo-kms-rest-ffi::types` (the bound core) field-for-field.
4
4
  *
5
5
  * These types cross the wasm boundary as plain JS objects (serde-wasm-bindgen),
6
6
  * so the field names + enum wire-tokens must match the Rust serde exactly:
@@ -42,7 +42,7 @@ export interface KiboAllowedOracleModes {
42
42
  direct: boolean;
43
43
  }
44
44
 
45
- /** Project-declared crypto-posture floor. Omit fields for the
45
+ /** Project-declared crypto-posture floor . Omit fields for the
46
46
  * most-permissive default (`platform_managed` floor + both oracle modes). */
47
47
  export interface KiboPosturePolicy {
48
48
  min_custody_posture?: KiboMinPosture;
package/src/crypto.ts CHANGED
@@ -1,14 +1,15 @@
1
1
  /**
2
- * ZK encrypt/decrypt — the thin React Native wrapper over the bound crypto core
3
- * (`kibo-kms-rest-ffi`, piece C) compiled to wasm. ZERO crypto here: every
2
+ * ZK encrypt/decrypt - the thin React Native wrapper over the bound crypto core
3
+ * (`kibo-kms-rest-ffi`) compiled to wasm. ZERO crypto here: every
4
4
  * wrap/unwrap, envelope framing, posture-floor enforcement, and KMS round-trip
5
- * lives in the audited Rust core. This layer only marshals the typed input
6
- * across the wasm boundary and maps the core's error string → `KiboError`.
5
+ * lives in the Rust core. This layer only marshals the typed input
6
+ * across the wasm boundary and maps the core's error string to `KiboError`.
7
7
  *
8
- * Unlike the Node `@k9o/kibo` package, RN cannot dynamically `import()` the
9
- * vendored wasm at runtime — the host must load the core wasm (per its bundler /
10
- * `react-native-wasm` runtime) and inject it via `setZkWasm` before the first
11
- * `encrypt` / `decrypt`. This mirrors `@k9o/kibo`'s `setZkWasm` escape hatch.
8
+ * The core is the wasm-bindgen web-target module (`wasm/kibo_kms_rest_ffi.js`, shipped in this package). That module
9
+ * must be initialised (its default export instantiates the `.wasm`) before `zk_encrypt` / `zk_decrypt` exist in a
10
+ * usable state. `init()` does that; `encrypt` / `decrypt` call it for you on first use when a core has been supplied
11
+ * with `init({ core })` or `setZkWasm(core)`. React Native cannot `import()` the artifact on demand, so the app
12
+ * imports the module itself and hands it over.
12
13
  */
13
14
 
14
15
  import { KiboError } from "./KiboError";
@@ -25,35 +26,102 @@ export interface ZkWasm {
25
26
  zk_decrypt(input: unknown): Promise<unknown>;
26
27
  }
27
28
 
28
- let zkWasm: ZkWasm | undefined;
29
+ /** The wasm-bindgen web-target module namespace: `ZkWasm` plus its initialisers. */
30
+ export interface ZkCoreModule extends ZkWasm {
31
+ /** Instantiates the `.wasm`. Takes the module bytes, a `WebAssembly.Module`, a `URL`/string, or nothing (then the glue fetches
32
+ * its sibling `.wasm`, which works on the web but usually not in React Native). */
33
+ default?: (input?: unknown) => Promise<unknown>;
34
+ /** Synchronous instantiation from bytes or a `WebAssembly.Module`. */
35
+ initSync?: (input: unknown) => unknown;
36
+ }
37
+
38
+ export interface InitOptions {
39
+ /** The core module: `import * as core from "@k9o/kibo-react-native/wasm/kibo_kms_rest_ffi.js"`. Optional when `setZkWasm` was called. */
40
+ core?: ZkCoreModule;
41
+ /** The compiled `.wasm`, as bytes (`ArrayBuffer`/typed array), a `WebAssembly.Module`, or whatever your runtime can hand the glue
42
+ * (URL, string, `Response`). Omit it to let the glue locate its own `.wasm`. */
43
+ wasm?: unknown;
44
+ }
45
+
46
+ let core: ZkCoreModule | undefined;
47
+ let wasmInput: unknown;
48
+ let ready: ZkWasm | undefined;
49
+ let pending: Promise<ZkWasm> | undefined;
29
50
 
30
51
  /**
31
- * Inject the host-loaded core wasm module. MUST be called once at app start
32
- * (before any `encrypt` / `decrypt`) with the provider-matched core build.
52
+ * Supply the core module. Call it once at app start, or use `init({ core })`. If the module still needs
53
+ * instantiating (it has a default export), that happens on the first `encrypt` / `decrypt`, or earlier via `init()`.
54
+ * A module with only `zk_encrypt` / `zk_decrypt` (already instantiated, or a test double) is used as is.
33
55
  */
34
- export function setZkWasm(mod: ZkWasm): void {
35
- zkWasm = mod;
56
+ export function setZkWasm(mod: ZkWasm | ZkCoreModule | undefined): void {
57
+ core = mod as ZkCoreModule | undefined;
58
+ ready = undefined;
59
+ pending = undefined;
60
+ }
61
+
62
+ function isSyncInput(v: unknown): boolean {
63
+ if (v === undefined || v === null) return false;
64
+ const W = (globalThis as { WebAssembly?: { Module?: new (...a: never[]) => unknown } }).WebAssembly;
65
+ return v instanceof ArrayBuffer || ArrayBuffer.isView(v) || (W?.Module !== undefined && v instanceof (W.Module as new (...a: never[]) => object));
66
+ }
67
+
68
+ /**
69
+ * Initialise the core now (optional: `encrypt` / `decrypt` do it on first use). Safe to call more than once; concurrent
70
+ * calls share one initialisation, and a failed one can be retried.
71
+ */
72
+ export async function init(options: InitOptions = {}): Promise<void> {
73
+ if (options.core !== undefined) setZkWasm(options.core);
74
+ if (options.wasm !== undefined) {
75
+ wasmInput = options.wasm;
76
+ ready = undefined;
77
+ pending = undefined;
78
+ }
79
+ await ensureReady();
36
80
  }
37
81
 
38
- function requireWasm(): ZkWasm {
39
- if (!zkWasm) {
40
- throw new KiboError({
41
- code: "KIBO_WASM_NOT_LOADED",
42
- message:
43
- "ZK core wasm not loaded. Call setZkWasm(coreModule) once at app start before encrypt/decrypt.",
44
- context: {},
45
- });
82
+ function ensureReady(): Promise<ZkWasm> {
83
+ if (ready) return Promise.resolve(ready);
84
+ if (!core) {
85
+ return Promise.reject(
86
+ new KiboError({
87
+ code: "KIBO_WASM_NOT_LOADED",
88
+ message:
89
+ "The Kibo core (wasm) has not been supplied. Call init({ core }) or setZkWasm(core) once, with the module from wasm/kibo_kms_rest_ffi.js in this package (or a build your app bundles), before encrypt/decrypt.",
90
+ context: {},
91
+ }),
92
+ );
46
93
  }
47
- return zkWasm;
94
+ const mod = core;
95
+ pending ??= (async () => {
96
+ try {
97
+ if (typeof mod.initSync === "function" && isSyncInput(wasmInput)) mod.initSync(wasmInput);
98
+ else if (typeof mod.default === "function") await mod.default(wasmInput);
99
+ if (typeof mod.zk_encrypt !== "function" || typeof mod.zk_decrypt !== "function") {
100
+ throw new Error("the module does not export zk_encrypt and zk_decrypt");
101
+ }
102
+ ready = mod;
103
+ return mod;
104
+ } catch (e) {
105
+ pending = undefined; // allow a retry
106
+ const why = e instanceof Error ? e.message : String(e);
107
+ throw new KiboError({
108
+ code: "KIBO_WASM_INIT_FAILED",
109
+ message: `The Kibo core (wasm) was supplied but failed to initialise: ${why}`,
110
+ context: { cause: why },
111
+ cause: e,
112
+ });
113
+ }
114
+ })();
115
+ return pending;
48
116
  }
49
117
 
50
118
  /**
51
119
  * Encrypt `input.plaintext` via the customer KMS, client-side. Returns the
52
- * opaque ZKFE envelope — store it via the gateway ZK-DEK surface (F.5) or keep
120
+ * opaque ZKFE envelope - store it via the gateway ZK-DEK surface or keep
53
121
  * it yourself; it is meaningless to the platform.
54
122
  */
55
123
  export async function encrypt(input: KiboEncryptInput): Promise<KiboEncryptOutput> {
56
- const wasm = requireWasm();
124
+ const wasm = await ensureReady();
57
125
  let out: unknown;
58
126
  try {
59
127
  out = await wasm.zk_encrypt(input);
@@ -69,7 +137,7 @@ export async function encrypt(input: KiboEncryptInput): Promise<KiboEncryptOutpu
69
137
  * and never recovered from the envelope (anti-substitution discipline).
70
138
  */
71
139
  export async function decrypt(input: KiboDecryptInput): Promise<KiboDecryptOutput> {
72
- const wasm = requireWasm();
140
+ const wasm = await ensureReady();
73
141
  let out: unknown;
74
142
  try {
75
143
  out = await wasm.zk_decrypt(input);
package/src/index.ts CHANGED
@@ -3,15 +3,14 @@
3
3
  *
4
4
  * `encrypt` / `decrypt` run entirely client-side against the customer's own KMS;
5
5
  * the platform never sees plaintext or unwrapped keys. All cryptography lives in
6
- * the audited Rust core (`kibo-kms-rest-ffi`) compiled to wasm; this package only
6
+ * the Rust core (`kibo-kms-rest-ffi`) compiled to wasm; this package only
7
7
  * marshals typed input across the wasm boundary.
8
8
  *
9
- * The host loads the core wasm and injects it via `setZkWasm` once at app start
10
- * (RN cannot dynamically import the artifact). The F.5 ZK-DEK store/fetch surface
11
- * (envelope persistence over the gateway) is separate + decoupled.
9
+ * The core ships in this package under `wasm/`. The app imports it and hands it over once with `init({ core })` (or
10
+ * `setZkWasm(core)`); `encrypt` / `decrypt` initialise it on first use if `init()` was not awaited earlier.
12
11
  */
13
12
 
14
- export { encrypt, decrypt, setZkWasm, type ZkWasm } from "./crypto";
13
+ export { encrypt, decrypt, init, setZkWasm, type ZkWasm, type ZkCoreModule, type InitOptions } from "./crypto";
15
14
  export { KiboError } from "./KiboError";
16
15
  export type {
17
16
  KmsProvider,
@@ -72,9 +72,9 @@ export interface InitOutput {
72
72
  readonly intounderlyingsink_write: (a: number, b: number) => number;
73
73
  readonly intounderlyingsource_cancel: (a: number) => void;
74
74
  readonly intounderlyingsource_pull: (a: number, b: number) => number;
75
- readonly __wasm_bindgen_func_elem_441: (a: number, b: number, c: number, d: number) => void;
76
- readonly __wasm_bindgen_func_elem_722: (a: number, b: number, c: number, d: number) => void;
77
- readonly __wasm_bindgen_func_elem_1519: (a: number, b: number) => void;
75
+ readonly __wasm_bindgen_func_elem_440: (a: number, b: number, c: number, d: number) => void;
76
+ readonly __wasm_bindgen_func_elem_721: (a: number, b: number, c: number, d: number) => void;
77
+ readonly __wasm_bindgen_func_elem_1520: (a: number, b: number) => void;
78
78
  readonly __wbindgen_export: (a: number, b: number) => number;
79
79
  readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
80
80
  readonly __wbindgen_export3: (a: number) => void;
@@ -412,7 +412,7 @@ function __wbg_get_imports() {
412
412
  const a = state0.a;
413
413
  state0.a = 0;
414
414
  try {
415
- return __wasm_bindgen_func_elem_722(a, state0.b, arg0, arg1);
415
+ return __wasm_bindgen_func_elem_721(a, state0.b, arg0, arg1);
416
416
  } finally {
417
417
  state0.a = a;
418
418
  }
@@ -570,12 +570,12 @@ function __wbg_get_imports() {
570
570
  },
571
571
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
572
572
  // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 39, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
573
- const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_441);
573
+ const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_440);
574
574
  return addHeapObject(ret);
575
575
  },
576
576
  __wbindgen_cast_0000000000000002: function(arg0, arg1) {
577
577
  // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [], shim_idx: 73, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.
578
- const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_1519);
578
+ const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_1520);
579
579
  return addHeapObject(ret);
580
580
  },
581
581
  __wbindgen_cast_0000000000000003: function(arg0) {
@@ -612,14 +612,14 @@ function __wbg_get_imports() {
612
612
  };
613
613
  }
614
614
 
615
- function __wasm_bindgen_func_elem_1519(arg0, arg1) {
616
- wasm.__wasm_bindgen_func_elem_1519(arg0, arg1);
615
+ function __wasm_bindgen_func_elem_1520(arg0, arg1) {
616
+ wasm.__wasm_bindgen_func_elem_1520(arg0, arg1);
617
617
  }
618
618
 
619
- function __wasm_bindgen_func_elem_441(arg0, arg1, arg2) {
619
+ function __wasm_bindgen_func_elem_440(arg0, arg1, arg2) {
620
620
  try {
621
621
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
622
- wasm.__wasm_bindgen_func_elem_441(retptr, arg0, arg1, addHeapObject(arg2));
622
+ wasm.__wasm_bindgen_func_elem_440(retptr, arg0, arg1, addHeapObject(arg2));
623
623
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
624
624
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
625
625
  if (r1) {
@@ -630,8 +630,8 @@ function __wasm_bindgen_func_elem_441(arg0, arg1, arg2) {
630
630
  }
631
631
  }
632
632
 
633
- function __wasm_bindgen_func_elem_722(arg0, arg1, arg2, arg3) {
634
- wasm.__wasm_bindgen_func_elem_722(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
633
+ function __wasm_bindgen_func_elem_721(arg0, arg1, arg2, arg3) {
634
+ wasm.__wasm_bindgen_func_elem_721(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
635
635
  }
636
636
 
637
637
 
Binary file
@@ -16,9 +16,9 @@ export const intounderlyingsink_close: (a: number) => number;
16
16
  export const intounderlyingsink_write: (a: number, b: number) => number;
17
17
  export const intounderlyingsource_cancel: (a: number) => void;
18
18
  export const intounderlyingsource_pull: (a: number, b: number) => number;
19
- export const __wasm_bindgen_func_elem_441: (a: number, b: number, c: number, d: number) => void;
20
- export const __wasm_bindgen_func_elem_722: (a: number, b: number, c: number, d: number) => void;
21
- export const __wasm_bindgen_func_elem_1519: (a: number, b: number) => void;
19
+ export const __wasm_bindgen_func_elem_440: (a: number, b: number, c: number, d: number) => void;
20
+ export const __wasm_bindgen_func_elem_721: (a: number, b: number, c: number, d: number) => void;
21
+ export const __wasm_bindgen_func_elem_1520: (a: number, b: number) => void;
22
22
  export const __wbindgen_export: (a: number, b: number) => number;
23
23
  export const __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
24
24
  export const __wbindgen_export3: (a: number) => void;