@iscc/wasm 0.0.3 → 0.0.4

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
@@ -54,6 +54,7 @@ Both browser and Node.js targets are supported.
54
54
  | `gen_data_code_v0` | Generate a Data-Code from raw bytes |
55
55
  | `gen_instance_code_v0` | Generate an Instance-Code from raw bytes |
56
56
  | `gen_iscc_code_v0` | Generate a composite ISCC-CODE |
57
+ | `gen_sum_code_v0` | Generate an ISCC-SUM from raw bytes |
57
58
 
58
59
  All code generators return ISCC strings directly.
59
60
 
package/iscc_wasm.d.ts CHANGED
@@ -94,6 +94,11 @@ export class IsccDecodeResult {
94
94
  */
95
95
  export function META_TRIM_DESCRIPTION(): number;
96
96
 
97
+ /**
98
+ * Maximum byte length for the meta field payload after decoding.
99
+ */
100
+ export function META_TRIM_META(): number;
101
+
97
102
  /**
98
103
  * Maximum byte length for the name field after trimming.
99
104
  */
@@ -104,6 +109,27 @@ export function META_TRIM_NAME(): number;
104
109
  */
105
110
  export function TEXT_NGRAM_SIZE(): number;
106
111
 
112
+ /**
113
+ * Result of [`gen_sum_code_v0`], containing the composite ISCC-CODE, data hash, and file size.
114
+ */
115
+ export class WasmSumCodeResult {
116
+ private constructor();
117
+ free(): void;
118
+ [Symbol.dispose](): void;
119
+ /**
120
+ * Hex-encoded BLAKE3 multihash (`"1e20..."`) of the data.
121
+ */
122
+ datahash: string;
123
+ /**
124
+ * Byte length of the input data (as `f64` for JS `number` compatibility).
125
+ */
126
+ filesize: number;
127
+ /**
128
+ * Composite ISCC-CODE string (e.g., `"ISCC:KAC..."`).
129
+ */
130
+ iscc: string;
131
+ }
132
+
107
133
  /**
108
134
  * Split data into content-defined chunks using gear rolling hash.
109
135
  *
@@ -201,6 +227,15 @@ export function gen_meta_code_v0(name: string, description?: string | null, meta
201
227
  */
202
228
  export function gen_mixed_code_v0(codes: any, bits?: number | null): string;
203
229
 
230
+ /**
231
+ * Generate a composite ISCC-CODE from raw byte data in a single pass.
232
+ *
233
+ * Feeds both `DataHasher` (CDC/MinHash) and `InstanceHasher` (BLAKE3) from
234
+ * the same byte slice, then composes the final ISCC-CODE via
235
+ * `gen_iscc_code_v0`. WASM-compatible alternative to the file-based core API.
236
+ */
237
+ export function gen_sum_code_v0(data: Uint8Array, bits?: number | null, wide?: boolean | null): WasmSumCodeResult;
238
+
204
239
  /**
205
240
  * Generate a Text-Code from plain text content.
206
241
  *
@@ -297,6 +332,7 @@ export interface InitOutput {
297
332
  readonly memory: WebAssembly.Memory;
298
333
  readonly IO_READ_SIZE: () => number;
299
334
  readonly META_TRIM_DESCRIPTION: () => number;
335
+ readonly META_TRIM_META: () => number;
300
336
  readonly META_TRIM_NAME: () => number;
301
337
  readonly TEXT_NGRAM_SIZE: () => number;
302
338
  readonly __wbg_datahasher_free: (a: number, b: number) => void;
@@ -305,6 +341,9 @@ export interface InitOutput {
305
341
  readonly __wbg_get_isccdecoderesult_maintype: (a: number) => number;
306
342
  readonly __wbg_get_isccdecoderesult_subtype: (a: number) => number;
307
343
  readonly __wbg_get_isccdecoderesult_version: (a: number) => number;
344
+ readonly __wbg_get_wasmsumcoderesult_datahash: (a: number, b: number) => void;
345
+ readonly __wbg_get_wasmsumcoderesult_filesize: (a: number) => number;
346
+ readonly __wbg_get_wasmsumcoderesult_iscc: (a: number, b: number) => void;
308
347
  readonly __wbg_instancehasher_free: (a: number, b: number) => void;
309
348
  readonly __wbg_isccdecoderesult_free: (a: number, b: number) => void;
310
349
  readonly __wbg_set_isccdecoderesult_digest: (a: number, b: number, c: number) => void;
@@ -312,6 +351,10 @@ export interface InitOutput {
312
351
  readonly __wbg_set_isccdecoderesult_maintype: (a: number, b: number) => void;
313
352
  readonly __wbg_set_isccdecoderesult_subtype: (a: number, b: number) => void;
314
353
  readonly __wbg_set_isccdecoderesult_version: (a: number, b: number) => void;
354
+ readonly __wbg_set_wasmsumcoderesult_datahash: (a: number, b: number, c: number) => void;
355
+ readonly __wbg_set_wasmsumcoderesult_filesize: (a: number, b: number) => void;
356
+ readonly __wbg_set_wasmsumcoderesult_iscc: (a: number, b: number, c: number) => void;
357
+ readonly __wbg_wasmsumcoderesult_free: (a: number, b: number) => void;
315
358
  readonly alg_cdc_chunks: (a: number, b: number, c: number, d: number, e: number) => void;
316
359
  readonly alg_minhash_256: (a: number, b: number, c: number) => void;
317
360
  readonly alg_simhash: (a: number, b: number) => void;
@@ -327,6 +370,7 @@ export interface InitOutput {
327
370
  readonly gen_iscc_code_v0: (a: number, b: number, c: number) => void;
328
371
  readonly gen_meta_code_v0: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => void;
329
372
  readonly gen_mixed_code_v0: (a: number, b: number, c: number) => void;
373
+ readonly gen_sum_code_v0: (a: number, b: number, c: number, d: number, e: number) => void;
330
374
  readonly gen_text_code_v0: (a: number, b: number, c: number, d: number) => void;
331
375
  readonly gen_video_code_v0: (a: number, b: number, c: number) => void;
332
376
  readonly instancehasher_finalize: (a: number, b: number, c: number) => void;
package/iscc_wasm.js CHANGED
@@ -290,6 +290,15 @@ export function META_TRIM_DESCRIPTION() {
290
290
  return ret >>> 0;
291
291
  }
292
292
 
293
+ /**
294
+ * Maximum byte length for the meta field payload after decoding.
295
+ * @returns {number}
296
+ */
297
+ export function META_TRIM_META() {
298
+ const ret = wasm.META_TRIM_META();
299
+ return ret >>> 0;
300
+ }
301
+
293
302
  /**
294
303
  * Maximum byte length for the name field after trimming.
295
304
  * @returns {number}
@@ -308,6 +317,103 @@ export function TEXT_NGRAM_SIZE() {
308
317
  return ret >>> 0;
309
318
  }
310
319
 
320
+ /**
321
+ * Result of [`gen_sum_code_v0`], containing the composite ISCC-CODE, data hash, and file size.
322
+ */
323
+ export class WasmSumCodeResult {
324
+ static __wrap(ptr) {
325
+ ptr = ptr >>> 0;
326
+ const obj = Object.create(WasmSumCodeResult.prototype);
327
+ obj.__wbg_ptr = ptr;
328
+ WasmSumCodeResultFinalization.register(obj, obj.__wbg_ptr, obj);
329
+ return obj;
330
+ }
331
+ __destroy_into_raw() {
332
+ const ptr = this.__wbg_ptr;
333
+ this.__wbg_ptr = 0;
334
+ WasmSumCodeResultFinalization.unregister(this);
335
+ return ptr;
336
+ }
337
+ free() {
338
+ const ptr = this.__destroy_into_raw();
339
+ wasm.__wbg_wasmsumcoderesult_free(ptr, 0);
340
+ }
341
+ /**
342
+ * Hex-encoded BLAKE3 multihash (`"1e20..."`) of the data.
343
+ * @returns {string}
344
+ */
345
+ get datahash() {
346
+ let deferred1_0;
347
+ let deferred1_1;
348
+ try {
349
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
350
+ wasm.__wbg_get_wasmsumcoderesult_datahash(retptr, this.__wbg_ptr);
351
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
352
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
353
+ deferred1_0 = r0;
354
+ deferred1_1 = r1;
355
+ return getStringFromWasm0(r0, r1);
356
+ } finally {
357
+ wasm.__wbindgen_add_to_stack_pointer(16);
358
+ wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
359
+ }
360
+ }
361
+ /**
362
+ * Byte length of the input data (as `f64` for JS `number` compatibility).
363
+ * @returns {number}
364
+ */
365
+ get filesize() {
366
+ const ret = wasm.__wbg_get_wasmsumcoderesult_filesize(this.__wbg_ptr);
367
+ return ret;
368
+ }
369
+ /**
370
+ * Composite ISCC-CODE string (e.g., `"ISCC:KAC..."`).
371
+ * @returns {string}
372
+ */
373
+ get iscc() {
374
+ let deferred1_0;
375
+ let deferred1_1;
376
+ try {
377
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
378
+ wasm.__wbg_get_wasmsumcoderesult_iscc(retptr, this.__wbg_ptr);
379
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
380
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
381
+ deferred1_0 = r0;
382
+ deferred1_1 = r1;
383
+ return getStringFromWasm0(r0, r1);
384
+ } finally {
385
+ wasm.__wbindgen_add_to_stack_pointer(16);
386
+ wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
387
+ }
388
+ }
389
+ /**
390
+ * Hex-encoded BLAKE3 multihash (`"1e20..."`) of the data.
391
+ * @param {string} arg0
392
+ */
393
+ set datahash(arg0) {
394
+ const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_export, wasm.__wbindgen_export2);
395
+ const len0 = WASM_VECTOR_LEN;
396
+ wasm.__wbg_set_wasmsumcoderesult_datahash(this.__wbg_ptr, ptr0, len0);
397
+ }
398
+ /**
399
+ * Byte length of the input data (as `f64` for JS `number` compatibility).
400
+ * @param {number} arg0
401
+ */
402
+ set filesize(arg0) {
403
+ wasm.__wbg_set_wasmsumcoderesult_filesize(this.__wbg_ptr, arg0);
404
+ }
405
+ /**
406
+ * Composite ISCC-CODE string (e.g., `"ISCC:KAC..."`).
407
+ * @param {string} arg0
408
+ */
409
+ set iscc(arg0) {
410
+ const ptr0 = passStringToWasm0(arg0, wasm.__wbindgen_export, wasm.__wbindgen_export2);
411
+ const len0 = WASM_VECTOR_LEN;
412
+ wasm.__wbg_set_wasmsumcoderesult_iscc(this.__wbg_ptr, ptr0, len0);
413
+ }
414
+ }
415
+ if (Symbol.dispose) WasmSumCodeResult.prototype[Symbol.dispose] = WasmSumCodeResult.prototype.free;
416
+
311
417
  /**
312
418
  * Split data into content-defined chunks using gear rolling hash.
313
419
  *
@@ -708,6 +814,35 @@ export function gen_mixed_code_v0(codes, bits) {
708
814
  }
709
815
  }
710
816
 
817
+ /**
818
+ * Generate a composite ISCC-CODE from raw byte data in a single pass.
819
+ *
820
+ * Feeds both `DataHasher` (CDC/MinHash) and `InstanceHasher` (BLAKE3) from
821
+ * the same byte slice, then composes the final ISCC-CODE via
822
+ * `gen_iscc_code_v0`. WASM-compatible alternative to the file-based core API.
823
+ * @param {Uint8Array} data
824
+ * @param {number | null} [bits]
825
+ * @param {boolean | null} [wide]
826
+ * @returns {WasmSumCodeResult}
827
+ */
828
+ export function gen_sum_code_v0(data, bits, wide) {
829
+ try {
830
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
831
+ const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_export);
832
+ const len0 = WASM_VECTOR_LEN;
833
+ wasm.gen_sum_code_v0(retptr, ptr0, len0, isLikeNone(bits) ? 0x100000001 : (bits) >>> 0, isLikeNone(wide) ? 0xFFFFFF : wide ? 1 : 0);
834
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
835
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
836
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
837
+ if (r2) {
838
+ throw takeObject(r1);
839
+ }
840
+ return WasmSumCodeResult.__wrap(r0);
841
+ } finally {
842
+ wasm.__wbindgen_add_to_stack_pointer(16);
843
+ }
844
+ }
845
+
711
846
  /**
712
847
  * Generate a Text-Code from plain text content.
713
848
  *
@@ -1208,6 +1343,9 @@ const InstanceHasherFinalization = (typeof FinalizationRegistry === 'undefined')
1208
1343
  const IsccDecodeResultFinalization = (typeof FinalizationRegistry === 'undefined')
1209
1344
  ? { register: () => {}, unregister: () => {} }
1210
1345
  : new FinalizationRegistry(ptr => wasm.__wbg_isccdecoderesult_free(ptr >>> 0, 1));
1346
+ const WasmSumCodeResultFinalization = (typeof FinalizationRegistry === 'undefined')
1347
+ ? { register: () => {}, unregister: () => {} }
1348
+ : new FinalizationRegistry(ptr => wasm.__wbg_wasmsumcoderesult_free(ptr >>> 0, 1));
1211
1349
 
1212
1350
  function addHeapObject(obj) {
1213
1351
  if (heap_next === heap.length) heap.push(heap.length + 1);
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.0.3",
4
+ "version": "0.0.4",
5
5
  "files": [
6
6
  "iscc_wasm_bg.wasm",
7
7
  "iscc_wasm.js",