postgrest-parser 0.1.2 → 0.2.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.
@@ -97,6 +97,50 @@ export function buildFilterClause(filters_json) {
97
97
  }
98
98
  }
99
99
 
100
+ /**
101
+ * Clear all schema cache entries, freeing all cached memory.
102
+ *
103
+ * Useful as a safety net during shutdown or when all tenants are being evicted.
104
+ *
105
+ * # Example (TypeScript)
106
+ *
107
+ * ```typescript
108
+ * import { clearAllSchemas } from './pkg/postgrest_parser.js';
109
+ *
110
+ * // Clear everything on shutdown
111
+ * clearAllSchemas();
112
+ * ```
113
+ */
114
+ export function clearAllSchemas() {
115
+ wasm.clearAllSchemas();
116
+ }
117
+
118
+ /**
119
+ * Clear a schema cache entry, freeing its memory.
120
+ *
121
+ * Call this when a tenant is paused or evicted to prevent memory leaks.
122
+ * If the schema ID does not exist, this is a no-op.
123
+ *
124
+ * # Arguments
125
+ *
126
+ * * `schema_id` - The schema key to remove. If empty, removes "default".
127
+ *
128
+ * # Example (TypeScript)
129
+ *
130
+ * ```typescript
131
+ * import { clearSchema } from './pkg/postgrest_parser.js';
132
+ *
133
+ * // Clear a tenant's schema when they are paused/evicted
134
+ * clearSchema("tenant-123");
135
+ * ```
136
+ * @param {string} schema_id
137
+ */
138
+ export function clearSchema(schema_id) {
139
+ const ptr0 = passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
140
+ const len0 = WASM_VECTOR_LEN;
141
+ wasm.clearSchema(ptr0, len0);
142
+ }
143
+
100
144
  /**
101
145
  * Initialize schema cache from a database query executor.
102
146
  *
@@ -104,8 +148,18 @@ export function buildFilterClause(filters_json) {
104
148
  * and returns results. The schema introspection queries will be executed via
105
149
  * this callback to populate the relationship cache.
106
150
  *
151
+ * # Trust
152
+ *
153
+ * The `query_executor` is **fully trusted**. It receives a hardcoded SQL
154
+ * introspection query and its result is used verbatim to build the FK cache.
155
+ * Only pass executors that connect to the correct tenant database.
156
+ *
107
157
  * # Arguments
108
158
  *
159
+ * * `schema_id` - A unique key to store this schema under (e.g., tenant ID).
160
+ * If empty, uses "default". Callers must ensure schema IDs are not
161
+ * attacker-controlled — passing another tenant's ID would overwrite their
162
+ * cached schema.
109
163
  * * `query_executor` - An async JavaScript function with signature:
110
164
  * `async (sql: string) => { rows: any[] }`
111
165
  *
@@ -123,14 +177,17 @@ export function buildFilterClause(filters_json) {
123
177
  * return { rows: result.rows };
124
178
  * };
125
179
  *
126
- * // Initialize schema from database
127
- * await initSchemaFromDb(queryExecutor);
180
+ * // Initialize schema for a specific tenant
181
+ * await initSchemaFromDb("tenant-123", queryExecutor);
128
182
  * ```
183
+ * @param {string} schema_id
129
184
  * @param {Function} query_executor
130
185
  * @returns {Promise<void>}
131
186
  */
