mol_crypto_lib 0.0.414 → 0.0.415
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 +164 -0
- package/node.deps.json +1 -1
- package/node.esm.js +712 -20
- package/node.esm.js.map +1 -1
- package/node.js +712 -20
- package/node.js.map +1 -1
- package/node.test.js +1614 -1643
- package/node.test.js.map +1 -1
- package/package.json +18 -1
- package/web.d.ts +4 -0
- package/web.deps.json +1 -1
- package/web.esm.js +27 -20
- package/web.esm.js.map +1 -1
- package/web.js +27 -20
- package/web.js.map +1 -1
- package/web.test.js +3 -7
- package/web.test.js.map +1 -1
package/node.esm.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../mam.jam.js","-","../../../../mam.ts","../../secret/mol/crypto/secret/secret.ts","../../cipher/mol/crypto/cipher/cipher.ts","../../auditor/mol/crypto/auditor/auditor.ts","../../hash/mol/crypto/hash/hash.ts","../../salt/mol/crypto/salt/salt.ts"],"names":[],"mappings":"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","file":"node.esm.js","sourcesContent":[null,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\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'AES-GCM',\n\t\tlength: 128,\n\t\ttagLength: 32,\n\t}\n\t\n\t/** Symmetric cipher with shortest payload */\n\texport class $mol_crypto_secret extends Object {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 16\n\t\t\n\t\t/** Extra size in bytes to encrypted data. */\n\t\tstatic extra = 4\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'private' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async generate() {\n\t\t\treturn new this(\n\t\t\t\tawait crypto.subtle.generateKey(\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ]\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait crypto.subtle.importKey(\n\t\t\t\t\t'raw',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 16 bytes */\n\t\tasync serial() {\n\t\t\treturn await crypto.subtle.exportKey(\n\t\t\t\t'raw',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\n\t\t/** 4 bytes + data length */\n\t\tasync encrypt( open: BufferSource, salt: BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await crypto.subtle.encrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\topen\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync decrypt( closed: BufferSource, salt : BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await crypto.subtle.decrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\tclosed\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'RSA-OAEP',\n\t\tmodulusLength: 1024,\n\t\tpublicExponent: new Uint8Array([ 1, 0, 1 ]),\n\t\thash: 'SHA-1',\n\t}\n\t\n\t/** Asymmetric cipher pair with shortest payload */\n\texport async function $mol_crypto_cipher_pair( this: $ ) {\n\t\t\n\t\tconst pair = await $.crypto.subtle.generateKey(\n\t\t\talgorithm,\n\t\t\ttrue,\n\t\t\t[ 'encrypt', 'decrypt' ]\n\t\t)\n\t\t\n\t\treturn {\n\t\t\t\n\t\t\tpublic: new $mol_crypto_cipher_public(\n\t\t\t\tpair.publicKey as CryptoKey & { type: 'public' }\n\t\t\t),\n\t\t\t\n\t\t\tprivate: new $mol_crypto_cipher_private(\n\t\t\t\tpair.privateKey as CryptoKey & { type: 'private' }\n\t\t\t),\n\t\t\t\n\t\t}\n\t\t\n\t}\n\n\t/** Asymmetric cipher public key wrapper with shortest payload */\n\texport class $mol_crypto_cipher_public extends Object {\n\t\t\n\t\t/** Public key size in bytes. */\n\t\tstatic size = 162\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'public' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait crypto.subtle.importKey(\n\t\t\t\t\t'spki',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'public' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 162 bytes */\n\t\tasync serial() {\n\t\t\treturn await crypto.subtle.exportKey(\n\t\t\t\t'spki',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** max 86 bytes input, 128 bytes output */\n\t\tasync encrypt( data: BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await crypto.subtle.encrypt(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n\t/** Asymmetric cipher private key wrapper with shortest payload */\n\texport class $mol_crypto_cipher_private extends Object {\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'private' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait crypto.subtle.importKey(\n\t\t\t\t\t'pkcs8',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'decrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** ~640 bytes */\n\t\tasync serial() {\n\t\t\treturn await crypto.subtle.exportKey(\n\t\t\t\t'pkcs8',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync decrypt( data: BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await crypto.subtle.decrypt(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\t/** Encrypted size in bytes. */\n\texport const $mol_crypto_cipher_ecrypted_size = 128\n\n}\n","namespace $ {\n\n\t/** @FIXME Need polyfill for Safari (https://github.com/microsoft/MSR-JavaScript-Crypto/) */\n\tconst algorithm = {\n\t\tname: 'RSA-PSS',\n\t\tmodulusLength: 256,\n\t\tpublicExponent: new Uint8Array([ 1, 0, 1 ]),\n\t\thash: 'SHA-1',\n\t\tsaltLength: 8,\n\t}\n\t\n\t/** Asymmetric signing pair with shortest payload */\n\texport async function $mol_crypto_auditor_pair( this: $ ) {\n\t\t\n\t\tconst pair = await $.crypto.subtle.generateKey(\n\t\t\talgorithm,\n\t\t\ttrue,\n\t\t\t[ 'sign', 'verify' ]\n\t\t)\n\t\t\n\t\treturn {\n\t\t\t\n\t\t\tpublic: new $mol_crypto_auditor_public(\n\t\t\t\tpair.publicKey as CryptoKey & { type: 'public' }\n\t\t\t),\n\t\t\t\n\t\t\tprivate: new $mol_crypto_auditor_private(\n\t\t\t\tpair.privateKey as CryptoKey & { type: 'private' }\n\t\t\t),\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** Asymmetric signing public key wrapper with shortest payload */\n\texport class $mol_crypto_auditor_public extends Object {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 62\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'public' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait crypto.subtle.importKey(\n\t\t\t\t\t'spki',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'verify' ],\n\t\t\t\t) as CryptoKey & { type: 'public' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 62 bytes */\n\t\tasync serial() {\n\t\t\treturn await crypto.subtle.exportKey(\n\t\t\t\t'spki',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync verify( data: BufferSource, sign: BufferSource ) {\n\t\t\treturn await crypto.subtle.verify(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tsign,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\t/** Asymmetric signing private key wrapper with shortest payload */\n\texport class $mol_crypto_auditor_private extends Object {\n\t\t\n\t\t/** Max key size in bytes. */\n\t\tstatic size = 200\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'private' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait crypto.subtle.importKey(\n\t\t\t\t\t'pkcs8',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'sign' ],\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 190-200 bytes */\n\t\tasync serial() {\n\t\t\treturn await crypto.subtle.exportKey(\n\t\t\t\t'pkcs8',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 32 bytes */\n\t\tasync sign( data: BufferSource ) {\n\t\t\t\n\t\t\treturn await crypto.subtle.sign(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tdata\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** Sign size in bytes. */\n\texport const $mol_crypto_auditor_sign_size = 32\n\t\n}\n","namespace $ {\n\t\n\tlet sponge = new Uint32Array(80)\n\t\n\t/** Fast small sync SHA-1 */\n\texport function $mol_crypto_hash( data: Uint8Array ) {\n\t\t\n\t\tconst bits = data.byteLength << 3\n\t\tconst kbits = bits >> 5\n\t\tconst kword = 0x80 << ( 24 - bits & 0b11111 )\n\t\t\n\t\tconst bytes = 16 + ( bits + 64 >>> 9 << 4 )\n\t\tconst klens = bytes - 1\n\t\tconst words = new Int32Array( data.buffer, data.byteOffset, data.byteLength >> 2 )\n\t\t\n\t\tlet tail = 0\n\t\tfor( let i = words.length * 4; i < data.length; ++i ) {\n\t\t\ttail |= data[i] << ( i << 3 & 0b11000 )\n\t\t}\n\t\t\n\t\t// Initial\n\t\tconst hash = new Int32Array([ 1732584193, -271733879, -1732584194, 271733878, -1009589776 ])\n\t\t\n\t\t// Digest\n\t\tfor( let i = 0; i < bytes; i += 16 ) {\n\t\t\t\n\t\t\tlet h0 = hash[0]\n\t\t\tlet h1 = hash[1]\n\t\t\tlet h2 = hash[2]\n\t\t\tlet h3 = hash[3]\n\t\t\tlet h4 = hash[4]\n\n\t\t\tfor( let j = 0; j < 80; ++j ) {\n\t\t\t\t\n\t\t\t\tlet turn\n\t\t\t\t\n\t\t\t\tif( j < 16 ) {\n\t\t\t\t\t\n\t\t\t\t\tconst k = i + j\n\t\t\t\t\tif( k === klens ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = bits\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet word =\n\t\t\t\t\t\t\tk === words.length ? tail :\n\t\t\t\t\t\t\tk > words.length ? 0 :\n\t\t\t\t\t\t\twords[k]\n\t\t\t\t\t\t\n\t\t\t\t\t\tword = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // LE -> BE\n\t\t\t\t\t\tif( k === kbits ) word |= kword\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = word\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tturn = ( h1 & h2 | ~h1 & h3 ) + 1518500249\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\t\n\t\t\t\t\tturn =\n\t\t\t\t\t\tj < 20 ? ( h1 & h2 | ~h1 & h3 ) + 1518500249 :\n\t\t\t\t\t\tj < 40 ? ( h1 ^ h2 ^ h3 ) + 1859775393 :\n\t\t\t\t\t\tj < 60 ? ( h1 & h2 | h1 & h3 | h2 & h3 ) - 1894007588 :\n\t\t\t\t\t\t( h1 ^ h2 ^ h3 ) - 899497514\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = turn + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 ))\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\thash[0] += h0\n\t\t\thash[1] += h1\n\t\t\thash[2] += h2\n\t\t\thash[3] += h3\n\t\t\thash[4] += h4\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < 20; ++i ) {\n\t\t\tconst word = hash[i]\n\t\t\thash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // BE -> LE\n\t\t}\n\n\t\treturn new Uint8Array( hash.buffer )\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** 8 byte */\n\texport function $mol_crypto_salt() {\n\t\treturn crypto.getRandomValues(\n\t\t\tnew Uint8Array( 8 )\n\t\t)\n\t}\n\t\n}\n"]}
|
1
|
+
{"version":3,"sources":["../../../../mam.jam.js","-","../../../../mam.ts","../../../../node/node.ts","../../../../node/node/node.node.ts","../../../log3/mol/log3/log3.ts","../../../ambient/mol/ambient/ambient.ts","../../../delegate/mol/delegate/delegate.ts","../../../owning/mol/owning/owning.ts","../../../fail/mol/fail/fail.ts","../../../fail/hidden/mol/fail/hidden/hidden.ts","../../../type/writable/writable.ts","../../../object2/mol/object2/object2.ts","../../../tree/mol/tree/tree.ts","../../../term/color/mol/term/color/color.ts","../../../log3/mol/log3/log3.node.ts","../../../env/mol/env/env.ts","../../../env/mol/env/env.node.ts","../../../exec/mol/exec/exec.node.ts","../../native/mol/crypto/native/native.node.ts","../../secret/mol/crypto/secret/secret.ts","../../cipher/mol/crypto/cipher/cipher.ts","../../auditor/mol/crypto/auditor/auditor.ts","../../hash/mol/crypto/hash/hash.ts","../../salt/mol/crypto/salt/salt.ts"],"names":[],"mappings":"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","file":"node.esm.js","sourcesContent":[null,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\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n",null,"interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\treturn target.require( name )\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof having['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n",null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $\n\t\t\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\tif( Symbol.toStringTag in this ) return this[ Symbol.toStringTag ]\n\t\t\treturn this.name\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\texport const $mol_tree_convert : unique symbol = Symbol( '$mol_tree_convert' )\n\texport type $mol_tree_path = Array< string | number | null >\n\n\texport type $mol_tree_hack = ( input : $mol_tree , context : $mol_tree_context )=> readonly $mol_tree[]\n\texport type $mol_tree_context = Record< string , $mol_tree_hack >\n\texport type $mol_tree_library = Record< string , $mol_tree_context >\n\t\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree extends $mol_object2 {\n\t\t\n\t\treadonly type : string\n\t\treadonly data : string\n\t\treadonly sub : readonly $mol_tree[]\n\t\treadonly baseUri : string\n\t\treadonly row : number\n\t\treadonly col : number\n\t\treadonly length : number\n\t\t\n\t\tconstructor( config : Partial<$mol_tree> = {} ) {\n\n\t\t\tsuper()\n\n\t\t\tthis.type = config.type || ''\n\t\t\t\n\t\t\tif( config.value !== undefined ) {\n\n\t\t\t\tvar sub = $mol_tree.values( config.value )\n\t\t\t\t\n\t\t\t\tif( config.type || sub.length > 1 ) {\n\n\t\t\t\t\tthis.sub = [ ... sub , ...( config.sub || [] ) ]\n\t\t\t\t\tthis.data = config.data || ''\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.data = sub[ 0 ].data\n\t\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.data = config.data || ''\n\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t}\n\t\t\t\n\t\t\tthis.baseUri = config.baseUri || ''\n\t\t\tthis.row = config.row || 0\n\t\t\tthis.col = config.col || 0\n\t\t\tthis.length = config.length || 0\n\n\t\t}\n\t\t\n\t\tstatic values( str : string , baseUri? : string ) {\n\n\t\t\treturn str.split( '\\n' ).map( ( data , index ) => new $mol_tree( {\n\t\t\t\tdata : data ,\n\t\t\t\tbaseUri : baseUri ,\n\t\t\t\trow : index + 1 ,\n\t\t\t\tlength : data.length ,\n\t\t\t} ) )\n\n\t\t}\n\t\t\n\t\t/** Cloning node with overrides. */\n\t\tclone( config : Partial<$mol_tree> = {} ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\ttype : ( 'type' in config ) ? config.type : this.type ,\n\t\t\t\tdata : ( 'data' in config ) ? config.data : this.data ,\n\t\t\t\tsub : ( 'sub' in config ) ? config.sub : this.sub ,\n\t\t\t\tbaseUri : ( 'baseUri' in config ) ? config.baseUri : this.baseUri ,\n\t\t\t\trow : ( 'row' in config ) ? config.row : this.row ,\n\t\t\t\tcol : ( 'col' in config ) ? config.col : this.col ,\n\t\t\t\tlength : ( 'length' in config ) ? config.length : this.length ,\n\t\t\t\tvalue : config.value\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived node. */\n\t\tmake( config : Partial<$mol_tree> ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\tbaseUri : this.baseUri ,\n\t\t\t\trow : this.row ,\n\t\t\t\tcol : this.col ,\n\t\t\t\tlength : this.length ,\n\t\t\t\t... config ,\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tmake_data( value : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ value , sub })\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tmake_struct( type : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ type , sub })\n\t\t}\n\t\t\n\t\t/** Parses tree format to AST. */\n\t\tstatic fromString( str : string , baseUri? : string ) {\n\t\t\t\n\t\t\tvar root = new $mol_tree( { baseUri : baseUri } )\n\t\t\tvar stack = [ root ]\n\t\t\t\n\t\t\tvar row = 0\n\t\t\tvar prefix = str.replace( /^\\n?(\\t*)[\\s\\S]*/ , '$1' )\n\t\t\tvar lines = str.replace( new RegExp( '^\\\\t{0,' + prefix.length + '}' , 'mg' ) , '' ).split( '\\n' )\n\n\t\t\tlines.forEach( line => {\n\n\t\t\t\t++row\n\t\t\t\t\n\t\t\t\tvar chunks = /^(\\t*)((?:[^\\n\\t\\\\ ]+ *)*)(\\\\[^\\n]*)?(.*?)(?:$|\\n)/m.exec( line )\n\t\t\t\tif( !chunks || chunks[4] ) return this.$.$mol_fail( new Error( `Syntax error at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tvar indent = chunks[ 1 ]\n\t\t\t\tvar path = chunks[ 2 ]\n\t\t\t\tvar data = chunks[ 3 ]\n\t\t\t\t\n\t\t\t\tvar deep = indent.length\n\t\t\t\tvar types = path ? path.replace( / $/ , '' ).split( / +/ ) : []\n\t\t\t\t\n\t\t\t\tif( stack.length <= deep ) return this.$.$mol_fail( new Error( `Too many tabs at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tstack.length = deep + 1\n\t\t\t\tvar parent = stack[ deep ];\n\t\t\t\t\n\t\t\t\tlet col = deep\n\t\t\t\ttypes.forEach( type => {\n\t\t\t\t\tif( !type ) return this.$.$mol_fail( new Error( `Unexpected space symbol ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\tvar next = new $mol_tree({ type , baseUri , row , col , length : type.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\t\n\t\t\t\t\tparent = next\n\t\t\t\t\tcol += type.length + 1\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( data ) {\n\t\t\t\t\tvar next = new $mol_tree({ data : data.substring( 1 ) , baseUri , row , col , length : data.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstack.push( parent )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t/**\n\t\t * Parses json.tree lang to AST.\n\t\t * @todo Move to $mol_tree_json_from\n\t\t */\n\t\tstatic fromJSON( json : any , baseUri = '' ) : $mol_tree {\n\n\t\t\tswitch( true ) {\n\n\t\t\t\tcase typeof json === 'boolean' :\n\t\t\t\tcase typeof json === 'number' :\n\t\t\t\tcase json === null :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : String( json ) ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tcase typeof json === 'string' :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\n\t\t\t\tcase Array.isArray( json ) :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"/\" ,\n\t\t\t\t\t\tsub : ( json as any[] ).map( json => $mol_tree.fromJSON( json , baseUri ) )\n\t\t\t\t\t})\n\n\t\t\t\tcase json instanceof Date :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json.toISOString() ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tdefault :\n\n\t\t\t\t\tif( typeof json[ $mol_tree_convert ] === 'function' ) {\n\t\t\t\t\t\treturn json[ $mol_tree_convert ]()\n\t\t\t\t\t}\n\n\t\t\t\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\t\t\t\treturn $mol_tree.fromJSON( json.toJSON() )\n\t\t\t\t\t}\n\n\t\t\t\t\tif( json instanceof Error ) {\n\t\t\t\t\t\tconst { name , message , stack } = json\n\t\t\t\t\t\tjson = { ... json , name , message , stack }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar sub : $mol_tree[] = []\n\t\t\t\t\t\n\t\t\t\t\tfor( var key in json ) {\n\n\t\t\t\t\t\tif( json[ key ] === undefined ) continue\n\n\t\t\t\t\t\tconst subsub = $mol_tree.fromJSON( json[ key ] , baseUri )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\ttype : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\tvalue : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsub.push( child )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"*\" ,\n\t\t\t\t\t\tsub : sub ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tget uri() {\n\t\t\treturn this.baseUri + '#' + this.row + ':' + this.col\n\t\t}\n\t\t\n\t\t/** Serializas to tree format. */\n\t\ttoString( prefix = '' ) : string {\n\t\t\tvar output = ''\n\t\t\t\n\t\t\tif( this.type.length ) {\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\t\t\t\toutput += this.type\n\t\t\t\tif( this.sub.length == 1 ) {\n\t\t\t\t\treturn output + ' ' + this.sub[ 0 ].toString( prefix )\n\t\t\t\t}\n\t\t\t\toutput += \"\\n\"\n\t\t\t} else if( this.data.length || prefix.length ) {\n\t\t\t\toutput += \"\\\\\" + this.data + \"\\n\"\n\t\t\t}\n\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\toutput += prefix\n\t\t\t\toutput += child.toString( prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t\treturn output\n\t\t}\n\t\t\n\t\t/**\n\t\t * Serializes AST to json.tree lang.\n\t\t * @todo Move to $mol_tree_json_to\n\t\t */\n\t\ttoJSON() : any {\n\t\t\tif( !this.type ) return this.value\n\t\t\t\n\t\t\tif( this.type === 'true' ) return true\n\t\t\tif( this.type === 'false' ) return false\n\t\t\tif( this.type === 'null' ) return null\n\t\t\t\n\t\t\tif( this.type === '*' ) {\n\t\t\t\tvar obj = {}\n\t\t\t\tfor( var child of this.sub ) {\n\t\t\t\t\tif( child.type === '-' ) continue\n\t\t\t\t\tvar key = child.type || child.clone({ sub : child.sub.slice( 0 , child.sub.length - 1 ) }).value\n\t\t\t\t\tvar val = child.sub[ child.sub.length - 1 ].toJSON()\n\t\t\t\t\tif( val !== undefined ) ( obj as any )[ key ] = val\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === '/' ) {\n\t\t\t\tvar res : any[] = []\n\t\t\t\tthis.sub.forEach(\n\t\t\t\t\tchild => {\n\t\t\t\t\t\tif( child.type === '-' ) return\n\t\t\t\t\t\tvar val = child.toJSON()\n\t\t\t\t\t\tif( val !== undefined ) res.push( val )\n\t\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\tif( this.type === 'time' ) {\n\t\t\t\treturn new Date( this.value )\n\t\t\t}\n\t\t\t\n\t\t\tconst numb = Number( this.type ) \n\t\t\tif( !Number.isNaN( numb ) || this.type === 'NaN' ) return numb\n\t\t\t\n\t\t\tthrow new Error( `Unknown type (${this.type}) at ${this.uri}` )\n\t\t}\n\t\t\n\t\tget value() {\n\t\t\tvar values : string[] = []\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\tif( child.type ) continue\n\t\t\t\tvalues.push( child.value )\n\t\t\t}\n\t\t\treturn this.data + values.join( \"\\n\" )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree , ...path : $mol_tree_path ) : $mol_tree {\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.sub.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) sub.push( new $mol_tree({ type }).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || new $mol_tree ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub : ( ( this.sub.length === 0 ) ? [ new $mol_tree() ] : this.sub ).map( item => item.insert( value , ... path.slice( 1 ) ) ) })\n\n\t\t\t}\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree_path ) {\n\t\t\tvar next = [ this as $mol_tree ]\n\t\t\tfor( var type of path ) {\n\t\t\t\tif( !next.length ) break\n\t\t\t\tvar prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\t\t\t\t\t\t\tfor( var child of item.sub ) {\n\t\t\t\t\t\t\t\tif( !type || ( child.type == type ) ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\t\t\t\t\t\t\tif( type < item.sub.length ) next.push( item.sub[ type ] )\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.sub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new $mol_tree( { sub : next } )\n\t\t}\n\t\t\n\t\t/** Filter subnodes by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\t\t\tvar sub = this.sub.filter(\n\t\t\t\tfunction( item ) {\n\t\t\t\t\t\n\t\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\t\n\t\t\t\t\tif( value == null ) {\n\t\t\t\t\t\treturn Boolean( found.sub.length )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found.sub.some( child => child.value == value )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn new $mol_tree( { sub : sub } )\n\t\t}\n\n\t\t/** @deprecated Use $mol_tree:hack */\n\t\ttransform( visit : ( stack : $mol_tree[] , sub : ()=> $mol_tree[] )=> $mol_tree | null , stack : $mol_tree[] = [] ) : $mol_tree | null {\n\t\t\tconst sub_stack = [ this , ...stack ]\n\t\t\treturn visit( sub_stack , ()=> this.sub.map( node => node.transform( visit , sub_stack ) ).filter( n => n ) as $mol_tree[] )\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack( context : $mol_tree_context ) : $mol_tree {\n\t\t\t\n\t\t\tconst sub = ( [] as $mol_tree[] ).concat( ... this.sub.map( child => {\n\n\t\t\t\tconst handle = context[ child.type ] || context[ '' ]\n\t\t\t\tif( !handle ) $mol_fail( child.error( 'Handler not defined' ) )\n\t\t\t\t\n\t\t\t\treturn handle( child , context )\n\n\t\t\t} ) )\n\n\t\t\treturn this.clone({ sub })\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string ) {\n\t\t\treturn new Error( `${message}:\\n${ this } ${this.baseUri}:${this.row}:${this.col}` )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\tstatic white = this.ansi( 97, 39 )\n\t\t\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\tstatic White = ( str: string )=> this.inverse( this.white( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tconst tree = this.$mol_tree.fromJSON( event ).clone({ type })\n\t\t\tlet str = color( tree.toString() )\n\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) return $mol_fail( res.error || new Error( res.stderr.toString() ) )\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\texport var $mol_crypto_native = $node.crypto.webcrypto\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'AES-GCM',\n\t\tlength: 128,\n\t\ttagLength: 32,\n\t}\n\t\n\t/** Symmetric cipher with shortest payload */\n\texport class $mol_crypto_secret extends Object {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 16\n\t\t\n\t\t/** Extra size in bytes to encrypted data. */\n\t\tstatic extra = 4\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'private' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async generate() {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.generateKey(\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ]\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'raw',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt', 'decrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 16 bytes */\n\t\tasync serial() {\n\t\t\treturn await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'raw',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\n\t\t/** 4 bytes + data length */\n\t\tasync encrypt( open: BufferSource, salt: BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await $mol_crypto_native.subtle.encrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\topen\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync decrypt( closed: BufferSource, salt : BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await $mol_crypto_native.subtle.decrypt(\n\t\t\t\t{\n\t\t\t\t\t... algorithm,\n\t\t\t\t\tiv: salt,\n\t\t\t\t},\n\t\t\t\tthis.native,\n\t\t\t\tclosed\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\tconst algorithm = {\n\t\tname: 'RSA-OAEP',\n\t\tmodulusLength: 1024,\n\t\tpublicExponent: new Uint8Array([ 1, 0, 1 ]),\n\t\thash: 'SHA-1',\n\t}\n\t\n\t/** Asymmetric cipher pair with shortest payload */\n\texport async function $mol_crypto_cipher_pair( this: $ ) {\n\t\t\n\t\tconst pair = await $mol_crypto_native.subtle.generateKey(\n\t\t\talgorithm,\n\t\t\ttrue,\n\t\t\t[ 'encrypt', 'decrypt' ]\n\t\t)\n\t\t\n\t\treturn {\n\t\t\t\n\t\t\tpublic: new $mol_crypto_cipher_public(\n\t\t\t\tpair.publicKey as CryptoKey & { type: 'public' }\n\t\t\t),\n\t\t\t\n\t\t\tprivate: new $mol_crypto_cipher_private(\n\t\t\t\tpair.privateKey as CryptoKey & { type: 'private' }\n\t\t\t),\n\t\t\t\n\t\t}\n\t\t\n\t}\n\n\t/** Asymmetric cipher public key wrapper with shortest payload */\n\texport class $mol_crypto_cipher_public extends Object {\n\t\t\n\t\t/** Public key size in bytes. */\n\t\tstatic size = 162\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'public' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'spki',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'encrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'public' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 162 bytes */\n\t\tasync serial() {\n\t\t\treturn await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'spki',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** max 86 bytes input, 128 bytes output */\n\t\tasync encrypt( data: BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await $mol_crypto_native.subtle.encrypt(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\n\t/** Asymmetric cipher private key wrapper with shortest payload */\n\texport class $mol_crypto_cipher_private extends Object {\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'private' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'pkcs8',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'decrypt' ],\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** ~640 bytes */\n\t\tasync serial() {\n\t\t\treturn await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'pkcs8',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync decrypt( data: BufferSource ): Promise< ArrayBuffer > {\n\t\t\treturn await $mol_crypto_native.subtle.decrypt(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\t/** Encrypted size in bytes. */\n\texport const $mol_crypto_cipher_ecrypted_size = 128\n\n}\n","namespace $ {\n\n\t/** @FIXME Need polyfill for Safari and Node (https://github.com/microsoft/MSR-JavaScript-Crypto/) */\n\tconst algorithm = {\n\t\tname: 'RSA-PSS',\n\t\tmodulusLength: 256,\n\t\tpublicExponent: new Uint8Array([ 1, 0, 1 ]),\n\t\thash: 'SHA-1',\n\t\tsaltLength: 8,\n\t}\n\t\n\t/** Asymmetric signing pair with shortest payload */\n\texport async function $mol_crypto_auditor_pair( this: $ ) {\n\t\t\n\t\tconst pair = await $mol_crypto_native.subtle.generateKey(\n\t\t\talgorithm,\n\t\t\ttrue,\n\t\t\t[ 'sign', 'verify' ]\n\t\t)\n\t\t\n\t\treturn {\n\t\t\t\n\t\t\tpublic: new $mol_crypto_auditor_public(\n\t\t\t\tpair.publicKey as CryptoKey & { type: 'public' }\n\t\t\t),\n\t\t\t\n\t\t\tprivate: new $mol_crypto_auditor_private(\n\t\t\t\tpair.privateKey as CryptoKey & { type: 'private' }\n\t\t\t),\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** Asymmetric signing public key wrapper with shortest payload */\n\texport class $mol_crypto_auditor_public extends Object {\n\t\t\n\t\t/** Key size in bytes. */\n\t\tstatic size = 62\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'public' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'spki',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'verify' ],\n\t\t\t\t) as CryptoKey & { type: 'public' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 62 bytes */\n\t\tasync serial() {\n\t\t\treturn await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'spki',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\tasync verify( data: BufferSource, sign: BufferSource ) {\n\t\t\treturn await $mol_crypto_native.subtle.verify(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tsign,\n\t\t\t\tdata,\n\t\t\t)\n\t\t}\n\t\t\n\t}\n\t\n\t/** Asymmetric signing private key wrapper with shortest payload */\n\texport class $mol_crypto_auditor_private extends Object {\n\t\t\n\t\t/** Max key size in bytes. */\n\t\tstatic size = 200\n\t\t\n\t\tconstructor(\n\t\t\treadonly native: CryptoKey & { type: 'private' }\n\t\t) {\n\t\t\tsuper()\n\t\t}\n\t\n\t\tstatic async from( serial: BufferSource ) {\n\t\t\treturn new this(\n\t\t\t\tawait $mol_crypto_native.subtle.importKey(\n\t\t\t\t\t'pkcs8',\n\t\t\t\t\tserial,\n\t\t\t\t\talgorithm,\n\t\t\t\t\ttrue,\n\t\t\t\t\t[ 'sign' ],\n\t\t\t\t) as CryptoKey & { type: 'private' }\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 190-200 bytes */\n\t\tasync serial() {\n\t\t\treturn await $mol_crypto_native.subtle.exportKey(\n\t\t\t\t'pkcs8',\n\t\t\t\tthis.native,\n\t\t\t)\n\t\t}\n\t\t\n\t\t/** 32 bytes */\n\t\tasync sign( data: BufferSource ) {\n\t\t\t\n\t\t\treturn await $mol_crypto_native.subtle.sign(\n\t\t\t\talgorithm,\n\t\t\t\tthis.native,\n\t\t\t\tdata\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n\t/** Sign size in bytes. */\n\texport const $mol_crypto_auditor_sign_size = 32\n\t\n}\n","namespace $ {\n\t\n\tlet sponge = new Uint32Array(80)\n\t\n\t/** Fast small sync SHA-1 */\n\texport function $mol_crypto_hash( data: Uint8Array ) {\n\t\t\n\t\tconst bits = data.byteLength << 3\n\t\tconst kbits = bits >> 5\n\t\tconst kword = 0x80 << ( 24 - bits & 0b11111 )\n\t\t\n\t\tconst bytes = 16 + ( bits + 64 >>> 9 << 4 )\n\t\tconst klens = bytes - 1\n\t\tconst words = new Int32Array( data.buffer, data.byteOffset, data.byteLength >> 2 )\n\t\t\n\t\tlet tail = 0\n\t\tfor( let i = words.length * 4; i < data.length; ++i ) {\n\t\t\ttail |= data[i] << ( i << 3 & 0b11000 )\n\t\t}\n\t\t\n\t\t// Initial\n\t\tconst hash = new Int32Array([ 1732584193, -271733879, -1732584194, 271733878, -1009589776 ])\n\t\t\n\t\t// Digest\n\t\tfor( let i = 0; i < bytes; i += 16 ) {\n\t\t\t\n\t\t\tlet h0 = hash[0]\n\t\t\tlet h1 = hash[1]\n\t\t\tlet h2 = hash[2]\n\t\t\tlet h3 = hash[3]\n\t\t\tlet h4 = hash[4]\n\n\t\t\tfor( let j = 0; j < 80; ++j ) {\n\t\t\t\t\n\t\t\t\tlet turn\n\t\t\t\t\n\t\t\t\tif( j < 16 ) {\n\t\t\t\t\t\n\t\t\t\t\tconst k = i + j\n\t\t\t\t\tif( k === klens ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = bits\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tlet word =\n\t\t\t\t\t\t\tk === words.length ? tail :\n\t\t\t\t\t\t\tk > words.length ? 0 :\n\t\t\t\t\t\t\twords[k]\n\t\t\t\t\t\t\n\t\t\t\t\t\tword = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // LE -> BE\n\t\t\t\t\t\tif( k === kbits ) word |= kword\n\t\t\t\t\t\t\n\t\t\t\t\t\tsponge[j] = word\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tturn = ( h1 & h2 | ~h1 & h3 ) + 1518500249\n\t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t\n\t\t\t\t\tconst shuffle = sponge[j-3] ^ sponge[j-8] ^ sponge[j-14] ^ sponge[j-16]\n\t\t\t\t\tsponge[j] = shuffle << 1 | shuffle >>> 31\n\t\t\t\t\t\n\t\t\t\t\tturn =\n\t\t\t\t\t\tj < 20 ? ( h1 & h2 | ~h1 & h3 ) + 1518500249 :\n\t\t\t\t\t\tj < 40 ? ( h1 ^ h2 ^ h3 ) + 1859775393 :\n\t\t\t\t\t\tj < 60 ? ( h1 & h2 | h1 & h3 | h2 & h3 ) - 1894007588 :\n\t\t\t\t\t\t( h1 ^ h2 ^ h3 ) - 899497514\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst next = turn + h4 + ( sponge[j] >>> 0 ) + (( h0 << 5 )|( h0 >>> 27 ))\n\n\t\t\t\th4 = h3\n\t\t\t\th3 = h2\n\t\t\t\th2 = ( h1 << 30 )|( h1 >>> 2 )\n\t\t\t\th1 = h0\n\t\t\t\th0 = next\n\t\t\t\t\n\t\t\t}\n\n\t\t\thash[0] += h0\n\t\t\thash[1] += h1\n\t\t\thash[2] += h2\n\t\t\thash[3] += h3\n\t\t\thash[4] += h4\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let i = 0; i < 20; ++i ) {\n\t\t\tconst word = hash[i]\n\t\t\thash[i] = word << 24 | word << 8 & 0xFF0000 | word >>> 8 & 0xFF00 | word >>> 24 & 0xFF // BE -> LE\n\t\t}\n\n\t\treturn new Uint8Array( hash.buffer )\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** 8 byte */\n\texport function $mol_crypto_salt() {\n\t\treturn $mol_crypto_native.getRandomValues(\n\t\t\tnew Uint8Array( 12 )\n\t\t)\n\t}\n\t\n}\n"]}
|