@iscc/wasm 0.4.0 → 0.6.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
@@ -65,6 +65,13 @@ All code generators return ISCC strings directly.
65
65
  - **Streaming:** `DataHasher`, `InstanceHasher` classes for incremental processing
66
66
  - **Diagnostics:** `conformance_selftest`
67
67
 
68
+ ## Engine Requirements
69
+
70
+ The published package is compiled with [WebAssembly SIMD](https://webassembly.org/features/)
71
+ (`simd128`) so BLAKE3 uses its SIMD backend. It requires an engine with WASM SIMD support: all
72
+ evergreen browsers (Chrome 91+, Firefox 89+, Safari 16.4+) and Node.js 16.4+. Engines without WASM
73
+ SIMD fail at `WebAssembly.instantiate` with a `CompileError`.
74
+
68
75
  ## Links
69
76
 
70
77
  - [Documentation](https://lib.iscc.codes)
package/iscc_wasm.d.ts CHANGED
@@ -104,6 +104,37 @@ export function META_TRIM_META(): number;
104
104
  */
105
105
  export function META_TRIM_NAME(): number;
106
106
 
107
+ /**
108
+ * Streaming composite ISCC-CODE (Sum) generator.
109
+ *
110
+ * Runs the Data-Code (CDC/MinHash) and Instance-Code (BLAKE3) algorithms in a
111
+ * single pass over the input, then composes the final ISCC-CODE. Produces
112
+ * results identical to `gen_sum_code_v0` for the same byte stream, but lets
113
+ * callers feed data in chunks. Follows the
114
+ * `new() → update() → finalize()` pattern.
115
+ */
116
+ export class SumHasher {
117
+ free(): void;
118
+ [Symbol.dispose](): void;
119
+ /**
120
+ * Consume the hasher and produce a composite ISCC-CODE result.
121
+ *
122
+ * After calling `finalize`, subsequent calls to `update` or `finalize`
123
+ * will throw. Defaults: `bits` 64, `wide` false, `add_units` false. When
124
+ * `add_units` is `true`, the result includes the individual Data-Code and
125
+ * Instance-Code ISCC strings.
126
+ */
127
+ finalize(bits?: number | null, wide?: boolean | null, add_units?: boolean | null): WasmSumCodeResult;
128
+ /**
129
+ * Create a new `SumHasher`.
130
+ */
131
+ constructor();
132
+ /**
133
+ * Push data into the hasher.
134
+ */
135
+ update(data: Uint8Array): void;
136
+ }
137
+
107
138
  /**
108
139
  * Sliding window width for text n-gram generation.
109
140
  */
@@ -226,6 +257,23 @@ export function gen_instance_code_v0(data: Uint8Array, bits?: number | null): st
226
257
  */
227
258
  export function gen_iscc_code_v0(codes: any, wide?: boolean | null): string;
228
259
 
260
+ /**
261
+ * Generate an ISCC-IDv1 from a timestamp and a HUB-ID (experimental).
262
+ *
263
+ * Packs a 52-bit microsecond UTC `timestamp` into the high bits and a 12-bit
264
+ * `hub_id` (0-4095) into the low bits, encoding the result as an ISCC-ID unit
265
+ * with `realm` (0 = testnet, 1 = mainnet) as SubType and Version `V1`.
266
+ *
267
+ * All three parameters are JS `number`s (valid `timestamp` values are `< 2^52`,
268
+ * exactly representable in `f64`). Throws if any parameter is non-finite,
269
+ * non-integral, or negative, or if `timestamp >= 2^52`, `hub_id >= 2^12`, or
270
+ * `realm` is not `0` or `1`.
271
+ *
272
+ * **Experimental:** the ISCC-IDv1 format is not yet part of ISO 24138 and may
273
+ * change. There is no dedicated decoder — use `iscc_decode` to decode.
274
+ */
275
+ export function gen_iscc_id_v1(timestamp: number, hub_id: number, realm: number): string;
276
+
229
277
  /**
230
278
  * Generate a Meta-Code from name and optional metadata.
231
279
  *
@@ -374,6 +422,7 @@ export interface InitOutput {
374
422
  readonly __wbg_set_wasmsumcoderesult_filesize: (a: number, b: number) => void;
375
423
  readonly __wbg_set_wasmsumcoderesult_iscc: (a: number, b: number, c: number) => void;
376
424
  readonly __wbg_set_wasmsumcoderesult_units: (a: number, b: number, c: number) => void;
425
+ readonly __wbg_sumhasher_free: (a: number, b: number) => void;
377
426
  readonly __wbg_wasmsumcoderesult_free: (a: number, b: number) => void;
378
427
  readonly alg_cdc_chunks: (a: number, b: number, c: number, d: number, e: number) => void;
379
428
  readonly alg_minhash_256: (a: number, b: number, c: number) => void;
@@ -389,6 +438,7 @@ export interface InitOutput {
389
438
  readonly gen_image_code_v0: (a: number, b: number, c: number, d: number) => void;
390
439
  readonly gen_instance_code_v0: (a: number, b: number, c: number, d: number) => void;
391
440
  readonly gen_iscc_code_v0: (a: number, b: number, c: number) => void;
441
+ readonly gen_iscc_id_v1: (a: number, b: number, c: number, d: number) => void;
392
442
  readonly gen_meta_code_v0: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
393
443
  readonly gen_mixed_code_v0: (a: number, b: number, c: number) => void;
394
444
  readonly gen_sum_code_v0: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
@@ -402,6 +452,9 @@ export interface InitOutput {
402
452
  readonly json_to_data_url: (a: number, b: number, c: number) => void;
403
453
  readonly sliding_window: (a: number, b: number, c: number, d: number) => void;
404
454
  readonly soft_hash_video_v0: (a: number, b: number, c: number) => void;
455
+ readonly sumhasher_finalize: (a: number, b: number, c: number, d: number, e: number) => void;
456
+ readonly sumhasher_new: () => number;
457
+ readonly sumhasher_update: (a: number, b: number, c: number, d: number) => void;
405
458
  readonly text_clean: (a: number, b: number, c: number) => void;
406
459
  readonly text_collapse: (a: number, b: number, c: number) => void;
407
460
  readonly text_remove_newlines: (a: number, b: number, c: number) => void;
package/iscc_wasm.js CHANGED
@@ -31,7 +31,7 @@ export class DataHasher {
31
31
  let deferred2_1;
32
32
  try {
33
33
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
34
- wasm.datahasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
34
+ wasm.datahasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
35
35
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
36
36
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
37
37
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -55,7 +55,7 @@ export class DataHasher {
55
55
  */
56
56
  constructor() {
57
57
  const ret = wasm.datahasher_new();
58
- this.__wbg_ptr = ret >>> 0;
58
+ this.__wbg_ptr = ret;
59
59
  DataHasherFinalization.register(this, this.__wbg_ptr, this);
60
60
  return this;
61
61
  }
@@ -121,7 +121,7 @@ export class InstanceHasher {
121
121
  let deferred2_1;
122
122
  try {
123
123
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
124
- wasm.instancehasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
124
+ wasm.instancehasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
125
125
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
126
126
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
127
127
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -145,7 +145,7 @@ export class InstanceHasher {
145
145
  */
146
146
  constructor() {
147
147
  const ret = wasm.instancehasher_new();
148
- this.__wbg_ptr = ret >>> 0;
148
+ this.__wbg_ptr = ret;
149
149
  InstanceHasherFinalization.register(this, this.__wbg_ptr, this);
150
150
  return this;
151
151
  }
@@ -176,7 +176,6 @@ if (Symbol.dispose) InstanceHasher.prototype[Symbol.dispose] = InstanceHasher.pr
176
176
  */
177
177
  export class IsccDecodeResult {
178
178
  static __wrap(ptr) {
179
- ptr = ptr >>> 0;
180
179
  const obj = Object.create(IsccDecodeResult.prototype);
181
180
  obj.__wbg_ptr = ptr;
182
181
  IsccDecodeResultFinalization.register(obj, obj.__wbg_ptr, obj);
@@ -308,6 +307,84 @@ export function META_TRIM_NAME() {
308
307
  return ret >>> 0;
309
308
  }
310
309
 
310
+ /**
311
+ * Streaming composite ISCC-CODE (Sum) generator.
312
+ *
313
+ * Runs the Data-Code (CDC/MinHash) and Instance-Code (BLAKE3) algorithms in a
314
+ * single pass over the input, then composes the final ISCC-CODE. Produces
315
+ * results identical to `gen_sum_code_v0` for the same byte stream, but lets
316
+ * callers feed data in chunks. Follows the
317
+ * `new() → update() → finalize()` pattern.
318
+ */
319
+ export class SumHasher {
320
+ __destroy_into_raw() {
321
+ const ptr = this.__wbg_ptr;
322
+ this.__wbg_ptr = 0;
323
+ SumHasherFinalization.unregister(this);
324
+ return ptr;
325
+ }
326
+ free() {
327
+ const ptr = this.__destroy_into_raw();
328
+ wasm.__wbg_sumhasher_free(ptr, 0);
329
+ }
330
+ /**
331
+ * Consume the hasher and produce a composite ISCC-CODE result.
332
+ *
333
+ * After calling `finalize`, subsequent calls to `update` or `finalize`
334
+ * will throw. Defaults: `bits` 64, `wide` false, `add_units` false. When
335
+ * `add_units` is `true`, the result includes the individual Data-Code and
336
+ * Instance-Code ISCC strings.
337
+ * @param {number | null} [bits]
338
+ * @param {boolean | null} [wide]
339
+ * @param {boolean | null} [add_units]
340
+ * @returns {WasmSumCodeResult}
341
+ */
342
+ finalize(bits, wide, add_units) {
343
+ try {
344
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
345
+ wasm.sumhasher_finalize(retptr, this.__wbg_ptr, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0, isLikeNone(wide) ? 0xFFFFFF : wide ? 1 : 0, isLikeNone(add_units) ? 0xFFFFFF : add_units ? 1 : 0);
346
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
347
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
348
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
349
+ if (r2) {
350
+ throw takeObject(r1);
351
+ }
352
+ return WasmSumCodeResult.__wrap(r0);
353
+ } finally {
354
+ wasm.__wbindgen_add_to_stack_pointer(16);
355
+ }
356
+ }
357
+ /**
358
+ * Create a new `SumHasher`.
359
+ */
360
+ constructor() {
361
+ const ret = wasm.sumhasher_new();
362
+ this.__wbg_ptr = ret;
363
+ SumHasherFinalization.register(this, this.__wbg_ptr, this);
364
+ return this;
365
+ }
366
+ /**
367
+ * Push data into the hasher.
368
+ * @param {Uint8Array} data
369
+ */
370
+ update(data) {
371
+ try {
372
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
373
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
374
+ const len0 = WASM_VECTOR_LEN;
375
+ wasm.sumhasher_update(retptr, this.__wbg_ptr, ptr0, len0);
376
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
377
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
378
+ if (r1) {
379
+ throw takeObject(r0);
380
+ }
381
+ } finally {
382
+ wasm.__wbindgen_add_to_stack_pointer(16);
383
+ }
384
+ }
385
+ }
386
+ if (Symbol.dispose) SumHasher.prototype[Symbol.dispose] = SumHasher.prototype.free;
387
+
311
388
  /**
312
389
  * Sliding window width for text n-gram generation.
313
390
  * @returns {number}
@@ -322,7 +399,6 @@ export function TEXT_NGRAM_SIZE() {
322
399
  */
323
400
  export class WasmSumCodeResult {
324
401
  static __wrap(ptr) {
325
- ptr = ptr >>> 0;
326
402
  const obj = Object.create(WasmSumCodeResult.prototype);
327
403
  obj.__wbg_ptr = ptr;
328
404
  WasmSumCodeResultFinalization.register(obj, obj.__wbg_ptr, obj);
@@ -459,7 +535,7 @@ export function alg_cdc_chunks(data, utf32, avg_chunk_size) {
459
535
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
460
536
  const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
461
537
  const len0 = WASM_VECTOR_LEN;
462
- wasm.alg_cdc_chunks(retptr, ptr0, len0, utf32, isLikeNone(avg_chunk_size) ? 0x100000001 : (avg_chunk_size) >>> 0);
538
+ wasm.alg_cdc_chunks(retptr, ptr0, len0, utf32, isLikeNone(avg_chunk_size) ? Number.MAX_SAFE_INTEGER : (avg_chunk_size) >>> 0);
463
539
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
464
540
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
465
541
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -616,7 +692,7 @@ export function gen_audio_code_v0(cv, bits) {
616
692
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
617
693
  const ptr0 = passArray32ToWasm0(cv, wasm.__wbindgen_export);
618
694
  const len0 = WASM_VECTOR_LEN;
619
- wasm.gen_audio_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
695
+ wasm.gen_audio_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
620
696
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
621
697
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
622
698
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -652,7 +728,7 @@ export function gen_data_code_v0(data, bits) {
652
728
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
653
729
  const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
654
730
  const len0 = WASM_VECTOR_LEN;
655
- wasm.gen_data_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
731
+ wasm.gen_data_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
656
732
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
657
733
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
658
734
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -688,7 +764,7 @@ export function gen_image_code_v0(pixels, bits) {
688
764
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
689
765
  const ptr0 = passArray8ToWasm0(pixels, wasm.__wbindgen_export);
690
766
  const len0 = WASM_VECTOR_LEN;
691
- wasm.gen_image_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
767
+ wasm.gen_image_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
692
768
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
693
769
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
694
770
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -724,7 +800,7 @@ export function gen_instance_code_v0(data, bits) {
724
800
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
725
801
  const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
726
802
  const len0 = WASM_VECTOR_LEN;
727
- wasm.gen_instance_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
803
+ wasm.gen_instance_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
728
804
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
729
805
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
730
806
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -778,6 +854,50 @@ export function gen_iscc_code_v0(codes, wide) {
778
854
  }
779
855
  }
780
856
 
857
+ /**
858
+ * Generate an ISCC-IDv1 from a timestamp and a HUB-ID (experimental).
859
+ *
860
+ * Packs a 52-bit microsecond UTC `timestamp` into the high bits and a 12-bit
861
+ * `hub_id` (0-4095) into the low bits, encoding the result as an ISCC-ID unit
862
+ * with `realm` (0 = testnet, 1 = mainnet) as SubType and Version `V1`.
863
+ *
864
+ * All three parameters are JS `number`s (valid `timestamp` values are `< 2^52`,
865
+ * exactly representable in `f64`). Throws if any parameter is non-finite,
866
+ * non-integral, or negative, or if `timestamp >= 2^52`, `hub_id >= 2^12`, or
867
+ * `realm` is not `0` or `1`.
868
+ *
869
+ * **Experimental:** the ISCC-IDv1 format is not yet part of ISO 24138 and may
870
+ * change. There is no dedicated decoder — use `iscc_decode` to decode.
871
+ * @param {number} timestamp
872
+ * @param {number} hub_id
873
+ * @param {number} realm
874
+ * @returns {string}
875
+ */
876
+ export function gen_iscc_id_v1(timestamp, hub_id, realm) {
877
+ let deferred2_0;
878
+ let deferred2_1;
879
+ try {
880
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
881
+ wasm.gen_iscc_id_v1(retptr, timestamp, hub_id, realm);
882
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
883
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
884
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
885
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
886
+ var ptr1 = r0;
887
+ var len1 = r1;
888
+ if (r3) {
889
+ ptr1 = 0; len1 = 0;
890
+ throw takeObject(r2);
891
+ }
892
+ deferred2_0 = ptr1;
893
+ deferred2_1 = len1;
894
+ return getStringFromWasm0(ptr1, len1);
895
+ } finally {
896
+ wasm.__wbindgen_add_to_stack_pointer(16);
897
+ wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
898
+ }
899
+ }
900
+
781
901
  /**
782
902
  * Generate a Meta-Code from name and optional metadata.
783
903
  *
@@ -800,7 +920,7 @@ export function gen_meta_code_v0(name, description, meta, bits) {
800
920
  var len1 = WASM_VECTOR_LEN;
801
921
  var ptr2 = isLikeNone(meta) ? 0 : passStringToWasm0(meta, wasm.__wbindgen_export, wasm.__wbindgen_export2);
802
922
  var len2 = WASM_VECTOR_LEN;
803
- wasm.gen_meta_code_v0(retptr, ptr0, len0, ptr1, len1, ptr2, len2, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
923
+ wasm.gen_meta_code_v0(retptr, ptr0, len0, ptr1, len1, ptr2, len2, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
804
924
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
805
925
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
806
926
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -834,7 +954,7 @@ export function gen_mixed_code_v0(codes, bits) {
834
954
  let deferred2_1;
835
955
  try {
836
956
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
837
- wasm.gen_mixed_code_v0(retptr, addHeapObject(codes), isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
957
+ wasm.gen_mixed_code_v0(retptr, addHeapObject(codes), isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
838
958
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
839
959
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
840
960
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -874,7 +994,7 @@ export function gen_sum_code_v0(data, bits, wide, add_units) {
874
994
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
875
995
  const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
876
996
  const len0 = WASM_VECTOR_LEN;
877
- wasm.gen_sum_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0, isLikeNone(wide) ? 0xFFFFFF : wide ? 1 : 0, isLikeNone(add_units) ? 0xFFFFFF : add_units ? 1 : 0);
997
+ wasm.gen_sum_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0, isLikeNone(wide) ? 0xFFFFFF : wide ? 1 : 0, isLikeNone(add_units) ? 0xFFFFFF : add_units ? 1 : 0);
878
998
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
879
999
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
880
1000
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -903,7 +1023,7 @@ export function gen_text_code_v0(text, bits) {
903
1023
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
904
1024
  const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
905
1025
  const len0 = WASM_VECTOR_LEN;
906
- wasm.gen_text_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
1026
+ wasm.gen_text_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
907
1027
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
908
1028
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
909
1029
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -937,7 +1057,7 @@ export function gen_video_code_v0(frame_sigs, bits) {
937
1057
  let deferred2_1;
938
1058
  try {
939
1059
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
940
- wasm.gen_video_code_v0(retptr, addHeapObject(frame_sigs), isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
1060
+ wasm.gen_video_code_v0(retptr, addHeapObject(frame_sigs), isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
941
1061
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
942
1062
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
943
1063
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -1090,7 +1210,7 @@ export function sliding_window(seq, width) {
1090
1210
  export function soft_hash_video_v0(frame_sigs, bits) {
1091
1211
  try {
1092
1212
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1093
- wasm.soft_hash_video_v0(retptr, addHeapObject(frame_sigs), isLikeNone(bits) ? 0x100000001 : (bits) >>> 0);
1213
+ wasm.soft_hash_video_v0(retptr, addHeapObject(frame_sigs), isLikeNone(bits) ? Number.MAX_SAFE_INTEGER : (bits) >>> 0);
1094
1214
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1095
1215
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1096
1216
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
@@ -1215,15 +1335,14 @@ export function text_trim(text, nbytes) {
1215
1335
  wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);
1216
1336
  }
1217
1337
  }
1218
-
1219
1338
  function __wbg_get_imports() {
1220
1339
  const import0 = {
1221
1340
  __proto__: null,
1222
- __wbg_Error_ecbf49c1b9d07c30: function(arg0, arg1) {
1341
+ __wbg_Error_92b29b0548f8b746: function(arg0, arg1) {
1223
1342
  const ret = Error(getStringFromWasm0(arg0, arg1));
1224
1343
  return addHeapObject(ret);
1225
1344
  },
1226
- __wbg_Number_7da99b0afe51b89a: function(arg0) {
1345
+ __wbg_Number_9a4e0ecb0fa16705: function(arg0) {
1227
1346
  const ret = Number(getObject(arg0));
1228
1347
  return ret;
1229
1348
  },
@@ -1234,38 +1353,38 @@ function __wbg_get_imports() {
1234
1353
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1235
1354
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1236
1355
  },
1237
- __wbg___wbindgen_boolean_get_4a348b369b009243: function(arg0) {
1356
+ __wbg___wbindgen_boolean_get_fa956cfa2d1bd751: function(arg0) {
1238
1357
  const v = getObject(arg0);
1239
1358
  const ret = typeof(v) === 'boolean' ? v : undefined;
1240
1359
  return isLikeNone(ret) ? 0xFFFFFF : ret ? 1 : 0;
1241
1360
  },
1242
- __wbg___wbindgen_debug_string_43c7ccb034739216: function(arg0, arg1) {
1361
+ __wbg___wbindgen_debug_string_c25d447a39f5578f: function(arg0, arg1) {
1243
1362
  const ret = debugString(getObject(arg1));
1244
1363
  const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1245
1364
  const len1 = WASM_VECTOR_LEN;
1246
1365
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1247
1366
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1248
1367
  },
1249
- __wbg___wbindgen_is_function_18bea6e84080c016: function(arg0) {
1368
+ __wbg___wbindgen_is_function_1ff95bcc5517c252: function(arg0) {
1250
1369
  const ret = typeof(getObject(arg0)) === 'function';
1251
1370
  return ret;
1252
1371
  },
1253
- __wbg___wbindgen_is_object_8d3fac158b36498d: function(arg0) {
1372
+ __wbg___wbindgen_is_object_a27215656b807791: function(arg0) {
1254
1373
  const val = getObject(arg0);
1255
1374
  const ret = typeof(val) === 'object' && val !== null;
1256
1375
  return ret;
1257
1376
  },
1258
- __wbg___wbindgen_jsval_loose_eq_1a2067dfb025b5ec: function(arg0, arg1) {
1377
+ __wbg___wbindgen_jsval_loose_eq_db4c3b15f63fc170: function(arg0, arg1) {
1259
1378
  const ret = getObject(arg0) == getObject(arg1);
1260
1379
  return ret;
1261
1380
  },
1262
- __wbg___wbindgen_number_get_eed4462ef92e1bed: function(arg0, arg1) {
1381
+ __wbg___wbindgen_number_get_394265ed1e1b84ee: function(arg0, arg1) {
1263
1382
  const obj = getObject(arg1);
1264
1383
  const ret = typeof(obj) === 'number' ? obj : undefined;
1265
1384
  getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
1266
1385
  getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
1267
1386
  },
1268
- __wbg___wbindgen_string_get_d09f733449cbf7a2: function(arg0, arg1) {
1387
+ __wbg___wbindgen_string_get_b0ca35b86a603356: function(arg0, arg1) {
1269
1388
  const obj = getObject(arg1);
1270
1389
  const ret = typeof(obj) === 'string' ? obj : undefined;
1271
1390
  var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
@@ -1273,26 +1392,26 @@ function __wbg_get_imports() {
1273
1392
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1274
1393
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1275
1394
  },
1276
- __wbg___wbindgen_throw_df03e93053e0f4bc: function(arg0, arg1) {
1395
+ __wbg___wbindgen_throw_344f42d3211c4765: function(arg0, arg1) {
1277
1396
  throw new Error(getStringFromWasm0(arg0, arg1));
1278
1397
  },
1279
- __wbg_call_df7a43aecab856a8: function() { return handleError(function (arg0, arg1) {
1398
+ __wbg_call_8a2dd23819f8a60a: function() { return handleError(function (arg0, arg1) {
1280
1399
  const ret = getObject(arg0).call(getObject(arg1));
1281
1400
  return addHeapObject(ret);
1282
1401
  }, arguments); },
1283
- __wbg_done_0ad70482cae88a68: function(arg0) {
1402
+ __wbg_done_89b2b13e91a60321: function(arg0) {
1284
1403
  const ret = getObject(arg0).done;
1285
1404
  return ret;
1286
1405
  },
1287
- __wbg_get_6f5cf69c8f3f094a: function() { return handleError(function (arg0, arg1) {
1406
+ __wbg_get_c7eb1f358a7654df: function() { return handleError(function (arg0, arg1) {
1288
1407
  const ret = Reflect.get(getObject(arg0), getObject(arg1));
1289
1408
  return addHeapObject(ret);
1290
1409
  }, arguments); },
1291
- __wbg_get_unchecked_3de5bfaaea65f86b: function(arg0, arg1) {
1410
+ __wbg_get_unchecked_6e0ad6d2a41b06f6: function(arg0, arg1) {
1292
1411
  const ret = getObject(arg0)[arg1 >>> 0];
1293
1412
  return addHeapObject(ret);
1294
1413
  },
1295
- __wbg_instanceof_ArrayBuffer_d8e4e51f1cf7287a: function(arg0) {
1414
+ __wbg_instanceof_ArrayBuffer_4480b9e0068a8adb: function(arg0) {
1296
1415
  let result;
1297
1416
  try {
1298
1417
  result = getObject(arg0) instanceof ArrayBuffer;
@@ -1302,7 +1421,7 @@ function __wbg_get_imports() {
1302
1421
  const ret = result;
1303
1422
  return ret;
1304
1423
  },
1305
- __wbg_instanceof_Uint8Array_6e48d83da6091cc8: function(arg0) {
1424
+ __wbg_instanceof_Uint8Array_309b927aaf7a3fc7: function(arg0) {
1306
1425
  let result;
1307
1426
  try {
1308
1427
  result = getObject(arg0) instanceof Uint8Array;
@@ -1312,49 +1431,49 @@ function __wbg_get_imports() {
1312
1431
  const ret = result;
1313
1432
  return ret;
1314
1433
  },
1315
- __wbg_isArray_2efa5973cef6ec32: function(arg0) {
1434
+ __wbg_isArray_0677c962b281d01a: function(arg0) {
1316
1435
  const ret = Array.isArray(getObject(arg0));
1317
1436
  return ret;
1318
1437
  },
1319
- __wbg_isSafeInteger_6709fb28be12d738: function(arg0) {
1438
+ __wbg_isSafeInteger_04f36e4056f1b851: function(arg0) {
1320
1439
  const ret = Number.isSafeInteger(getObject(arg0));
1321
1440
  return ret;
1322
1441
  },
1323
- __wbg_iterator_e77d2b7575cca5a7: function() {
1442
+ __wbg_iterator_6f722e4a93058b71: function() {
1324
1443
  const ret = Symbol.iterator;
1325
1444
  return addHeapObject(ret);
1326
1445
  },
1327
- __wbg_length_00dd7227fd4626ad: function(arg0) {
1446
+ __wbg_length_1f0964f4a5e2c6d8: function(arg0) {
1328
1447
  const ret = getObject(arg0).length;
1329
1448
  return ret;
1330
1449
  },
1331
- __wbg_length_5e07cf181b2745fb: function(arg0) {
1450
+ __wbg_length_370319915dc99107: function(arg0) {
1332
1451
  const ret = getObject(arg0).length;
1333
1452
  return ret;
1334
1453
  },
1335
- __wbg_new_66075f8c2ea6575e: function() {
1454
+ __wbg_new_32b398fb48b6d94a: function() {
1336
1455
  const ret = new Array();
1337
1456
  return addHeapObject(ret);
1338
1457
  },
1339
- __wbg_new_a0479da6258a0d71: function(arg0) {
1458
+ __wbg_new_cd45aabdf6073e84: function(arg0) {
1340
1459
  const ret = new Uint8Array(getObject(arg0));
1341
1460
  return addHeapObject(ret);
1342
1461
  },
1343
- __wbg_next_5428439dfc1d0362: function() { return handleError(function (arg0) {
1344
- const ret = getObject(arg0).next();
1345
- return addHeapObject(ret);
1346
- }, arguments); },
1347
- __wbg_next_d314789a105729f3: function(arg0) {
1462
+ __wbg_next_6dbf2c0ac8cde20f: function(arg0) {
1348
1463
  const ret = getObject(arg0).next;
1349
1464
  return addHeapObject(ret);
1350
1465
  },
1351
- __wbg_prototypesetcall_d1a7133bc8d83aa9: function(arg0, arg1, arg2) {
1466
+ __wbg_next_71f2aa1cb3d1e37e: function() { return handleError(function (arg0) {
1467
+ const ret = getObject(arg0).next();
1468
+ return addHeapObject(ret);
1469
+ }, arguments); },
1470
+ __wbg_prototypesetcall_4770620bbe4688a0: function(arg0, arg1, arg2) {
1352
1471
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), getObject(arg2));
1353
1472
  },
1354
- __wbg_set_7bf9e2df46e7632c: function(arg0, arg1, arg2) {
1473
+ __wbg_set_8a16b38e4805b298: function(arg0, arg1, arg2) {
1355
1474
  getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
1356
1475
  },
1357
- __wbg_value_414b42ce7b3eca22: function(arg0) {
1476
+ __wbg_value_a5d5488a9589444a: function(arg0) {
1358
1477
  const ret = getObject(arg0).value;
1359
1478
  return addHeapObject(ret);
1360
1479
  },
@@ -1380,16 +1499,19 @@ function __wbg_get_imports() {
1380
1499
 
1381
1500
  const DataHasherFinalization = (typeof FinalizationRegistry === 'undefined')
1382
1501
  ? { register: () => {}, unregister: () => {} }
1383
- : new FinalizationRegistry(ptr => wasm.__wbg_datahasher_free(ptr >>> 0, 1));
1502
+ : new FinalizationRegistry(ptr => wasm.__wbg_datahasher_free(ptr, 1));
1384
1503
  const InstanceHasherFinalization = (typeof FinalizationRegistry === 'undefined')
1385
1504
  ? { register: () => {}, unregister: () => {} }
1386
- : new FinalizationRegistry(ptr => wasm.__wbg_instancehasher_free(ptr >>> 0, 1));
1505
+ : new FinalizationRegistry(ptr => wasm.__wbg_instancehasher_free(ptr, 1));
1387
1506
  const IsccDecodeResultFinalization = (typeof FinalizationRegistry === 'undefined')
1388
1507
  ? { register: () => {}, unregister: () => {} }
1389
- : new FinalizationRegistry(ptr => wasm.__wbg_isccdecoderesult_free(ptr >>> 0, 1));
1508
+ : new FinalizationRegistry(ptr => wasm.__wbg_isccdecoderesult_free(ptr, 1));
1509
+ const SumHasherFinalization = (typeof FinalizationRegistry === 'undefined')
1510
+ ? { register: () => {}, unregister: () => {} }
1511
+ : new FinalizationRegistry(ptr => wasm.__wbg_sumhasher_free(ptr, 1));
1390
1512
  const WasmSumCodeResultFinalization = (typeof FinalizationRegistry === 'undefined')
1391
1513
  ? { register: () => {}, unregister: () => {} }
1392
- : new FinalizationRegistry(ptr => wasm.__wbg_wasmsumcoderesult_free(ptr >>> 0, 1));
1514
+ : new FinalizationRegistry(ptr => wasm.__wbg_wasmsumcoderesult_free(ptr, 1));
1393
1515
 
1394
1516
  function addHeapObject(obj) {
1395
1517
  if (heap_next === heap.length) heap.push(heap.length + 1);
@@ -1495,8 +1617,7 @@ function getDataViewMemory0() {
1495
1617
  }
1496
1618
 
1497
1619
  function getStringFromWasm0(ptr, len) {
1498
- ptr = ptr >>> 0;
1499
- return decodeText(ptr, len);
1620
+ return decodeText(ptr >>> 0, len);
1500
1621
  }
1501
1622
 
1502
1623
  let cachedUint32ArrayMemory0 = null;
@@ -1630,8 +1751,9 @@ if (!('encodeInto' in cachedTextEncoder)) {
1630
1751
 
1631
1752
  let WASM_VECTOR_LEN = 0;
1632
1753
 
1633
- let wasmModule, wasm;
1754
+ let wasmModule, wasmInstance, wasm;
1634
1755
  function __wbg_finalize_init(instance, module) {
1756
+ wasmInstance = instance;
1635
1757
  wasm = instance.exports;
1636
1758
  wasmModule = module;
1637
1759
  cachedDataViewMemory0 = null;
package/iscc_wasm_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@iscc/wasm",
3
3
  "type": "module",
4
- "version": "0.4.0",
4
+ "version": "0.6.0",
5
5
  "files": [
6
6
  "iscc_wasm_bg.wasm",
7
7
  "iscc_wasm.js",