132
- export function initSchemaFromDb(query_executor) {
133
- const ret = wasm.initSchemaFromDb(addHeapObject(query_executor));
187
+ export function initSchemaFromDb(schema_id, query_executor) {
188
+ const ptr0 = passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
189
+ const len0 = WASM_VECTOR_LEN;
190
+ const ret = wasm.initSchemaFromDb(ptr0, len0, addHeapObject(query_executor));
134
191
  return takeObject(ret);
135
192
  }
136
193
 
@@ -149,20 +206,14 @@ export function init_panic_hook() {
149
206
  * * `table` - The table name
150
207
  * * `query_string` - Query string with filters and optional returning
151
208
  * * `headers` - Optional headers as JSON string
152
- *
153
- * # Example (TypeScript)
154
- *
155
- * ```typescript
156
- * const result = parseDelete("users", "id=eq.123&returning=id", null);
157
- * console.log(result.query); // DELETE FROM "users" WHERE ...
158
- * console.log(result.params); // ["123"]
159
- * ```
209
+ * * `schema_id` - Optional schema cache key for per-tenant schema resolution
160
210
  * @param {string} table
161
211
  * @param {string} query_string
162
212
  * @param {string | null} [headers]
213
+ * @param {string | null} [schema_id]
163
214
  * @returns {WasmQueryResult}
164
215
  */
165
- export function parseDelete(table, query_string, headers) {
216
+ export function parseDelete(table, query_string, headers, schema_id) {
166
217
  try {
167
218
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
168
219
  const ptr0 = passStringToWasm0(table, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -171,7 +222,9 @@ export function parseDelete(table, query_string, headers) {
171
222
  const len1 = WASM_VECTOR_LEN;
172
223
  var ptr2 = isLikeNone(headers) ? 0 : passStringToWasm0(headers, wasm.__wbindgen_export, wasm.__wbindgen_export2);
173
224
  var len2 = WASM_VECTOR_LEN;
174
- wasm.parseDelete(retptr, ptr0, len0, ptr1, len1, ptr2, len2);
225
+ var ptr3 = isLikeNone(schema_id) ? 0 : passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
226
+ var len3 = WASM_VECTOR_LEN;
227
+ wasm.parseDelete(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
175
228
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
176
229
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
177
230
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -193,25 +246,15 @@ export function parseDelete(table, query_string, headers) {
193
246
  * * `body` - JSON body (single object or array of objects)
194
247
  * * `query_string` - Optional query string for returning, on_conflict, etc.
195
248
  * * `headers` - Optional headers as JSON string (e.g., '{"Prefer":"return=representation"}')
196
- *
197
- * # Example (TypeScript)
198
- *
199
- * ```typescript
200
- * const result = parseInsert("users",
201
- * JSON.stringify({ name: "Alice", email: "alice@example.com" }),
202
- * "on_conflict=email&returning=id,name",
203
- * JSON.stringify({ Prefer: "return=representation" })
204
- * );
205
- * console.log(result.query); // INSERT INTO "users" ...
206
- * console.log(result.params); // ["Alice", "alice@example.com"]
207
- * ```
249
+ * * `schema_id` - Optional schema cache key for per-tenant schema resolution
208
250
  * @param {string} table
209
251
  * @param {string} body
210
252
  * @param {string | null} [query_string]
211
253
  * @param {string | null} [headers]
254
+ * @param {string | null} [schema_id]
212
255
  * @returns {WasmQueryResult}
213
256
  */
214
- export function parseInsert(table, body, query_string, headers) {
257
+ export function parseInsert(table, body, query_string, headers, schema_id) {
215
258
  try {
216
259
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
217
260
  const ptr0 = passStringToWasm0(table, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -222,7 +265,9 @@ export function parseInsert(table, body, query_string, headers) {
222
265
  var len2 = WASM_VECTOR_LEN;
223
266
  var ptr3 = isLikeNone(headers) ? 0 : passStringToWasm0(headers, wasm.__wbindgen_export, wasm.__wbindgen_export2);
224
267
  var len3 = WASM_VECTOR_LEN;
225
- wasm.parseInsert(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
268
+ var ptr4 = isLikeNone(schema_id) ? 0 : passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
269
+ var len4 = WASM_VECTOR_LEN;
270
+ wasm.parseInsert(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
226
271
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
227
272
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
228
273
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -275,31 +320,26 @@ export function parseOnly(query_string) {
275
320
  *
276
321
  * * `table` - The table name to query
277
322
  * * `query_string` - The PostgREST query string (e.g., "select=id,name&age=gte.18")
323
+ * * `schema_id` - Optional schema cache key for per-tenant schema resolution
278
324
  *
279
325
  * # Returns
280
326
  *
281
327
  * Returns a `WasmQueryResult` containing the SQL query, parameters, and affected tables.
282
- *
283
- * # Example (TypeScript)
284
- *
285
- * ```typescript
286
- * const result = parseQueryString("users", "age=gte.18&status=eq.active");
287
- * console.log(result.query); // SELECT * FROM "users" WHERE ...
288
- * console.log(result.params); // ["18", "active"]
289
- * console.log(result.tables); // ["users"]
290
- * ```
291
328
  * @param {string} table
292
329
  * @param {string} query_string
330
+ * @param {string | null} [schema_id]
293
331
  * @returns {WasmQueryResult}
294
332
  */
295
- export function parseQueryString(table, query_string) {
333
+ export function parseQueryString(table, query_string, schema_id) {
296
334
  try {
297
335
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
298
336
  const ptr0 = passStringToWasm0(table, wasm.__wbindgen_export, wasm.__wbindgen_export2);
299
337
  const len0 = WASM_VECTOR_LEN;
300
338
  const ptr1 = passStringToWasm0(query_string, wasm.__wbindgen_export, wasm.__wbindgen_export2);
301
339
  const len1 = WASM_VECTOR_LEN;
302
- wasm.parseQueryString(retptr, ptr0, len0, ptr1, len1);
340
+ var ptr2 = isLikeNone(schema_id) ? 0 : passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
341
+ var len2 = WASM_VECTOR_LEN;
342
+ wasm.parseQueryString(retptr, ptr0, len0, ptr1, len1, ptr2, len2);
303
343
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
304
344
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
305
345
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -325,34 +365,18 @@ export function parseQueryString(table, query_string) {
325
365
  * * `query_string` - URL query string
326
366
  * * `body` - Request body as JSON string (or null)
327
367
  * * `headers` - Optional headers as JSON object (for Prefer header)
328
- *
329
- * # Example (TypeScript)
330
- *
331
- * ```typescript
332
- * // SELECT query
333
- * const getResult = parseRequest("GET", "users", "age=gte.18&limit=10", null, null);
334
- *
335
- * // INSERT with upsert
336
- * const postResult = parseRequest("POST", "users", "on_conflict=email",
337
- * JSON.stringify({ name: "Alice", email: "alice@example.com" }),
338
- * JSON.stringify({ Prefer: "return=representation" })
339
- * );
340
- *
341
- * // RPC call
342
- * const rpcResult = parseRequest("POST", "rpc/my_function",
343
- * "select=result",
344
- * JSON.stringify({ arg1: "value" }),
345
- * null
346
- * );
347
- * ```
368
+ * * `schema_id` - Optional schema cache key for per-tenant schema resolution.
369
+ * Must match a key previously passed to [`init_schema_from_db`]. If not
370
+ * provided, falls back to the "default" cache entry (if one exists).
348
371
  * @param {string} method
349
372
  * @param {string} path
350
373
  * @param {string} query_string
351
374
  * @param {string | null} [body]
352
375
  * @param {string | null} [headers]
376
+ * @param {string | null} [schema_id]
353
377
  * @returns {WasmQueryResult}
354
378
  */
355
- export function parseRequest(method, path, query_string, body, headers) {
379
+ export function parseRequest(method, path, query_string, body, headers, schema_id) {
356
380
  try {
357
381
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
358
382
  const ptr0 = passStringToWasm0(method, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -365,7 +389,9 @@ export function parseRequest(method, path, query_string, body, headers) {
365
389
  var len3 = WASM_VECTOR_LEN;
366
390
  var ptr4 = isLikeNone(headers) ? 0 : passStringToWasm0(headers, wasm.__wbindgen_export, wasm.__wbindgen_export2);
367
391
  var len4 = WASM_VECTOR_LEN;
368
- wasm.parseRequest(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
392
+ var ptr5 = isLikeNone(schema_id) ? 0 : passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
393
+ var len5 = WASM_VECTOR_LEN;
394
+ wasm.parseRequest(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, ptr5, len5);
369
395
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
370
396
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
371
397
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -387,25 +413,15 @@ export function parseRequest(method, path, query_string, body, headers) {
387
413
  * * `body` - JSON object with function arguments (or null for no args)
388
414
  * * `query_string` - Optional query string for filtering/ordering results
389
415
  * * `headers` - Optional headers as JSON string
390
- *
391
- * # Example (TypeScript)
392
- *
393
- * ```typescript
394
- * const result = parseRpc("calculate_total",
395
- * JSON.stringify({ order_id: 123, tax_rate: 0.08 }),
396
- * "select=total,tax&limit=1",
397
- * null
398
- * );
399
- * console.log(result.query); // SELECT * FROM calculate_total(...)
400
- * console.log(result.params); // [123, 0.08]
401
- * ```
416
+ * * `schema_id` - Optional schema cache key for per-tenant schema resolution
402
417
  * @param {string} function_name
403
418
  * @param {string | null} [body]
404
419
  * @param {string | null} [query_string]
405
420
  * @param {string | null} [headers]
421
+ * @param {string | null} [schema_id]
406
422
  * @returns {WasmQueryResult}
407
423
  */
408
- export function parseRpc(function_name, body, query_string, headers) {
424
+ export function parseRpc(function_name, body, query_string, headers, schema_id) {
409
425
  try {
410
426
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
411
427
  const ptr0 = passStringToWasm0(function_name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -416,7 +432,9 @@ export function parseRpc(function_name, body, query_string, headers) {
416
432
  var len2 = WASM_VECTOR_LEN;
417
433
  var ptr3 = isLikeNone(headers) ? 0 : passStringToWasm0(headers, wasm.__wbindgen_export, wasm.__wbindgen_export2);
418
434
  var len3 = WASM_VECTOR_LEN;
419
- wasm.parseRpc(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
435
+ var ptr4 = isLikeNone(schema_id) ? 0 : passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
436
+ var len4 = WASM_VECTOR_LEN;
437
+ wasm.parseRpc(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
420
438
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
421
439
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
422
440
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -438,25 +456,15 @@ export function parseRpc(function_name, body, query_string, headers) {
438
456
  * * `body` - JSON object with fields to update
439
457
  * * `query_string` - Query string with filters and optional returning
440
458
  * * `headers` - Optional headers as JSON string
441
- *
442
- * # Example (TypeScript)
443
- *
444
- * ```typescript
445
- * const result = parseUpdate("users",
446
- * JSON.stringify({ status: "active" }),
447
- * "id=eq.123&returning=id,status",
448
- * null
449
- * );
450
- * console.log(result.query); // UPDATE "users" SET ...
451
- * console.log(result.params); // ["active", "123"]
452
- * ```
459
+ * * `schema_id` - Optional schema cache key for per-tenant schema resolution
453
460
  * @param {string} table
454
461
  * @param {string} body
455
462
  * @param {string} query_string
456
463
  * @param {string | null} [headers]
464
+ * @param {string | null} [schema_id]
457
465
  * @returns {WasmQueryResult}
458
466
  */
459
- export function parseUpdate(table, body, query_string, headers) {
467
+ export function parseUpdate(table, body, query_string, headers, schema_id) {
460
468
  try {
461
469
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
462
470
  const ptr0 = passStringToWasm0(table, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -467,7 +475,9 @@ export function parseUpdate(table, body, query_string, headers) {
467
475
  const len2 = WASM_VECTOR_LEN;
468
476
  var ptr3 = isLikeNone(headers) ? 0 : passStringToWasm0(headers, wasm.__wbindgen_export, wasm.__wbindgen_export2);
469
477
  var len3 = WASM_VECTOR_LEN;
470
- wasm.parseUpdate(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
478
+ var ptr4 = isLikeNone(schema_id) ? 0 : passStringToWasm0(schema_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
479
+ var len4 = WASM_VECTOR_LEN;
480
+ wasm.parseUpdate(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
471
481
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
472
482
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
473
483
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -483,11 +493,11 @@ export function parseUpdate(table, body, query_string, headers) {
483
493
  function __wbg_get_imports() {
484
494
  const import0 = {
485
495
  __proto__: null,
486
- __wbg_Error_83742b46f01ce22d: function(arg0, arg1) {
496
+ __wbg_Error_55538483de6e3abe: function(arg0, arg1) {
487
497
  const ret = Error(getStringFromWasm0(arg0, arg1));
488
498
  return addHeapObject(ret);
489
499
  },
490
- __wbg_Number_a5a435bd7bbec835: function(arg0) {
500
+ __wbg_Number_f257194b7002d6f9: function(arg0) {
491
501
  const ret = Number(getObject(arg0));
492
502
  return ret;
493
503
  },
@@ -498,64 +508,64 @@ function __wbg_get_imports() {
498
508
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
499
509
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
500
510
  },
501
- __wbg___wbindgen_bigint_get_as_i64_447a76b5c6ef7bda: function(arg0, arg1) {
511
+ __wbg___wbindgen_bigint_get_as_i64_a738e80c0fe6f6a7: function(arg0, arg1) {
502
512
  const v = getObject(arg1);
503
513
  const ret = typeof(v) === 'bigint' ? v : undefined;
504
514
  getDataViewMemory0().setBigInt64(arg0 + 8 * 1, isLikeNone(ret) ? BigInt(0) : ret, true);
505
515
  getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
506
516
  },
507
- __wbg___wbindgen_boolean_get_c0f3f60bac5a78d1: function(arg0) {
517
+ __wbg___wbindgen_boolean_get_fe2a24fdfdb4064f: function(arg0) {
508
518
  const v = getObject(arg0);
509
519
  const ret = typeof(v) === 'boolean' ? v : undefined;
510
520
  return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
511
521
  },
512
- __wbg___wbindgen_debug_string_5398f5bb970e0daa: function(arg0, arg1) {
522
+ __wbg___wbindgen_debug_string_d89627202d0155b7: function(arg0, arg1) {
513
523
  const ret = debugString(getObject(arg1));
514
524
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
515
525
  const len1 = WASM_VECTOR_LEN;
516
526
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
517
527
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
518
528
  },
519
- __wbg___wbindgen_in_41dbb8413020e076: function(arg0, arg1) {
529
+ __wbg___wbindgen_in_fe3eb6a509f75744: function(arg0, arg1) {
520
530
  const ret = getObject(arg0) in getObject(arg1);
521
531
  return ret;
522
532
  },
523
- __wbg___wbindgen_is_bigint_e2141d4f045b7eda: function(arg0) {
533
+ __wbg___wbindgen_is_bigint_ca270ac12ef71091: function(arg0) {
524
534
  const ret = typeof(getObject(arg0)) === 'bigint';
525
535
  return ret;
526
536
  },
527
- __wbg___wbindgen_is_function_3c846841762788c1: function(arg0) {
537
+ __wbg___wbindgen_is_function_2a95406423ea8626: function(arg0) {
528
538
  const ret = typeof(getObject(arg0)) === 'function';
529
539
  return ret;
530
540
  },
531
- __wbg___wbindgen_is_object_781bc9f159099513: function(arg0) {
541
+ __wbg___wbindgen_is_object_59a002e76b059312: function(arg0) {
532
542
  const val = getObject(arg0);
533
543
  const ret = typeof(val) === 'object' && val !== null;
534
544
  return ret;
535
545
  },
536
- __wbg___wbindgen_is_string_7ef6b97b02428fae: function(arg0) {
546
+ __wbg___wbindgen_is_string_624d5244bb2bc87c: function(arg0) {
537
547
  const ret = typeof(getObject(arg0)) === 'string';
538
548
  return ret;
539
549
  },
540
- __wbg___wbindgen_is_undefined_52709e72fb9f179c: function(arg0) {
550
+ __wbg___wbindgen_is_undefined_87a3a837f331fef5: function(arg0) {
541
551
  const ret = getObject(arg0) === undefined;
542
552
  return ret;
543
553
  },
544
- __wbg___wbindgen_jsval_eq_ee31bfad3e536463: function(arg0, arg1) {
554
+ __wbg___wbindgen_jsval_eq_eedd705f9f2a4f35: function(arg0, arg1) {
545
555
  const ret = getObject(arg0) === getObject(arg1);
546
556
  return ret;
547
557
  },
548
- __wbg___wbindgen_jsval_loose_eq_5bcc3bed3c69e72b: function(arg0, arg1) {
558
+ __wbg___wbindgen_jsval_loose_eq_cf851f110c48f9ba: function(arg0, arg1) {
549
559
  const ret = getObject(arg0) == getObject(arg1);
550
560
  return ret;
551
561
  },
552
- __wbg___wbindgen_number_get_34bb9d9dcfa21373: function(arg0, arg1) {
562
+ __wbg___wbindgen_number_get_769f3676dc20c1d7: function(arg0, arg1) {
553
563
  const obj = getObject(arg1);
554
564
  const ret = typeof(obj) === 'number' ? obj : undefined;
555
565
  getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
556
566
  getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
557
567
  },
558
- __wbg___wbindgen_string_get_395e606bd0ee4427: function(arg0, arg1) {
568
+ __wbg___wbindgen_string_get_f1161390414f9b59: function(arg0, arg1) {
559
569
  const obj = getObject(arg1);
560
570
  const ret = typeof(obj) === 'string' ? obj : undefined;
561
571
  var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -563,25 +573,25 @@ function __wbg_get_imports() {
563
573
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
564
574
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
565
575
  },
566
- __wbg___wbindgen_throw_6ddd609b62940d55: function(arg0, arg1) {
576
+ __wbg___wbindgen_throw_5549492daedad139: function(arg0, arg1) {
567
577
  throw new Error(getStringFromWasm0(arg0, arg1));
568
578
  },
569
- __wbg__wbg_cb_unref_6b5b6b8576d35cb1: function(arg0) {
579
+ __wbg__wbg_cb_unref_fbe69bb076c16bad: function(arg0) {
570
580
  getObject(arg0)._wbg_cb_unref();
571
581
  },
572
- __wbg_call_2d781c1f4d5c0ef8: function() { return handleError(function (arg0, arg1, arg2) {
573
- const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
582
+ __wbg_call_6ae20895a60069a2: function() { return handleError(function (arg0, arg1) {
583
+ const ret = getObject(arg0).call(getObject(arg1));
574
584
  return addHeapObject(ret);
575
585
  }, arguments); },
576
- __wbg_call_e133b57c9155d22c: function() { return handleError(function (arg0, arg1) {
577
- const ret = getObject(arg0).call(getObject(arg1));
586
+ __wbg_call_8f5d7bb070283508: function() { return handleError(function (arg0, arg1, arg2) {
587
+ const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
578
588
  return addHeapObject(ret);
579
589
  }, arguments); },
580
- __wbg_done_08ce71ee07e3bd17: function(arg0) {
590
+ __wbg_done_19f92cb1f8738aba: function(arg0) {
581
591
  const ret = getObject(arg0).done;
582
592
  return ret;
583
593
  },
584
- __wbg_entries_e8a20ff8c9757101: function(arg0) {
594
+ __wbg_entries_28ed7cb892e12eff: function(arg0) {
585
595
  const ret = Object.entries(getObject(arg0));
586
596
  return addHeapObject(ret);
587
597
  },
@@ -596,15 +606,23 @@ function __wbg_get_imports() {
596
606
  wasm.__wbindgen_export4(deferred0_0, deferred0_1, 1);
597
607
  }
598
608
  },
599
- __wbg_get_326e41e095fb2575: function() { return handleError(function (arg0, arg1) {
600
- const ret = Reflect.get(getObject(arg0), getObject(arg1));
609
+ __wbg_from_45cebbf5e49a6ac6: function(arg0) {
610
+ const ret = Array.from(getObject(arg0));
601
611
  return addHeapObject(ret);
602
- }, arguments); },
603
- __wbg_get_a8ee5c45dabc1b3b: function(arg0, arg1) {
612
+ },
613
+ __wbg_get_94f5fc088edd3138: function(arg0, arg1) {
604
614
  const ret = getObject(arg0)[arg1 >>> 0];
605
615
  return addHeapObject(ret);
606
616
  },
607
- __wbg_get_unchecked_329cfe50afab7352: function(arg0, arg1) {
617
+ __wbg_get_a50328e7325d7f9b: function() { return handleError(function (arg0, arg1) {
618
+ const ret = Reflect.get(getObject(arg0), getObject(arg1));
619
+ return addHeapObject(ret);
620
+ }, arguments); },
621
+ __wbg_get_ff5f1fb220233477: function() { return handleError(function (arg0, arg1) {
622
+ const ret = Reflect.get(getObject(arg0), getObject(arg1));
623
+ return addHeapObject(ret);
624
+ }, arguments); },
625
+ __wbg_get_unchecked_7c6bbabf5b0b1fbf: function(arg0, arg1) {
608
626
  const ret = getObject(arg0)[arg1 >>> 0];
609
627
  return addHeapObject(ret);
610
628
  },
@@ -612,7 +630,7 @@ function __wbg_get_imports() {
612
630
  const ret = getObject(arg0)[getObject(arg1)];
613
631
  return addHeapObject(ret);
614
632
  },
615
- __wbg_instanceof_ArrayBuffer_101e2bf31071a9f6: function(arg0) {
633
+ __wbg_instanceof_ArrayBuffer_8d855993947fc3a2: function(arg0) {
616
634
  let result;
617
635
  try {
618
636
  result = getObject(arg0) instanceof ArrayBuffer;
@@ -622,7 +640,7 @@ function __wbg_get_imports() {
622
640
  const ret = result;
623
641
  return ret;
624
642
  },
625
- __wbg_instanceof_Map_f194b366846aca0c: function(arg0) {
643
+ __wbg_instanceof_Map_238410f1463c05ed: function(arg0) {
626
644
  let result;
627
645
  try {
628
646
  result = getObject(arg0) instanceof Map;
@@ -632,7 +650,7 @@ function __wbg_get_imports() {
632
650
  const ret = result;
633
651
  return ret;
634
652
  },
635
- __wbg_instanceof_Uint8Array_740438561a5b956d: function(arg0) {
653
+ __wbg_instanceof_Uint8Array_ce24d58a5f4bdcc3: function(arg0) {
636
654
  let result;
637
655
  try {
638
656
  result = getObject(arg0) instanceof Uint8Array;
@@ -642,54 +660,54 @@ function __wbg_get_imports() {
642
660
  const ret = result;
643
661
  return ret;
644
662
  },
645
- __wbg_isArray_33b91feb269ff46e: function(arg0) {
663
+ __wbg_isArray_867202cf8f195ed8: function(arg0) {
646
664
  const ret = Array.isArray(getObject(arg0));
647
665
  return ret;
648
666
  },
649
- __wbg_isSafeInteger_ecd6a7f9c3e053cd: function(arg0) {
667
+ __wbg_isSafeInteger_1dfae065cbfe1915: function(arg0) {
650
668
  const ret = Number.isSafeInteger(getObject(arg0));
651
669
  return ret;
652
670
  },
653
- __wbg_iterator_d8f549ec8fb061b1: function() {
671
+ __wbg_iterator_54661826e186eb6a: function() {
654
672
  const ret = Symbol.iterator;
655
673
  return addHeapObject(ret);
656
674
  },
657
- __wbg_length_b3416cf66a5452c8: function(arg0) {
675
+ __wbg_length_e6e1633fbea6cfa9: function(arg0) {
658
676
  const ret = getObject(arg0).length;
659
677
  return ret;
660
678
  },
661
- __wbg_length_ea16607d7b61445b: function(arg0) {
679
+ __wbg_length_fae3e439140f48a4: function(arg0) {
662
680
  const ret = getObject(arg0).length;
663
681
  return ret;
664
682
  },
665
- __wbg_new_227d7c05414eb861: function() {
666
- const ret = new Error();
667
- return addHeapObject(ret);
668
- },
669
- __wbg_new_49d5571bd3f0c4d4: function() {
683
+ __wbg_new_0934b88171ef61b0: function() {
670
684
  const ret = new Map();
671
685
  return addHeapObject(ret);
672
686
  },
673
- __wbg_new_5f486cdf45a04d78: function(arg0) {
687
+ __wbg_new_1d96678aaacca32e: function(arg0) {
674
688
  const ret = new Uint8Array(getObject(arg0));
675
689
  return addHeapObject(ret);
676
690
  },
677
- __wbg_new_a70fbab9066b301f: function() {
691
+ __wbg_new_227d7c05414eb861: function() {
692
+ const ret = new Error();
693
+ return addHeapObject(ret);
694
+ },
695
+ __wbg_new_4370be21fa2b2f80: function() {
678
696
  const ret = new Array();
679
697
  return addHeapObject(ret);
680
698
  },
681
- __wbg_new_ab79df5bd7c26067: function() {
699
+ __wbg_new_48e1d86cfd30c8e7: function() {
682
700
  const ret = new Object();
683
701
  return addHeapObject(ret);
684
702
  },
685
- __wbg_new_typed_aaaeaf29cf802876: function(arg0, arg1) {
703
+ __wbg_new_typed_25dda2388d7e5e9f: function(arg0, arg1) {
686
704
  try {
687
705
  var state0 = {a: arg0, b: arg1};
688
706
  var cb0 = (arg0, arg1) => {
689
707
  const a = state0.a;
690
708
  state0.a = 0;
691
709
  try {
692
- return __wasm_bindgen_func_elem_416(a, state0.b, arg0, arg1);
710
+ return __wasm_bindgen_func_elem_408(a, state0.b, arg0, arg1);
693
711
  } finally {
694
712
  state0.a = a;
695
713
  }
@@ -697,38 +715,38 @@ function __wbg_get_imports() {
697
715
  const ret = new Promise(cb0);
698
716
  return addHeapObject(ret);
699
717
  } finally {
700
- state0.a = state0.b = 0;
718
+ state0.a = 0;
701
719
  }
702
720
  },
703
- __wbg_next_11b99ee6237339e3: function() { return handleError(function (arg0) {
704
- const ret = getObject(arg0).next();
705
- return addHeapObject(ret);
706
- }, arguments); },
707
- __wbg_next_e01a967809d1aa68: function(arg0) {
721
+ __wbg_next_55d835fe0ab5b3e7: function(arg0) {
708
722
  const ret = getObject(arg0).next;
709
723
  return addHeapObject(ret);
710
724
  },
711
- __wbg_prototypesetcall_d62e5099504357e6: function(arg0, arg1, arg2) {
725
+ __wbg_next_e34cfb9df1518d7c: function() { return handleError(function (arg0) {
726
+ const ret = getObject(arg0).next();
727
+ return addHeapObject(ret);
728
+ }, arguments); },
729
+ __wbg_prototypesetcall_3875d54d12ef2eec: function(arg0, arg1, arg2) {
712
730
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
713
731
  },
714
- __wbg_queueMicrotask_0c399741342fb10f: function(arg0) {
732
+ __wbg_queueMicrotask_8868365114fe23b5: function(arg0) {
733
+ queueMicrotask(getObject(arg0));
734
+ },
735
+ __wbg_queueMicrotask_cfc5a0e62f9ebdbe: function(arg0) {
715
736
  const ret = getObject(arg0).queueMicrotask;
716
737
  return addHeapObject(ret);
717
738
  },
718
- __wbg_queueMicrotask_a082d78ce798393e: function(arg0) {
719
- queueMicrotask(getObject(arg0));
720
- },
721
- __wbg_resolve_ae8d83246e5bcc12: function(arg0) {
739
+ __wbg_resolve_d8059bc113e215bf: function(arg0) {
722
740
  const ret = Promise.resolve(getObject(arg0));
723
741
  return addHeapObject(ret);
724
742
  },
725
- __wbg_set_282384002438957f: function(arg0, arg1, arg2) {
743
+ __wbg_set_4702dfa37c77f492: function(arg0, arg1, arg2) {
726
744
  getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
727
745
  },
728
746
  __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {
729
747
  getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
730
748
  },
731
- __wbg_set_bf7251625df30a02: function(arg0, arg1, arg2) {
749
+ __wbg_set_8c6629931852a4a5: function(arg0, arg1, arg2) {
732
750
  const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));
733
751
  return addHeapObject(ret);
734
752
  },
@@ -739,37 +757,37 @@ function __wbg_get_imports() {
739
757
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
740
758
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
741
759
  },
742
- __wbg_static_accessor_GLOBAL_8adb955bd33fac2f: function() {
760
+ __wbg_static_accessor_GLOBAL_8dfb7f5e26ebe523: function() {
743
761
  const ret = typeof global === 'undefined' ? null : global;
744
762
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
745
763
  },
746
- __wbg_static_accessor_GLOBAL_THIS_ad356e0db91c7913: function() {
764
+ __wbg_static_accessor_GLOBAL_THIS_941154efc8395cdd: function() {
747
765
  const ret = typeof globalThis === 'undefined' ? null : globalThis;
748
766
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
749
767
  },
750
- __wbg_static_accessor_SELF_f207c857566db248: function() {
768
+ __wbg_static_accessor_SELF_58dac9af822f561f: function() {
751
769
  const ret = typeof self === 'undefined' ? null : self;
752
770
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
753
771
  },
754
- __wbg_static_accessor_WINDOW_bb9f1ba69d61b386: function() {
772
+ __wbg_static_accessor_WINDOW_ee64f0b3d8354c0b: function() {
755
773
  const ret = typeof window === 'undefined' ? null : window;
756
774
  return isLikeNone(ret) ? 0 : addHeapObject(ret);
757
775
  },
758
- __wbg_then_098abe61755d12f6: function(arg0, arg1) {
759
- const ret = getObject(arg0).then(getObject(arg1));
776
+ __wbg_then_0150352e4ad20344: function(arg0, arg1, arg2) {
777
+ const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));
760
778
  return addHeapObject(ret);
761
779
  },
762
- __wbg_then_9e335f6dd892bc11: function(arg0, arg1, arg2) {
763
- const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));
780
+ __wbg_then_5160486c67ddb98a: function(arg0, arg1) {
781
+ const ret = getObject(arg0).then(getObject(arg1));
764
782
  return addHeapObject(ret);
765
783
  },
766
- __wbg_value_21fc78aab0322612: function(arg0) {
784
+ __wbg_value_d5b248ce8419bd1b: function(arg0) {
767
785
  const ret = getObject(arg0).value;
768
786
  return addHeapObject(ret);
769
787
  },
770
788
  __wbindgen_cast_0000000000000001: function(arg0, arg1) {
771
- // Cast intrinsic for `Closure(Closure { dtor_idx: 56, function: Function { arguments: [Externref], shim_idx: 57, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
772
- const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_344, __wasm_bindgen_func_elem_345);
789
+ // Cast intrinsic for `Closure(Closure { owned: true, function: Function { arguments: [Externref], shim_idx: 62, ret: Result(Unit), inner_ret: Some(Result(Unit)) }, mutable: true }) -> Externref`.
790
+ const ret = makeMutClosure(arg0, arg1, __wasm_bindgen_func_elem_403);
773
791
  return addHeapObject(ret);
774
792
  },
775
793
  __wbindgen_cast_0000000000000002: function(arg0) {
@@ -806,10 +824,10 @@ function __wbg_get_imports() {
806
824
  };
807
825
  }
808
826
 
809
- function __wasm_bindgen_func_elem_345(arg0, arg1, arg2) {
827
+ function __wasm_bindgen_func_elem_403(arg0, arg1, arg2) {
810
828
  try {
811
829
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
812
- wasm.__wasm_bindgen_func_elem_345(retptr, arg0, arg1, addHeapObject(arg2));
830
+ wasm.__wasm_bindgen_func_elem_403(retptr, arg0, arg1, addHeapObject(arg2));
813
831
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
814
832
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
815
833
  if (r1) {
@@ -820,8 +838,8 @@ function __wasm_bindgen_func_elem_345(arg0, arg1, arg2) {
820
838
  }
821
839
  }
822
840
 
823
- function __wasm_bindgen_func_elem_416(arg0, arg1, arg2, arg3) {
824
- wasm.__wasm_bindgen_func_elem_416(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
841
+ function __wasm_bindgen_func_elem_408(arg0, arg1, arg2, arg3) {
842
+ wasm.__wasm_bindgen_func_elem_408(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
825
843
  }
826
844
 
827
845
  const WasmQueryResultFinalization = (typeof FinalizationRegistry === 'undefined')
@@ -839,7 +857,7 @@ function addHeapObject(obj) {
839
857
 
840
858
  const CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')
841
859
  ? { register: () => {}, unregister: () => {} }
842
- : new FinalizationRegistry(state => state.dtor(state.a, state.b));
860
+ : new FinalizationRegistry(state => wasm.__wbindgen_export5(state.a, state.b));
843
861
 
844
862
  function debugString(val) {
845
863
  // primitive types
@@ -957,8 +975,8 @@ function isLikeNone(x) {
957
975
  return x === undefined || x === null;
958
976
  }
959
977
 
960
- function makeMutClosure(arg0, arg1, dtor, f) {
961
- const state = { a: arg0, b: arg1, cnt: 1, dtor };
978
+ function makeMutClosure(arg0, arg1, f) {
979
+ const state = { a: arg0, b: arg1, cnt: 1 };
962
980
  const real = (...args) => {
963
981
 
964
982
  // First up with a closure we increment the internal reference
@@ -976,7 +994,7 @@ function makeMutClosure(arg0, arg1, dtor, f) {
976
994
  };
977
995
  real._wbg_cb_unref = () => {
978
996
  if (--state.cnt === 0) {
979
- state.dtor(state.a, state.b);
997
+ wasm.__wbindgen_export5(state.a, state.b);
980
998
  state.a = 0;
981
999
  CLOSURE_DTORS.unregister(state);
982
1000
  }