@iscc/wasm 0.0.2

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/iscc_wasm.js ADDED
@@ -0,0 +1,1283 @@
1
+ /* @ts-self-types="./iscc_wasm.d.ts" */
2
+
3
+ /**
4
+ * Streaming Data-Code generator.
5
+ *
6
+ * Incrementally processes data with content-defined chunking and MinHash
7
+ * to produce results identical to `gen_data_code_v0`. Follows the
8
+ * `new() → update() → finalize()` pattern.
9
+ */
10
+ export class DataHasher {
11
+ __destroy_into_raw() {
12
+ const ptr = this.__wbg_ptr;
13
+ this.__wbg_ptr = 0;
14
+ DataHasherFinalization.unregister(this);
15
+ return ptr;
16
+ }
17
+ free() {
18
+ const ptr = this.__destroy_into_raw();
19
+ wasm.__wbg_datahasher_free(ptr, 0);
20
+ }
21
+ /**
22
+ * Consume the hasher and produce a Data-Code ISCC string.
23
+ *
24
+ * After calling `finalize`, subsequent calls to `update` or `finalize`
25
+ * will throw. Default `bits` is 64.
26
+ * @param {number | null} [bits]
27
+ * @returns {string}
28
+ */
29
+ finalize(bits) {
30
+ let deferred2_0;
31
+ let deferred2_1;
32
+ try {
33
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34
+ wasm.datahasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
35
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
36
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
37
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
38
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
39
+ var ptr1 = r0;
40
+ var len1 = r1;
41
+ if (r3) {
42
+ ptr1 = 0; len1 = 0;
43
+ throw takeObject(r2);
44
+ }
45
+ deferred2_0 = ptr1;
46
+ deferred2_1 = len1;
47
+ return getStringFromWasm0(ptr1, len1);
48
+ } finally {
49
+ wasm.__wbindgen_add_to_stack_pointer(16);
50
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
51
+ }
52
+ }
53
+ /**
54
+ * Create a new `DataHasher`.
55
+ */
56
+ constructor() {
57
+ const ret = wasm.datahasher_new();
58
+ this.__wbg_ptr = ret >>> 0;
59
+ DataHasherFinalization.register(this, this.__wbg_ptr, this);
60
+ return this;
61
+ }
62
+ /**
63
+ * Push data into the hasher.
64
+ * @param {Uint8Array} data
65
+ */
66
+ update(data) {
67
+ try {
68
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
69
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
70
+ const len0 = WASM_VECTOR_LEN;
71
+ wasm.datahasher_update(retptr, this.__wbg_ptr, ptr0, len0);
72
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
73
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
74
+ if (r1) {
75
+ throw takeObject(r0);
76
+ }
77
+ } finally {
78
+ wasm.__wbindgen_add_to_stack_pointer(16);
79
+ }
80
+ }
81
+ }
82
+ if (Symbol.dispose) DataHasher.prototype[Symbol.dispose] = DataHasher.prototype.free;
83
+
84
+ /**
85
+ * Streaming Instance-Code generator.
86
+ *
87
+ * Incrementally hashes data with BLAKE3 to produce results identical
88
+ * to `gen_instance_code_v0`. Follows the
89
+ * `new() → update() → finalize()` pattern.
90
+ */
91
+ export class InstanceHasher {
92
+ __destroy_into_raw() {
93
+ const ptr = this.__wbg_ptr;
94
+ this.__wbg_ptr = 0;
95
+ InstanceHasherFinalization.unregister(this);
96
+ return ptr;
97
+ }
98
+ free() {
99
+ const ptr = this.__destroy_into_raw();
100
+ wasm.__wbg_instancehasher_free(ptr, 0);
101
+ }
102
+ /**
103
+ * Consume the hasher and produce an Instance-Code ISCC string.
104
+ *
105
+ * After calling `finalize`, subsequent calls to `update` or `finalize`
106
+ * will throw. Default `bits` is 64.
107
+ * @param {number | null} [bits]
108
+ * @returns {string}
109
+ */
110
+ finalize(bits) {
111
+ let deferred2_0;
112
+ let deferred2_1;
113
+ try {
114
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
115
+ wasm.instancehasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
116
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
117
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
118
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
119
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
120
+ var ptr1 = r0;
121
+ var len1 = r1;
122
+ if (r3) {
123
+ ptr1 = 0; len1 = 0;
124
+ throw takeObject(r2);
125
+ }
126
+ deferred2_0 = ptr1;
127
+ deferred2_1 = len1;
128
+ return getStringFromWasm0(ptr1, len1);
129
+ } finally {
130
+ wasm.__wbindgen_add_to_stack_pointer(16);
131
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
132
+ }
133
+ }
134
+ /**
135
+ * Create a new `InstanceHasher`.
136
+ */
137
+ constructor() {
138
+ const ret = wasm.instancehasher_new();
139
+ this.__wbg_ptr = ret >>> 0;
140
+ InstanceHasherFinalization.register(this, this.__wbg_ptr, this);
141
+ return this;
142
+ }
143
+ /**
144
+ * Push data into the hasher.
145
+ * @param {Uint8Array} data
146
+ */
147
+ update(data) {
148
+ try {
149
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
150
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
151
+ const len0 = WASM_VECTOR_LEN;
152
+ wasm.instancehasher_update(retptr, this.__wbg_ptr, ptr0, len0);
153
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
154
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
155
+ if (r1) {
156
+ throw takeObject(r0);
157
+ }
158
+ } finally {
159
+ wasm.__wbindgen_add_to_stack_pointer(16);
160
+ }
161
+ }
162
+ }
163
+ if (Symbol.dispose) InstanceHasher.prototype[Symbol.dispose] = InstanceHasher.prototype.free;
164
+
165
+ /**
166
+ * Split data into content-defined chunks using gear rolling hash.
167
+ *
168
+ * Returns a JS array of `Uint8Array` chunks. At least one chunk is always
169
+ * returned (empty bytes for empty input). When `utf32` is true, aligns cut
170
+ * points to 4-byte boundaries. Default `avg_chunk_size` is 1024.
171
+ * @param {Uint8Array} data
172
+ * @param {boolean} utf32
173
+ * @param {number | null} [avg_chunk_size]
174
+ * @returns {any}
175
+ */
176
+ export function alg_cdc_chunks(data, utf32, avg_chunk_size) {
177
+ try {
178
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
179
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
180
+ const len0 = WASM_VECTOR_LEN;
181
+ wasm.alg_cdc_chunks(retptr, ptr0, len0, utf32, isLikeNone(avg_chunk_size) ? 0x100000001 : (avg_chunk_size) >>> 0);
182
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
183
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
184
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
185
+ if (r2) {
186
+ throw takeObject(r1);
187
+ }
188
+ return takeObject(r0);
189
+ } finally {
190
+ wasm.__wbindgen_add_to_stack_pointer(16);
191
+ }
192
+ }
193
+
194
+ /**
195
+ * Compute a 256-bit MinHash digest from 32-bit integer features.
196
+ *
197
+ * Uses 64 universal hash functions with bit-interleaved compression to
198
+ * produce a 32-byte similarity-preserving digest.
199
+ * @param {Uint32Array} features
200
+ * @returns {Uint8Array}
201
+ */
202
+ export function alg_minhash_256(features) {
203
+ try {
204
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
205
+ const ptr0 = passArray32ToWasm0(features, wasm.__wbindgen_export);
206
+ const len0 = WASM_VECTOR_LEN;
207
+ wasm.alg_minhash_256(retptr, ptr0, len0);
208
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
209
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
210
+ var v2 = getArrayU8FromWasm0(r0, r1).slice();
211
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
212
+ return v2;
213
+ } finally {
214
+ wasm.__wbindgen_add_to_stack_pointer(16);
215
+ }
216
+ }
217
+
218
+ /**
219
+ * Compute a SimHash from a sequence of equal-length hash digests.
220
+ *
221
+ * Accepts a JS array of `Uint8Array` values. Returns a similarity-preserving
222
+ * hash whose length matches the input digest length. Returns 32 zero bytes
223
+ * for empty input. Throws on mismatched digest lengths.
224
+ * @param {any} hash_digests
225
+ * @returns {Uint8Array}
226
+ */
227
+ export function alg_simhash(hash_digests) {
228
+ try {
229
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
230
+ wasm.alg_simhash(retptr, addHeapObject(hash_digests));
231
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
232
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
233
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
234
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
235
+ if (r3) {
236
+ throw takeObject(r2);
237
+ }
238
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
239
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
240
+ return v1;
241
+ } finally {
242
+ wasm.__wbindgen_add_to_stack_pointer(16);
243
+ }
244
+ }
245
+
246
+ /**
247
+ * Encode bytes as base64url (RFC 4648 §5, no padding).
248
+ *
249
+ * Returns a URL-safe base64 encoded string without padding characters.
250
+ * @param {Uint8Array} data
251
+ * @returns {string}
252
+ */
253
+ export function encode_base64(data) {
254
+ let deferred2_0;
255
+ let deferred2_1;
256
+ try {
257
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
258
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
259
+ const len0 = WASM_VECTOR_LEN;
260
+ wasm.encode_base64(retptr, ptr0, len0);
261
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
262
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
263
+ deferred2_0 = r0;
264
+ deferred2_1 = r1;
265
+ return getStringFromWasm0(r0, r1);
266
+ } finally {
267
+ wasm.__wbindgen_add_to_stack_pointer(16);
268
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
269
+ }
270
+ }
271
+
272
+ /**
273
+ * Generate an Audio-Code from a Chromaprint feature vector.
274
+ *
275
+ * Produces an ISCC Content-Code for audio from signed integer
276
+ * Chromaprint fingerprint features using multi-stage SimHash.
277
+ * @param {Int32Array} cv
278
+ * @param {number | null} [bits]
279
+ * @returns {string}
280
+ */
281
+ export function gen_audio_code_v0(cv, bits) {
282
+ let deferred3_0;
283
+ let deferred3_1;
284
+ try {
285
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
286
+ const ptr0 = passArray32ToWasm0(cv, wasm.__wbindgen_export);
287
+ const len0 = WASM_VECTOR_LEN;
288
+ wasm.gen_audio_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
289
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
290
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
291
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
292
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
293
+ var ptr2 = r0;
294
+ var len2 = r1;
295
+ if (r3) {
296
+ ptr2 = 0; len2 = 0;
297
+ throw takeObject(r2);
298
+ }
299
+ deferred3_0 = ptr2;
300
+ deferred3_1 = len2;
301
+ return getStringFromWasm0(ptr2, len2);
302
+ } finally {
303
+ wasm.__wbindgen_add_to_stack_pointer(16);
304
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
305
+ }
306
+ }
307
+
308
+ /**
309
+ * Generate a Data-Code from raw byte data.
310
+ *
311
+ * Produces an ISCC Data-Code by splitting data into content-defined
312
+ * chunks and applying MinHash for similarity hashing.
313
+ * @param {Uint8Array} data
314
+ * @param {number | null} [bits]
315
+ * @returns {string}
316
+ */
317
+ export function gen_data_code_v0(data, bits) {
318
+ let deferred3_0;
319
+ let deferred3_1;
320
+ try {
321
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
322
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
323
+ const len0 = WASM_VECTOR_LEN;
324
+ wasm.gen_data_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
325
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
326
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
327
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
328
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
329
+ var ptr2 = r0;
330
+ var len2 = r1;
331
+ if (r3) {
332
+ ptr2 = 0; len2 = 0;
333
+ throw takeObject(r2);
334
+ }
335
+ deferred3_0 = ptr2;
336
+ deferred3_1 = len2;
337
+ return getStringFromWasm0(ptr2, len2);
338
+ } finally {
339
+ wasm.__wbindgen_add_to_stack_pointer(16);
340
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
341
+ }
342
+ }
343
+
344
+ /**
345
+ * Generate an Image-Code from pixel data.
346
+ *
347
+ * Produces an ISCC Content-Code for images from 1024 grayscale pixels
348
+ * (32x32) using a DCT-based perceptual hash.
349
+ * @param {Uint8Array} pixels
350
+ * @param {number | null} [bits]
351
+ * @returns {string}
352
+ */
353
+ export function gen_image_code_v0(pixels, bits) {
354
+ let deferred3_0;
355
+ let deferred3_1;
356
+ try {
357
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
358
+ const ptr0 = passArray8ToWasm0(pixels, wasm.__wbindgen_export);
359
+ const len0 = WASM_VECTOR_LEN;
360
+ wasm.gen_image_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
361
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
362
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
363
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
364
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
365
+ var ptr2 = r0;
366
+ var len2 = r1;
367
+ if (r3) {
368
+ ptr2 = 0; len2 = 0;
369
+ throw takeObject(r2);
370
+ }
371
+ deferred3_0 = ptr2;
372
+ deferred3_1 = len2;
373
+ return getStringFromWasm0(ptr2, len2);
374
+ } finally {
375
+ wasm.__wbindgen_add_to_stack_pointer(16);
376
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
377
+ }
378
+ }
379
+
380
+ /**
381
+ * Generate an Instance-Code from raw byte data.
382
+ *
383
+ * Produces an ISCC Instance-Code by hashing the complete byte stream
384
+ * with BLAKE3. Returns the ISCC string with "ISCC:" prefix.
385
+ * @param {Uint8Array} data
386
+ * @param {number | null} [bits]
387
+ * @returns {string}
388
+ */
389
+ export function gen_instance_code_v0(data, bits) {
390
+ let deferred3_0;
391
+ let deferred3_1;
392
+ try {
393
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
394
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
395
+ const len0 = WASM_VECTOR_LEN;
396
+ wasm.gen_instance_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
397
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
398
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
399
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
400
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
401
+ var ptr2 = r0;
402
+ var len2 = r1;
403
+ if (r3) {
404
+ ptr2 = 0; len2 = 0;
405
+ throw takeObject(r2);
406
+ }
407
+ deferred3_0 = ptr2;
408
+ deferred3_1 = len2;
409
+ return getStringFromWasm0(ptr2, len2);
410
+ } finally {
411
+ wasm.__wbindgen_add_to_stack_pointer(16);
412
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
413
+ }
414
+ }
415
+
416
+ /**
417
+ * Generate a composite ISCC-CODE from individual unit codes.
418
+ *
419
+ * Combines multiple ISCC unit codes into a single composite ISCC-CODE.
420
+ * Requires at least Data-Code and Instance-Code. Accepts a JS array of strings.
421
+ * @param {any} codes
422
+ * @param {boolean | null} [wide]
423
+ * @returns {string}
424
+ */
425
+ export function gen_iscc_code_v0(codes, wide) {
426
+ let deferred2_0;
427
+ let deferred2_1;
428
+ try {
429
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
430
+ wasm.gen_iscc_code_v0(retptr, addHeapObject(codes), isLikeNone(wide) ? 0xFFFFFF : wide ? 1 : 0);
431
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
432
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
433
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
434
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
435
+ var ptr1 = r0;
436
+ var len1 = r1;
437
+ if (r3) {
438
+ ptr1 = 0; len1 = 0;
439
+ throw takeObject(r2);
440
+ }
441
+ deferred2_0 = ptr1;
442
+ deferred2_1 = len1;
443
+ return getStringFromWasm0(ptr1, len1);
444
+ } finally {
445
+ wasm.__wbindgen_add_to_stack_pointer(16);
446
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
447
+ }
448
+ }
449
+
450
+ /**
451
+ * Generate a Meta-Code from name and optional metadata.
452
+ *
453
+ * Produces an ISCC Meta-Code by hashing the provided name, description,
454
+ * and metadata fields using the SimHash algorithm.
455
+ * @param {string} name
456
+ * @param {string | null} [description]
457
+ * @param {string | null} [meta]
458
+ * @param {number | null} [bits]
459
+ * @returns {string}
460
+ */
461
+ export function gen_meta_code_v0(name, description, meta, bits) {
462
+ let deferred5_0;
463
+ let deferred5_1;
464
+ try {
465
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
466
+ const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export, wasm.__wbindgen_export2);
467
+ const len0 = WASM_VECTOR_LEN;
468
+ var ptr1 = isLikeNone(description) ? 0 : passStringToWasm0(description, wasm.__wbindgen_export, wasm.__wbindgen_export2);
469
+ var len1 = WASM_VECTOR_LEN;
470
+ var ptr2 = isLikeNone(meta) ? 0 : passStringToWasm0(meta, wasm.__wbindgen_export, wasm.__wbindgen_export2);
471
+ var len2 = WASM_VECTOR_LEN;
472
+ wasm.gen_meta_code_v0(retptr, ptr0, len0, ptr1, len1, ptr2, len2, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
473
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
474
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
475
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
476
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
477
+ var ptr4 = r0;
478
+ var len4 = r1;
479
+ if (r3) {
480
+ ptr4 = 0; len4 = 0;
481
+ throw takeObject(r2);
482
+ }
483
+ deferred5_0 = ptr4;
484
+ deferred5_1 = len4;
485
+ return getStringFromWasm0(ptr4, len4);
486
+ } finally {
487
+ wasm.__wbindgen_add_to_stack_pointer(16);
488
+ wasm.__wbindgen_export4(deferred5_0, deferred5_1, 1);
489
+ }
490
+ }
491
+
492
+ /**
493
+ * Generate a Mixed-Code from multiple Content-Code strings.
494
+ *
495
+ * Produces a Mixed Content-Code by combining multiple ISCC Content-Codes
496
+ * of different types using SimHash. Accepts a JS array of strings.
497
+ * @param {any} codes
498
+ * @param {number | null} [bits]
499
+ * @returns {string}
500
+ */
501
+ export function gen_mixed_code_v0(codes, bits) {
502
+ let deferred2_0;
503
+ let deferred2_1;
504
+ try {
505
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
506
+ wasm.gen_mixed_code_v0(retptr, addHeapObject(codes), isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
507
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
508
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
509
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
510
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
511
+ var ptr1 = r0;
512
+ var len1 = r1;
513
+ if (r3) {
514
+ ptr1 = 0; len1 = 0;
515
+ throw takeObject(r2);
516
+ }
517
+ deferred2_0 = ptr1;
518
+ deferred2_1 = len1;
519
+ return getStringFromWasm0(ptr1, len1);
520
+ } finally {
521
+ wasm.__wbindgen_add_to_stack_pointer(16);
522
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
523
+ }
524
+ }
525
+
526
+ /**
527
+ * Generate a Text-Code from plain text content.
528
+ *
529
+ * Produces an ISCC Content-Code for text using MinHash-based
530
+ * similarity hashing.
531
+ * @param {string} text
532
+ * @param {number | null} [bits]
533
+ * @returns {string}
534
+ */
535
+ export function gen_text_code_v0(text, bits) {
536
+ let deferred3_0;
537
+ let deferred3_1;
538
+ try {
539
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
540
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
541
+ const len0 = WASM_VECTOR_LEN;
542
+ wasm.gen_text_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
543
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
544
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
545
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
546
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
547
+ var ptr2 = r0;
548
+ var len2 = r1;
549
+ if (r3) {
550
+ ptr2 = 0; len2 = 0;
551
+ throw takeObject(r2);
552
+ }
553
+ deferred3_0 = ptr2;
554
+ deferred3_1 = len2;
555
+ return getStringFromWasm0(ptr2, len2);
556
+ } finally {
557
+ wasm.__wbindgen_add_to_stack_pointer(16);
558
+ wasm.__wbindgen_export4(deferred3_0, deferred3_1, 1);
559
+ }
560
+ }
561
+
562
+ /**
563
+ * Generate a Video-Code from frame signature data.
564
+ *
565
+ * Produces an ISCC Content-Code for video from MPEG-7 frame
566
+ * signature vectors using WTA-Hash. Accepts a JS array of arrays of i32.
567
+ * @param {any} frame_sigs
568
+ * @param {number | null} [bits]
569
+ * @returns {string}
570
+ */
571
+ export function gen_video_code_v0(frame_sigs, bits) {
572
+ let deferred2_0;
573
+ let deferred2_1;
574
+ try {
575
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
576
+ wasm.gen_video_code_v0(retptr, addHeapObject(frame_sigs), isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
577
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
578
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
579
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
580
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
581
+ var ptr1 = r0;
582
+ var len1 = r1;
583
+ if (r3) {
584
+ ptr1 = 0; len1 = 0;
585
+ throw takeObject(r2);
586
+ }
587
+ deferred2_0 = ptr1;
588
+ deferred2_1 = len1;
589
+ return getStringFromWasm0(ptr1, len1);
590
+ } finally {
591
+ wasm.__wbindgen_add_to_stack_pointer(16);
592
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
593
+ }
594
+ }
595
+
596
+ /**
597
+ * Decompose a composite ISCC-CODE into individual ISCC-UNITs.
598
+ *
599
+ * Accepts a normalized ISCC-CODE or concatenated ISCC-UNIT sequence.
600
+ * The optional "ISCC:" prefix is stripped before decoding.
601
+ * Returns an array of base32-encoded ISCC-UNIT strings (without prefix).
602
+ * @param {string} iscc_code
603
+ * @returns {string[]}
604
+ */
605
+ export function iscc_decompose(iscc_code) {
606
+ try {
607
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
608
+ const ptr0 = passStringToWasm0(iscc_code, wasm.__wbindgen_export, wasm.__wbindgen_export2);
609
+ const len0 = WASM_VECTOR_LEN;
610
+ wasm.iscc_decompose(retptr, ptr0, len0);
611
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
612
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
613
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
614
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
615
+ if (r3) {
616
+ throw takeObject(r2);
617
+ }
618
+ var v2 = getArrayJsValueFromWasm0(r0, r1).slice();
619
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
620
+ return v2;
621
+ } finally {
622
+ wasm.__wbindgen_add_to_stack_pointer(16);
623
+ }
624
+ }
625
+
626
+ /**
627
+ * Generate sliding window n-grams from a string.
628
+ *
629
+ * Returns overlapping substrings of `width` Unicode characters, advancing
630
+ * by one character at a time. Throws if width is less than 2.
631
+ * @param {string} seq
632
+ * @param {number} width
633
+ * @returns {string[]}
634
+ */
635
+ export function sliding_window(seq, width) {
636
+ try {
637
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
638
+ const ptr0 = passStringToWasm0(seq, wasm.__wbindgen_export, wasm.__wbindgen_export2);
639
+ const len0 = WASM_VECTOR_LEN;
640
+ wasm.sliding_window(retptr, ptr0, len0, width);
641
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
642
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
643
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
644
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
645
+ if (r3) {
646
+ throw takeObject(r2);
647
+ }
648
+ var v2 = getArrayJsValueFromWasm0(r0, r1).slice();
649
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
650
+ return v2;
651
+ } finally {
652
+ wasm.__wbindgen_add_to_stack_pointer(16);
653
+ }
654
+ }
655
+
656
+ /**
657
+ * Compute a similarity-preserving hash from video frame signatures.
658
+ *
659
+ * Accepts a JS array of arrays of `i32`. Returns raw bytes of length
660
+ * `bits / 8`. Default `bits` is 64. Throws if `frame_sigs` is empty.
661
+ * @param {any} frame_sigs
662
+ * @param {number | null} [bits]
663
+ * @returns {Uint8Array}
664
+ */
665
+ export function soft_hash_video_v0(frame_sigs, bits) {
666
+ try {
667
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
668
+ wasm.soft_hash_video_v0(retptr, addHeapObject(frame_sigs), isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
669
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
670
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
671
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
672
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
673
+ if (r3) {
674
+ throw takeObject(r2);
675
+ }
676
+ var v1 = getArrayU8FromWasm0(r0, r1).slice();
677
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
678
+ return v1;
679
+ } finally {
680
+ wasm.__wbindgen_add_to_stack_pointer(16);
681
+ }
682
+ }
683
+
684
+ /**
685
+ * Clean and normalize text for display.
686
+ *
687
+ * Applies NFKC normalization, removes control characters (except newlines),
688
+ * normalizes `\r\n` to `\n`, collapses consecutive empty lines, and strips
689
+ * leading/trailing whitespace.
690
+ * @param {string} text
691
+ * @returns {string}
692
+ */
693
+ export function text_clean(text) {
694
+ let deferred2_0;
695
+ let deferred2_1;
696
+ try {
697
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
698
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
699
+ const len0 = WASM_VECTOR_LEN;
700
+ wasm.text_clean(retptr, ptr0, len0);
701
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
702
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
703
+ deferred2_0 = r0;
704
+ deferred2_1 = r1;
705
+ return getStringFromWasm0(r0, r1);
706
+ } finally {
707
+ wasm.__wbindgen_add_to_stack_pointer(16);
708
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
709
+ }
710
+ }
711
+
712
+ /**
713
+ * Normalize and simplify text for similarity hashing.
714
+ *
715
+ * Applies NFD normalization, lowercasing, removes whitespace and characters
716
+ * in Unicode categories C (control), M (mark), and P (punctuation), then
717
+ * recombines with NFKC normalization.
718
+ * @param {string} text
719
+ * @returns {string}
720
+ */
721
+ export function text_collapse(text) {
722
+ let deferred2_0;
723
+ let deferred2_1;
724
+ try {
725
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
726
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
727
+ const len0 = WASM_VECTOR_LEN;
728
+ wasm.text_collapse(retptr, ptr0, len0);
729
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
730
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
731
+ deferred2_0 = r0;
732
+ deferred2_1 = r1;
733
+ return getStringFromWasm0(r0, r1);
734
+ } finally {
735
+ wasm.__wbindgen_add_to_stack_pointer(16);
736
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
737
+ }
738
+ }
739
+
740
+ /**
741
+ * Remove newlines and collapse whitespace to single spaces.
742
+ *
743
+ * Converts multi-line text into a single normalized line.
744
+ * @param {string} text
745
+ * @returns {string}
746
+ */
747
+ export function text_remove_newlines(text) {
748
+ let deferred2_0;
749
+ let deferred2_1;
750
+ try {
751
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
752
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
753
+ const len0 = WASM_VECTOR_LEN;
754
+ wasm.text_remove_newlines(retptr, ptr0, len0);
755
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
756
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
757
+ deferred2_0 = r0;
758
+ deferred2_1 = r1;
759
+ return getStringFromWasm0(r0, r1);
760
+ } finally {
761
+ wasm.__wbindgen_add_to_stack_pointer(16);
762
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
763
+ }
764
+ }
765
+
766
+ /**
767
+ * Trim text so its UTF-8 encoded size does not exceed `nbytes`.
768
+ *
769
+ * Multi-byte characters that would be split are dropped entirely.
770
+ * Leading/trailing whitespace is stripped from the result.
771
+ * @param {string} text
772
+ * @param {number} nbytes
773
+ * @returns {string}
774
+ */
775
+ export function text_trim(text, nbytes) {
776
+ let deferred2_0;
777
+ let deferred2_1;
778
+ try {
779
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
780
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
781
+ const len0 = WASM_VECTOR_LEN;
782
+ wasm.text_trim(retptr, ptr0, len0, nbytes);
783
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
784
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
785
+ deferred2_0 = r0;
786
+ deferred2_1 = r1;
787
+ return getStringFromWasm0(r0, r1);
788
+ } finally {
789
+ wasm.__wbindgen_add_to_stack_pointer(16);
790
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
791
+ }
792
+ }
793
+
794
+ function __wbg_get_imports() {
795
+ const import0 = {
796
+ __proto__: null,
797
+ __wbg_Error_ecbf49c1b9d07c30: function(arg0, arg1) {
798
+ const ret = Error(getStringFromWasm0(arg0, arg1));
799
+ return addHeapObject(ret);
800
+ },
801
+ __wbg_Number_7da99b0afe51b89a: function(arg0) {
802
+ const ret = Number(getObject(arg0));
803
+ return ret;
804
+ },
805
+ __wbg_String_8564e559799eccda: function(arg0, arg1) {
806
+ const ret = String(getObject(arg1));
807
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
808
+ const len1 = WASM_VECTOR_LEN;
809
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
810
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
811
+ },
812
+ __wbg___wbindgen_boolean_get_4a348b369b009243: function(arg0) {
813
+ const v = getObject(arg0);
814
+ const ret = typeof(v) === 'boolean' ? v : undefined;
815
+ return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
816
+ },
817
+ __wbg___wbindgen_debug_string_43c7ccb034739216: function(arg0, arg1) {
818
+ const ret = debugString(getObject(arg1));
819
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
820
+ const len1 = WASM_VECTOR_LEN;
821
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
822
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
823
+ },
824
+ __wbg___wbindgen_is_function_18bea6e84080c016: function(arg0) {
825
+ const ret = typeof(getObject(arg0)) === 'function';
826
+ return ret;
827
+ },
828
+ __wbg___wbindgen_is_object_8d3fac158b36498d: function(arg0) {
829
+ const val = getObject(arg0);
830
+ const ret = typeof(val) === 'object' && val !== null;
831
+ return ret;
832
+ },
833
+ __wbg___wbindgen_jsval_loose_eq_1a2067dfb025b5ec: function(arg0, arg1) {
834
+ const ret = getObject(arg0) == getObject(arg1);
835
+ return ret;
836
+ },
837
+ __wbg___wbindgen_number_get_eed4462ef92e1bed: function(arg0, arg1) {
838
+ const obj = getObject(arg1);
839
+ const ret = typeof(obj) === 'number' ? obj : undefined;
840
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
841
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
842
+ },
843
+ __wbg___wbindgen_string_get_d09f733449cbf7a2: function(arg0, arg1) {
844
+ const obj = getObject(arg1);
845
+ const ret = typeof(obj) === 'string' ? obj : undefined;
846
+ var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
847
+ var len1 = WASM_VECTOR_LEN;
848
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
849
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
850
+ },
851
+ __wbg___wbindgen_throw_df03e93053e0f4bc: function(arg0, arg1) {
852
+ throw new Error(getStringFromWasm0(arg0, arg1));
853
+ },
854
+ __wbg_call_df7a43aecab856a8: function() { return handleError(function (arg0, arg1) {
855
+ const ret = getObject(arg0).call(getObject(arg1));
856
+ return addHeapObject(ret);
857
+ }, arguments); },
858
+ __wbg_done_0ad70482cae88a68: function(arg0) {
859
+ const ret = getObject(arg0).done;
860
+ return ret;
861
+ },
862
+ __wbg_get_6f5cf69c8f3f094a: function() { return handleError(function (arg0, arg1) {
863
+ const ret = Reflect.get(getObject(arg0), getObject(arg1));
864
+ return addHeapObject(ret);
865
+ }, arguments); },
866
+ __wbg_get_unchecked_3de5bfaaea65f86b: function(arg0, arg1) {
867
+ const ret = getObject(arg0)[arg1 >>> 0];
868
+ return addHeapObject(ret);
869
+ },
870
+ __wbg_instanceof_ArrayBuffer_d8e4e51f1cf7287a: function(arg0) {
871
+ let result;
872
+ try {
873
+ result = getObject(arg0) instanceof ArrayBuffer;
874
+ } catch (_) {
875
+ result = false;
876
+ }
877
+ const ret = result;
878
+ return ret;
879
+ },
880
+ __wbg_instanceof_Uint8Array_6e48d83da6091cc8: function(arg0) {
881
+ let result;
882
+ try {
883
+ result = getObject(arg0) instanceof Uint8Array;
884
+ } catch (_) {
885
+ result = false;
886
+ }
887
+ const ret = result;
888
+ return ret;
889
+ },
890
+ __wbg_isArray_2efa5973cef6ec32: function(arg0) {
891
+ const ret = Array.isArray(getObject(arg0));
892
+ return ret;
893
+ },
894
+ __wbg_isSafeInteger_6709fb28be12d738: function(arg0) {
895
+ const ret = Number.isSafeInteger(getObject(arg0));
896
+ return ret;
897
+ },
898
+ __wbg_iterator_e77d2b7575cca5a7: function() {
899
+ const ret = Symbol.iterator;
900
+ return addHeapObject(ret);
901
+ },
902
+ __wbg_length_00dd7227fd4626ad: function(arg0) {
903
+ const ret = getObject(arg0).length;
904
+ return ret;
905
+ },
906
+ __wbg_length_5e07cf181b2745fb: function(arg0) {
907
+ const ret = getObject(arg0).length;
908
+ return ret;
909
+ },
910
+ __wbg_new_66075f8c2ea6575e: function() {
911
+ const ret = new Array();
912
+ return addHeapObject(ret);
913
+ },
914
+ __wbg_new_a0479da6258a0d71: function(arg0) {
915
+ const ret = new Uint8Array(getObject(arg0));
916
+ return addHeapObject(ret);
917
+ },
918
+ __wbg_next_5428439dfc1d0362: function() { return handleError(function (arg0) {
919
+ const ret = getObject(arg0).next();
920
+ return addHeapObject(ret);
921
+ }, arguments); },
922
+ __wbg_next_d314789a105729f3: function(arg0) {
923
+ const ret = getObject(arg0).next;
924
+ return addHeapObject(ret);
925
+ },
926
+ __wbg_prototypesetcall_d1a7133bc8d83aa9: function(arg0, arg1, arg2) {
927
+ Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
928
+ },
929
+ __wbg_set_7bf9e2df46e7632c: function(arg0, arg1, arg2) {
930
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
931
+ },
932
+ __wbg_value_414b42ce7b3eca22: function(arg0) {
933
+ const ret = getObject(arg0).value;
934
+ return addHeapObject(ret);
935
+ },
936
+ __wbindgen_cast_0000000000000001: function(arg0) {
937
+ // Cast intrinsic for `F64 -> Externref`.
938
+ const ret = arg0;
939
+ return addHeapObject(ret);
940
+ },
941
+ __wbindgen_cast_0000000000000002: function(arg0, arg1) {
942
+ // Cast intrinsic for `Ref(String) -> Externref`.
943
+ const ret = getStringFromWasm0(arg0, arg1);
944
+ return addHeapObject(ret);
945
+ },
946
+ __wbindgen_object_drop_ref: function(arg0) {
947
+ takeObject(arg0);
948
+ },
949
+ };
950
+ return {
951
+ __proto__: null,
952
+ "./iscc_wasm_bg.js": import0,
953
+ };
954
+ }
955
+
956
+ const DataHasherFinalization = (typeof FinalizationRegistry === 'undefined')
957
+ ? { register: () => {}, unregister: () => {} }
958
+ : new FinalizationRegistry(ptr => wasm.__wbg_datahasher_free(ptr >>> 0, 1));
959
+ const InstanceHasherFinalization = (typeof FinalizationRegistry === 'undefined')
960
+ ? { register: () => {}, unregister: () => {} }
961
+ : new FinalizationRegistry(ptr => wasm.__wbg_instancehasher_free(ptr >>> 0, 1));
962
+
963
+ function addHeapObject(obj) {
964
+ if (heap_next === heap.length) heap.push(heap.length + 1);
965
+ const idx = heap_next;
966
+ heap_next = heap[idx];
967
+
968
+ heap[idx] = obj;
969
+ return idx;
970
+ }
971
+
972
+ function debugString(val) {
973
+ // primitive types
974
+ const type = typeof val;
975
+ if (type == 'number' || type == 'boolean' || val == null) {
976
+ return `${val}`;
977
+ }
978
+ if (type == 'string') {
979
+ return `"${val}"`;
980
+ }
981
+ if (type == 'symbol') {
982
+ const description = val.description;
983
+ if (description == null) {
984
+ return 'Symbol';
985
+ } else {
986
+ return `Symbol(${description})`;
987
+ }
988
+ }
989
+ if (type == 'function') {
990
+ const name = val.name;
991
+ if (typeof name == 'string' && name.length > 0) {
992
+ return `Function(${name})`;
993
+ } else {
994
+ return 'Function';
995
+ }
996
+ }
997
+ // objects
998
+ if (Array.isArray(val)) {
999
+ const length = val.length;
1000
+ let debug = '[';
1001
+ if (length > 0) {
1002
+ debug += debugString(val[0]);
1003
+ }
1004
+ for(let i = 1; i < length; i++) {
1005
+ debug += ', ' + debugString(val[i]);
1006
+ }
1007
+ debug += ']';
1008
+ return debug;
1009
+ }
1010
+ // Test for built-in
1011
+ const builtInMatches = /\[object ([^\]]+)\]/.exec(toString.call(val));
1012
+ let className;
1013
+ if (builtInMatches && builtInMatches.length > 1) {
1014
+ className = builtInMatches[1];
1015
+ } else {
1016
+ // Failed to match the standard '[object ClassName]'
1017
+ return toString.call(val);
1018
+ }
1019
+ if (className == 'Object') {
1020
+ // we're a user defined class or Object
1021
+ // JSON.stringify avoids problems with cycles, and is generally much
1022
+ // easier than looping through ownProperties of `val`.
1023
+ try {
1024
+ return 'Object(' + JSON.stringify(val) + ')';
1025
+ } catch (_) {
1026
+ return 'Object';
1027
+ }
1028
+ }
1029
+ // errors
1030
+ if (val instanceof Error) {
1031
+ return `${val.name}: ${val.message}\n${val.stack}`;
1032
+ }
1033
+ // TODO we could test for more things here, like `Set`s and `Map`s.
1034
+ return className;
1035
+ }
1036
+
1037
+ function dropObject(idx) {
1038
+ if (idx < 1028) return;
1039
+ heap[idx] = heap_next;
1040
+ heap_next = idx;
1041
+ }
1042
+
1043
+ function getArrayJsValueFromWasm0(ptr, len) {
1044
+ ptr = ptr >>> 0;
1045
+ const mem = getDataViewMemory0();
1046
+ const result = [];
1047
+ for (let i = ptr; i < ptr + 4 * len; i += 4) {
1048
+ result.push(takeObject(mem.getUint32(i, true)));
1049
+ }
1050
+ return result;
1051
+ }
1052
+
1053
+ function getArrayU8FromWasm0(ptr, len) {
1054
+ ptr = ptr >>> 0;
1055
+ return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);
1056
+ }
1057
+
1058
+ let cachedDataViewMemory0 = null;
1059
+ function getDataViewMemory0() {
1060
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
1061
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
1062
+ }
1063
+ return cachedDataViewMemory0;
1064
+ }
1065
+
1066
+ function getStringFromWasm0(ptr, len) {
1067
+ ptr = ptr >>> 0;
1068
+ return decodeText(ptr, len);
1069
+ }
1070
+
1071
+ let cachedUint32ArrayMemory0 = null;
1072
+ function getUint32ArrayMemory0() {
1073
+ if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
1074
+ cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
1075
+ }
1076
+ return cachedUint32ArrayMemory0;
1077
+ }
1078
+
1079
+ let cachedUint8ArrayMemory0 = null;
1080
+ function getUint8ArrayMemory0() {
1081
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
1082
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
1083
+ }
1084
+ return cachedUint8ArrayMemory0;
1085
+ }
1086
+
1087
+ function getObject(idx) { return heap[idx]; }
1088
+
1089
+ function handleError(f, args) {
1090
+ try {
1091
+ return f.apply(this, args);
1092
+ } catch (e) {
1093
+ wasm.__wbindgen_export3(addHeapObject(e));
1094
+ }
1095
+ }
1096
+
1097
+ let heap = new Array(1024).fill(undefined);
1098
+ heap.push(undefined, null, true, false);
1099
+
1100
+ let heap_next = heap.length;
1101
+
1102
+ function isLikeNone(x) {
1103
+ return x === undefined || x === null;
1104
+ }
1105
+
1106
+ function passArray32ToWasm0(arg, malloc) {
1107
+ const ptr = malloc(arg.length * 4, 4) >>> 0;
1108
+ getUint32ArrayMemory0().set(arg, ptr / 4);
1109
+ WASM_VECTOR_LEN = arg.length;
1110
+ return ptr;
1111
+ }
1112
+
1113
+ function passArray8ToWasm0(arg, malloc) {
1114
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
1115
+ getUint8ArrayMemory0().set(arg, ptr / 1);
1116
+ WASM_VECTOR_LEN = arg.length;
1117
+ return ptr;
1118
+ }
1119
+
1120
+ function passStringToWasm0(arg, malloc, realloc) {
1121
+ if (realloc === undefined) {
1122
+ const buf = cachedTextEncoder.encode(arg);
1123
+ const ptr = malloc(buf.length, 1) >>> 0;
1124
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
1125
+ WASM_VECTOR_LEN = buf.length;
1126
+ return ptr;
1127
+ }
1128
+
1129
+ let len = arg.length;
1130
+ let ptr = malloc(len, 1) >>> 0;
1131
+
1132
+ const mem = getUint8ArrayMemory0();
1133
+
1134
+ let offset = 0;
1135
+
1136
+ for (; offset < len; offset++) {
1137
+ const code = arg.charCodeAt(offset);
1138
+ if (code > 0x7F) break;
1139
+ mem[ptr + offset] = code;
1140
+ }
1141
+ if (offset !== len) {
1142
+ if (offset !== 0) {
1143
+ arg = arg.slice(offset);
1144
+ }
1145
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
1146
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
1147
+ const ret = cachedTextEncoder.encodeInto(arg, view);
1148
+
1149
+ offset += ret.written;
1150
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
1151
+ }
1152
+
1153
+ WASM_VECTOR_LEN = offset;
1154
+ return ptr;
1155
+ }
1156
+
1157
+ function takeObject(idx) {
1158
+ const ret = getObject(idx);
1159
+ dropObject(idx);
1160
+ return ret;
1161
+ }
1162
+
1163
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
1164
+ cachedTextDecoder.decode();
1165
+ const MAX_SAFARI_DECODE_BYTES = 2146435072;
1166
+ let numBytesDecoded = 0;
1167
+ function decodeText(ptr, len) {
1168
+ numBytesDecoded += len;
1169
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
1170
+ cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
1171
+ cachedTextDecoder.decode();
1172
+ numBytesDecoded = len;
1173
+ }
1174
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
1175
+ }
1176
+
1177
+ const cachedTextEncoder = new TextEncoder();
1178
+
1179
+ if (!('encodeInto' in cachedTextEncoder)) {
1180
+ cachedTextEncoder.encodeInto = function (arg, view) {
1181
+ const buf = cachedTextEncoder.encode(arg);
1182
+ view.set(buf);
1183
+ return {
1184
+ read: arg.length,
1185
+ written: buf.length
1186
+ };
1187
+ };
1188
+ }
1189
+
1190
+ let WASM_VECTOR_LEN = 0;
1191
+
1192
+ let wasmModule, wasm;
1193
+ function __wbg_finalize_init(instance, module) {
1194
+ wasm = instance.exports;
1195
+ wasmModule = module;
1196
+ cachedDataViewMemory0 = null;
1197
+ cachedUint32ArrayMemory0 = null;
1198
+ cachedUint8ArrayMemory0 = null;
1199
+ return wasm;
1200
+ }
1201
+
1202
+ async function __wbg_load(module, imports) {
1203
+ if (typeof Response === 'function' && module instanceof Response) {
1204
+ if (typeof WebAssembly.instantiateStreaming === 'function') {
1205
+ try {
1206
+ return await WebAssembly.instantiateStreaming(module, imports);
1207
+ } catch (e) {
1208
+ const validResponse = module.ok && expectedResponseType(module.type);
1209
+
1210
+ if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
1211
+ console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e);
1212
+
1213
+ } else { throw e; }
1214
+ }
1215
+ }
1216
+
1217
+ const bytes = await module.arrayBuffer();
1218
+ return await WebAssembly.instantiate(bytes, imports);
1219
+ } else {
1220
+ const instance = await WebAssembly.instantiate(module, imports);
1221
+
1222
+ if (instance instanceof WebAssembly.Instance) {
1223
+ return { instance, module };
1224
+ } else {
1225
+ return instance;
1226
+ }
1227
+ }
1228
+
1229
+ function expectedResponseType(type) {
1230
+ switch (type) {
1231
+ case 'basic': case 'cors': case 'default': return true;
1232
+ }
1233
+ return false;
1234
+ }
1235
+ }
1236
+
1237
+ function initSync(module) {
1238
+ if (wasm !== undefined) return wasm;
1239
+
1240
+
1241
+ if (module !== undefined) {
1242
+ if (Object.getPrototypeOf(module) === Object.prototype) {
1243
+ ({module} = module)
1244
+ } else {
1245
+ console.warn('using deprecated parameters for `initSync()`; pass a single object instead')
1246
+ }
1247
+ }
1248
+
1249
+ const imports = __wbg_get_imports();
1250
+ if (!(module instanceof WebAssembly.Module)) {
1251
+ module = new WebAssembly.Module(module);
1252
+ }
1253
+ const instance = new WebAssembly.Instance(module, imports);
1254
+ return __wbg_finalize_init(instance, module);
1255
+ }
1256
+
1257
+ async function __wbg_init(module_or_path) {
1258
+ if (wasm !== undefined) return wasm;
1259
+
1260
+
1261
+ if (module_or_path !== undefined) {
1262
+ if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
1263
+ ({module_or_path} = module_or_path)
1264
+ } else {
1265
+ console.warn('using deprecated parameters for the initialization function; pass a single object instead')
1266
+ }
1267
+ }
1268
+
1269
+ if (module_or_path === undefined) {
1270
+ module_or_path = new URL('iscc_wasm_bg.wasm', import.meta.url);
1271
+ }
1272
+ const imports = __wbg_get_imports();
1273
+
1274
+ if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {
1275
+ module_or_path = fetch(module_or_path);
1276
+ }
1277
+
1278
+ const { instance, module } = await __wbg_load(await module_or_path, imports);
1279
+
1280
+ return __wbg_finalize_init(instance, module);
1281
+ }
1282
+
1283
+ export { initSync, __wbg_init as default };