mam 1.11.817 → 1.11.819
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.deps.json +1 -1
- package/node.js +1 -1
- package/node.js.map +1 -1
- package/node.mjs +1 -1
- package/node.test.js +1 -1
- package/node.test.js.map +1 -1
- package/package.json +1 -1
package/node.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["-","../../../mam.ts","../../../mol/guid/guid.ts","../../../mol/fail/fail.ts","../../../mol/wire/cursor/cursor.ts","../../../mol/wire/pub/pub.ts","../../../mol/wire/wire.ts","../../../mol/fail/hidden/hidden.ts","../../../mol/dev/format/format.ts","../../../mol/wire/pub/sub/sub.ts","../../../mol/ambient/ambient.ts","../../../mol/delegate/delegate.ts","../../../mol/owning/owning.ts","../../../mol/func/name/name.ts","../../../mol/object2/object2.ts","../../../mol/after/tick/tick.ts","../../../mol/promise/like/like.ts","../../../mol/wire/fiber/fiber.ts","../../../mol/compare/deep/deep.ts","../../../mol/log3/log3.ts","../../../mol/span/span.ts","../../../mol/tree2/to/string/string.ts","../../../mol/maybe/maybe.ts","../../../mol/tree2/tree2.ts","../../../mol/error/syntax/syntax.ts","../../../mol/tree2/from/string/string.ts","../../../mol/tree2/from/json/json.ts","../../../mol/term/color/color.ts","../../../mol/log3/log3.node.ts","../../../mol/wire/task/task.ts","../../../mol/wire/async/async.ts","../../../mol/object/object.ts","../../../mol/key/key.ts","../../../mol/after/timeout/timeout.ts","../../../mol/after/frame/frame.node.ts","../../../mol/wire/method/method.ts","../../../mol/fail/catch/catch.ts","../../../mol/try/try.node.ts","../../../mol/fail/log/log.ts","../../../mol/wire/atom/atom.ts","../../../mol/wire/solo/solo.ts","../../../mol/wire/plex/plex.ts","../../../mol/mem/mem.ts","../../../mol/const/const.ts","../../../mol/action/action.ts","../../../mol/wire/probe/probe.ts","../../../mol/wire/sync/sync.ts","../../../mol/lock/lock.ts","../../../mol/mem/cached/cached.ts","../../../mol/compare/array/array.ts","../../../mol/charset/decode/decode.ts","../../../mol/charset/encode/encode.ts","../../../mol/file/transaction/transaction.ts","../../../node/internal/check/check.node.ts","../../../node/autoinstall/autoinstall.node.ts","../../../node/node.node.ts","../../../mol/wire/solid/solid.ts","../../../mol/error/mix/mix.ts","../../../mol/env/env.ts","../../../mol/env/env.node.ts","../../../mol/run/run.node.ts","../../../mol/file/transaction/transaction.node.ts","../../../mol/file/base/base.ts","../../../mol/file/file.ts","../../../mol/file/file.node.ts","../../../mol/tree2/js/is/number/number.ts","../../../mol/tree2/js/to/text/text.ts","../../../mol/view/tree2/error.ts","../../../mol/view/tree2/child.ts","../../../mol/view/tree2/classes.ts","../../../mol/view/tree2/normalize.ts","../../../mol/regexp/regexp.ts","../../../mol/view/tree2/prop/signature.ts","../../../mol/view/tree2/prop/parts.ts","../../../mol/view/tree2/prop/quote.ts","../../../mol/view/tree2/class/match.ts","../../../mol/view/tree2/class/super.ts","../../../mol/view/tree2/class/props.ts","../../../mol/dom/context/context.ts","../../../mol/dom/context/context.node.ts","../../../mol/mem/persist/persist.ts","../../../mol/storage/storage.ts","../../../mol/state/local/local.ts","../../../mol/dom/dom.ts","../../../mol/state/local/local.node.ts","../../../mol/locale/locale.ts","../../../mol/guard/defined.ts","../../../mol/view/tree2/to/js/js.ts","../../../mol/view/tree2/to/dts/dts.ts","../../../mol/view/tree2/to/locale/locale.ts","../../../mol/tree2/text/to/string/string.ts","../../../mol/vlq/vlq.ts","../../../mol/tree2/text/to/sourcemap/sourcemap.ts","../../../mol/graph/graph.ts","../../../mol/sourcemap/strip/strip.ts","../../../mol/sourcemap/url/url.ts","../../../mol/sourcemap/dataurl/dataurl.ts","../../../mol/sourcemap/from/file.ts","../../../mol/base64/encode/encode.ts","../../../mol/base64/encode/encode.node.ts","../../../mol/build/ensure/ensure.ts","../../../mol/build/graph/graph.ts","../../../mol/sourcemap/builder/builder.ts","../../../mol/html/encode/encode.ts","../../../mol/tree2/xml/to/text/text.ts","../../../mol/build/ensure/vcs/vcs.ts","../../../mol/compare/text/text.ts","../../../mol/build/ensure/git/git.ts","../../../mol/build/ensure/npm/npm.ts","../../../mol/build/build.node.ts","../../../mol/server/server.node.ts","../../../mol/build/server/server.node.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\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\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\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\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","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\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// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\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' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['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\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\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?.$ || (this.constructor as { $?: $ }).$ || $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\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\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(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\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}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\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\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\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}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\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.kids.flatMap( ( 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.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\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 ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst 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\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( 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\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\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\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\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\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\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\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\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\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\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\t// if( value instanceof DataView ) return [ ... new Uint8Array( value.buffer ) ]\n\t\t\tif( value instanceof TypedArray ) return [ ... value as any ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakSet< any >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.has( error ) ) return false\n\t\t\n\t\tcatched.add( error )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\treturn error\n\t\t}\n\t}\n\t\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\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\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\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only'\n\t\t| 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\treturn 0\n\t\t}\n\n\t\tread() {\n\t\t\treturn new Uint8Array()\n\t\t}\n\n\t\ttruncate(size: number) {}\n\n\t\tclose() {}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst internals = mod.builtinModules\n\t\n\texport function $node_internal_check(name: string) {\n\t\tif ( name.startsWith('node:') ) return true\n\t\treturn internals.includes(name)\n\t}\n\n}\n","namespace $ {\n\tconst path = require/****/( 'path' ) as typeof import/****/( 'path' )\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst localRequire = mod.createRequire(path.join(process.cwd(), 'package.json'))\n\n\texport function $node_autoinstall(this: typeof $, name: string) {\n\t\ttry {\n\t\t\tlocalRequire.resolve( name )\n\t\t} catch {\n\n\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', name ], dir: '.' })\n\n\t\t\ttry {\n\t\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', '@types/' + name ], dir: '.' })\n\t\t\t} catch (e) {\n\t\t\t\tif( this.$mol_promise_like( e ) ) this.$mol_fail_hidden( e )\n\t\t\t\tthis.$mol_fail_log(e)\n\t\t\t}\n\n\t\t}\n\t}\n}\n","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\tif( $.$node_internal_check(name) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\n\t\t$.$node_autoinstall(name)\n\n\t\treturn target.require( name )\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\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\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\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync(this.descr())\n\t\t}\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport function $mol_tree2_js_is_number(type: string) {\n\t\treturn type.match(/[\\+\\-]*NaN/) || !Number.isNaN( Number( type ) )\n\t}\n}\n","namespace $ {\n\n\tfunction is_identifier( tree: $mol_tree2 ) {\n\t\tif( tree.type ) return false\n\t\treturn /^[a-z_$][a-z_$0-9]*$/i.test( tree.text() )\n\t}\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction block( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.kids.length === 0 ? [] : [ input.struct( 'indent',\n\t\t\t\t\tinput.kids.map( ( kid, index ) =>\n\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t... ( separator ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t] ),\n\t\t\t\t\t),\n\t\t\t\t) ],\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\treturn js.list( js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': block( '{', ';', '}' ),\n\t\t\t';': block( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': block( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t'?.[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '?.[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '?.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> input.kids[0].type\n\t\t\t\t? duplet( '[', ']: ' )( input, belt )\n\t\t\t\t: duplet( '', ': ' )( input, belt ),\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t] ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) )\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree2_error extends Error {\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly spans: readonly $mol_span[]\n\t\t) {\n\t\t\tsuper(message)\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\tmessage: this.message,\n\t\t\t\tspans: this.spans\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree2_error_suggestions {\n\t\tconstructor(\n\t\t\treadonly suggestions: readonly string[]\n\t\t) {}\n\n\t\ttoString() {\n\t\t\treturn this.suggestions.map(suggestion => `\\`${suggestion}\\``).join(', ')\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.suggestions\n\t\t}\n\t}\n\n\texport function $mol_view_tree2_error_str(\n\t\tstrings: readonly string[],\n\t\t...parts: readonly ($mol_span | readonly $mol_span[] | string | number | $mol_view_tree2_error_suggestions)[]\n\t) {\n\t\tconst spans: $mol_span[] = []\n\n\t\tfor (const part of parts) {\n\t\t\tif (part instanceof $mol_span) spans.push(part)\n\t\t\tif (Array.isArray(part) && part.length > 0 && part[0] instanceof $mol_span) spans.push(...part)\n\t\t}\n\n\t\treturn new $mol_view_tree2_error(join(strings, parts), spans)\n\t}\n\n\tfunction join(strings: readonly string[], objects: readonly unknown[]) {\n\t\tlet result = ''\n\t\tlet obj_pos = 0\n\t\tlet obj_len = objects.length\n\n\t\tfor (const str of strings) {\n\t\t\tresult += str\n\t\t\tif (obj_pos < obj_len) {\n\t\t\t\tconst obj = objects[obj_pos++]\n\t\t\t\tif (Array.isArray(obj)) result += obj.map(item => `\\`${item}\\``).join(', ')\n\t\t\t\telse result += `\\`${String(obj)}\\``\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_child(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) {\n\n\t\tif( tree.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Required one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\tif( tree.kids.length > 1 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Should be only one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn tree.kids[0]\n\t}\n\n}\n","namespace $ {\n\texport function $mol_view_tree2_classes( defs : $mol_tree2 ) {\n\t\treturn defs.clone(defs.hack({\n\t\t\t'-': () => []\n\t\t}))\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_view_tree2_normalize( this: $, defs : $mol_tree2 ) {\n\t\treturn defs.clone(\n\t\t\t$mol_view_tree2_classes( defs ).kids.map( cl => cl.clone([\n\t\t\t\tthis.$mol_view_tree2_class_super( cl ).clone(\n\t\t\t\t\tthis.$mol_view_tree2_class_props( cl )\n\t\t\t\t)\n\t\t\t]) )\n\t\t)\n\t}\n\t\n}\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params<T> = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): RegExpStringIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp<any>( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\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\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\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 null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst { begin, end, latin_only, or, optional, repeat_greedy } = $mol_regexp\n\n\texport let $mol_view_tree2_prop_signature = $mol_regexp.from([\n\t\tbegin,\n\t\t{ name: repeat_greedy( latin_only, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( latin_only, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( latin_only, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\texport function $mol_view_tree2_prop_parts(this: $, prop: $mol_tree2 ) {\n\t\tconst groups = [ ...prop.type.matchAll( $mol_view_tree2_prop_signature ) ][0]?.groups\n\n\t\tif (! groups) {\n\t\t\tthis.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Required prop like some*? at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tname: groups.name,\n\t\t\tkey: groups.key,\n\t\t\tnext: groups.next ? '?' : ''\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst regular_regex = /^\\w+$/\n\n\texport function $mol_view_tree2_prop_quote(name: $mol_tree2) {\n\t\tif (regular_regex.test(name.value)) return name\n\n\t\treturn name.data(JSON.stringify(name.value))\n\t}\n}\n","namespace $ {\n\tconst class_regex = /^[$A-Z][$\\w<>\\[\\]()\"'?|]+$/\n\n\texport function $mol_view_tree2_class_match(klass?: $mol_tree2) {\n\t\tif (! klass?.type) return false\n\t\tif (klass.type === 'NaN' || klass.type === 'Infinity') return false\n\n\t\treturn class_regex.test(klass.type)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_class_super(\n\t\tthis: $,\n\t\tklass: $mol_tree2\n\t) {\n\t\tif( ! $mol_view_tree2_class_match( klass ) ) return this.$mol_fail(\n\t\t\terr `Wrong class name at ${klass.span}` \n\t\t)\n\n\t\tconst superclass = klass.kids.length === 1 ? klass.kids[0] : undefined\n\n\t\tif (! superclass) return this.$mol_fail(\n\t\t\terr`No super class at ${klass.span}`\n\t\t)\n\n\t\tif( ! $mol_view_tree2_class_match( superclass ) ) return this.$mol_fail(\n\t\t\terr`Wrong super class name ${JSON.stringify(superclass.type).replace(/(^\"|\"$)/g, \"\")} at ${superclass.span}`\n\t\t)\n\n\t\treturn superclass\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\ttype Context = { factory?: $mol_tree2 }\n\n\texport function $mol_view_tree2_class_props(\n\t\tthis: $,\n\t\tklass : $mol_tree2,\n\t) {\n\t\tlet props = this.$mol_view_tree2_class_super( klass )\n\t\t\n\t\t// ! syntax to *\n\t\tprops = props.clone(\n\t\t\tprops.hack({\n\t\t\t\t'': ( node, belt )=> {\n\t\t\t\t\tconst normal = node.type.replace( /!\\w+/, '*' )\n\t\t\t\t\tif( node.type === normal ) return [ node.clone( node.hack( belt ) ) ]\n\t\t\t\t\treturn [ node.struct( normal, node.hack( belt ) ) ]\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst props_inner = {} as Record<string, $mol_tree2>\n\n\t\tconst add_inner = ( prop: $mol_tree2 ) => {\n\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\t\t\tconst prev = props_inner[name]\n\t\t\tif (prev && prev.kids[0]?.toString() !== prop.kids[0]?.toString()) {\n\t\t\t\tthis.$mol_fail(err`Need an equal default values at ${prev.span} vs ${prop.span}`)\n\t\t\t}\n\t\t\tprops_inner[name] = prop\n\t\t}\n\n\t\tconst upper = (operator: $mol_tree2, belt: $mol_tree2_belt<Context>, context: Context) => {\n\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\tconst defs = prop.hack( belt, { factory: prop } )\n\t\t\tif( defs.length ) add_inner( prop.clone( defs ) )\n\n\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t}\n\n\t\tconst props_root = props.hack({\n\t\t\t'<=': upper,\n\n\t\t\t'<=>': upper,\n\n\t\t\t'^': ( operator, belt, context) => {\n\t\t\t\tif (operator.kids.length === 0) return [ operator ]\n\t\t\t\treturn upper(operator, belt, context)\n\t\t\t},\n\n\t\t\t'': (left, belt, context) => {\n\t\t\t\tlet right\n\t\t\t\tconst operator = left.kids[0]\n\n\t\t\t\tif (operator?.type === '=>' && context.factory) {\n\t\t\t\t\tright = operator.kids[0]\n\t\t\t\t\tif (! right) this.$mol_fail(err`Need a child ${operator.span}`)\n\t\t\t\t\tif (! context.factory) this.$mol_fail(err`Need a parent ${left.span}`)\n\n\t\t\t\t\tadd_inner(right.clone([\n\t\t\t\t\t\tright.struct('=', [\n\t\t\t\t\t\t\tcontext.factory.struct(\n\t\t\t\t\t\t\tcontext.factory.type.replace( /\\*.*/, '*' ),\n\t\t\t\t\t\t\t\t[ left.clone([]) ],\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]))\n\t\t\t\t}\n\n\t\t\t\tif (right) context = { factory: right.clone([]) }\n\t\t\t\telse if( operator && ! context.factory && $mol_view_tree2_class_match( operator ) ) {\n\t\t\t\t\tcontext = { factory: left.clone([]) }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst hacked = left.clone( left.hack( belt, context ) )\n\n\t\t\t\treturn [ hacked ]\n\t\t\t}\n\n\t\t}, { factory: undefined } as Context)\n\n\t\tfor (const prop of props_root ) add_inner(prop)\n\t\t\n\t\treturn Object.values(props_inner)\n\t}\n\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\t/**\n\t * Localisation in $mol framework\n\t * @see https://mol.hyoo.ru/#!section=docs/=s5aqnb_odub8l\n\t */\n\texport class $mol_locale extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang_default() {\n\t\t\treturn 'en'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang( next? : string ) {\n\t\t\treturn this.$.$mol_state_local.value( 'locale' , next ) || $mol_dom_context.navigator.language.replace( /-.*/ , '' ) || this.lang_default()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic source( lang : string ) {\n\t\t\treturn JSON.parse( this.$.$mol_file.relative( `web.locale=${ lang }.json` ).text().toString() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic texts( lang : string , next? : $mol_locale_dict ) : $mol_locale_dict {\n\t\t\tif( next ) return next\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn this.source( lang ).valueOf()\n\t\t\t} catch( error: any ) {\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\tconst def = this.lang_default()\n\t\t\t\t\tif( lang === def ) throw error\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ): string {\n\t\t\t\n\t\t\tconst lang = this.lang()\n\n\t\t\tconst target = this.texts( lang )[ key ]\n\t\t\tif( target ) return target\n\t\t\t\n\t\t\tthis.warn( key )\n\t\t\t\n\t\t\tconst en = this.texts( 'en' )[ key ]\n\t\t\tif( !en ) return key\n\t\t\t\n\t\t\treturn en\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic warn( key : string ) {\n\t\t\tconsole.warn( `Not translated to \"${ this.lang() }\": ${ key }` )\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_parts(prop).name\n\t}\n\t\n\tfunction params_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\t\n\tfunction args_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? key.length > 1\n\t\t\t\t\t? [ prop.data( key.slice(1) ) ]\n\t\t\t\t\t: [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\n\tfunction call_method_name(this: $, child: $mol_tree2, optional: boolean) {\n\t\treturn child.struct( optional ? '?.[]' : '[]', [\n\t\t\tchild.data( name_of.call( this, child ) )\n\t\t] )\n\t}\n\n\tfunction call_of(this: $, bind: $mol_tree2, bidi = true) {\n\t\tif( bind.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\terr`Required one child at ${bind.span}`\n\t\t\t)\n\t\t}\n\n\t\tconst chain = [ bind.struct( 'this' ) ]\n\n\t\tfor (const child of bind.kids) {\n\t\t\tchain.push(\n\t\t\t\tcall_method_name.call(this, child, chain.length > 1),\n\t\t\t\targs_of.call(this, child, bidi),\n\t\t\t)\n\t\t}\n\n\t\treturn bind.struct( '()', chain )\n\t}\n\n\ttype Context = { chain?: string[] }\n\t\n\tconst localized_string = $$.$mol_tree2_from_string(`\n\t\t()\n\t\t\tthis\n\t\t\t[] \\\\$\n\t\t\t[] \\\\$mol_locale\n\t\t\t[] \\\\text\n\t\t\t(,) #key\n\t`, 'localized_string' )\n\n\tfunction klass_body(\n\t\tthis: $,\n\t\tacc: {\n\t\t\tklass: $mol_tree2\n\t\t\taddons: $mol_tree2[]\n\t\t\tmembers: $mol_tree2[]\n\t\t},\n\t\tprop: $mol_tree2\n\t) {\n\t\tconst { klass, members, addons } = acc\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tconst decorate = ()=> {\n\t\t\treturn prop.struct( '()', [\n\t\t\t\tprop.struct( key ? '$mol_mem_key' : '$mol_mem' ),\n\t\t\t\tprop.struct( '(,)', [\n\t\t\t\t\tprop.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tprop.data( 'prototype' ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tprop.data( name ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t}\n\t\tconst op = prop.kids[0]\n\t\tconst is_delegate = op?.type === '<=>' || op?.type === '='\n\t\tif( ! is_delegate && next ) addons.push( decorate() )\n\t\t\n\t\tconst val = prop.hack<Context>({\n\t\t\t\n\t\t\t'@': ( locale, belt, context )=> {\n\t\t\t\tconst chain = context.chain?.join('_')\n\n\t\t\t\treturn localized_string.hack({\n\t\t\t\t\t'#key': key => [ locale.data( `${ klass.type }_${ name }${ chain ? `_${chain}` : '' }` ) ],\n\t\t\t\t})\n\t\t\t},\n\t\t\t\n\t\t\t'<=': bind => [ call_of.call(this, bind, false) ],\n\n\t\t\t'<=>': bind => [ call_of.call(this, bind, true) ],\n\t\t\t\n\t\t\t'=>': bind => [],\n\t\t\t\n\t\t\t'^': ( ref, belt, context )=> [\n\t\t\t\tref.struct( '...', [\n\t\t\t\t\t\n\t\t\t\t\t// prop ^ foo\n\t\t\t\t\tref.kids[0]?.type\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name_of.call(this, ref.kids[0]) ) ] ),\n\t\t\t\t\t\targs_of.call(this, ref.kids[0])\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// Having $having foo / ^\n\t\t\t\t\t: context.chain\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( '$' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( op.type ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'prototype' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( context.chain[0] ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'call' ) ] ),\n\t\t\t\t\t\tref.struct( '(,)', [ ref.struct( 'obj' ) ] ),\n\t\t\t\t\t\t... context.chain.slice(1).map( field => ref.struct( '[]', [ ref.data( field ) ] ) )\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// prop ^\n\t\t\t\t\t: ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'super' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name ) ] ),\n\t\t\t\t\t\tref.struct( '(,)' )\n\t\t\t\t\t] ),\n\t\t\t\t\t\n\t\t\t\t] ),\n\t\t\t],\n\n\t\t\t'=': bind => [ bind.struct( '()', [\n\t\t\t\tbind.struct( 'this' ),\n\t\t\t\t... bind.hack({ '': ( method, belt, ctx )=> [\n\t\t\t\t\tcall_method_name.call( this, method, (ctx.item_index++) > 0 ),\n\t\t\t\t\targs_of.call( this, method ),\n\t\t\t\t\t... method.hack( belt ),\n\t\t\t\t] }, { item_index: 0 }),\n\t\t\t] ) ],\n\t\t\t\t\n\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct('{,}',\n\t\t\t\t\t\t\tinput.kids.map( field => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( field.type === '^' ) return field.list([ field ]).hack( belt, context )[0]\n\t\t\t\t\t\t\t\tconst field_name = (field.type || field.value).replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\treturn field.struct( ':', [\n\t\t\t\t\t\t\t\t\tfield.data( field_name ),\n\t\t\t\t\t\t\t\t\tfield.kids[0].type === '<=>'\n\t\t\t\t\t\t\t\t\t\t? field.struct( '=>', [\n\t\t\t\t\t\t\t\t\t\t\tparams_of.call(this, field ),\n\t\t\t\t\t\t\t\t\t\t\t... field.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t: field.hack<Context>( belt, {... context, chain: [...context.chain ?? [], field_name] })[0],\n\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} ).filter( this.$mol_guard_defined )\n\t\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\tif( input.type[0] === '/' ) return [\n\t\t\t\t\tinput.struct( '[,]', input.hack( belt, context ) ),\n\t\t\t\t]\n\t\t\t\tif( input.type && $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput\n\t\t\t\t]\n\n\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\tif( ! next ) addons.push( decorate() )\n\t\t\t\t\t\n\t\t\t\t\tconst overrides = [] as $mol_tree2[]\n\t\t\t\t\t\n\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( over.type[0] === '/' ) continue\n\t\t\t\t\t\tconst bind = over.kids[0]\n\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\n\t\t\t\t\t\tconst over_name = name_of.call(this, over )\n\n\t\t\t\t\t\tconst body = [\n\t\t\t\t\t\t\targs_of.call(this, over ),\n\t\t\t\t\t\t\tover.struct( '()', over.hack( belt, { chain: [ over.type ] } )),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\toverrides.push(\n\t\t\t\t\t\t\tover.struct( '=', [\n\t\t\t\t\t\t\t\tover.struct( '()', [\n\t\t\t\t\t\t\t\t\tover.struct( 'obj' ),\n\t\t\t\t\t\t\t\t\tover.struct( '[]', [\n\t\t\t\t\t\t\t\t\t\tover.data( over_name ),\n\t\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\tover.struct( '=>', body ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'const', [\n\t\t\t\t\t\t\tinput.struct( 'obj' ),\n\t\t\t\t\t\t\tinput.struct( 'new', [\n\t\t\t\t\t\t\t\tinput.struct( 'this' ),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( '$' ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( input.type.replace(/<.+>/g, '') ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct( '(,)', input.select( '/', null ).hack( belt ) ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\t... overrides,\n\t\t\t\t\t\tinput.struct( 'obj' ),\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\treturn [ input ]\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t})\n\n\t\tmembers.push(\n\t\t\tprop.struct( '.', [\n\t\t\t\tprop.data( name ),\n\t\t\t\tparams_of.call(this, prop ),\n\t\t\t\tprop.struct( '{;}', [\n\t\t\t\t\t... next && ! is_delegate ? [\n\t\t\t\t\t\tprop.struct( 'if', [\n\t\t\t\t\t\t\tprop.struct( '(!==)', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t\tprop.struct( 'undefined' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\tprop.struct( 'return', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] : [],\n\t\t\t\t\t... val.slice( 0, -1 ),\n\t\t\t\t\tprop.struct( 'return', val.slice( -1 ) ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t)\n\n\t\treturn acc\n\t}\n\n\texport function $mol_view_tree2_to_js( this: $, descr: $mol_tree2 ) {\n\t\t\n\t\tdescr = $mol_view_tree2_classes( descr )\n\t\t\n\t\tconst definitions = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst parent = klass.kids[0]\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst addons = [] as $mol_tree2[]\n\t\t\tconst members = [] as $mol_tree2[]\n\t\t\tconst acc = { klass, addons, members }\n\n\t\t\tfor( const prop of props ) {\n\t\t\t\ttry {\n\t\t\t\t\tklass_body.call( this, acc, prop )\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\te.message += ` at ${prop.span}`\n\t\t\t\t\t$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefinitions.push(\n\t\t\t\tklass.struct( '=', [\n\t\t\t\t\tklass.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tklass.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tklass.struct( 'class', [\n\t\t\t\t\t\tklass.struct( klass.type ),\n\t\t\t\t\t\tparent.struct( 'extends', [\n\t\t\t\t\t\t\tparent.struct( '()', [\n\t\t\t\t\t\t\t\tparent.struct( '$' ),\n\t\t\t\t\t\t\t\tparent.struct( '[]', [\n\t\t\t\t\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tklass.struct( '{}', members ),\n\t\t\t\t\t] ),\n\t\t\t\t] ),\n\t\t\t\t... addons,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.struct( ';', definitions )\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2) {\n\t\tconst name = prop.type\n\t\t\t? this.$mol_view_tree2_prop_parts(prop).name\n\t\t\t: prop.value\n\n\t\tif (! name) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Required valid prop name at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.data(name)\n\t}\n\t\n\tfunction channel_signature( this: $, prop: $mol_tree2, ... val: $mol_tree2[] ) {\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tif (next && ! val[0]?.value ) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Type empty for next value at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.struct( 'line', [\n\t\t\tprop.data(name),\n\t\t\tprop.data('( '),\n\t\t\t... key ? [\n\t\t\t\tprop.data('id'),\n\t\t\t\tprop.data( ': any' + ( next ? ', ' : '' ) ),\n\t\t\t] : [],\n\t\t\t... next ? [\n\t\t\t\tprop.data('next'),\n\t\t\t\tprop.data( '?: ' ),\n\t\t\t\t... val,\n\t\t\t\tprop.data(' '),\n\t\t\t] : [],\n\t\t\tprop.data(')'),\n\t\t] )\n\t\t\n\t}\n\n\tfunction return_type(this: $, klass: $mol_tree2, input: $mol_tree2) {\n\t\treturn [\n\t\t\tinput.data( 'ReturnType< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( '\\'] >' ),\n\t\t]\n\t}\n\n\tfunction parameters(this: $, klass: $mol_tree2, input: $mol_tree2, pick_index?: number) {\n\t\tconst result = [\n\t\t\tinput.data( 'Parameters< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( `'] >`),\n\t\t]\n\n\t\tif (pick_index !== undefined) {\n\t\t\tresult.push(input.data(`[${pick_index}]`))\n\t\t}\n\n\t\treturn result\n\t}\n\n\tfunction primitive_type(input: $mol_tree2) {\n\t\tlet type = 'string'\n\t\tif (input.type && $mol_tree2_js_is_number(input.type)) type = 'number'\n\n\t\tif (input.type === 'true' || input.type === 'false') type = 'boolean'\n\n\t\treturn input.data(type)\n\t}\n\n\tfunction readonly_arr(input: $mol_tree2, infered: readonly $mol_tree2[]) {\n\t\treturn [\n\t\t\tinput.data('readonly('),\n\t\t\tinfered.length === 1 ? infered[0] : input.struct( 'indent', infered),\n\t\t\tinput.data(')[]'),\n\t\t]\n\t}\n\n\tfunction type_enforce(this: $, name: $mol_tree2, a: readonly $mol_tree2[], b: readonly $mol_tree2[]) {\n\t\treturn name.struct('line', [\n\t\t\tname.data(`type ${ name.value.replace(/<.*>/g, '') } = $mol_type_enforce<` ),\n\t\t\tname.struct( 'indent', [\n\t\t\t\ta[0].struct('line', a),\n\t\t\t\ta[0].data(','),\n\t\t\t\tb[0].struct('line', b),\n\t\t\t]),\n\t\t\tname.data( '>' ),\n\t\t])\n\t}\n\n\texport function $mol_view_tree2_to_dts(this: $, tree: $mol_tree2) {\n\t\t\n\t\tconst descr = $mol_view_tree2_classes( tree )\n\t\t\n\t\tconst types = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\t\t\t\n\t\t\tlet assert_count = 0\n\t\t\tconst parent = this.$mol_view_tree2_child(klass)\n\t\t\tconst props = this.$mol_view_tree2_class_props(klass)\n\t\t\tconst aliases = [] as $mol_tree2[]\n\t\t\tconst context = { objects: [] as $mol_tree2[] }\n\t\t\tconst klass_name = klass.type.slice(1)\n\t\t\ttypes.push(\n\t\t\t\tklass.struct( 'line', [\n\t\t\t\t\tklass.data( 'export class ' ),\n\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\tparent.data( ' extends ' ),\n\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\tklass.data( ' {' ),\n\t\t\t\t] ),\n\t\t\t\t... props.map( prop => {\n\t\t\t\t\t\n\t\t\t\t\tconst val = prop.hack({\n\t\t\t\t\t\t\n\t\t\t\t\t\t'null': val => {\n\t\t\t\t\t\t\tconst kid = val.kids[0]\n\n\t\t\t\t\t\t\treturn kid?.type\n\t\t\t\t\t\t\t\t? [ kid.data(kid.type), val.data( ' | null' ) ]\n\t\t\t\t\t\t\t\t: [ val.data( 'any' ) ]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t\t'true': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t'false': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t\n\t\t\t\t\t\t'@': ( locale, belt )=> locale.hack( belt ),\n\t\t\t\t\t\t\n\t\t\t\t\t\t'<=>': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'<=': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'=>': () => [],\n\n\t\t\t\t\t\t'^': (input) => {\n\t\t\t\t\t\t\tconst host = input.kids.length ? klass : parent\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\thost.data(host.type),\n\t\t\t\t\t\t\t\tinput.kids.length ? input.kids[0] : prop\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'=': (input) => {\n\t\t\t\t\t\t\tconst left = input.kids[0]\n\t\t\t\t\t\t\tconst right = left.kids[0]\n\n\t\t\t\t\t\t\tconst left_parts = this.$mol_view_tree2_prop_parts(left)\n\t\t\t\t\t\t\tconst right_parts = this.$mol_view_tree2_prop_parts(right)\n\n\t\t\t\t\t\t\tlet conflict: 'next' | 'key' | undefined\n\n\t\t\t\t\t\t\t// if (left_parts.next && right_parts.next) conflict = 'next'\n\t\t\t\t\t\t\tif (left_parts.key && right_parts.key) conflict = 'key'\n\n\t\t\t\t\t\t\tif (conflict) {\n\t\t\t\t\t\t\t\tthis.$mol_fail(err`Only one \"${conflict}\" allowed: ${\n\t\t\t\t\t\t\t\t\tleft_parts[conflict]} at ${left.span} or ${\n\t\t\t\t\t\t\t\t\t\tright_parts[conflict]} at ${right.span}`)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst main = klass.data(klass.type)\n\t\t\t\t\t\t\tconst prop_parts = this.$mol_view_tree2_prop_parts(prop)\n\t\t\t\t\t\t\tconst method = prop.data(`${ klass.type }_${prop_parts.name}`)\n\t\t\t\t\t\t\tconst second_main = left_parts.key || left_parts.next ? main : left.struct('line',\n\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tconst second_key = left_parts.next || left_parts.key ? left : right\n\n\t\t\t\t\t\t\tif (prop_parts.key) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (prop_parts.next) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, prop_parts.key ? 1 : 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, (left_parts.next ? left_parts : right_parts).key ? 1 : 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tleft.struct('line',\n\t\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tname_of.call(this, right),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\t\t\t\tif (input.type[0] === '*') {\n\t\t\t\t\t\t\t\tlet unions = [] as $mol_tree2[]\n\n\t\t\t\t\t\t\t\tconst hacked = ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t\t\t... input.kids.map( kid => {\n\t\t\t\t\t\t\t\t\t\tif (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t\tunions = unions.concat(kid.data(' & '), kid.hack_self(belt, context))\n\t\t\t\t\t\t\t\t\t\t\treturn []\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tconst child = this.$mol_view_tree2_child(kid)\n\t\t\t\t\t\t\t\t\t\tconst ret = child.hack_self( belt )\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct( 'line', kid.type.match(/(?:\\*|\\?)/)\n\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\tchannel_signature.call(this, kid, ...ret),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data(': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\''),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( kid.type || kid.value ),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\tif (input.type.length > 1 || ! hacked.length) {\n\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\tinput.data('Record<string, '),\n\t\t\t\t\t\t\t\t\t\tinput.data(input.type.slice(1) || 'any'),\n\t\t\t\t\t\t\t\t\t\tinput.data('>'),\n\t\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data('({ '),\n\t\t\t\t\t\t\t\t\tinput.struct( 'indent', hacked),\n\t\t\t\t\t\t\t\t\tinput.data('}) '),\n\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( input.type[0] === '/' ) {\n\t\t\t\t\t\t\t\tconst array_type = [\n\t\t\t\t\t\t\t\t\tinput.type.length > 1\n\t\t\t\t\t\t\t\t\t\t? input.data(input.type.slice(1))\n\t\t\t\t\t\t\t\t\t\t: input.data('any')\n\t\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t\tif (array_type[0].value === 'any') {\n\t\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor (const kid of input.kids) {\n\t\t\t\t\t\t\t\t\tlet result = kid.hack_self(belt, context) as $mol_tree2[]\n\n\t\t\t\t\t\t\t\t\tconst val = result[0].value\n\n\t\t\t\t\t\t\t\t\tif (val === 'string') {\n\t\t\t\t\t\t\t\t\t\tresult = kid.value.includes('`')\n\t\t\t\t\t\t\t\t\t\t\t? [ kid.data(JSON.stringify(kid.value))]\n\t\t\t\t\t\t\t\t\t\t\t: [ kid.data('`'), kid , kid.data('`') ]\n\t\t\t\t\t\t\t\t\t} else if (val === 'boolean') result = [ kid.data(kid.type) ]\n\t\t\t\t\t\t\t\t\telse if (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t result.push((kid.kids[0] ?? prop).data('[number]'))\n\t\t\t\t\t\t\t\t\t} else continue\n\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tinput.data(`${ klass.type }_${prop.type.replace(/[\\?\\*]*/g, '')}__${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t\t\tarray_type\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\t\t\t\tconst first = input.kids[0]\n\t\t\t\t\t\t\t\tif( first?.type[0] === '/' ) {\n\n\t\t\t\t\t\t\t\t\tconst args = first.kids.map( (kid, index) => {\n\t\t\t\t\t\t\t\t\t\tconst result = kid.hack_self(belt, context) as $mol_tree2[]\n\t\t\t\t\t\t\t\t\t\tif (index !== 0) result.unshift(kid.data(', '))\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct('line', result)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tfirst.data(`${input.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data('[ '),\n\t\t\t\t\t\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data( ' ]' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( `ConstructorParameters< typeof `),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(input.type),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(` >`),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t} else for( const over of input.kids ) {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tconst name = name_of.call(this, over )\n\t\t\t\t\t\t\t\t\tconst bind = this.$mol_view_tree2_child(over)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tover.data(`${ input.type }__${ name.value }_${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tover.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t\treturn_type.call(\n\t\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t\t\t\t\tover,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tprimitive_type(input)\n\t\t\t\t\t\t\t]\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}, context)\n\t\n\t\t\t\t\treturn prop.struct( 'indent', [\n\t\t\t\t\t\tprop.struct( 'line', [\n\t\t\t\t\t\t\tchannel_signature.call(this, prop, ... val ), // Parameter, not Return\n\t\t\t\t\t\t\tprop.data(': '),\n\t\t\t\t\t\t\t... 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} ).filter($mol_guard_defined),\n\t\t\t\t... aliases,\n\t\t\t\tklass.data( '}' ),\n\t\t\t\tdescr.data(''),\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.data( 'declare namespace $ {' ),\n\t\t\tdescr.data( '' ),\n\t\t\tdescr.struct( 'indent', types ),\n\t\t\tdescr.data( '}' ),\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_to_locale(this: $, module: $mol_tree2) {\n\t\tconst locales: Record<string, string> = {}\n\t\tconst descr = $mol_view_tree2_classes( module )\n\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst acc = { chain: [] as string[] }\n\n\t\t\tfor (const prop of props) {\n\t\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\t\t\tprop.hack<typeof acc>({\n\t\t\t\t\t'': ( input, belt, context )=> {\n\t\t\t\t\t\tif( input.type[0] === '@' ) {\n\t\t\t\t\t\t\tconst chain = context.chain?.join('_')\n\t\t\t\t\t\t\tconst path = `${ klass.type }_${ name }${chain.length ? `_${chain}` : ''}`\n\t\t\t\t\t\t\tlocales[path] = input.kids[0].text()\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\t\t\tfor( const field of input.kids ) {\n\t\t\t\t\t\t\t\tif( field.type === '^' ) continue\n\n\t\t\t\t\t\t\t\tconst field_name = field.type.replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\tfield.hack( belt, {\n\t\t\t\t\t\t\t\t\t... context,\n\t\t\t\t\t\t\t\t\tchain: [\n\t\t\t\t\t\t\t\t\t\t...context.chain ?? [],\n\t\t\t\t\t\t\t\t\t\tfield_name\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( /^[$A-Z]/.test( input.type ) ) {\n\t\t\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\t\tif( over.type === '/' ) continue\n\n\t\t\t\t\t\t\t\tconst oname = this.$mol_view_tree2_prop_parts( over ).name\n\t\t\t\t\t\t\t\tover.hack( belt, { ... context, chain: [ oname ] } )\n\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [ input ]\n\t\t\t\t\t}\n\t\t\t\t}, acc)\n\t\t\t}\n\t\t}\n\n\t\treturn locales\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) next_line()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map: $mol_sourcemap_raw = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * # Generic Graph model\n\t * - Supports any type of Nodes and Edges.\n\t * - All links are ordered, but this may be ignored.\n\t * - Multigraph supported using arrays of Edges.\n\t * - Hypergraph supported by reusing same Edge on set of links.\n\t * - Ubergraph supported using Edges as Nodes to.\n\t **/\n\texport class $mol_graph< Node , Edge > {\n\t\t\n\t\t/** All registered Nodes */\n\t\tnodes = new Set< Node >()\n\t\t\n\t\t/** Edges for Nodes pairs (from-to-edge) */\n\t\tedges_out = new Map< Node , Map< Node , Edge > >()\n\t\t/** Edges for Nodes pairs (to-from-edge) */\n\t\tedges_in = new Map< Node , Map< Node , Edge > >()\n\t\t\n\t\t// LINKING NODES\n\t\t\n\t\t/** Full connect two Nodes */\n\t\tlink( from : Node , to : Node , edge : Edge ) {\n\t\t\tthis.link_out( from , to , edge )\n\t\t\tthis.link_in( to , from , edge )\n\t\t}\n\t\t\n\t\t/** Full disconnect two Nodes */\n\t\tunlink( from : Node , to : Node ) {\n\t\t\tthis.edges_in.get( to )?.delete( from )\n\t\t\tthis.edges_out.get( from )?.delete( to )\n\t\t}\n\t\t\n\t\t/** Forward connect two Nodes */\n\t\tlink_out( from : Node , to : Node , edge : Edge ) {\n\t\t\t\n\t\t\tlet pair = this.edges_out.get( from )\n\t\t\t\n\t\t\tif( !pair ) {\n\t\t\t\tpair = new Map< Node , Edge >()\n\t\t\t\tthis.edges_out.set( from , pair )\n\t\t\t\tthis.nodes.add( from )\n\t\t\t}\n\t\t\t\n\t\t\tpair.set( to , edge )\n\t\t\tthis.nodes.add( to )\n\n\t\t}\n\t\t\n\t\t/** Backward connect two Nodes */\n\t\tlink_in( to : Node , from : Node , edge : Edge ) {\n\n\t\t\tlet pair = this.edges_in.get( to )\n\t\t\t\n\t\t\tif( !pair ) {\n\t\t\t\tpair = new Map< Node , Edge >()\n\t\t\t\tthis.edges_in.set( to , pair )\n\t\t\t\tthis.nodes.add( to )\n\t\t\t}\n\t\t\t\n\t\t\tpair.set( from , edge )\n\t\t\tthis.nodes.add( to )\n\n\t\t}\n\t\t\n\t\t// GETTING EDGES\n\t\t\n\t\t/** Return any Edge for two Nodes or null */\n\t\tedge( from : Node , to : Node ) {\n\t\t\treturn this.edge_out( from, to ) ?? this.edge_in( to, from )\n\t\t}\n\t\t\n\t\t/** Return output Edge for two Nodes or null */\n\t\tedge_out( from : Node , to : Node ) {\n\t\t\treturn this.edges_out.get( from )?.get( to ) ?? null\n\t\t}\n\t\t\n\t\t/** Return input Edge for two Nodes or null */\n\t\tedge_in( to : Node , from : Node ) {\n\t\t\treturn this.edges_in.get( to )?.get( from ) ?? null\n\t\t}\n\t\t\n\t\t// MUTATIONS\n\t\t\n\t\t/** Cut cycles at lowest priority of Edges */\n\t\tacyclic( get_weight : ( edge : Edge )=> number ) {\n\t\t\t\n\t\t\tconst checked = [] as Node[]\n\t\t\t\n\t\t\tfor( const start of this.nodes ) {\n\t\t\t\t\n\t\t\t\tconst path = [] as Node[]\n\t\t\t\t\n\t\t\t\tconst visit = ( from : Node ) : number => {\n\n\t\t\t\t\tif( checked.includes( from ) ) return Number.MAX_SAFE_INTEGER\n\n\t\t\t\t\tconst index = path.lastIndexOf( from )\n\t\t\t\t\tif( index > -1 ) {\n\n\t\t\t\t\t\tconst cycle = path.slice( index )\n\n\t\t\t\t\t\treturn cycle.reduce(\n\t\t\t\t\t\t\t( weight , node , index )=> Math.min(\n\t\t\t\t\t\t\t\tweight ,\n\t\t\t\t\t\t\t\tget_weight( this.edge_out( node , cycle[ ( index + 1 ) % cycle.length ] )! ) ,\n\t\t\t\t\t\t\t) ,\n\t\t\t\t\t\t\tNumber.MAX_SAFE_INTEGER ,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t}\n\n\t\t\t\t\tpath.push( from )\n\n\t\t\t\t\tdive: try {\n\n\t\t\t\t\t\tconst deps = this.edges_out.get( from )\n\t\t\t\t\t\tif( !deps ) break dive\n\n\t\t\t\t\t\tfor( const [ to , edge ] of deps ) {\n\n\t\t\t\t\t\t\tif( to === from ) {\n\t\t\t\t\t\t\t\tthis.unlink( from , to )\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst weight_out = get_weight( edge )\n\t\t\t\t\t\t\tconst min = visit( to )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( weight_out > min ) return min\n\t\t\t\t\t\t\tif( weight_out === min ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis.unlink( from , to )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( path.length > 1 ) {\n\t\t\t\t\t\t\t\t\tconst enter = path[ path.length - 2 ]\n\t\t\t\t\t\t\t\t\tthis.link( enter , to , edge )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tpath.pop()\n\t\t\t\t\t}\n\n\t\t\t\t\tchecked.push( from )\n\n\t\t\t\t\treturn Number.MAX_SAFE_INTEGER\n\t\t\t\t}\n\n\t\t\t\tvisit( start )\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t// NODES SELECTION\n\t\t\n\t\t/** Topoligical ordered set of all Nodes for acyclic graph */\n\t\tget sorted() {\n\n\t\t\tconst sorted = new Set< Node >()\n\t\t\t\n\t\t\tconst visit = ( node : Node ) => {\n\t\t\t\t\n\t\t\t\tif( sorted.has( node ) ) return\n\n\t\t\t\tconst deps = this.edges_out.get( node )\n\n\t\t\t\tif( deps ) {\n\t\t\t\t\tfor( const [dep] of deps ) visit( dep )\n\t\t\t\t}\n\n\t\t\t\tsorted.add( node )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const node of this.nodes ) {\n\t\t\t\tvisit( node )\n\t\t\t}\n\t\t\t\n\t\t\treturn sorted\n\t\t}\n\t\t\n\t\t/** All Nodes which don't have input Edges */\n\t\tget roots() {\n\t\t\t\n\t\t\tconst roots = [] as Node[]\n\t\t\tfor( const node of this.nodes ) {\n\t\t\t\t\n\t\t\t\tif( this.edges_in.get( node )?.size ) continue\n\t\t\t\troots.push( node )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn roots\n\t\t}\n\t\t\n\t\t// DEPTH STATS\n\t\t\n\t\t/**\n\t\t * Nodes depth statistics for acyclic graph\n\t\t * @example\n\t\t * graph.depth_stat( Math.min )\n\t\t * graph.depth_stat( Math.max )\n\t\t **/\n\t\tnodes_depth( select: ( left: number, right: number )=> number ) {\n\t\t\t\n\t\t\tconst stat = new Map< Node, number >()\n\t\t\tconst visit = ( node: Node, depth = 0 )=> {\n\t\t\t\t\n\t\t\t\tif( stat.has( node ) ) stat.set( node, select( depth, stat.get( node )! ) )\n\t\t\t\telse stat.set( node, depth )\n\t\t\t\t\n\t\t\t\tfor( const kid of this.edges_out.get( node )?.keys() ?? [] ) visit( kid, depth + 1 )\n\t\t\t\t\n\t\t\t}\n\t\t\tfor( const root of this.roots ) visit( root )\n\t\t\t\n\t\t\treturn stat\n\t\t}\n\t\t\n\t\t/**\n\t\t * Depth's Nodes statistics for acyclic graph\n\t\t * @example\n\t\t * graph.depth_nodes( Math.min )\n\t\t * graph.depth_nodes( Math.max )\n\t\t **/\n\t\tdepth_nodes( select: ( left: number, right: number )=> number ) {\n\t\t\t\n\t\t\tconst groups = [] as Node[][]\n\t\t\tfor( const [ node, depth ] of this.nodes_depth( select ).entries() ) {\n\t\t\t\t\n\t\t\t\tif( groups[ depth ] ) groups[ depth ].push( node )\n\t\t\t\telse groups[ depth ] = [ node ]\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn groups\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_strip(this: $, data: string) {\n\t\treturn data.replace( /^(?:(?:\\/\\/)|(?:\\/\\*))\\s*#\\s*sourceMappingURL\\s*=[^\\n]*/mg , '' ) + '\\n'\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_url(this: $, uri: string, type = 'js' as 'js' | 'css') {\n\t\tif (type === 'css') return `\\n/*# sourceMappingURL=${uri}*/`\n\t\treturn `\\n//# sourceMappingURL=${uri}`\n\t}\n\n}\n","namespace $ {\n\n\tconst prefix = '# sourceMappingURL=data:application/json,'\n\tconst end_comment = ' */'\n\n\texport function $mol_sourcemap_dataurl_decode(this: $, data: string) {\n\t\tconst index = data.lastIndexOf(prefix)\n\n\t\tif (index === -1) return undefined\n\n\t\tdata = data.substring(index + prefix.length)\n\n\t\tif (data.endsWith(end_comment)) data = data.substring(0, data.length - end_comment.length)\n\n\t\tconst decoded = this.decodeURIComponent(data)\n\n\t\ttry {\n\t\t\tconst map = JSON.parse(decoded) as $mol_sourcemap_raw | null\n\n\t\t\tif (! map) return undefined\n\n\t\t\tif (typeof map.mappings === 'string' && map.mappings.startsWith(';;')) {\n\t\t\t\tmap.mappings = map.mappings.substring(2)\n\t\t\t}\n\n\t\t\treturn map\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) e.message += ', origin=' + decoded\n\t\t\t$mol_fail_hidden(e)\n\t\t}\n\t}\n\n\texport function $mol_sourcemap_dataurl_encode(this: $, map: $mol_sourcemap_raw, type = 'js' as 'js' | 'css') {\n\t\tconst str = JSON.stringify( { ...map, mappings: ';;' + map.mappings } )\n\n\t\treturn this.$mol_sourcemap_url('data:application/json,' + this.encodeURIComponent( str ), type)\n\t}\n}\n","namespace $ {\n\texport function $mol_sourcemap_from_file(this: $, src: $mol_file) {\n\t\tconst text = src.text()\n\t\tlet map = this.$mol_sourcemap_dataurl_decode(text)\n\t\tif (map) return map\n\n\t\tconst map_file = src.parent().resolve( src.name() + '.map' )\n\t\tif (map_file.exists()) map = JSON.parse(map_file.text())\n\n\t\treturn map\n\t}\n}\n","namespace $ {\n\texport function $mol_base64_encode(src: Uint8Array< ArrayBuffer >): string {\n\t\treturn (src as unknown as { toBase64(): string }).toBase64()\n}\n}\n","namespace $ {\n\n\texport function $mol_base64_encode_node(str: Uint8Array< ArrayBuffer >): string {\n\t\tif (! str) return ''\n\n\t\tconst buf = Buffer.isBuffer(str) ? str : Buffer.from(str)\n\n\t\treturn buf.toString('base64')\n\t}\n\n\tif ( ! ( 'toBase64' in Uint8Array.prototype ) ) {\n\t\t$.$mol_base64_encode = $mol_base64_encode_node\n\t}\n}\n","namespace $ {\n\texport interface $mol_build_ensure_plugin {\n\t\tensure(path: string): boolean\n\t}\n\n\texport class $mol_build_ensure extends $mol_object {\n\t\troot() { return $mol_file.absolute('') }\n\n\t\tinteractive() { return process.stdout.isTTY }\n\t\tpull_timeout() { return 120000 }\n\n\t\t@ $mol_mem_key\n\t\tmeta( path : string ) {\n\n\t\t\tlet decls = [] as $mol_tree2[]\n\n\t\t\tconst pack = this.$.$mol_file.absolute( path )\n\n\t\t\tfor( const file of pack.sub() ) {\n\t\t\t\tif( !/\\.meta\\.tree$/.test( file.name() ) ) continue\n\t\t\t\tdecls = decls.concat( this.$.$mol_tree2_from_string( file.text() , file.path() ).kids )\n\t\t\t}\n\n\t\t\treturn decls.length ? this.$.$mol_tree2.list(decls, decls[0]?.span) : null\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurer_git(): $mol_build_ensure_plugin {\n\t\t\treturn this.$.$mol_build_ensure_git.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t\tmeta: path => this.meta(path),\n\t\t\t\tpull_timeout: () => this.pull_timeout(),\n\t\t\t\tinteractive: () => this.interactive(),\n\t\t\t})\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurer_fallback(): $mol_build_ensure_plugin {\n\t\t\treturn this.$.$mol_build_ensure_npm.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t})\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurers() {\n\t\t\treturn [\n\t\t\t\tthis.ensurer_git()\n\t\t\t] as readonly ($mol_build_ensure_plugin | null)[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tensure( path : string ): boolean {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst parent = mod.parent()\n\n\t\t\tif( mod !== this.root() ) this.ensure( parent.path() )\n\n\t\t\tif (mod.exists() && mod.type() !== 'dir') return false\n\n\t\t\tfor (const ensurer of this.ensurers()) {\n\t\t\t\tif (ensurer?.ensure(path)) return true\n\t\t\t}\n\t\t\tif (mod.exists()) return false\n\n\t\t\tif( parent === this.root() ) {\n\t\t\t\tthrow new Error( `Root package \"${ mod.relate( this.root() ) }\" not found` )\n\t\t\t}\n\n\t\t\treturn this.ensurer_fallback().ensure(path)\n\t\t}\n\t}\n}\n","namespace $ {\n\texport class $mol_build_graph extends $mol_object {\n\n\t\troot() { return $mol_file.absolute('') }\n\n\t\tmod_ensure(path: string) {\n\t\t\treturn false\n\t\t}\n\n\t\tdependencies(path: string) {\n\t\t\treturn {} as Record<string, number>\n\t\t}\n\n\t\tpath() { return '' }\n\n\t\tprotected added = new Set<string>()\n\n\t\t@ $mol_mem\n\t\tgraph(reset?: null) {\n\t\t\tthis.added.clear()\n\t\t\treturn new $mol_graph< string , { priority : number } >()\n\t\t}\n\n\t\t@ $mol_action\n\t\tpath_added(path: string) { return this.added.has(path) }\n\n\t\t// @ $mol_mem_key\n\t\tprotected add_module( path : string ) {\n\t\t\tthis.added.add(path)\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst graph = this.graph()\n\t\t\tgraph.nodes.add(mod.relate( this.root() ))\n\n\t\t\tconst deps = this.dependencies( path )\n\t\t\tfor( let target in deps ) {\n\t\t\t\tthis.check_dep( [ path, target ])\n\t\t\t}\n\n\t\t\treturn graph\n\t\t}\n\n\t\tpath_resolved(target: string) {\n\t\t\tconst isFile = /\\.\\w+$/.test( target )\n\t\t\tconst root = this.root()\n\n\t\t\tif (target[0] === '/' && isFile) return root.resolve(target)\n\t\t\n\t\t\tif (target[0] === '/') {\n\t\t\t\tconst last_segment = target.slice(target.lastIndexOf('/') + 1)\n\t\t\t\treturn root.resolve(target + '/' + last_segment)\n\t\t\t}\n\n\t\t\treturn root.resolve( 'node_modules' ).resolve( './' + target )\n\t\t}\n\n\t\t// @ $mol_mem_key\n\t\tprotected check_dep([ path, target ]: [ path: string, target: string ]) {\n\t\t\tconst root = this.root()\n\t\t\tconst deps = this.dependencies( path )\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\n\t\t\tlet dep = target[0] === '.' ? mod.resolve( target ) : this.path_resolved( target )\n\n\t\t\ttry {\n\t\t\t\tthis.mod_ensure( dep.path() )\n\t\t\t} catch( error ) {\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\t(error as Error).message += `\\nDependency \"${\n\t\t\t\t\t\ttarget}\" -> \"${ dep.relate( root ) }\" from \"${ mod.relate( root ) }\" `\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(error)\n\t\t\t}\n\t\t\t\n\t\t\twhile( !dep.exists() ) dep = dep.parent()\n\t\t\t\n\t\t\tif( dep.type() === 'dir' && dep.name() !== 'index' ) {\n\t\t\t\tlet index = dep.resolve( 'index.js' )\n\t\t\t\tif( index.exists() ) dep = index\n\t\t\t}\n\t\t\t\n\t\t\t//if( dep.type() === 'file' ) dep = dep.parent()\n\t\t\tif( mod === dep ) return null\n\t\t\t\n\t\t\tconst from = mod.relate( root )\n\t\t\tconst to = dep.relate( root )\n\t\t\tconst graph = this.graph()\n\t\t\tconst edge = graph.edges_out.get( from )?.get( to )\n\t\t\tif( !edge || ( deps[ target ] > edge.priority ) ) {\n\t\t\t\tgraph.link( from , to , { priority : deps[ target ] } )\n\t\t\t}\n\t\t\tif (this.path_added(dep.path())) return null\n\t\t\tthis.add_module( dep.path() )\n\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected out() {\n\t\t\tthis.graph(null)\n\t\t\tconst path = this.path()\n\t\t\tthis.mod_ensure( path )\n\t\t\tconst graph = this.add_module( path )\n\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\tthis.added.clear()\n\t\t\treturn graph\n\t\t}\n\n\t\tget sorted() { return this.out().sorted }\n\t\tget nodes() { return this.out().nodes }\n\t\tget edges_out() { return this.out().edges_out }\n\t\tget edges_in() { return this.out().edges_in }\n\t}\n}\n","namespace $ {\n\tconst sourcemap_codec = $node['sourcemap-codec']\n\tconst path = $node.path\n\n\texport class $mol_sourcemap_builder {\n\t\tversion: number = 3\n\n\t\tprotected sourceRoot: string\n\n\t\tprotected separator_count: number\n\n\t\tconstructor( dir: string, readonly separator = '', readonly file?: string ) {\n\t\t\tthis.sourceRoot = dir && dir !== '.' ? (dir + '/') : ''\n\t\t\tthis.separator += '\\n'\n\t\t\tthis.separator_count = separator.split('\\n').length - 2\n\t\t}\n\n\t\tprotected chunks: string[] = []\n\t\tprotected segment_lines: $mol_sourcemap_line[] = []\n\t\t\n\t\tprotected sources: string[] = []\n\t\tprotected source_indexes: Map<string, number> = new Map()\n\n\t\tprotected names: string[] = []\n\t\tprotected name_indexes: Map<string, number> = new Map()\n\t\tprotected sourceContent: (null|string)[] = []\n\n\t\tget content() {\n\t\t\treturn this.chunks.join('')\n\t\t}\n\n\t\tget sourcemap(): $mol_sourcemap_raw {\n\t\t\treturn {\n\t\t\t\tversion: this.version,\n\t\t\t\tsources: this.sources,\n\t\t\t\tnames: this.names,\n\t\t\t\t// sourceRoot: this.sourceRoot || undefined,\n\t\t\t\tmappings: sourcemap_codec.encode(this.segment_lines),\n\t\t\t\tfile: this.file,\n\t\t\t\tsourcesContent: this.sourceContent,\n\t\t\t}\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.sourcemap\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn JSON.stringify(this.toJSON())\n\t\t}\n\n\t\tprotected add_chunk(content: string) {\n\t\t\tconst {segment_lines, chunks, separator_count} = this\n\t\t\tif (chunks.length !== 0) {\n\t\t\t\tchunks.push(this.separator)\n\t\t\t\tfor (let i = 0; i < separator_count; i++) segment_lines.push([])\t\n\t\t\t}\n\t\t\tchunks.push(content)\n\t\t}\n\n\t\tprotected add_content(content: string, file?: string) {\n\t\t\tconst {source_indexes, sources, segment_lines} = this\n\t\t\tthis.add_chunk(content)\n\t\t\tlet sourceIndex: number | undefined\n\t\t\tif (file) {\n\t\t\t\tsourceIndex = source_indexes.get(file)\n\t\t\t\tif (sourceIndex === undefined) {\n\t\t\t\t\tsourceIndex = sources.length\n\t\t\t\t\tsources.push(file)\n\t\t\t\t\tsource_indexes.set(file, sourceIndex)\n\t\t\t\t\tthis.sourceContent.push(null)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst linesCount = content.split('\\n').length\n\t\t\tfor (let originalLine = 0; originalLine < linesCount; originalLine++) {\n\t\t\t\tif (!file) segment_lines.push([])\n\t\t\t\telse segment_lines.push([\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\toriginalLine,\n\t\t\t\t\t\t0,\n\t\t\t\t\t] as $mol_sourcemap_segment\n\t\t\t\t] as $mol_sourcemap_line)\n\t\t\t}\n\t\t}\n\n\t\tadd(content: string, file?: string, raw?: $mol_sourcemap_raw | string) {\n\t\t\tconst {name_indexes, names, source_indexes, sources, segment_lines} = this\n\t\t\tconst bundleSourceRoot = this.sourceRoot\n\t\t\tif (!content) throw new Error(`No content: ${file}, ${raw}`)\n\t\t\tif (typeof raw === 'string') raw = JSON.parse(raw) as $mol_sourcemap_raw\n\t\t\tif (!raw || !raw.mappings || raw.mappings.length === 0) {\n\t\t\t\tthis.add_content(content, file)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.add_chunk(content)\n\n\t\t\tlet sourceRoot = file ? path.dirname(file) : (raw.sourceRoot || '')\n\t\t\tif (sourceRoot === '.') sourceRoot = ''\n\t\t\telse if (sourceRoot) sourceRoot += '/'\n\t\t\tconst lines = typeof raw.mappings === 'string' ? sourcemap_codec.decode(raw.mappings) : raw.mappings\n\t\t\tfor (let line of lines) {\n\t\t\t\tconst mergedLine: $mol_sourcemap_line = []\n\t\t\t\tfor (let segment of line) {\n\t\t\t\t\tconst mergedSegment: $mol_sourcemap_segment = [segment[0]] // generatedColumn\n\n\t\t\t\t\tif (segment.length >= 2) {\n\t\t\t\t\t\tconst sourceIndex = segment[1]!\n\t\t\t\t\t\tconst source = bundleSourceRoot + sourceRoot + raw.sources[sourceIndex]\n\t\t\t\t\t\tlet mergedSourceIndex = source_indexes.get(source)\n\t\t\t\t\t\tif (mergedSourceIndex === undefined) {\n\t\t\t\t\t\t\tmergedSourceIndex = sources.length\n\t\t\t\t\t\t\tsource_indexes.set(source, mergedSourceIndex)\n\t\t\t\t\t\t\tsources.push(source)\n\t\t\t\t\t\t\tif (raw.sourcesContent)\n\t\t\t\t\t\t\t\tthis.sourceContent.push(raw.sourcesContent[sourceIndex])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmergedSegment.push(mergedSourceIndex)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (segment.length >= 3) mergedSegment.push(segment[2]!) // originalLine\n\n\t\t\t\t\tif (segment.length >= 4) mergedSegment.push(segment[3]!) // originalColumn\n\n\t\t\t\t\tif (segment.length >= 5) {\n\t\t\t\t\t\tconst nameIndex = segment[4]!\n\t\t\t\t\t\tconst name = raw.names?.[nameIndex]\n\t\t\t\t\t\tif (name !== undefined) {\n\t\t\t\t\t\t\tlet mergedNameIndex = name_indexes.get(name)\n\t\t\t\t\t\t\tif (mergedNameIndex === undefined) {\n\t\t\t\t\t\t\t\tmergedNameIndex = names.length\n\t\t\t\t\t\t\t\tname_indexes.set(name, mergedNameIndex)\n\t\t\t\t\t\t\t\tnames.push(name)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmergedSegment.push(mergedNameIndex)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmergedLine.push(mergedSegment)\n\t\t\t\t}\n\t\t\t\tsegment_lines.push(mergedLine)\n\t\t\t}\n\n\t\t\tconst lineCount = content.split('\\n').length\n\t\t\tfor (let i = lines.length; i < lineCount; i++) segment_lines.push([])\n\t\t}\n\t}\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n","namespace $ {\n\texport class $mol_build_ensure_vcs extends $mol_object implements $mol_build_ensure_plugin {\n\t\troot() { return $mol_file.absolute('') }\n\t\tinteractive() { return process.stdout.isTTY }\n\t\tpull_timeout() { return 120000 }\n\n\t\troot_repo() { return null as null | string }\n\t\tvcs_type() { return null as null | string }\n\n\t\tprotected inited(path: string) { return false }\n\t\tprotected init_existing(path: string) { return null }\n\t\tprotected update(path: string) { return false }\n\t\tprotected init(path: string) { return null }\n\n\t\t@ $mol_mem_key\n\t\tmeta( path : string ) {\n\t\t\treturn null as $mol_tree2 | null\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tprotected repo( path : string ) {\n\t\t\tconst vcs_type = this.vcs_type()\n\t\t\tif (! vcs_type) return null\n\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst root_url = this.root_repo()\n\t\t\tif (mod === this.root()) return ! root_url ? null : { url: root_url, branch: null as null | string }\n\n\t\t\tconst parent = mod.parent()\n\t\t\tconst mapping = this.meta( parent.path() )\n\n\t\t\tconst url_branch = mapping?.select( 'pack' , mod.name(), vcs_type).kids\n\t\t\t\t.find($mol_guard_defined)?.kids[0]\n\n\t\t\tconst url = url_branch?.value ?? null\n\t\t\tconst branch = url_branch?.kids[0]?.value ?? null\n\n\t\t\treturn url ? { url, branch } : null\n\t\t}\n\n\t\tprotected update_disabled = false\n\n\t\t@ $mol_action\n\t\tprotected update_safe(dir: string) {\n\t\t\tif (this.update_disabled) return false\n\n\t\t\ttry {\n\t\t\t\treturn this.$.$mol_file.unwatched(() => this.update(dir), dir)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof $mol_run_error && e.cause.timeout_kill) {\n\n\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\tplace: `${this}.update_safe()`,\n\t\t\t\t\t\tmessage: `Timeout - pull disabled`,\n\t\t\t\t\t\thint: 'Check connection',\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.update_disabled = true\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\tthis.$.$mol_fail_log(e)\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\tprotected pull_disabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MAM_PULL_DISABLED'])\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tensure( path : string ) {\n\n\t\t\tconst mod = $mol_file.absolute( path )\n\n\t\t\tif( mod.exists() ) {\n\t\t\t\tif ( this.pull_disabled() ) return false\n\n\t\t\t\tif (! this.inited(path)) {\n\t\t\t\t\tif (! this.repo(path) ) return false\n\n\t\t\t\t\tthis.$.$mol_file.unwatched(() => this.init_existing(path), path)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.update_safe( path )\n\n\t\t\t\t// mod.reset()\n\t\t\t\t// for ( const sub of mod.sub() ) sub.reset()\n\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tif (this.repo(path)) {\n\n\t\t\t\tthis.$.$mol_file.unwatched(() => this.init(path), path)\n\n\t\t\t\t// mod.reset()\n\t\t\t\t// for ( const sub of mod.sub() ) sub.reset()\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\t}\n}\n","namespace $ {\n\n\texport function $mol_compare_text< Item >( item = ( item : Item )=> String( item ) ) {\n\t\t\n\t\treturn ( a : Item , b : Item )=> {\n\n\t\t\tconst text_a = item( a ).trim().toLowerCase()\n\t\t\tconst text_b = item( b ).trim().toLowerCase()\n\n\t\t\tconst parts_a = text_a.split( /(\\d+)/ )\n\t\t\tconst parts_b = text_b.split( /(\\d+)/ )\n\n\t\t\tconst count = Math.max( parts_a.length , parts_b.length )\n\t\t\t\n\t\t\tfor( let i = 0 ; i < count ; ++ i ) {\n\n\t\t\t\tconst part_a = parts_a[i] || ''\n\t\t\t\tconst part_b = parts_b[i] || ''\n\t\t\t\t\n\t\t\t\tconst diff = Number( part_a ) - Number( part_b )\n\t\t\t\tif( diff ) return diff\n\n\t\t\t\tif( part_a > part_b ) return 1\n\t\t\t\tif( part_a < part_b ) return -1\n\n\t\t\t}\n\t\t\t\n\t\t\treturn parts_a.length - parts_b.length\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_build_ensure_git extends $mol_build_ensure_vcs {\n\t\toverride vcs_type() { return 'git' }\n\t\toverride root_repo() { return 'https://github.com/hyoo-ru/mam.git' }\n\n\t\t@ $mol_mem\n\t\tprotected version() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn this.$.$mol_run.spawn({ command: 'git version', dir: this.root().path() })\n\t\t\t\t.stdout.toString().trim().match(/.*\\s+([\\d\\.]+\\d+)/)?.[1] ?? ''\n\t\t}\n\n\t\tprotected deepen_supported() {\n\t\t\treturn $mol_compare_text()(this.version(), '2.42.0') >= 0\n\t\t}\n\n\t\tprotected override update(dir: string) {\n\t\t\tif (this.submodules().has(dir)) {\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: '$mol_build_ensure_git.update()',\n\t\t\t\t\tmessage: 'Submodule detected, no git pull',\n\t\t\t\t\tdir,\n\t\t\t\t})\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst out = this.$.$mol_run.spawn({\n\t\t\t\tcommand: 'git rev-parse --abbrev-ref --symbolic-full-name HEAD', dir,\n\t\t\t})\n\t\t\tconst current_branch = out.stdout.toString().trim()\n\t\t\t// когда не на ветке - не надо пулить, например сборка во время git bisect\n\t\t\tif (! current_branch) return false\n\n\t\t\tconst command = ['git', 'pull']\n\n\t\t\tif ( ! this.interactive() && this.deepen_supported()) {\n\t\t\t\t/**\n\t\t\t\tdepth и deepen не годятся для локальной разработки, поэтому оставляем ограничение глубины пула только для CI\n\n\t\t\t\t--depth=1 в сочетании с сабмодулями обрезает историю, кроме первого коммита\n\n\t\t\t\t--deepen=1 если не сделать unset GIT_DIR\n\t\t\t\tв git-конфиге сабмодуля выставляет bare=true, после этого все команды падают с сообщением\n\t\t\t\twarning: core.bare and core.worktree do not make sense\n\t\t\t\tfatal: unable to set up work tree using invalid config\n\t\t\t\t */\n\t\t\t\tcommand.push( '--deepen=1' )\n\t\t\t}\n\n\t\t\tconst timeout = this.pull_timeout()\n\t\t\tthis.$.$mol_run.spawn( { command, dir, timeout }).stdout.toString().trim()\n\t\t\treturn true\n\t\t}\n\n\t\tprotected is_git(path: string) {\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst git_dir = mod.resolve( '.git' )\n\n\t\t\treturn git_dir.exists() && git_dir.type() === 'dir'\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected submodule_dirs(opts: { dir: string, recursive?: boolean }) {\n\t\t\tconst dir = this.$.$mol_file.absolute( opts.dir )\n\n\t\t\ttry {\n\t\t\t\tconst output = this.$.$mol_run.spawn({\n\t\t\t\t\tcommand: [ 'git', 'submodule', 'status', ...( opts.recursive ? ['--recursive'] : [] ) ],\n\t\t\t\t\tdir: dir.path(),\n\t\t\t\t}).stdout.toString().trim()\n\t\n\t\t\t\tconst dirs = output\n\t\t\t\t\t.split('\\n')\n\t\t\t\t\t.map( str => str.match( /^\\s*[^ ]+\\s+([^ ]*).*/ )?.[1]?.trim() )\n\t\t\t\t\t.filter($mol_guard_defined)\n\t\t\t\t\t.map(subdir => dir.resolve(subdir))\n\t\n\t\t\t\treturn dirs\n\t\t\t} catch (e) {\n\t\t\t\tif ($mol_promise_like(e)) $mol_fail_hidden(e)\n\t\t\t\tthis.$.$mol_fail_log(e)\n\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected root_is_submodule() {\n\t\t\tconst root = this.root()\n\t\t\tif (this.is_git(root.path())) return false\n\n\t\t\tconst parent = root.parent()\n\n\t\t\ttry {\n\t\t\t\tconst dirs = this.submodule_dirs({ dir: parent.path() })\n\n\t\t\t\treturn dirs.includes(root)\n\t\t\t} catch (e) {\n\t\t\t\tif ($mol_promise_like(e)) $mol_fail_hidden(e)\n\t\t\t\tthis.$.$mol_fail_log(e)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected submodules() {\n\t\t\tconst root = this.root()\n\t\t\tif (! this.is_git( root.path() ) ) return new Set<string>()\n\n\t\t\tconst dirs = this.submodule_dirs({ dir: root.path(), recursive: true })\n\n\t\t\tif (this.root_is_submodule()) dirs.push(root)\n\n\t\t\treturn new Set(dirs.map(mod => mod.path()))\n\t\t}\n\n\t\tprotected override inited(path: string) {\n\t\t\treturn this.is_git(path) || this.submodules().has(path)\n\t\t}\n\n\t\tprotected repo_ensured(dir: string) {\n\t\t\tconst repo = this.repo(dir)\n\t\t\tif (! repo) throw new Error(`\"${dir}\" not a repo`)\n\t\t\treturn repo\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tprotected branch_remote(dir: string) {\n\t\t\tconst repo = this.repo_ensured(dir)\n\n\t\t\tconst res = this.$.$mol_run.spawn( { command: ['git', 'remote', 'show', repo.url ], dir } )\n\n\t\t\treturn res.stdout.toString().match( /HEAD branch: (.*?)\\n/ )?.[1] ?? 'master'\n\t\t}\n\n\t\tprotected override init_existing(dir: string) {\n\t\t\t// Например, если вручную склонить ревизию папки в глубине (например, hyoo/mol) перед запуском билда,\n\t\t\t// то hyoo надо проинициалзировать в соответствии с meta.ree\n\t\t\tconst repo = this.repo_ensured(dir)\n\t\t\tconst { url, branch } = repo\n\t\t\tthis.$.$mol_run.spawn( { command: ['git', 'init'], dir } )\n\n\t\t\tconst branch_norm = branch ?? this.branch_remote(dir)\n\n\t\t\tthis.$.$mol_run.spawn( { command: [ 'git', 'remote', 'add', '--track', branch_norm, 'origin' , url ], dir } )\n\t\t\tthis.$.$mol_run.spawn( { command: [ 'git', 'pull', 'origin', branch_norm ], dir } )\n\n\t\t\treturn null\n\t\t}\n\n\t\tprotected override init(path: string) {\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst repo = this.repo_ensured(path)\n\n\t\t\tconst command = [\n\t\t\t\t'git', 'clone' , '--depth', '1',\n\t\t\t\t...( repo.branch ? [ '-b', repo.branch ] : [] ),\n\t\t\t\t' --single-branch',\n\t\t\t\trepo.url ,\n\t\t\t\tmod.relate( this.root() )\n\t\t\t]\n\t\n\t\t\tconst dir = this.root().path()\n\t\t\tthis.$.$mol_run.spawn( { command, dir } )\n\t\n\t\t\treturn null\n\t\t}\n\n\t}\n}\n","namespace $ {\n\texport class $mol_build_ensure_npm extends $mol_object implements $mol_build_ensure_plugin {\n\t\troot() { return $mol_file.absolute('') }\n\n\t\t@ $mol_mem_key\n\t\tensure( path : string ) {\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst parent = mod.parent()\n\t\t\tconst node = this.root().resolve( 'node' )\n\t\t\tconst node_modules = this.root().resolve( 'node_modules' )\n\t\t\t\n\t\t\tif(\n\t\t\t\t[ node, node_modules ].includes( parent )\n\t\t\t\t&& mod.name() !== 'node'\n\t\t\t\t&& ! mod.name().startsWith('@')\n\t\t\t) {\n\t\t\t\tthis.$.$node_autoinstall(mod.name()) // force autoinstall through npm\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t\n\t\t\tif(\n\t\t\t\t[ node, node_modules ].includes( parent.parent() )\n\t\t\t\t&& parent.name().startsWith('@')\n\t\t\t) {\n\t\t\t\tthis.$.$node_autoinstall(`${parent.name()}/${mod.name()}`) // force autoinstall through npm\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t}\n}\n\n","namespace $ {\n\t\n\tsetTimeout( ()=> $mol_wire_async( $mol_build ).start( process.argv.slice( 2 ) ) )\n\n\t\n\n\texport class $mol_build extends $mol_object {\n\t\t@ $mol_mem_key\n\t\tstatic root( [ root, paths ] : [root: string, paths: readonly string[] ] ) {\n\t\t\tthis.$.$mol_file.base = root\n\n\t\t\treturn this.make({\n\t\t\t\troot : ()=> this.$.$mol_file.absolute( root ) ,\n\t\t\t\tpaths: $mol_const(paths)\n\t\t\t})\n\t\t}\n\t\t\n\t\tstatic relative( root : string, paths: readonly string[] ) {\n\t\t\treturn this.$.$mol_build.root( [ $mol_file.relative( root ).path(), paths ])\n\t\t}\n\n\t\t@ $mol_mem\n\t\tserver() {\n\t\t\treturn this.$.$mol_build_server.make({\n\t\t\t\tbuild : $mol_const( this ) ,\n\t\t\t})\n\t\t}\n\t\t\n\t\troot() {\n\t\t\treturn this.$.$mol_file.relative( '.' )\n\t\t}\n\n\t\tpaths() {\n\t\t\treturn [] as readonly string[]\n\t\t}\n\n\t\tstatic start( paths : readonly string[] ) {\n\t\t\tconst build = this.$.$mol_build.relative( '.', paths )\n\n\t\t\tif( paths.length > 0 ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor (const path_raw of paths) {\n\t\t\t\t\t\tconst path = build.root().resolve( path_raw ).path()\n\t\t\t\t\t\tbuild.bundleAll( path )\n\t\t\t\t\t}\n\t\t\t\t\tprocess.exit(0)\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: '$mol_build_start' , \n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\ttrace: error.stack,\n\t\t\t\t\t})\n\t\t\t\t\tprocess.exit(135)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tPromise.resolve().then( ()=> {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tbuild.server().start() \n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t$mol_fail_log(error)\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t}\n\t\n\t\t@ $mol_mem_key\n\t\tmetaTreeTranspile( path : string ) {\n\t\t\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\t\t\t\n\t\t\tconst tree = this.$.$mol_tree2_from_string( file.text() , file.path() )\n\t\t\tconst dir = file.parent().path()\n\n\t\t\tlet content = ''\n\t\t\tfor( const step of tree.select( 'build' , null ).kids ) {\n\n\t\t\t\tconst res = this.$.$mol_file.unwatched(() => this.$.$mol_run.spawn( { command: step.text(), dir } ), dir )\n\t\t\t\t\t.stdout.toString().trim()\n\t\t\t\tif( step.type ) content += `namespace $ { export let ${ step.type } = ${ JSON.stringify( res ) } }`\n\n\t\t\t}\n\n\t\t\tif( !content ) return []\n\n\t\t\tconst script = file.parent().resolve( `-meta.tree/${ name }.ts` )\n\t\t\tscript.text( content )\n\t\t\treturn [ script ]\n\n\t\t}\n\t\n\t\t@ $mol_mem_key\n\t\tview_tree_text(path: string) {\n\t\t\tconst source = $mol_file.absolute( path )\n\t\t\tconst tree = this.$.$mol_tree2_from_string( source.text(), source.relate( this.root() ) )\n\n\t\t\tconst js = this.$.$mol_tree2_js_to_text( this.$.$mol_view_tree2_to_js( tree ) )\n\t\t\tconst dts = this.$.$mol_view_tree2_to_dts( tree )\n\t\t\tconst locale = JSON.stringify( this.$.$mol_view_tree2_to_locale( tree ), null, '\\t' )\n\n\t\t\treturn { js, dts, locale }\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tviewTreeTranspile( path : string ) {\n\t\t\tconst source = $mol_file.absolute( path )\n\t\t\tconst text = this.view_tree_text(path)\n\t\t\t\n\t\t\tconst target = source.parent().resolve( `-view.tree` )\n\t\t\tconst js = target.resolve( source.name() + '.js' )\n\t\t\tconst js_map = target.resolve( js.name() + '.map' )\n\t\t\tconst dts = target.resolve( source.name() + '.d.ts' )\n\t\t\tconst dts_map = target.resolve( dts.name() + '.map' )\n\n\t\t\tjs.text( this.$.$mol_tree2_text_to_string( text.js ) + '\\n//# sourceMappingURL=' + js_map.relate( target ) )\n\t\t\tjs_map.text( JSON.stringify( this.$.$mol_tree2_text_to_sourcemap( text.js ), null, '\\t' ) )\n\n\t\t\tdts.text( this.$.$mol_tree2_text_to_string( text.dts ) + '\\n//# sourceMappingURL=' + dts_map.relate( target ) )\n\t\t\t\n\t\t\tconst dts_map_raw = this.$.$mol_tree2_text_to_sourcemap( text.dts )\n\t\t\tdelete dts_map_raw.sourcesContent\n\t\t\tdts_map_raw.file = dts.relate( target )\n\t\t\tdts_map_raw.sourceRoot = this.root().relate( target )\n\n\t\t\tdts_map.text( JSON.stringify( dts_map_raw, null, '\\t' ) )\n\n\t\t\tconst locale_file = target.resolve( source.name() + `.locale=en.json` )\n\n\t\t\tlocale_file.text( text.locale )\n\n\t\t\treturn [ js, js_map, dts, dts_map, locale_file ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tcssTranspile( path : string ) {\n\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\t\t\tconst script = file.parent().resolve( `-css/${ name }.ts` )\n\n\t\t\tconst id = file.relate( this.root() )\n\t\t\tconst styles = file.text()\n\t\t\tconst code = 'namespace $ { $'+`mol_style_attach( ${ JSON.stringify( id ) },\\n ${ JSON.stringify( styles ) }\\n) }`\n\t\t\tscript.text( code )\n\t\t\t\n\t\t\treturn [ script ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tglslTranspile( path : string ) {\n\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\t\t\tconst type = name.match( /\\.(vert|frag)\\./ )?.[1] ?? 'both'\n\t\t\tconst script = file.parent().resolve( `-glsl/${ name }.ts` )\n\t\t\t\n\t\t\tconst styles = file.text()\n\t\t\tconst code = `namespace $ { $.$`+`mol_3d_glsl_${ type } += ${ JSON.stringify( styles ) } }\\n`\n\t\t\tscript.text( code )\n\t\t\t\n\t\t\treturn [ script ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tsorted_sub(path: string) {\n\t\t\tconst parent = $mol_file.absolute( path )\n\t\t\treturn parent.sub().slice().sort( ( a, b )=> a.name().length - b.name().length )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tmods( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\t\n\t\t\tconst mods : $mol_file[] = []\n\t\t\tfor (const child of this.sorted_sub(path)) {\n\t\t\t\t\n\t\t\t\tconst name = child.name()\n\n\t\t\t\tif( !/^[a-z0-9]/i.test( name ) ) continue\n\t\t\t\tif( exclude && RegExp( '[.=](' + exclude.join( '|' ) + ')[.]' , 'i' ).test( name ) ) continue\n\n\t\t\t\t// if (! child.exists()) return false\n\t\t\t\tconst child_path = child.path()\n\t\t\t\tlet files = [] as $mol_file[]\n\n\t\t\t\tif( /(meta\\.tree)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.metaTreeTranspile( child_path )\n\t\t\t\t} else if( /(view\\.tree)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.viewTreeTranspile( child_path )\n\t\t\t\t} else if( /(\\.css)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.cssTranspile( child_path )\n\t\t\t\t} else if( /(\\.glsl)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.glslTranspile( child_path )\n\t\t\t\t}\n\n\t\t\t\tmods.push( ...files, child )\n\t\t\t}\n\t\t\t\n\t\t\t//mods.sort( ( a , b )=> a.name().length - b.name().length )\n\t\t\t\n\t\t\treturn mods\n\t\t}\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// modsRecursive( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t// \tvar mod = $mol_file.absolute( path )\n\t\t// \tswitch( mod.type() ) {\n\t\t// \t\tcase 'file' :\n\t\t// \t\t\treturn [ mod ]\n\t\t// \t\tcase 'dir' :\n\t\t// \t\t\tvar mods = [ mod ]\n\t\t// \t\t\tfor( var m of this.mods( [ path , exclude ] ) ) {\n\t\t// \t\t\t\tif( m.type() !== 'dir' ) continue\n\t\t// \t\t\t\tfor( var dep of this.modsRecursive( { path : m.path() , exclude } ) ) {\n\t\t// \t\t\t\t\tif( mods.indexOf( dep ) !== -1 ) continue\n\t\t// \t\t\t\t\tmods.push( dep )\n\t\t// \t\t\t\t}\n\t\t// \t\t\t}\n\t\t// \t\t\treturn mods\n\t\t// \t\tdefault :\n\t\t// \t\t\tthrow new Error( `Unsupported type \"${mod.type()}\" of \"${mod.relate()}\"` )\n\t\t// \t}\n\t\t// }\n\t\t\n\t\t@ $mol_mem_key\n\t\tsources( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tif ( ! mod.exists() ) return []\n\t\t\tswitch( mod.type() ) {\n\t\t\t\tcase 'file' :\n\t\t\t\t\treturn [ mod ]\n\t\t\t\tcase 'dir' :\n\t\t\t\t\treturn this.mods( [ path , exclude ] ).filter( mod => mod.type() === 'file' )\n\t\t\t\tdefault:\n\t\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesSorted( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst graph = new $mol_graph< string , { priority : number } >()\n\t\t\tconst sources = this.sources( [ path , exclude ] )\n\t\t\tfor( let src of sources ) {\n\t\t\t\tgraph.nodes.add( src.relate( this.root() ) )\n\t\t\t}\n\t\t\tfor( let src of sources ) {\n\t\t\t\tlet deps = this.srcDeps( src.path() )\n\t\t\t\tfor( let p in deps ) {\n\t\t\t\t\t\n\t\t\t\t\tvar names : string[]\n\t\t\t\t\tif( p[ 0 ] === '/' ) {\n\t\t\t\t\t\tnames = p.substring( 1 ).split( '/' )\n\t\t\t\t\t} else if( p[ 0 ] === '.' ) {\n\t\t\t\t\t\tnames = mod.resolve( p ).relate( this.root() ).split( '/' )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnames = [ 'node_modules' , ... p.split( '/' ) ]\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tlet files = [ this.root() ]\n\t\t\t\t\tfor( let name of names ) {\n\t\t\t\t\t\tlet nextFiles : $mol_file[] = []\n\t\t\t\t\t\tfor( let file of files ) {\n\t\t\t\t\t\t\tlet validName = new RegExp( `^(${file.name()})?${name}(?![a-z0-9])` , 'i' )\n\t\t\t\t\t\t\tfor( let child of this.mods( [ file.path() , exclude ] ) ) {\n\t\t\t\t\t\t\t\tif( !child.name().match( validName ) ) continue\n\t\t\t\t\t\t\t\tnextFiles.push( child )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( nextFiles.length === 0 ) break\n\t\t\t\t\t\tfiles = nextFiles\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfor( let file of files ) {\n\t\t\t\t\t\tif( file === this.root() ) continue\n\n\t\t\t\t\t\tconst from = src.relate( this.root() )\n\t\t\t\t\t\tif( !graph.nodes.has( from ) ) continue\n\t\t\t\t\t\n\t\t\t\t\t\tconst to = file.relate( this.root() )\n\t\t\t\t\t\tif( !graph.nodes.has( to ) ) continue\n\t\t\t\t\t\n\t\t\t\t\t\tgraph.link( from , to , { priority : deps[ p ] } )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\tlet next = [ ... graph.sorted ].map( name => this.root().resolve( name ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesAll( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst sortedPaths = this.graph( [ path , exclude ] ).sorted\n\t\t\t\n\t\t\tconst sources = new Set< $mol_file >()\n\t\t\tsortedPaths.forEach( path => {\n\t\t\t\tconst mod = this.root().resolve( path )\n\t\t\t\tthis.sourcesSorted( [ mod.path() , exclude ] ).forEach( src => {\n\t\t\t\t\tsources.add( src )\n\t\t\t\t} )\n\t\t\t} )\n\t\t\t\n\t\t\treturn [ ... sources ]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttsOptions() {\n\t\t\tconst rawOptions = JSON.parse( this.root().resolve( 'tsconfig.json' ).text() + '').compilerOptions\n\t\t\tconst res = $node.typescript.convertCompilerOptionsFromJson( rawOptions , \".\" , 'tsconfig.json' )\n\t\t\tif( res.errors.length ) throw res.errors\n\t\t\treturn res.options\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttsSource( { path , target } : { path : string , target : number } ) {\n\t\t\tconst content = $mol_file.absolute( path ).text()\n\t\t\treturn $node.typescript.createSourceFile( path , content , target )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsPaths( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\n\t\t\tconst sources = this.sourcesAll( [ path , exclude ] ).filter( src => /tsx?$/.test( src.ext() ) )\n\n\t\t\tif( sources.length && bundle === 'node' ) {\n\t\t\t\tconst types = [] as string[]\n\t\t\t\t\n\t\t\t\tfor( let [ dep, src ] of this.nodeDeps([ path , exclude ]) ) {\n\t\t\t\t\ttypes.push( '\\t' + JSON.stringify( dep ) + ' : typeof import\\( ' + JSON.stringify( dep ) + ' ) // ' + src )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst node_types = $mol_file.absolute( path ).resolve( `-node/deps.d.ts` )\n\t\t\t\tnode_types.text( '// @ts-nocheck\\ninterface $node {\\n ' + types.join( '\\n' ) + '\\n}' )\n\t\t\t\tsources.push( node_types )\n\t\t\t}\n\n\t\t\treturn sources.map( src => src.path() )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsHost( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\t\t\t\n\t\t\tconst host = $node.typescript.createCompilerHost( this.tsOptions() )\n\t\t\t\n\t\t\thost.fileExists = ( path )=> $mol_file.relative( path ).exists()\n\t\t\thost.readFile = ( path )=> $mol_file.relative( path ).text()\n\t\t\thost.writeFile = ( path , text )=> $mol_file.relative( path ).text( text, 'virt' )\n\t\t\t\n\t\t\treturn host\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsTranspiler( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\t\t\treturn $node.typescript.createProgram(\n\t\t\t\tthis.tsPaths({ path , exclude , bundle }) ,\n\t\t\t\tthis.tsOptions() ,\n\t\t\t\tthis.tsHost({ path , exclude , bundle }) ,\n\t\t\t)\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsTranspile( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\t\t\tconst res = this.tsTranspiler({ path , exclude , bundle }).emit()\n\t\t\treturn res\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsService( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\n\t\t\tconst paths = this.tsPaths({ path , exclude , bundle })\n\t\t\tif( !paths.length ) return null\n\n\t\t\tconst watchers = new Map< string , ( path : string , kind : number )=> void >()\n\t\t\tlet run = ()=> {}\n\t\t\t\n\t\t\tvar host = $node.typescript.createWatchCompilerHost(\n\n\t\t\t\tpaths ,\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\t... this.tsOptions(),\n\t\t\t\t\temitDeclarationOnly : true,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\t... $node.typescript.sys ,\n\t\t\t\t\twatchDirectory: ( path, cb ) => {\n\t\t\t\t\t\t// console.log('watchDirectory', path )\n\t\t\t\t\t\twatchers.set( path , cb )\n\t\t\t\t\t\treturn { close(){} }\n\t\t\t\t\t},\n\t\t\t\t\twriteFile : (path , data )=> {\n\t\t\t\t\t\t$mol_file.relative( path ).text( data, 'virt' )\n\t\t\t\t\t},\n\t\t\t\t\tsetTimeout : ( cb : any )=> {\n\t\t\t\t\t\t// console.log('setTimeout' )\n\t\t\t\t\t\trun = cb\n\t\t\t\t\t} ,\n\t\t\t\t\twatchFile : (path:string, cb:(path:string,kind:number)=>any )=> {\n\t\t\t\t\t\t// console.log('watchFile', path )\n\t\t\t\t\t\twatchers.set( path , cb )\n\t\t\t\t\t\treturn { close(){ } }\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t$node.typescript.createSemanticDiagnosticsBuilderProgram,\n\n\t\t\t\t( diagnostic )=> {\n\n\t\t\t\t\tif( diagnostic.file ) {\n\n\t\t\t\t\t\tconst error = $node.typescript.formatDiagnostic( diagnostic , {\n\t\t\t\t\t\t\tgetCurrentDirectory : ()=> this.root().path() ,\n\t\t\t\t\t\t\tgetCanonicalFileName : ( path : string )=> path.toLowerCase() ,\n\t\t\t\t\t\t\tgetNewLine : ()=> '\\n' ,\n\t\t\t\t\t\t})\n\t\t\t\t\t\t// console.log('XXX', error )\n\t\t\t\t\t\tthis.js_error( diagnostic.file.getSourceFile().fileName , error )\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst text = diagnostic.messageText\n\t\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\t\tplace : `${this}.tsService()` ,\n\t\t\t\t\t\t\tmessage: typeof text === 'string' ? text : text.messageText ,\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\n\t\t\t\t()=> {}, //watch reports\n\t\t\t\t\n\t\t\t\t[], // project refs\n\t\t\t\t\n\t\t\t\t{ // watch options\n\t\t\t\t\tsynchronousWatchDirectory: true,\n\t\t\t\t\twatchFile: 5,\n\t\t\t\t\twatchDirectory: 0,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t)\n\n\t\t\tconst service = $node.typescript.createWatchProgram( host )\n\n\t\t\tconst versions = {} as Record< string , number >\n\n\t\t\treturn {\n\t\t\t\trecheck: ()=> {\n\t\t\t\t\tfor( const path of paths ) {\n\t\t\t\t\t\tconst version = $node.fs.statSync( path ).mtime.valueOf()\n\t\t\t\t\t\t// this.js_error( path, null )\n\t\t\t\t\t\tif( versions[ path ] && versions[ path ] !== version ) {\n\t\t\t\t\t\t\tconst watcher = watchers.get( path )\n\t\t\t\t\t\t\tif( watcher ) watcher( path , 2 )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tversions[ path ] = version\n\t\t\t\t\t}\n\t\t\t\t\trun()\n\t\t\t\t},\n\t\t\t\tdestructor : ()=> service.close()\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tjs_error( path : string , next = null as null | string ) {\n\t\t\tthis.js_content( path )\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tjs_content( path : string ) {\n\n\t\t\tconst src = $mol_file.absolute( path )\n\n\t\t\tif( /\\.tsx?$/.test( src.name() ) ) {\n\t\t\t\n\t\t\t\tconst res = $node.typescript.transpileModule( src.text() , { compilerOptions : this.tsOptions() } )\n\t\t\t\t\n\t\t\t\tif( res.diagnostics?.length ) {\n\t\t\t\t\treturn $mol_fail( new Error( $node.typescript.formatDiagnostic( res.diagnostics[0] , {\n\t\t\t\t\t\tgetCurrentDirectory : ()=> this.root().path() ,\n\t\t\t\t\t\tgetCanonicalFileName : ( path : string )=> path.toLowerCase() ,\n\t\t\t\t\t\tgetNewLine : ()=> '\\n' ,\n\t\t\t\t\t}) ) )\n\t\t\t\t}\n\n\t\t\t\tconst map = JSON.parse( res.sourceMapText! ) as $mol_sourcemap_raw\n\t\t\t\tmap.file = src.relate()\n\t\t\t\tmap.sources = [ src.relate() ]\n\t\t\t\t\n\t\t\t\treturn {\n\t\t\t\t\ttext : this.$.$mol_sourcemap_strip(res.outputText),\n\t\t\t\t\t// .replace( /^\\/\\/#\\ssourceMappingURL=[^\\n]*/mg , '//' + src.relate() )+'\\n',\n\t\t\t\t\tmap : map,\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\treturn {\n\t\t\t\t\ttext: this.$.$mol_sourcemap_strip(src.text()),\n\t\t\t\t\tmap: this.$.$mol_sourcemap_from_file(src)\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsources_js( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) : $mol_file[] {\n\t\t\tvar sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\n\t\t\tconst types = {\n\t\t\t\t'svg' : 'image/svg+xml' ,\n\t\t\t\t'png' : 'image/png' ,\n\t\t\t\t'jpg' : 'image/jpeg' ,\n\t\t\t\t'jpeg' : 'image/jpeg' ,\n\t\t\t\t'gif' : 'image/gif' ,\n\t\t\t\t'webp' : 'image/webp' ,\n\t\t\t\t'bin' : 'application/octet-stream' ,\n\t\t\t}\n\n\t\t\tsources = sources.map(\n\t\t\t\tsrc => {\n\n\t\t\t\t\tconst ext = src.ext().replace( /^.*\\./ , '' ) as keyof typeof types \n\n\t\t\t\t\tif( types[ ext ] ) {\n\n\t\t\t\t\t\tconst script = src.parent().resolve( `-bin/${ src.name() }.js` )\n\t\t\t\t\t\tconst payload = $mol_base64_encode( src.buffer() )\n\n\t\t\t\t\t\tconst path = src.relate( this.root() )\n\t\t\t\t\t\tconst uri = `data:${ types[ext] };base64,${ payload }`\n\t\t\t\t\t\tscript.text( `var $node = $node || {} ; $node[ ${ JSON.stringify( '/' + path ) } ] = ${ JSON.stringify( uri ) }\\n` )\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn script\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\tif( /^[jt]sx?$/.test( ext ) ) {\n\t\t\t\t\t\treturn src\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t).filter( Boolean ) as $mol_file[]\n\t\t\t\n\t\t\treturn sources\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesDTS( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\t\n\t\t\tlet sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\n\t\t\tsources = sources.filter( src => /(tsx?)$/.test( src.ext() ) )\n\t\t\t\n\t\t\tsources = sources.map(\n\t\t\t\tsrc => src.parent().resolve( src.name().replace( /(\\.d)?\\.tsx?$/ , '.d.ts' ) )\n\t\t\t)\n\t\t\t\n\t\t\treturn sources\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesCSS( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\treturn this.sourcesAll( [ path , exclude ] ).filter( src => /(css)$/.test( src.ext() ) )\n\t\t}\n\t\t\n\t\tstatic dependors : { [ index : string ] : undefined | ( ( source : $mol_file )=> { [ index : string ] : number } ) } = {}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsrcDeps( path : string ) {\n\t\t\tconst src = $mol_file.absolute( path )\n\t\t\t\n\t\t\tlet ext = src.ext()\n\t\t\tif( !ext ) return {}\n\t\t\t\n\t\t\tlet dependencies \n\t\t\twhile( !dependencies ) {\n\t\t\t\tdependencies = $mol_build.dependors[ ext ]\n\t\t\t\tif( dependencies ) break\n\t\t\t\tvar extShort = ext.replace( /^[^.]*\\./ , '' )\n\t\t\t\tif( ext === extShort ) break\n\t\t\t\text = extShort\n\t\t\t}\n\t\t\t\n\t\t\treturn dependencies ? dependencies( src ) : {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodDeps( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst depends : { [ index : string ] : number } = mod === this.root()\n\t\t\t\t? {}\n\t\t\t\t: { '..' : -999 }\n\t\t\tfor( var src of this.sources( [ path , exclude ] ) ) {\n\t\t\t\t$mol_build_depsMerge( depends , this.srcDeps( src.path() ) )\n\t\t\t}\n\t\t\treturn depends\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tdependencies( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\tvar mod = $mol_file.absolute( path )\n\t\t\tif ( ! mod.exists() ) return {}\n\t\t\tswitch( mod.type() ) {\n\t\t\t\tcase 'file' :\n\t\t\t\t\treturn this.srcDeps( path )\n\t\t\t\tcase 'dir' :\n\t\t\t\t\treturn this.modDeps( [ path , exclude ] )\n\t\t\t\tdefault :\n\t\t\t\t\treturn {}\n\t\t\t}\n\t\t}\n\n\t\twatching() { return this.paths().length === 0 }\n\t\tinteractive() { return process.stdout.isTTY }\n\t\tpull_timeout() {\n\t\t\tlet timeout = Number(this.$.$mol_env().MOL_BUILD_PULL_TIMEOUT)\n\t\t\tif ( Number.isNaN(timeout) ) {\n\t\t\t\ttimeout = this.watching() ? 5000 : 120000\n\t\t\t}\n\t\t\treturn timeout\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurer() {\n\t\t\treturn this.$.$mol_build_ensure.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t\tinteractive: () => this.interactive(),\n\t\t\t\tpull_timeout: () => this.pull_timeout(),\n\t\t\t})\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodEnsure( path : string ) { return this.ensurer().ensure(path) }\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodMeta( path : string ) { return this.ensurer().meta(path) }\n\n\t\t@ $mol_mem_key\n\t\tgraph( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\treturn this.$.$mol_build_graph.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t\tmod_ensure: path => this.modEnsure(path),\n\t\t\t\tdependencies: path => this.dependencies([ path, exclude ]),\n\t\t\t\tpath: () => path,\n\t\t\t})\n\t\t}\n\n\t\t@ $mol_action\n\t\tbundleAllWeb( path: string ) {\n\t\t\tthis.bundle([ path , 'web.deps.json' ])\n\t\t\tthis.bundle([ path , 'web.css' ])\n\t\t\tthis.bundle([ path , 'web.js' ])\n\t\t\tthis.bundle([ path , 'web.test.js' ])\n\t\t\tthis.bundle([ path , 'web.test.html' ])\n\t\t\tthis.bundle([ path , 'web.view.tree' ])\n\t\t\tthis.bundle([ path , 'web.meta.tree' ])\n\t\t\tthis.bundle([ path , 'web.locale=en.json' ])\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllWebAudit( path: string ) {\n\t\t\tthis.bundle([ path , 'web.audit.js' ])\n\t\t\tthis.bundle([ path , 'web.d.ts' ])\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllNode( path: string ) {\n\t\t\tthis.bundle([ path , 'node.deps.json' ])\n\t\t\tthis.bundle([ path , 'node.js' ])\n\t\t\tthis.bundle([ path , 'node.test.js' ])\n\t\t\tthis.bundle([ path , 'node.view.tree' ])\n\t\t\tthis.bundle([ path , 'node.meta.tree' ])\n\t\t\tthis.bundle([ path , 'node.locale=en.json' ])\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllNodeAudit( path: string ) {\n\t\t\tthis.bundle([ path , 'node.audit.js' ])\n\t\t\tthis.bundle([ path , 'node.d.ts' ])\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAll( path: string ) {\n\n\t\t\tthis.bundle([ path , 'index.html' ])\n\t\t\tthis.bundle([ path , 'test.html' ])\n\t\t\t\n\t\t\tthis.bundleAllWeb(path)\n\t\t\tthis.bundleAllWebAudit(path)\n\t\t\tthis.bundleAllNode(path)\n\t\t\tthis.bundleAllNodeAudit(path)\n\t\t\t\n\t\t\tthis.bundle([ path , 'package.json' ])\n\t\t\tthis.bundle([ path , 'readme.md' ])\n\n\t\t\tthis.bundleFiles( [ path , [ 'node' ] ] )\n\t\t\tthis.bundleCordova( [ path , [ 'node' ] ] )\n\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundle( [ path , bundle = '' ] : [ path : string , bundle? : string ] ) {\n\t\t\t\n\t\t\tbundle = bundle && bundle.replace( /\\.map$/ , '' )\n\t\t\t\n\t\t\tvar envsDef = [ 'web' , 'node' ]\n\t\t\tvar envs = bundle ? [] as string[] : envsDef.slice()\n\t\t\tvar stages = [ 'test' , 'dev' ]\n\t\t\tif( bundle ) {\n\t\t\t\t\n\t\t\t\tvar [ bundle , tags , type , locale ] = /^(.*?)(?:\\.(audit\\.js|test\\.js|test\\.html|js|css|deps\\.json|locale=(\\w+)\\.json))?$/.exec(\n\t\t\t\t\tbundle\n\t\t\t\t)!\n\t\t\t\t\n\t\t\t\ttags.split( '.' ).forEach(\n\t\t\t\t\ttag => {\n\t\t\t\t\t\tif( envsDef.indexOf( tag ) !== -1 ) envs = [ tag ]\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tvar res : $mol_file[] = []\n\t\t\t\n\t\t\tenvs.forEach(\n\t\t\t\tenv => {\n\t\t\t\t\tvar exclude = envsDef.filter( e => e !== env ).concat( stages )\n\t\t\t\t\t\n\t\t\t\t\tif( !type || type === 'deps.json' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleDepsJSON( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'css' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleCSS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'js' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'mjs' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleMJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'test.js' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleAndRunTestJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'audit.js' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleAuditJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'd.ts' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleDTS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'view.tree' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleViewTree( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'meta.tree' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleMetaTree( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || /^locale=(\\w+).json$/.test( type ) ) {\n\t\t\t\t\t\tres = res.concat(\n\t\t\t\t\t\t\tthis.bundleLocale(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tpath ,\n\t\t\t\t\t\t\t\t\texclude ,\n\t\t\t\t\t\t\t\t\tbundle : env\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\tif( !bundle || bundle === 'package.json' ) {\n\t\t\t\tres = res.concat( this.bundlePackageJSON( [ path , [ 'web', 'test' ] ] ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( !bundle || bundle === 'readme.md' ) {\n\t\t\t\tres = res.concat( this.bundleReadmeMd( [ path , [ 'web' ] ] ) )\n\t\t\t}\n\n\t\t\tif( !bundle || bundle === 'index.html' ) {\n\t\t\t\tres = res.concat( this.bundleIndexHtml( [ path ] ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( !bundle || bundle === 'test.html' ) {\n\t\t\t\tres = res.concat( this.bundleTestHtml( path ) )\n\t\t\t}\n\n\t\t\tif( !bundle || /\\//.test( bundle ) ) {\n\t\t\t\tres = res.concat( this.bundleFiles( [ path , [ 'node' ] ] ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tlogBundle( target : $mol_file , duration : number ) {\n\n\t\t\tconst path = target.relate( this.root() )\n\t\t\t\n\t\t\tthis.$.$mol_log3_done({\n\t\t\t\tplace: this ,\n\t\t\t\tduration: `${duration}ms` ,\n\t\t\t\tmessage: 'Built' , \n\t\t\t\tpath ,\n\t\t\t})\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected now() { return Date.now() }\n\n\t\t@ $mol_mem_key\n\t\tbundleJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\tvar targetJS = pack.resolve( `-/${bundle}.js` )\n\t\t\t\n\t\t\tvar sources = this.sources_js( [ path , exclude ] )\n\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\tvar concater = new $mol_sourcemap_builder( this.root().relate( targetJS.parent() ), ';')\n\t\t\tconcater.add( '#!/usr/bin/env node\\n\"use strict\"' )\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tconcater.add( 'var exports = void 0' )\n\t\t\t} else {\n\t\t\t\tconcater.add( 'function require'+'( path ){ return $node[ path ] }' )\n\t\t\t}\n\n\t\t\tconst errors = [] as Error[]\n\t\t\tfor (const src of sources) {\n\t\t\t\tif( bundle === 'node' && /node_modules\\//.test( src.relate( this.root() ) ) ) continue\n\n\t\t\t\ttry {\n\t\t\t\t\tconst content = this.js_content( src.path() )\n\t\t\t\t\t\n\t\t\t\t\tconst isCommonJs = /typeof +exports|module\\.exports|\\bexports\\.\\w+\\s*=/.test( content.text )\n\t\t\t\t\n\t\t\t\t\tif( isCommonJs ) {\n\t\t\t\t\t\tconcater.add( `\\nvar $node = $node || {}\\nvoid function( module ) { var exports = module.${''}exports = this; function require( id ) { return $node[ id.replace( /^.\\\\// , \"` + src.parent().relate( this.root().resolve( 'node_modules' ) ) + `/\" ) ] }; \\n`, '-' )\n\t\t\t\t\t}\n\n\t\t\t\t\tconcater.add( content.text , '' , content.map )\n\t\t\t\t\t\n\t\t\t\t\tif( isCommonJs ) {\n\t\t\t\t\t\tconst idFull = src.relate( this.root().resolve( 'node_modules' ) )\n\t\t\t\t\t\tconst idShort = idFull.replace( /\\/index\\.js$/ , '' ).replace( /\\.js$/ , '' )\n\t\t\t\t\t\tconcater.add( `\\n$${''}node[ \"${ idShort }\" ] = $${''}node[ \"${ idFull }\" ] = module.${''}exports }.call( {} , {} )\\n`, '-' )\n\t\t\t\t\t}\n\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif ($mol_fail_catch(error)) errors.push( error as Error)\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( errors.length ) {\n\t\t\t\tconst messages = errors.map( e => ' ' + e.message ).join( '\\n' )\n\t\t\t\tconst error = new $mol_error_mix( `Build fail ${ pack.relate() }\\n${ messages }`, {}, ... errors )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t\tvar targetJSMap = pack.resolve( `-/${bundle}.js.map` )\n\t\n\t\t\ttargetJS.text( concater.content + '\\n//# sourceMappingURL=' + targetJSMap.relate( targetJS.parent() ) + '\\n' )\n\t\t\ttargetJSMap.text( concater.toString() )\n\t\t\t\n\t\t\tthis.logBundle( targetJS , Date.now() - start )\n\n\t\t\treturn [ targetJS , targetJSMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleMJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tconst [ targetJS, targetJSMap ] = this.bundleJS({ path, exclude, bundle })\n\t\t\tif (! targetJS) return []\n\n\t\t\tconst targetMJS = targetJS.parent().resolve( targetJS.name().replace(/\\.js$/, '.mjs') )\n\t\t\ttargetMJS.text( targetJS.text().replace(/(^\\/\\/# sourceMappingURL.*)/m, 'export default $\\n$1') )\n\n\t\t\tthis.logBundle( targetMJS , Date.now() - start )\n\n\t\t\treturn [ targetMJS, targetJSMap ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleAuditJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.audit.js` )\n\t\t\tvar exclude_ext = exclude.filter( ex => ex !== 'test' && ex !== 'dev' )\n\n\t\t\tthis.tsService({ path , exclude : exclude_ext , bundle })?.recheck()\n\t\t\t\n\t\t\tconst errors = [] as Error[]\n\n\t\t\tconst paths = this.tsPaths({ path , exclude: exclude_ext , bundle })\n\n\t\t\tfor( const path of paths ) {\n\n\t\t\t\tthis.js_content( path ) // recheck on file change\n\n\t\t\t\tconst error = this.js_error( path )\n\t\t\t\tif( !error ) continue\n\t\t\t\t\n\t\t\t\terrors.push( new Error( error ) )\n\t\t\t\tthis.js_error( path, null ) // ts will refill it on change\n\t\t\t}\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\tif( errors.length ) {\n\t\t\t\tconst messages = errors.map( e => ' ' + e.message ).join( '\\n' )\n\t\t\t\tconst error = new $mol_error_mix( `Audit fail ${ pack.relate() }\\n${ messages }`, {}, ... errors )\n\t\t\t\ttarget.text( `console.error(${ JSON.stringify( error.stack ) })` )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t\ttarget.text( \"console.info( `%cplace: $mol_build\\nmessage: Audit passed`, 'color:forestgreen; font-weight:bolder' )\" )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundle_test_js(\n\t\t\t[ path , exclude , bundle ] : [ path : string , exclude : readonly string[] , bundle : string ]\n\t\t) {\n\t\t\tconst start = this.now()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst root = this.root()\n\t\t\tconst target = pack.resolve( `-/${bundle}.test.js` )\n\t\t\tconst targetMap = pack.resolve( `-/${bundle}.test.js.map` )\n\t\t\t\n\t\t\tconst concater = new $mol_sourcemap_builder( this.root().relate( target.parent() ), ';')\n\t\t\tconcater.add( '\"use strict\"' )\n\t\t\t\n\t\t\tconst exclude_ext = exclude.filter( ex => ex !== 'test' && ex !== 'dev' )\n\t\t\tconst sources = this.sources_js( [ path , exclude_ext ] )\n\n\t\t\tconst sourcesNoTest = new Set( this.sources_js( [ path , exclude ] ) )\n\n\t\t\tlet sourcesTest = sources.filter( src => !sourcesNoTest.has( src ) )\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tsourcesTest = [ ... sourcesNoTest , ... sourcesTest ]\n\t\t\t} else {\n\t\t\t\tconcater.add( 'function require'+'( path ){ return $node[ path ] }' )\n\t\t\t}\n\n\t\t\tif( sources.length === 0 ) return null\n\t\t\t\n\t\t\tconst errors = [] as Error[]\n\n\t\t\tfor (const src of sourcesTest) {\n\t\t\t\tif( bundle === 'node' && /node_modules\\//.test( src.relate( root ) ) ) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst content = this.js_content( src.path() )\n\t\t\t\t\tconcater.add( content.text, '', content.map)\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif ($mol_fail_catch(error)) errors.push( error as Error)\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\ttarget.text( concater.content + '\\n//# sourceMappingURL=' + targetMap.relate( target.parent() )+'\\n' )\n\t\t\ttargetMap.text( concater.toString() )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\tif( errors.length ) {\n\t\t\t\tconst messages = errors.map( e => ' ' + e.message ).join( '\\n' )\n\t\t\t\tconst error = new $mol_error_mix( `Build fail ${ pack.relate() }\\n${ messages }`, {}, ... errors )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t\treturn { js: target, map: targetMap }\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleAndRunTestJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst target = this.bundle_test_js([ path, exclude, bundle ])\n\t\t\tif (! target ) {\n\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\tplace: `${this}.bundleAndRunTestJS` ,\n\t\t\t\t\tmessage: 'No sources found' ,\n\t\t\t\t\thint: 'Wrong path?', \n\t\t\t\t\tpath ,\n\t\t\t\t})\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tconst dir = this.root().path()\n\n\t\t\t\tthis.$.$mol_file.unwatched(() =>\n\t\t\t\t\tthis.$.$mol_run.spawn( {\n\t\t\t\t\t\tcommand: ['node', '--enable-source-maps', '--trace-uncaught', target.js.relate( this.root() ) ], \n\t\t\t\t\t\tdir\n\t\t\t\t\t} ),\n\t\t\t\t\tdir\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\treturn [ target.js , target.map ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleTestHtml( path: string ) : $mol_file[] {\n\t\t\t\n\t\t\tconst start = this.now()\n\t\t\t\n\t\t\tthis.modEnsure(path)\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\tconst source = pack.resolve( 'index.html' )\n\t\t\tconst target = pack.resolve( `-/test.html` )\n\t\t\tconst name = '$' + pack.relate( this.root() ).replaceAll( '/', '_' )\n\n\t\t\tlet content = source.exists()\n\t\t\t\t? source.text()\n\t\t\t\t: `<!doctype html><meta charset=\"utf-8\" /><html mol_view_root><body mol_view_root=\"${name}\"><script src=\"web.js\" charset=\"utf-8\"></script>`\n\t\t\t\n\t\t\tcontent = content.replace(\n\t\t\t\t/(<\\/body>|$)/ , `\n\t\t\t\t<script src=\"/mol/build/client/client.js\" charset=\"utf-8\"></script>\n\t\t\t\t<script src=\"web.test.js\" charset=\"utf-8\"></script>\n\t\t\t\t<script>\n\t\t\t\t\taddEventListener( 'load', ()=> setTimeout( ()=> {\n\t\t\t\t\t\tconst audit = document.createElement( 'script' )\n\t\t\t\t\t\taudit.src = 'web.audit.js'\n\t\t\t\t\t\tdocument.head.appendChild( audit )\n\t\t\t\t\t}, 500 ) )\n\t\t\t\t</script>\n\t\t\t\t$1`,\n\t\t\t)\n\t\t\t\n\t\t\ttarget.text( content )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleDTS( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.d.ts` )\n\t\t\tvar targetMap = pack.resolve( `-/${bundle}.d.ts.map` )\n\t\t\t\n\t\t\tvar sources = this.sourcesDTS( [ path , exclude ] )\n\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\tvar concater = new $mol_sourcemap_builder( target.parent().path() )\n\t\t\t\n\t\t\tsources.forEach(\n\t\t\t\tfunction( src ) {\n\t\t\t\t\tif( ! src.exists() || ! src.text() ) return\n\t\t\t\t\tconcater.add( src.text(), src.relate( target.parent() ) )\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\ttarget.text( concater.content + '\\nexport = $;\\n//# sourceMappingURL=' + targetMap.relate( target.parent() ) + '\\n' )\n\t\t\ttargetMap.text( concater.toString() )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target, targetMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleViewTree( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.view.tree` )\n\t\t\t\n\t\t\tvar sources = this.sourcesAll([ path , exclude ])\n\t\t\t.filter( src => /view.tree$/.test( src.ext() ) )\n\t\t\t\n\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\ttarget.text( sources.map( src => src.text() ).join( '\\n' ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleMetaTree( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\tvar target = pack.resolve( `-/${bundle}.meta.tree` )\n\t\t\t\n\t\t\tconst sortedPaths = this.graph( [path , exclude ] ).sorted\n\t\t\t\n\t\t\tconst namedMetas: $mol_tree2[] = []\n\t\t\tsortedPaths.forEach( path => {\n\t\t\t\tconst meta = this.modMeta( this.root().resolve( path ).path() )\n\t\t\t\tif( meta && meta.kids.length > 0 ) {\n\t\t\t\t\tnamedMetas.push( meta.data( '/' + path, meta.kids ) )\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\tif( namedMetas.length === 0 ) return []\n\t\t\t\n\t\t\ttarget.text( this.$.$mol_tree2.list(namedMetas, namedMetas[0]?.span).toString() )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tnodeDeps( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) {\n\t\t\t\n\t\t\tvar res = new Map<string,string>()\n\t\t\tvar sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\n\t\t\tfor( let src of sources ) {\n\t\t\t\tlet deps = this.srcDeps( src.path() )\n\t\t\t\tfor( let dep in deps ) {\n\t\t\t\t\tif( !/^\\/node(?:_modules)?\\//.test( dep ) ) continue\n\t\t\t\t\tlet mod = dep.replace( /^\\/node(?:_modules)?\\// , '' )\n\t\t\t\t\tif( mod.startsWith( '@' ) ) mod = mod.match( /@[^/]*\\/[^/]*/ )![0]\n\t\t\t\t\telse mod = mod.replace( /\\/.*/g , '' )\n\t\t\t\t\tres.set( mod, src.relate() )\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleReadmeMd( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) : $mol_file[] {\n\t\t\t\n\t\t\tconst start = this.now()\n\t\t\t\n\t\t\tconst root = this.root()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tlet mod = pack\n\t\t\tlet source\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tsource = mod.resolve( 'README.md' )\n\t\t\t\tif( source.exists() ) break\n\t\t\t\t\n\t\t\t\tsource = mod.resolve( 'readme.md' )\n\t\t\t\tif( source.exists() ) break\n\t\t\t\t\n\t\t\t\tif( mod === root ) break\n\t\t\t\tmod = mod.parent()\n\t\t\t\t\n\t\t\t}\n\n\t\t\tconst target = pack.resolve( '-/README.md' )\n\t\t\ttarget.text( source?.text() ?? path )\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundlePackageJSON( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst source = pack.resolve( `package.json` )\n\t\t\tconst target = pack.resolve( `-/package.json` )\n\t\t\t\n\t\t\tlet name = pack.relate( this.root() ).replace( /\\//g , '_' )\n\t\t\t\n\t\t\tlet json = {\n\t\t\t\tname ,\n\t\t\t\tversion : '0.0.0' ,\n\t\t\t\texports: {\n\t\t\t\t\tnode: {\n\t\t\t\t\t\timport : './node.mjs',\n\t\t\t\t\t\tdefault : './node.js'\n\t\t\t\t\t},\n\t\t\t\t\ttypes : './web.d.ts',\n\t\t\t\t\timport : './web.mjs',\n\t\t\t\t\tdefault : './web.js'\n\t\t\t\t},\n\t\t\t\tmain : './web.js' ,\n\t\t\t\tmodule : './web.mjs',\n\t\t\t\tbrowser : './web.js',\n\t\t\t\ttypes : './web.d.ts',\n\t\t\t\tkeywords: [] as string[],\n\t\t\t\tdependencies : {} as { [ key : string ] : string }\n\t\t\t}\n\n\t\t\tif( source.exists() ) {\n\t\t\t\tObject.assign( json , JSON.parse( source.text() ) )\n\t\t\t}\n\n\t\t\tlet version = json.version.split('.').map( Number )\n\t\t\tname = json.name || name\n\t\t\t\n\t\t\ttry {\n\n\t\t\t\tconst result = this.$.$mol_run.spawn( { command: ['npm', 'view' , name , 'versions', '--json'], dir: '.' } )\n\t\t\t\tconst versions = ( [] as string[] ).concat( JSON.parse( result.stdout.toString() ) )\n\t\t\t\tconst published = versions.at(-1)?.split('.').map( Number ) ?? [ 0, 0, 0 ]\n\t\t\t\t\n\t\t\t\tif( published[0] > version[0] ) {\n\t\t\t\t\tversion = published\n\t\t\t\t} else if( published[0] === version[0] && published[1] > version[1] ) {\n\t\t\t\t\tversion[1] = published[1]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(!( published[2] <= version[2] )) {\n\t\t\t\t\tversion[2] = published[2]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\tif (! (error as Error).message.match(/code E404/)) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++ version[2]\n\n\t\t\tjson.version = version.join( '.' )\n\n\t\t\tfor( let dep of this.nodeDeps([ path , exclude ]).keys() ) {\n\n\t\t\t\tif( $node_internal_check(dep) ) continue\n\t\t\t\tif( dep === 'internal' ) continue // @TODO: Prevent `internal` deps from `node:internal`.\n\t\t\t\tjson.dependencies[ dep ] ??= `*`\n\t\t\t}\n\t\t\t\n\t\t\tjson.keywords = [ ... this.graph( [ path , exclude ] ).nodes ]\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.filter( path => !/[.-]/.test( path ) )\n\t\t\t\t.map( path => '$' + path.replaceAll( '/', '_' ) )\n\t\t\t\n\t\t\ttarget.text( JSON.stringify( json , null , ' ' ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleIndexHtml( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst targets : $mol_file[] = []\n\n\t\t\tconst start = this.now()\n\t\t\tconst html = pack.resolve( 'index.html' )\n\t\t\tconst tree = pack.resolve( 'index.xml.tree' )\n\t\t\tconst target = pack.resolve( '-/index.html' )\n\n\t\t\tif( tree.exists() ) {\n\t\t\t\tconst xml_tree = this.$.$mol_tree2_from_string( tree.text() )\n\t\t\t\tconst text = this.$.$mol_tree2_xml_to_text( xml_tree )\n\t\t\t\tconst xml = this.$.$mol_tree2_text_to_string( text )\n\t\t\t\ttarget.text( xml )\n\t\t\t} else if( html.exists() ) {\n\t\t\t\ttarget.text( html.text() )\n\t\t\t}\n\n\t\t\tif( target.exists() ) {\n\t\t\t\ttargets.push( target )\n\t\t\t\tthis.logBundle( target, Date.now() - start )\n\t\t\t}\n\n\t\t\treturn targets\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleFiles( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst root = this.root()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\t.filter( src => /meta.tree$/.test( src.ext() ) )\n\t\t\t\n\t\t\tconst targets : $mol_file[] = []\n\n\t\t\tfor (const source of sources) {\n\n\t\t\t\tconst addFilesRecursive = (file:$mol_file) =>{\n\t\t\t\t\t\n\t\t\t\t\tif ( ! file.exists() ) return\n\n\t\t\t\t\tif( file.type() === 'dir') {\n\t\t\t\t\t\tfor (const sub of file.sub()) {\n\t\t\t\t\t\t\taddFilesRecursive(sub)\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\tconst start = this.now()\n\n\t\t\t\t\tconst target = file.clone(pack.resolve( `-/${ file.relate( root ) }` ).path())\n\t\t\t\t\tif (! target) return\n\t\t\t\t\ttargets.push( target )\n\t\t\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\t}\n\n\t\t\t\tconst tree = this.$.$mol_tree2_from_string( source.text() , source.path() )\n\n\t\t\t\ttree.select( 'deploy' ).kids.forEach( deploy => {\n\t\t\t\t\tconst mod = root.resolve( deploy.text().replace( /^\\// , '' ) )\n\t\t\t\t\tthis.modEnsure( mod.path() )\n\t\t\t\t\taddFilesRecursive( mod )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn targets\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleCordova( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\tconst cordovaOut = pack.resolve( '-' )\n\t\t\tconst cordova = pack.resolve( '-cordova' )\n\t\t\t\n\t\t\tconst config = pack.resolve( 'config.xml' )\n\t\t\tif( !config.exists() ) return []\n\t\t\t\n\t\t\tconst config_target = cordova.resolve( 'config.xml' )\n\t\t\tconfig_target.text( config.text() )\n\n\t\t\tconst targets = [ config_target ]\n\t\t\n\t\t\tconst sources = pack.resolve( '-' ).find().filter( src => src.type() === 'file' )\n\n\t\t\tfor (const source of sources) {\n\t\t\t\tconst target = cordova.resolve( `www/${ source.relate( cordovaOut ) }` )\n\t\t\t\ttarget.text( source.text() )\n\t\t\t\ttargets.push(target)\n\t\t\t}\n\t\t\t\n\t\t\tthis.logBundle( cordova , Date.now() - start )\n\t\t\t\n\t\t\treturn targets\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleCSS( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tif( bundle === 'node' ) return []\n\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\tvar sources = [] as $mol_file[] // this.sourcesCSS( [ path , exclude ] )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.css` )\n\t\t\tvar targetMap = pack.resolve( `-/${bundle}.css.map` )\n\t\t\t\n\t\t\t// var root : any = null //$node['postcss'].root({})\n\t\t\t// sources.forEach(\n\t\t\t// \tsrc => {\n\t\t\t// \t\tvar root2 = $node['postcss'].parse( src.content() , { from : src.path() } )\n\t\t\t// \t\troot = root ? root.append( root2 ) : root2\n\t\t\t// \t}\n\t\t\t// )\n\t\t\t\n\t\t\t// var processor = $node['postcss']([\n\t\t\t// \t$node[ 'postcss-custom-properties' ]({\n\t\t\t// \t\tpreserve : true ,\n\t\t\t// \t}) ,\n\t\t\t// \t$node[ 'postcss-color-function' ]() ,\n\t\t\t// ])\n\t\t\t// var result = processor.process( root , { to : target.relate() , map : { inline : false } } )\n\n\t\t\tconst result = {\n\t\t\t\tcss : '/* CSS compiles into js bundle now! */',\n\t\t\t\tmap : '/* CSS compiles into js bundle now! */',\n\t\t\t}\n\t\t\t\n\t\t\ttarget.text( result.css )\n\t\t\ttargetMap.text( JSON.stringify( result.map , null , '\\t' ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target , targetMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleLocale( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst sources = this.sourcesAll( [ path , exclude ] ).filter( src => /(locale=(\\w+)\\.json)$/.test( src.name() ) )\n\t\t\tif( !sources.length ) return []\n\t\t\t\n\t\t\tconst locales = {} as { [ key : string ] : { [ key : string ] : string } }\n\t\t\t\n\t\t\tsources.forEach(\n\t\t\t\tsrc => {\n\t\t\t\t\tconst [ ext , lang ] = /locale=(\\w+)\\.json$/.exec( src.name() )!\n\t\t\t\t\t\n\t\t\t\t\tif( !locales[ lang ] ) locales[ lang ] = {}\n\t\t\t\t\t\n\t\t\t\t\tconst loc = JSON.parse( src.text() )\n\t\t\t\t\tfor( let key in loc ) {\n\t\t\t\t\t\tlocales[ lang ][ key ] = loc[ key ]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tconst targets = Object.keys( locales ).map( lang => {\n\t\t\t\tconst start = this.now()\n\t\t\t\tconst target = pack.resolve( `-/${bundle}.locale=${ lang }.json` )\n\t\t\t\t\n\t\t\t\tconst locale = locales[ lang ]\n\n\t\t\t\tif( lang !== 'en' && locales['en'] ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let key in locale ) {\n\t\t\t\t\t\tif( key in locales[ 'en' ] ) continue\n\t\t\t\t\t\tdelete locale[ key ]\n\t\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\t\tplace: `${this}.buildLocale()`,\n\t\t\t\t\t\t\tmessage: `Excess locale key`,\n\t\t\t\t\t\t\thint: 'May be you forgot to remove this key?',\n\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst locale_sorted = {} as Record<string, string>\n\n\t\t\t\tfor( let key of Object.keys( locale ).sort() ) {\n\t\t\t\t\tlocale_sorted[ key ] = locale[ key ]\n\t\t\t\t}\n\n\t\t\t\ttarget.text( JSON.stringify( locale_sorted , null , '\\t' ) )\n\t\t\t\t\n\t\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\t\n\t\t\t\treturn target\n\t\t\t} )\n\t\t\t\n\t\t\treturn targets\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleDepsJSON( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst list = this.sourcesAll( [ path , exclude ] )\n\t\t\tif( !list.length ) return []\n\n\t\t\tconst origs = list.filter( src => !/\\/-/.test( src.path() ) )\n\t\t\t\n\t\t\tconst sloc = {} as Record< string , number >\n\t\t\tfor( const src of origs ) {\n\t\t\t\tconst ext = src.name().replace( /^.*\\./ , '' )\n\t\t\t\tconst count = src.text().trim().split( /[\\n\\r]\\s*/ ).length\n\t\t\t\tsloc[ ext ] = ( sloc[ ext ] || 0 ) + count\n\t\t\t}\n\t\t\t\n\t\t\tconst graph = this.graph( [ path , exclude ] )\n\t\t\t\n\t\t\tconst deps = {} as Record<string, Record<string, number>>\n\t\t\tfor( let dep of graph.nodes ) {\n\t\t\t\tdeps[ dep ] = this.dependencies( [ this.root().resolve( dep ).path() , exclude ] )\n\t\t\t}\n\t\t\t\n\t\t\tconst deps_in = {} as Record< string , Record< string , number > >\n\t\t\tfor( const [ dep , pair ] of graph.edges_in ) {\n\n\t\t\t\tif( !deps_in[ dep ] ) {\n\t\t\t\t\tdeps_in[ dep ] = {}\n\t\t\t\t}\n\n\t\t\t\tfor( const [ mod , edge ] of pair ) {\n\t\t\t\t\tdeps_in[ dep ][ mod ] = edge.priority\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst deps_out = {} as Record< string , Record< string , number > >\n\t\t\tfor( const [ mod , pair ] of graph.edges_out ) {\n\n\t\t\t\tif( !deps_out[ mod ] ) {\n\t\t\t\t\tdeps_out[ mod ] = {}\n\t\t\t\t}\n\n\t\t\t\tfor( const [ dep , edge ] of pair ) {\n\t\t\t\t\tdeps_out[ mod ][ dep ] = edge.priority\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst data = {\n\t\t\t\tfiles : list.map( src => src.relate( this.root() ) ) ,\n\t\t\t\tmods : graph.sorted ,\n\t\t\t\tdeps_in ,\n\t\t\t\tdeps_out ,\n\t\t\t\tsloc ,\n\t\t\t\tdeps\n\t\t\t} as const\n\t\t\t\n\t\t\tconst target = pack.resolve( `-/${bundle}.deps.json` )\n\t\t\ttarget.text( JSON.stringify( data ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t}\n\t\n\tfunction $mol_build_depsMerge(\n\t\ttarget : { [ index : string ] : number } ,\n\t\tsource : { [ index : string ] : number }\n\t) : { [ index : string ] : number } {\n\t\tfor( var path in source ) {\n\t\t\tif( target[ path ] >= source[ path ] ) continue\n\t\t\ttarget[ path ] = source[ path ]\n\t\t}\n\t\treturn target\n\t}\n\t\n\t$mol_build.dependors[ 'js' ] = source => {\n\t\tvar depends : { [ index : string ] : number } = {}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*[^]*?\\*\\//g , '' ) // drop block comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/\\b(?:require|import)\\(\\s*['\"]([^\"'()]*?)['\"]\\s*\\)/ig , ( str , path )=> {\n\t\t\t\t\t\tif ($node_internal_check(path)) return str\n\t\t\t\t\t\tpath = path.replace( /(\\/[^\\/.]+)$/ , '$1.js' ).replace( /\\/$/, '/index.js' )\n\t\t\t\t\t\tif( path[0] === '.' ) path = '../' + path\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ path ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\t\t\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'ts' ] = $mol_build.dependors[ 'tsx' ] = $mol_build.dependors[ 'jam.js' ] = $mol_build.dependors[ 'tree.js' ] = source => {\n\t\tvar depends : { [ index : string ] : number } = {}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*(?!\\*)[\\s\\S]*?\\*\\//g , '' ) // drop block comments except doc-comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/\\$([0-9]*[a-z][a-z0-9]*)(?:((?:[\\._A-Z0-9][a-z0-9]+)+)|\\[\\s*['\"]([^'\"]+?)['\"]\\s*\\])?/g , ( str , pack , path , name )=> {\n\t\t\t\t\t\tif( path ) path = '/' + pack + path.replace( /(?=[A-Z])/g , '_' ).toLowerCase().replace( /[_.\\[\\]'\"]+/g , '/' )\n\t\t\t\t\t\tif( name ) name = '/' + pack + '/' + name\n\t\t\t\t\t\tpack = '/' + pack\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ path || name || pack ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/\\b(?:require|import)\\(\\s*['\"]([^\"'()]*?)['\"]\\s*\\)/ig , ( str , path )=> {\n\t\t\t\t\t\tif ($node_internal_check(path)) return str\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ path ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t)\n\t\t\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'view.ts' ] = source => {\n\t\tvar treeName = './' + source.name().replace( /ts$/ , 'tree' )\n\t\tvar depends : { [ index : string ] : number } = { [ treeName ] : 0 }\n\t\t$mol_build_depsMerge( depends , $mol_build.dependors[ 'ts' ]!( source ) )\n\t\treturn depends\n\t}\n\n\t$mol_build.dependors[ 'node.ts' ] = $mol_build.dependors[ 'web.ts' ] = source => {\n\t\tvar common = './' + source.name().replace( /\\.(node|web)\\.ts$/ , '.ts' )\n\t\tvar depends : { [ index : string ] : number } = { [ common ] : 0 }\n\t\t$mol_build_depsMerge( depends , $mol_build.dependors[ 'ts' ]!( source ) )\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'view.css' ] = source => {\n\t\tvar treeName = './' + source.name().replace( /css$/ , 'tree' )\n\t\tvar depends : { [ index : string ] : number } = { [ treeName ] : 0 }\n\t\t$mol_build_depsMerge( depends , $mol_build.dependors[ 'css' ]!( source ) )\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'css' ] = source => {\n\n\t\tvar depends : { [ index : string ] : number } = {\n\t\t\t'/mol/style/attach': 0,\n\t\t}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*[^]*?\\*\\//g , '' ) // drop block comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/(?:--|\\[)([a-z][a-z0-9]+(?:[_][a-z0-9]+)+)/ig , ( str , name )=> {\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ '/' + name.replace( /[._-]/g , '/' ) ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'glsl' ] = source => {\n\n\t\tvar depends : { [ index : string ] : number } = {\n\t\t\t'/mol/3d/glsl': 0,\n\t\t}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*[^]*?\\*\\//g , '' ) // drop block comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\t\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/([a-z][a-z0-9]+(?:_+[a-z0-9]+)+)/ig , ( str , name )=> {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst path = name.split( /_+/g )\n\t\t\t\t\t\tif( path[0] === 'gl' ) return str\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ '/' + path.join( '/' ) ] : priority } )\n\t\t\t\t\t\treturn str\n\t\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}\n\t\t)\n\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'meta.tree' ] = source => {\n\t\tconst depends : { [ index : string ] : number } = {}\n\t\t\n\t\tconst tree = $$.$mol_tree2_from_string( source.text() , source.path() )\t\t\n\t\n\t\ttree.select( 'require' ).kids.forEach( leaf => {\n\t\t\tdepends[ leaf.text() ] = 0\n\t\t} )\n\t\t\n\t\ttree.select( 'include' ).kids.forEach( leaf => {\n\t\t\tdepends[ leaf.text() ] = -999\n\t\t} )\n\t\t\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'view.tree' ] = source => {\n\t\treturn {\n\t\t\t[`/${ source.parent().relate() }/-view.tree/${ source.name() }.js`]: 0,\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\texport type $mol_server_middleware = (\n\t\treq : typeof $node.express.request ,\n\t\tres : typeof $node.express.response ,\n\t\tnext: (error?: unknown) => void\n\t) => void | Promise<void>\n\n\texport class $mol_server extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\texpress() {\n\t\t\tvar express = $node['express']()\n\t\t\t\n\t\t\tthis.expressHandlers().forEach( plugin => express.use( plugin ) )\n\t\t\t\n\t\t\treturn express\n\t\t}\n\n\t\tinternal_ip() {\n\t\t\tconst nets = $node.os.networkInterfaces()\n\t\t\tconst results = Object.create( null )\n\n\t\t\tfor( const name of Object.keys( nets ) ) {\n\t\t\t\tfor( const net of nets[ name ]! ) {\n\t\t\t\t\t// Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses\n\t\t\t\t\t// 'IPv4' is in Node <= 17, from 18 it's a number 4 or 6\n\t\t\t\t\tconst familyV4Value = typeof net.family === 'string' ? 'IPv4' : 4\n\t\t\t\t\tif( net.family === familyV4Value && !net.internal ) {\n\t\t\t\t\t\tif( !results[ name ] ) {\n\t\t\t\t\t\t\tresults[ name ] = []\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresults[ name ].push( net.address )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst internal = Object.values( results ).at( -1 ) as string[]\n\t\t\treturn internal?.[0] ?? '0.0.0.0'\n\t\t}\n\n\t\t@ $mol_mem\n\t\thttp() {\n\n\t\t\tconst server = $node.http.createServer( this.express() )\n\n\t\t\tserver.listen( this.port() )\n\t\t\t\n\t\t\tthis.$.$mol_log3_done({\n\t\t\t\tplace: `${ this }.http` ,\n\t\t\t\tmessage: `Started` ,\n\t\t\t\tnetwork: `http://${ this.internal_ip() }:${ this.port() }/`,\n\t\t\t\tloopback: `http://localhost:${ this.port() }/`,\n\t\t\t})\n\n\t\t\treturn server\n\n\t\t}\n\n\t\tconnections = new Set< InstanceType<$node['ws']['WebSocket']> >()\n\n\t\t@ $mol_mem\n\t\tsocket() {\n\n\t\t\tconst socket = new $node.ws.WebSocketServer({\n\t\t\t\tserver : this.http() ,\n\t\t\t\t// perMessageDeflate: {\n\t\t\t\t// \tzlibDeflateOptions: {\n\t\t\t\t// \t\tchunkSize: 1024,\n\t\t\t\t// \t\tmemLevel: 7,\n\t\t\t\t// \t\tlevel: 3\n\t\t\t\t// \t},\n\t\t\t\t// \tzlibInflateOptions: {\n\t\t\t\t// \t\tchunkSize: 10 * 1024\n\t\t\t\t// \t},\n\t\t\t\t// }\n\t\t\t})\n\n\t\t\tsocket.on( 'connection' , line => {\n\n\t\t\t\tthis.connections.add( line )\n\t\t\t\t\n\t\t\t\tline.on( 'message' , ( message: any, isBinary: boolean )=> {\n\n\t\t\t\t\tfor( const other of this.connections ) {\n\t\t\t\t\t\tif( line === other ) continue\n\t\t\t\t\t\tother.send( message, { binary: isBinary } )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} )\n\n\t\t\t} )\n\n\t\t\treturn socket\n\n\t\t}\n\n\t\texpressHandlers() : readonly $mol_server_middleware[] {\n\t\t\treturn [\n\t\t\t\tthis.expressCors() ,\n\t\t\t\tthis.expressCompressor() ,\n\t\t\t\tthis.expressBodier() ,\n\t\t\t\tthis.expressGenerator() ,\n\t\t\t\tthis.expressIndex() ,\n\t\t\t\tthis.expressFiler() ,\n\t\t\t\tthis.expressDirector() ,\n\t\t\t]\n\t\t}\n\t\t\n\t\texpressCompressor() {\n\t\t\treturn $node['compression']() as $mol_server_middleware\n\t\t}\n\t\t\n\t\texpressCors() {\n\t\t\treturn $node.cors() as $mol_server_middleware\n\t\t}\n\t\t\n\t\texpressBodier() {\n\t\t\treturn $node[ 'body-parser' ].json(\n\t\t\t\t{\n\t\t\t\t\tlimit : this.bodyLimit()\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\t\n\t\texpressFiler() {\n\t\t\treturn $node.express.static(\n\t\t\t\t$node.path.resolve( this.rootPublic() ) ,{\n\t\t\t\t\tmaxAge : this.cacheTime(),\n\t\t\t\t\tdotfiles: 'allow'\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\t\n\t\texpressDirector() {\n\t\t\treturn $node['serve-index']( this.rootPublic() , { icons : true } )\n\t\t}\n\n\t\texpressIndex() {\n\t\t\treturn (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t\tnext : () => void\n\t\t\t) => next()\n\t\t}\n\t\t\n\t\texpressGenerator() {\n\t\t\treturn (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t\tnext : () => void\n\t\t\t)=> next()\n\t\t}\n\t\t\n\t\tbodyLimit() {\n\t\t\treturn '1mb'\n\t\t}\n\t\t\n\t\tcacheTime() {\n\t\t\treturn 1000 * 60 * 60 * 24 * 365 * 1000\n\t\t}\n\t\t\n\t\tport() {\n\t\t\treturn 80\n\t\t}\n\t\t\n\t\trootPublic() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst trace_hinted = new WeakSet<Error>()\n\n\texport class $mol_build_server extends $mol_server {\n\t\t\n\t\tstatic trace = false\n\n\t\tsync_middleware(\n\t\t\tmdl: (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t) => void | boolean\n\t\t) {\n\t\t\tconst wrapped = $mol_wire_async(mdl)\n\n\t\t\treturn $mol_func_name_from(async (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t\tnext : (err?: unknown) => any\n\t\t\t) => {\n\t\t\t\t// const wrapped = $mol_wire_async(mdl)\n\n\t\t\t\ttry {\n\t\t\t\t\tconst stopped = await wrapped(req, res)\n\t\t\t\t\tif (! stopped) Promise.resolve().then(next)\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst error = err instanceof Error ? err : new Error(String(err), { cause: err })\n\n\t\t\t\t\tif (! this.$.$mol_build_server.trace && ! trace_hinted.has(error)) {\n\t\t\t\t\t\terror.message += '\\n' + 'Set $mol_build_server.trace = true for stacktraces'\n\t\t\t\t\t\ttrace_hinted.add(error)\n\t\t\t\t\t}\n\t\n\t\t\t\t\tres.status(500).send( error.toString() ).end()\n\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.${mdl.name}()`,\n\t\t\t\t\t\turi: req.path,\n\t\t\t\t\t\tstack: this.$.$mol_build_server.trace ? error.stack : undefined,\n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}, mdl)\n\t\t}\n\t\n\t\n\t\texpressGenerator() { return this.sync_middleware(this.handleRequest.bind(this)) }\n\t\t\n\t\thandleRequest(\n\t\t\treq : typeof $node.express.request ,\n\t\t\tres : typeof $node.express.response,\n\t\t) {\n\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\t// if( req.query._escaped_fragment_ ) {\n\t\t\t\t\t\n\t\t\t\t// \tconst fragment = decodeURIComponent( String( req.query._escaped_fragment_ ) )\n\t\t\t\t// \tconst url = req.protocol + '://' + req.get( 'host' ) + req.path + '#!' + fragment\n\t\t\t\t// \tconst html = $mol_browser.html( url )\n\t\t\t\t\t\n\t\t\t\t// \tres.send( html ).end()\n\t\t\t\t// \treturn\n\t\t\t\t// }\n\n\t\t\t\tif (! this.generate( req.url ) ) return false\n\t\t\t\tres.set( 'Cache-Control', 'no-cache, public' )\n\t\t\t} catch( error: any ) {\n\t\t\t\tif ($mol_promise_like(error)) $mol_fail_hidden(error)\n\n\t\t\t\tif (! req.url.match( /\\.js$/ ) ) $mol_fail_hidden(error)\n\n\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\tplace: `${this}.handleRequest()`,\n\t\t\t\t\turi: req.path,\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\tstack: error.stack,\n\t\t\t\t})\n\n\t\t\t\tconst script = ( error as Error ).message.split( '\\n\\n' ).map( msg => {\n\t\t\t\t\treturn `console.error( ${ JSON.stringify( msg ) } )`\n\t\t\t\t} ).join( '\\n' )\n\t\t\t\t\n\t\t\t\tres.send( script ).end()\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t\n\t\tbuild() : $mol_build {\n\t\t\treturn $mol_fail( new Error( 'Not implemented' ) )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tgenerate( url : string ) {\n\t\t\t$mol_wire_solid()\n\t\t\t/*\n\t\t\tЕсли использовать динамически подгружаемые через $mol_script модули\n\t\t\tТо урл тут может быть вида /demo/app/-/node_modules/stockfish/-/stockfish.js\n\t\t\tВ path должна попасть часть до первого /-/\n\t\t\tДинамически подгружаться могут обособленные, редко используемые скрипты.\n\t\t\tНапример шахматы, встроенные в основное приложение.\n\t\t\tУ которых здоровый двиг stockfish.js динамически загружается в воркер\n\t\t\tтолько при открытии шахмат.\n\t\t\t*/\n\t\t\tconst matched = url.match( /^(.*?)\\/-\\/((?:(?:\\w+(?:.\\w+)+)(?:\\/-\\/)?)+)$/ )\n\t\t\tif( !matched ) return null\n\t\t\t\n\t\t\tconst build = this.build()\n\n\t\t\tconst [ , rawpath , bundle ] = matched\n\t\t\tconst mod = build.root().resolve( rawpath )\n\n\t\t\tif( bundle === 'web.css' ) {\n\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\tplace: `${this}.generate()`,\n\t\t\t\t\tmessage: 'CSS compiles into JS bundle now',\n\t\t\t\t\thint: 'Remove link to web.css',\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tconst path = mod.path()\n\n\t\t\tthis.path_add(path, bundle)\n\n\t\t\treturn build.bundle( [ path , bundle ] )\n\t\t}\n\n\t\toverride expressIndex() { return this.sync_middleware(this.expressIndexRequest.bind(this)) }\n\t\t\n\t\t@ $mol_mem_key\n\t\tprotected ensure(path: string) {\n\t\t\t$mol_wire_solid()\n\t\t\tthis.build().modEnsure( path )\n\t\t}\n\n\t\texpressIndexRequest(\n\t\t\treq : typeof $node.express.request ,\n\t\t\tres : typeof $node.express.response ,\n\t\t) {\n\n\t\t\tconst root = this.$.$mol_file.absolute( this.rootPublic() )\n\t\t\tconst dir = root.resolve( req.path )\n\n\t\t\tconst path = dir.path()\n\n\t\t\t// ensure загружает сорцы, делает git pull, это не стоит делать на build-папках\n\t\t\t// Поэтому регулярка выше отсеивает build-папки\n\t\t\tthis.ensure( path )\n\n\t\t\t// a/b/?c#d, a/b/-/\n\t\t\tconst match = req.url.match( /(\\/|.*[^\\-]\\/)([\\?#].*)?$/ )\n\t\t\tif( !match) return\n\n\t\t\tconst file = root.resolve( `${req.path}index.html` )\n\n\t\t\tif( file.exists() ) {\n\t\t\t\tres.redirect( 301, `${match[1]}-/test.html${match[2] ?? ''}` )\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t\n\t\t\tif( dir.type() !== 'dir' ) return\n\n\t\t\tconst files = [ {name: '-', type: 'dir'} ]\n\n\t\t\tfor( const file of dir.sub() ) {\n\n\t\t\t\tif (!files.find(( {name} ) => name === file.name())) {\n\t\t\t\t\tfiles.push( {name: file.name(), type: file.type()} )\n\t\t\t\t}\n\n\t\t\t\tif( /\\.meta\\.tree$/.test( file.name() ) ) {\n\t\t\t\t\tconst meta = this.$.$mol_tree2_from_string( file.text() )\n\n\t\t\t\t\tfor( const pack of meta.select( 'pack', null ).kids ) {\n\t\t\t\t\t\tif ( files.find(( {name} ) => name === pack.type) ) continue\n\n\t\t\t\t\t\tfiles.push( {name: pack.type, type: 'dir'} )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst html = `\n\t\t\t\t<style>\n\t\t\t\t\tbody {\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\tfont: 1rem/1.5rem sans-serif;\n\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tpadding: 0.75rem;\n\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t}\n\t\t\t\t\ta {\n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tcolor: rgb(57, 115, 172);\n\t\t\t\t\t\tfont-weight: bolder;\n\t\t\t\t\t}\n\t\t\t\t\ta:hover {\n\t\t\t\t\t\tbackground: hsl( 0deg, 0%, 0%, .05 )\n\t\t\t\t\t}\n\t\t\t\t\ta[href^=\".\"], a[href^=\"-\"], a[href=\"node_modules\"] {\n\t\t\t\t\t\topacity: 0.5;\n\t\t\t\t\t}\n\t\t\t\t\ta[href=\"..\"], a[href=\"-\"] {\n\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t}\n\t\t\t\t</style>\n\t\t\t\t<link href=\"/_logo.png\" rel=\"icon\" />\n\t\t\t\t<a href=\"..\">📁 ..</a>\n\t\t\t\t` + files\n\t\t\t\t.sort($mol_compare_text((item) => item.type))\n\t\t\t\t.map( file => `<a href=\"${file.name}\">${file.type === 'dir' ? '📁' : '📄'} ${file.name}</a>` )\n\t\t\t\t.join( '\\n' )\n\t\t\t\n\t\t\tres.writeHead( 200, {\n\t\t\t\t'Content-Type': 'text/html',\n\t\t\t\t'Access-Control-Allow-Origin': '*',\n\t\t\t} )\n\t\t\t\n\t\t\tres.end( html )\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tport() {\n\t\t\treturn 9080\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlines( next = new Map< InstanceType<$node['ws']['WebSocket']>, string >() ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsocket() {\n\t\t\tconst build = this.build()\n\t\t\tconst root = build.root()\n\n\t\t\treturn super.socket().on( 'connection' , ( line , req )=> {\n\t\t\t\t\n\t\t\t\tconst path_relative = req.url!.replace( /\\/-.*/ , '' ).substring( 1 )\n\t\t\t\tconst path = root.resolve( path_relative ).path()\n\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: this ,\n\t\t\t\t\tmessage: `Connect` ,\n\t\t\t\t\tpath ,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tthis.lines( new Map( [ ... this.lines(), [ line, path ] ] ) )\n\n\t\t\t\tthis.path_add(path, '')\n\n\t\t\t\tline.on( 'close' , ()=> {\n\t\t\t\t\tthis.path_doubt(path)\n\t\t\t\t\tconst lines = new Map( this.lines() )\n\t\t\t\t\tlines.delete( line )\n\t\t\t\t\tthis.lines( lines )\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}\n\n\t\t@ $mol_mem\n\t\tstart() {\n\t\t\tthis.slave_servers()\n\t\t\tthis.repl()\n\t\t\tconst socket = this.socket()\n\n\t\t\tfor( const [ line, path ] of this.lines() ) {\n\t\t\t\tthis.notify([ line, path ])\n\t\t\t}\n\n\t\t\t// this.bundles_keep()\n\n\t\t\treturn socket\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected bundles_count(reset?: null): number {\n\t\t\treturn 1 + ( $mol_wire_probe(() => this.bundles_count()) ?? 0 )\n\t\t}\n\n\t\t/**\n\t\t * Держать в памяти собранные бандлы плохо, т.к. gc их может долго не утилизировать и node сожрет память и упадет.\n\t\t * Логичнее удалять отложенно, после того как reload-сокет отписался от пути и повторно не подписался.\n\t\t */\n\t\t@ $mol_mem\n\t\tprotected bundles_keep() {\n\t\t\tconst build = this.build()\n\t\t\tthis.bundles_count()\n\t\t\tfor (const [path, bundles] of Object.entries(this.path_bundles)) {\n\t\t\t\tconst sources = build.sourcesAll([ path , [ 'node' ] ])\n\t\t\t\tfor (const source of sources ) source.version()\n\t\t\t\tfor (const bundle of bundles) {\n\t\t\t\t\tconst files = build.bundle([ path, bundle ])\n\t\t\t\t\tfor ( const file of files ) {\n\t\t\t\t\t\tfile.version()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprotected path_bundles = {} as Record<string, Set<string>>\n\t\tprotected path_doubted = new Set<string>()\n\n\t\tpath_add(path: string, bundle: string) {\n\t\t\treturn\n\t\t\tthis.path_doubted.delete(path)\n\t\t\tif (! this.path_bundles[path]) this.path_bundles[path] = new Set()\n\t\t\tthis.path_bundles[path].add(bundle)\n\t\t\tthis.bundles_count(null)\n\t\t}\n\n\t\tprotected path_doubt_timeout = null as null | $mol_after_timeout\n\n\t\tpath_doubt(path: string) {\n\t\t\tthis.path_doubted.add(path)\n\n\t\t\tif ( this.path_doubt_timeout) return\n\n\t\t\tthis.path_doubt_timeout = new this.$.$mol_after_timeout(\n\t\t\t\t15000,\n\t\t\t\t() => $mol_wire_async(this).path_doubted_remove()\n\t\t\t)\n\t\t}\n\n\t\tpath_doubted_remove() {\n\t\t\tfor (const path of this.path_doubted) {\n\t\t\t\tdelete this.path_bundles[path]\n\t\t\t}\n\t\t\tthis.path_doubt_timeout = null\n\t\t\tthis.path_doubted.clear()\n\t\t\tthis.bundles_count(null)\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundle_changed_at( path: string ) {\n\t\t\tconst build = this.build()\n\t\t\ttry {\n\t\t\t\n\t\t\t\tconst sources = build.sourcesAll([ path , [ 'node' ] ])\n\n\t\t\t\t/**\n\t\t\t\tБывает надо какой-то внешней программой в watch-режиме компилить js-ки или wasm\n\t\t\t\tи класть как артефакт в - (например, игровой движок на unity)\n\t\t\t\tПри изменении этих файлов, надо перезапускать страницу.\n\t\t\t\tЕсли их класть не в -, а рядом с сорцами, то билдер mol будет пытаться их анализировать и упадет.\n\t\t\t\t */\n\t\t\t\tconst resources = build.bundleFiles([ path , [ 'node' ] ])\n\t\t\t\t\n\t\t\t\tfor( const src of [...sources, ...resources] ) src.version()\n\t\t\t} catch (error) {\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.notify`,\n\t\t\t\t\t\tmessage: (error as Error)?.message,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn new Date()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tnotify( [ line, path ]: [ InstanceType<$node['ws']['WebSocket']>, string ] ) {\n\t\t\tthis.bundle_changed_at(path)\n\n\t\t\t// ignore initial\n\t\t\tif( !$mol_mem_cached( ()=> this.notify([ line, path ]) ) ) return true\n\n\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\tplace: `${this}`,\n\t\t\t\tmessage: `$mol_build_obsolete`,\n\t\t\t\tpath\n\t\t\t})\n\t\t\t\t\n\t\t\tline.send( '$mol_build_obsolete' )\n\n\t\t\treturn true\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tslave_commands( next = [] as string[] ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tslave_servers() {\n\t\t\treturn this.slave_commands().map( cmd => this.slave_server( cmd ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tslave_server( cmd: string ) {\n\t\t\t\n\t\t\tconst [ path, ... args ] = cmd.split( ' ' )\n\t\t\tconst command = `node ./${path}/-/node.js ${args.join(' ')}`\n\t\t\t\n\t\t\tconst prev = $mol_wire_probe( ()=> this.slave_server( cmd ) )\n\t\t\tif( prev ) prev.destructor()\n\t\t\t\n\t\t\tconst build = this.build()\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( const file of build.bundle([ path, 'node.js' ]) ) file.version()\n\t\t\t\tfor( const file of build.bundle([ path, 'node.audit.js' ]) ) file.version()\n\t\t\t\tfor( const file of build.bundle([ path, 'node.test.js' ]) ) file.version()\n\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.slave_server`,\n\t\t\t\t\t\tstack: error.stack,\n\t\t\t\t\t\tmessage: error.message ?? error,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Start',\n\t\t\t\tcommand ,\n\t\t\t})\n\t\n\t\t\tconst server = $node['child_process'].spawn(\n\t\t\t\t'node',\n\t\t\t\t[ '--enable-source-maps', '--trace-uncaught', `./${path}/-/node.js`, ... args ],\n\t\t\t\t{\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn Object.assign( server, {\n\t\t\t\tdestructor: ()=> {\n\t\t\t\t\tif( server.killed ) return\n\t\t\t\t\tserver.kill()\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Stopped',\n\t\t\t\t\t\tcommand ,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trepl() {\n\t\t\t\n\t\t\tconst terminal = $node.readline.createInterface({\n\t\t\t\tinput: process.stdin,\n\t\t\t\toutput: process.stdout,\n\t\t\t\thistory: [],\n\t\t\t\ttabSize: 4,\n\t\t\t\tprompt: '',\n\t\t\t})\n\t\t\tterminal.prompt()\n\t\t\t\n\t\t\tconst hint = 'start: + path/to/module args\\nstop: - path/to/module args'\n\t\t\t\n\t\t\tterminal\n\t\t\t.on( 'line', line => {\n\t\t\t\t\n\t\t\t\tif( !line.trim() ) return\n\t\t\t\t\n\t\t\t\tconst [ action, ... params ] = line.split( ' ' )\n\t\t\t\tconst command = params.join(' ')\n\t\t\t\t\n\t\t\t\tswitch( action ) {\n\t\t\t\t\tcase '+': return this.slave_commands([ ... this.slave_commands(), command ])\n\t\t\t\t\tcase '-': return this.slave_commands( this.slave_commands().filter( cmd => cmd !== command ) )\n\t\t\t\t\tcase '?':\n\t\t\t\t\tdefault: return console.log( hint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})\n\t\t\t.on( 'SIGINT', () => process.exit(0) )\n\t\t\t.on( 'close', () => process.exit(0) )\n\t\t\t\n\t\t\t// this.$.$mol_log3_done({\n\t\t\t// \tplace: this,\n\t\t\t// \tmessage: 'Watch dog started',\n\t\t\t// \thint,\n\t\t\t// })\n\t\n\t\t\treturn terminal\n\t\t}\n\t\t\n\t}\n\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["-","../../../mam.ts","../../../mol/guid/guid.ts","../../../mol/fail/fail.ts","../../../mol/wire/cursor/cursor.ts","../../../mol/wire/pub/pub.ts","../../../mol/wire/wire.ts","../../../mol/fail/hidden/hidden.ts","../../../mol/dev/format/format.ts","../../../mol/wire/pub/sub/sub.ts","../../../mol/ambient/ambient.ts","../../../mol/delegate/delegate.ts","../../../mol/owning/owning.ts","../../../mol/func/name/name.ts","../../../mol/object2/object2.ts","../../../mol/after/tick/tick.ts","../../../mol/promise/like/like.ts","../../../mol/wire/fiber/fiber.ts","../../../mol/compare/deep/deep.ts","../../../mol/log3/log3.ts","../../../mol/span/span.ts","../../../mol/tree2/to/string/string.ts","../../../mol/maybe/maybe.ts","../../../mol/tree2/tree2.ts","../../../mol/error/syntax/syntax.ts","../../../mol/tree2/from/string/string.ts","../../../mol/tree2/from/json/json.ts","../../../mol/term/color/color.ts","../../../mol/log3/log3.node.ts","../../../mol/wire/task/task.ts","../../../mol/wire/async/async.ts","../../../mol/object/object.ts","../../../mol/key/key.ts","../../../mol/after/timeout/timeout.ts","../../../mol/after/frame/frame.node.ts","../../../mol/wire/method/method.ts","../../../mol/fail/catch/catch.ts","../../../mol/try/try.node.ts","../../../mol/fail/log/log.ts","../../../mol/wire/atom/atom.ts","../../../mol/wire/solo/solo.ts","../../../mol/wire/plex/plex.ts","../../../mol/mem/mem.ts","../../../mol/const/const.ts","../../../mol/action/action.ts","../../../mol/wire/probe/probe.ts","../../../mol/wire/sync/sync.ts","../../../mol/lock/lock.ts","../../../mol/mem/cached/cached.ts","../../../mol/compare/array/array.ts","../../../mol/charset/decode/decode.ts","../../../mol/charset/encode/encode.ts","../../../mol/file/transaction/transaction.ts","../../../node/internal/check/check.node.ts","../../../node/autoinstall/autoinstall.node.ts","../../../node/node.node.ts","../../../mol/wire/solid/solid.ts","../../../mol/error/mix/mix.ts","../../../mol/env/env.ts","../../../mol/env/env.node.ts","../../../mol/run/run.node.ts","../../../mol/file/transaction/transaction.node.ts","../../../mol/file/base/base.ts","../../../mol/file/file.ts","../../../mol/file/file.node.ts","../../../mol/tree2/js/is/number/number.ts","../../../mol/tree2/js/to/text/text.ts","../../../mol/view/tree2/error.ts","../../../mol/view/tree2/child.ts","../../../mol/view/tree2/classes.ts","../../../mol/view/tree2/normalize.ts","../../../mol/regexp/regexp.ts","../../../mol/view/tree2/prop/signature.ts","../../../mol/view/tree2/prop/parts.ts","../../../mol/view/tree2/prop/quote.ts","../../../mol/view/tree2/class/match.ts","../../../mol/view/tree2/class/super.ts","../../../mol/view/tree2/class/props.ts","../../../mol/dom/context/context.ts","../../../mol/dom/context/context.node.ts","../../../mol/mem/persist/persist.ts","../../../mol/storage/storage.ts","../../../mol/state/local/local.ts","../../../mol/dom/dom.ts","../../../mol/state/local/local.node.ts","../../../mol/locale/locale.ts","../../../mol/guard/defined.ts","../../../mol/view/tree2/to/js/js.ts","../../../mol/view/tree2/to/dts/dts.ts","../../../mol/view/tree2/to/locale/locale.ts","../../../mol/tree2/text/to/string/string.ts","../../../mol/vlq/vlq.ts","../../../mol/tree2/text/to/sourcemap/sourcemap.ts","../../../mol/graph/graph.ts","../../../mol/sourcemap/strip/strip.ts","../../../mol/sourcemap/url/url.ts","../../../mol/sourcemap/dataurl/dataurl.ts","../../../mol/sourcemap/from/file.ts","../../../mol/base64/encode/encode.ts","../../../mol/base64/encode/encode.node.ts","../../../mol/build/ensure/ensure.ts","../../../mol/build/graph/graph.ts","../../../mol/sourcemap/builder/builder.ts","../../../mol/html/encode/encode.ts","../../../mol/tree2/xml/to/text/text.ts","../../../mol/build/ensure/vcs/vcs.ts","../../../mol/compare/text/text.ts","../../../mol/build/ensure/git/git.ts","../../../mol/build/ensure/npm/npm.ts","../../../mol/build/build.node.ts","../../../mol/server/server.node.ts","../../../mol/build/server/server.node.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\t/** Generates unique identifier. */\n\texport function $mol_guid(\n\t\tlength = 8,\n\t\texists: ( id: string )=> boolean = ()=> false,\n\t) {\n\n\t\tfor(;;) {\n\n\t\t\tlet id = Math.random().toString( 36 ).substring( 2, length + 2 ).toUpperCase()\n\t\t\tif( exists( id ) ) continue\n\t\t\t\n\t\t\treturn id\n\t\t}\n\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\t\n\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\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","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\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// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\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' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['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\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\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?.$ || (this.constructor as { $?: $ }).$ || $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\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\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(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\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}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\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\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\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}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\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.kids.flatMap( ( 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.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\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 ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst 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\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( 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\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\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\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\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\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\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\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\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\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\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\t// if( value instanceof DataView ) return [ ... new Uint8Array( value.buffer ) ]\n\t\t\tif( value instanceof TypedArray ) return [ ... value as any ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakSet< any >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.has( error ) ) return false\n\t\t\n\t\tcatched.add( error )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\treturn error\n\t\t}\n\t}\n\t\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\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\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\t\n\t/** Run code without state changes */\n\texport function $mol_wire_probe< Value >(\n\t\ttask : ()=> Value, def?: Value\n\t) : Value | undefined {\n\t\t\n\t\tconst warm = $mol_wire_fiber.warm\n\t\t\n\t\ttry {\n\t\t\t$mol_wire_fiber.warm = false\n\t\t\tconst res = task()\n\t\t\tif( res === undefined ) return def\n\t\t\treturn res\n\t\t} finally {\n\t\t\t$mol_wire_fiber.warm = warm\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n\texport let $mol_mem_cached = $mol_wire_probe\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\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\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\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only'\n\t\t| 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\treturn 0\n\t\t}\n\n\t\tread() {\n\t\t\treturn new Uint8Array()\n\t\t}\n\n\t\ttruncate(size: number) {}\n\n\t\tclose() {}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst internals = mod.builtinModules\n\t\n\texport function $node_internal_check(name: string) {\n\t\tif ( name.startsWith('node:') ) return true\n\t\treturn internals.includes(name)\n\t}\n\n}\n","namespace $ {\n\tconst path = require/****/( 'path' ) as typeof import/****/( 'path' )\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst localRequire = mod.createRequire(path.join(process.cwd(), 'package.json'))\n\n\texport function $node_autoinstall(this: typeof $, name: string) {\n\t\ttry {\n\t\t\tlocalRequire.resolve( name )\n\t\t} catch {\n\n\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', name ], dir: '.' })\n\n\t\t\ttry {\n\t\t\t\tthis.$mol_run.spawn({ command: [ 'npm' , 'install' , '--omit=dev', '@types/' + name ], dir: '.' })\n\t\t\t} catch (e) {\n\t\t\t\tif( this.$mol_promise_like( e ) ) this.$mol_fail_hidden( e )\n\t\t\t\tthis.$mol_fail_log(e)\n\t\t\t}\n\n\t\t}\n\t}\n}\n","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\tif( $.$node_internal_check(name) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\n\t\t$.$node_autoinstall(name)\n\n\t\treturn target.require( name )\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\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\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\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync(this.descr())\n\t\t}\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\texport function $mol_tree2_js_is_number(type: string) {\n\t\treturn type.match(/[\\+\\-]*NaN/) || !Number.isNaN( Number( type ) )\n\t}\n}\n","namespace $ {\n\n\tfunction is_identifier( tree: $mol_tree2 ) {\n\t\tif( tree.type ) return false\n\t\treturn /^[a-z_$][a-z_$0-9]*$/i.test( tree.text() )\n\t}\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction block( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.kids.length === 0 ? [] : [ input.struct( 'indent',\n\t\t\t\t\tinput.kids.map( ( kid, index ) =>\n\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t... ( separator ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t] ),\n\t\t\t\t\t),\n\t\t\t\t) ],\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\treturn js.list( js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': block( '{', ';', '}' ),\n\t\t\t';': block( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': block( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t'?.[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '?.[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '?.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> input.kids[0].type\n\t\t\t\t? duplet( '[', ']: ' )( input, belt )\n\t\t\t\t: duplet( '', ': ' )( input, belt ),\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t] ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) )\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_view_tree2_error extends Error {\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly spans: readonly $mol_span[]\n\t\t) {\n\t\t\tsuper(message)\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\tmessage: this.message,\n\t\t\t\tspans: this.spans\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree2_error_suggestions {\n\t\tconstructor(\n\t\t\treadonly suggestions: readonly string[]\n\t\t) {}\n\n\t\ttoString() {\n\t\t\treturn this.suggestions.map(suggestion => `\\`${suggestion}\\``).join(', ')\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.suggestions\n\t\t}\n\t}\n\n\texport function $mol_view_tree2_error_str(\n\t\tstrings: readonly string[],\n\t\t...parts: readonly ($mol_span | readonly $mol_span[] | string | number | $mol_view_tree2_error_suggestions)[]\n\t) {\n\t\tconst spans: $mol_span[] = []\n\n\t\tfor (const part of parts) {\n\t\t\tif (part instanceof $mol_span) spans.push(part)\n\t\t\tif (Array.isArray(part) && part.length > 0 && part[0] instanceof $mol_span) spans.push(...part)\n\t\t}\n\n\t\treturn new $mol_view_tree2_error(join(strings, parts), spans)\n\t}\n\n\tfunction join(strings: readonly string[], objects: readonly unknown[]) {\n\t\tlet result = ''\n\t\tlet obj_pos = 0\n\t\tlet obj_len = objects.length\n\n\t\tfor (const str of strings) {\n\t\t\tresult += str\n\t\t\tif (obj_pos < obj_len) {\n\t\t\t\tconst obj = objects[obj_pos++]\n\t\t\t\tif (Array.isArray(obj)) result += obj.map(item => `\\`${item}\\``).join(', ')\n\t\t\t\telse result += `\\`${String(obj)}\\``\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_child(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) {\n\n\t\tif( tree.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Required one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\tif( tree.kids.length > 1 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Should be only one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn tree.kids[0]\n\t}\n\n}\n","namespace $ {\n\texport function $mol_view_tree2_classes( defs : $mol_tree2 ) {\n\t\treturn defs.clone(defs.hack({\n\t\t\t'-': () => []\n\t\t}))\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_view_tree2_normalize( this: $, defs : $mol_tree2 ) {\n\t\treturn defs.clone(\n\t\t\t$mol_view_tree2_classes( defs ).kids.map( cl => cl.clone([\n\t\t\t\tthis.$mol_view_tree2_class_super( cl ).clone(\n\t\t\t\t\tthis.$mol_view_tree2_class_props( cl )\n\t\t\t\t)\n\t\t\t]) )\n\t\t)\n\t}\n\t\n}\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params<T> = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): RegExpStringIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp<any>( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\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\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\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 null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst { begin, end, latin_only, or, optional, repeat_greedy } = $mol_regexp\n\n\texport let $mol_view_tree2_prop_signature = $mol_regexp.from([\n\t\tbegin,\n\t\t{ name: repeat_greedy( latin_only, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( latin_only, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( latin_only, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\texport function $mol_view_tree2_prop_parts(this: $, prop: $mol_tree2 ) {\n\t\tconst groups = [ ...prop.type.matchAll( $mol_view_tree2_prop_signature ) ][0]?.groups\n\n\t\tif (! groups) {\n\t\t\tthis.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Required prop like some*? at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tname: groups.name,\n\t\t\tkey: groups.key,\n\t\t\tnext: groups.next ? '?' : ''\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst regular_regex = /^\\w+$/\n\n\texport function $mol_view_tree2_prop_quote(name: $mol_tree2) {\n\t\tif (regular_regex.test(name.value)) return name\n\n\t\treturn name.data(JSON.stringify(name.value))\n\t}\n}\n","namespace $ {\n\tconst class_regex = /^[$A-Z][$\\w<>\\[\\]()\"'?|]+$/\n\n\texport function $mol_view_tree2_class_match(klass?: $mol_tree2) {\n\t\tif (! klass?.type) return false\n\t\tif (klass.type === 'NaN' || klass.type === 'Infinity') return false\n\n\t\treturn class_regex.test(klass.type)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_class_super(\n\t\tthis: $,\n\t\tklass: $mol_tree2\n\t) {\n\t\tif( ! $mol_view_tree2_class_match( klass ) ) return this.$mol_fail(\n\t\t\terr `Wrong class name at ${klass.span}` \n\t\t)\n\n\t\tconst superclass = klass.kids.length === 1 ? klass.kids[0] : undefined\n\n\t\tif (! superclass) return this.$mol_fail(\n\t\t\terr`No super class at ${klass.span}`\n\t\t)\n\n\t\tif( ! $mol_view_tree2_class_match( superclass ) ) return this.$mol_fail(\n\t\t\terr`Wrong super class name ${JSON.stringify(superclass.type).replace(/(^\"|\"$)/g, \"\")} at ${superclass.span}`\n\t\t)\n\n\t\treturn superclass\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\ttype Context = { factory?: $mol_tree2 }\n\n\texport function $mol_view_tree2_class_props(\n\t\tthis: $,\n\t\tklass : $mol_tree2,\n\t) {\n\t\tlet props = this.$mol_view_tree2_class_super( klass )\n\t\t\n\t\t// ! syntax to *\n\t\tprops = props.clone(\n\t\t\tprops.hack({\n\t\t\t\t'': ( node, belt )=> {\n\t\t\t\t\tconst normal = node.type.replace( /!\\w+/, '*' )\n\t\t\t\t\tif( node.type === normal ) return [ node.clone( node.hack( belt ) ) ]\n\t\t\t\t\treturn [ node.struct( normal, node.hack( belt ) ) ]\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst props_inner = {} as Record<string, $mol_tree2>\n\n\t\tconst add_inner = ( prop: $mol_tree2 ) => {\n\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\t\t\tconst prev = props_inner[name]\n\t\t\tif (prev && prev.kids[0]?.toString() !== prop.kids[0]?.toString()) {\n\t\t\t\tthis.$mol_fail(err`Need an equal default values at ${prev.span} vs ${prop.span}`)\n\t\t\t}\n\t\t\tprops_inner[name] = prop\n\t\t}\n\n\t\tconst upper = (operator: $mol_tree2, belt: $mol_tree2_belt<Context>, context: Context) => {\n\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\tconst defs = prop.hack( belt, { factory: prop } )\n\t\t\tif( defs.length ) add_inner( prop.clone( defs ) )\n\n\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t}\n\n\t\tconst props_root = props.hack({\n\t\t\t'<=': upper,\n\n\t\t\t'<=>': upper,\n\n\t\t\t'^': ( operator, belt, context) => {\n\t\t\t\tif (operator.kids.length === 0) return [ operator ]\n\t\t\t\treturn upper(operator, belt, context)\n\t\t\t},\n\n\t\t\t'': (left, belt, context) => {\n\t\t\t\tlet right\n\t\t\t\tconst operator = left.kids[0]\n\n\t\t\t\tif (operator?.type === '=>' && context.factory) {\n\t\t\t\t\tright = operator.kids[0]\n\t\t\t\t\tif (! right) this.$mol_fail(err`Need a child ${operator.span}`)\n\t\t\t\t\tif (! context.factory) this.$mol_fail(err`Need a parent ${left.span}`)\n\n\t\t\t\t\tadd_inner(right.clone([\n\t\t\t\t\t\tright.struct('=', [\n\t\t\t\t\t\t\tcontext.factory.struct(\n\t\t\t\t\t\t\tcontext.factory.type.replace( /\\*.*/, '*' ),\n\t\t\t\t\t\t\t\t[ left.clone([]) ],\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]))\n\t\t\t\t}\n\n\t\t\t\tif (right) context = { factory: right.clone([]) }\n\t\t\t\telse if( operator && ! context.factory && $mol_view_tree2_class_match( operator ) ) {\n\t\t\t\t\tcontext = { factory: left.clone([]) }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst hacked = left.clone( left.hack( belt, context ) )\n\n\t\t\t\treturn [ hacked ]\n\t\t\t}\n\n\t\t}, { factory: undefined } as Context)\n\n\t\tfor (const prop of props_root ) add_inner(prop)\n\t\t\n\t\treturn Object.values(props_inner)\n\t}\n\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\n}\n","namespace $ {\n\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\t/**\n\t * Localisation in $mol framework\n\t * @see https://mol.hyoo.ru/#!section=docs/=s5aqnb_odub8l\n\t */\n\texport class $mol_locale extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang_default() {\n\t\t\treturn 'en'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang( next? : string ) {\n\t\t\treturn this.$.$mol_state_local.value( 'locale' , next ) || $mol_dom_context.navigator.language.replace( /-.*/ , '' ) || this.lang_default()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic source( lang : string ) {\n\t\t\treturn JSON.parse( this.$.$mol_file.relative( `web.locale=${ lang }.json` ).text().toString() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic texts( lang : string , next? : $mol_locale_dict ) : $mol_locale_dict {\n\t\t\tif( next ) return next\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn this.source( lang ).valueOf()\n\t\t\t} catch( error: any ) {\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\tconst def = this.lang_default()\n\t\t\t\t\tif( lang === def ) throw error\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ): string {\n\t\t\t\n\t\t\tconst lang = this.lang()\n\n\t\t\tconst target = this.texts( lang )[ key ]\n\t\t\tif( target ) return target\n\t\t\t\n\t\t\tthis.warn( key )\n\t\t\t\n\t\t\tconst en = this.texts( 'en' )[ key ]\n\t\t\tif( !en ) return key\n\t\t\t\n\t\t\treturn en\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic warn( key : string ) {\n\t\t\tconsole.warn( `Not translated to \"${ this.lang() }\": ${ key }` )\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_parts(prop).name\n\t}\n\t\n\tfunction params_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\t\n\tfunction args_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? key.length > 1\n\t\t\t\t\t? [ prop.data( key.slice(1) ) ]\n\t\t\t\t\t: [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\n\tfunction call_method_name(this: $, child: $mol_tree2, optional: boolean) {\n\t\treturn child.struct( optional ? '?.[]' : '[]', [\n\t\t\tchild.data( name_of.call( this, child ) )\n\t\t] )\n\t}\n\n\tfunction call_of(this: $, bind: $mol_tree2, bidi = true) {\n\t\tif( bind.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\terr`Required one child at ${bind.span}`\n\t\t\t)\n\t\t}\n\n\t\tconst chain = [ bind.struct( 'this' ) ]\n\n\t\tfor (const child of bind.kids) {\n\t\t\tchain.push(\n\t\t\t\tcall_method_name.call(this, child, chain.length > 1),\n\t\t\t\targs_of.call(this, child, bidi),\n\t\t\t)\n\t\t}\n\n\t\treturn bind.struct( '()', chain )\n\t}\n\n\ttype Context = { chain?: string[] }\n\t\n\tconst localized_string = $$.$mol_tree2_from_string(`\n\t\t()\n\t\t\tthis\n\t\t\t[] \\\\$\n\t\t\t[] \\\\$mol_locale\n\t\t\t[] \\\\text\n\t\t\t(,) #key\n\t`, 'localized_string' )\n\n\tfunction klass_body(\n\t\tthis: $,\n\t\tacc: {\n\t\t\tklass: $mol_tree2\n\t\t\taddons: $mol_tree2[]\n\t\t\tmembers: $mol_tree2[]\n\t\t},\n\t\tprop: $mol_tree2\n\t) {\n\t\tconst { klass, members, addons } = acc\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tconst decorate = ()=> {\n\t\t\treturn prop.struct( '()', [\n\t\t\t\tprop.struct( key ? '$mol_mem_key' : '$mol_mem' ),\n\t\t\t\tprop.struct( '(,)', [\n\t\t\t\t\tprop.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tprop.data( 'prototype' ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tprop.data( name ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t}\n\t\tconst op = prop.kids[0]\n\t\tconst is_delegate = op?.type === '<=>' || op?.type === '='\n\t\tif( ! is_delegate && next ) addons.push( decorate() )\n\t\t\n\t\tconst val = prop.hack<Context>({\n\t\t\t\n\t\t\t'@': ( locale, belt, context )=> {\n\t\t\t\tconst chain = context.chain?.join('_')\n\n\t\t\t\treturn localized_string.hack({\n\t\t\t\t\t'#key': key => [ locale.data( `${ klass.type }_${ name }${ chain ? `_${chain}` : '' }` ) ],\n\t\t\t\t})\n\t\t\t},\n\t\t\t\n\t\t\t'<=': bind => [ call_of.call(this, bind, false) ],\n\n\t\t\t'<=>': bind => [ call_of.call(this, bind, true) ],\n\t\t\t\n\t\t\t'=>': bind => [],\n\t\t\t\n\t\t\t'^': ( ref, belt, context )=> [\n\t\t\t\tref.struct( '...', [\n\t\t\t\t\t\n\t\t\t\t\t// prop ^ foo\n\t\t\t\t\tref.kids[0]?.type\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name_of.call(this, ref.kids[0]) ) ] ),\n\t\t\t\t\t\targs_of.call(this, ref.kids[0])\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// Having $having foo / ^\n\t\t\t\t\t: context.chain\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( '$' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( op.type ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'prototype' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( context.chain[0] ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'call' ) ] ),\n\t\t\t\t\t\tref.struct( '(,)', [ ref.struct( 'obj' ) ] ),\n\t\t\t\t\t\t... context.chain.slice(1).map( field => ref.struct( '[]', [ ref.data( field ) ] ) )\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// prop ^\n\t\t\t\t\t: ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'super' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name ) ] ),\n\t\t\t\t\t\tref.struct( '(,)' )\n\t\t\t\t\t] ),\n\t\t\t\t\t\n\t\t\t\t] ),\n\t\t\t],\n\n\t\t\t'=': bind => [ bind.struct( '()', [\n\t\t\t\tbind.struct( 'this' ),\n\t\t\t\t... bind.hack({ '': ( method, belt, ctx )=> [\n\t\t\t\t\tcall_method_name.call( this, method, (ctx.item_index++) > 0 ),\n\t\t\t\t\targs_of.call( this, method ),\n\t\t\t\t\t... method.hack( belt ),\n\t\t\t\t] }, { item_index: 0 }),\n\t\t\t] ) ],\n\t\t\t\t\n\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct('{,}',\n\t\t\t\t\t\t\tinput.kids.map( field => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( field.type === '^' ) return field.list([ field ]).hack( belt, context )[0]\n\t\t\t\t\t\t\t\tconst field_name = (field.type || field.value).replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\treturn field.struct( ':', [\n\t\t\t\t\t\t\t\t\tfield.data( field_name ),\n\t\t\t\t\t\t\t\t\tfield.kids[0].type === '<=>'\n\t\t\t\t\t\t\t\t\t\t? field.struct( '=>', [\n\t\t\t\t\t\t\t\t\t\t\tparams_of.call(this, field ),\n\t\t\t\t\t\t\t\t\t\t\t... field.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t: field.hack<Context>( belt, {... context, chain: [...context.chain ?? [], field_name] })[0],\n\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} ).filter( this.$mol_guard_defined )\n\t\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\tif( input.type[0] === '/' ) return [\n\t\t\t\t\tinput.struct( '[,]', input.hack( belt, context ) ),\n\t\t\t\t]\n\t\t\t\tif( input.type && $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput\n\t\t\t\t]\n\n\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\tif( ! next ) addons.push( decorate() )\n\t\t\t\t\t\n\t\t\t\t\tconst overrides = [] as $mol_tree2[]\n\t\t\t\t\t\n\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( over.type[0] === '/' ) continue\n\t\t\t\t\t\tconst bind = over.kids[0]\n\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\n\t\t\t\t\t\tconst over_name = name_of.call(this, over )\n\n\t\t\t\t\t\tconst body = [\n\t\t\t\t\t\t\targs_of.call(this, over ),\n\t\t\t\t\t\t\tover.struct( '()', over.hack( belt, { chain: [ over.type ] } )),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\toverrides.push(\n\t\t\t\t\t\t\tover.struct( '=', [\n\t\t\t\t\t\t\t\tover.struct( '()', [\n\t\t\t\t\t\t\t\t\tover.struct( 'obj' ),\n\t\t\t\t\t\t\t\t\tover.struct( '[]', [\n\t\t\t\t\t\t\t\t\t\tover.data( over_name ),\n\t\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\tover.struct( '=>', body ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'const', [\n\t\t\t\t\t\t\tinput.struct( 'obj' ),\n\t\t\t\t\t\t\tinput.struct( 'new', [\n\t\t\t\t\t\t\t\tinput.struct( 'this' ),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( '$' ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( input.type.replace(/<.+>/g, '') ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct( '(,)', input.select( '/', null ).hack( belt ) ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\t... overrides,\n\t\t\t\t\t\tinput.struct( 'obj' ),\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\treturn [ input ]\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t})\n\n\t\tmembers.push(\n\t\t\tprop.struct( '.', [\n\t\t\t\tprop.data( name ),\n\t\t\t\tparams_of.call(this, prop ),\n\t\t\t\tprop.struct( '{;}', [\n\t\t\t\t\t... next && ! is_delegate ? [\n\t\t\t\t\t\tprop.struct( 'if', [\n\t\t\t\t\t\t\tprop.struct( '(!==)', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t\tprop.struct( 'undefined' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\tprop.struct( 'return', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] : [],\n\t\t\t\t\t... val.slice( 0, -1 ),\n\t\t\t\t\tprop.struct( 'return', val.slice( -1 ) ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t)\n\n\t\treturn acc\n\t}\n\n\texport function $mol_view_tree2_to_js( this: $, descr: $mol_tree2 ) {\n\t\t\n\t\tdescr = $mol_view_tree2_classes( descr )\n\t\t\n\t\tconst definitions = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst parent = klass.kids[0]\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst addons = [] as $mol_tree2[]\n\t\t\tconst members = [] as $mol_tree2[]\n\t\t\tconst acc = { klass, addons, members }\n\n\t\t\tfor( const prop of props ) {\n\t\t\t\ttry {\n\t\t\t\t\tklass_body.call( this, acc, prop )\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\te.message += ` at ${prop.span}`\n\t\t\t\t\t$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefinitions.push(\n\t\t\t\tklass.struct( '=', [\n\t\t\t\t\tklass.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tklass.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tklass.struct( 'class', [\n\t\t\t\t\t\tklass.struct( klass.type ),\n\t\t\t\t\t\tparent.struct( 'extends', [\n\t\t\t\t\t\t\tparent.struct( '()', [\n\t\t\t\t\t\t\t\tparent.struct( '$' ),\n\t\t\t\t\t\t\t\tparent.struct( '[]', [\n\t\t\t\t\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tklass.struct( '{}', members ),\n\t\t\t\t\t] ),\n\t\t\t\t] ),\n\t\t\t\t... addons,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.struct( ';', definitions )\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2) {\n\t\tconst name = prop.type\n\t\t\t? this.$mol_view_tree2_prop_parts(prop).name\n\t\t\t: prop.value\n\n\t\tif (! name) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Required valid prop name at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.data(name)\n\t}\n\t\n\tfunction channel_signature( this: $, prop: $mol_tree2, ... val: $mol_tree2[] ) {\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tif (next && ! val[0]?.value ) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Type empty for next value at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.struct( 'line', [\n\t\t\tprop.data(name),\n\t\t\tprop.data('( '),\n\t\t\t... key ? [\n\t\t\t\tprop.data('id'),\n\t\t\t\tprop.data( ': any' + ( next ? ', ' : '' ) ),\n\t\t\t] : [],\n\t\t\t... next ? [\n\t\t\t\tprop.data('next'),\n\t\t\t\tprop.data( '?: ' ),\n\t\t\t\t... val,\n\t\t\t\tprop.data(' '),\n\t\t\t] : [],\n\t\t\tprop.data(')'),\n\t\t] )\n\t\t\n\t}\n\n\tfunction return_type(this: $, klass: $mol_tree2, input: $mol_tree2) {\n\t\treturn [\n\t\t\tinput.data( 'ReturnType< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( '\\'] >' ),\n\t\t]\n\t}\n\n\tfunction parameters(this: $, klass: $mol_tree2, input: $mol_tree2, pick_index?: number) {\n\t\tconst result = [\n\t\t\tinput.data( 'Parameters< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( `'] >`),\n\t\t]\n\n\t\tif (pick_index !== undefined) {\n\t\t\tresult.push(input.data(`[${pick_index}]`))\n\t\t}\n\n\t\treturn result\n\t}\n\n\tfunction primitive_type(input: $mol_tree2) {\n\t\tlet type = 'string'\n\t\tif (input.type && $mol_tree2_js_is_number(input.type)) type = 'number'\n\n\t\tif (input.type === 'true' || input.type === 'false') type = 'boolean'\n\n\t\treturn input.data(type)\n\t}\n\n\tfunction readonly_arr(input: $mol_tree2, infered: readonly $mol_tree2[]) {\n\t\treturn [\n\t\t\tinput.data('readonly('),\n\t\t\tinfered.length === 1 ? infered[0] : input.struct( 'indent', infered),\n\t\t\tinput.data(')[]'),\n\t\t]\n\t}\n\n\tfunction type_enforce(this: $, name: $mol_tree2, a: readonly $mol_tree2[], b: readonly $mol_tree2[]) {\n\t\treturn name.struct('line', [\n\t\t\tname.data(`type ${ name.value.replace(/<.*>/g, '') } = $mol_type_enforce<` ),\n\t\t\tname.struct( 'indent', [\n\t\t\t\ta[0].struct('line', a),\n\t\t\t\ta[0].data(','),\n\t\t\t\tb[0].struct('line', b),\n\t\t\t]),\n\t\t\tname.data( '>' ),\n\t\t])\n\t}\n\n\texport function $mol_view_tree2_to_dts(this: $, tree: $mol_tree2) {\n\t\t\n\t\tconst descr = $mol_view_tree2_classes( tree )\n\t\t\n\t\tconst types = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\t\t\t\n\t\t\tlet assert_count = 0\n\t\t\tconst parent = this.$mol_view_tree2_child(klass)\n\t\t\tconst props = this.$mol_view_tree2_class_props(klass)\n\t\t\tconst aliases = [] as $mol_tree2[]\n\t\t\tconst context = { objects: [] as $mol_tree2[] }\n\t\t\tconst klass_name = klass.type.slice(1)\n\t\t\ttypes.push(\n\t\t\t\tklass.struct( 'line', [\n\t\t\t\t\tklass.data( 'export class ' ),\n\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\tparent.data( ' extends ' ),\n\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\tklass.data( ' {' ),\n\t\t\t\t] ),\n\t\t\t\t... props.map( prop => {\n\t\t\t\t\t\n\t\t\t\t\tconst val = prop.hack({\n\t\t\t\t\t\t\n\t\t\t\t\t\t'null': val => {\n\t\t\t\t\t\t\tconst kid = val.kids[0]\n\n\t\t\t\t\t\t\treturn kid?.type\n\t\t\t\t\t\t\t\t? [ kid.data(kid.type), val.data( ' | null' ) ]\n\t\t\t\t\t\t\t\t: [ val.data( 'any' ) ]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t\t'true': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t'false': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t\n\t\t\t\t\t\t'@': ( locale, belt )=> locale.hack( belt ),\n\t\t\t\t\t\t\n\t\t\t\t\t\t'<=>': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'<=': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'=>': () => [],\n\n\t\t\t\t\t\t'^': (input) => {\n\t\t\t\t\t\t\tconst host = input.kids.length ? klass : parent\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\thost.data(host.type),\n\t\t\t\t\t\t\t\tinput.kids.length ? input.kids[0] : prop\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'=': (input) => {\n\t\t\t\t\t\t\tconst left = input.kids[0]\n\t\t\t\t\t\t\tconst right = left.kids[0]\n\n\t\t\t\t\t\t\tconst left_parts = this.$mol_view_tree2_prop_parts(left)\n\t\t\t\t\t\t\tconst right_parts = this.$mol_view_tree2_prop_parts(right)\n\n\t\t\t\t\t\t\tlet conflict: 'next' | 'key' | undefined\n\n\t\t\t\t\t\t\t// if (left_parts.next && right_parts.next) conflict = 'next'\n\t\t\t\t\t\t\tif (left_parts.key && right_parts.key) conflict = 'key'\n\n\t\t\t\t\t\t\tif (conflict) {\n\t\t\t\t\t\t\t\tthis.$mol_fail(err`Only one \"${conflict}\" allowed: ${\n\t\t\t\t\t\t\t\t\tleft_parts[conflict]} at ${left.span} or ${\n\t\t\t\t\t\t\t\t\t\tright_parts[conflict]} at ${right.span}`)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst main = klass.data(klass.type)\n\t\t\t\t\t\t\tconst prop_parts = this.$mol_view_tree2_prop_parts(prop)\n\t\t\t\t\t\t\tconst method = prop.data(`${ klass.type }_${prop_parts.name}`)\n\t\t\t\t\t\t\tconst second_main = left_parts.key || left_parts.next ? main : left.struct('line',\n\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tconst second_key = left_parts.next || left_parts.key ? left : right\n\n\t\t\t\t\t\t\tif (prop_parts.key) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (prop_parts.next) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, prop_parts.key ? 1 : 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, (left_parts.next ? left_parts : right_parts).key ? 1 : 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tleft.struct('line',\n\t\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tname_of.call(this, right),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\t\t\t\tif (input.type[0] === '*') {\n\t\t\t\t\t\t\t\tlet unions = [] as $mol_tree2[]\n\n\t\t\t\t\t\t\t\tconst hacked = ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t\t\t... input.kids.map( kid => {\n\t\t\t\t\t\t\t\t\t\tif (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t\tunions = unions.concat(kid.data(' & '), kid.hack_self(belt, context))\n\t\t\t\t\t\t\t\t\t\t\treturn []\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tconst child = this.$mol_view_tree2_child(kid)\n\t\t\t\t\t\t\t\t\t\tconst ret = child.hack_self( belt )\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct( 'line', kid.type.match(/(?:\\*|\\?)/)\n\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\tchannel_signature.call(this, kid, ...ret),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data(': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\''),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( kid.type || kid.value ),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\tif (input.type.length > 1 || ! hacked.length) {\n\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\tinput.data('Record<string, '),\n\t\t\t\t\t\t\t\t\t\tinput.data(input.type.slice(1) || 'any'),\n\t\t\t\t\t\t\t\t\t\tinput.data('>'),\n\t\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data('({ '),\n\t\t\t\t\t\t\t\t\tinput.struct( 'indent', hacked),\n\t\t\t\t\t\t\t\t\tinput.data('}) '),\n\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( input.type[0] === '/' ) {\n\t\t\t\t\t\t\t\tconst array_type = [\n\t\t\t\t\t\t\t\t\tinput.type.length > 1\n\t\t\t\t\t\t\t\t\t\t? input.data(input.type.slice(1))\n\t\t\t\t\t\t\t\t\t\t: input.data('any')\n\t\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t\tif (array_type[0].value === 'any') {\n\t\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor (const kid of input.kids) {\n\t\t\t\t\t\t\t\t\tlet result = kid.hack_self(belt, context) as $mol_tree2[]\n\n\t\t\t\t\t\t\t\t\tconst val = result[0].value\n\n\t\t\t\t\t\t\t\t\tif (val === 'string') {\n\t\t\t\t\t\t\t\t\t\tresult = kid.value.includes('`')\n\t\t\t\t\t\t\t\t\t\t\t? [ kid.data(JSON.stringify(kid.value))]\n\t\t\t\t\t\t\t\t\t\t\t: [ kid.data('`'), kid , kid.data('`') ]\n\t\t\t\t\t\t\t\t\t} else if (val === 'boolean') result = [ kid.data(kid.type) ]\n\t\t\t\t\t\t\t\t\telse if (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t result.push((kid.kids[0] ?? prop).data('[number]'))\n\t\t\t\t\t\t\t\t\t} else continue\n\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tinput.data(`${ klass.type }_${prop.type.replace(/[\\?\\*]*/g, '')}__${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t\t\tarray_type\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\t\t\t\tconst first = input.kids[0]\n\t\t\t\t\t\t\t\tif( first?.type[0] === '/' ) {\n\n\t\t\t\t\t\t\t\t\tconst args = first.kids.map( (kid, index) => {\n\t\t\t\t\t\t\t\t\t\tconst result = kid.hack_self(belt, context) as $mol_tree2[]\n\t\t\t\t\t\t\t\t\t\tif (index !== 0) result.unshift(kid.data(', '))\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct('line', result)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tfirst.data(`${input.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data('[ '),\n\t\t\t\t\t\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data( ' ]' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( `ConstructorParameters< typeof `),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(input.type),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(` >`),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t} else for( const over of input.kids ) {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tconst name = name_of.call(this, over )\n\t\t\t\t\t\t\t\t\tconst bind = this.$mol_view_tree2_child(over)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tover.data(`${ input.type }__${ name.value }_${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tover.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t\treturn_type.call(\n\t\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t\t\t\t\tover,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tprimitive_type(input)\n\t\t\t\t\t\t\t]\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}, context)\n\t\n\t\t\t\t\treturn prop.struct( 'indent', [\n\t\t\t\t\t\tprop.struct( 'line', [\n\t\t\t\t\t\t\tchannel_signature.call(this, prop, ... val ), // Parameter, not Return\n\t\t\t\t\t\t\tprop.data(': '),\n\t\t\t\t\t\t\t... 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} ).filter($mol_guard_defined),\n\t\t\t\t... aliases,\n\t\t\t\tklass.data( '}' ),\n\t\t\t\tdescr.data(''),\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.data( 'declare namespace $ {' ),\n\t\t\tdescr.data( '' ),\n\t\t\tdescr.struct( 'indent', types ),\n\t\t\tdescr.data( '}' ),\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_to_locale(this: $, module: $mol_tree2) {\n\t\tconst locales: Record<string, string> = {}\n\t\tconst descr = $mol_view_tree2_classes( module )\n\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst acc = { chain: [] as string[] }\n\n\t\t\tfor (const prop of props) {\n\t\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\t\t\tprop.hack<typeof acc>({\n\t\t\t\t\t'': ( input, belt, context )=> {\n\t\t\t\t\t\tif( input.type[0] === '@' ) {\n\t\t\t\t\t\t\tconst chain = context.chain?.join('_')\n\t\t\t\t\t\t\tconst path = `${ klass.type }_${ name }${chain.length ? `_${chain}` : ''}`\n\t\t\t\t\t\t\tlocales[path] = input.kids[0].text()\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\t\t\tfor( const field of input.kids ) {\n\t\t\t\t\t\t\t\tif( field.type === '^' ) continue\n\n\t\t\t\t\t\t\t\tconst field_name = field.type.replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\tfield.hack( belt, {\n\t\t\t\t\t\t\t\t\t... context,\n\t\t\t\t\t\t\t\t\tchain: [\n\t\t\t\t\t\t\t\t\t\t...context.chain ?? [],\n\t\t\t\t\t\t\t\t\t\tfield_name\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( /^[$A-Z]/.test( input.type ) ) {\n\t\t\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\t\tif( over.type === '/' ) continue\n\n\t\t\t\t\t\t\t\tconst oname = this.$mol_view_tree2_prop_parts( over ).name\n\t\t\t\t\t\t\t\tover.hack( belt, { ... context, chain: [ oname ] } )\n\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [ input ]\n\t\t\t\t\t}\n\t\t\t\t}, acc)\n\t\t\t}\n\t\t}\n\n\t\treturn locales\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) next_line()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map: $mol_sourcemap_raw = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * # Generic Graph model\n\t * - Supports any type of Nodes and Edges.\n\t * - All links are ordered, but this may be ignored.\n\t * - Multigraph supported using arrays of Edges.\n\t * - Hypergraph supported by reusing same Edge on set of links.\n\t * - Ubergraph supported using Edges as Nodes to.\n\t **/\n\texport class $mol_graph< Node , Edge > {\n\t\t\n\t\t/** All registered Nodes */\n\t\tnodes = new Set< Node >()\n\t\t\n\t\t/** Edges for Nodes pairs (from-to-edge) */\n\t\tedges_out = new Map< Node , Map< Node , Edge > >()\n\t\t/** Edges for Nodes pairs (to-from-edge) */\n\t\tedges_in = new Map< Node , Map< Node , Edge > >()\n\t\t\n\t\t// LINKING NODES\n\t\t\n\t\t/** Full connect two Nodes */\n\t\tlink( from : Node , to : Node , edge : Edge ) {\n\t\t\tthis.link_out( from , to , edge )\n\t\t\tthis.link_in( to , from , edge )\n\t\t}\n\t\t\n\t\t/** Full disconnect two Nodes */\n\t\tunlink( from : Node , to : Node ) {\n\t\t\tthis.edges_in.get( to )?.delete( from )\n\t\t\tthis.edges_out.get( from )?.delete( to )\n\t\t}\n\t\t\n\t\t/** Forward connect two Nodes */\n\t\tlink_out( from : Node , to : Node , edge : Edge ) {\n\t\t\t\n\t\t\tlet pair = this.edges_out.get( from )\n\t\t\t\n\t\t\tif( !pair ) {\n\t\t\t\tpair = new Map< Node , Edge >()\n\t\t\t\tthis.edges_out.set( from , pair )\n\t\t\t\tthis.nodes.add( from )\n\t\t\t}\n\t\t\t\n\t\t\tpair.set( to , edge )\n\t\t\tthis.nodes.add( to )\n\n\t\t}\n\t\t\n\t\t/** Backward connect two Nodes */\n\t\tlink_in( to : Node , from : Node , edge : Edge ) {\n\n\t\t\tlet pair = this.edges_in.get( to )\n\t\t\t\n\t\t\tif( !pair ) {\n\t\t\t\tpair = new Map< Node , Edge >()\n\t\t\t\tthis.edges_in.set( to , pair )\n\t\t\t\tthis.nodes.add( to )\n\t\t\t}\n\t\t\t\n\t\t\tpair.set( from , edge )\n\t\t\tthis.nodes.add( to )\n\n\t\t}\n\t\t\n\t\t// GETTING EDGES\n\t\t\n\t\t/** Return any Edge for two Nodes or null */\n\t\tedge( from : Node , to : Node ) {\n\t\t\treturn this.edge_out( from, to ) ?? this.edge_in( to, from )\n\t\t}\n\t\t\n\t\t/** Return output Edge for two Nodes or null */\n\t\tedge_out( from : Node , to : Node ) {\n\t\t\treturn this.edges_out.get( from )?.get( to ) ?? null\n\t\t}\n\t\t\n\t\t/** Return input Edge for two Nodes or null */\n\t\tedge_in( to : Node , from : Node ) {\n\t\t\treturn this.edges_in.get( to )?.get( from ) ?? null\n\t\t}\n\t\t\n\t\t// MUTATIONS\n\t\t\n\t\t/** Cut cycles at lowest priority of Edges */\n\t\tacyclic( get_weight : ( edge : Edge )=> number ) {\n\t\t\t\n\t\t\tconst checked = [] as Node[]\n\t\t\t\n\t\t\tfor( const start of this.nodes ) {\n\t\t\t\t\n\t\t\t\tconst path = [] as Node[]\n\t\t\t\t\n\t\t\t\tconst visit = ( from : Node ) : number => {\n\n\t\t\t\t\tif( checked.includes( from ) ) return Number.MAX_SAFE_INTEGER\n\n\t\t\t\t\tconst index = path.lastIndexOf( from )\n\t\t\t\t\tif( index > -1 ) {\n\n\t\t\t\t\t\tconst cycle = path.slice( index )\n\n\t\t\t\t\t\treturn cycle.reduce(\n\t\t\t\t\t\t\t( weight , node , index )=> Math.min(\n\t\t\t\t\t\t\t\tweight ,\n\t\t\t\t\t\t\t\tget_weight( this.edge_out( node , cycle[ ( index + 1 ) % cycle.length ] )! ) ,\n\t\t\t\t\t\t\t) ,\n\t\t\t\t\t\t\tNumber.MAX_SAFE_INTEGER ,\n\t\t\t\t\t\t)\n\n\t\t\t\t\t}\n\n\t\t\t\t\tpath.push( from )\n\n\t\t\t\t\tdive: try {\n\n\t\t\t\t\t\tconst deps = this.edges_out.get( from )\n\t\t\t\t\t\tif( !deps ) break dive\n\n\t\t\t\t\t\tfor( const [ to , edge ] of deps ) {\n\n\t\t\t\t\t\t\tif( to === from ) {\n\t\t\t\t\t\t\t\tthis.unlink( from , to )\n\t\t\t\t\t\t\t\tcontinue\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst weight_out = get_weight( edge )\n\t\t\t\t\t\t\tconst min = visit( to )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( weight_out > min ) return min\n\t\t\t\t\t\t\tif( weight_out === min ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tthis.unlink( from , to )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( path.length > 1 ) {\n\t\t\t\t\t\t\t\t\tconst enter = path[ path.length - 2 ]\n\t\t\t\t\t\t\t\t\tthis.link( enter , to , edge )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} finally {\n\t\t\t\t\t\tpath.pop()\n\t\t\t\t\t}\n\n\t\t\t\t\tchecked.push( from )\n\n\t\t\t\t\treturn Number.MAX_SAFE_INTEGER\n\t\t\t\t}\n\n\t\t\t\tvisit( start )\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t// NODES SELECTION\n\t\t\n\t\t/** Topoligical ordered set of all Nodes for acyclic graph */\n\t\tget sorted() {\n\n\t\t\tconst sorted = new Set< Node >()\n\t\t\t\n\t\t\tconst visit = ( node : Node ) => {\n\t\t\t\t\n\t\t\t\tif( sorted.has( node ) ) return\n\n\t\t\t\tconst deps = this.edges_out.get( node )\n\n\t\t\t\tif( deps ) {\n\t\t\t\t\tfor( const [dep] of deps ) visit( dep )\n\t\t\t\t}\n\n\t\t\t\tsorted.add( node )\n\t\t\t}\n\t\t\t\n\t\t\tfor( const node of this.nodes ) {\n\t\t\t\tvisit( node )\n\t\t\t}\n\t\t\t\n\t\t\treturn sorted\n\t\t}\n\t\t\n\t\t/** All Nodes which don't have input Edges */\n\t\tget roots() {\n\t\t\t\n\t\t\tconst roots = [] as Node[]\n\t\t\tfor( const node of this.nodes ) {\n\t\t\t\t\n\t\t\t\tif( this.edges_in.get( node )?.size ) continue\n\t\t\t\troots.push( node )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn roots\n\t\t}\n\t\t\n\t\t// DEPTH STATS\n\t\t\n\t\t/**\n\t\t * Nodes depth statistics for acyclic graph\n\t\t * @example\n\t\t * graph.depth_stat( Math.min )\n\t\t * graph.depth_stat( Math.max )\n\t\t **/\n\t\tnodes_depth( select: ( left: number, right: number )=> number ) {\n\t\t\t\n\t\t\tconst stat = new Map< Node, number >()\n\t\t\tconst visit = ( node: Node, depth = 0 )=> {\n\t\t\t\t\n\t\t\t\tif( stat.has( node ) ) stat.set( node, select( depth, stat.get( node )! ) )\n\t\t\t\telse stat.set( node, depth )\n\t\t\t\t\n\t\t\t\tfor( const kid of this.edges_out.get( node )?.keys() ?? [] ) visit( kid, depth + 1 )\n\t\t\t\t\n\t\t\t}\n\t\t\tfor( const root of this.roots ) visit( root )\n\t\t\t\n\t\t\treturn stat\n\t\t}\n\t\t\n\t\t/**\n\t\t * Depth's Nodes statistics for acyclic graph\n\t\t * @example\n\t\t * graph.depth_nodes( Math.min )\n\t\t * graph.depth_nodes( Math.max )\n\t\t **/\n\t\tdepth_nodes( select: ( left: number, right: number )=> number ) {\n\t\t\t\n\t\t\tconst groups = [] as Node[][]\n\t\t\tfor( const [ node, depth ] of this.nodes_depth( select ).entries() ) {\n\t\t\t\t\n\t\t\t\tif( groups[ depth ] ) groups[ depth ].push( node )\n\t\t\t\telse groups[ depth ] = [ node ]\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn groups\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_strip(this: $, data: string) {\n\t\treturn data.replace( /^(?:(?:\\/\\/)|(?:\\/\\*))\\s*#\\s*sourceMappingURL\\s*=[^\\n]*/mg , '' ) + '\\n'\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_url(this: $, uri: string, type = 'js' as 'js' | 'css') {\n\t\tif (type === 'css') return `\\n/*# sourceMappingURL=${uri}*/`\n\t\treturn `\\n//# sourceMappingURL=${uri}`\n\t}\n\n}\n","namespace $ {\n\n\tconst prefix = '# sourceMappingURL=data:application/json,'\n\tconst end_comment = ' */'\n\n\texport function $mol_sourcemap_dataurl_decode(this: $, data: string) {\n\t\tconst index = data.lastIndexOf(prefix)\n\n\t\tif (index === -1) return undefined\n\n\t\tdata = data.substring(index + prefix.length)\n\n\t\tif (data.endsWith(end_comment)) data = data.substring(0, data.length - end_comment.length)\n\n\t\tconst decoded = this.decodeURIComponent(data)\n\n\t\ttry {\n\t\t\tconst map = JSON.parse(decoded) as $mol_sourcemap_raw | null\n\n\t\t\tif (! map) return undefined\n\n\t\t\tif (typeof map.mappings === 'string' && map.mappings.startsWith(';;')) {\n\t\t\t\tmap.mappings = map.mappings.substring(2)\n\t\t\t}\n\n\t\t\treturn map\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) e.message += ', origin=' + decoded\n\t\t\t$mol_fail_hidden(e)\n\t\t}\n\t}\n\n\texport function $mol_sourcemap_dataurl_encode(this: $, map: $mol_sourcemap_raw, type = 'js' as 'js' | 'css') {\n\t\tconst str = JSON.stringify( { ...map, mappings: ';;' + map.mappings } )\n\n\t\treturn this.$mol_sourcemap_url('data:application/json,' + this.encodeURIComponent( str ), type)\n\t}\n}\n","namespace $ {\n\texport function $mol_sourcemap_from_file(this: $, src: $mol_file) {\n\t\tconst text = src.text()\n\t\tlet map = this.$mol_sourcemap_dataurl_decode(text)\n\t\tif (map) return map\n\n\t\tconst map_file = src.parent().resolve( src.name() + '.map' )\n\t\tif (map_file.exists()) map = JSON.parse(map_file.text())\n\n\t\treturn map\n\t}\n}\n","namespace $ {\n\texport function $mol_base64_encode(src: Uint8Array< ArrayBuffer >): string {\n\t\treturn (src as unknown as { toBase64(): string }).toBase64()\n}\n}\n","namespace $ {\n\n\texport function $mol_base64_encode_node(str: Uint8Array< ArrayBuffer >): string {\n\t\tif (! str) return ''\n\n\t\tconst buf = Buffer.isBuffer(str) ? str : Buffer.from(str)\n\n\t\treturn buf.toString('base64')\n\t}\n\n\tif ( ! ( 'toBase64' in Uint8Array.prototype ) ) {\n\t\t$.$mol_base64_encode = $mol_base64_encode_node\n\t}\n}\n","namespace $ {\n\texport interface $mol_build_ensure_plugin {\n\t\tensure(path: string): boolean\n\t}\n\n\texport class $mol_build_ensure extends $mol_object {\n\t\troot() { return $mol_file.absolute('') }\n\n\t\tinteractive() { return process.stdout.isTTY }\n\t\tpull_timeout() { return 120000 }\n\n\t\t@ $mol_mem_key\n\t\tmeta( path : string ) {\n\n\t\t\tlet decls = [] as $mol_tree2[]\n\n\t\t\tconst pack = this.$.$mol_file.absolute( path )\n\n\t\t\tfor( const file of pack.sub() ) {\n\t\t\t\tif( !/\\.meta\\.tree$/.test( file.name() ) ) continue\n\t\t\t\tdecls = decls.concat( this.$.$mol_tree2_from_string( file.text() , file.path() ).kids )\n\t\t\t}\n\n\t\t\treturn decls.length ? this.$.$mol_tree2.list(decls, decls[0]?.span) : null\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurer_git(): $mol_build_ensure_plugin {\n\t\t\treturn this.$.$mol_build_ensure_git.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t\tmeta: path => this.meta(path),\n\t\t\t\tpull_timeout: () => this.pull_timeout(),\n\t\t\t\tinteractive: () => this.interactive(),\n\t\t\t})\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurer_fallback(): $mol_build_ensure_plugin {\n\t\t\treturn this.$.$mol_build_ensure_npm.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t})\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurers() {\n\t\t\treturn [\n\t\t\t\tthis.ensurer_git()\n\t\t\t] as readonly ($mol_build_ensure_plugin | null)[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tensure( path : string ): boolean {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst parent = mod.parent()\n\n\t\t\tif( mod !== this.root() ) this.ensure( parent.path() )\n\n\t\t\tif (mod.exists() && mod.type() !== 'dir') return false\n\n\t\t\tfor (const ensurer of this.ensurers()) {\n\t\t\t\tif (ensurer?.ensure(path)) return true\n\t\t\t}\n\t\t\tif (mod.exists()) return false\n\n\t\t\tif( parent === this.root() ) {\n\t\t\t\tthrow new Error( `Root package \"${ mod.relate( this.root() ) }\" not found` )\n\t\t\t}\n\n\t\t\treturn this.ensurer_fallback().ensure(path)\n\t\t}\n\t}\n}\n","namespace $ {\n\texport class $mol_build_graph extends $mol_object {\n\n\t\troot() { return $mol_file.absolute('') }\n\n\t\tmod_ensure(path: string) {\n\t\t\treturn false\n\t\t}\n\n\t\tdependencies(path: string) {\n\t\t\treturn {} as Record<string, number>\n\t\t}\n\n\t\tpath() { return '' }\n\n\t\tprotected added = new Set<string>()\n\n\t\t@ $mol_mem\n\t\tgraph(reset?: null) {\n\t\t\tthis.added.clear()\n\t\t\treturn new $mol_graph< string , { priority : number } >()\n\t\t}\n\n\t\t@ $mol_action\n\t\tpath_added(path: string) { return this.added.has(path) }\n\n\t\t// @ $mol_mem_key\n\t\tprotected add_module( path : string ) {\n\t\t\tthis.added.add(path)\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst graph = this.graph()\n\t\t\tgraph.nodes.add(mod.relate( this.root() ))\n\n\t\t\tconst deps = this.dependencies( path )\n\t\t\tfor( let target in deps ) {\n\t\t\t\tthis.check_dep( [ path, target ])\n\t\t\t}\n\n\t\t\treturn graph\n\t\t}\n\n\t\tpath_resolved(target: string) {\n\t\t\tconst isFile = /\\.\\w+$/.test( target )\n\t\t\tconst root = this.root()\n\n\t\t\tif (target[0] === '/' && isFile) return root.resolve(target)\n\t\t\n\t\t\tif (target[0] === '/') {\n\t\t\t\tconst last_segment = target.slice(target.lastIndexOf('/') + 1)\n\t\t\t\treturn root.resolve(target + '/' + last_segment)\n\t\t\t}\n\n\t\t\treturn root.resolve( 'node_modules' ).resolve( './' + target )\n\t\t}\n\n\t\t// @ $mol_mem_key\n\t\tprotected check_dep([ path, target ]: [ path: string, target: string ]) {\n\t\t\tconst root = this.root()\n\t\t\tconst deps = this.dependencies( path )\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\n\t\t\tlet dep = target[0] === '.' ? mod.resolve( target ) : this.path_resolved( target )\n\n\t\t\ttry {\n\t\t\t\tthis.mod_ensure( dep.path() )\n\t\t\t} catch( error ) {\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\t(error as Error).message += `\\nDependency \"${\n\t\t\t\t\t\ttarget}\" -> \"${ dep.relate( root ) }\" from \"${ mod.relate( root ) }\" `\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(error)\n\t\t\t}\n\t\t\t\n\t\t\twhile( !dep.exists() ) dep = dep.parent()\n\t\t\t\n\t\t\tif( dep.type() === 'dir' && dep.name() !== 'index' ) {\n\t\t\t\tlet index = dep.resolve( 'index.js' )\n\t\t\t\tif( index.exists() ) dep = index\n\t\t\t}\n\t\t\t\n\t\t\t//if( dep.type() === 'file' ) dep = dep.parent()\n\t\t\tif( mod === dep ) return null\n\t\t\t\n\t\t\tconst from = mod.relate( root )\n\t\t\tconst to = dep.relate( root )\n\t\t\tconst graph = this.graph()\n\t\t\tconst edge = graph.edges_out.get( from )?.get( to )\n\t\t\tif( !edge || ( deps[ target ] > edge.priority ) ) {\n\t\t\t\tgraph.link( from , to , { priority : deps[ target ] } )\n\t\t\t}\n\t\t\tif (this.path_added(dep.path())) return null\n\t\t\tthis.add_module( dep.path() )\n\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected out() {\n\t\t\tthis.graph(null)\n\t\t\tconst path = this.path()\n\t\t\tthis.mod_ensure( path )\n\t\t\tconst graph = this.add_module( path )\n\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\tthis.added.clear()\n\t\t\treturn graph\n\t\t}\n\n\t\tget sorted() { return this.out().sorted }\n\t\tget nodes() { return this.out().nodes }\n\t\tget edges_out() { return this.out().edges_out }\n\t\tget edges_in() { return this.out().edges_in }\n\t}\n}\n","namespace $ {\n\tconst sourcemap_codec = $node['sourcemap-codec']\n\tconst path = $node.path\n\n\texport class $mol_sourcemap_builder {\n\t\tversion: number = 3\n\n\t\tprotected sourceRoot: string\n\n\t\tprotected separator_count: number\n\n\t\tconstructor( dir: string, readonly separator = '', readonly file?: string ) {\n\t\t\tthis.sourceRoot = dir && dir !== '.' ? (dir + '/') : ''\n\t\t\tthis.separator += '\\n'\n\t\t\tthis.separator_count = separator.split('\\n').length - 2\n\t\t}\n\n\t\tprotected chunks: string[] = []\n\t\tprotected segment_lines: $mol_sourcemap_line[] = []\n\t\t\n\t\tprotected sources: string[] = []\n\t\tprotected source_indexes: Map<string, number> = new Map()\n\n\t\tprotected names: string[] = []\n\t\tprotected name_indexes: Map<string, number> = new Map()\n\t\tprotected sourceContent: (null|string)[] = []\n\n\t\tget content() {\n\t\t\treturn this.chunks.join('')\n\t\t}\n\n\t\tget sourcemap(): $mol_sourcemap_raw {\n\t\t\treturn {\n\t\t\t\tversion: this.version,\n\t\t\t\tsources: this.sources,\n\t\t\t\tnames: this.names,\n\t\t\t\t// sourceRoot: this.sourceRoot || undefined,\n\t\t\t\tmappings: sourcemap_codec.encode(this.segment_lines),\n\t\t\t\tfile: this.file,\n\t\t\t\tsourcesContent: this.sourceContent,\n\t\t\t}\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.sourcemap\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn JSON.stringify(this.toJSON())\n\t\t}\n\n\t\tprotected add_chunk(content: string) {\n\t\t\tconst {segment_lines, chunks, separator_count} = this\n\t\t\tif (chunks.length !== 0) {\n\t\t\t\tchunks.push(this.separator)\n\t\t\t\tfor (let i = 0; i < separator_count; i++) segment_lines.push([])\t\n\t\t\t}\n\t\t\tchunks.push(content)\n\t\t}\n\n\t\tprotected add_content(content: string, file?: string) {\n\t\t\tconst {source_indexes, sources, segment_lines} = this\n\t\t\tthis.add_chunk(content)\n\t\t\tlet sourceIndex: number | undefined\n\t\t\tif (file) {\n\t\t\t\tsourceIndex = source_indexes.get(file)\n\t\t\t\tif (sourceIndex === undefined) {\n\t\t\t\t\tsourceIndex = sources.length\n\t\t\t\t\tsources.push(file)\n\t\t\t\t\tsource_indexes.set(file, sourceIndex)\n\t\t\t\t\tthis.sourceContent.push(null)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst linesCount = content.split('\\n').length\n\t\t\tfor (let originalLine = 0; originalLine < linesCount; originalLine++) {\n\t\t\t\tif (!file) segment_lines.push([])\n\t\t\t\telse segment_lines.push([\n\t\t\t\t\t[\n\t\t\t\t\t\t0,\n\t\t\t\t\t\tsourceIndex,\n\t\t\t\t\t\toriginalLine,\n\t\t\t\t\t\t0,\n\t\t\t\t\t] as $mol_sourcemap_segment\n\t\t\t\t] as $mol_sourcemap_line)\n\t\t\t}\n\t\t}\n\n\t\tadd(content: string, file?: string, raw?: $mol_sourcemap_raw | string) {\n\t\t\tconst {name_indexes, names, source_indexes, sources, segment_lines} = this\n\t\t\tconst bundleSourceRoot = this.sourceRoot\n\t\t\tif (!content) throw new Error(`No content: ${file}, ${raw}`)\n\t\t\tif (typeof raw === 'string') raw = JSON.parse(raw) as $mol_sourcemap_raw\n\t\t\tif (!raw || !raw.mappings || raw.mappings.length === 0) {\n\t\t\t\tthis.add_content(content, file)\n\t\t\t\treturn\n\t\t\t}\n\t\t\tthis.add_chunk(content)\n\n\t\t\tlet sourceRoot = file ? path.dirname(file) : (raw.sourceRoot || '')\n\t\t\tif (sourceRoot === '.') sourceRoot = ''\n\t\t\telse if (sourceRoot) sourceRoot += '/'\n\t\t\tconst lines = typeof raw.mappings === 'string' ? sourcemap_codec.decode(raw.mappings) : raw.mappings\n\t\t\tfor (let line of lines) {\n\t\t\t\tconst mergedLine: $mol_sourcemap_line = []\n\t\t\t\tfor (let segment of line) {\n\t\t\t\t\tconst mergedSegment: $mol_sourcemap_segment = [segment[0]] // generatedColumn\n\n\t\t\t\t\tif (segment.length >= 2) {\n\t\t\t\t\t\tconst sourceIndex = segment[1]!\n\t\t\t\t\t\tconst source = bundleSourceRoot + sourceRoot + raw.sources[sourceIndex]\n\t\t\t\t\t\tlet mergedSourceIndex = source_indexes.get(source)\n\t\t\t\t\t\tif (mergedSourceIndex === undefined) {\n\t\t\t\t\t\t\tmergedSourceIndex = sources.length\n\t\t\t\t\t\t\tsource_indexes.set(source, mergedSourceIndex)\n\t\t\t\t\t\t\tsources.push(source)\n\t\t\t\t\t\t\tif (raw.sourcesContent)\n\t\t\t\t\t\t\t\tthis.sourceContent.push(raw.sourcesContent[sourceIndex])\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmergedSegment.push(mergedSourceIndex)\n\t\t\t\t\t}\n\n\t\t\t\t\tif (segment.length >= 3) mergedSegment.push(segment[2]!) // originalLine\n\n\t\t\t\t\tif (segment.length >= 4) mergedSegment.push(segment[3]!) // originalColumn\n\n\t\t\t\t\tif (segment.length >= 5) {\n\t\t\t\t\t\tconst nameIndex = segment[4]!\n\t\t\t\t\t\tconst name = raw.names?.[nameIndex]\n\t\t\t\t\t\tif (name !== undefined) {\n\t\t\t\t\t\t\tlet mergedNameIndex = name_indexes.get(name)\n\t\t\t\t\t\t\tif (mergedNameIndex === undefined) {\n\t\t\t\t\t\t\t\tmergedNameIndex = names.length\n\t\t\t\t\t\t\t\tname_indexes.set(name, mergedNameIndex)\n\t\t\t\t\t\t\t\tnames.push(name)\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tmergedSegment.push(mergedNameIndex)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmergedLine.push(mergedSegment)\n\t\t\t\t}\n\t\t\t\tsegment_lines.push(mergedLine)\n\t\t\t}\n\n\t\t\tconst lineCount = content.split('\\n').length\n\t\t\tfor (let i = lines.length; i < lineCount; i++) segment_lines.push([])\n\t\t}\n\t}\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n","namespace $ {\n\texport class $mol_build_ensure_vcs extends $mol_object implements $mol_build_ensure_plugin {\n\t\troot() { return $mol_file.absolute('') }\n\t\tinteractive() { return process.stdout.isTTY }\n\t\tpull_timeout() { return 120000 }\n\n\t\troot_repo() { return null as null | string }\n\t\tvcs_type() { return null as null | string }\n\n\t\tprotected inited(path: string) { return false }\n\t\tprotected init_existing(path: string) { return null }\n\t\tprotected update(path: string) { return false }\n\t\tprotected init(path: string) { return null }\n\n\t\t@ $mol_mem_key\n\t\tmeta( path : string ) {\n\t\t\treturn null as $mol_tree2 | null\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tprotected repo( path : string ) {\n\t\t\tconst vcs_type = this.vcs_type()\n\t\t\tif (! vcs_type) return null\n\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst root_url = this.root_repo()\n\t\t\tif (mod === this.root()) return ! root_url ? null : { url: root_url, branch: null as null | string }\n\n\t\t\tconst parent = mod.parent()\n\t\t\tconst mapping = this.meta( parent.path() )\n\n\t\t\tconst url_branch = mapping?.select( 'pack' , mod.name(), vcs_type).kids\n\t\t\t\t.find($mol_guard_defined)?.kids[0]\n\n\t\t\tconst url = url_branch?.value ?? null\n\t\t\tconst branch = url_branch?.kids[0]?.value ?? null\n\n\t\t\treturn url ? { url, branch } : null\n\t\t}\n\n\t\tprotected update_disabled = false\n\n\t\t@ $mol_action\n\t\tprotected update_safe(dir: string) {\n\t\t\tif (this.update_disabled) return false\n\n\t\t\ttry {\n\t\t\t\treturn this.$.$mol_file.unwatched(() => this.update(dir), dir)\n\t\t\t} catch (e) {\n\t\t\t\tif (e instanceof $mol_run_error && e.cause.timeout_kill) {\n\n\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\tplace: `${this}.update_safe()`,\n\t\t\t\t\t\tmessage: `Timeout - pull disabled`,\n\t\t\t\t\t\thint: 'Check connection',\n\t\t\t\t\t})\n\n\t\t\t\t\tthis.update_disabled = true\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tif (e instanceof Error) {\n\t\t\t\t\tthis.$.$mol_fail_log(e)\n\t\t\t\t\treturn false\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\tprotected pull_disabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MAM_PULL_DISABLED'])\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tensure( path : string ) {\n\n\t\t\tconst mod = $mol_file.absolute( path )\n\n\t\t\tif( mod.exists() ) {\n\t\t\t\tif ( this.pull_disabled() ) return false\n\n\t\t\t\tif (! this.inited(path)) {\n\t\t\t\t\tif (! this.repo(path) ) return false\n\n\t\t\t\t\tthis.$.$mol_file.unwatched(() => this.init_existing(path), path)\n\t\t\t\t\treturn true\n\t\t\t\t}\n\n\t\t\t\tthis.update_safe( path )\n\n\t\t\t\t// mod.reset()\n\t\t\t\t// for ( const sub of mod.sub() ) sub.reset()\n\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\tif (this.repo(path)) {\n\n\t\t\t\tthis.$.$mol_file.unwatched(() => this.init(path), path)\n\n\t\t\t\t// mod.reset()\n\t\t\t\t// for ( const sub of mod.sub() ) sub.reset()\n\t\t\t\treturn true\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\t}\n}\n","namespace $ {\n\n\texport function $mol_compare_text< Item >( item = ( item : Item )=> String( item ) ) {\n\t\t\n\t\treturn ( a : Item , b : Item )=> {\n\n\t\t\tconst text_a = item( a ).trim().toLowerCase()\n\t\t\tconst text_b = item( b ).trim().toLowerCase()\n\n\t\t\tconst parts_a = text_a.split( /(\\d+)/ )\n\t\t\tconst parts_b = text_b.split( /(\\d+)/ )\n\n\t\t\tconst count = Math.max( parts_a.length , parts_b.length )\n\t\t\t\n\t\t\tfor( let i = 0 ; i < count ; ++ i ) {\n\n\t\t\t\tconst part_a = parts_a[i] || ''\n\t\t\t\tconst part_b = parts_b[i] || ''\n\t\t\t\t\n\t\t\t\tconst diff = Number( part_a ) - Number( part_b )\n\t\t\t\tif( diff ) return diff\n\n\t\t\t\tif( part_a > part_b ) return 1\n\t\t\t\tif( part_a < part_b ) return -1\n\n\t\t\t}\n\t\t\t\n\t\t\treturn parts_a.length - parts_b.length\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\texport class $mol_build_ensure_git extends $mol_build_ensure_vcs {\n\t\toverride vcs_type() { return 'git' }\n\t\toverride root_repo() { return 'https://github.com/hyoo-ru/mam.git' }\n\n\t\t@ $mol_mem\n\t\tprotected version() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn this.$.$mol_run.spawn({ command: 'git version', dir: this.root().path() })\n\t\t\t\t.stdout.toString().trim().match(/.*\\s+([\\d\\.]+\\d+)/)?.[1] ?? ''\n\t\t}\n\n\t\tprotected deepen_supported() {\n\t\t\treturn $mol_compare_text()(this.version(), '2.42.0') >= 0\n\t\t}\n\n\t\tprotected override update(dir: string) {\n\t\t\tif (this.submodules().has(dir)) {\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: '$mol_build_ensure_git.update()',\n\t\t\t\t\tmessage: 'Submodule detected, no git pull',\n\t\t\t\t\tdir,\n\t\t\t\t})\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tconst out = this.$.$mol_run.spawn({\n\t\t\t\tcommand: 'git rev-parse --abbrev-ref --symbolic-full-name HEAD', dir,\n\t\t\t})\n\t\t\tconst current_branch = out.stdout.toString().trim()\n\t\t\t// когда не на ветке - не надо пулить, например сборка во время git bisect\n\t\t\tif (! current_branch) return false\n\n\t\t\tconst command = ['git', 'pull']\n\n\t\t\tif ( ! this.interactive() && this.deepen_supported()) {\n\t\t\t\t/**\n\t\t\t\tdepth и deepen не годятся для локальной разработки, поэтому оставляем ограничение глубины пула только для CI\n\n\t\t\t\t--depth=1 в сочетании с сабмодулями обрезает историю, кроме первого коммита\n\n\t\t\t\t--deepen=1 если не сделать unset GIT_DIR\n\t\t\t\tв git-конфиге сабмодуля выставляет bare=true, после этого все команды падают с сообщением\n\t\t\t\twarning: core.bare and core.worktree do not make sense\n\t\t\t\tfatal: unable to set up work tree using invalid config\n\t\t\t\t */\n\t\t\t\tcommand.push( '--deepen=1' )\n\t\t\t}\n\n\t\t\tconst timeout = this.pull_timeout()\n\t\t\tthis.$.$mol_run.spawn( { command, dir, timeout }).stdout.toString().trim()\n\t\t\treturn true\n\t\t}\n\n\t\tprotected is_git(path: string) {\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst git_dir = mod.resolve( '.git' )\n\n\t\t\treturn git_dir.exists() && git_dir.type() === 'dir'\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected submodule_dirs(opts: { dir: string, recursive?: boolean }) {\n\t\t\tconst dir = this.$.$mol_file.absolute( opts.dir )\n\n\t\t\ttry {\n\t\t\t\tconst output = this.$.$mol_run.spawn({\n\t\t\t\t\tcommand: [ 'git', 'submodule', 'status', ...( opts.recursive ? ['--recursive'] : [] ) ],\n\t\t\t\t\tdir: dir.path(),\n\t\t\t\t}).stdout.toString().trim()\n\t\n\t\t\t\tconst dirs = output\n\t\t\t\t\t.split('\\n')\n\t\t\t\t\t.map( str => str.match( /^\\s*[^ ]+\\s+([^ ]*).*/ )?.[1]?.trim() )\n\t\t\t\t\t.filter($mol_guard_defined)\n\t\t\t\t\t.map(subdir => dir.resolve(subdir))\n\t\n\t\t\t\treturn dirs\n\t\t\t} catch (e) {\n\t\t\t\tif ($mol_promise_like(e)) $mol_fail_hidden(e)\n\t\t\t\tthis.$.$mol_fail_log(e)\n\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected root_is_submodule() {\n\t\t\tconst root = this.root()\n\t\t\tif (this.is_git(root.path())) return false\n\n\t\t\tconst parent = root.parent()\n\n\t\t\ttry {\n\t\t\t\tconst dirs = this.submodule_dirs({ dir: parent.path() })\n\n\t\t\t\treturn dirs.includes(root)\n\t\t\t} catch (e) {\n\t\t\t\tif ($mol_promise_like(e)) $mol_fail_hidden(e)\n\t\t\t\tthis.$.$mol_fail_log(e)\n\t\t\t\treturn false\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected submodules() {\n\t\t\tconst root = this.root()\n\t\t\tif (! this.is_git( root.path() ) ) return new Set<string>()\n\n\t\t\tconst dirs = this.submodule_dirs({ dir: root.path(), recursive: true })\n\n\t\t\tif (this.root_is_submodule()) dirs.push(root)\n\n\t\t\treturn new Set(dirs.map(mod => mod.path()))\n\t\t}\n\n\t\tprotected override inited(path: string) {\n\t\t\treturn this.is_git(path) || this.submodules().has(path)\n\t\t}\n\n\t\tprotected repo_ensured(dir: string) {\n\t\t\tconst repo = this.repo(dir)\n\t\t\tif (! repo) throw new Error(`\"${dir}\" not a repo`)\n\t\t\treturn repo\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tprotected branch_remote(dir: string) {\n\t\t\tconst repo = this.repo_ensured(dir)\n\n\t\t\tconst res = this.$.$mol_run.spawn( { command: ['git', 'remote', 'show', repo.url ], dir } )\n\n\t\t\treturn res.stdout.toString().match( /HEAD branch: (.*?)\\n/ )?.[1] ?? 'master'\n\t\t}\n\n\t\tprotected override init_existing(dir: string) {\n\t\t\t// Например, если вручную склонить ревизию папки в глубине (например, hyoo/mol) перед запуском билда,\n\t\t\t// то hyoo надо проинициалзировать в соответствии с meta.ree\n\t\t\tconst repo = this.repo_ensured(dir)\n\t\t\tconst { url, branch } = repo\n\t\t\tthis.$.$mol_run.spawn( { command: ['git', 'init'], dir } )\n\n\t\t\tconst branch_norm = branch ?? this.branch_remote(dir)\n\n\t\t\tthis.$.$mol_run.spawn( { command: [ 'git', 'remote', 'add', '--track', branch_norm, 'origin' , url ], dir } )\n\t\t\tthis.$.$mol_run.spawn( { command: [ 'git', 'pull', 'origin', branch_norm ], dir } )\n\n\t\t\treturn null\n\t\t}\n\n\t\tprotected override init(path: string) {\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst repo = this.repo_ensured(path)\n\n\t\t\tconst command = [\n\t\t\t\t'git', 'clone' , '--depth', '1',\n\t\t\t\t...( repo.branch ? [ '-b', repo.branch ] : [] ),\n\t\t\t\t' --single-branch',\n\t\t\t\trepo.url ,\n\t\t\t\tmod.relate( this.root() )\n\t\t\t]\n\t\n\t\t\tconst dir = this.root().path()\n\t\t\tthis.$.$mol_run.spawn( { command, dir } )\n\t\n\t\t\treturn null\n\t\t}\n\n\t}\n}\n","namespace $ {\n\texport class $mol_build_ensure_npm extends $mol_object implements $mol_build_ensure_plugin {\n\t\troot() { return $mol_file.absolute('') }\n\n\t\t@ $mol_mem_key\n\t\tensure( path : string ) {\n\t\t\tconst mod = this.$.$mol_file.absolute( path )\n\t\t\tconst parent = mod.parent()\n\t\t\tconst node = this.root().resolve( 'node' )\n\t\t\tconst node_modules = this.root().resolve( 'node_modules' )\n\t\t\t\n\t\t\tif(\n\t\t\t\t[ node, node_modules ].includes( parent )\n\t\t\t\t&& mod.name() !== 'node'\n\t\t\t\t&& ! mod.name().startsWith('@')\n\t\t\t) {\n\t\t\t\tthis.$.$node_autoinstall(mod.name()) // force autoinstall through npm\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t\n\t\t\tif(\n\t\t\t\t[ node, node_modules ].includes( parent.parent() )\n\t\t\t\t&& parent.name().startsWith('@')\n\t\t\t) {\n\t\t\t\tthis.$.$node_autoinstall(`${parent.name()}/${mod.name()}`) // force autoinstall through npm\n\t\t\t\treturn true\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t}\n}\n\n","namespace $ {\n\t\n\tsetTimeout( ()=> $mol_wire_async( $mol_build ).start( process.argv.slice( 2 ) ) )\n\n\t\n\n\texport class $mol_build extends $mol_object {\n\t\t@ $mol_mem_key\n\t\tstatic root( [ root, paths ] : [root: string, paths: readonly string[] ] ) {\n\t\t\tthis.$.$mol_file.base = root\n\n\t\t\treturn this.make({\n\t\t\t\troot : ()=> this.$.$mol_file.absolute( root ) ,\n\t\t\t\tpaths: $mol_const(paths)\n\t\t\t})\n\t\t}\n\t\t\n\t\tstatic relative( root : string, paths: readonly string[] ) {\n\t\t\treturn this.$.$mol_build.root( [ $mol_file.relative( root ).path(), paths ])\n\t\t}\n\n\t\t@ $mol_mem\n\t\tserver() {\n\t\t\treturn this.$.$mol_build_server.make({\n\t\t\t\tbuild : $mol_const( this ) ,\n\t\t\t})\n\t\t}\n\t\t\n\t\troot() {\n\t\t\treturn this.$.$mol_file.relative( '.' )\n\t\t}\n\n\t\tpaths() {\n\t\t\treturn [] as readonly string[]\n\t\t}\n\n\t\tstatic start( paths : readonly string[] ) {\n\t\t\tconst build = this.$.$mol_build.relative( '.', paths )\n\n\t\t\tif( paths.length > 0 ) {\n\t\t\t\ttry {\n\t\t\t\t\tfor (const path_raw of paths) {\n\t\t\t\t\t\tconst path = build.root().resolve( path_raw ).path()\n\t\t\t\t\t\tbuild.bundleAll( path )\n\t\t\t\t\t}\n\t\t\t\t\tprocess.exit(0)\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: '$mol_build_start' , \n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\ttrace: error.stack,\n\t\t\t\t\t})\n\t\t\t\t\tprocess.exit(135)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tPromise.resolve().then( ()=> {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tbuild.server().start() \n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\t$mol_fail_log(error)\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t}\n\t\t}\n\t\n\t\t@ $mol_mem_key\n\t\tmetaTreeTranspile( path : string ) {\n\t\t\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\t\t\t\n\t\t\tconst tree = this.$.$mol_tree2_from_string( file.text() , file.path() )\n\t\t\tconst dir = file.parent().path()\n\n\t\t\tlet content = ''\n\t\t\tfor( const step of tree.select( 'build' , null ).kids ) {\n\n\t\t\t\tconst res = this.$.$mol_file.unwatched(() => this.$.$mol_run.spawn( { command: step.text(), dir } ), dir )\n\t\t\t\t\t.stdout.toString().trim()\n\t\t\t\tif( step.type ) content += `namespace $ { export let ${ step.type } = ${ JSON.stringify( res ) } }`\n\n\t\t\t}\n\n\t\t\tif( !content ) return []\n\n\t\t\tconst script = file.parent().resolve( `-meta.tree/${ name }.ts` )\n\t\t\tscript.text( content )\n\t\t\treturn [ script ]\n\n\t\t}\n\t\n\t\t@ $mol_mem_key\n\t\tview_tree_text(path: string) {\n\t\t\tconst source = $mol_file.absolute( path )\n\t\t\tconst tree = this.$.$mol_tree2_from_string( source.text(), source.relate( this.root() ) )\n\n\t\t\tconst js = this.$.$mol_tree2_js_to_text( this.$.$mol_view_tree2_to_js( tree ) )\n\t\t\tconst dts = this.$.$mol_view_tree2_to_dts( tree )\n\t\t\tconst locale = JSON.stringify( this.$.$mol_view_tree2_to_locale( tree ), null, '\\t' )\n\n\t\t\treturn { js, dts, locale }\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tviewTreeTranspile( path : string ) {\n\t\t\tconst source = $mol_file.absolute( path )\n\t\t\tconst text = this.view_tree_text(path)\n\t\t\t\n\t\t\tconst target = source.parent().resolve( `-view.tree` )\n\t\t\tconst js = target.resolve( source.name() + '.js' )\n\t\t\tconst js_map = target.resolve( js.name() + '.map' )\n\t\t\tconst dts = target.resolve( source.name() + '.d.ts' )\n\t\t\tconst dts_map = target.resolve( dts.name() + '.map' )\n\n\t\t\tjs.text( this.$.$mol_tree2_text_to_string( text.js ) + '\\n//# sourceMappingURL=' + js_map.relate( target ) )\n\t\t\tjs_map.text( JSON.stringify( this.$.$mol_tree2_text_to_sourcemap( text.js ), null, '\\t' ) )\n\n\t\t\tdts.text( this.$.$mol_tree2_text_to_string( text.dts ) + '\\n//# sourceMappingURL=' + dts_map.relate( target ) )\n\t\t\t\n\t\t\tconst dts_map_raw = this.$.$mol_tree2_text_to_sourcemap( text.dts )\n\t\t\tdelete dts_map_raw.sourcesContent\n\t\t\tdts_map_raw.file = dts.relate( target )\n\t\t\tdts_map_raw.sourceRoot = this.root().relate( target )\n\n\t\t\tdts_map.text( JSON.stringify( dts_map_raw, null, '\\t' ) )\n\n\t\t\tconst locale_file = target.resolve( source.name() + `.locale=en.json` )\n\n\t\t\tlocale_file.text( text.locale )\n\n\t\t\treturn [ js, js_map, dts, dts_map, locale_file ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tcssTranspile( path : string ) {\n\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\t\t\tconst script = file.parent().resolve( `-css/${ name }.ts` )\n\n\t\t\tconst id = file.relate( this.root() )\n\t\t\tconst styles = file.text()\n\t\t\tconst code = 'namespace $ { $'+`mol_style_attach( ${ JSON.stringify( id ) },\\n ${ JSON.stringify( styles ) }\\n) }`\n\t\t\tscript.text( code )\n\t\t\t\n\t\t\treturn [ script ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tglslTranspile( path : string ) {\n\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\t\t\tconst type = name.match( /\\.(vert|frag)\\./ )?.[1] ?? 'both'\n\t\t\tconst script = file.parent().resolve( `-glsl/${ name }.ts` )\n\t\t\t\n\t\t\tconst styles = file.text()\n\t\t\tconst code = `namespace $ { $.$`+`mol_3d_glsl_${ type } += ${ JSON.stringify( styles ) } }\\n`\n\t\t\tscript.text( code )\n\t\t\t\n\t\t\treturn [ script ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tsorted_sub(path: string) {\n\t\t\tconst parent = $mol_file.absolute( path )\n\t\t\treturn parent.sub().slice().sort( ( a, b )=> a.name().length - b.name().length )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tmods( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\t\n\t\t\tconst mods : $mol_file[] = []\n\t\t\tfor (const child of this.sorted_sub(path)) {\n\t\t\t\t\n\t\t\t\tconst name = child.name()\n\n\t\t\t\tif( !/^[a-z0-9]/i.test( name ) ) continue\n\t\t\t\tif( exclude && RegExp( '[.=](' + exclude.join( '|' ) + ')[.]' , 'i' ).test( name ) ) continue\n\n\t\t\t\t// if (! child.exists()) return false\n\t\t\t\tconst child_path = child.path()\n\t\t\t\tlet files = [] as $mol_file[]\n\n\t\t\t\tif( /(meta\\.tree)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.metaTreeTranspile( child_path )\n\t\t\t\t} else if( /(view\\.tree)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.viewTreeTranspile( child_path )\n\t\t\t\t} else if( /(\\.css)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.cssTranspile( child_path )\n\t\t\t\t} else if( /(\\.glsl)$/.test( name ) ) {\n\t\t\t\t\tfiles = this.glslTranspile( child_path )\n\t\t\t\t}\n\n\t\t\t\tmods.push( ...files, child )\n\t\t\t}\n\t\t\t\n\t\t\t//mods.sort( ( a , b )=> a.name().length - b.name().length )\n\t\t\t\n\t\t\treturn mods\n\t\t}\n\t\t\n\t\t// @ $mol_mem_key\n\t\t// modsRecursive( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t// \tvar mod = $mol_file.absolute( path )\n\t\t// \tswitch( mod.type() ) {\n\t\t// \t\tcase 'file' :\n\t\t// \t\t\treturn [ mod ]\n\t\t// \t\tcase 'dir' :\n\t\t// \t\t\tvar mods = [ mod ]\n\t\t// \t\t\tfor( var m of this.mods( [ path , exclude ] ) ) {\n\t\t// \t\t\t\tif( m.type() !== 'dir' ) continue\n\t\t// \t\t\t\tfor( var dep of this.modsRecursive( { path : m.path() , exclude } ) ) {\n\t\t// \t\t\t\t\tif( mods.indexOf( dep ) !== -1 ) continue\n\t\t// \t\t\t\t\tmods.push( dep )\n\t\t// \t\t\t\t}\n\t\t// \t\t\t}\n\t\t// \t\t\treturn mods\n\t\t// \t\tdefault :\n\t\t// \t\t\tthrow new Error( `Unsupported type \"${mod.type()}\" of \"${mod.relate()}\"` )\n\t\t// \t}\n\t\t// }\n\t\t\n\t\t@ $mol_mem_key\n\t\tsources( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tif ( ! mod.exists() ) return []\n\t\t\tswitch( mod.type() ) {\n\t\t\t\tcase 'file' :\n\t\t\t\t\treturn [ mod ]\n\t\t\t\tcase 'dir' :\n\t\t\t\t\treturn this.mods( [ path , exclude ] ).filter( mod => mod.type() === 'file' )\n\t\t\t\tdefault:\n\t\t\t\t\treturn []\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesSorted( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst graph = new $mol_graph< string , { priority : number } >()\n\t\t\tconst sources = this.sources( [ path , exclude ] )\n\t\t\tfor( let src of sources ) {\n\t\t\t\tgraph.nodes.add( src.relate( this.root() ) )\n\t\t\t}\n\t\t\tfor( let src of sources ) {\n\t\t\t\tlet deps = this.srcDeps( src.path() )\n\t\t\t\tfor( let p in deps ) {\n\t\t\t\t\t\n\t\t\t\t\tvar names : string[]\n\t\t\t\t\tif( p[ 0 ] === '/' ) {\n\t\t\t\t\t\tnames = p.substring( 1 ).split( '/' )\n\t\t\t\t\t} else if( p[ 0 ] === '.' ) {\n\t\t\t\t\t\tnames = mod.resolve( p ).relate( this.root() ).split( '/' )\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnames = [ 'node_modules' , ... p.split( '/' ) ]\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tlet files = [ this.root() ]\n\t\t\t\t\tfor( let name of names ) {\n\t\t\t\t\t\tlet nextFiles : $mol_file[] = []\n\t\t\t\t\t\tfor( let file of files ) {\n\t\t\t\t\t\t\tlet validName = new RegExp( `^(${file.name()})?${name}(?![a-z0-9])` , 'i' )\n\t\t\t\t\t\t\tfor( let child of this.mods( [ file.path() , exclude ] ) ) {\n\t\t\t\t\t\t\t\tif( !child.name().match( validName ) ) continue\n\t\t\t\t\t\t\t\tnextFiles.push( child )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif( nextFiles.length === 0 ) break\n\t\t\t\t\t\tfiles = nextFiles\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfor( let file of files ) {\n\t\t\t\t\t\tif( file === this.root() ) continue\n\n\t\t\t\t\t\tconst from = src.relate( this.root() )\n\t\t\t\t\t\tif( !graph.nodes.has( from ) ) continue\n\t\t\t\t\t\n\t\t\t\t\t\tconst to = file.relate( this.root() )\n\t\t\t\t\t\tif( !graph.nodes.has( to ) ) continue\n\t\t\t\t\t\n\t\t\t\t\t\tgraph.link( from , to , { priority : deps[ p ] } )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t}\n\t\t\tgraph.acyclic( edge => edge.priority )\n\t\t\t\n\t\t\tlet next = [ ... graph.sorted ].map( name => this.root().resolve( name ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesAll( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst sortedPaths = this.graph( [ path , exclude ] ).sorted\n\t\t\t\n\t\t\tconst sources = new Set< $mol_file >()\n\t\t\tsortedPaths.forEach( path => {\n\t\t\t\tconst mod = this.root().resolve( path )\n\t\t\t\tthis.sourcesSorted( [ mod.path() , exclude ] ).forEach( src => {\n\t\t\t\t\tsources.add( src )\n\t\t\t\t} )\n\t\t\t} )\n\t\t\t\n\t\t\treturn [ ... sources ]\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttsOptions() {\n\t\t\tconst rawOptions = JSON.parse( this.root().resolve( 'tsconfig.json' ).text() + '').compilerOptions\n\t\t\tconst res = $node.typescript.convertCompilerOptionsFromJson( rawOptions , \".\" , 'tsconfig.json' )\n\t\t\tif( res.errors.length ) throw res.errors\n\t\t\treturn res.options\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\ttsSource( { path , target } : { path : string , target : number } ) {\n\t\t\tconst content = $mol_file.absolute( path ).text()\n\t\t\treturn $node.typescript.createSourceFile( path , content , target )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsPaths( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\n\t\t\tconst sources = this.sourcesAll( [ path , exclude ] ).filter( src => /tsx?$/.test( src.ext() ) )\n\n\t\t\tif( sources.length && bundle === 'node' ) {\n\t\t\t\tconst types = [] as string[]\n\t\t\t\t\n\t\t\t\tfor( let [ dep, src ] of this.nodeDeps([ path , exclude ]) ) {\n\t\t\t\t\ttypes.push( '\\t' + JSON.stringify( dep ) + ' : typeof import\\( ' + JSON.stringify( dep ) + ' ) // ' + src )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst node_types = $mol_file.absolute( path ).resolve( `-node/deps.d.ts` )\n\t\t\t\tnode_types.text( '// @ts-nocheck\\ninterface $node {\\n ' + types.join( '\\n' ) + '\\n}' )\n\t\t\t\tsources.push( node_types )\n\t\t\t}\n\n\t\t\treturn sources.map( src => src.path() )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsHost( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\t\t\t\n\t\t\tconst host = $node.typescript.createCompilerHost( this.tsOptions() )\n\t\t\t\n\t\t\thost.fileExists = ( path )=> $mol_file.relative( path ).exists()\n\t\t\thost.readFile = ( path )=> $mol_file.relative( path ).text()\n\t\t\thost.writeFile = ( path , text )=> $mol_file.relative( path ).text( text, 'virt' )\n\t\t\t\n\t\t\treturn host\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsTranspiler( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\t\t\treturn $node.typescript.createProgram(\n\t\t\t\tthis.tsPaths({ path , exclude , bundle }) ,\n\t\t\t\tthis.tsOptions() ,\n\t\t\t\tthis.tsHost({ path , exclude , bundle }) ,\n\t\t\t)\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsTranspile( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\t\t\tconst res = this.tsTranspiler({ path , exclude , bundle }).emit()\n\t\t\treturn res\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\ttsService( { path , exclude , bundle } : { path : string , bundle : string , exclude : readonly string[] } ) {\n\n\t\t\tconst paths = this.tsPaths({ path , exclude , bundle })\n\t\t\tif( !paths.length ) return null\n\n\t\t\tconst watchers = new Map< string , ( path : string , kind : number )=> void >()\n\t\t\tlet run = ()=> {}\n\t\t\t\n\t\t\tvar host = $node.typescript.createWatchCompilerHost(\n\n\t\t\t\tpaths ,\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\t... this.tsOptions(),\n\t\t\t\t\temitDeclarationOnly : true,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t{\n\t\t\t\t\t... $node.typescript.sys ,\n\t\t\t\t\twatchDirectory: ( path, cb ) => {\n\t\t\t\t\t\t// console.log('watchDirectory', path )\n\t\t\t\t\t\twatchers.set( path , cb )\n\t\t\t\t\t\treturn { close(){} }\n\t\t\t\t\t},\n\t\t\t\t\twriteFile : (path , data )=> {\n\t\t\t\t\t\t$mol_file.relative( path ).text( data, 'virt' )\n\t\t\t\t\t},\n\t\t\t\t\tsetTimeout : ( cb : any )=> {\n\t\t\t\t\t\trun = cb\n\t\t\t\t\t} ,\n\t\t\t\t\twatchFile : (path:string, cb:(path:string,kind:number)=>any )=> {\n\t\t\t\t\t\t// console.log('watchFile', path )\n\t\t\t\t\t\twatchers.set( path , cb )\n\t\t\t\t\t\treturn { close(){ } }\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t\n\t\t\t\t$node.typescript.createEmitAndSemanticDiagnosticsBuilderProgram,\n\n\t\t\t\t( diagnostic )=> {\n\n\t\t\t\t\tif( diagnostic.file ) {\n\n\t\t\t\t\t\tconst error = $node.typescript.formatDiagnostic( diagnostic , {\n\t\t\t\t\t\t\tgetCurrentDirectory : ()=> this.root().path() ,\n\t\t\t\t\t\t\tgetCanonicalFileName : ( path : string )=> path.toLowerCase() ,\n\t\t\t\t\t\t\tgetNewLine : ()=> '\\n' ,\n\t\t\t\t\t\t})\n\t\t\t\t\t\tthis.js_error( diagnostic.file.getSourceFile().fileName , error )\n\t\t\t\t\t\t\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst text = diagnostic.messageText\n\t\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\t\tplace : `${this}.tsService()` ,\n\t\t\t\t\t\t\tmessage: typeof text === 'string' ? text : text.messageText ,\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\n\t\t\t\t()=> {}, //watch reports\n\t\t\t\t\n\t\t\t\t[], // project refs\n\t\t\t\t\n\t\t\t\t{ // watch options\n\t\t\t\t\tsynchronousWatchDirectory: true,\n\t\t\t\t\twatchFile: 5,\n\t\t\t\t\twatchDirectory: 0,\n\t\t\t\t},\n\t\t\t\t\n\t\t\t)\n\n\t\t\tconst service = $node.typescript.createWatchProgram( host )\n\n\t\t\tconst versions = {} as Record< string , number >\n\n\t\t\treturn {\n\t\t\t\trecheck: ()=> {\n\t\t\t\t\tfor( const path of paths ) {\n\t\t\t\t\t\tconst version = $node.fs.statSync( path ).mtime.valueOf()\n\t\t\t\t\t\t// this.js_error( path, null )\n\t\t\t\t\t\tif( versions[ path ] && versions[ path ] !== version ) {\n\t\t\t\t\t\t\tconst watcher = watchers.get( path )\n\t\t\t\t\t\t\tif( watcher ) watcher( path , 2 )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tversions[ path ] = version\n\t\t\t\t\t}\n\t\t\t\t\trun()\n\t\t\t\t},\n\t\t\t\tdestructor : ()=> service.close()\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tjs_error( path : string , next = null as null | string ) {\n\t\t\tthis.js_content( path )\n\t\t\treturn next\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tjs_content( path : string ) {\n\n\t\t\tconst src = $mol_file.absolute( path )\n\n\t\t\tif( /\\.tsx?$/.test( src.name() ) ) {\n\t\t\t\n\t\t\t\tconst res = $node.typescript.transpileModule( src.text() , { compilerOptions : this.tsOptions() } )\n\t\t\t\t\n\t\t\t\tif( res.diagnostics?.length ) {\n\t\t\t\t\treturn $mol_fail( new Error( $node.typescript.formatDiagnostic( res.diagnostics[0] , {\n\t\t\t\t\t\tgetCurrentDirectory : ()=> this.root().path() ,\n\t\t\t\t\t\tgetCanonicalFileName : ( path : string )=> path.toLowerCase() ,\n\t\t\t\t\t\tgetNewLine : ()=> '\\n' ,\n\t\t\t\t\t}) ) )\n\t\t\t\t}\n\n\t\t\t\tconst map = JSON.parse( res.sourceMapText! ) as $mol_sourcemap_raw\n\t\t\t\tmap.file = src.relate()\n\t\t\t\tmap.sources = [ src.relate() ]\n\t\t\t\t\n\t\t\t\treturn {\n\t\t\t\t\ttext : this.$.$mol_sourcemap_strip(res.outputText),\n\t\t\t\t\t// .replace( /^\\/\\/#\\ssourceMappingURL=[^\\n]*/mg , '//' + src.relate() )+'\\n',\n\t\t\t\t\tmap : map,\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\treturn {\n\t\t\t\t\ttext: this.$.$mol_sourcemap_strip(src.text()),\n\t\t\t\t\tmap: this.$.$mol_sourcemap_from_file(src)\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsources_js( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) : $mol_file[] {\n\t\t\tvar sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\n\t\t\tconst types = {\n\t\t\t\t'svg' : 'image/svg+xml' ,\n\t\t\t\t'png' : 'image/png' ,\n\t\t\t\t'jpg' : 'image/jpeg' ,\n\t\t\t\t'jpeg' : 'image/jpeg' ,\n\t\t\t\t'gif' : 'image/gif' ,\n\t\t\t\t'webp' : 'image/webp' ,\n\t\t\t\t'bin' : 'application/octet-stream' ,\n\t\t\t}\n\n\t\t\tsources = sources.map(\n\t\t\t\tsrc => {\n\n\t\t\t\t\tconst ext = src.ext().replace( /^.*\\./ , '' ) as keyof typeof types \n\n\t\t\t\t\tif( types[ ext ] ) {\n\n\t\t\t\t\t\tconst script = src.parent().resolve( `-bin/${ src.name() }.js` )\n\t\t\t\t\t\tconst payload = $mol_base64_encode( src.buffer() )\n\n\t\t\t\t\t\tconst path = src.relate( this.root() )\n\t\t\t\t\t\tconst uri = `data:${ types[ext] };base64,${ payload }`\n\t\t\t\t\t\tscript.text( `var $node = $node || {} ; $node[ ${ JSON.stringify( '/' + path ) } ] = ${ JSON.stringify( uri ) }\\n` )\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn script\n\t\t\t\t\t}\n\n\t\t\t\t\t\t\n\t\t\t\t\tif( /^[jt]sx?$/.test( ext ) ) {\n\t\t\t\t\t\treturn src\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t).filter( Boolean ) as $mol_file[]\n\t\t\t\n\t\t\treturn sources\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesDTS( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\t\n\t\t\tlet sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\n\t\t\tsources = sources.filter( src => /(tsx?)$/.test( src.ext() ) )\n\t\t\t\n\t\t\tsources = sources.map(\n\t\t\t\tsrc => src.parent().resolve( src.name().replace( /(\\.d)?\\.tsx?$/ , '.d.ts' ) )\n\t\t\t)\n\t\t\t\n\t\t\treturn sources\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsourcesCSS( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\treturn this.sourcesAll( [ path , exclude ] ).filter( src => /(css)$/.test( src.ext() ) )\n\t\t}\n\t\t\n\t\tstatic dependors : { [ index : string ] : undefined | ( ( source : $mol_file )=> { [ index : string ] : number } ) } = {}\n\t\t\n\t\t@ $mol_mem_key\n\t\tsrcDeps( path : string ) {\n\t\t\tconst src = $mol_file.absolute( path )\n\t\t\t\n\t\t\tlet ext = src.ext()\n\t\t\tif( !ext ) return {}\n\t\t\t\n\t\t\tlet dependencies \n\t\t\twhile( !dependencies ) {\n\t\t\t\tdependencies = $mol_build.dependors[ ext ]\n\t\t\t\tif( dependencies ) break\n\t\t\t\tvar extShort = ext.replace( /^[^.]*\\./ , '' )\n\t\t\t\tif( ext === extShort ) break\n\t\t\t\text = extShort\n\t\t\t}\n\t\t\t\n\t\t\treturn dependencies ? dependencies( src ) : {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodDeps( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\tconst mod = $mol_file.absolute( path )\n\t\t\tconst depends : { [ index : string ] : number } = mod === this.root()\n\t\t\t\t? {}\n\t\t\t\t: { '..' : -999 }\n\t\t\tfor( var src of this.sources( [ path , exclude ] ) ) {\n\t\t\t\t$mol_build_depsMerge( depends , this.srcDeps( src.path() ) )\n\t\t\t}\n\t\t\treturn depends\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tdependencies( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\tvar mod = $mol_file.absolute( path )\n\t\t\tif ( ! mod.exists() ) return {}\n\t\t\tswitch( mod.type() ) {\n\t\t\t\tcase 'file' :\n\t\t\t\t\treturn this.srcDeps( path )\n\t\t\t\tcase 'dir' :\n\t\t\t\t\treturn this.modDeps( [ path , exclude ] )\n\t\t\t\tdefault :\n\t\t\t\t\treturn {}\n\t\t\t}\n\t\t}\n\n\t\twatching() { return this.paths().length === 0 }\n\t\tinteractive() { return process.stdout.isTTY }\n\t\tpull_timeout() {\n\t\t\tlet timeout = Number(this.$.$mol_env().MOL_BUILD_PULL_TIMEOUT)\n\t\t\tif ( Number.isNaN(timeout) ) {\n\t\t\t\ttimeout = this.watching() ? 5000 : 120000\n\t\t\t}\n\t\t\treturn timeout\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensurer() {\n\t\t\treturn this.$.$mol_build_ensure.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t\tinteractive: () => this.interactive(),\n\t\t\t\tpull_timeout: () => this.pull_timeout(),\n\t\t\t})\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodEnsure( path : string ) { return this.ensurer().ensure(path) }\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodMeta( path : string ) { return this.ensurer().meta(path) }\n\n\t\t@ $mol_mem_key\n\t\tgraph( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) {\n\t\t\treturn this.$.$mol_build_graph.make({\n\t\t\t\troot: () => this.root(),\n\t\t\t\tmod_ensure: path => this.modEnsure(path),\n\t\t\t\tdependencies: path => this.dependencies([ path, exclude ]),\n\t\t\t\tpath: () => path,\n\t\t\t})\n\t\t}\n\n\t\t@ $mol_action\n\t\tbundleAllWeb( path: string ) {\n\t\t\tthis.bundle([ path , 'web.deps.json' ])\n\t\t\tthis.bundle([ path , 'web.css' ])\n\t\t\tthis.bundle([ path , 'web.js' ])\n\t\t\tthis.bundle([ path , 'web.test.js' ])\n\t\t\tthis.bundle([ path , 'web.test.html' ])\n\t\t\tthis.bundle([ path , 'web.view.tree' ])\n\t\t\tthis.bundle([ path , 'web.meta.tree' ])\n\t\t\tthis.bundle([ path , 'web.locale=en.json' ])\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllWebAudit( path: string ) {\n\t\t\tthis.bundle([ path , 'web.audit.js' ])\n\t\t\tthis.bundle([ path , 'web.d.ts' ])\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllNode( path: string ) {\n\t\t\tthis.bundle([ path , 'node.deps.json' ])\n\t\t\tthis.bundle([ path , 'node.js' ])\n\t\t\tthis.bundle([ path , 'node.test.js' ])\n\t\t\tthis.bundle([ path , 'node.view.tree' ])\n\t\t\tthis.bundle([ path , 'node.meta.tree' ])\n\t\t\tthis.bundle([ path , 'node.locale=en.json' ])\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllNodeAudit( path: string ) {\n\t\t\tthis.bundle([ path , 'node.audit.js' ])\n\t\t\tthis.bundle([ path , 'node.d.ts' ])\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAll( path: string ) {\n\n\t\t\tthis.bundle([ path , 'index.html' ])\n\t\t\tthis.bundle([ path , 'test.html' ])\n\t\t\t\n\t\t\tthis.bundleAllWeb(path)\n\t\t\tthis.bundleAllWebAudit(path)\n\t\t\tthis.bundleAllNode(path)\n\t\t\tthis.bundleAllNodeAudit(path)\n\t\t\t\n\t\t\tthis.bundle([ path , 'package.json' ])\n\t\t\tthis.bundle([ path , 'readme.md' ])\n\n\t\t\tthis.bundleFiles( [ path , [ 'node' ] ] )\n\t\t\tthis.bundleCordova( [ path , [ 'node' ] ] )\n\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundle( [ path , bundle = '' ] : [ path : string , bundle? : string ] ) {\n\t\t\t\n\t\t\tbundle = bundle && bundle.replace( /\\.map$/ , '' )\n\t\t\t\n\t\t\tvar envsDef = [ 'web' , 'node' ]\n\t\t\tvar envs = bundle ? [] as string[] : envsDef.slice()\n\t\t\tvar stages = [ 'test' , 'dev' ]\n\t\t\tif( bundle ) {\n\t\t\t\t\n\t\t\t\tvar [ bundle , tags , type , locale ] = /^(.*?)(?:\\.(audit\\.js|test\\.js|test\\.html|js|css|deps\\.json|locale=(\\w+)\\.json))?$/.exec(\n\t\t\t\t\tbundle\n\t\t\t\t)!\n\t\t\t\t\n\t\t\t\ttags.split( '.' ).forEach(\n\t\t\t\t\ttag => {\n\t\t\t\t\t\tif( envsDef.indexOf( tag ) !== -1 ) envs = [ tag ]\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tvar res : $mol_file[] = []\n\t\t\t\n\t\t\tenvs.forEach(\n\t\t\t\tenv => {\n\t\t\t\t\tvar exclude = envsDef.filter( e => e !== env ).concat( stages )\n\t\t\t\t\t\n\t\t\t\t\tif( !type || type === 'deps.json' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleDepsJSON( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'css' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleCSS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'js' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'mjs' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleMJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'test.js' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleAndRunTestJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'audit.js' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleAuditJS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'd.ts' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleDTS( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'view.tree' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleViewTree( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || type === 'meta.tree' ) {\n\t\t\t\t\t\tres = res.concat( this.bundleMetaTree( { path , exclude , bundle : env } ) )\n\t\t\t\t\t}\n\t\t\t\t\tif( !type || /^locale=(\\w+).json$/.test( type ) ) {\n\t\t\t\t\t\tres = res.concat(\n\t\t\t\t\t\t\tthis.bundleLocale(\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tpath ,\n\t\t\t\t\t\t\t\t\texclude ,\n\t\t\t\t\t\t\t\t\tbundle : env\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\tif( !bundle || bundle === 'package.json' ) {\n\t\t\t\tres = res.concat( this.bundlePackageJSON( [ path , [ 'web', 'test' ] ] ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( !bundle || bundle === 'readme.md' ) {\n\t\t\t\tres = res.concat( this.bundleReadmeMd( [ path , [ 'web' ] ] ) )\n\t\t\t}\n\n\t\t\tif( !bundle || bundle === 'index.html' ) {\n\t\t\t\tres = res.concat( this.bundleIndexHtml( [ path ] ) )\n\t\t\t}\n\t\t\t\n\t\t\tif( !bundle || bundle === 'test.html' ) {\n\t\t\t\tres = res.concat( this.bundleTestHtml( path ) )\n\t\t\t}\n\n\t\t\tif( !bundle || /\\//.test( bundle ) ) {\n\t\t\t\tres = res.concat( this.bundleFiles( [ path , [ 'node' ] ] ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tlogBundle( target : $mol_file , duration : number ) {\n\n\t\t\tconst path = target.relate( this.root() )\n\t\t\t\n\t\t\tthis.$.$mol_log3_done({\n\t\t\t\tplace: this ,\n\t\t\t\tduration: `${duration}ms` ,\n\t\t\t\tmessage: 'Built' , \n\t\t\t\tpath ,\n\t\t\t})\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected now() { return Date.now() }\n\n\t\t@ $mol_mem_key\n\t\tbundleJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\tvar targetJS = pack.resolve( `-/${bundle}.js` )\n\t\t\t\n\t\t\tvar sources = this.sources_js( [ path , exclude ] )\n\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\tvar concater = new $mol_sourcemap_builder( this.root().relate( targetJS.parent() ), ';')\n\t\t\tconcater.add( '#!/usr/bin/env node\\n\"use strict\"' )\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tconcater.add( 'var exports = void 0' )\n\t\t\t} else {\n\t\t\t\tconcater.add( 'function require'+'( path ){ return $node[ path ] }' )\n\t\t\t}\n\n\t\t\tconst errors = [] as Error[]\n\t\t\tfor (const src of sources) {\n\t\t\t\tif( bundle === 'node' && /node_modules\\//.test( src.relate( this.root() ) ) ) continue\n\n\t\t\t\ttry {\n\t\t\t\t\tconst content = this.js_content( src.path() )\n\t\t\t\t\t\n\t\t\t\t\tconst isCommonJs = /typeof +exports|module\\.exports|\\bexports\\.\\w+\\s*=/.test( content.text )\n\t\t\t\t\n\t\t\t\t\tif( isCommonJs ) {\n\t\t\t\t\t\tconcater.add( `\\nvar $node = $node || {}\\nvoid function( module ) { var exports = module.${''}exports = this; function require( id ) { return $node[ id.replace( /^.\\\\// , \"` + src.parent().relate( this.root().resolve( 'node_modules' ) ) + `/\" ) ] }; \\n`, '-' )\n\t\t\t\t\t}\n\n\t\t\t\t\tconcater.add( content.text , '' , content.map )\n\t\t\t\t\t\n\t\t\t\t\tif( isCommonJs ) {\n\t\t\t\t\t\tconst idFull = src.relate( this.root().resolve( 'node_modules' ) )\n\t\t\t\t\t\tconst idShort = idFull.replace( /\\/index\\.js$/ , '' ).replace( /\\.js$/ , '' )\n\t\t\t\t\t\tconcater.add( `\\n$${''}node[ \"${ idShort }\" ] = $${''}node[ \"${ idFull }\" ] = module.${''}exports }.call( {} , {} )\\n`, '-' )\n\t\t\t\t\t}\n\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif ($mol_fail_catch(error)) errors.push( error as Error)\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( errors.length ) {\n\t\t\t\tconst messages = errors.map( e => ' ' + e.message ).join( '\\n' )\n\t\t\t\tconst error = new $mol_error_mix( `Build fail ${ pack.relate() }\\n${ messages }`, {}, ... errors )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t\tvar targetJSMap = pack.resolve( `-/${bundle}.js.map` )\n\t\n\t\t\ttargetJS.text( concater.content + '\\n//# sourceMappingURL=' + targetJSMap.relate( targetJS.parent() ) + '\\n' )\n\t\t\ttargetJSMap.text( concater.toString() )\n\t\t\t\n\t\t\tthis.logBundle( targetJS , Date.now() - start )\n\n\t\t\treturn [ targetJS , targetJSMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleMJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tconst [ targetJS, targetJSMap ] = this.bundleJS({ path, exclude, bundle })\n\t\t\tif (! targetJS) return []\n\n\t\t\tconst targetMJS = targetJS.parent().resolve( targetJS.name().replace(/\\.js$/, '.mjs') )\n\t\t\ttargetMJS.text( targetJS.text().replace(/(^\\/\\/# sourceMappingURL.*)/m, 'export default $\\n$1') )\n\n\t\t\tthis.logBundle( targetMJS , Date.now() - start )\n\n\t\t\treturn [ targetMJS, targetJSMap ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleAuditJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.audit.js` )\n\t\t\tvar exclude_ext = exclude.filter( ex => ex !== 'test' && ex !== 'dev' )\n\n\t\t\tthis.tsService({ path , exclude : exclude_ext , bundle })?.recheck()\n\t\t\t\n\t\t\tconst errors = [] as Error[]\n\n\t\t\tconst paths = this.tsPaths({ path , exclude: exclude_ext , bundle })\n\n\t\t\tfor( const path of paths ) {\n\n\t\t\t\tthis.js_content( path ) // recheck on file change\n\n\t\t\t\tconst error = this.js_error( path )\n\t\t\t\tif( !error ) continue\n\t\t\t\t\n\t\t\t\terrors.push( new Error( error ) )\n\t\t\t\tthis.js_error( path, null ) // ts will refill it on change\n\t\t\t}\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\tif( errors.length ) {\n\t\t\t\tconst messages = errors.map( e => ' ' + e.message ).join( '\\n' )\n\t\t\t\tconst error = new $mol_error_mix( `Audit fail ${ pack.relate() }\\n${ messages }`, {}, ... errors )\n\t\t\t\ttarget.text( `console.error(${ JSON.stringify( error.stack ) })` )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t\ttarget.text( \"console.info( `%cplace: $mol_build\\nmessage: Audit passed`, 'color:forestgreen; font-weight:bolder' )\" )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundle_test_js(\n\t\t\t[ path , exclude , bundle ] : [ path : string , exclude : readonly string[] , bundle : string ]\n\t\t) {\n\t\t\tconst start = this.now()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst root = this.root()\n\t\t\tconst target = pack.resolve( `-/${bundle}.test.js` )\n\t\t\tconst targetMap = pack.resolve( `-/${bundle}.test.js.map` )\n\t\t\t\n\t\t\tconst concater = new $mol_sourcemap_builder( this.root().relate( target.parent() ), ';')\n\t\t\tconcater.add( '\"use strict\"' )\n\t\t\t\n\t\t\tconst exclude_ext = exclude.filter( ex => ex !== 'test' && ex !== 'dev' )\n\t\t\tconst sources = this.sources_js( [ path , exclude_ext ] )\n\n\t\t\tconst sourcesNoTest = new Set( this.sources_js( [ path , exclude ] ) )\n\n\t\t\tlet sourcesTest = sources.filter( src => !sourcesNoTest.has( src ) )\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tsourcesTest = [ ... sourcesNoTest , ... sourcesTest ]\n\t\t\t} else {\n\t\t\t\tconcater.add( 'function require'+'( path ){ return $node[ path ] }' )\n\t\t\t}\n\n\t\t\tif( sources.length === 0 ) return null\n\t\t\t\n\t\t\tconst errors = [] as Error[]\n\n\t\t\tfor (const src of sourcesTest) {\n\t\t\t\tif( bundle === 'node' && /node_modules\\//.test( src.relate( root ) ) ) {\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t\ttry {\n\t\t\t\t\tconst content = this.js_content( src.path() )\n\t\t\t\t\tconcater.add( content.text, '', content.map)\n\t\t\t\t} catch( error ) {\n\t\t\t\t\tif ($mol_fail_catch(error)) errors.push( error as Error)\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\ttarget.text( concater.content + '\\n//# sourceMappingURL=' + targetMap.relate( target.parent() )+'\\n' )\n\t\t\ttargetMap.text( concater.toString() )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\tif( errors.length ) {\n\t\t\t\tconst messages = errors.map( e => ' ' + e.message ).join( '\\n' )\n\t\t\t\tconst error = new $mol_error_mix( `Build fail ${ pack.relate() }\\n${ messages }`, {}, ... errors )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t\treturn { js: target, map: targetMap }\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleAndRunTestJS( { path , exclude , bundle } : { path : string , exclude : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst target = this.bundle_test_js([ path, exclude, bundle ])\n\t\t\tif (! target ) {\n\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\tplace: `${this}.bundleAndRunTestJS` ,\n\t\t\t\t\tmessage: 'No sources found' ,\n\t\t\t\t\thint: 'Wrong path?', \n\t\t\t\t\tpath ,\n\t\t\t\t})\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tconst dir = this.root().path()\n\n\t\t\t\tthis.$.$mol_file.unwatched(() =>\n\t\t\t\t\tthis.$.$mol_run.spawn( {\n\t\t\t\t\t\tcommand: ['node', '--enable-source-maps', '--trace-uncaught', target.js.relate( this.root() ) ], \n\t\t\t\t\t\tdir\n\t\t\t\t\t} ),\n\t\t\t\t\tdir\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\treturn [ target.js , target.map ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleTestHtml( path: string ) : $mol_file[] {\n\t\t\t\n\t\t\tconst start = this.now()\n\t\t\t\n\t\t\tthis.modEnsure(path)\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\tconst source = pack.resolve( 'index.html' )\n\t\t\tconst target = pack.resolve( `-/test.html` )\n\t\t\tconst name = '$' + pack.relate( this.root() ).replaceAll( '/', '_' )\n\n\t\t\tlet content = source.exists()\n\t\t\t\t? source.text()\n\t\t\t\t: `<!doctype html><meta charset=\"utf-8\" /><html mol_view_root><body mol_view_root=\"${name}\"><script src=\"web.js\" charset=\"utf-8\"></script>`\n\t\t\t\n\t\t\tcontent = content.replace(\n\t\t\t\t/(<\\/body>|$)/ , `\n\t\t\t\t<script src=\"/mol/build/client/client.js\" charset=\"utf-8\"></script>\n\t\t\t\t<script src=\"web.test.js\" charset=\"utf-8\"></script>\n\t\t\t\t<script>\n\t\t\t\t\taddEventListener( 'load', ()=> setTimeout( ()=> {\n\t\t\t\t\t\tconst audit = document.createElement( 'script' )\n\t\t\t\t\t\taudit.src = 'web.audit.js'\n\t\t\t\t\t\tdocument.head.appendChild( audit )\n\t\t\t\t\t}, 500 ) )\n\t\t\t\t</script>\n\t\t\t\t$1`,\n\t\t\t)\n\t\t\t\n\t\t\ttarget.text( content )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleDTS( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.d.ts` )\n\t\t\tvar targetMap = pack.resolve( `-/${bundle}.d.ts.map` )\n\t\t\t\n\t\t\tvar sources = this.sourcesDTS( [ path , exclude ] )\n\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\tvar concater = new $mol_sourcemap_builder( target.parent().path() )\n\t\t\t\n\t\t\tsources.forEach(\n\t\t\t\tfunction( src ) {\n\t\t\t\t\tif( ! src.exists() || ! src.text() ) return\n\t\t\t\t\tconcater.add( src.text(), src.relate( target.parent() ) )\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\ttarget.text( concater.content + '\\nexport = $;\\n//# sourceMappingURL=' + targetMap.relate( target.parent() ) + '\\n' )\n\t\t\ttargetMap.text( concater.toString() )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target, targetMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleViewTree( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.view.tree` )\n\t\t\t\n\t\t\tvar sources = this.sourcesAll([ path , exclude ])\n\t\t\t.filter( src => /view.tree$/.test( src.ext() ) )\n\t\t\t\n\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\ttarget.text( sources.map( src => src.text() ).join( '\\n' ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleMetaTree( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\tvar target = pack.resolve( `-/${bundle}.meta.tree` )\n\t\t\t\n\t\t\tconst sortedPaths = this.graph( [path , exclude ] ).sorted\n\t\t\t\n\t\t\tconst namedMetas: $mol_tree2[] = []\n\t\t\tsortedPaths.forEach( path => {\n\t\t\t\tconst meta = this.modMeta( this.root().resolve( path ).path() )\n\t\t\t\tif( meta && meta.kids.length > 0 ) {\n\t\t\t\t\tnamedMetas.push( meta.data( '/' + path, meta.kids ) )\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\tif( namedMetas.length === 0 ) return []\n\t\t\t\n\t\t\ttarget.text( this.$.$mol_tree2.list(namedMetas, namedMetas[0]?.span).toString() )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tnodeDeps( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) {\n\t\t\t\n\t\t\tvar res = new Map<string,string>()\n\t\t\tvar sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\n\t\t\tfor( let src of sources ) {\n\t\t\t\tlet deps = this.srcDeps( src.path() )\n\t\t\t\tfor( let dep in deps ) {\n\t\t\t\t\tif( !/^\\/node(?:_modules)?\\//.test( dep ) ) continue\n\t\t\t\t\tlet mod = dep.replace( /^\\/node(?:_modules)?\\// , '' )\n\t\t\t\t\tif( mod.startsWith( '@' ) ) mod = mod.match( /@[^/]*\\/[^/]*/ )![0]\n\t\t\t\t\telse mod = mod.replace( /\\/.*/g , '' )\n\t\t\t\t\tres.set( mod, src.relate() )\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn res\n\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleReadmeMd( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) : $mol_file[] {\n\t\t\t\n\t\t\tconst start = this.now()\n\t\t\t\n\t\t\tconst root = this.root()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tlet mod = pack\n\t\t\tlet source\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tsource = mod.resolve( 'README.md' )\n\t\t\t\tif( source.exists() ) break\n\t\t\t\t\n\t\t\t\tsource = mod.resolve( 'readme.md' )\n\t\t\t\tif( source.exists() ) break\n\t\t\t\t\n\t\t\t\tif( mod === root ) break\n\t\t\t\tmod = mod.parent()\n\t\t\t\t\n\t\t\t}\n\n\t\t\tconst target = pack.resolve( '-/README.md' )\n\t\t\ttarget.text( source?.text() ?? path )\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundlePackageJSON( [ path , exclude ] : [ path : string , exclude : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst source = pack.resolve( `package.json` )\n\t\t\tconst target = pack.resolve( `-/package.json` )\n\t\t\t\n\t\t\tlet name = pack.relate( this.root() ).replace( /\\//g , '_' )\n\t\t\t\n\t\t\tlet json = {\n\t\t\t\tname ,\n\t\t\t\tversion : '0.0.0' ,\n\t\t\t\texports: {\n\t\t\t\t\tnode: {\n\t\t\t\t\t\timport : './node.mjs',\n\t\t\t\t\t\tdefault : './node.js'\n\t\t\t\t\t},\n\t\t\t\t\ttypes : './web.d.ts',\n\t\t\t\t\timport : './web.mjs',\n\t\t\t\t\tdefault : './web.js'\n\t\t\t\t},\n\t\t\t\tmain : './web.js' ,\n\t\t\t\tmodule : './web.mjs',\n\t\t\t\tbrowser : './web.js',\n\t\t\t\ttypes : './web.d.ts',\n\t\t\t\tkeywords: [] as string[],\n\t\t\t\tdependencies : {} as { [ key : string ] : string }\n\t\t\t}\n\n\t\t\tif( source.exists() ) {\n\t\t\t\tObject.assign( json , JSON.parse( source.text() ) )\n\t\t\t}\n\n\t\t\tlet version = json.version.split('.').map( Number )\n\t\t\tname = json.name || name\n\t\t\t\n\t\t\ttry {\n\n\t\t\t\tconst result = this.$.$mol_run.spawn( { command: ['npm', 'view' , name , 'versions', '--json'], dir: '.' } )\n\t\t\t\tconst versions = ( [] as string[] ).concat( JSON.parse( result.stdout.toString() ) )\n\t\t\t\tconst published = versions.at(-1)?.split('.').map( Number ) ?? [ 0, 0, 0 ]\n\t\t\t\t\n\t\t\t\tif( published[0] > version[0] ) {\n\t\t\t\t\tversion = published\n\t\t\t\t} else if( published[0] === version[0] && published[1] > version[1] ) {\n\t\t\t\t\tversion[1] = published[1]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif(!( published[2] <= version[2] )) {\n\t\t\t\t\tversion[2] = published[2]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\tif (! (error as Error).message.match(/code E404/)) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++ version[2]\n\n\t\t\tjson.version = version.join( '.' )\n\n\t\t\tfor( let dep of this.nodeDeps([ path , exclude ]).keys() ) {\n\n\t\t\t\tif( $node_internal_check(dep) ) continue\n\t\t\t\tif( dep === 'internal' ) continue // @TODO: Prevent `internal` deps from `node:internal`.\n\t\t\t\tjson.dependencies[ dep ] ??= `*`\n\t\t\t}\n\t\t\t\n\t\t\tjson.keywords = [ ... this.graph( [ path , exclude ] ).nodes ]\n\t\t\t\t.filter( Boolean )\n\t\t\t\t.filter( path => !/[.-]/.test( path ) )\n\t\t\t\t.map( path => '$' + path.replaceAll( '/', '_' ) )\n\t\t\t\n\t\t\ttarget.text( JSON.stringify( json , null , ' ' ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleIndexHtml( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst targets : $mol_file[] = []\n\n\t\t\tconst start = this.now()\n\t\t\tconst html = pack.resolve( 'index.html' )\n\t\t\tconst tree = pack.resolve( 'index.xml.tree' )\n\t\t\tconst target = pack.resolve( '-/index.html' )\n\n\t\t\tif( tree.exists() ) {\n\t\t\t\tconst xml_tree = this.$.$mol_tree2_from_string( tree.text() )\n\t\t\t\tconst text = this.$.$mol_tree2_xml_to_text( xml_tree )\n\t\t\t\tconst xml = this.$.$mol_tree2_text_to_string( text )\n\t\t\t\ttarget.text( xml )\n\t\t\t} else if( html.exists() ) {\n\t\t\t\ttarget.text( html.text() )\n\t\t\t}\n\n\t\t\tif( target.exists() ) {\n\t\t\t\ttargets.push( target )\n\t\t\t\tthis.logBundle( target, Date.now() - start )\n\t\t\t}\n\n\t\t\treturn targets\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleFiles( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst root = this.root()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst sources = this.sourcesAll( [ path , exclude ] )\n\t\t\t\t.filter( src => /meta.tree$/.test( src.ext() ) )\n\t\t\t\n\t\t\tconst targets : $mol_file[] = []\n\n\t\t\tfor (const source of sources) {\n\n\t\t\t\tconst addFilesRecursive = (file:$mol_file) =>{\n\t\t\t\t\t\n\t\t\t\t\tif ( ! file.exists() ) return\n\n\t\t\t\t\tif( file.type() === 'dir') {\n\t\t\t\t\t\tfor (const sub of file.sub()) {\n\t\t\t\t\t\t\taddFilesRecursive(sub)\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\tconst start = this.now()\n\n\t\t\t\t\tconst target = file.clone(pack.resolve( `-/${ file.relate( root ) }` ).path())\n\t\t\t\t\tif (! target) return\n\t\t\t\t\ttargets.push( target )\n\t\t\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\t}\n\n\t\t\t\tconst tree = this.$.$mol_tree2_from_string( source.text() , source.path() )\n\n\t\t\t\ttree.select( 'deploy' ).kids.forEach( deploy => {\n\t\t\t\t\tconst mod = root.resolve( deploy.text().replace( /^\\// , '' ) )\n\t\t\t\t\tthis.modEnsure( mod.path() )\n\t\t\t\t\taddFilesRecursive( mod )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn targets\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleCordova( [ path , exclude ] : [ path : string , exclude? : readonly string[] ] ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\tconst cordovaOut = pack.resolve( '-' )\n\t\t\tconst cordova = pack.resolve( '-cordova' )\n\t\t\t\n\t\t\tconst config = pack.resolve( 'config.xml' )\n\t\t\tif( !config.exists() ) return []\n\t\t\t\n\t\t\tconst config_target = cordova.resolve( 'config.xml' )\n\t\t\tconfig_target.text( config.text() )\n\n\t\t\tconst targets = [ config_target ]\n\t\t\n\t\t\tconst sources = pack.resolve( '-' ).find().filter( src => src.type() === 'file' )\n\n\t\t\tfor (const source of sources) {\n\t\t\t\tconst target = cordova.resolve( `www/${ source.relate( cordovaOut ) }` )\n\t\t\t\ttarget.text( source.text() )\n\t\t\t\ttargets.push(target)\n\t\t\t}\n\t\t\t\n\t\t\tthis.logBundle( cordova , Date.now() - start )\n\t\t\t\n\t\t\treturn targets\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleCSS( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tif( bundle === 'node' ) return []\n\n\t\t\tconst start = this.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\tvar sources = [] as $mol_file[] // this.sourcesCSS( [ path , exclude ] )\n\t\t\t\n\t\t\tvar target = pack.resolve( `-/${bundle}.css` )\n\t\t\tvar targetMap = pack.resolve( `-/${bundle}.css.map` )\n\t\t\t\n\t\t\t// var root : any = null //$node['postcss'].root({})\n\t\t\t// sources.forEach(\n\t\t\t// \tsrc => {\n\t\t\t// \t\tvar root2 = $node['postcss'].parse( src.content() , { from : src.path() } )\n\t\t\t// \t\troot = root ? root.append( root2 ) : root2\n\t\t\t// \t}\n\t\t\t// )\n\t\t\t\n\t\t\t// var processor = $node['postcss']([\n\t\t\t// \t$node[ 'postcss-custom-properties' ]({\n\t\t\t// \t\tpreserve : true ,\n\t\t\t// \t}) ,\n\t\t\t// \t$node[ 'postcss-color-function' ]() ,\n\t\t\t// ])\n\t\t\t// var result = processor.process( root , { to : target.relate() , map : { inline : false } } )\n\n\t\t\tconst result = {\n\t\t\t\tcss : '/* CSS compiles into js bundle now! */',\n\t\t\t\tmap : '/* CSS compiles into js bundle now! */',\n\t\t\t}\n\t\t\t\n\t\t\ttarget.text( result.css )\n\t\t\ttargetMap.text( JSON.stringify( result.map , null , '\\t' ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target , targetMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleLocale( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst sources = this.sourcesAll( [ path , exclude ] ).filter( src => /(locale=(\\w+)\\.json)$/.test( src.name() ) )\n\t\t\tif( !sources.length ) return []\n\t\t\t\n\t\t\tconst locales = {} as { [ key : string ] : { [ key : string ] : string } }\n\t\t\t\n\t\t\tsources.forEach(\n\t\t\t\tsrc => {\n\t\t\t\t\tconst [ ext , lang ] = /locale=(\\w+)\\.json$/.exec( src.name() )!\n\t\t\t\t\t\n\t\t\t\t\tif( !locales[ lang ] ) locales[ lang ] = {}\n\t\t\t\t\t\n\t\t\t\t\tconst loc = JSON.parse( src.text() )\n\t\t\t\t\tfor( let key in loc ) {\n\t\t\t\t\t\tlocales[ lang ][ key ] = loc[ key ]\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\n\t\t\tconst targets = Object.keys( locales ).map( lang => {\n\t\t\t\tconst start = this.now()\n\t\t\t\tconst target = pack.resolve( `-/${bundle}.locale=${ lang }.json` )\n\t\t\t\t\n\t\t\t\tconst locale = locales[ lang ]\n\n\t\t\t\tif( lang !== 'en' && locales['en'] ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let key in locale ) {\n\t\t\t\t\t\tif( key in locales[ 'en' ] ) continue\n\t\t\t\t\t\tdelete locale[ key ]\n\t\t\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\t\t\tplace: `${this}.buildLocale()`,\n\t\t\t\t\t\t\tmessage: `Excess locale key`,\n\t\t\t\t\t\t\thint: 'May be you forgot to remove this key?',\n\t\t\t\t\t\t\tlang,\n\t\t\t\t\t\t\tkey,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst locale_sorted = {} as Record<string, string>\n\n\t\t\t\tfor( let key of Object.keys( locale ).sort() ) {\n\t\t\t\t\tlocale_sorted[ key ] = locale[ key ]\n\t\t\t\t}\n\n\t\t\t\ttarget.text( JSON.stringify( locale_sorted , null , '\\t' ) )\n\t\t\t\t\n\t\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\t\n\t\t\t\treturn target\n\t\t\t} )\n\t\t\t\n\t\t\treturn targets\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleDepsJSON( { path , exclude , bundle } : { path : string , exclude? : readonly string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = this.now()\n\t\t\tconst pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tconst list = this.sourcesAll( [ path , exclude ] )\n\t\t\tif( !list.length ) return []\n\n\t\t\tconst origs = list.filter( src => !/\\/-/.test( src.path() ) )\n\t\t\t\n\t\t\tconst sloc = {} as Record< string , number >\n\t\t\tfor( const src of origs ) {\n\t\t\t\tconst ext = src.name().replace( /^.*\\./ , '' )\n\t\t\t\tconst count = src.text().trim().split( /[\\n\\r]\\s*/ ).length\n\t\t\t\tsloc[ ext ] = ( sloc[ ext ] || 0 ) + count\n\t\t\t}\n\t\t\t\n\t\t\tconst graph = this.graph( [ path , exclude ] )\n\t\t\t\n\t\t\tconst deps = {} as Record<string, Record<string, number>>\n\t\t\tfor( let dep of graph.nodes ) {\n\t\t\t\tdeps[ dep ] = this.dependencies( [ this.root().resolve( dep ).path() , exclude ] )\n\t\t\t}\n\t\t\t\n\t\t\tconst deps_in = {} as Record< string , Record< string , number > >\n\t\t\tfor( const [ dep , pair ] of graph.edges_in ) {\n\n\t\t\t\tif( !deps_in[ dep ] ) {\n\t\t\t\t\tdeps_in[ dep ] = {}\n\t\t\t\t}\n\n\t\t\t\tfor( const [ mod , edge ] of pair ) {\n\t\t\t\t\tdeps_in[ dep ][ mod ] = edge.priority\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst deps_out = {} as Record< string , Record< string , number > >\n\t\t\tfor( const [ mod , pair ] of graph.edges_out ) {\n\n\t\t\t\tif( !deps_out[ mod ] ) {\n\t\t\t\t\tdeps_out[ mod ] = {}\n\t\t\t\t}\n\n\t\t\t\tfor( const [ dep , edge ] of pair ) {\n\t\t\t\t\tdeps_out[ mod ][ dep ] = edge.priority\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst data = {\n\t\t\t\tfiles : list.map( src => src.relate( this.root() ) ) ,\n\t\t\t\tmods : graph.sorted ,\n\t\t\t\tdeps_in ,\n\t\t\t\tdeps_out ,\n\t\t\t\tsloc ,\n\t\t\t\tdeps\n\t\t\t} as const\n\t\t\t\n\t\t\tconst target = pack.resolve( `-/${bundle}.deps.json` )\n\t\t\ttarget.text( JSON.stringify( data ) )\n\t\t\t\n\t\t\tthis.logBundle( target , Date.now() - start )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\t}\n\t\n\tfunction $mol_build_depsMerge(\n\t\ttarget : { [ index : string ] : number } ,\n\t\tsource : { [ index : string ] : number }\n\t) : { [ index : string ] : number } {\n\t\tfor( var path in source ) {\n\t\t\tif( target[ path ] >= source[ path ] ) continue\n\t\t\ttarget[ path ] = source[ path ]\n\t\t}\n\t\treturn target\n\t}\n\t\n\t$mol_build.dependors[ 'js' ] = source => {\n\t\tvar depends : { [ index : string ] : number } = {}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*[^]*?\\*\\//g , '' ) // drop block comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/\\b(?:require|import)\\(\\s*['\"]([^\"'()]*?)['\"]\\s*\\)/ig , ( str , path )=> {\n\t\t\t\t\t\tif ($node_internal_check(path)) return str\n\t\t\t\t\t\tpath = path.replace( /(\\/[^\\/.]+)$/ , '$1.js' ).replace( /\\/$/, '/index.js' )\n\t\t\t\t\t\tif( path[0] === '.' ) path = '../' + path\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ path ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\t\t\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'ts' ] = $mol_build.dependors[ 'tsx' ] = $mol_build.dependors[ 'jam.js' ] = $mol_build.dependors[ 'tree.js' ] = source => {\n\t\tvar depends : { [ index : string ] : number } = {}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*(?!\\*)[\\s\\S]*?\\*\\//g , '' ) // drop block comments except doc-comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/\\$([0-9]*[a-z][a-z0-9]*)(?:((?:[\\._A-Z0-9][a-z0-9]+)+)|\\[\\s*['\"]([^'\"]+?)['\"]\\s*\\])?/g , ( str , pack , path , name )=> {\n\t\t\t\t\t\tif( path ) path = '/' + pack + path.replace( /(?=[A-Z])/g , '_' ).toLowerCase().replace( /[_.\\[\\]'\"]+/g , '/' )\n\t\t\t\t\t\tif( name ) name = '/' + pack + '/' + name\n\t\t\t\t\t\tpack = '/' + pack\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ path || name || pack ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/\\b(?:require|import)\\(\\s*['\"]([^\"'()]*?)['\"]\\s*\\)/ig , ( str , path )=> {\n\t\t\t\t\t\tif ($node_internal_check(path)) return str\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ path ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t)\n\t\t\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'view.ts' ] = source => {\n\t\tvar treeName = './' + source.name().replace( /ts$/ , 'tree' )\n\t\tvar depends : { [ index : string ] : number } = { [ treeName ] : 0 }\n\t\t$mol_build_depsMerge( depends , $mol_build.dependors[ 'ts' ]!( source ) )\n\t\treturn depends\n\t}\n\n\t$mol_build.dependors[ 'node.ts' ] = $mol_build.dependors[ 'web.ts' ] = source => {\n\t\tvar common = './' + source.name().replace( /\\.(node|web)\\.ts$/ , '.ts' )\n\t\tvar depends : { [ index : string ] : number } = { [ common ] : 0 }\n\t\t$mol_build_depsMerge( depends , $mol_build.dependors[ 'ts' ]!( source ) )\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'view.css' ] = source => {\n\t\tvar treeName = './' + source.name().replace( /css$/ , 'tree' )\n\t\tvar depends : { [ index : string ] : number } = { [ treeName ] : 0 }\n\t\t$mol_build_depsMerge( depends , $mol_build.dependors[ 'css' ]!( source ) )\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'css' ] = source => {\n\n\t\tvar depends : { [ index : string ] : number } = {\n\t\t\t'/mol/style/attach': 0,\n\t\t}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*[^]*?\\*\\//g , '' ) // drop block comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/(?:--|\\[)([a-z][a-z0-9]+(?:[_][a-z0-9]+)+)/ig , ( str , name )=> {\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ '/' + name.replace( /[._-]/g , '/' ) ] : priority } )\n\t\t\t\t\t\treturn str\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t)\n\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'glsl' ] = source => {\n\n\t\tvar depends : { [ index : string ] : number } = {\n\t\t\t'/mol/3d/glsl': 0,\n\t\t}\n\t\t\n\t\tvar lines = String( source.text() )\n\t\t.replace( /\\/\\*[^]*?\\*\\//g , '' ) // drop block comments\n\t\t.replace( /\\/\\/.*$/gm , '' ) // drop inline comments\n\t\t.split( '\\n' )\n\t\t\n\t\tlines.forEach(\n\t\t\tfunction( line ) {\n\t\t\t\t\n\t\t\t\tvar indent = /^([\\s\\t]*)/.exec( line )!\n\t\t\t\tvar priority = -indent[ 0 ].replace( /\\t/g , ' ' ).length / 4\n\t\t\t\t\n\t\t\t\tline.replace(\n\t\t\t\t\t/([a-z][a-z0-9]+(?:_+[a-z0-9]+)+)/ig , ( str , name )=> {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst path = name.split( /_+/g )\n\t\t\t\t\t\tif( path[0] === 'gl' ) return str\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_build_depsMerge( depends , { [ '/' + path.join( '/' ) ] : priority } )\n\t\t\t\t\t\treturn str\n\t\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}\n\t\t)\n\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'meta.tree' ] = source => {\n\t\tconst depends : { [ index : string ] : number } = {}\n\t\t\n\t\tconst tree = $$.$mol_tree2_from_string( source.text() , source.path() )\t\t\n\t\n\t\ttree.select( 'require' ).kids.forEach( leaf => {\n\t\t\tdepends[ leaf.text() ] = 0\n\t\t} )\n\t\t\n\t\ttree.select( 'include' ).kids.forEach( leaf => {\n\t\t\tdepends[ leaf.text() ] = -999\n\t\t} )\n\t\t\n\t\treturn depends\n\t}\n\t\n\t$mol_build.dependors[ 'view.tree' ] = source => {\n\t\treturn {\n\t\t\t[`/${ source.parent().relate() }/-view.tree/${ source.name() }.js`]: 0,\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\texport type $mol_server_middleware = (\n\t\treq : typeof $node.express.request ,\n\t\tres : typeof $node.express.response ,\n\t\tnext: (error?: unknown) => void\n\t) => void | Promise<void>\n\n\texport class $mol_server extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\texpress() {\n\t\t\tvar express = $node['express']()\n\t\t\t\n\t\t\tthis.expressHandlers().forEach( plugin => express.use( plugin ) )\n\t\t\t\n\t\t\treturn express\n\t\t}\n\n\t\tinternal_ip() {\n\t\t\tconst nets = $node.os.networkInterfaces()\n\t\t\tconst results = Object.create( null )\n\n\t\t\tfor( const name of Object.keys( nets ) ) {\n\t\t\t\tfor( const net of nets[ name ]! ) {\n\t\t\t\t\t// Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses\n\t\t\t\t\t// 'IPv4' is in Node <= 17, from 18 it's a number 4 or 6\n\t\t\t\t\tconst familyV4Value = typeof net.family === 'string' ? 'IPv4' : 4\n\t\t\t\t\tif( net.family === familyV4Value && !net.internal ) {\n\t\t\t\t\t\tif( !results[ name ] ) {\n\t\t\t\t\t\t\tresults[ name ] = []\n\t\t\t\t\t\t}\n\t\t\t\t\t\tresults[ name ].push( net.address )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tconst internal = Object.values( results ).at( -1 ) as string[]\n\t\t\treturn internal?.[0] ?? '0.0.0.0'\n\t\t}\n\n\t\t@ $mol_mem\n\t\thttp() {\n\n\t\t\tconst server = $node.http.createServer( this.express() )\n\n\t\t\tserver.listen( this.port() )\n\t\t\t\n\t\t\tthis.$.$mol_log3_done({\n\t\t\t\tplace: `${ this }.http` ,\n\t\t\t\tmessage: `Started` ,\n\t\t\t\tnetwork: `http://${ this.internal_ip() }:${ this.port() }/`,\n\t\t\t\tloopback: `http://localhost:${ this.port() }/`,\n\t\t\t})\n\n\t\t\treturn server\n\n\t\t}\n\n\t\tconnections = new Set< InstanceType<$node['ws']['WebSocket']> >()\n\n\t\t@ $mol_mem\n\t\tsocket() {\n\n\t\t\tconst socket = new $node.ws.WebSocketServer({\n\t\t\t\tserver : this.http() ,\n\t\t\t\t// perMessageDeflate: {\n\t\t\t\t// \tzlibDeflateOptions: {\n\t\t\t\t// \t\tchunkSize: 1024,\n\t\t\t\t// \t\tmemLevel: 7,\n\t\t\t\t// \t\tlevel: 3\n\t\t\t\t// \t},\n\t\t\t\t// \tzlibInflateOptions: {\n\t\t\t\t// \t\tchunkSize: 10 * 1024\n\t\t\t\t// \t},\n\t\t\t\t// }\n\t\t\t})\n\n\t\t\tsocket.on( 'connection' , line => {\n\n\t\t\t\tthis.connections.add( line )\n\t\t\t\t\n\t\t\t\tline.on( 'message' , ( message: any, isBinary: boolean )=> {\n\n\t\t\t\t\tfor( const other of this.connections ) {\n\t\t\t\t\t\tif( line === other ) continue\n\t\t\t\t\t\tother.send( message, { binary: isBinary } )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t} )\n\n\t\t\t} )\n\n\t\t\treturn socket\n\n\t\t}\n\n\t\texpressHandlers() : readonly $mol_server_middleware[] {\n\t\t\treturn [\n\t\t\t\tthis.expressCors() ,\n\t\t\t\tthis.expressCompressor() ,\n\t\t\t\tthis.expressBodier() ,\n\t\t\t\tthis.expressGenerator() ,\n\t\t\t\tthis.expressIndex() ,\n\t\t\t\tthis.expressFiler() ,\n\t\t\t\tthis.expressDirector() ,\n\t\t\t]\n\t\t}\n\t\t\n\t\texpressCompressor() {\n\t\t\treturn $node['compression']() as $mol_server_middleware\n\t\t}\n\t\t\n\t\texpressCors() {\n\t\t\treturn $node.cors() as $mol_server_middleware\n\t\t}\n\t\t\n\t\texpressBodier() {\n\t\t\treturn $node[ 'body-parser' ].json(\n\t\t\t\t{\n\t\t\t\t\tlimit : this.bodyLimit()\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\t\n\t\texpressFiler() {\n\t\t\treturn $node.express.static(\n\t\t\t\t$node.path.resolve( this.rootPublic() ) ,{\n\t\t\t\t\tmaxAge : this.cacheTime(),\n\t\t\t\t\tdotfiles: 'allow'\n\t\t\t\t}\n\t\t\t)\n\t\t}\n\t\t\n\t\texpressDirector() {\n\t\t\treturn $node['serve-index']( this.rootPublic() , { icons : true } )\n\t\t}\n\n\t\texpressIndex() {\n\t\t\treturn (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t\tnext : () => void\n\t\t\t) => next()\n\t\t}\n\t\t\n\t\texpressGenerator() {\n\t\t\treturn (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t\tnext : () => void\n\t\t\t)=> next()\n\t\t}\n\t\t\n\t\tbodyLimit() {\n\t\t\treturn '1mb'\n\t\t}\n\t\t\n\t\tcacheTime() {\n\t\t\treturn 1000 * 60 * 60 * 24 * 365 * 1000\n\t\t}\n\t\t\n\t\tport() {\n\t\t\treturn 80\n\t\t}\n\t\t\n\t\trootPublic() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst trace_hinted = new WeakSet<Error>()\n\n\texport class $mol_build_server extends $mol_server {\n\t\t\n\t\tstatic trace = false\n\n\t\tsync_middleware(\n\t\t\tmdl: (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t) => void | boolean\n\t\t) {\n\t\t\tconst wrapped = $mol_wire_async(mdl)\n\n\t\t\treturn $mol_func_name_from(async (\n\t\t\t\treq : typeof $node.express.request ,\n\t\t\t\tres : typeof $node.express.response ,\n\t\t\t\tnext : (err?: unknown) => any\n\t\t\t) => {\n\t\t\t\t// const wrapped = $mol_wire_async(mdl)\n\n\t\t\t\ttry {\n\t\t\t\t\tconst stopped = await wrapped(req, res)\n\t\t\t\t\tif (! stopped) Promise.resolve().then(next)\n\t\t\t\t} catch (err) {\n\t\t\t\t\tconst error = err instanceof Error ? err : new Error(String(err), { cause: err })\n\n\t\t\t\t\tif (! this.$.$mol_build_server.trace && ! trace_hinted.has(error)) {\n\t\t\t\t\t\terror.message += '\\n' + 'Set $mol_build_server.trace = true for stacktraces'\n\t\t\t\t\t\ttrace_hinted.add(error)\n\t\t\t\t\t}\n\t\n\t\t\t\t\tres.status(500).send( error.toString() ).end()\n\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.${mdl.name}()`,\n\t\t\t\t\t\turi: req.path,\n\t\t\t\t\t\tstack: this.$.$mol_build_server.trace ? error.stack : undefined,\n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}, mdl)\n\t\t}\n\t\n\t\n\t\texpressGenerator() { return this.sync_middleware(this.handleRequest.bind(this)) }\n\t\t\n\t\thandleRequest(\n\t\t\treq : typeof $node.express.request ,\n\t\t\tres : typeof $node.express.response,\n\t\t) {\n\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\t// if( req.query._escaped_fragment_ ) {\n\t\t\t\t\t\n\t\t\t\t// \tconst fragment = decodeURIComponent( String( req.query._escaped_fragment_ ) )\n\t\t\t\t// \tconst url = req.protocol + '://' + req.get( 'host' ) + req.path + '#!' + fragment\n\t\t\t\t// \tconst html = $mol_browser.html( url )\n\t\t\t\t\t\n\t\t\t\t// \tres.send( html ).end()\n\t\t\t\t// \treturn\n\t\t\t\t// }\n\n\t\t\t\tif (! this.generate( req.url ) ) return false\n\t\t\t\tres.set( 'Cache-Control', 'no-cache, public' )\n\t\t\t} catch( error: any ) {\n\t\t\t\tif ($mol_promise_like(error)) $mol_fail_hidden(error)\n\n\t\t\t\tif (! req.url.match( /\\.js$/ ) ) $mol_fail_hidden(error)\n\n\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\tplace: `${this}.handleRequest()`,\n\t\t\t\t\turi: req.path,\n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\tstack: error.stack,\n\t\t\t\t})\n\n\t\t\t\tconst script = ( error as Error ).message.split( '\\n\\n' ).map( msg => {\n\t\t\t\t\treturn `console.error( ${ JSON.stringify( msg ) } )`\n\t\t\t\t} ).join( '\\n' )\n\t\t\t\t\n\t\t\t\tres.send( script ).end()\n\t\t\t\treturn true\n\t\t\t}\n\t\t}\n\t\t\n\t\tbuild() : $mol_build {\n\t\t\treturn $mol_fail( new Error( 'Not implemented' ) )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tgenerate( url : string ) {\n\t\t\t$mol_wire_solid()\n\t\t\t/*\n\t\t\tЕсли использовать динамически подгружаемые через $mol_script модули\n\t\t\tТо урл тут может быть вида /demo/app/-/node_modules/stockfish/-/stockfish.js\n\t\t\tВ path должна попасть часть до первого /-/\n\t\t\tДинамически подгружаться могут обособленные, редко используемые скрипты.\n\t\t\tНапример шахматы, встроенные в основное приложение.\n\t\t\tУ которых здоровый двиг stockfish.js динамически загружается в воркер\n\t\t\tтолько при открытии шахмат.\n\t\t\t*/\n\t\t\tconst matched = url.match( /^(.*?)\\/-\\/((?:(?:\\w+(?:.\\w+)+)(?:\\/-\\/)?)+)$/ )\n\t\t\tif( !matched ) return null\n\t\t\t\n\t\t\tconst build = this.build()\n\n\t\t\tconst [ , rawpath , bundle ] = matched\n\t\t\tconst mod = build.root().resolve( rawpath )\n\n\t\t\tif( bundle === 'web.css' ) {\n\t\t\t\tthis.$.$mol_log3_warn({\n\t\t\t\t\tplace: `${this}.generate()`,\n\t\t\t\t\tmessage: 'CSS compiles into JS bundle now',\n\t\t\t\t\thint: 'Remove link to web.css',\n\t\t\t\t})\n\t\t\t}\n\t\t\t\n\t\t\tconst path = mod.path()\n\n\t\t\tthis.path_add(path, bundle)\n\n\t\t\treturn build.bundle( [ path , bundle ] )\n\t\t}\n\n\t\toverride expressIndex() { return this.sync_middleware(this.expressIndexRequest.bind(this)) }\n\t\t\n\t\t@ $mol_mem_key\n\t\tprotected ensure(path: string) {\n\t\t\t$mol_wire_solid()\n\t\t\tthis.build().modEnsure( path )\n\t\t}\n\n\t\texpressIndexRequest(\n\t\t\treq : typeof $node.express.request ,\n\t\t\tres : typeof $node.express.response ,\n\t\t) {\n\n\t\t\tconst root = this.$.$mol_file.absolute( this.rootPublic() )\n\t\t\tconst dir = root.resolve( req.path )\n\n\t\t\tconst path = dir.path()\n\n\t\t\t// ensure загружает сорцы, делает git pull, это не стоит делать на build-папках\n\t\t\t// Поэтому регулярка выше отсеивает build-папки\n\t\t\tthis.ensure( path )\n\n\t\t\t// a/b/?c#d, a/b/-/\n\t\t\tconst match = req.url.match( /(\\/|.*[^\\-]\\/)([\\?#].*)?$/ )\n\t\t\tif( !match) return\n\n\t\t\tconst file = root.resolve( `${req.path}index.html` )\n\n\t\t\tif( file.exists() ) {\n\t\t\t\tres.redirect( 301, `${match[1]}-/test.html${match[2] ?? ''}` )\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t\n\t\t\tif( dir.type() !== 'dir' ) return\n\n\t\t\tconst files = [ {name: '-', type: 'dir'} ]\n\n\t\t\tfor( const file of dir.sub() ) {\n\n\t\t\t\tif (!files.find(( {name} ) => name === file.name())) {\n\t\t\t\t\tfiles.push( {name: file.name(), type: file.type()} )\n\t\t\t\t}\n\n\t\t\t\tif( /\\.meta\\.tree$/.test( file.name() ) ) {\n\t\t\t\t\tconst meta = this.$.$mol_tree2_from_string( file.text() )\n\n\t\t\t\t\tfor( const pack of meta.select( 'pack', null ).kids ) {\n\t\t\t\t\t\tif ( files.find(( {name} ) => name === pack.type) ) continue\n\n\t\t\t\t\t\tfiles.push( {name: pack.type, type: 'dir'} )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst html = `\n\t\t\t\t<style>\n\t\t\t\t\tbody {\n\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\tfont: 1rem/1.5rem sans-serif;\n\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\tpadding: 0.75rem;\n\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t}\n\t\t\t\t\ta {\n\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\tcolor: rgb(57, 115, 172);\n\t\t\t\t\t\tfont-weight: bolder;\n\t\t\t\t\t}\n\t\t\t\t\ta:hover {\n\t\t\t\t\t\tbackground: hsl( 0deg, 0%, 0%, .05 )\n\t\t\t\t\t}\n\t\t\t\t\ta[href^=\".\"], a[href^=\"-\"], a[href=\"node_modules\"] {\n\t\t\t\t\t\topacity: 0.5;\n\t\t\t\t\t}\n\t\t\t\t\ta[href=\"..\"], a[href=\"-\"] {\n\t\t\t\t\t\topacity: 1;\n\t\t\t\t\t}\n\t\t\t\t</style>\n\t\t\t\t<link href=\"/_logo.png\" rel=\"icon\" />\n\t\t\t\t<a href=\"..\">📁 ..</a>\n\t\t\t\t` + files\n\t\t\t\t.sort($mol_compare_text((item) => item.type))\n\t\t\t\t.map( file => `<a href=\"${file.name}\">${file.type === 'dir' ? '📁' : '📄'} ${file.name}</a>` )\n\t\t\t\t.join( '\\n' )\n\t\t\t\n\t\t\tres.writeHead( 200, {\n\t\t\t\t'Content-Type': 'text/html',\n\t\t\t\t'Access-Control-Allow-Origin': '*',\n\t\t\t} )\n\t\t\t\n\t\t\tres.end( html )\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tport() {\n\t\t\treturn 9080\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tlines( next = new Map< InstanceType<$node['ws']['WebSocket']>, string >() ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsocket() {\n\t\t\tconst build = this.build()\n\t\t\tconst root = build.root()\n\n\t\t\treturn super.socket().on( 'connection' , ( line , req )=> {\n\t\t\t\t\n\t\t\t\tconst path_relative = req.url!.replace( /\\/-.*/ , '' ).substring( 1 )\n\t\t\t\tconst path = root.resolve( path_relative ).path()\n\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: this ,\n\t\t\t\t\tmessage: `Connect` ,\n\t\t\t\t\tpath ,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t\tthis.lines( new Map( [ ... this.lines(), [ line, path ] ] ) )\n\n\t\t\t\tthis.path_add(path, '')\n\n\t\t\t\tline.on( 'close' , ()=> {\n\t\t\t\t\tthis.path_doubt(path)\n\t\t\t\t\tconst lines = new Map( this.lines() )\n\t\t\t\t\tlines.delete( line )\n\t\t\t\t\tthis.lines( lines )\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}\n\n\t\t@ $mol_mem\n\t\tstart() {\n\t\t\tthis.slave_servers()\n\t\t\tthis.repl()\n\t\t\tconst socket = this.socket()\n\n\t\t\tfor( const [ line, path ] of this.lines() ) {\n\t\t\t\tthis.notify([ line, path ])\n\t\t\t}\n\n\t\t\t// this.bundles_keep()\n\n\t\t\treturn socket\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected bundles_count(reset?: null): number {\n\t\t\treturn 1 + ( $mol_wire_probe(() => this.bundles_count()) ?? 0 )\n\t\t}\n\n\t\t/**\n\t\t * Держать в памяти собранные бандлы плохо, т.к. gc их может долго не утилизировать и node сожрет память и упадет.\n\t\t * Логичнее удалять отложенно, после того как reload-сокет отписался от пути и повторно не подписался.\n\t\t */\n\t\t@ $mol_mem\n\t\tprotected bundles_keep() {\n\t\t\tconst build = this.build()\n\t\t\tthis.bundles_count()\n\t\t\tfor (const [path, bundles] of Object.entries(this.path_bundles)) {\n\t\t\t\tconst sources = build.sourcesAll([ path , [ 'node' ] ])\n\t\t\t\tfor (const source of sources ) source.version()\n\t\t\t\tfor (const bundle of bundles) {\n\t\t\t\t\tconst files = build.bundle([ path, bundle ])\n\t\t\t\t\tfor ( const file of files ) {\n\t\t\t\t\t\tfile.version()\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tprotected path_bundles = {} as Record<string, Set<string>>\n\t\tprotected path_doubted = new Set<string>()\n\n\t\tpath_add(path: string, bundle: string) {\n\t\t\treturn\n\t\t\tthis.path_doubted.delete(path)\n\t\t\tif (! this.path_bundles[path]) this.path_bundles[path] = new Set()\n\t\t\tthis.path_bundles[path].add(bundle)\n\t\t\tthis.bundles_count(null)\n\t\t}\n\n\t\tprotected path_doubt_timeout = null as null | $mol_after_timeout\n\n\t\tpath_doubt(path: string) {\n\t\t\tthis.path_doubted.add(path)\n\n\t\t\tif ( this.path_doubt_timeout) return\n\n\t\t\tthis.path_doubt_timeout = new this.$.$mol_after_timeout(\n\t\t\t\t15000,\n\t\t\t\t() => $mol_wire_async(this).path_doubted_remove()\n\t\t\t)\n\t\t}\n\n\t\tpath_doubted_remove() {\n\t\t\tfor (const path of this.path_doubted) {\n\t\t\t\tdelete this.path_bundles[path]\n\t\t\t}\n\t\t\tthis.path_doubt_timeout = null\n\t\t\tthis.path_doubted.clear()\n\t\t\tthis.bundles_count(null)\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundle_changed_at( path: string ) {\n\t\t\tconst build = this.build()\n\t\t\ttry {\n\t\t\t\n\t\t\t\tconst sources = build.sourcesAll([ path , [ 'node' ] ])\n\n\t\t\t\t/**\n\t\t\t\tБывает надо какой-то внешней программой в watch-режиме компилить js-ки или wasm\n\t\t\t\tи класть как артефакт в - (например, игровой движок на unity)\n\t\t\t\tПри изменении этих файлов, надо перезапускать страницу.\n\t\t\t\tЕсли их класть не в -, а рядом с сорцами, то билдер mol будет пытаться их анализировать и упадет.\n\t\t\t\t */\n\t\t\t\tconst resources = build.bundleFiles([ path , [ 'node' ] ])\n\t\t\t\t\n\t\t\t\tfor( const src of [...sources, ...resources] ) src.version()\n\t\t\t} catch (error) {\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.notify`,\n\t\t\t\t\t\tmessage: (error as Error)?.message,\n\t\t\t\t\t\tpath,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn new Date()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tnotify( [ line, path ]: [ InstanceType<$node['ws']['WebSocket']>, string ] ) {\n\t\t\tthis.bundle_changed_at(path)\n\n\t\t\t// ignore initial\n\t\t\tif( !$mol_mem_cached( ()=> this.notify([ line, path ]) ) ) return true\n\n\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\tplace: `${this}`,\n\t\t\t\tmessage: `$mol_build_obsolete`,\n\t\t\t\tpath\n\t\t\t})\n\t\t\t\t\n\t\t\tline.send( '$mol_build_obsolete' )\n\n\t\t\treturn true\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tslave_commands( next = [] as string[] ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tslave_servers() {\n\t\t\treturn this.slave_commands().map( cmd => this.slave_server( cmd ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tslave_server( cmd: string ) {\n\t\t\t\n\t\t\tconst [ path, ... args ] = cmd.split( ' ' )\n\t\t\tconst command = `node ./${path}/-/node.js ${args.join(' ')}`\n\t\t\t\n\t\t\tconst prev = $mol_wire_probe( ()=> this.slave_server( cmd ) )\n\t\t\tif( prev ) prev.destructor()\n\t\t\t\n\t\t\tconst build = this.build()\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( const file of build.bundle([ path, 'node.js' ]) ) file.version()\n\t\t\t\tfor( const file of build.bundle([ path, 'node.audit.js' ]) ) file.version()\n\t\t\t\tfor( const file of build.bundle([ path, 'node.test.js' ]) ) file.version()\n\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif ($mol_fail_catch(error)) {\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.slave_server`,\n\t\t\t\t\t\tstack: error.stack,\n\t\t\t\t\t\tmessage: error.message ?? error,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\tplace: this,\n\t\t\t\tmessage: 'Start',\n\t\t\t\tcommand ,\n\t\t\t})\n\t\n\t\t\tconst server = $node['child_process'].spawn(\n\t\t\t\t'node',\n\t\t\t\t[ '--enable-source-maps', '--trace-uncaught', `./${path}/-/node.js`, ... args ],\n\t\t\t\t{\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn Object.assign( server, {\n\t\t\t\tdestructor: ()=> {\n\t\t\t\t\tif( server.killed ) return\n\t\t\t\t\tserver.kill()\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\tplace: this,\n\t\t\t\t\t\tmessage: 'Stopped',\n\t\t\t\t\t\tcommand ,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\trepl() {\n\t\t\t\n\t\t\tconst terminal = $node.readline.createInterface({\n\t\t\t\tinput: process.stdin,\n\t\t\t\toutput: process.stdout,\n\t\t\t\thistory: [],\n\t\t\t\ttabSize: 4,\n\t\t\t\tprompt: '',\n\t\t\t})\n\t\t\tterminal.prompt()\n\t\t\t\n\t\t\tconst hint = 'start: + path/to/module args\\nstop: - path/to/module args'\n\t\t\t\n\t\t\tterminal\n\t\t\t.on( 'line', line => {\n\t\t\t\t\n\t\t\t\tif( !line.trim() ) return\n\t\t\t\t\n\t\t\t\tconst [ action, ... params ] = line.split( ' ' )\n\t\t\t\tconst command = params.join(' ')\n\t\t\t\t\n\t\t\t\tswitch( action ) {\n\t\t\t\t\tcase '+': return this.slave_commands([ ... this.slave_commands(), command ])\n\t\t\t\t\tcase '-': return this.slave_commands( this.slave_commands().filter( cmd => cmd !== command ) )\n\t\t\t\t\tcase '?':\n\t\t\t\t\tdefault: return console.log( hint )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})\n\t\t\t.on( 'SIGINT', () => process.exit(0) )\n\t\t\t.on( 'close', () => process.exit(0) )\n\t\t\t\n\t\t\t// this.$.$mol_log3_done({\n\t\t\t// \tplace: this,\n\t\t\t// \tmessage: 'Watch dog started',\n\t\t\t// \thint,\n\t\t\t// })\n\t\n\t\t\treturn terminal\n\t\t}\n\t\t\n\t}\n\n}\n"]}
|