mol_vary 0.0.2 → 0.0.3
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 +2 -5
- package/node.d.ts +3 -0
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +12 -3
- package/node.js.map +1 -1
- package/node.mjs +12 -3
- package/node.test.js +12 -3
- package/node.test.js.map +1 -1
- package/package.json +1 -1
- package/web.d.ts +3 -0
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +12 -3
- package/web.js.map +1 -1
- package/web.mjs +12 -3
package/package.json
CHANGED
package/web.d.ts
CHANGED
|
@@ -71,6 +71,9 @@ declare namespace $ {
|
|
|
71
71
|
fp64 = 95
|
|
72
72
|
}
|
|
73
73
|
class $mol_vary extends DataView<ArrayBuffer> {
|
|
74
|
+
static buffer: Uint8Array<ArrayBuffer>;
|
|
75
|
+
static buffer_view: $mol_vary;
|
|
76
|
+
static allocate(size: number): void;
|
|
74
77
|
static pack(data: unknown): Uint8Array<ArrayBuffer>;
|
|
75
78
|
static take(buf: Uint8Array<ArrayBuffer>): unknown;
|
|
76
79
|
tlen(pos: number, tip: keyof typeof $mol_vary_tip, len: number): number;
|
package/web.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../mam.d.ts","../../fail/fail.d.ts","../../hash/numbers/number.d.ts","../../bigint/encode/encode.d.ts","../../hash/string/string.d.ts","../../charset/encode/encode.d.ts","../../charset/encoding/encoding.d.ts","../../charset/decode/decode.d.ts","../vary.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":[null,null,null,null,null,null,null,null,null]}
|
|
1
|
+
{"version":3,"sources":["../../../mam.d.ts","../../fail/fail.d.ts","../../hash/numbers/number.d.ts","../../bigint/encode/encode.d.ts","../../hash/string/string.d.ts","../../charset/encode/encode.d.ts","../../charset/encoding/encoding.d.ts","../../charset/decode/decode.d.ts","../vary.d.ts"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;ACfA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;ACLA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;ACHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA","sourcesContent":[null,null,null,null,null,null,null,null,null]}
|
package/web.deps.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"files":["mam.ts","LICENSE","README.md","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/fail/fail.ts","mol/hash/numbers/number.ts","mol/bigint/encode/encode.ts","mol/hash/string/string.ts","mol/charset/encode/encode.ts","mol/charset/encoding/encoding.ts","mol/charset/decode/decode.ts","mol/vary/vary.ts","mol/vary/readme.md"],"mods":{},"deps_in":{"mol":{"mol/vary":-999,"mol/fail":-999,"mol/hash":-999,"mol/bigint":-999,"mol/charset":-999},"":{"mol":-999},"mol/fail":{"mol/vary":-3},"mol/hash/numbers":{"mol/vary":-6,"mol/hash/string":-2},"mol/hash":{"mol/hash/numbers":-999,"mol/hash/string":-999},"mol/bigint/encode":{"mol/vary":-6},"mol/bigint":{"mol/bigint/encode":-999},"mol/hash/string":{"mol/vary":-6},"mol/charset/encode":{"mol/vary":-6},"mol/charset":{"mol/charset/encode":-999,"mol/charset/decode":-999,"mol/charset/encoding":-999},"mol/charset/decode":{"mol/vary":-4},"mol/charset/encoding":{"mol/charset/decode":-1}},"deps_out":{"mol/vary":{"mol":-999,"mol/fail":-3,"mol/hash/numbers":-6,"mol/bigint/encode":-6,"mol/hash/string":-6,"mol/charset/encode":-6,"mol/charset/decode":-4},"mol":{"":-999},"mol/fail":{"mol":-999},"mol/hash/numbers":{"mol/hash":-999},"mol/hash":{"mol":-999},"mol/bigint/encode":{"mol/bigint":-999},"mol/bigint":{"mol":-999},"mol/hash/string":{"mol/hash":-999,"mol/hash/numbers":-2},"mol/charset/encode":{"mol/charset":-999},"mol/charset":{"mol":-999},"mol/charset/decode":{"mol/charset":-999,"mol/charset/encoding":-1},"mol/charset/encoding":{"mol/charset":-999}},"sloc":{"ts":
|
|
1
|
+
{"files":["mam.ts","LICENSE","README.md","mam.jam.js","tsfmt.json","package.json","tsconfig.json","lang.lang.tree","meta.lang.tree","sandbox.config.json","mol/CNAME","mol/LICENSE","mol/readme.md","mol/mol.meta.tree","mol/CONTRIBUTING.md","mol/CODE_OF_CONDUCT.md","mol/fail/fail.ts","mol/hash/numbers/number.ts","mol/bigint/encode/encode.ts","mol/hash/string/string.ts","mol/charset/encode/encode.ts","mol/charset/encoding/encoding.ts","mol/charset/decode/decode.ts","mol/vary/vary.ts","mol/vary/readme.md"],"mods":{},"deps_in":{"mol":{"mol/vary":-999,"mol/fail":-999,"mol/hash":-999,"mol/bigint":-999,"mol/charset":-999},"":{"mol":-999},"mol/fail":{"mol/vary":-3},"mol/hash/numbers":{"mol/vary":-6,"mol/hash/string":-2},"mol/hash":{"mol/hash/numbers":-999,"mol/hash/string":-999},"mol/bigint/encode":{"mol/vary":-6},"mol/bigint":{"mol/bigint/encode":-999},"mol/hash/string":{"mol/vary":-6},"mol/charset/encode":{"mol/vary":-6},"mol/charset":{"mol/charset/encode":-999,"mol/charset/decode":-999,"mol/charset/encoding":-999},"mol/charset/decode":{"mol/vary":-4},"mol/charset/encoding":{"mol/charset/decode":-1}},"deps_out":{"mol/vary":{"mol":-999,"mol/fail":-3,"mol/hash/numbers":-6,"mol/bigint/encode":-6,"mol/hash/string":-6,"mol/charset/encode":-6,"mol/charset/decode":-4},"mol":{"":-999},"mol/fail":{"mol":-999},"mol/hash/numbers":{"mol/hash":-999},"mol/hash":{"mol":-999},"mol/bigint/encode":{"mol/bigint":-999},"mol/bigint":{"mol":-999},"mol/hash/string":{"mol/hash":-999,"mol/hash/numbers":-2},"mol/charset/encode":{"mol/charset":-999},"mol/charset":{"mol":-999},"mol/charset/decode":{"mol/charset":-999,"mol/charset/encoding":-1},"mol/charset/encoding":{"mol/charset":-999}},"sloc":{"ts":684,"LICENSE":113,"md":504,"js":9,"json":82,"tree":41,"CNAME":1},"deps":{"mol/vary":{"..":-999,"/mol/vary/tip":-1,"/mol/vary/len":-1,"/mol/vary/spec":-1,"/mol/vary/tip/spec":-2,"/mol/fail":-3,"/mol/vary":-1,"/mol/hash/numbers":-6,"/mol/bigint/encode":-6,"/mol/vary/tip/sint":-5,"/mol/hash/string":-6,"/mol/vary/tip/text":-6,"/mol/vary/spec/none":-6,"/mol/vary/tip/blob":-6,"/mol/vary/tip/list":-6,"/mol/charset/encode/size":-6,"/mol/vary/spec/both":-6,"/mol/vary/spec/true":-6,"/mol/vary/spec/fake":-6,"/mol/charset/encode/to":-6,"/mol/vary/spec/fp32":-5,"/mol/vary/spec/fp64":-5,"/mol/charset/decode":-4,"/mol/vary/tip/uint":-5,"/mol/vary/type":-1},"mol":{"..":-999},"":{},"mol/fail":{"..":-999,"/mol/fail":-1},"mol/hash/numbers":{"..":-999,"/mol/hash/numbers":-1},"mol/hash":{"..":-999},"mol/bigint/encode":{"..":-999,"/mol/bigint/encode":-1},"mol/bigint":{"..":-999},"mol/hash/string":{"..":-999,"/mol/hash/string":-1,"/mol/hash/numbers":-2},"mol/charset/encode":{"..":-999,"/mol/charset/encode":-1,"/mol/charset/encode/to":-1,"/mol/charset/encode/size":-1},"mol/charset":{"..":-999},"mol/charset/decode":{"..":-999,"/mol/charset/encoding":-1,"/mol/charset/decode":-1},"mol/charset/encoding":{"..":-999,"/mol/charset/encoding":-1}}}
|
package/web.js
CHANGED
|
@@ -228,6 +228,14 @@ var $;
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
class $mol_vary extends DataView {
|
|
231
|
+
static buffer = new Uint8Array(4096);
|
|
232
|
+
static buffer_view = new this(this.buffer.buffer);
|
|
233
|
+
static allocate(size) {
|
|
234
|
+
if (this.buffer.byteLength > size)
|
|
235
|
+
return;
|
|
236
|
+
this.buffer = new Uint8Array(Math.ceil(size / 4096) * 4096);
|
|
237
|
+
this.buffer_view = new this(this.buffer.buffer);
|
|
238
|
+
}
|
|
231
239
|
static pack(data) {
|
|
232
240
|
const leaned = new WeakMap();
|
|
233
241
|
const lean = (val) => {
|
|
@@ -357,8 +365,9 @@ var $;
|
|
|
357
365
|
$mol_fail(new Error(`Unsupported type`));
|
|
358
366
|
};
|
|
359
367
|
calc(data);
|
|
360
|
-
|
|
361
|
-
const
|
|
368
|
+
this.allocate(size);
|
|
369
|
+
const buf = this.buffer;
|
|
370
|
+
const pack = this.buffer_view;
|
|
362
371
|
const embedded = new Set();
|
|
363
372
|
let pos = 0;
|
|
364
373
|
const dump = (val) => {
|
|
@@ -480,7 +489,7 @@ var $;
|
|
|
480
489
|
$mol_fail(new Error(`Unsupported type`));
|
|
481
490
|
};
|
|
482
491
|
dump(data);
|
|
483
|
-
return buf;
|
|
492
|
+
return buf.slice(0, size);
|
|
484
493
|
}
|
|
485
494
|
static take(buf) {
|
|
486
495
|
const pack = new $mol_vary(buf.buffer, buf.byteOffset, buf.byteLength);
|
package/web.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/hash/numbers/number.ts","../../../mol/bigint/encode/encode.ts","../../../mol/hash/string/string.ts","../../../mol/charset/encode/encode.ts","../../../mol/charset/decode/decode.ts","../../../mol/vary/vary.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable array hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_numbers( buff: ArrayLike< number >, seed = 0 ) {\n\t\t\n\t\tlet h1 = 0xdeadbeef ^ seed\n\t\tlet h2 = 0x41c6ce57 ^ seed\n\t\t\n\t\tfor( let i = 0; i < buff.length; ++i ) {\n\t\t\tconst item = buff[i]\n\t\t\th1 = Math.imul( h1 ^ item, 2654435761 )\n\t\t\th2 = Math.imul( h2 ^ item, 1597334677 )\n\t\t}\n\t\t\n\t\th1 = Math.imul( h1 ^ ( h1 >>> 16 ), 2246822507 ) ^ Math.imul( h2 ^ ( h2 >>> 13 ), 3266489909 )\n\t\th2 = Math.imul( h2 ^ ( h2 >>> 16 ), 2246822507 ) ^ Math.imul( h1 ^ ( h1 >>> 13 ), 3266489909 )\n\t\t\n\t\treturn 4294967296 * ( ( ( 1 << 16 ) - 1 ) & h2 ) + ( h1 >>> 0 )\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num % 256n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable string hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_string( str: string, seed = 0 ) {\n\t\tlet nums = new Array( str.length )\n\t\tfor( let i = 0; i < str.length; ++i ) nums[i] = str.charCodeAt(i)\n\t\treturn $mol_hash_numbers( nums )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\ttext = 0b100 << 5,\n\t\tblob = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport const $mol_vary_len = {\n\t\t1: 28,\n\t\t2: 29,\n\t\t4: 30,\n\t\t8: 31,\n\t} as const\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = $mol_vary_tip.spec | 29,\n\t\tfp32 = $mol_vary_tip.spec | 30,\n\t\tfp64 = $mol_vary_tip.spec | 31,\n\t}\n\t\n\tfunction num_len( num: number | bigint ) {\n\t\t\n\t\tif( typeof num === 'number' && !Number.isInteger( num ) ) return 8\n\t\t\n\t\tif( num < 0 ) {\n\t\t\t\n\t\t\tif( num >= -28 ) return 0\n\t\t\tif( num >= -(2**7) ) return 1\n\t\t\tif( num >= -(2**15) ) return 2\n\t\t\tif( num >= -(2**31) ) return 4\n\t\t\tif( num >= -(2n**63n) ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too low numb ${ num }` ) )\n\t\t\t\n\t\t} else {\n\t\t\t\n\t\t\tif( num < 28 ) return 0\n\t\t\tif( num < 2**8 ) return 1\n\t\t\tif( num < 2**16 ) return 2\n\t\t\tif( num < 2**32 ) return 4\n\t\t\tif( num < 2n**64n ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too high numb ${ num }` ) )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary extends DataView< ArrayBuffer > {\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tstatic pack( data: unknown ) {\n\t\t\t\n\t\t\tconst leaned = new WeakMap< object, readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\t\tconst lean = ( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] => {\n\t\t\t\t\n\t\t\t\tlet tupl = leaned.get( val )\n\t\t\t\tif( tupl ) return tupl\n\t\t\t\t\n\t\t\t\tleaned.set( val, tupl = this.lean( val ) )\n\t\t\t\treturn tupl\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst hashes = new Map< unknown, number >()\n\t\t\t/** Recursive hash for deduplication */\n\t\t\tconst hash = ( val: unknown ): number => {\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined':\n\t\t\t\t\t\treturn 0\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\treturn Number( val )\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\treturn val\n\t\t\t\t\t\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\treturn $mol_hash_numbers( $mol_bigint_encode( val ), $mol_vary_tip.sint )\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\tres = $mol_hash_string( val, $mol_vary_tip.text )\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) return $mol_vary_spec.none\n\t\t\t\t\t\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) res = $mol_hash_numbers( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), $mol_vary_tip.blob )\n\t\t\t\t\t\telse if( Array.isArray( val ) ) res = $mol_hash_numbers( val.map( hash ), $mol_vary_tip.list )\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\tres = $mol_hash_numbers( vals.map( hash ), hash( keys ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet size = 0\n\t\t\tconst offsets = new Map< number /*hash*/, number >()\n\t\t\tconst sizes = new Map< string, number >()\n\t\t\tconst stream = [] as unknown[]\n\t\t\t\n\t\t\t/** Reserve size for embedding first entry or link to existen one.*/\n\t\t\tconst dedup = ( val: unknown, len: number )=> {\n\t\t\t\t\n\t\t\t\tconst key = hash( val )\n\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\n\t\t\t\tif( offset === undefined ) { // embed first\n\t\t\t\t\t\n\t\t\t\t\toffsets.set( key, offset = stream.length )\n\t\t\t\t\tstream.push( val )\n\t\t\t\t\tsize += len\n\t\t\t\t\t\n\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t} else { // link to exists\n\t\t\t\t\t\n\t\t\t\t\tsize += 1 + num_len( offset )\n\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive calculates required buffer size. */\n\t\t\tconst calc = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( val == null ) {\n\t\t\t\t\tsize += 1\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\tsize += 1 + num_len( val )\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet len = sizes.get( val )\n\t\t\t\t\t\tif( len == null ) sizes.set( val, len = $mol_charset_encode_size( val ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !len ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( len ) + len )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.byteLength ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 2 + num_len( val.byteLength ) + val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.length ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\t\tfor( const item of val ) calc( item )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 1 + num_len( val.length ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !vals.length ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\tcalc( keys )\n\t\t\t\t\t\t\tfor( const item of vals ) calc( item )\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( vals.length ) )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tcalc( data )\n\t\t\t\n\t\t\tconst buf = new Uint8Array( size )\n\t\t\tconst pack = new this( buf.buffer )\n\t\t\tconst embedded = new Set< number >()\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( pos >= size ) $mol_fail( new Error( 'Wrong buffer length', { cause: buf } ) )\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined': {\n\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.both )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tpack.tlen( pos, 'spec', val ? $mol_vary_spec.true : $mol_vary_spec.fake )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'number': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !Number.isInteger( val ) ) {\n\t\t\t\t\t\t\tpos += pack.tfp( pos, 'spec', val )\n\t\t\t\t\t\t} else if( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'bigint': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'text', sizes.get( val )! )\n\t\t\t\t\t\tpos += $mol_charset_encode_to( val, buf, pos )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.none )\n\t\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'blob', val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val instanceof Uint8Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Uint16Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Uint32Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigUint64Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\telse if( val instanceof Int8Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Int16Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Int32Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigInt64Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// else if( val instanceof Float16Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp16 )\n\t\t\t\t\t\t\telse if( val instanceof Float32Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp32 )\n\t\t\t\t\t\t\telse if( val instanceof Float64Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp64 )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbuf.set( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), pos )\n\t\t\t\t\t\t\tpos += val.byteLength\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.byteLength ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'list', val.length )\n\t\t\t\t\t\t\tfor( const item of val ) dump( item )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'tupl', vals.length )\n\t\t\t\t\t\tdump( keys )\n\t\t\t\t\t\tfor( const item of vals ) dump( item )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif( vals.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tdump( data )\n\t\t\t\n\t\t\treturn buf\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\tstatic take( buf: Uint8Array< ArrayBuffer > ): unknown {\n\t\t\t\n\t\t\tconst pack = new $mol_vary( buf.buffer, buf.byteOffset, buf.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ()=> {\n\t\t\t\tconst num = pack.unum( pos )\n\t\t\t\tpos += 1 + pack.ulen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ()=> {\n\t\t\t\tconst num = pack.snum( pos )\n\t\t\t\tpos += 1 + pack.slen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst bin = new Uint8Array( buf.buffer, pack.byteOffset + pos, len )\n\t\t\t\tpos += len\n\t\t\t\tconst text = $mol_charset_decode( bin )\n\t\t\t\tif( text.length ) stream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( buf.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tif( len ) stream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst kind = pack.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[1]: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[2]: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[4]: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[8]: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[1] + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[2] + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[4] + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[8] + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\t// case $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob kind', { cause: { kind } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst list = [] as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list.push( read_vary() )\n\t\t\t\tif( len ) stream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ()=> {\n\t\t\t\tconst index = read_unum() as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\t\n\t\t\t\tconst keys = pack.tip( pos ) === 'link' ? read_link() : read_list()\n\t\t\t\tif( !Array.isArray( keys ) ) $mol_fail( new Error( 'Wrong tupl shape type', { cause: { type: typeof keys } } ) )\n\t\t\t\t\n\t\t\t\tconst vals = Array.from( { length: len }, ()=> read_vary() )\n\t\t\t\t\n\t\t\t\tconst obj = this.rich( keys, vals )\n\t\t\t\tif( vals.length ) stream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = pack.getUint8( pos )\n\t\t\t\tconst spec = $mol_vary_spec[ kind ] as keyof typeof $mol_vary_spec \n\t\t\t\t\n\t\t\t\tswitch( spec ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'none':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase 'fake':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase 'true':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'both':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp16': {\n\t\t\t\t\t\tconst val = pack.getFloat16( pos + 1, true )\n\t\t\t\t\t\tpos += 3\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp32': {\n\t\t\t\t\t\tconst val = pack.getFloat32( pos + 1, true )\n\t\t\t\t\t\tpos += 5\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp64': {\n\t\t\t\t\t\tconst val = pack.getFloat64( pos + 1, true )\n\t\t\t\t\t\tpos += 9\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst tip = pack.tip( pos )\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'uint': return read_unum()\n\t\t\t\t\tcase 'sint': return read_snum()\n\t\t\t\t\tcase 'link': return read_link()\n\t\t\t\t\tcase 'text': return read_text()\n\t\t\t\t\tcase 'list': return read_list()\n\t\t\t\t\tcase 'blob': return read_blob()\n\t\t\t\t\tcase 'tupl': return read_tupl()\n\t\t\t\t\tcase 'spec': return read_spec()\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn read_vary()\n\t\t}\n\t\t\n\t\ttlen( pos: number, tip: keyof typeof $mol_vary_tip, len: number ) {\n\t\t\tthis.setUint8( pos, $mol_vary_tip[ tip ] | len )\n\t\t\treturn 1\n\t\t}\n\t\t\n\t\ttnat( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setUint8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setUint16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setUint32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigUint64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported uint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttint( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? - $mol_vary_len[ len ] -1 : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setInt8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setInt16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setInt32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigInt64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported sint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttfp( pos: number, tip: keyof typeof $mol_vary_tip, num: number ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 2: this.setFloat16( pos + 1, num, true ); break\n\t\t\t\tcase 4: this.setFloat32( pos + 1, num, true ); break\n\t\t\t\tcase 8: this.setFloat64( pos + 1, num, true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported fp len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttip( pos: number ) {\n\t\t\treturn $mol_vary_tip[ this.getUint8( pos ) & 0b111_00000 ] as keyof typeof $mol_vary_tip\n\t\t}\n\t\t\n\t\tulen( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return 1\n\t\t\t\tcase 29: return 2\n\t\t\t\tcase 30: return 4\n\t\t\t\tcase 31: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tslen( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return 1\n\t\t\t\tcase -30: return 2\n\t\t\t\tcase -31: return 4\n\t\t\t\tcase -32: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tunum( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return this.getUint8( pos + 1 )\n\t\t\t\tcase 29: return this.getUint16( pos + 1, true )\n\t\t\t\tcase 30: return this.getUint32( pos + 1, true )\n\t\t\t\tcase 31:\n\t\t\t\t\tconst val = this.getBigUint64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tsnum( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return this.getInt8( pos + 1 )\n\t\t\t\tcase -30: return this.getInt16( pos + 1, true )\n\t\t\t\tcase -31: return this.getInt32( pos + 1, true )\n\t\t\t\tcase -32:\n\t\t\t\t\tconst val = this.getBigInt64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\tif( val < Number.MIN_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Converts internal keys&vals to high level object. */\n\t\tstatic rich( keys: any[], vals: any[] ): object {\n\t\t\t\n\t\t\tconst shape = JSON.stringify([ keys, vals.map( v => typeof v ) ])\n\t\t\tconst rich = this.riches.get( shape )\n\t\t\tif( rich ) return rich( ... vals )\n\t\t\t\n\t\t\tconst pairs = keys.map( ( key, index ) => [ key, vals[ index ] ] )\n\t\t\tconst obj = Object.fromEntries( pairs )\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t \n\t\t/** Converts high level object to internal keys&vals representation. */\n\t\tstatic lean( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] {\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( val )!\n\t\t\tconst lean = this.leanes.get( proto )\n\t\t\tif( lean ) return lean( val )\n\t\t\t\n\t\t\treturn [ Object.keys( val ), Object.values( val ) ]\n\t\t}\n\t\t\n\t\tstatic leanes = new Map< object, ( val: any )=> readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\tstatic riches = new Map< string/*shape*/, ( ... vals: readonly any[] )=> object >()\n\t\t\n\t\t/** Adds custom types support. */\n\t\tstatic type<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>(\n\t\t\trich: ( ( ... vals: Vals )=> Instance ) | ( ()=> Instance ),\n\t\t\tlean: ( obj: Instance )=> readonly[ Keys, Vals ],\n\t\t) {\n\t\t\t\n\t\t\tconst obj = rich()\n\t\t\tconst proto = Reflect.getPrototypeOf( obj )!\n\t\t\t\n\t\t\tconst [ keys, vals ] = lean( obj )\n\t\t\tconst shape = JSON.stringify( [ keys, vals.map( v => typeof v ) ] )\n\t\t\t\n\t\t\tthis.leanes.set( proto, lean )\n\t\t\tthis.riches.set( shape, rich )\n\t\t}\n\t\t\n\t}\n\t\n\t/** Native Map support */\n\t$mol_vary.type(\n\t\t( keys = [] as readonly any[], vals = [] as readonly any[] )=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t\tobj => [\n\t\t\t[ 'keys', 'vals' ],\n\t\t\t[ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t/** Native Set support */\n\t$mol_vary.type(\n\t\t( vals = [] as readonly any[] )=> new Set( vals ),\n\t\tobj => [\n\t\t\t[ 'vals' ],\n\t\t\t[ [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t// /** Native Date support */\n\t// $mol_vary.type(\n\t// \t( ts = 0 )=> new Date( ts * 1000 ),\n\t// \tobj => [\n\t// \t\t[ 'unix_time' ],\n\t// \t\t[ obj.valueOf() / 1000 ],\n\t// \t],\n\t// )\n\t\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/hash/numbers/number.ts","../../../mol/bigint/encode/encode.ts","../../../mol/hash/string/string.ts","../../../mol/charset/encode/encode.ts","../../../mol/charset/decode/decode.ts","../../../mol/vary/vary.ts"],"names":[],"mappings":"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","sourcesContent":[null,"Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable array hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_numbers( buff: ArrayLike< number >, seed = 0 ) {\n\t\t\n\t\tlet h1 = 0xdeadbeef ^ seed\n\t\tlet h2 = 0x41c6ce57 ^ seed\n\t\t\n\t\tfor( let i = 0; i < buff.length; ++i ) {\n\t\t\tconst item = buff[i]\n\t\t\th1 = Math.imul( h1 ^ item, 2654435761 )\n\t\t\th2 = Math.imul( h2 ^ item, 1597334677 )\n\t\t}\n\t\t\n\t\th1 = Math.imul( h1 ^ ( h1 >>> 16 ), 2246822507 ) ^ Math.imul( h2 ^ ( h2 >>> 13 ), 3266489909 )\n\t\th2 = Math.imul( h2 ^ ( h2 >>> 16 ), 2246822507 ) ^ Math.imul( h1 ^ ( h1 >>> 13 ), 3266489909 )\n\t\t\n\t\treturn 4294967296 * ( ( ( 1 << 16 ) - 1 ) & h2 ) + ( h1 >>> 0 )\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_bigint_encode( num: bigint ) {\n\n\t\tconst minus = num < 0n ? 255 : 0;\n\t\tnum = minus ? -num - 1n : num\n\t\t\n\t\tconst bytes = [] as number[]\n\t\tdo {\n\t\t\t\n\t\t\tlet byte = minus ^ Number( num % 256n )\n\t\t\tbytes.push( byte )\n\t\t\t\n\t\t\tif( num >>= 8n ) continue\n\t\t\t\n\t\t\tif(( minus & 128 )!==( byte & 128 ))\n\t\t\t\tbytes.push( minus )\n\t\t\t\n\t\t\tbreak\n\t\t\t\n\t\t} while( num )\n\t\n\t\treturn new Uint8Array(bytes);\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * 48-bit streamable string hash function\n\t * Based on cyrb53: https://stackoverflow.com/a/52171480\n\t */\n\texport function $mol_hash_string( str: string, seed = 0 ) {\n\t\tlet nums = new Array( str.length )\n\t\tfor( let i = 0; i < str.length; ++i ) nums[i] = str.charCodeAt(i)\n\t\treturn $mol_hash_numbers( nums )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\t\n\texport enum $mol_vary_tip {\n\t\tuint = 0b000 << 5,\n\t\tlink = 0b001 << 5,\n\t\tspec = 0b010 << 5,\n\t\tlist = 0b011 << 5,\n\t\ttext = 0b100 << 5,\n\t\tblob = 0b101 << 5,\n\t\ttupl = 0b110 << 5,\n\t\tsint = 0b111 << 5,\n\t}\n\t\n\texport const $mol_vary_len = {\n\t\t1: 28,\n\t\t2: 29,\n\t\t4: 30,\n\t\t8: 31,\n\t} as const\n\t\n\texport enum $mol_vary_spec {\n\t\tnone = 'N'.charCodeAt(0),\n\t\ttrue = 'T'.charCodeAt(0),\n\t\tfake = 'F'.charCodeAt(0),\n\t\tboth = 'B'.charCodeAt(0),\n\t\tfp16 = $mol_vary_tip.spec | 29,\n\t\tfp32 = $mol_vary_tip.spec | 30,\n\t\tfp64 = $mol_vary_tip.spec | 31,\n\t}\n\t\n\tfunction num_len( num: number | bigint ) {\n\t\t\n\t\tif( typeof num === 'number' && !Number.isInteger( num ) ) return 8\n\t\t\n\t\tif( num < 0 ) {\n\t\t\t\n\t\t\tif( num >= -28 ) return 0\n\t\t\tif( num >= -(2**7) ) return 1\n\t\t\tif( num >= -(2**15) ) return 2\n\t\t\tif( num >= -(2**31) ) return 4\n\t\t\tif( num >= -(2n**63n) ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too low numb ${ num }` ) )\n\t\t\t\n\t\t} else {\n\t\t\t\n\t\t\tif( num < 28 ) return 0\n\t\t\tif( num < 2**8 ) return 1\n\t\t\tif( num < 2**16 ) return 2\n\t\t\tif( num < 2**32 ) return 4\n\t\t\tif( num < 2n**64n ) return 8\n\t\t\t\n\t\t\t$mol_fail( new Error( `Too high numb ${ num }` ) )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** VaryPack - simple fast compact data binarization format. */\n\texport class $mol_vary extends DataView< ArrayBuffer > {\n\t\t\n\t\tstatic buffer = new Uint8Array( 4096 )\n\t\tstatic buffer_view = new this( this.buffer.buffer )\n\t\t\n\t\tstatic allocate( size: number ) {\n\t\t\tif( this.buffer.byteLength > size ) return\n\t\t\tthis.buffer = new Uint8Array( Math.ceil( size / 4096 ) * 4096 )\n\t\t\tthis.buffer_view = new this( this.buffer.buffer )\n\t\t}\n\t\t\n\t\t/** Packs any data to Uint8Array with deduplication. */\n\t\tstatic pack( data: unknown ) {\n\t\t\t\n\t\t\tconst leaned = new WeakMap< object, readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\t\tconst lean = ( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] => {\n\t\t\t\t\n\t\t\t\tlet tupl = leaned.get( val )\n\t\t\t\tif( tupl ) return tupl\n\t\t\t\t\n\t\t\t\tleaned.set( val, tupl = this.lean( val ) )\n\t\t\t\treturn tupl\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst hashes = new Map< unknown, number >()\n\t\t\t/** Recursive hash for deduplication */\n\t\t\tconst hash = ( val: unknown ): number => {\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined':\n\t\t\t\t\t\treturn 0\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\treturn Number( val )\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\t\treturn val\n\t\t\t\t\t\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\treturn $mol_hash_numbers( $mol_bigint_encode( val ), $mol_vary_tip.sint )\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\tres = $mol_hash_string( val, $mol_vary_tip.text )\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) return $mol_vary_spec.none\n\t\t\t\t\t\n\t\t\t\t\t\tlet res = hashes.get( val )\n\t\t\t\t\t\tif( res != null ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) res = $mol_hash_numbers( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), $mol_vary_tip.blob )\n\t\t\t\t\t\telse if( Array.isArray( val ) ) res = $mol_hash_numbers( val.map( hash ), $mol_vary_tip.list )\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\tres = $mol_hash_numbers( vals.map( hash ), hash( keys ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\thashes.set( val, res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet size = 0\n\t\t\tconst offsets = new Map< number /*hash*/, number >()\n\t\t\tconst sizes = new Map< string, number >()\n\t\t\tconst stream = [] as unknown[]\n\t\t\t\n\t\t\t/** Reserve size for embedding first entry or link to existen one.*/\n\t\t\tconst dedup = ( val: unknown, len: number )=> {\n\t\t\t\t\n\t\t\t\tconst key = hash( val )\n\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\n\t\t\t\tif( offset === undefined ) { // embed first\n\t\t\t\t\t\n\t\t\t\t\toffsets.set( key, offset = stream.length )\n\t\t\t\t\tstream.push( val )\n\t\t\t\t\tsize += len\n\t\t\t\t\t\n\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t} else { // link to exists\n\t\t\t\t\t\n\t\t\t\t\tsize += 1 + num_len( offset )\n\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t/** Recursive calculates required buffer size. */\n\t\t\tconst calc = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( val == null ) {\n\t\t\t\t\tsize += 1\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean':\n\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'number':\n\t\t\t\t\tcase 'bigint':\n\t\t\t\t\t\tsize += 1 + num_len( val )\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet len = sizes.get( val )\n\t\t\t\t\t\tif( len == null ) sizes.set( val, len = $mol_charset_encode_size( val ) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !len ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( len ) + len )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.byteLength ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 2 + num_len( val.byteLength ) + val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( !val.length ) { // always embed redundant\n\t\t\t\t\t\t\t\tsize += 1\n\t\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\t\tfor( const item of val ) calc( item )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn dedup( val, 1 + num_len( val.length ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !vals.length ) { // always embed redundant\n\t\t\t\t\t\t\tsize += 2\n\t\t\t\t\t\t\treturn true\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\tlet offset = offsets.get( key )\n\t\t\t\t\t\tif( offset === undefined ) {\n\t\t\t\t\t\t\tcalc( keys )\n\t\t\t\t\t\t\tfor( const item of vals ) calc( item )\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\treturn dedup( val, 1 + num_len( vals.length ) )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tcalc( data )\n\t\t\t\n\t\t\tthis.allocate( size )\n\t\t\tconst buf = this.buffer\n\t\t\tconst pack = this.buffer_view\n\t\t\tconst embedded = new Set< number >()\n\t\t\t\n\t\t\tlet pos = 0\n\t\t\t/** Recursive fills buffer with data. */\n\t\t\tconst dump = ( val: unknown )=> {\n\t\t\t\t\n\t\t\t\tif( pos >= size ) $mol_fail( new Error( 'Wrong buffer length', { cause: buf } ) )\n\t\t\t\t\n\t\t\t\tswitch( typeof val ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'undefined': {\n\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.both )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'boolean': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tpack.tlen( pos, 'spec', val ? $mol_vary_spec.true : $mol_vary_spec.fake )\n\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'number': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !Number.isInteger( val ) ) {\n\t\t\t\t\t\t\tpos += pack.tfp( pos, 'spec', val )\n\t\t\t\t\t\t} else if( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\tcase 'bigint': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val < 0 ) {\n\t\t\t\t\t\t\tpos += pack.tint( pos, 'sint', val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'uint', val )\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'string': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'text', sizes.get( val )! )\n\t\t\t\t\t\tpos += $mol_charset_encode_to( val, buf, pos )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'object': {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( !val ) {\n\t\t\t\t\t\t\tpack.tlen( pos, 'spec', $mol_vary_spec.none )\n\t\t\t\t\t\t\tpos += 1\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'blob', val.byteLength )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val instanceof Uint8Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Uint16Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Uint32Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigUint64Array ) pos += pack.tlen( pos, 'uint', $mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\telse if( val instanceof Int8Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[1] )\n\t\t\t\t\t\t\telse if( val instanceof Int16Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[2] )\n\t\t\t\t\t\t\telse if( val instanceof Int32Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[4] )\n\t\t\t\t\t\t\telse if( val instanceof BigInt64Array ) pos += pack.tlen( pos, 'sint', ~$mol_vary_len[8] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// else if( val instanceof Float16Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp16 )\n\t\t\t\t\t\t\telse if( val instanceof Float32Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp32 )\n\t\t\t\t\t\t\telse if( val instanceof Float64Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp64 )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbuf.set( new Uint8Array( val.buffer, val.byteOffset, val.byteLength ), pos )\n\t\t\t\t\t\t\tpos += val.byteLength\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.byteLength ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'list', val.length )\n\t\t\t\t\t\t\tfor( const item of val ) dump( item )\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( val.length ) embedded.add( key )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst key = hash( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( embedded.has( key ) ) {\n\t\t\t\t\t\t\tpos += pack.tnat( pos, 'link', offsets.get( key )! )\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst [ keys, vals ] = lean( val )\n\t\t\t\t\t\n\t\t\t\t\t\tpos += pack.tnat( pos, 'tupl', vals.length )\n\t\t\t\t\t\tdump( keys )\n\t\t\t\t\t\tfor( const item of vals ) dump( item )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\tif( vals.length ) embedded.add( key )\n\t\t\t\t\t\treturn\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_fail( new Error( `Unsupported type` ) )\n\t\t\t}\n\t\t\t\n\t\t\tdump( data )\n\t\t\t\n\t\t\treturn buf.slice( 0, size )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Parses buffer to rich runtime structures. */\n\t\tstatic take( buf: Uint8Array< ArrayBuffer > ): unknown {\n\t\t\t\n\t\t\tconst pack = new $mol_vary( buf.buffer, buf.byteOffset, buf.byteLength )\n\t\t\tconst stream = [] as unknown[]\n\t\t\tlet pos = 0;\n\t\t\t\n\t\t\tconst read_unum = ()=> {\n\t\t\t\tconst num = pack.unum( pos )\n\t\t\t\tpos += 1 + pack.ulen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ()=> {\n\t\t\t\tconst num = pack.snum( pos )\n\t\t\t\tpos += 1 + pack.slen( pos )\n\t\t\t\treturn num\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst bin = new Uint8Array( buf.buffer, pack.byteOffset + pos, len )\n\t\t\t\tpos += len\n\t\t\t\tconst text = $mol_charset_decode( bin )\n\t\t\t\tif( text.length ) stream.push( text )\n\t\t\t\treturn text\n\t\t\t}\n\t\t\t\n\t\t\tconst read_buffer = ( len: number, TypedArray: new( buf: ArrayBuffer )=> ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\tconst bin = new TypedArray( buf.slice( pos, pos + len ).buffer )\n\t\t\t\tpos += len\n\t\t\t\tif( len ) stream.push( bin )\n\t\t\t\treturn bin\n\t\t\t}\n\t\t\t\n\t\t\tconst read_blob = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst kind = pack.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[1]: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[2]: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[4]: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_tip.uint | $mol_vary_len[8]: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[1] + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[2] + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[4] + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase $mol_vary_tip.sint | ~$mol_vary_len[8] + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\t// case $mol_vary_tip.spec | $mol_vary_spec.fp16: return read_buffer( len, Float16Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp32: return read_buffer( len, Float32Array )\n\t\t\t\t\tcase $mol_vary_tip.spec | $mol_vary_spec.fp64: return read_buffer( len, Float64Array )\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported blob kind', { cause: { kind } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ()=> {\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\tconst list = [] as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list.push( read_vary() )\n\t\t\t\tif( len ) stream.push( list )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\tconst read_link = ()=> {\n\t\t\t\tconst index = read_unum() as number\n\t\t\t\tif( index >= stream.length ) $mol_fail( new Error( 'Too large index', { cause: { index, exists: stream.length } } ) )\n\t\t\t\treturn stream[ index ]\n\t\t\t}\n\t\t\t\n\t\t\tconst read_tupl = ()=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum() as number\n\t\t\t\t\n\t\t\t\tconst keys = pack.tip( pos ) === 'link' ? read_link() : read_list()\n\t\t\t\tif( !Array.isArray( keys ) ) $mol_fail( new Error( 'Wrong tupl shape type', { cause: { type: typeof keys } } ) )\n\t\t\t\t\n\t\t\t\tconst vals = Array.from( { length: len }, ()=> read_vary() )\n\t\t\t\t\n\t\t\t\tconst obj = this.rich( keys, vals )\n\t\t\t\tif( vals.length ) stream.push( obj )\n\t\t\t\t\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tconst read_spec = ()=> {\n\t\t\t\t\n\t\t\t\tconst kind = pack.getUint8( pos )\n\t\t\t\tconst spec = $mol_vary_spec[ kind ] as keyof typeof $mol_vary_spec \n\t\t\t\t\n\t\t\t\tswitch( spec ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'none':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn null\n\t\t\t\t\t\n\t\t\t\t\tcase 'fake':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn false\n\t\t\t\t\t\n\t\t\t\t\tcase 'true':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn true\n\t\t\t\t\t\n\t\t\t\t\tcase 'both':\n\t\t\t\t\t\t++ pos\n\t\t\t\t\t\treturn undefined\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp16': {\n\t\t\t\t\t\tconst val = pack.getFloat16( pos + 1, true )\n\t\t\t\t\t\tpos += 3\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp32': {\n\t\t\t\t\t\tconst val = pack.getFloat32( pos + 1, true )\n\t\t\t\t\t\tpos += 5\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tcase 'fp64': {\n\t\t\t\t\t\tconst val = pack.getFloat64( pos + 1, true )\n\t\t\t\t\t\tpos += 9\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tdefault:\n\t\t\t\t\t\t$mol_fail( new Error( 'Unsupported spec', { cause: { kind } } ) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_vary = ()=> {\n\t\t\t\t\n\t\t\t\tconst tip = pack.tip( pos )\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'uint': return read_unum()\n\t\t\t\t\tcase 'sint': return read_snum()\n\t\t\t\t\tcase 'link': return read_link()\n\t\t\t\t\tcase 'text': return read_text()\n\t\t\t\t\tcase 'list': return read_list()\n\t\t\t\t\tcase 'blob': return read_blob()\n\t\t\t\t\tcase 'tupl': return read_tupl()\n\t\t\t\t\tcase 'spec': return read_spec()\n\t\t\t\t\t\n\t\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported tip', { cause: { tip } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn read_vary()\n\t\t}\n\t\t\n\t\ttlen( pos: number, tip: keyof typeof $mol_vary_tip, len: number ) {\n\t\t\tthis.setUint8( pos, $mol_vary_tip[ tip ] | len )\n\t\t\treturn 1\n\t\t}\n\t\t\n\t\ttnat( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setUint8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setUint16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setUint32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigUint64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported uint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttint( pos: number, tip: keyof typeof $mol_vary_tip, num: number | bigint ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? - $mol_vary_len[ len ] -1 : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 0: break\n\t\t\t\tcase 1: this.setInt8( pos + 1, Number( num ) ); break\n\t\t\t\tcase 2: this.setInt16( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 4: this.setInt32( pos + 1, Number( num ), true ); break\n\t\t\t\tcase 8: this.setBigInt64( pos + 1, BigInt( num ), true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported sint len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttfp( pos: number, tip: keyof typeof $mol_vary_tip, num: number ) {\n\t\t\t\n\t\t\tconst len = num_len( num )\n\t\t\tthis.tlen( pos, tip, len ? $mol_vary_len[ len ] : Number( num ) )\n\t\t\t\n\t\t\tswitch( len ) {\n\t\t\t\tcase 2: this.setFloat16( pos + 1, num, true ); break\n\t\t\t\tcase 4: this.setFloat32( pos + 1, num, true ); break\n\t\t\t\tcase 8: this.setFloat64( pos + 1, num, true ); break\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported fp len', { cause: { len } } ) )\n\t\t\t}\n\n\t\t\treturn 1 + len\n\t\t}\n\t\t\n\t\ttip( pos: number ) {\n\t\t\treturn $mol_vary_tip[ this.getUint8( pos ) & 0b111_00000 ] as keyof typeof $mol_vary_tip\n\t\t}\n\t\t\n\t\tulen( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return 1\n\t\t\t\tcase 29: return 2\n\t\t\t\tcase 30: return 4\n\t\t\t\tcase 31: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tslen( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return 0\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return 1\n\t\t\t\tcase -30: return 2\n\t\t\t\tcase -31: return 4\n\t\t\t\tcase -32: return 8\n\t\t\t\tdefault: $mol_fail( new Error( 'Impossible!' ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tunum( pos: number ) {\n\t\t\tconst num = this.getUint8( pos ) & 0b11111\n\t\t\tif( num < 28 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase 28: return this.getUint8( pos + 1 )\n\t\t\t\tcase 29: return this.getUint16( pos + 1, true )\n\t\t\t\tcase 30: return this.getUint32( pos + 1, true )\n\t\t\t\tcase 31:\n\t\t\t\t\tconst val = this.getBigUint64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\tsnum( pos: number ) {\n\t\t\tconst num = this.getInt8( pos )\n\t\t\tif( num > -29 ) return num\n\t\t\tswitch( num ) {\n\t\t\t\tcase -29: return this.getInt8( pos + 1 )\n\t\t\t\tcase -30: return this.getInt16( pos + 1, true )\n\t\t\t\tcase -31: return this.getInt32( pos + 1, true )\n\t\t\t\tcase -32:\n\t\t\t\t\tconst val = this.getBigInt64( pos + 1, true )\n\t\t\t\t\tif( val > Number.MAX_SAFE_INTEGER ) return val\n\t\t\t\t\tif( val < Number.MIN_SAFE_INTEGER ) return val\n\t\t\t\t\treturn Number( val )\n\t\t\t\tdefault: $mol_fail( new Error( 'Unsupported len', { cause: { num } } ) )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Converts internal keys&vals to high level object. */\n\t\tstatic rich( keys: any[], vals: any[] ): object {\n\t\t\t\n\t\t\tconst shape = JSON.stringify([ keys, vals.map( v => typeof v ) ])\n\t\t\tconst rich = this.riches.get( shape )\n\t\t\tif( rich ) return rich( ... vals )\n\t\t\t\n\t\t\tconst pairs = keys.map( ( key, index ) => [ key, vals[ index ] ] )\n\t\t\tconst obj = Object.fromEntries( pairs )\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t \n\t\t/** Converts high level object to internal keys&vals representation. */\n\t\tstatic lean( val: object ): readonly[ keys: readonly any[], vals: readonly any[] ] {\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( val )!\n\t\t\tconst lean = this.leanes.get( proto )\n\t\t\tif( lean ) return lean( val )\n\t\t\t\n\t\t\treturn [ Object.keys( val ), Object.values( val ) ]\n\t\t}\n\t\t\n\t\tstatic leanes = new Map< object, ( val: any )=> readonly[ keys: readonly any[], vals: readonly any[] ] >()\n\t\tstatic riches = new Map< string/*shape*/, ( ... vals: readonly any[] )=> object >()\n\t\t\n\t\t/** Adds custom types support. */\n\t\tstatic type<\n\t\t\tconst Instance extends object,\n\t\t\tconst Keys extends readonly any[],\n\t\t\tconst Vals extends readonly any[],\n\t\t>(\n\t\t\trich: ( ( ... vals: Vals )=> Instance ) | ( ()=> Instance ),\n\t\t\tlean: ( obj: Instance )=> readonly[ Keys, Vals ],\n\t\t) {\n\t\t\t\n\t\t\tconst obj = rich()\n\t\t\tconst proto = Reflect.getPrototypeOf( obj )!\n\t\t\t\n\t\t\tconst [ keys, vals ] = lean( obj )\n\t\t\tconst shape = JSON.stringify( [ keys, vals.map( v => typeof v ) ] )\n\t\t\t\n\t\t\tthis.leanes.set( proto, lean )\n\t\t\tthis.riches.set( shape, rich )\n\t\t}\n\t\t\n\t}\n\t\n\t/** Native Map support */\n\t$mol_vary.type(\n\t\t( keys = [] as readonly any[], vals = [] as readonly any[] )=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t\tobj => [\n\t\t\t[ 'keys', 'vals' ],\n\t\t\t[ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t/** Native Set support */\n\t$mol_vary.type(\n\t\t( vals = [] as readonly any[] )=> new Set( vals ),\n\t\tobj => [\n\t\t\t[ 'vals' ],\n\t\t\t[ [ ... obj.values() ] ],\n\t\t],\n\t)\n\t\n\t// /** Native Date support */\n\t// $mol_vary.type(\n\t// \t( ts = 0 )=> new Date( ts * 1000 ),\n\t// \tobj => [\n\t// \t\t[ 'unix_time' ],\n\t// \t\t[ obj.valueOf() / 1000 ],\n\t// \t],\n\t// )\n\t\n}\n"]}
|
package/web.mjs
CHANGED
|
@@ -228,6 +228,14 @@ var $;
|
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
class $mol_vary extends DataView {
|
|
231
|
+
static buffer = new Uint8Array(4096);
|
|
232
|
+
static buffer_view = new this(this.buffer.buffer);
|
|
233
|
+
static allocate(size) {
|
|
234
|
+
if (this.buffer.byteLength > size)
|
|
235
|
+
return;
|
|
236
|
+
this.buffer = new Uint8Array(Math.ceil(size / 4096) * 4096);
|
|
237
|
+
this.buffer_view = new this(this.buffer.buffer);
|
|
238
|
+
}
|
|
231
239
|
static pack(data) {
|
|
232
240
|
const leaned = new WeakMap();
|
|
233
241
|
const lean = (val) => {
|
|
@@ -357,8 +365,9 @@ var $;
|
|
|
357
365
|
$mol_fail(new Error(`Unsupported type`));
|
|
358
366
|
};
|
|
359
367
|
calc(data);
|
|
360
|
-
|
|
361
|
-
const
|
|
368
|
+
this.allocate(size);
|
|
369
|
+
const buf = this.buffer;
|
|
370
|
+
const pack = this.buffer_view;
|
|
362
371
|
const embedded = new Set();
|
|
363
372
|
let pos = 0;
|
|
364
373
|
const dump = (val) => {
|
|
@@ -480,7 +489,7 @@ var $;
|
|
|
480
489
|
$mol_fail(new Error(`Unsupported type`));
|
|
481
490
|
};
|
|
482
491
|
dump(data);
|
|
483
|
-
return buf;
|
|
492
|
+
return buf.slice(0, size);
|
|
484
493
|
}
|
|
485
494
|
static take(buf) {
|
|
486
495
|
const pack = new $mol_vary(buf.buffer, buf.byteOffset, buf.byteLength);
|