@janssenproject/cedarling_wasm 2.1.0 → 2.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/README.md CHANGED
@@ -53,7 +53,9 @@ async function main() {
53
53
  await initWasm(); // Initialize the WebAssembly module
54
54
 
55
55
  let instance = await init(BOOTSTRAP_CONFIG);
56
- let result = await instance.authorize_unsigned(REQUEST_UNSIGNED);
56
+ // authorize calls take the request as a JSON string: it crosses the
57
+ // JS/WASM boundary as one string copy parsed by serde_json
58
+ let result = await instance.authorize_unsigned(JSON.stringify(REQUEST_UNSIGNED));
57
59
  console.log("result:", result);
58
60
  }
59
61
  main().catch(console.error);
@@ -110,12 +112,13 @@ export class Cedarling {
110
112
  * residual-dependent requests fail closed with `Decision::Deny` and surface
111
113
  * residual policy ids in `response.diagnostics.reason`.
112
114
  */
113
- authorize_unsigned(request: any): Promise<AuthorizeResult>;
115
+ authorize_unsigned(request: string): Promise<AuthorizeResult>;
114
116
  /**
115
117
  * Authorize multi-issuer request.
116
118
  * Makes authorization decision based on multiple JWT tokens from different issuers
119
+ * The request is passed as a JSON string.
117
120
  */
118
- authorize_multi_issuer(request: any): Promise<MultiIssuerAuthorizeResult>;
121
+ authorize_multi_issuer(request: string): Promise<MultiIssuerAuthorizeResult>;
119
122
  /**
120
123
  * Get logs and remove them from the storage.
121
124
  * Returns `Array` of `Map`
@@ -418,6 +421,10 @@ Cedarling supports multiple ways to load policy stores. **In WASM environments,
418
421
  // Option 1: Fetch policy store from URL (simple)
419
422
  const BOOTSTRAP_CONFIG = {
420
423
  CEDARLING_POLICY_STORE_URI: "https://example.com/policy-store.cjar",
424
+ // Optional: re-fetch every 60s and atomically swap on change.
425
+ // Default is 0 (load-once-at-startup). See "Refreshing the policy store"
426
+ // in docs/cedarling/reference/cedarling-properties.md for details.
427
+ CEDARLING_POLICY_STORE_REFRESH_INTERVAL: 60,
421
428
  // ... other config
422
429
  };
423
430
  const cedarling = await init(BOOTSTRAP_CONFIG);
@@ -56,6 +56,116 @@ export class AuthorizeResultResponse {
56
56
  readonly diagnostics: Diagnostics;
57
57
  }
58
58
 
59
+ /**
60
+ * WASM wrapper for
61
+ * `cedarling::BatchAuthorizeResponse<Result<MultiIssuerAuthorizeResult, BatchItemError>>`.
62
+ * Same shape as [`BatchAuthorizeUnsignedResponse`] with multi-issuer results.
63
+ */
64
+ export class BatchAuthorizeMultiIssuerResponse {
65
+ private constructor();
66
+ free(): void;
67
+ [Symbol.dispose](): void;
68
+ /**
69
+ * Shared correlation id stamped on every per-item decision log entry.
70
+ */
71
+ readonly batch_id: string;
72
+ /**
73
+ * Per-item results in input order — each slot is a
74
+ * [`BatchItemMultiIssuerResult`].
75
+ */
76
+ readonly results: BatchItemMultiIssuerResult[];
77
+ }
78
+
79
+ /**
80
+ * WASM wrapper for `cedarling::BatchAuthorizeResponse<Result<AuthorizeResult, BatchItemError>>`.
81
+ *
82
+ * Carries a shared `batch_id` (UUIDv7) alongside per-item results. Each result
83
+ * is a [`BatchItemUnsignedResult`] — Cedar decision on `is_ok()`, per-item
84
+ * build failure on `error`. `results[i]` corresponds to `items[i]`.
85
+ */
86
+ export class BatchAuthorizeUnsignedResponse {
87
+ private constructor();
88
+ free(): void;
89
+ [Symbol.dispose](): void;
90
+ /**
91
+ * Shared correlation id stamped on every per-item decision log entry.
92
+ */
93
+ readonly batch_id: string;
94
+ /**
95
+ * Per-item results in input order — each slot is a
96
+ * [`BatchItemUnsignedResult`].
97
+ */
98
+ readonly results: BatchItemUnsignedResult[];
99
+ }
100
+
101
+ /**
102
+ * Per-item build failure surfaced inside a batch response at `results[i]`
103
+ * when Cedar couldn't be reached for that item.
104
+ */
105
+ export class BatchItemError {
106
+ private constructor();
107
+ free(): void;
108
+ [Symbol.dispose](): void;
109
+ /**
110
+ * Stable variant slug — `action_parse`, `resource_build`, `context_build`,
111
+ * `principal_build`, `schema_validation`, `multi_issuer_entity`,
112
+ * `request_validation`.
113
+ */
114
+ readonly category: string;
115
+ /**
116
+ * Position of the failing item in the original `items` vector.
117
+ */
118
+ readonly item_index: number;
119
+ /**
120
+ * Human-readable diagnostic. Safe to log.
121
+ */
122
+ readonly message: string;
123
+ }
124
+
125
+ /**
126
+ * Multi-issuer analog of [`BatchItemUnsignedResult`].
127
+ */
128
+ export class BatchItemMultiIssuerResult {
129
+ private constructor();
130
+ free(): void;
131
+ [Symbol.dispose](): void;
132
+ /**
133
+ * The multi-issuer decision if `is_ok()`; throws otherwise.
134
+ */
135
+ unwrap(): MultiIssuerAuthorizeResult;
136
+ /**
137
+ * The per-item error if `!is_ok()`; `undefined` otherwise.
138
+ */
139
+ readonly error: BatchItemError | undefined;
140
+ /**
141
+ * `true` when Cedar evaluated this item.
142
+ */
143
+ readonly is_ok: boolean;
144
+ }
145
+
146
+ /**
147
+ * One slot in a batch response's `results` array. Callers switch on
148
+ * `is_ok()` — on `true`, read `unwrap()`; on `false`, read `error()`.
149
+ */
150
+ export class BatchItemUnsignedResult {
151
+ private constructor();
152
+ free(): void;
153
+ [Symbol.dispose](): void;
154
+ /**
155
+ * The Cedar decision if `is_ok()`; throws otherwise.
156
+ */
157
+ unwrap(): AuthorizeResult;
158
+ /**
159
+ * The per-item error if `!is_ok()`; `undefined` otherwise.
160
+ */
161
+ readonly error: BatchItemError | undefined;
162
+ /**
163
+ * `true` when Cedar evaluated this item (Allow or Deny); `false` when it
164
+ * failed to build.
165
+ */
166
+ readonly is_ok: boolean;
167
+ }
168
+
59
169
  /**
60
170
  * The instance of the Cedarling application.
61
171
  */
@@ -63,11 +173,103 @@ export class Cedarling {
63
173
  private constructor();
64
174
  free(): void;
65
175
  [Symbol.dispose](): void;
176
+ /**
177
+ * Collect every value of the annotation `key` across the given policies,
178
+ * preserving duplicates. Unknown policy IDs are silently skipped.
179
+ *
180
+ * # Arguments
181
+ *
182
+ * * `policy_ids` - List of policy IDs to search. Typically
183
+ * `result.response.diagnostics.reason` from an authorization result.
184
+ * * `key` - The annotation key to collect values for (e.g. `"redirect"`).
185
+ *
186
+ * # Example
187
+ *
188
+ * ```javascript
189
+ * const redirects = cedarling.annotation_values(result.response.diagnostics.reason, "redirect");
190
+ * // ["/upgrade"]
191
+ * ```
192
+ */
193
+ annotation_values(policy_ids: string[], key: string): string[];
194
+ /**
195
+ * Return the annotations of each given policy, grouped by policy ID
196
+ * the loss-free companion to `annotations_map`. Unknown policy IDs are
197
+ * silently skipped.
198
+ *
199
+ * # Arguments
200
+ *
201
+ * * `policy_ids` - List of policy IDs whose annotations should be returned
202
+ * grouped by policy ID. Typically `result.response.diagnostics.reason` from
203
+ * an authorization result.
204
+ *
205
+ * # Example
206
+ *
207
+ * ```javascript
208
+ * const byPolicy = cedarling.annotations_by_policy(result.response.diagnostics.reason);
209
+ * // { "5": { redirect: "/upgrade", tier: "premium" } }
210
+ * ```
211
+ */
212
+ annotations_by_policy(policy_ids: string[]): any;
213
+ /**
214
+ * Merge the annotations (`@key("value")`) of the given policies into a single object.
215
+ *
216
+ * Intended for resolving the determining policies of an authorization decision:
217
+ * pass `result.response.diagnostics.reason`.
218
+ *
219
+ * Lossy: if the same annotation key appears on several policies, one value wins
220
+ * arbitrarily. Use `annotation_values` / `annotations_by_policy` when duplicates
221
+ * matter. Unknown policy IDs are silently skipped.
222
+ *
223
+ * # Arguments
224
+ *
225
+ * * `policy_ids` - List of policy IDs whose annotations should be merged into
226
+ * a single object. Typically `result.response.diagnostics.reason` from an
227
+ * authorization result.
228
+ *
229
+ * # Example
230
+ *
231
+ * ```javascript
232
+ * const annotations = cedarling.annotations_map(result.response.diagnostics.reason);
233
+ * // { redirect: "/upgrade", tier: "premium" }
234
+ * ```
235
+ */
236
+ annotations_map(policy_ids: string[]): any;
66
237
  /**
67
238
  * Authorize multi-issuer request.
68
- * Makes authorization decision based on multiple JWT tokens from different issuers
239
+ * Makes authorization decision based on multiple JWT tokens from different issuers.
240
+ *
241
+ * # Arguments
242
+ *
243
+ * * `request` - JSON string representation of [`AuthorizeMultiIssuerRequest`].
244
+ *
245
+ * # Example
246
+ *
247
+ * ```javascript
248
+ * const result = await cedarling.authorize_multi_issuer(JSON.stringify(request));
249
+ * ```
69
250
  */
70
- authorize_multi_issuer(request: any): Promise<MultiIssuerAuthorizeResult>;
251
+ authorize_multi_issuer(request: string): Promise<MultiIssuerAuthorizeResult>;
252
+ /**
253
+ * Authorize a batch of multi-issuer requests against one shared token set.
254
+ *
255
+ * Tokens are validated and token/issuer entities are built once, then
256
+ * each item is evaluated in input order. Batch-level failures (validation,
257
+ * JWT verification, status-list refresh) reject the whole call; per-item
258
+ * failures are returned as `BatchItemError` results and exposed by WASM
259
+ * with `is_ok=false` and `error`, while genuine Cedar denials remain
260
+ * `AuthorizeResult` values with `decision=false`.
261
+ *
262
+ * # Arguments
263
+ *
264
+ * * `request` - JSON string representation of [`BatchAuthorizeMultiIssuerRequest`].
265
+ *
266
+ * # Example
267
+ *
268
+ * ```javascript
269
+ * const result = await cedarling.authorize_multi_issuer_batch(JSON.stringify(batchRequest));
270
+ * ```
271
+ */
272
+ authorize_multi_issuer_batch(request: string): Promise<BatchAuthorizeMultiIssuerResponse>;
71
273
  /**
72
274
  * Authorize an unsigned request carrying an optional single principal.
73
275
  * Makes an authorization decision based on the [`RequestUnsigned`].
@@ -76,8 +278,39 @@ export class Cedarling {
76
278
  * partial evaluation; residual-dependent requests fail closed with
77
279
  * `Decision::Deny` and surface residual policy ids in
78
280
  * `response.diagnostics.reason`.
281
+ *
282
+ * # Arguments
283
+ *
284
+ * * `request` - JSON string representation of [`RequestUnsigned`].
285
+ *
286
+ * # Example
287
+ *
288
+ * ```javascript
289
+ * const result = await cedarling.authorize_unsigned(JSON.stringify(request));
290
+ * ```
79
291
  */
80
- authorize_unsigned(request: any): Promise<AuthorizeResult>;
292
+ authorize_unsigned(request: string): Promise<AuthorizeResult>;
293
+ /**
294
+ * Authorize a batch of unsigned requests against one shared principal.
295
+ *
296
+ * Setup work (principal build + pushed-data snapshot) runs once and each
297
+ * item is evaluated in input order. Results are returned inside a
298
+ * [`BatchAuthorizeUnsignedResponse`] carrying the shared `batch_id`.
299
+ * Batch-level failures (validation, principal parse) reject the whole
300
+ * call; per-item failures are returned as `BatchItemError` results and
301
+ * exposed by WASM with `is_ok=false` and `error`, while genuine Cedar
302
+ * denials remain `AuthorizeResult` values with `decision=false`.
303
+ * # Arguments
304
+ *
305
+ * * `request` - JSON string representation of [`BatchAuthorizeUnsignedRequest`].
306
+ *
307
+ * # Example
308
+ *
309
+ * ```javascript
310
+ * const result = await cedarling.authorize_unsigned_batch(JSON.stringify(batchRequest));
311
+ * ```
312
+ */
313
+ authorize_unsigned_batch(request: string): Promise<BatchAuthorizeUnsignedResponse>;
81
314
  /**
82
315
  * Clear all entries from the data store.
83
316
  *
@@ -531,18 +764,21 @@ export interface InitOutput {
531
764
  readonly memory: WebAssembly.Memory;
532
765
  readonly __wbg_authorizeresult_free: (a: number, b: number) => void;
533
766
  readonly __wbg_authorizeresultresponse_free: (a: number, b: number) => void;
767
+ readonly __wbg_batchauthorizemultiissuerresponse_free: (a: number, b: number) => void;
768
+ readonly __wbg_batchitemerror_free: (a: number, b: number) => void;
769
+ readonly __wbg_batchitemmultiissuerresult_free: (a: number, b: number) => void;
534
770
  readonly __wbg_cedarling_free: (a: number, b: number) => void;
535
771
  readonly __wbg_dataentry_free: (a: number, b: number) => void;
536
772
  readonly __wbg_datastorestats_free: (a: number, b: number) => void;
537
773
  readonly __wbg_diagnostics_free: (a: number, b: number) => void;
538
774
  readonly __wbg_get_authorizeresult_decision: (a: number) => number;
539
- readonly __wbg_get_authorizeresult_request_id: (a: number) => [number, number];
775
+ readonly __wbg_get_authorizeresult_request_id: (a: number, b: number) => void;
540
776
  readonly __wbg_get_authorizeresult_response: (a: number) => number;
541
777
  readonly __wbg_get_dataentry_access_count: (a: number) => bigint;
542
- readonly __wbg_get_dataentry_created_at: (a: number) => [number, number];
543
- readonly __wbg_get_dataentry_data_type: (a: number) => [number, number];
544
- readonly __wbg_get_dataentry_expires_at: (a: number) => [number, number];
545
- readonly __wbg_get_dataentry_key: (a: number) => [number, number];
778
+ readonly __wbg_get_dataentry_created_at: (a: number, b: number) => void;
779
+ readonly __wbg_get_dataentry_data_type: (a: number, b: number) => void;
780
+ readonly __wbg_get_dataentry_expires_at: (a: number, b: number) => void;
781
+ readonly __wbg_get_dataentry_key: (a: number, b: number) => void;
546
782
  readonly __wbg_get_datastorestats_avg_entry_size_bytes: (a: number) => number;
547
783
  readonly __wbg_get_datastorestats_capacity_usage_percent: (a: number) => number;
548
784
  readonly __wbg_get_datastorestats_entry_count: (a: number) => number;
@@ -570,63 +806,70 @@ export interface InitOutput {
570
806
  readonly __wbg_set_datastorestats_memory_alert_triggered: (a: number, b: number) => void;
571
807
  readonly __wbg_set_datastorestats_metrics_enabled: (a: number, b: number) => void;
572
808
  readonly __wbg_set_datastorestats_total_size_bytes: (a: number, b: number) => void;
573
- readonly authorizeresult_json_string: (a: number) => [number, number];
809
+ readonly authorizeresult_json_string: (a: number, b: number) => void;
574
810
  readonly authorizeresultresponse_decision: (a: number) => number;
575
811
  readonly authorizeresultresponse_diagnostics: (a: number) => number;
576
- readonly cedarling_authorize_multi_issuer: (a: number, b: any) => any;
577
- readonly cedarling_authorize_unsigned: (a: number, b: any) => any;
578
- readonly cedarling_clear_data_ctx: (a: number) => [number, number];
579
- readonly cedarling_failed_trusted_issuer_ids: (a: number) => any;
580
- readonly cedarling_get_data_ctx: (a: number, b: number, c: number) => [number, number, number];
581
- readonly cedarling_get_data_entry_ctx: (a: number, b: number, c: number) => [number, number, number];
582
- readonly cedarling_get_log_by_id: (a: number, b: number, c: number) => [number, number, number];
583
- readonly cedarling_get_log_ids: (a: number) => any;
584
- readonly cedarling_get_logs_by_request_id: (a: number, b: number, c: number) => [number, number, number, number];
585
- readonly cedarling_get_logs_by_request_id_and_tag: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
586
- readonly cedarling_get_logs_by_tag: (a: number, b: number, c: number) => [number, number, number, number];
587
- readonly cedarling_get_stats_ctx: (a: number) => [number, number, number];
812
+ readonly batchauthorizemultiissuerresponse_batch_id: (a: number, b: number) => void;
813
+ readonly batchauthorizemultiissuerresponse_results: (a: number, b: number) => void;
814
+ readonly batchauthorizeunsignedresponse_results: (a: number, b: number) => void;
815
+ readonly batchitemerror_category: (a: number, b: number) => void;
816
+ readonly batchitemerror_item_index: (a: number) => number;
817
+ readonly batchitemerror_message: (a: number, b: number) => void;
818
+ readonly batchitemmultiissuerresult_error: (a: number) => number;
819
+ readonly batchitemmultiissuerresult_is_ok: (a: number) => number;
820
+ readonly batchitemmultiissuerresult_unwrap: (a: number, b: number) => void;
821
+ readonly batchitemunsignedresult_unwrap: (a: number, b: number) => void;
822
+ readonly cedarling_annotation_values: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
823
+ readonly cedarling_annotations_by_policy: (a: number, b: number, c: number, d: number) => void;
824
+ readonly cedarling_annotations_map: (a: number, b: number, c: number, d: number) => void;
825
+ readonly cedarling_authorize_multi_issuer: (a: number, b: number, c: number) => number;
826
+ readonly cedarling_authorize_multi_issuer_batch: (a: number, b: number, c: number) => number;
827
+ readonly cedarling_authorize_unsigned: (a: number, b: number, c: number) => number;
828
+ readonly cedarling_authorize_unsigned_batch: (a: number, b: number, c: number) => number;
829
+ readonly cedarling_clear_data_ctx: (a: number, b: number) => void;
830
+ readonly cedarling_failed_trusted_issuer_ids: (a: number) => number;
831
+ readonly cedarling_get_data_ctx: (a: number, b: number, c: number, d: number) => void;
832
+ readonly cedarling_get_data_entry_ctx: (a: number, b: number, c: number, d: number) => void;
833
+ readonly cedarling_get_log_by_id: (a: number, b: number, c: number, d: number) => void;
834
+ readonly cedarling_get_log_ids: (a: number) => number;
835
+ readonly cedarling_get_logs_by_request_id: (a: number, b: number, c: number, d: number) => void;
836
+ readonly cedarling_get_logs_by_request_id_and_tag: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
837
+ readonly cedarling_get_stats_ctx: (a: number, b: number) => void;
588
838
  readonly cedarling_is_trusted_issuer_loaded_by_iss: (a: number, b: number, c: number) => number;
589
839
  readonly cedarling_is_trusted_issuer_loaded_by_name: (a: number, b: number, c: number) => number;
590
- readonly cedarling_list_data_ctx: (a: number) => [number, number, number];
591
- readonly cedarling_loaded_trusted_issuer_ids: (a: number) => any;
840
+ readonly cedarling_list_data_ctx: (a: number, b: number) => void;
841
+ readonly cedarling_loaded_trusted_issuer_ids: (a: number) => number;
592
842
  readonly cedarling_loaded_trusted_issuers_count: (a: number) => number;
593
- readonly cedarling_new: (a: any) => any;
594
- readonly cedarling_new_from_map: (a: any) => any;
595
- readonly cedarling_pop_logs: (a: number) => [number, number, number];
596
- readonly cedarling_push_data_ctx: (a: number, b: number, c: number, d: any, e: number, f: bigint) => [number, number];
597
- readonly cedarling_remove_data_ctx: (a: number, b: number, c: number) => [number, number, number];
598
- readonly cedarling_shut_down: (a: number) => any;
843
+ readonly cedarling_new: (a: number) => number;
844
+ readonly cedarling_new_from_map: (a: number) => number;
845
+ readonly cedarling_pop_logs: (a: number, b: number) => void;
846
+ readonly cedarling_push_data_ctx: (a: number, b: number, c: number, d: number, e: number, f: number, g: bigint) => void;
847
+ readonly cedarling_remove_data_ctx: (a: number, b: number, c: number, d: number) => void;
848
+ readonly cedarling_shut_down: (a: number) => number;
599
849
  readonly cedarling_total_issuers: (a: number) => number;
600
- readonly dataentry_json_string: (a: number) => [number, number];
601
- readonly dataentry_value: (a: number) => [number, number, number];
602
- readonly datastorestats_json_string: (a: number) => [number, number];
603
- readonly diagnostics_errors: (a: number) => [number, number];
604
- readonly diagnostics_reason: (a: number) => [number, number];
605
- readonly init: (a: any) => any;
606
- readonly init_from_archive_bytes: (a: any, b: any) => any;
607
- readonly multiissuerauthorizeresult_json_string: (a: number) => [number, number];
608
- readonly policyevaluationerror_error: (a: number) => [number, number];
609
- readonly policyevaluationerror_id: (a: number) => [number, number];
610
- readonly __wbg_get_multiissuerauthorizeresult_decision: (a: number) => number;
611
- readonly __wbg_set_multiissuerauthorizeresult_response: (a: number, b: number) => void;
612
- readonly __wbg_set_multiissuerauthorizeresult_request_id: (a: number, b: number, c: number) => void;
613
- readonly __wbg_set_multiissuerauthorizeresult_decision: (a: number, b: number) => void;
614
- readonly __wbg_get_multiissuerauthorizeresult_response: (a: number) => number;
615
- readonly __wbg_get_multiissuerauthorizeresult_request_id: (a: number) => [number, number];
616
- readonly __wbg_multiissuerauthorizeresult_free: (a: number, b: number) => void;
850
+ readonly dataentry_json_string: (a: number, b: number) => void;
851
+ readonly dataentry_value: (a: number, b: number) => void;
852
+ readonly datastorestats_json_string: (a: number, b: number) => void;
853
+ readonly diagnostics_errors: (a: number, b: number) => void;
854
+ readonly diagnostics_reason: (a: number, b: number) => void;
855
+ readonly init: (a: number) => number;
856
+ readonly init_from_archive_bytes: (a: number, b: number) => number;
857
+ readonly multiissuerauthorizeresult_json_string: (a: number, b: number) => void;
858
+ readonly policyevaluationerror_error: (a: number, b: number) => void;
859
+ readonly policyevaluationerror_id: (a: number, b: number) => void;
617
860
  readonly __wbg_intounderlyingbytesource_free: (a: number, b: number) => void;
618
861
  readonly __wbg_intounderlyingsink_free: (a: number, b: number) => void;
619
862
  readonly __wbg_intounderlyingsource_free: (a: number, b: number) => void;
620
863
  readonly intounderlyingbytesource_autoAllocateChunkSize: (a: number) => number;
621
864
  readonly intounderlyingbytesource_cancel: (a: number) => void;
622
- readonly intounderlyingbytesource_pull: (a: number, b: any) => any;
623
- readonly intounderlyingbytesource_start: (a: number, b: any) => void;
865
+ readonly intounderlyingbytesource_pull: (a: number, b: number) => number;
866
+ readonly intounderlyingbytesource_start: (a: number, b: number) => void;
624
867
  readonly intounderlyingbytesource_type: (a: number) => number;
625
- readonly intounderlyingsink_abort: (a: number, b: any) => any;
626
- readonly intounderlyingsink_close: (a: number) => any;
627
- readonly intounderlyingsink_write: (a: number, b: any) => any;
868
+ readonly intounderlyingsink_abort: (a: number, b: number) => number;
869
+ readonly intounderlyingsink_close: (a: number) => number;
870
+ readonly intounderlyingsink_write: (a: number, b: number) => number;
628
871
  readonly intounderlyingsource_cancel: (a: number) => void;
629
- readonly intounderlyingsource_pull: (a: number, b: any) => any;
872
+ readonly intounderlyingsource_pull: (a: number, b: number) => number;
630
873
  readonly rust_zstd_wasm_shim_calloc: (a: number, b: number) => number;
631
874
  readonly rust_zstd_wasm_shim_free: (a: number) => void;
632
875
  readonly rust_zstd_wasm_shim_malloc: (a: number) => number;
@@ -635,22 +878,29 @@ export interface InitOutput {
635
878
  readonly rust_zstd_wasm_shim_memmove: (a: number, b: number, c: number) => number;
636
879
  readonly rust_zstd_wasm_shim_memset: (a: number, b: number, c: number) => number;
637
880
  readonly rust_zstd_wasm_shim_qsort: (a: number, b: number, c: number, d: number) => void;
638
- readonly wasm_bindgen__convert__closures_____invoke__he0d1df4f45812a75: (a: number, b: number, c: any) => [number, number];
639
- readonly wasm_bindgen__convert__closures_____invoke__h03fb46086606eb61: (a: number, b: number, c: any, d: any) => void;
640
- readonly wasm_bindgen__convert__closures_____invoke__hdd4256d54acb8ff1: (a: number, b: number, c: any) => void;
641
- readonly wasm_bindgen__convert__closures_____invoke__hc7b60e1a5fd69b6e: (a: number, b: number) => void;
642
- readonly wasm_bindgen__convert__closures_____invoke__h6f2d88ffbcba67ef: (a: number, b: number) => void;
643
- readonly wasm_bindgen__convert__closures_____invoke__h32cbe4603be323e5: (a: number, b: number) => void;
644
- readonly __wbindgen_malloc: (a: number, b: number) => number;
645
- readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
646
- readonly __wbindgen_exn_store: (a: number) => void;
647
- readonly __externref_table_alloc: () => number;
648
- readonly __wbindgen_externrefs: WebAssembly.Table;
649
- readonly __wbindgen_destroy_closure: (a: number, b: number) => void;
650
- readonly __wbindgen_free: (a: number, b: number, c: number) => void;
651
- readonly __externref_table_dealloc: (a: number) => void;
652
- readonly __externref_drop_slice: (a: number, b: number) => void;
653
- readonly __wbindgen_start: () => void;
881
+ readonly __wbg_get_multiissuerauthorizeresult_decision: (a: number) => number;
882
+ readonly __wbg_set_multiissuerauthorizeresult_response: (a: number, b: number) => void;
883
+ readonly __wbg_set_multiissuerauthorizeresult_request_id: (a: number, b: number, c: number) => void;
884
+ readonly __wbg_set_multiissuerauthorizeresult_decision: (a: number, b: number) => void;
885
+ readonly __wbg_get_multiissuerauthorizeresult_response: (a: number) => number;
886
+ readonly __wbg_get_multiissuerauthorizeresult_request_id: (a: number, b: number) => void;
887
+ readonly __wbg_multiissuerauthorizeresult_free: (a: number, b: number) => void;
888
+ readonly __wbg_batchitemunsignedresult_free: (a: number, b: number) => void;
889
+ readonly __wbg_batchauthorizeunsignedresponse_free: (a: number, b: number) => void;
890
+ readonly batchitemunsignedresult_is_ok: (a: number) => number;
891
+ readonly batchitemunsignedresult_error: (a: number) => number;
892
+ readonly batchauthorizeunsignedresponse_batch_id: (a: number, b: number) => void;
893
+ readonly cedarling_get_logs_by_tag: (a: number, b: number, c: number, d: number) => void;
894
+ readonly __wasm_bindgen_func_elem_8780: (a: number, b: number, c: number, d: number) => void;
895
+ readonly __wasm_bindgen_func_elem_8835: (a: number, b: number, c: number, d: number) => void;
896
+ readonly __wasm_bindgen_func_elem_12259: (a: number, b: number, c: number) => void;
897
+ readonly __wasm_bindgen_func_elem_8615: (a: number, b: number) => void;
898
+ readonly __wbindgen_export: (a: number, b: number) => number;
899
+ readonly __wbindgen_export2: (a: number, b: number, c: number, d: number) => number;
900
+ readonly __wbindgen_export3: (a: number) => void;
901
+ readonly __wbindgen_export4: (a: number, b: number) => void;
902
+ readonly __wbindgen_add_to_stack_pointer: (a: number) => number;
903
+ readonly __wbindgen_export5: (a: number, b: number, c: number) => void;
654
904
  }
655
905
 
656
906
  export type SyncInitInput = BufferSource | WebAssembly.Module;