mol_vary 0.0.5 → 0.0.6
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/node.d.ts +7 -28
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +360 -523
- package/node.js.map +1 -1
- package/node.mjs +360 -523
- package/node.test.js +452 -713
- package/node.test.js.map +1 -1
- package/package.json +2 -6
- package/web.d.ts +7 -28
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +360 -523
- package/web.js.map +1 -1
- package/web.mjs +360 -523
- package/web.test.js +92 -190
- package/web.test.js.map +1 -1
package/node.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\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"]}
|
|
1
|
+
{"version":3,"sources":["-","../../../mam.ts","../../../mol/fail/fail.ts","../../../mol/charset/encode/encode.ts","../../../mol/charset/decode/decode.ts","../../../mol/charset/decode/from/from.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\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\n\t/** Reads `count` chars from UTF8 `buffer` starting `from` offset. */\n\texport function $mol_charset_decode_from( buffer: Uint8Array, from: number, count: number ) {\n\t\t\n\t\tlet res = ''\n\t\tlet pos = from\n\t\t\n\t\twhile( pos < buffer.length && res.length < count ) {\n\t\t\t\n\t\t\tconst byte1 = buffer[ pos ++ ]\n\t\t\t\n\t\t\tif( byte1 <= 0x7F ) {\n\t\t\t\t\n\t\t\t\tres += String.fromCharCode( byte1 )\n\t\t\t\t\n\t\t\t} else if( ( byte1 & 0xE0 ) === 0xC0 ) {\n\t\t\t\t\n\t\t\t\tif( pos >= buffer.length ) break\n\t\t\t\t\n\t\t\t\tconst byte2 = buffer[ pos ++ ]\n\t\t\t\tlet code = ( ( byte1 & 0x1F ) << 6 ) | ( byte2 & 0x3F )\n\t\t\t\t\n\t\t\t\tres += String.fromCharCode( code )\n\t\t\t\t\n\t\t\t} else if( ( byte1 & 0xF0 ) === 0xE0 ) {\n\t\t\t\t\n\t\t\t\tif( pos + 1 >= buffer.length ) break\n\t\t\t\t\n\t\t\t\tconst byte2 = buffer[ pos ++ ]\n\t\t\t\tconst byte3 = buffer[ pos ++ ]\n\t\t\t\tlet code = ( ( byte1 & 0x0F ) << 12 ) | ( ( byte2 & 0x3F ) << 6 ) | ( byte3 & 0x3F )\n\t\t\t\t\n\t\t\t\tres += String.fromCharCode( code )\n\t\t\t\t\n\t\t\t} else if( ( byte1 & 0xF8 ) === 0xF0 ) {\n\t\t\t\t\n\t\t\t\tif( pos + 2 >= buffer.length ) break\n\t\t\t\t\n\t\t\t\tconst byte2 = buffer[ pos ++ ]\n\t\t\t\tconst byte3 = buffer[ pos ++ ]\n\t\t\t\tconst byte4 = buffer[ pos ++ ]\n\t\t\t\tlet code = ( ( byte1 & 0x07 ) << 18 ) | ( ( byte2 & 0x3F ) << 12 ) | ( ( byte3 & 0x3F ) << 6 ) | ( byte4 & 0x3F )\n\t\t\t\t\n\t\t\t\tif( code > 0xFFFF ) { // Surrogate pair\n\t\t\t\t\t\n\t\t\t\t\tcode -= 0x10000\n\t\t\t\t\tconst hi = 0xD800 + ( code >> 10 )\n\t\t\t\t\tconst lo = 0xDC00 + ( code & 0x3FF )\n\t\t\t\t\t\n\t\t\t\t\tres += String.fromCharCode( hi, lo )\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tres += String.fromCharCode( code )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\tres += '�'\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn [ res, pos - from ] as const\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\tlet offsets = new Map< unknown, number >()\n\tlet sizes = new Map< string, number >()\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\tlet pos = 0\n\t\t\tlet capacity = 0\n\t\t\t\n\t\t\tconst acquire = ( size: number )=> {\n\t\t\t\tcapacity += size\n\t\t\t\tif( buffer.byteLength >= capacity ) return\n\t\t\t\tconst buffer2 = new Uint8Array( Math.ceil( capacity / 4096 ) * 4096 )\n\t\t\t\tbuffer2.set( buffer )\n\t\t\t\tbuffer = buffer2\n\t\t\t\tpack = new DataView( buffer.buffer )\n\t\t\t}\n\t\t\t\n\t\t\tconst release = ( size: number )=> {\n\t\t\t\tcapacity -= size\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_snum = ( tip: number, val: number | bigint )=> {\n\t\t\t\tif( val >= -28 ) {\n\t\t\t\t\tpack.setInt8( pos ++, tip | Number( val ) )\n\t\t\t\t\trelease(9)\n\t\t\t\t} else if( val >= -(2**7) ) {\n\t\t\t\t\tpack.setInt8( pos ++, tip | ( -1 - $mol_vary_len[1] ) )\n\t\t\t\t\tpack.setInt8( pos, Number( val ) )\n\t\t\t\t\tpos += 1\n\t\t\t\t\trelease(8)\n\t\t\t\t} else if( val >= -(2**15) ) {\n\t\t\t\t\tpack.setInt8( pos ++, tip | ( -1 - $mol_vary_len[2] ) )\n\t\t\t\t\tpack.setInt16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( val >= -(2**31) ) {\n\t\t\t\t\tpack.setInt8( pos ++, tip | ( -1 - $mol_vary_len[4] ) )\n\t\t\t\t\tpack.setInt32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(5)\n\t\t\t\t} else if( val >= -(2n**63n) ) {\n\t\t\t\t\tpack.setInt8( pos ++, tip | ( -1 - $mol_vary_len[8] ) )\n\t\t\t\t\tpack.setBigInt64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t\trelease(1)\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Number too low', { cause: val } ) )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_unum = ( tip: number, val: number | bigint )=> {\n\t\t\t\tif( val < 28 ) {\n\t\t\t\t\tpack.setUint8( pos ++, tip | Number( val ) )\n\t\t\t\t\trelease(9)\n\t\t\t\t} else if( val < 2**8 ) {\n\t\t\t\t\tpack.setUint8( pos ++, tip | $mol_vary_len[1] )\n\t\t\t\t\tpack.setUint8( pos, Number( val ) )\n\t\t\t\t\tpos += 1\n\t\t\t\t\trelease(8)\n\t\t\t\t} else if( val < 2**16 ) {\n\t\t\t\t\tpack.setUint8( pos ++, tip | $mol_vary_len[2] )\n\t\t\t\t\tpack.setUint16( pos, Number( val ), true )\n\t\t\t\t\tpos += 2\n\t\t\t\t\trelease(7)\n\t\t\t\t} else if( val < 2**32 ) {\n\t\t\t\t\tpack.setUint8( pos ++, tip | $mol_vary_len[4] )\n\t\t\t\t\tpack.setUint32( pos, Number( val ), true )\n\t\t\t\t\tpos += 4\n\t\t\t\t\trelease(5)\n\t\t\t\t} else if( val < 2n**64n ) {\n\t\t\t\t\tpack.setUint8( pos ++, tip | $mol_vary_len[8] )\n\t\t\t\t\tpack.setBigUint64( pos, BigInt( val ), true )\n\t\t\t\t\tpos += 8\n\t\t\t\t\trelease(1)\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Number too high', { cause: val } ) )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_string = ( val: string )=> {\n\t\t\t\t\n\t\t\t\tif( val.length ) {\n\t\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.text, val.length )\n\t\t\t\tacquire( val.length * 3 )\n\t\t\t\tconst len = $mol_charset_encode_to( val, buffer, pos )\n\t\t\t\tpos += len\n\t\t\t\trelease( val.length * 3 - len - 1 )\n\t\t\t\t\n\t\t\t\tif( val.length ) offsets.set( val, offsets.size )\n\t\t\t\treturn\n\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_buffer = ( val: ArrayBufferView< ArrayBuffer > )=> {\n\t\t\t\t\n\t\t\t\tif( val.byteLength ) {\n\t\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.blob, val.byteLength )\n\t\t\t\t\n\t\t\t\tif( val instanceof Uint8Array ) pack.setUint8( pos ++, $mol_vary_tip.uint | $mol_vary_len[1] )\n\t\t\t\telse if( val instanceof Uint16Array ) pack.setUint8( pos ++, $mol_vary_tip.uint | $mol_vary_len[2] )\n\t\t\t\telse if( val instanceof Uint32Array ) pack.setUint8( pos ++, $mol_vary_tip.uint | $mol_vary_len[4] )\n\t\t\t\telse if( val instanceof BigUint64Array ) pack.setUint8( pos ++, $mol_vary_tip.uint | $mol_vary_len[8] )\n\t\t\t\t\n\t\t\t\telse if( val instanceof Int8Array ) pack.setUint8( pos ++, $mol_vary_tip.sint | ~$mol_vary_len[1] )\n\t\t\t\telse if( val instanceof Int16Array ) pack.setUint8( pos ++, $mol_vary_tip.sint | ~$mol_vary_len[2] )\n\t\t\t\telse if( val instanceof Int32Array ) pack.setUint8( pos ++, $mol_vary_tip.sint | ~$mol_vary_len[4] )\n\t\t\t\telse if( val instanceof BigInt64Array ) pack.setUint8( pos ++, $mol_vary_tip.sint | ~$mol_vary_len[8] )\n\t\t\t\t\n\t\t\t\t// else if( val instanceof Float16Array ) pos += pack.tlen( pos, 'spec', $mol_vary_spec.fp16 ) // compatibility issues\n\t\t\t\telse if( val instanceof Float32Array ) pack.setUint8( pos ++, $mol_vary_spec.fp32 )\n\t\t\t\telse if( val instanceof Float64Array ) pack.setUint8( pos ++, $mol_vary_spec.fp64 )\n\t\t\t\n\t\t\t\telse $mol_fail( new Error( `Unsupported type` ) )\n\t\t\t\t\n\t\t\t\tconst src = ( val instanceof Uint8Array ) ? val : new Uint8Array( val.buffer, val.byteOffset, val.byteLength )\n\t\t\t\tacquire( val.byteLength )\n\t\t\t\tbuffer.set( src, pos )\n\t\t\t\tpos += val.byteLength\n\t\t\t\t\t\n\t\t\t\tif( val.byteLength ) offsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_list = ( val: any[] )=> {\n\t\t\t\t\n\t\t\t\tif( val.length ) {\n\t\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t}\n\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.list, val.length )\n\t\t\t\tacquire( val.length * 10 )\n\t\t\t\tfor( const item of val ) dump( item )\n\t\t\t\n\t\t\t\tif( val.length ) offsets.set( val, offsets.size )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst dump_object = ( val: object )=> {\n\t\t\t\t\n\t\t\t\tconst offset = offsets.get( val )\n\t\t\t\tif( offset !== undefined ) return dump_unum( $mol_vary_tip.link, offset )\n\t\t\t\t\n\t\t\t\tconst proto = Reflect.getPrototypeOf( val )!\n\t\t\t\tconst lean = this.leanes.get( proto )\n\t\t\t\t\n\t\t\t\tconst keys = lean ? this.keys.get( proto )! : Object.keys( val )\n\t\t\t\tconst vals = lean ? lean( val ) : Object.values( val )\n\t\t\t\n\t\t\t\tdump_unum( $mol_vary_tip.tupl, vals.length )\n\t\t\t\t// dump( keys )\n\t\t\t\tacquire( vals.length * 2 * 10 )\n\t\t\t\tfor( const item of keys ) dump( item )\n\t\t\t\tfor( const item of vals ) dump( item )\n\t\t\t\t\n\t\t\t\tif( vals.length ) offsets.set( val, offsets.size )\n\t\t\t}\n\t\t\t\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\t// if( pos >= size ) $mol_fail( new Error( 'Wrong buffer length', { cause: buffer } ) )\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.setUint8( pos ++, $mol_vary_spec.both )\n\t\t\t\t\t\trelease( 9 )\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\tpack.setUint8( pos ++, val ? $mol_vary_spec.true : $mol_vary_spec.fake )\n\t\t\t\t\t\trelease( 9 )\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\tif( !Number.isInteger( val ) ) {\n\t\t\t\t\t\t\tpack.setUint8( pos ++, $mol_vary_spec.fp64 )\n\t\t\t\t\t\t\tpack.setFloat64( pos, val, true )\n\t\t\t\t\t\t\tpos += 8\n\t\t\t\t\t\t\trelease( 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\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\tdump_snum( $mol_vary_tip.sint, val )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdump_unum( $mol_vary_tip.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': return dump_string( val )\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\trelease( 9 )\n\t\t\t\t\t\t\treturn pack.setUint8( pos ++, $mol_vary_spec.none )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( ArrayBuffer.isView( val ) ) return dump_buffer( val as ArrayBufferView< ArrayBuffer > )\n\t\t\t\t\t\tif( Array.isArray( val ) ) return dump_list( val )\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn dump_object( val )\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\toffsets = new Map\n\t\t\tsizes = new Map\n\t\t\t\n\t\t\treturn buffer.slice( 0, pos )\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 = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\t++ pos\n\t\t\t\tconst num = kind & 0b11111\n\t\t\t\tif( num < 28 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === 28 ) {\n\t\t\t\t\tres = pack.getUint8( pos )\n\t\t\t\t\tpos += 1\n\t\t\t\t} else if( num === 29 ) {\n\t\t\t\t\tres= pack.getUint16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === 30 ) {\n\t\t\t\t\tres = pack.getUint32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === 31 ) {\n\t\t\t\t\tres = pack.getBigUint64( pos, true )\n\t\t\t\t\tif( res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported unum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_snum = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst num = pack.getInt8( pos ++ )\n\t\t\t\tif( num >= -28 ) return num\n\t\t\t\t\n\t\t\t\tlet res = 0 as number | bigint\n\t\t\t\t\n\t\t\t\tif( num === -29 ) {\n\t\t\t\t\tres = pack.getInt8( pos )\n\t\t\t\t\tpos += 1\n\t\t\t\t} else if( num === -30 ) {\n\t\t\t\t\tres= pack.getInt16( pos, true )\n\t\t\t\t\tpos += 2\n\t\t\t\t} else if( num === -31 ) {\n\t\t\t\t\tres = pack.getInt32( pos, true )\n\t\t\t\t\tpos += 4\n\t\t\t\t} else if( num === -32 ) {\n\t\t\t\t\tres = pack.getBigInt64( pos, true )\n\t\t\t\t\tif( res >= Number.MIN_SAFE_INTEGER && res <= Number.MAX_SAFE_INTEGER ) res = Number( res )\n\t\t\t\t\tpos += 8\n\t\t\t\t} else {\n\t\t\t\t\t$mol_fail( new Error( 'Unsupported snum', { cause: { num } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tconst read_text = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst [ text, bytes ] = $mol_charset_decode_from( buf, pack.byteOffset + pos, len )\n\t\t\t\tpos += bytes\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 = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst kind_item = pack.getUint8( pos ++ )\n\t\t\t\t\n\t\t\t\tswitch( kind_item ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_len[1]: return read_buffer( len, Uint8Array )\n\t\t\t\t\tcase $mol_vary_len[2]: return read_buffer( len, Uint16Array )\n\t\t\t\t\tcase $mol_vary_len[4]: return read_buffer( len, Uint32Array )\n\t\t\t\t\tcase $mol_vary_len[8]: return read_buffer( len, BigUint64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase ~$mol_vary_len[1] + 256: return read_buffer( len, Int8Array )\n\t\t\t\t\tcase ~$mol_vary_len[2] + 256: return read_buffer( len, Int16Array )\n\t\t\t\t\tcase ~$mol_vary_len[4] + 256: return read_buffer( len, Int32Array )\n\t\t\t\t\tcase ~$mol_vary_len[8] + 256: return read_buffer( len, BigInt64Array )\n\t\t\t\t\t\n\t\t\t\t\tcase $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 item kind', { cause: { kind_item } } ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst read_list = ( kind: number )=> {\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\tconst list = new Array( len ) as any[]\n\t\t\t\tfor( let i = 0; i < len; ++i ) list[i] = 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 = ( kind: number )=> {\n\t\t\t\tconst index = read_unum( kind ) 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 = ( kind: number )=> {\n\t\t\t\t\n\t\t\t\tconst len = read_unum( kind ) as number\n\t\t\t\t\n\t\t\t\tconst keys = new Array( len ) as any[]\n\t\t\t\tconst vals = new Array( len ) as any[]\n\t\t\t\t\n\t\t\t\tfor( let i = 0; i < len; ++i ) keys[i] = read_vary()\n\t\t\t\tfor( let i = 0; i < len; ++i ) vals[i] = read_vary()\n\t\t\t\t\n\t\t\t\tconst shape = JSON.stringify([ keys, vals.map( v => typeof v ) ])\n\t\t\t\t\n\t\t\t\tlet obj\n\t\t\t\tconst rich = this.riches.get( shape )\n\t\t\t\tif( rich ) {\n\t\t\t\t\tobj = rich( ... vals )\n\t\t\t\t} else {\n\t\t\t\t\tobj = {} as any\n\t\t\t\t\tfor( let i = 0; i < len; ++i ) obj[ keys[i] ] = vals[i]\n\t\t\t\t}\n\t\t\t\t\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 = ( kind: number )=> {\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_spec.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 $mol_vary_spec.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 $mol_vary_spec.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 $mol_vary_spec.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 $mol_vary_spec.fp64: {\n\t\t\t\t\t\tconst val = pack.getFloat64( ++ pos, true )\n\t\t\t\t\t\tpos += 8\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 $mol_vary_spec.fp32: {\n\t\t\t\t\t\tconst val = pack.getFloat32( ++ pos, true )\n\t\t\t\t\t\tpos += 4\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 $mol_vary_spec.fp16: {\n\t\t\t\t\t\tconst val = pack.getFloat16( ++ pos, true )\n\t\t\t\t\t\tpos += 2\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 kind = pack.getUint8( pos )\n\t\t\t\tconst tip = kind & 0b111_00000\n\t\t\t\t\n\t\t\t\tswitch( tip ) {\n\t\t\t\t\t\n\t\t\t\t\tcase $mol_vary_tip.uint: return read_unum( kind )\n\t\t\t\t\tcase $mol_vary_tip.sint: return read_snum( kind )\n\t\t\t\t\tcase $mol_vary_tip.link: return read_link( kind )\n\t\t\t\t\tcase $mol_vary_tip.text: return read_text( kind )\n\t\t\t\t\tcase $mol_vary_tip.list: return read_list( kind )\n\t\t\t\t\tcase $mol_vary_tip.blob: return read_blob( kind )\n\t\t\t\t\tcase $mol_vary_tip.tupl: return read_tupl( kind )\n\t\t\t\t\tcase $mol_vary_tip.spec: return read_spec( kind )\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\tstatic leanes = new Map< object, ( val: any )=> readonly any[] >()\n\t\tstatic keys = new Map< object, readonly string[] >()\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\tkeys: Keys,\n\t\t\trich: ( ( ... vals: Vals )=> Instance ) | ( ()=> Instance ),\n\t\t\tlean: ( obj: Instance )=> 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 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.keys.set( proto, keys )\n\t\t\tthis.riches.set( shape, rich )\n\t\t}\n\t\t\n\t}\n\t\n\tlet buffer = new Uint8Array( 128 )\n\tlet pack = new DataView( buffer.buffer )\n\t\n\t/** Native Map support */\n\t$mol_vary.type(\n\t\t[ 'keys', 'vals' ],\n\t\t( keys = [] as readonly any[], vals = [] as readonly any[] )=> new Map( keys.map( ( k, i )=> [ k, vals[i] ] ) ),\n\t\tobj => [ [ ... obj.keys() ], [ ... obj.values() ] ],\n\t)\n\t\n\t/** Native Set support */\n\t$mol_vary.type(\n\t\t[ 'vals' ],\n\t\t( vals = [] as readonly any[] )=> new Set( vals ),\n\t\tobj => [ [ ... obj.values() ] ],\n\t)\n\t\n\t/** Native Date support */\n\t$mol_vary.type(\n\t\t[ 'unix_time' ],\n\t\t( ts = 0 )=> new Date( ts * 1000 ),\n\t\tobj => [ obj.valueOf() / 1000 ],\n\t)\n\t\n}\n"]}
|