mam 1.11.796 → 1.11.798
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/.nojekyll +0 -0
- package/node.d.ts +5 -19
- package/node.d.ts.map +1 -1
- package/node.deps.json +1 -1
- package/node.js +0 -3
- package/node.js.map +1 -1
- package/node.mjs +0 -3
- package/node.test.js +7 -5
- package/node.test.js.map +1 -1
- package/package.json +1 -2
- package/web.d.ts +1 -15
- package/web.d.ts.map +1 -1
- package/web.deps.json +1 -1
- package/web.js +0 -3
- package/web.js.map +1 -1
- package/web.mjs +0 -3
- package/bin/mam +0 -2
- package/node.esm.js +0 -6614
- package/node.esm.js.map +0 -1
- package/node.locale=en.json +0 -1
- package/node.mjs.map +0 -1
- package/node.view.tree +0 -35
- package/web.esm.js +0 -32
- package/web.esm.js.map +0 -1
- package/web.mjs.map +0 -1
- /package/{readme.md → README.md} +0 -0
package/node.mjs.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["-","../../../mam.ts","../../../mam.jam.js","../../log3/mol/log3/log3.ts","../../ambient/mol/ambient/ambient.ts","../../delegate/mol/delegate/delegate.ts","../../owning/mol/owning/owning.ts","../../fail/mol/fail/fail.ts","../../fail/hidden/mol/fail/hidden/hidden.ts","../../type/writable/writable.ts","../../object2/mol/object2/object2.ts","../../span/mol/span/span.ts","../../tree2/to/string/mol/tree2/to/string/string.ts","../../tree2/mol/tree2/tree2.ts","../../error/syntax/mol/error/syntax/syntax.ts","../../tree2/from/string/mol/tree2/from/string/string.ts","../../tree2/from/json/mol/tree2/from/json/json.ts","../../term/color/mol/term/color/color.ts","../../log3/mol/log3/log3.node.ts","../../wire/cursor/mol/wire/cursor/cursor.ts","../../wire/pub/mol/wire/pub/pub.ts","../../wire/sub/sub.ts","../../wire/mol/wire/wire.ts","../../dev/format/mol/dev/format/format.ts","../../wire/pub/sub/mol/wire/pub/sub/sub.ts","../../after/timeout/mol/after/timeout/timeout.ts","../../after/frame/mol/after/frame/frame.node.ts","../../promise/like/mol/promise/like/like.ts","../../wire/fiber/mol/wire/fiber/fiber.ts","../../compare/deep/mol/compare/deep/deep.ts","../../wire/task/mol/wire/task/task.ts","../../wire/async/mol/wire/async/async.ts","../../object/mol/object/object.ts","../../func/name/mol/func/name/name.ts","../../guid/mol/guid/guid.ts","../../key/mol/key/key.ts","../../wire/method/mol/wire/method/method.ts","../../type/tail/tail.ts","../../type/foot/foot.ts","../../fail/catch/mol/fail/catch/catch.ts","../../fail/log/mol/fail/log/log.ts","../../wire/atom/mol/wire/atom/atom.ts","../../wire/solo/mol/wire/solo/solo.ts","../../wire/plex/mol/wire/plex/plex.ts","../../mem/mol/mem/mem.ts","../../charset/encoding/encoding.ts","../../charset/decode/mol/charset/decode/decode.ts","../../../node/node.ts","../../../node/node/node.node.ts","../../env/mol/env/env.ts","../../env/mol/env/env.node.ts","../../exec/mol/exec/exec.node.ts","../../charset/encode/mol/charset/encode/encode.ts","../../file/mol/file/file.ts","../../const/mol/const/const.ts","../../wire/probe/mol/wire/probe/probe.ts","../../mem/cached/mol/mem/cached/cached.ts","../../compare/array/mol/compare/array/array.ts","../../file/mol/file/file.node.ts","../../tree/mol/tree/tree.ts","../../view/tree2/mol/view/tree2/error.ts","../../view/tree2/mol/view/tree2/child.ts","../../view/tree2/mol/view/tree2/classes.ts","../../view/tree2/mol/view/tree2/context.ts","../../view/tree2/mol/view/tree2/normalize.ts","../../view/tree2/class/mol/view/tree2/class/super.ts","../../view/tree2/class/mol/view/tree2/class/props.ts","../../type/equals/equals.ts","../../type/merge/merge.ts","../../type/intersect/intersect.ts","../../type/override/override.ts","../../unicode/unicode.ts","../../regexp/mol/regexp/regexp.ts","../../view/tree2/prop/mol/view/tree2/prop/split.ts","../../view/tree2/prop/mol/view/tree2/prop/prop.ts","../../view/tree2/prop/mol/view/tree2/prop/quote.ts","../../view/tree2/prop/mol/view/tree2/prop/signature.ts","../../view/tree2/value/mol/view/tree2/value/type.ts","../../view/tree2/value/mol/view/tree2/value/value.ts","../../dom/context/mol/dom/context/context.ts","../../dom/context/mol/dom/context/context.node.ts","../../state/local/mol/state/local/local.ts","../../wire/sync/mol/wire/sync/sync.ts","../../../hyoo/hyoo.ts","../../action/mol/action/action.ts","../../dom/parse/mol/dom/parse/parse.ts","../../fetch/mol/fetch/fetch.ts","../../huggingface/mol/huggingface/huggingface.ts","../../../hyoo/lingua/translate/hyoo/lingua/translate/translate.ts","../../locale/mol/locale/locale.ts","../../tree2/text/to/string/mol/tree2/text/to/string/string.ts","../../view/tree2/bind/mol/view/tree2/bind/both_parts.ts","../../view/tree2/bind/mol/view/tree2/bind/left_parts.ts","../../view/tree2/bind/mol/view/tree2/bind/right_parts.ts","../../view/tree2/ts/bind/mol/view/tree2/ts/bind/both.ts","../../view/tree2/ts/bind/mol/view/tree2/ts/bind/left.ts","../../view/tree2/ts/bind/mol/view/tree2/ts/bind/right.ts","../../view/tree2/ts/mol/view/tree2/ts/class.ts","../../view/tree2/ts/mol/view/tree2/ts/value.ts","../../view/tree2/ts/mol/view/tree2/ts/locale.ts","../../view/tree2/ts/mol/view/tree2/ts/module.ts","../../view/tree2/ts/mol/view/tree2/ts/function.ts","../../view/tree2/ts/mol/view/tree2/ts/spread.ts","../../view/tree2/ts/mol/view/tree2/ts/comment.ts","../../view/tree2/ts/mol/view/tree2/ts/compile.ts","../../view/tree2/ts/mol/view/tree2/ts/dictionary.ts","../../view/tree2/ts/mol/view/tree2/ts/factory.ts","../../graph/mol/graph/graph.ts","../../sourcemap/mol/sourcemap/sourcemap.ts","../../base64/encode/mol/base64/encode/encode.ts","../../base64/encode/mol/base64/encode/encode.node.ts","../../diff/path/mol/diff/path/path.ts","../../error/mix/mol/error/mix/mix.ts","../../view/tree2/ts/array/mol/view/tree2/ts/array/body.ts","../../view/tree2/ts/array/mol/view/tree2/ts/array/array.ts","../../view/tree2/ts/method/mol/view/tree2/ts/method/body.ts","../../view/tree2/ts/method/mol/view/tree2/ts/method/method.ts","../mol/build/build.node.ts","../../server/mol/server/server.node.ts","../../wire/solid/mol/wire/solid/solid.ts","../server/mol/build/server/server.node.ts"],"names":[],"mappings":"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","file":"node.mjs","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\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n",null,"namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having 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\n\texport function $mol_fail( error : any ) : never {\n\t\tthrow error\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_fail_hidden( error : any ) : never {\n\t\tthrow error /// Use 'Never Pause Here' breakpoint in DevTools or simply blackbox this script\n\t}\n\n}\n",null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $\n\t\t\n\t\t[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?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\tif( Symbol.toStringTag in this ) return this[ Symbol.toStringTag ] as string\n\t\t\treturn this.name\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON(): any {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\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 , length )\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(`Begin value '${begin}' out of range ${this}`)\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail(`End value '${end}' out of range ${this}`)\n\t\t\tif (end < begin) this.$.$mol_fail(`End value '${end}' can't be less than begin value ${this}`)\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\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\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.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( 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 sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\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.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\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\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\t\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat( ... this.kids.map( child => {\n\n\t\t\t\tlet handle = belt[ child.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\t\tif( !handle || handle === Object.prototype[ child.type as keyof Object ] ) {\n\t\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\treturn handle( child , belt , context! )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\terror.message += `\\n${ child.clone([]) }${ child.span }`\n\t\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t}\n\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( 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( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\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/** 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\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.pop()\n\t\t\tthis.data.pop()\n\t\t\t\n\t\t\tif( this.data.length === 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 )\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",null,"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\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 let $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport let $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\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\treturn val[ $mol_dev_format_head ]()\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\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : val => val[ $mol_dev_format_body ] ,\n\n\t\tbody : val => val[ $mol_dev_format_body ]() ,\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\tif( typeof obj !== 'object' && typeof obj !== 'function' ) 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\tif( typeof obj === 'object' && $mol_dev_format_head in obj ) {\n\t\t\treturn obj[ $mol_dev_format_head ]()\n\t\t}\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 function $mol_dev_format_span( style : object , ...content : any[] ) {\n\t\treturn $mol_dev_format_element(\n\t\t\t'span' ,\n\t\t\t{\n\t\t\t\t'vertical-align' : '8%',\n\t\t\t\t... style ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t)\n\t}\n\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\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\tthis.data.pop()\n\t\t\t\tthis.data.pop()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.final\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 tail = 0\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\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.data.length - 2, cursor )\n\t\t\t\t\tthis.data.pop()\n\t\t\t\t\tthis.data.pop()\n\t\t\t\t} else {\n\t\t\t\t\t++ tail\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tfor(; tail; -- tail ) {\n\t\t\t\tthis.data.pop()\n\t\t\t\tthis.data.pop()\n\t\t\t}\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 ) {\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}\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 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\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\treturn val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\t\n\tconst handled = new WeakSet< Promise< unknown > >()\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_frame | 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_frame( ()=> {\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\t[Symbol.toStringTag]!: string\n\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()\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\tthis[ Symbol.toStringTag ] = id\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}\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_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( 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\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\t\t\t\t\t\n\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\treturn res\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tresult = Object.assign( result.then( put, put ), {\n\t\t\t\t\t\tdestructor: (result as any)['destructor'] ?? (()=> {})\n\t\t\t\t\t} )\n\t\t\t\t\t\n\t\t\t\t\thandled.add( result )\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 ) && !handled.has( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tresult = Object.assign( result.finally( ()=> {\n\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t} ), {\n\t\t\t\t\t\tdestructor: (result as any)['destructor'] ?? (()=> {})\n\t\t\t\t\t} )\n\t\t\t\t\t\n\t\t\t\t\thandled.add( result )\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\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() {\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 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\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['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), right['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 && 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 >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\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( 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 if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\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\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\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\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.host !== host ) break reuse\n\t\t\t\t\tif( existen.task !== task ) break reuse\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, 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\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\t// if( existen && sub instanceof $mol_wire_task ) {\n\t\t\t\t// \t$mol_fail( new Error( `$mol_wire_task detects nonidempotency\\n${existen}` ) )\n\t\t\t\t// }\n\t\t\t\t\n\t\t\t\treturn new $mol_wire_task( `${ (host as any)?.[ Symbol.toStringTag ] ?? host }.${ task.name }(#)`, task, host, args )\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\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}\n\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 any as (\n\t\t\tHost extends ( ... args: infer Args )=> infer Res\n\t\t\t\t? Res extends Promise<any>\n\t\t\t\t\t? Host\n\t\t\t\t\t: ( ... args: Args )=> Promise< Res >\n\t\t\t\t: {}\n\t\t) & {\n\t\t\t[ key in keyof Host ]: Host[ key ] extends ( ... args: infer Args )=> infer Res\n\t\t\t\t? Res extends Promise<any>\n\t\t\t\t\t? Host[ key ]\n\t\t\t\t\t: ( ... args: Args )=> Promise< Res >\n\t\t\t\t: Host[ key ]\n\t\t}\n\t\t\n\t}\n\t\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< Instance >( this : { new() : Instance } , config : Partial< Instance > ) : Instance {\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 any\n\t\t}\n\t\t\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\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\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\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( !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\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\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",null,null,"namespace $ {\n\n\tconst catched = new WeakMap< any , boolean >()\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.get( error ) ) return false\n\t\t\n\t\tcatched.set( error , true )\n\t\treturn true\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\tconsole.error( error )\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 }.${ field }`\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 id = `${ prefix }.${ task.name }(${ $mol_key( key ) })`\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( id )\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 fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( id, 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 fiber value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\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\tconst prev = this.cache\n\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\tprev.destructor()\n\t\t\t}\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((this as any)[ Symbol.toStringTag ] )\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\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\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",null,"namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: BufferSource,\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",null,"interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\treturn target.require( name )\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) return $mol_fail( res.error || new Error( res.stderr.toString() ) )\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\tconst TextEncoder = globalThis.TextEncoder ?? $node.util.TextEncoder\n\n\tconst encoder = new TextEncoder()\n\n\texport function $mol_charset_encode(value: string) {\n\t\treturn encoder.encode(value)\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_not_found extends Error {}\n\n\texport abstract class $mol_file extends $mol_object {\n\t\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute( path : string ): $mol_file {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\n\t\tstatic relative( path : string ) : $mol_file {\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\tabstract stat( next? : $mol_file_stat | null, virt?: 'virt' ): $mol_file_stat | null\n\n\t\treset(): void {\n\t\t\ttry {\n\t\t\t\tthis.stat( null )\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (error instanceof $mol_file_not_found) return\n\t\t\t\treturn $mol_fail_hidden(error)\n\t\t\t}\n\t\t}\n\t\t\n\t\tversion() {\n\t\t\treturn this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t}\n\n\t\tabstract ensure(): void\n\n\t\twatcher() {\n\t\t\tconsole.warn('$mol_file_web.watcher() not implemented')\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\tlet exists = Boolean( this.stat() )\n\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) this.parent().exists( true )\n\t\t\tthis.ensure()\n\t\t\tthis.reset()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\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\tabstract buffer( next? : Uint8Array ): Uint8Array\n\n\t\t@ $mol_mem\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tconst now = new Date\n\t\t\t\tthis.stat( {\n\t\t\t\t\ttype: 'file',\n\t\t\t\t\tsize: 0,\n\t\t\t\t\tatime: now,\n\t\t\t\t\tmtime: now,\n\t\t\t\t\tctime: now,\t\t\t\n\t\t\t\t}, 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( undefined ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = next === undefined ? undefined : $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\tabstract sub(): $mol_file[]\n\n\t\tabstract resolve(path: string): $mol_file\n\n\t\tabstract relate( base?: $mol_file ): string\n\t\t\n\t\tabstract append( next : Uint8Array | string ): void\n\t\t\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as $mol_file[]\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\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}\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\treturn getter\n\t}\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\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\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\tfunction buffer_normalize(buf: Buffer): Uint8Array {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute( path : string ) {\n\t\t\treturn this.make({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t})\n\t\t}\n\n\t\tstatic relative( path : string ) {\n\t\t\treturn this.absolute( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\twatcher() {\n\n\t\t\tconst watcher = $node.chokidar.watch( this.path() , {\n\t\t\t\tpersistent : true ,\n\t\t\t\tignored : /(^\\.|___$)/ ,\n\t\t\t\tdepth : 0 ,\n\t\t\t\tignoreInitial : true ,\n\t\t\t\tawaitWriteFinish: {\n\t\t\t\t\tstabilityThreshold: 100,\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\twatcher\n\t\t\t.on( 'all' , ( type , path )=> {\n\t\t\t\t\n\t\t\t\tconst file = $mol_file.relative( path.replace( /\\\\/g , '/' ) )\n\n\t\t\t\tfile.reset()\n\t\t\t\t\n\t\t\t\tif( type === 'change' ) {\n\t\t\t\t\tthis.stat( null )\n\t\t\t\t} else {\n\t\t\t\t\tfile.parent().reset()\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t.on( 'error' , $mol_fail_log )\n\t\t\t\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstat( next? : $mol_file_stat | null, virt?: 'virt' ) {\n\t\t\t\n\t\t\tlet stat = next\n\t\t\tconst path = this.path()\n\n\t\t\tthis.parent().watcher()\n\t\t\t\n\t\t\tif( virt ) return next!\n\t\t\t\n\t\t\ttry {\n\t\t\t\tstat = next ?? stat_convert($node.fs.statSync( path, { throwIfNoEntry: false } ))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (error.code === 'ENOENT') error = new $mol_file_not_found(`File not found`)\n\t\t\t\terror.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(error)\n\t\t\t}\n\n\t\t\treturn stat\n\t\t}\n\n\t\t@ $mol_mem\n\t\tensure() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array ) {\n\n\t\t\tconst path = this.path()\n\t\t\tif( next === undefined ) {\n\n\t\t\t\tif( !this.stat() ) return new Uint8Array\n\t\t\t\t\n\t\t\t\ttry {\n\n\t\t\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\t\t\t\n\t\t\t\t\tnext = buffer_normalize( $node.fs.readFileSync( path ) )\n\n\t\t\t\t\tif( prev !== undefined && !$mol_compare_array( prev, next ) ) {\n\t\t\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\t\t\tplace: `$mol_file_node..buffer()`,\n\t\t\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\n\t\t\t\t\treturn next\n\n\t\t\t\t} catch( error: any ) {\n\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\t\n\t\t\tconst now = new Date\n\t\t\tthis.stat( {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize: next.length,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t}, 'virt' )\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, next )\n\n\t\t\t} catch( error: any ) {\n\n\t\t\t\terror.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\n\t\t}\n\t\t@ $mol_mem\n\t\tsub() : $mol_file[] {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $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\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\tresolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file ).relative( $node.path.join( this.path() , path ) )\n\t\t}\n\t\t\n\t\trelate( 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\t\t\n\t\tappend( next : Uint8Array | string ) {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.appendFileSync( path , next )\n\t\t\t} catch( e: any ) {\n\t\t\t\te.message += '\\n' + path\n\t\t\t\treturn this.$.$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\t\t\n\t}\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\n\texport const $mol_tree_convert : unique symbol = Symbol( '$mol_tree_convert' )\n\texport type $mol_tree_path = Array< string | number | null >\n\n\texport type $mol_tree_hack = ( input : $mol_tree , context : $mol_tree_context )=> readonly $mol_tree[]\n\texport type $mol_tree_context = Record< string , $mol_tree_hack >\n\texport type $mol_tree_library = Record< string , $mol_tree_context >\n\t\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree extends $mol_object2 {\n\t\t\n\t\treadonly type : string\n\t\treadonly data : string\n\t\treadonly sub : readonly $mol_tree[]\n\t\treadonly baseUri : string\n\t\treadonly row : number\n\t\treadonly col : number\n\t\treadonly length : number\n\t\t\n\t\tconstructor( config : Partial<$mol_tree> = {} ) {\n\n\t\t\tsuper()\n\n\t\t\tthis.type = config.type || ''\n\t\t\t\n\t\t\tif( config.value !== undefined ) {\n\n\t\t\t\tvar sub = $mol_tree.values( config.value )\n\t\t\t\t\n\t\t\t\tif( config.type || sub.length > 1 ) {\n\n\t\t\t\t\tthis.sub = [ ... sub , ...( config.sub || [] ) ]\n\t\t\t\t\tthis.data = config.data || ''\n\n\t\t\t\t} else {\n\n\t\t\t\t\tthis.data = sub[ 0 ].data\n\t\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tthis.data = config.data || ''\n\t\t\t\tthis.sub = config.sub || []\n\n\t\t\t}\n\t\t\t\n\t\t\tthis.baseUri = config.baseUri || ''\n\t\t\tthis.row = config.row || 0\n\t\t\tthis.col = config.col || 0\n\t\t\tthis.length = config.length || 0\n\n\t\t}\n\t\t\n\t\tstatic values( str : string , baseUri? : string ) {\n\n\t\t\treturn str.split( '\\n' ).map( ( data , index ) => new $mol_tree( {\n\t\t\t\tdata : data ,\n\t\t\t\tbaseUri : baseUri ,\n\t\t\t\trow : index + 1 ,\n\t\t\t\tlength : data.length ,\n\t\t\t} ) )\n\n\t\t}\n\t\t\n\t\t/** Cloning node with overrides. */\n\t\tclone( config : Partial<$mol_tree> = {} ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\ttype : ( 'type' in config ) ? config.type : this.type ,\n\t\t\t\tdata : ( 'data' in config ) ? config.data : this.data ,\n\t\t\t\tsub : ( 'sub' in config ) ? config.sub : this.sub ,\n\t\t\t\tbaseUri : ( 'baseUri' in config ) ? config.baseUri : this.baseUri ,\n\t\t\t\trow : ( 'row' in config ) ? config.row : this.row ,\n\t\t\t\tcol : ( 'col' in config ) ? config.col : this.col ,\n\t\t\t\tlength : ( 'length' in config ) ? config.length : this.length ,\n\t\t\t\tvalue : config.value\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived node. */\n\t\tmake( config : Partial<$mol_tree> ) {\n\n\t\t\treturn new $mol_tree({\n\t\t\t\tbaseUri : this.baseUri ,\n\t\t\t\trow : this.row ,\n\t\t\t\tcol : this.col ,\n\t\t\t\tlength : this.length ,\n\t\t\t\t... config ,\n\t\t\t})\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tmake_data( value : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ value , sub })\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tmake_struct( type : string , sub? : readonly $mol_tree[] ) {\n\t\t\treturn this.make({ type , sub })\n\t\t}\n\t\t\n\t\t/** Parses tree format to AST. */\n\t\tstatic fromString( str : string , baseUri? : string ) {\n\t\t\t\n\t\t\tvar root = new $mol_tree( { baseUri : baseUri } )\n\t\t\tvar stack = [ root ]\n\t\t\t\n\t\t\tvar row = 0\n\t\t\tvar prefix = str.replace( /^\\n?(\\t*)[\\s\\S]*/ , '$1' )\n\t\t\tvar lines = str.replace( new RegExp( '^\\\\t{0,' + prefix.length + '}' , 'mg' ) , '' ).split( '\\n' )\n\n\t\t\tlines.forEach( line => {\n\n\t\t\t\t++row\n\t\t\t\t\n\t\t\t\tvar chunks = /^(\\t*)((?:[^\\n\\t\\\\ ]+ *)*)(\\\\[^\\n]*)?(.*?)(?:$|\\n)/m.exec( line )\n\t\t\t\tif( !chunks || chunks[4] ) return this.$.$mol_fail( new Error( `Syntax error at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tvar indent = chunks[ 1 ]\n\t\t\t\tvar path = chunks[ 2 ]\n\t\t\t\tvar data = chunks[ 3 ]\n\t\t\t\t\n\t\t\t\tvar deep = indent.length\n\t\t\t\tvar types = path ? path.replace( / $/ , '' ).split( / +/ ) : []\n\t\t\t\t\n\t\t\t\tif( stack.length <= deep ) return this.$.$mol_fail( new Error( `Too many tabs at ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\n\t\t\t\tstack.length = deep + 1\n\t\t\t\tvar parent = stack[ deep ];\n\t\t\t\t\n\t\t\t\tlet col = deep\n\t\t\t\ttypes.forEach( type => {\n\t\t\t\t\tif( !type ) return this.$.$mol_fail( new Error( `Unexpected space symbol ${baseUri}:${row}\\n${line}` ) )\n\t\t\t\t\tvar next = new $mol_tree({ type , baseUri , row , col , length : type.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\t\n\t\t\t\t\tparent = next\n\t\t\t\t\tcol += type.length + 1\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( data ) {\n\t\t\t\t\tvar next = new $mol_tree({ data : data.substring( 1 ) , baseUri , row , col , length : data.length })\n\t\t\t\t\tconst parent_sub = parent.sub as $mol_tree[]\n\t\t\t\t\tparent_sub.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstack.push( parent )\n\t\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn root\n\t\t}\n\t\t\n\t\t/**\n\t\t * Parses json.tree lang to AST.\n\t\t * @todo Move to $mol_tree_json_from\n\t\t */\n\t\tstatic fromJSON( json : any , baseUri = '' ) : $mol_tree {\n\n\t\t\tswitch( true ) {\n\n\t\t\t\tcase typeof json === 'boolean' :\n\t\t\t\tcase typeof json === 'number' :\n\t\t\t\tcase json === null :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : String( json ) ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tcase typeof json === 'string' :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\n\t\t\t\tcase Array.isArray( json ) :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"/\" ,\n\t\t\t\t\t\tsub : ( json as any[] ).map( json => $mol_tree.fromJSON( json , baseUri ) )\n\t\t\t\t\t})\n\n\t\t\t\tcase json instanceof Date :\n\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\tvalue : json.toISOString() ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t\tdefault :\n\n\t\t\t\t\tif( typeof json[ $mol_tree_convert ] === 'function' ) {\n\t\t\t\t\t\treturn json[ $mol_tree_convert ]()\n\t\t\t\t\t}\n\n\t\t\t\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\t\t\t\treturn $mol_tree.fromJSON( json.toJSON() )\n\t\t\t\t\t}\n\n\t\t\t\t\tif( json instanceof Error ) {\n\t\t\t\t\t\tconst { name , message , stack } = json\n\t\t\t\t\t\tjson = { ... json , name , message , stack }\n\t\t\t\t\t}\n\n\t\t\t\t\tvar sub : $mol_tree[] = []\n\t\t\t\t\t\n\t\t\t\t\tfor( var key in json ) {\n\n\t\t\t\t\t\tif( json[ key ] === undefined ) continue\n\n\t\t\t\t\t\tconst subsub = $mol_tree.fromJSON( json[ key ] , baseUri )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\ttype : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tvar child = new $mol_tree({\n\t\t\t\t\t\t\t\tvalue : key ,\n\t\t\t\t\t\t\t\tbaseUri : baseUri ,\n\t\t\t\t\t\t\t\tsub : [ subsub ] ,\n\t\t\t\t\t\t\t} )\n\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tsub.push( child )\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn new $mol_tree({\n\t\t\t\t\t\ttype : \"*\" ,\n\t\t\t\t\t\tsub : sub ,\n\t\t\t\t\t\tbaseUri : baseUri\n\t\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tget uri() {\n\t\t\treturn this.baseUri + '#' + this.row + ':' + this.col\n\t\t}\n\t\t\n\t\t/** Serializas to tree format. */\n\t\ttoString( prefix = '' ) : string {\n\t\t\tvar output = ''\n\t\t\t\n\t\t\tif( this.type.length ) {\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\t\t\t\toutput += this.type\n\t\t\t\tif( this.sub.length == 1 ) {\n\t\t\t\t\treturn output + ' ' + this.sub[ 0 ].toString( prefix )\n\t\t\t\t}\n\t\t\t\toutput += \"\\n\"\n\t\t\t} else if( this.data.length || prefix.length ) {\n\t\t\t\toutput += \"\\\\\" + this.data + \"\\n\"\n\t\t\t}\n\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\toutput += prefix\n\t\t\t\toutput += child.toString( prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t\treturn output\n\t\t}\n\t\t\n\t\t/**\n\t\t * Serializes AST to json.tree lang.\n\t\t * @todo Move to $mol_tree_json_to\n\t\t */\n\t\ttoJSON() : any {\n\t\t\tif( !this.type ) return this.value\n\t\t\t\n\t\t\tif( this.type === 'true' ) return true\n\t\t\tif( this.type === 'false' ) return false\n\t\t\tif( this.type === 'null' ) return null\n\t\t\t\n\t\t\tif( this.type === '*' ) {\n\t\t\t\tvar obj = {}\n\t\t\t\tfor( var child of this.sub ) {\n\t\t\t\t\tif( child.type === '-' ) continue\n\t\t\t\t\tvar key = child.type || child.clone({ sub : child.sub.slice( 0 , child.sub.length - 1 ) }).value\n\t\t\t\t\tvar val = child.sub[ child.sub.length - 1 ].toJSON()\n\t\t\t\t\tif( val !== undefined ) ( obj as any )[ key ] = val\n\t\t\t\t}\n\t\t\t\treturn obj\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === '/' ) {\n\t\t\t\tvar res : any[] = []\n\t\t\t\tthis.sub.forEach(\n\t\t\t\t\tchild => {\n\t\t\t\t\t\tif( child.type === '-' ) return\n\t\t\t\t\t\tvar val = child.toJSON()\n\t\t\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tif( this.type === 'time' ) {\n\t\t\t\treturn new Date( this.value )\n\t\t\t}\n\t\t\t\n\t\t\tconst numb = Number( this.type ) \n\t\t\tif( !Number.isNaN( numb ) || this.type === 'NaN' ) return numb\n\t\t\t\n\t\t\tthrow new Error( `Unknown type (${this.type}) at ${this.uri}` )\n\t\t}\n\t\t\n\t\tget value() {\n\t\t\tvar values : string[] = []\n\t\t\tfor( var child of this.sub ) {\n\t\t\t\tif( child.type ) continue\n\t\t\t\tvalues.push( child.value )\n\t\t\t}\n\t\t\treturn this.data + values.join( \"\\n\" )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree , ...path : $mol_tree_path ) : $mol_tree {\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.sub.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t\tif( !replaced ) sub.push( new $mol_tree({ type }).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || new $mol_tree ).insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub })\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\treturn this.clone({ sub : ( ( this.sub.length === 0 ) ? [ new $mol_tree() ] : this.sub ).map( item => item.insert( value , ... path.slice( 1 ) ) ) })\n\n\t\t\t}\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree_path ) {\n\t\t\tvar next = [ this as $mol_tree ]\n\t\t\tfor( var type of path ) {\n\t\t\t\tif( !next.length ) break\n\t\t\t\tvar prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\t\t\t\t\t\t\tfor( var child of item.sub ) {\n\t\t\t\t\t\t\t\tif( !type || ( child.type == type ) ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\t\t\t\t\t\t\tif( type < item.sub.length ) next.push( item.sub[ type ] )\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.sub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn new $mol_tree( { sub : next } )\n\t\t}\n\t\t\n\t\t/** Filter subnodes by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\t\t\tvar sub = this.sub.filter(\n\t\t\t\tfunction( item ) {\n\t\t\t\t\t\n\t\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\t\n\t\t\t\t\tif( value == null ) {\n\t\t\t\t\t\treturn Boolean( found.sub.length )\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn found.sub.some( child => child.value == value )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn new $mol_tree( { sub : sub } )\n\t\t}\n\n\t\t/** @deprecated Use $mol_tree:hack */\n\t\ttransform( visit : ( stack : $mol_tree[] , sub : ()=> $mol_tree[] )=> $mol_tree | null , stack : $mol_tree[] = [] ) : $mol_tree | null {\n\t\t\tconst sub_stack = [ this , ...stack ]\n\t\t\treturn visit( sub_stack , ()=> this.sub.map( node => node.transform( visit , sub_stack ) ).filter( n => n ) as $mol_tree[] )\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack( context : $mol_tree_context ) : $mol_tree {\n\t\t\t\n\t\t\tconst sub = ( [] as $mol_tree[] ).concat( ... this.sub.map( child => {\n\n\t\t\t\tconst handle = context[ child.type ] || context[ '' ]\n\t\t\t\tif( !handle ) $mol_fail( child.error( 'Handler not defined' ) )\n\t\t\t\t\n\t\t\t\treturn handle( child , context )\n\n\t\t\t} ) )\n\n\t\t\treturn this.clone({ sub })\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string ) {\n\t\t\treturn new Error( `${message}:\\n${ this } ${this.baseUri}:${this.row}:${this.col}` )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\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\texport type $mol_view_tree2_locales = Record<string, string>\n\n\texport class $mol_view_tree2_context extends $mol_object2 {\n\t\tconstructor(\n\t\t\t$: $,\n\t\t\tprotected parents: readonly $mol_view_tree2_prop[],\n\t\t\tprotected locales: $mol_view_tree2_locales,\n\t\t\tprotected methods: $mol_tree2[],\n\t\t\treadonly types = true,\n\t\t\tprotected added_nodes = new Map<string, $mol_view_tree2_prop>(),\n\t\t\tprotected array?: $mol_tree2,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.$ = $\n\t\t}\n\n\t\tprotected clone(prefixes: readonly $mol_view_tree2_prop[], array?: $mol_tree2) {\n\t\t\treturn new this.$.$mol_view_tree2_context(\n\t\t\t\tthis.$,\n\t\t\t\tprefixes,\n\t\t\t\tthis.locales,\n\t\t\t\tthis.methods,\n\t\t\t\tthis.types,\n\t\t\t\tthis.added_nodes,\n\t\t\t\tarray\n\t\t\t)\n\t\t}\n\n\t\tparent(prefix: $mol_view_tree2_prop) {\n\t\t\tconst parents = this.parents.slice()\n\t\t\tparents.push(prefix)\n\n\t\t\treturn this.clone(parents, this.array)\n\t\t}\n\n\t\troot() {\n\t\t\treturn this.clone(this.parents.slice(0, 1))\n\t\t}\n\n\t\tlocale_disable(array: $mol_tree2) {\n\t\t\tif (this.array) return this\n\n\t\t\treturn this.clone(this.parents, array)\n\t\t}\n\n\t\tget_method({ name, src, key, next }: $mol_view_tree2_prop) {\n\t\t\tconst prev = this.added_nodes.get(name.value)\n\t\t\tif (! prev) return\n\n\t\t\tif ((prev.key && !key) || (!prev.key && key) || (prev.next && !next) || (!prev.next && next)) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Method ${src.type} at ${src.span} is not same as ${prev.src.type} at ${prev.src.span}`\n\t\t\t)\n\n\t\t\tconst current_default = src.kids.length > 0 ? src.kids[0] : undefined\n\t\t\tconst prev_default = prev.src.kids.length > 0 ? prev.src.kids[0] : undefined\n\n\t\t\tif ( prev_default?.toString() !== current_default?.toString() ) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Method ${name.value} at ${\n\t\t\t\t\tcurrent_default?.span ?? name.span\n\t\t\t\t} already defined with another default value at ${prev_default?.span ?? prev.name.span}`\n\t\t\t)\n\n\t\t\treturn prev\n\t\t}\n\n\t\tcheck_scope_vars({name, key, next}: $mol_view_tree2_prop) {\n\t\t\tlet finded_key: $mol_tree2 | undefined\n\t\t\tlet finded_next: $mol_tree2 | undefined\n\n\t\t\tconst parents = this.parents\n\t\t\tfor (let i = 1 ; i < parents.length; i++) {\n\t\t\t\tconst parent = parents[i]\n\t\t\t\tif (next && parent.next) finded_next = parent.next\n\t\t\t}\n\n\t\t\tif (next && ! finded_next) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Next ${next.value} at ${next.span} not found at ${this.parents.map(parent => parent.src.span)}`\n\t\t\t)\n\n\t\t\tconst first_method = parents.length > 1 ? parents[1] : undefined\n\n\t\t\tif (name.value === first_method?.name.value) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Method ${name.value} at ${name.span} already defined at ${first_method.name.span}`\n\t\t\t)\n\t\t}\n\n\t\tindex(owner: $mol_view_tree2_prop) {\n\t\t\tthis.added_nodes.set(owner.name.value, owner)\n\n\t\t\tconst index = this.methods.length\n\n\t\t\treturn index\n\t\t}\n\n\t\tmethod(index: number, method: $mol_tree2[]) {\n\t\t\tthis.methods.push( ... method )\n\t\t}\n\n\t\tprotected locale_nodes = new Map<string, $mol_tree2>()\n\n\t\tlocale(operator: $mol_tree2) {\n\t\t\tconst parents = this.parents\n\t\t\tconst val = operator.kids.length === 1 ? operator.kids[0] : undefined\n\n\t\t\tif (! val) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Need a one child at ${operator.span}, use \\`some @ \\\\localized value\\``\n\t\t\t)\n\n\t\t\tif (this.array) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Can\\'t use \\`@\\` at ${operator.span} inside array at ${this.array.span}`\n\t\t\t)\n\n\t\t\tlet key = ''\n\n\t\t\tconst body: $mol_tree2[] = []\n\n\t\t\tconst last = parents.length > 0 ? parents[parents.length - 1] : undefined\n\n\t\t\tfor (const parent of parents) {\n\t\t\t\tbody.push(parent.name)\n\t\t\t\tkey += parent.name.value\n\t\t\t\tif (parent === last) break\n\t\t\t\tbody.push(parent.name.data('_'))\n\t\t\t\tkey += '_'\n\t\t\t}\n\n\t\t\tconst prev = this.locale_nodes.get(key)\n\n\t\t\tif (prev) return this.$.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Locale key \\`${key}\\` at ${operator.span} conflicts with same at ${prev.span}`\n\t\t\t)\n\n\t\t\tthis.locale_nodes.set(key, val)\n\n\t\t\tthis.locales[key] = val.text()\n\n\t\t\treturn operator.struct('line', body)\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","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( !class_regex.test( klass.type ) ) 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( !class_regex.test( superclass.type ) ) 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\tconst class_regex = /^[$A-Z]\\w+$/\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\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 $mol_tree2[]\n\n\t\tconst props_root = props.hack({\n\n\t\t\t'<=': ( operator, belt )=> {\n\t\t\t\t\n\t\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\t\t\n\t\t\t\tconst defs = prop.hack( belt )\n\t\t\t\tif( defs.length ) props_inner.push( prop.clone( defs ) )\n\t\t\t\t\n\t\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t\t},\n\t\t\t\n\t\t\t'<=>': ( operator, belt )=> {\n\t\t\t\t\n\t\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\t\t\n\t\t\t\tconst defs = prop.hack( belt )\n\t\t\t\tif( defs.length ) props_inner.push( prop.clone( defs ) )\n\t\t\t\t\n\t\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t\t},\n\n\t\t})\n\n\t\treturn [ ... props_root , ... props_inner ]\n\t}\n\n}\n",null,null,null,null,null,"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): IterableIterator< 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 err = $mol_view_tree2_error_str\n\n\t/*\n\t * Extract property parts: page!index?next\n\t */\n\texport function $mol_view_tree2_prop_split(this: $, src: $mol_tree2) {\n\t\tconst prop_name = src.type\n\n\t\tlet key_pos = prop_name.indexOf('*')\n\t\tlet next_pos = prop_name.indexOf('?')\n\t\tlet next_pos_orig = next_pos\n\t\tif (next_pos === -1) next_pos = prop_name.length\n\t\tconst name_end = (key_pos === -1) ? next_pos : key_pos\n\n\t\tif (key_pos > next_pos) return this.$mol_fail(\n\t\t\terr`Index argument must be before next argument at ${src.span}, use ${example1}`\n\t\t)\n\n\t\tconst name = prop_name.substring(0, name_end)\n\t\tconst key = key_pos < 0 ? '' : prop_name.substring(key_pos + 1, next_pos)\n\t\tconst next = prop_name.substring(next_pos + 1)\n\n\t\tif (\n\t\t\t(key && ! regular_regex.test(key))\n\t\t\t|| (next && ! regular_regex.test(next))\n\t\t) return this.$mol_fail(\n\t\t\terr`Only regular chars and digits allowed ${key} ${next} at ${src.span}, use ${example2}`\n\t\t)\n\n\t\treturn {\n\t\t\tsrc,\n\t\t\tname: $mol_tree2.data(name, [], src.span.slice(0, name.length)),\n\t\t\tkey: key_pos >= 0 ? $mol_tree2.data(key?JSON.stringify(key):'id', [], src.span.slice(key_pos, key_pos + key.length)) : undefined,\n\t\t\tnext: next_pos_orig >= 0 ? $mol_tree2.data(next||'next', [], src.span.slice(next_pos, next_pos + next.length)) : undefined\n\t\t}\n\t}\n\n\tconst regular_regex = /^\\w+$/\n\n\tconst example1 = new $mol_view_tree2_error_suggestions([\n\t\t'having!key?next <= owner!key?next'\n\t])\n\n\tconst example2 = new $mol_view_tree2_error_suggestions([\n\t\t'having#',\n\t\t'having#key',\n\t\t'having#key?next',\n\t\t'having',\n\t])\n}\n","namespace $ {\n\texport type $mol_view_tree2_prop = ReturnType<typeof $mol_view_tree2_prop_split>\n\n\texport function $mol_view_tree2_prop_name(this: $, prop : $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_split(prop).name.value\n\t}\n\t\n\texport function $mol_view_tree2_prop_key( this: $, prop : $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_split(prop).key?.value\n\t}\n\t\n\texport function $mol_view_tree2_prop_next( this: $, prop : $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_split(prop).next?.value\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\t\n\tconst { begin, end, latin_only: letter, 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( letter, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( letter, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( letter, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\t\n\texport function $mol_view_tree2_value_type( this: $, val : $mol_tree2 ) {\n\t\tswitch( val.type ) {\n\t\t\tcase 'true' : return 'bool'\n\t\t\tcase 'false' : return 'bool'\n\t\t\tcase 'null' : return 'null'\n\t\t\tcase '*' : return 'dict'\n\t\t\tcase '@' : return 'locale'\n\t\t\tcase '' : return 'string'\n\t\t\tcase '<=' : return 'get'\n\t\t\tcase '<=>' : return 'bind'\n\t\t\tcase '=>' : return 'put'\n\t\t}\n\n\t\tconst first_char = val.type && val.type[0]\n\n\t\tif (first_char === '/') return 'list'\n\t\tif( Number( val.type ).toString() == val.type ) return 'number'\n\t\tif (/^[$A-Z]/.test( first_char )) return 'object'\n \n\t\treturn this.$mol_fail(\n\t\t\terr`Unknown value type ${val.type} at ${val.span}`\n\t\t)\n\t}\t\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_value(\n\t\tthis: $,\n\t\tvalue: $mol_tree2,\n\t) {\n\t\tconst type = value.type\n\t\tconst kids = value.kids\n\n\t\tif (type === '') {\n\t\t\tif (kids.length === 0) return value.data(JSON.stringify(value.value))\n\n\t\t\treturn value.data(JSON.stringify(kids.map(node => node.value).join('\\n')))\n\t\t}\n\n\t\tif (kids.length !== 0) return this.$mol_fail(\n\t\t\terr`Kids are not allowed at ${value.span}, use ${example}`\n\t\t)\n\n\t\tif (type === 'false' || type === 'true') return value.data(type)\n\n\t\tif (type === 'null') return value.data(type)\n\n\t\tif (Number(type).toString() === type.replace(/^\\+/, '')) return value.data(type)\n\n\t\treturn this.$mol_fail(\n\t\t\terr`Value ${value.toString()} not allowed at ${value.span}, use ${example}`\n\t\t)\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'false',\n\t\t'true',\n\t\t'123',\n\t\t'null',\n\t\t'\\\\some'\n\t])\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\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 ) this.native().removeItem( key )\n\t\t\telse this.native().setItem( key , JSON.stringify( next ) )\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\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\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\tconst temp = $mol_wire_task.getter( val )\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: any[] ) {\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\t\n\t\t\t},\n\t\t\t\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\tconst fiber = temp( self, args )\n\t\t\t\treturn fiber.sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as any as (\n\t\t\tHost extends ( ... args: infer Args )=> infer Res\n\t\t\t\t? Res extends Promise< infer Res2 >\n\t\t\t\t\t? ( ... args: Args )=> Res2\n\t\t\t\t\t: Host\n\t\t\t\t: {}\n\t\t) & {\n\t\t\t[ key in keyof Host ]: Host[ key ] extends ( ... args: infer Args )=> Promise< infer Res >\n\t\t\t\t? ( ... args: Args )=> Res\n\t\t\t\t: Host[ key ]\n\t\t}\n\t}\n\n}\n",null,"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\n\texport function $mol_dom_parse(\n\t\ttext : string ,\n\t\ttype : DOMParserSupportedType = 'application/xhtml+xml' ,\n\t) {\n\n\t\tconst parser = new $mol_dom_context.DOMParser()\n\t\tconst doc = parser.parseFromString( text , type )\n\t\t\n\t\tconst error = doc.getElementsByTagName( 'parsererror' )\n\t\tif( error.length ) throw new Error( error[0].textContent! )\n\n\t\treturn doc\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_fetch_response extends $mol_object2 {\n\n\t\tconstructor( readonly native : Response ) {\n\t\t\tsuper()\n\t\t}\n\n\t\tstatus() {\n\t\t\tconst types = [ 'unknown', 'inform', 'success', 'redirect', 'wrong', 'failed' ] as const\n\t\t\treturn types[ Math.floor( this.native.status / 100 ) ]\n\t\t}\n\t\t\n\t\tcode() {\n\t\t\treturn this.native.status\n\t\t}\n\t\t\n\t\tmessage() {\n\t\t\treturn this.native.statusText || `HTTP Error ${ this.code() }`\n\t\t}\n\n\t\theaders() {\n\t\t\treturn this.native.headers\n\t\t}\n\n\t\tmime() {\n\t\t\treturn this.headers().get( 'content-type' )\n\t\t}\n\n\t\t@ $mol_action\n\t\tstream() {\n\t\t\treturn this.native.body\n\t\t}\n\n\t\t@ $mol_action\n\t\ttext() {\n\n\t\t\tconst buffer = this.buffer()\n\n\t\t\tconst native = this.native\n\t\t\tconst mime = native.headers.get( 'content-type' ) || ''\n\t\t\tconst [,charset] = /charset=(.*)/.exec( mime ) || [, 'utf-8']\n\t\t\t\n\t\t\tconst decoder = new TextDecoder( charset )\n\t\t\treturn decoder.decode( buffer )\n\n\t\t}\t\n\n\t\tjson() {\n\t\t\treturn $mol_wire_sync( this.native ).json() as unknown\n\t\t}\t\n\n\t\t@ $mol_action\n\t\tbuffer() {\n\t\t\treturn $mol_wire_sync( this.native ).arrayBuffer()\n\t\t}\n\n\t\t@ $mol_action\n\t\txml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'application/xml' )\n\t\t}\n\n\t\t@ $mol_action\n\t\txhtml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'application/xhtml+xml' )\n\t\t}\n\n\t\t@ $mol_action\n\t\thtml() {\n\t\t\treturn $mol_dom_parse( this.text() , 'text/html' )\n\t\t}\n\n\t}\n\n\texport class $mol_fetch extends $mol_object2 {\n\t\t\n\t\tstatic request( input : RequestInfo , init : RequestInit = {} ) {\n\t\t\tconst native = globalThis.fetch ?? $node['undici'].fetch\n\t\t\t\n\t\t\tconst controller = new AbortController()\n\t\t\tlet done = false\n\t\t\t\n\t\t\tconst promise = native( input , {\n\t\t\t\t... init,\n\t\t\t\tsignal: controller!.signal,\n\t\t\t} ).finally( ()=> {\n\t\t\t\tdone = true\n\t\t\t} )\n\t\t\t\n\t\t\treturn Object.assign( promise, {\n\t\t\t\tdestructor: ()=> {\n\t\t\t\t\t// Abort of done request breaks response parsing\n\t\t\t\t\tif( !done && !controller.signal.aborted ) controller.abort()\n\t\t\t\t},\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic response( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn new $mol_fetch_response( $mol_wire_sync( this ).request( input , init ) )\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic success( input: RequestInfo, init?: RequestInit ) {\n\n\t\t\tconst response = this.response( input , init )\n\t\t\tif( response.status() === 'success' ) return response\n\t\t\t\n\t\t\tthrow new Error( response.message() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic stream( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).stream()\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic text( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).text()\n\t\t}\t\n\n\t\t@ $mol_action\n\t\tstatic json( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).json()\n\t\t}\t\n\n\t\t@ $mol_action\n\t\tstatic buffer( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).buffer()\n\t\t}\t\n\n\t\t@ $mol_action\n\t\tstatic xml( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).xml()\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic xhtml( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).xhtml()\n\t\t}\n\n\t\t@ $mol_action\n\t\tstatic html( input: RequestInfo, init?: RequestInit ) {\n\t\t\treturn this.success( input , init ).html()\n\t\t}\n\n\t}\n\n}\n\n","namespace $ {\n\t\n\texport function $mol_huggingface_run(\n\t\tthis: $,\n\t\tspace: string,\n\t\tmethod: string | number,\n\t\t... data: readonly any[]\n\t) {\n\t\twhile( true ) {\n\t\t\t\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tif( typeof method === 'number' ) {\n\t\t\t\t\treturn $mol_wire_sync( this ).$mol_huggingface_ws( space, method, ... data )\n\t\t\t\t} else {\n\t\t\t\t\treturn this.$mol_huggingface_rest( space, method, ... data )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error ) {\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\n\t\t\t\tif( error instanceof Error && error.message === `Queue full` ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t\tcontinue\n\t\t\t\t}\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}\n\t}\n\t\n\texport function $mol_huggingface_rest(\n\t\tspace: string,\n\t\tmethod: string,\n\t\t... data: readonly any[]\n\t) {\n\t\t\n\t\tconst uri = `https://${space}.hf.space/run/${method}`\n\t\tconst response = $mol_fetch.json( uri, {\n\t\t\tmethod: 'post',\n\t\t\theaders: { \"Content-Type\": \"application/json\" },\n\t\t\tbody: JSON.stringify({ data }),\n\t\t} ) as any\n\t\t\n\t\tif( 'error' in response ) {\n\t\t\t$mol_fail( new Error( response.error ?? 'Unknown API error' ) )\n\t\t}\n\t\t\n\t\treturn response.data as readonly any[]\n\t\t\n\t}\n\t\n\texport function $mol_huggingface_ws(\n\t\tspace: string,\n\t\tfn_index: number,\n\t\t... data: readonly any[]\n\t) {\n\t\t\n\t\tconst session_hash = $mol_guid()\n\t\tconst socket = new WebSocket( `wss://${space}.hf.space/queue/join` )\n\t\t\n\t\tconst promise = new Promise< readonly any[] >( ( done, fail )=> {\n\t\t\t\n\t\t\tsocket.onclose = event => {\n\t\t\t\tif( event.reason ) fail( new Error( event.reason ) )\n\t\t\t}\n\t\t\n\t\t\tsocket.onerror = event => {\n\t\t\t\tfail( new Error( `Socket error` ) )\n\t\t\t}\n\t\t\n\t\t\tsocket.onmessage = event => {\n\t\t\t\t\n\t\t\t\tconst message = JSON.parse( event.data )\n\t\t\t\tswitch( message.msg ) {\n\t\t\t\t\t\n\t\t\t\t\tcase 'send_hash':\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn socket.send(\n\t\t\t\t\t\t\tJSON.stringify({ session_hash, fn_index })\n\t\t\t\t\t\t)\n\t\t\t\t\n\t\t\t\t\tcase 'estimation': return\n\t\t\t\t\t\n\t\t\t\t\tcase 'queue_full':\n\t\t\t\t\t\tfail( new Error( `Queue full` ) )\n\t\t\t\t\n\t\t\t\t\tcase 'send_data':\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn socket.send(\n\t\t\t\t\t\t\tJSON.stringify({ session_hash, fn_index, data })\n\t\t\t\t\t\t)\n\t\t\t\t\n\t\t\t\t\tcase 'process_starts': return\n\t\t\t\t\n\t\t\t\t\tcase 'process_completed':\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( message.success ) {\n\t\t\t\t\t\t\treturn done( message.output.data )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn fail(\n\t\t\t\t\t\t\t\tnew Error( message.output.error ?? `Unknown API error` )\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\tdefault:\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn fail(\n\t\t\t\t\t\t\tnew Error( `Unknown message type: ${ message.msg }` )\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\t\t} )\n\t\t\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> socket.close()\n\t\t} )\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $hyoo_lingua_translate( this: $, lang: string, text: string ) {\n\t\t\n\t\tif( !text.trim() ) return ''\n\t\t\n\t\tconst cache_key = `$hyoo_lingua_translate(${ JSON.stringify(lang) },${ JSON.stringify(text) })`\n\t\tconst cached = this.$mol_state_local.value( cache_key )\n\t\tif( cached ) return String( cached )\n\t\t\n\t\tconst translated = this.$mol_huggingface_run( 'hyoo-translate', 0, lang, text )[0] as string\n\t\treturn this.$mol_state_local.value( cache_key, translated )!\n\t}\n\t\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\ttry {\n\t\t\t\treturn $mol_wire_sync( $hyoo_lingua_translate ).call( this.$, lang, en )\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\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\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 err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * \thaving?next <=> owner?next\n\t * ```\n\t */\n\texport function $mol_view_tree2_bind_both_parts(\n\t\tthis: $,\n\t\toperator: $mol_tree2\n\t) {\n\t\tif (operator.type !== '<=>') return this.$mol_fail(\n\t\t\terr`Need an \\`<=>\\` at ${operator.span}, use ${example}`\n\t\t)\n\n\t\tconst owner = operator.kids.length === 1 ? operator.kids[0] : undefined\n\n\t\tif (! owner ) return this.$mol_fail(\n\t\t\terr`Need an owner part at ${operator.span}, use ${example}`\n\t\t)\n\n\t\tif (owner.kids.length > 1) return this.$mol_fail(\n\t\t\terr`Only one sub allowed at ${owner.span}, use ${example}`\n\t\t)\n\n\t\tconst owner_parts = this.$mol_view_tree2_prop_split(owner)\n\n\t\tif (!owner_parts.next) return this.$mol_fail(\n\t\t\terr`Next argument required at ${owner.span}, use ${example}`\n\t\t)\n\n\t\tconst default_value = owner.kids.length === 1 ? owner.kids[0] : undefined\n\n\t\treturn {\n\t\t\towner_parts,\n\t\t\tdefault_value\n\t\t}\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'having?next <=> owner?next',\n\t\t'having?next <=> owner?next \\\\default',\n\t\t'having!key?next <=> owner!key?next',\n\t])\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_bind_left_parts(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\thaving_parts?: $mol_view_tree2_prop\n\t) {\n\t\tif (operator.type !== '<=') return this.$mol_fail(\n\t\t\terr`Need an \\`<=\\` at ${operator.span}`\n\t\t)\n\n\t\tconst owner = operator.kids.length === 1 ? operator.kids[0] : undefined\n\n\t\tif (! owner ) return this.$mol_fail(\n\t\t\terr`Need an owner part at ${operator.span}`\n\t\t)\n\n\t\tif (owner.kids.length > 1) return this.$mol_fail(\n\t\t\terr`Owner at ${owner.span} can't have more that 1 value, given ${owner.kids.map(node => node.span)}`\n\t\t)\n\n\t\tconst default_value = owner.kids.length === 1 ? owner.kids[0] : undefined\n\n\t\tconst owner_parts = this.$mol_view_tree2_prop_split(owner)\n\t\tconst owner_call_parts = owner_parts.next\n\t\t\t? {...owner_parts, next: undefined}\n\t\t\t: owner_parts\n\n\t\treturn {\n\t\t\tdefault_value,\n\t\t\towner_call_parts,\n\t\t\towner_parts\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * Factory_name $class2\n\t * \thaving!key?next => owner!key?next\n\t * ```\n\t */\n\texport function $mol_view_tree2_bind_right_parts(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\thaving_parts: $mol_view_tree2_prop,\n\t\tfactory: $mol_view_tree2_prop\n\t) {\n\t\tif (operator.type !== '=>') return this.$mol_fail(\n\t\t\terr`Need an \\`=>\\` at ${operator.span}, use ${example}`\n\t\t)\n\n\t\tconst owner = operator.kids.length === 1 ? operator.kids[0] : undefined\n\n\t\tif (! owner ) return this.$mol_fail(\n\t\t\terr`Need an owner part at ${operator.span}, use ${example}`\n\t\t)\n\n\t\tif (owner.kids.length !== 0) return this.$mol_fail(\n\t\t\terr`Owner at ${owner.span} can\\'t have values at ${owner.kids.map(node => node.span)}, use ${example}`\n\t\t)\n\n\t\tconst owner_parts = this.$mol_view_tree2_prop_split(owner)\n\n\t\tconst owner_key = owner_parts.key\n\t\tconst having_key = having_parts.key\n\n\t\tif (owner_key && having_key && having_key.data !== owner_key.data) return this.$mol_fail(\n\t\t\terr`Key ${owner_key.value} at ${owner_key.span} must be equal to key ${having_key.span} at ${having_key.span}, ${example}`\n\t\t)\n\n\t\tif (!owner_key && having_key) return this.$mol_fail(\n\t\t\terr`Name ${owner_parts.name.value} at ${owner_parts.name.span} need a key like ${\n\t\t\t\thaving_key.value} at ${having_key.span}, ${example}`\n\t\t)\n\n\t\tif (owner_key && (! having_key && ! factory.key)) return this.$mol_fail(\n\t\t\terr`Can't use key ${owner_key.value} at ${owner_key.span} without key at ${\n\t\t\t\thaving_parts.name.span} or at ${factory.src.span}, ${example}`\n\t\t)\n\n\t\tconst owner_next = owner_parts.next\n\t\tconst having_next = having_parts.next\n\n\t\tif (owner_next && ! having_next) return this.$mol_fail(\n\t\t\terr`Can't use next ${owner_next.value} at ${owner_next.span} without next at ${\n\t\t\t\thaving_parts.name.span}, ${example}`\n\t\t)\n\n\t\treturn {\n\t\t\towner_parts\n\t\t}\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'having => owner',\n\t\t'having?next => owner?next',\n\t\t'having!key => owner!key',\n\t\t'having!key?next => owner!key?next'\n\t])\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * \thaving?next <=> owner?next\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_bind_both(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\tcontext: $mol_view_tree2_context\n\t) {\n\t\tconst { owner_parts, default_value } = this.$mol_view_tree2_bind_both_parts(operator)\n\t\tcontext.check_scope_vars(owner_parts)\n\t\tif (default_value && !context.get_method(owner_parts)) {\n\t\t\tthis.$mol_view_tree2_ts_method_body(owner_parts, context.root())\n\t\t}\n\n\t\treturn [ operator.struct('line', [\n\t\t\towner_parts.name.data('this.'),\n\t\t\tthis.$mol_view_tree2_ts_function_call(owner_parts),\n\t\t]) ]\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'having?next <=> owner?next',\n\t\t'having?next <=> owner?next \\\\default',\n\t\t'having!key?next <=> owner!key?next',\n\t])\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * \thaving!key <= owner!key\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_bind_left(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\tcontext: $mol_view_tree2_context,\n\t\thaving_parts?: $mol_view_tree2_prop\n\t) {\n\t\tconst {default_value, owner_parts, owner_call_parts} = this.$mol_view_tree2_bind_left_parts(operator, having_parts)\n\n\t\tcontext.check_scope_vars(owner_call_parts)\n\n\t\tif (default_value && !context.get_method(owner_parts)) {\n\t\t\tthis.$mol_view_tree2_ts_method_body(owner_parts, context.root())\n\t\t}\n\n\t\treturn [ operator.struct('line', [\n\t\t\towner_parts.name.data('this.'),\n\t\t\tthis.$mol_view_tree2_ts_function_call(owner_call_parts),\n\t\t]) ]\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * Factory_name $class2\n\t * \thaving!key?next => owner!key?next\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_bind_right(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\thaving_parts: $mol_view_tree2_prop,\n\t\tfactory: $mol_view_tree2_prop,\n\t\tcontext: $mol_view_tree2_context,\n\t) {\n\t\tconst { owner_parts } = this.$mol_view_tree2_bind_right_parts(operator, having_parts, factory)\n\n\t\tconst prev = context.get_method(owner_parts)\n\n\t\tif (prev) return this.$mol_fail(\n\t\t\terr`Method ${owner_parts.name.value} at ${owner_parts.name.span} already defined at ${prev.src.span}, ${example}`\n\t\t)\n\n\t\tconst index = context.index(owner_parts)\n\n\t\tconst body = operator.struct('indent', [\n\t\t\toperator.struct('line', [\n\t\t\t\towner_parts.name.data('return this.'),\n\t\t\t\tthis.$mol_view_tree2_ts_function_call({ ... factory, key: factory.key?.data( 'id' ) }),\n\t\t\t\towner_parts.name.data('.'),\n\t\t\t\tthis.$mol_view_tree2_ts_function_call(having_parts),\n\t\t\t])\n\t\t])\n\n\t\tconst method = [\n\t\t\t... this.$mol_view_tree2_ts_comment_doc(owner_parts.src),\n\t\t\toperator.struct('line', [\n\t\t\t\towner_parts.name,\n\t\t\t\t$mol_view_tree2_ts_function_declaration(owner_parts, context.types),\n\t\t\t\towner_parts.name.data(' {'),\n\t\t\t]),\n\t\t\tbody,\n\t\t\towner_parts.name.data('}'),\n\t\t]\n\n\t\tcontext.method(index, method)\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'having => owner',\n\t\t'having?next => owner?next',\n\t\t'having!key => owner!key',\n\t\t'having!key?next => owner!key?next'\n\t])\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_class(\n\t\tthis: $,\n\t\tklass: $mol_tree2,\n\t\tlocales: $mol_view_tree2_locales\n\t) {\n\t\tconst superclass = this.$mol_view_tree2_class_super(klass)\n\t\tconst body: $mol_tree2[] = []\n\t\tconst class_parts = this.$mol_view_tree2_prop_split(klass)\n\t\tconst context = new $mol_view_tree2_context(this, [ class_parts ], locales, body)\n\t\tconst props = this.$mol_view_tree2_class_props(klass)\n\n\t\tfor (const having of props) {\n\n\t\t\tconst having_parts = this.$mol_view_tree2_prop_split(having)\n\t\t\tif (context.get_method(having_parts)) continue\n\n\t\t\tthis.$mol_view_tree2_ts_method_body(having_parts, context)\n\t\t}\n\n\t\treturn klass.struct('indent', [\n\t\t\tklass.struct('line', [\n\t\t\t\tklass.data('export class '),\n\t\t\t\tklass.data(klass.type),\n\t\t\t\tklass.data(' extends '),\n\t\t\t\tsuperclass.data(superclass.type),\n\t\t\t\tklass.data(' {'),\n\t\t\t]),\n\n\t\t\tklass.struct('indent', body),\n\n\t\t\tklass.data('}'),\n\t\t\tklass.data(''),\n\t\t])\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_value(\n\t\tthis: $,\n\t\tsrc: $mol_tree2\n\t) {\n\t\tconst converted = this.$mol_view_tree2_value(src)\n\n\t\tif (src.type === 'null') return [ converted.struct('line', [\n\t\t\tconverted.data(converted.value),\n\t\t\tconverted.data(' as any'),\n\t\t]) ]\n\n\t\treturn [ converted ]\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_locale(operator: $mol_tree2, context: $mol_view_tree2_context) {\n\t\treturn [ operator.struct('line', [\n\t\t\toperator.data('this.$.$mol_locale.text( \\''),\n\t\t\tcontext.locale(operator),\n\t\t\toperator.data('\\' )'),\n\t\t]) ]\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_module(\n\t\tthis: $,\n\t\ttree2_module: $mol_tree2,\n\t\tlocales: $mol_view_tree2_locales\n\t) {\n\t\ttree2_module = $mol_view_tree2_classes(tree2_module)\n\t\t\n\t\tconst classes: $mol_tree2[] = [\n\t\t\ttree2_module.data('namespace $ {')\n\t\t]\n\n\t\tlet has_data = false\n\n\t\tfor (const item of tree2_module.kids) {\n\n\t\t\tconst class_node = this.$mol_view_tree2_ts_class(item, locales)\n\n\t\t\tclasses.push(class_node)\n\t\t\thas_data = true\n\t\t}\n\n\t\tclasses.push(tree2_module.data('}'), tree2_module.data(''))\n\n\t\treturn tree2_module.list(has_data ? classes : [])\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_function_declaration(\n\t\t{ name, key, next }: Pick<$mol_view_tree2_prop, 'name' | 'key' | 'next'>,\n\t\ttypes = false\n\t) {\n\t\tconst sub = [ name.data('(') ]\n\n\t\tif (key) sub.push(key.data('id'))\n\t\tif (types && key) sub.push(key.data( ': any'))\n\t\tif (key && next) sub.push(name.data(', '))\n\t\tif (next) sub.push(next)\n\t\tif (types && next) sub.push(next.data( '?: any'))\n\t\tsub.push(name.data(')'))\n\n\t\treturn name.struct('line', sub)\n\t}\n\n\texport function $mol_view_tree2_ts_function_call(\n\t\t{ name, key, next }: Pick<$mol_view_tree2_prop, 'name' | 'key' | 'next'>\n\t) {\n\t\tconst sub = [\n\t\t\tname,\n\t\t\tname.data('('),\n\t\t]\n\n\t\tif (key) sub.push(key)\n\t\tif (next && key) sub.push(key.data(', '))\n\t\tif (next) sub.push(next)\n\n\t\tsub.push(name.data(')'))\n\n\t\treturn name.struct('line', sub)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\t/**\n\t * ```tree\n\t * ^ name\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_spread(this: $, spread_prop: $mol_tree2) {\n\t\tconst spread_prop_parts = this.$mol_view_tree2_prop_split(spread_prop)\n\n\t\treturn spread_prop.struct('line', [\n\t\t\tspread_prop.data('...this.'),\n\t\t\tthis.$mol_view_tree2_ts_function_call(spread_prop_parts)\n\t\t])\n\t}\n\n\texport class $mol_view_tree2_ts_spread_factory extends $mol_object2 {\n\t\tprotected super_spread: $mol_tree2 | undefined = undefined\n\n\t\tconstructor(\n\t\t\t$: $,\n\t\t\tprotected prop_parts?: $mol_view_tree2_prop\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.$ = $\n\t\t}\n\n\t\tcreate(prop: $mol_tree2) {\n\t\t\tconst spread_prop = prop.kids.length === 1 ? prop.kids[0] : undefined\n\n\t\t\tif (spread_prop) return this.$.$mol_view_tree2_ts_spread(spread_prop)\n\n\t\t\tconst super_spread = this.super_spread\n\n\t\t\tif (super_spread) return this.$.$mol_fail(\n\t\t\t\terr`Only one \\`^\\` operator allowed at ${prop.span}, first was at ${super_spread.span}`\n\t\t\t)\n\n\t\t\tif (! this.prop_parts) return this.$.$mol_fail(\n\t\t\t\terr`Operator \\`^\\` not allowed at ${prop.span}`\n\t\t\t)\n\n\t\t\tthis.super_spread = prop.struct('line', [\n\t\t\t\tprop.data('...super.'),\n\t\t\t\tthis.$.$mol_view_tree2_ts_function_call(this.prop_parts)\n\t\t\t])\n\n\t\t\treturn this.super_spread\n\t\t}\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_comment(this: $, item: $mol_tree2) {\n\t\treturn item.kids.map(chunk => item.data('// ' + chunk.type))\n\t}\n\n\texport function $mol_view_tree2_ts_comment_doc(this: $, item: $mol_tree2) {\n\t\tconst chunks = item.toString().trim().split('\\n')\n\n\t\treturn [\n\t\t\titem.data(''),\n\t\t\titem.data('/**'),\n\t\t\titem.data(' * ```tree'),\n\t\t\t...chunks.map(chunk => item.data(' * ' + chunk)),\n\t\t\titem.data(' * ```'),\n\t\t\titem.data(' */'),\n\t\t]\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_ts_compile(this: $, tree2_module: $mol_tree2) {\n\t\tconst locales: $mol_view_tree2_locales = {}\n\t\tconst ts_module = this.$mol_view_tree2_ts_module(tree2_module, locales)\n\n\t\tconst script = this.$mol_tree2_text_to_string(ts_module)\n\n\t\treturn { script, locales }\n\t}\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * prop *\n\t * \tnum 1\n\t * \t^\n\t * \tstr \\str\n\t * \tq1 <= q2 $mo\n\t * \tv1?val <=> s1?val null\n\t * \tprop_a?v <=> a?v $mol_page\n\t * \t\ttest 123\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_dictionary(\n\t\tthis: $,\n\t\tdictionary: $mol_tree2,\n\t\tdictionary_context: $mol_view_tree2_context,\n\t\tsuper_method?: $mol_view_tree2_prop\n\t) {\n\t\tif (dictionary.type !== '*') return this.$mol_fail(\n\t\t\terr`Need a \\`*\\` operator at ${dictionary.span}`\n\t\t)\n\t\tconst sub: $mol_tree2[] = []\n\n\t\tconst kids = dictionary.kids\n\t\tconst last = kids.length > 0 ? kids[ kids.length - 1 ] : undefined\n\n\t\tconst spread_factory = new this.$mol_view_tree2_ts_spread_factory(this, super_method)\n\n\t\tfor (const opt of kids) {\n\n\t\t\tlet value: $mol_tree2[]\n\n\t\t\tconst info = this.$mol_view_tree2_prop_split(opt)\n\n\t\t\tif (opt.type === '^') {\n\t\t\t\tconst child_sub = [ spread_factory.create(opt) ]\n\t\t\t\tif (opt !== last) child_sub.push(opt.data(','))\n\t\t\t\tsub.push(opt.struct('line', child_sub))\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst context = dictionary_context.parent(info)\n\t\t\tconst operator = opt.kids.length > 0 ? opt.kids[0] : undefined\n\n\t\t\tif (! operator) return this.$mol_fail(\n\t\t\t\terr`Need an operator at ${opt.span}`\n\t\t\t)\n\t\t\tconst type = operator.type\n\n\t\t\tif (type === '<=') value = this.$mol_view_tree2_ts_bind_left(operator, context)\n\t\t\telse if (type === '*') value = this.$mol_view_tree2_ts_dictionary(operator, context)\n\t\t\telse if (type[0] === '/') value = this.$mol_view_tree2_ts_array(operator, context)\n\t\t\telse if (type === '<=>') value = this.$mol_view_tree2_ts_bind_both(operator, context)\n\t\t\telse if (type === '@') value = this.$mol_view_tree2_ts_locale(operator, context)\n\t\t\telse value = this.$mol_view_tree2_ts_value(operator)\t\n\n\t\t\tconst child_sub = [\n\t\t\t\t$mol_view_tree2_prop_quote(info.name),\n\t\t\t\tinfo.name.data(': '),\n\t\t\t]\n\n\t\t\tif (info.next || info.key) child_sub.push(\n\t\t\t\t$mol_view_tree2_ts_function_declaration(info, context.types),\n\t\t\t\topt.data(' => '),\n\t\t\t)\n\n\t\t\tchild_sub.push( ... value )\n\n\t\t\tif (opt !== last) child_sub.push(opt.data(','))\n\n\t\t\tsub.push(opt.struct('line', child_sub))\n\t\t}\n\n\t\treturn [\n\t\t\tdictionary.data('{'),\n\t\t\tdictionary.struct('indent', sub),\n\t\t\tdictionary.data('} as Record< string, any >'),\n\t\t]\n\t}\n\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * \tFactory_name!key?next $some_class\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_factory(\n\t\tthis: $,\n\t\tklass: $mol_tree2,\n\t\tfactory: $mol_view_tree2_prop,\n\t\tfactory_context: $mol_view_tree2_context,\n\t) {\n\t\tif (!/^[$A-Z]/.test(klass.type)) return this.$mol_fail(\n\t\t\terr`Need a valid class name at ${klass.span}, use ${example}`\n\t\t)\n\n\t\tconst obj_node = klass.data('obj')\n\n\t\tconst body: $mol_tree2[] = []\n\n\t\tlet last_array: $mol_tree2 | undefined\n\n\t\tlet constructor_args: $mol_tree2 | undefined\n\n\t\tfor (const child of klass.kids) {\n\n\t\t\tconst child_parts = this.$mol_view_tree2_prop_split(child)\n\t\t\tconst context = factory_context.parent(child_parts)\n\n\t\t\tif (child.type[0] === '/') {\n\t\t\t\tif (last_array) return this.$mol_fail(\n\t\t\t\t\terr`Only one \\`/\\` operator allowed in factory at ${child.span}, prev at ${last_array.span}`\n\t\t\t\t)\n\t\t\t\tlast_array = child\n\t\t\t\tconstructor_args = this.$mol_view_tree2_ts_array_body(child, context)\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst operator = this.$mol_view_tree2_child(child)\n\t\t\tconst type = operator.type\n\n\t\t\tlet value: $mol_tree2[]\n\n\t\t\tif (type === '<=') value = this.$mol_view_tree2_ts_bind_left(operator, context, child_parts)\n\t\t\telse if (type === '<=>') value = this.$mol_view_tree2_ts_bind_both(operator, context)\n\t\t\telse if (type === '=>') {\n\t\t\t\tthis.$mol_view_tree2_ts_bind_right(operator, child_parts, factory, factory_context)\n\t\t\t\tcontinue\n\t\t\t}\n\t\t\telse if (type === '@') value = this.$mol_view_tree2_ts_locale(operator, context)\n\t\t\telse if (type === '*') value = [ child.struct('line', [\n\t\t\t\tchild.data('('),\n\t\t\t\t... this.$mol_view_tree2_ts_dictionary(operator, context),\n\t\t\t\tchild.data(')'),\n\t\t\t]) ]\n\t\t\telse if (type[0] === '/') value = this.$mol_view_tree2_ts_array(operator, context)\n\t\t\telse value = this.$mol_view_tree2_ts_value(operator)\n\n\t\t\tconst call = child.struct('line', [\n\t\t\t\tobj_node,\n\t\t\t\tchild.data('.'),\n\t\t\t\tchild_parts.name,\n\t\t\t\tchild_parts.name.data(' = '),\n\t\t\t\t$mol_view_tree2_ts_function_declaration(child_parts, context.types),\n\t\t\t\tchild.data(' => '),\n\t\t\t\t... value,\n\t\t\t])\n\n\t\t\tbody.push(call)\n\t\t}\n\n\t\tconst init = [\n\t\t\tklass.data('const '),\n\t\t\tobj_node,\n\t\t\tklass.data(' = new this.$.'),\n\t\t\tklass.data(klass.type),\n\t\t]\n\n\t\tif (constructor_args) init.push(\n\t\t\tklass.data('('),\n\t\t\tconstructor_args,\n\t\t\tklass.data(')'),\n\t\t)\n\t\telse init.push(klass.data('()'))\n\n\t\tconst sub = [\n\t\t\tklass.struct('line', init),\n\t\t\tklass.data(''),\n\t\t]\n\t\tif (body.length > 0) sub.push(...body)\n\n\t\tif (body.length > 0 && ! constructor_args) sub.push(klass.data(''))\n\n\t\tsub.push(\n\t\t\tobj_node.struct('line', [\n\t\t\t\tklass.data('return '),\n\t\t\t\tobj_node\n\t\t\t])\n\t\t)\n\n\t\treturn klass.struct('indent', sub)\n\t}\n\n\tconst example = new $mol_view_tree2_error_suggestions([\n\t\t'Factory_name!key?next $' + 'my_class'\n\t])\n}\n\n","namespace $ {\n\t\n\texport class $mol_graph< Node , Edge > {\n\t\t\n\t\tnodes = new Set< Node >()\n\t\t\n\t\tedges_out = new Map< Node , Map< Node , Edge > >()\n\t\tedges_in = new Map< Node , Map< Node , Edge > >()\n\t\t\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\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\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\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\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\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\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\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\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\tdepth( 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\tget depth_min() {\n\t\t\treturn this.depth( Math.min )\n\t\t}\n\t\t\n\t\tget depth_max() {\n\t\t\treturn this.depth( Math.max )\n\t\t}\n\t\t\n\t\tgroup_depth( 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.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\tget group_depth_min() {\n\t\t\treturn this.group_depth( Math.min )\n\t\t}\n\t\t\n\t\tget proup_depth_max() {\n\t\t\treturn this.group_depth( Math.max )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst sourcemap_codec = $node['sourcemap-codec']\n\tconst path = $node.path\n\n\ttype SourceMapLine = ReturnType<typeof sourcemap_codec.decode>[0]\n\ttype SourceMapSegment = SourceMapLine[0]\n\n\texport interface $mol_sourcemap_raw {\n\t\tversion: number\n\t\tsources: string[]\n\t\tnames: string[]\n\t\tsourceRoot?: string\n\t\tsourcesContent?: (string|null)[]\n\t\tmappings: string | SourceMapLine[]\n\t\tfile?: string\n\t}\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: SourceMapLine[] = []\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\tsourceRoot: 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 SourceMapSegment\n\t\t\t\t] as SourceMapLine)\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: SourceMapLine = []\n\t\t\t\tfor (let segment of line) {\n\t\t\t\t\tconst mergedSegment: SourceMapSegment = [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\tlet mergedNameIndex = name_indexes.get(name)\n\t\t\t\t\t\tif (mergedNameIndex === undefined) {\n\t\t\t\t\t\t\tmergedNameIndex = names.length\n\t\t\t\t\t\t\tname_indexes.set(name, mergedNameIndex)\n\t\t\t\t\t\t\tnames.push(name)\n\t\t\t\t\t\t}\n\t\t\t\t\t\tmergedSegment.push(mergedNameIndex)\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\texport function $mol_base64_encode(src: string | Uint8Array): string {\n\t\tthrow new Error('Not implemented')\n\t}\n}\n","namespace $ {\n\n\texport function $mol_base64_encode_node(str: string | Uint8Array): string {\n\t\tif (! str) return ''\n\t\tif (Buffer.isBuffer(str)) return str.toString('base64')\n\n\t\treturn Buffer.from(str).toString('base64')\n\t}\n\n\t$.$mol_base64_encode = $mol_base64_encode_node\n}\n","namespace $ {\n\n\texport function $mol_diff_path< Item >( ... paths : Item[][] ) {\n\n\t\tconst limit = Math.min( ... paths.map( path => path.length ) )\n\n\t\tlookup: for( var i = 0 ; i < limit ; ++i ) {\n\n\t\t\tconst first = paths[0][i]\n\n\t\t\tfor( let j = 1 ; j < paths.length ; ++j ) {\n\t\t\t\tif( paths[j][i] !== first ) break lookup\n\t\t\t}\n\n\t\t}\n\n\t\treturn {\n\t\t\tprefix : paths[0].slice( 0 , i ) ,\n\t\t\tsuffix : paths.map( path => path.slice( i ) ) ,\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_error_mix extends Error {\n\n\t\terrors : Error[]\n\n\t\tconstructor( message : string , ... errors : Error[] ) {\n\n\t\t\tsuper( message )\n\t\t\t\n\t\t\tthis.errors = errors\n\n\t\t\tif( errors.length ) {\n\n\t\t\t\tconst stacks = [ ... errors.map( error => error.stack ) , this.stack ]\n\t\t\t\t\n\t\t\t\tconst diff = $mol_diff_path( ... stacks.map( stack => {\n\t\t\t\t\tif( !stack ) return []\n\t\t\t\t\treturn stack.split( '\\n' ).reverse()\n\t\t\t\t} ) )\n\t\t\t\t\n\t\t\t\tconst head = diff.prefix.reverse().join( '\\n' )\n\t\t\t\tconst tails = diff.suffix.map( path => path.reverse().map( line => line.replace( /^(?!\\s+at)/ , '\\tat (.) ' ) ).join( '\\n' ) ).join( '\\n\\tat (.) -----\\n' )\n\n\t\t\t\tthis.stack = `Error: ${ this.constructor.name }\\n\\tat (.) /\"\"\"\\\\\\n${ tails }\\n\\tat (.) \\\\___/\\n${ head }`\n\t\t\t\tthis.message += errors.map( error => '\\n' + error.message ).join( '' )\n\n\t\t\t}\n\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.message\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * Some $class /\n\t * \t\\test\n\t * \t<= Some $zzz_class\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_array_body(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\tparent_context: $mol_view_tree2_context,\n\t\tsuper_method?: $mol_view_tree2_prop\n\t) {\n\t\tif (operator.type[0] !== '/') return this.$mol_fail(\n\t\t\terr`Need a \\`/\\` at ${operator.span}`\n\t\t)\n\n\t\tconst spread = new this.$mol_view_tree2_ts_spread_factory(this, super_method)\n\n\t\tconst context = parent_context.locale_disable(operator)\n\n\t\tconst kids = operator.kids\n\t\tconst last = kids.length > 0 ? kids[ kids.length - 1 ] : undefined\n\t\tconst sub: $mol_tree2[] = []\n\n\t\tfor (const opt of kids) {\n\t\t\tconst type = opt.type\n\n\t\t\tlet value: $mol_tree2[]\n\n\t\t\tif (type === '^') value = [ spread.create(opt) ]\n\t\t\telse if (type === '<=') value = this.$mol_view_tree2_ts_bind_left(opt, context)\n\t\t\telse if (type === '*') value = this.$mol_view_tree2_ts_dictionary(opt, context)\n\t\t\telse if (type[0] === '/') value = this.$mol_view_tree2_ts_array(opt, context)\n\t\t\telse value = this.$mol_view_tree2_ts_value(opt)\n\n\t\t\tconst child_sub = value\n\n\t\t\tif (opt !== last) child_sub.push(operator.data(','))\n\n\t\t\tsub.push(opt.struct('line', child_sub))\n\t\t}\n\n\t\treturn operator.struct('indent', sub)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\t/*\n\t * ```tree\n\t * prop /\n\t * \t\\test\n\t * \t<= Some $zzz_class\n\t * ```\n\t */\n\texport function $mol_view_tree2_ts_array(\n\t\tthis: $,\n\t\toperator: $mol_tree2,\n\t\tcontext: $mol_view_tree2_context,\n\t\tsuper_method?: $mol_view_tree2_prop | undefined\n\t) {\n\t\tif (operator.type[0] !== '/') return this.$mol_fail(\n\t\t\terr`Need a \\`/\\` at ${operator.span}`\n\t\t)\n\n\t\tconst type_str = operator.type.substring(1)\n\n\t\tconst type_body = [\n\t\t\toperator.data('] as '),\n\t\t]\n\n\t\tif (type_str === '') {\n\t\t\ttype_body.push(operator.data('readonly any[]'))\n\t\t} else if (type_str === 'const') {\n\t\t\ttype_body.push(operator.data('const'))\n\t\t} else {\n\t\t\tconst type = $mol_tree2.data(type_str, [], operator.span.slice(1, type_str.length))\n\t\t\tconst is_array = type.value.indexOf('[') !== -1\n\n\t\t\ttype_body.push(operator.data('readonly '))\n\t\t\tif (is_array) type_body.push(operator.data('('))\n\t\t\ttype_body.push(type)\n\t\t\tif (is_array) type_body.push(operator.data(')'))\n\t\t\ttype_body.push(operator.data('[]'))\n\t\t}\n\n\t\tconst body = this.$mol_view_tree2_ts_array_body(operator, context, super_method)\n\n\t\treturn [\n\t\t\toperator.data('['),\n\t\t\tbody,\n\t\t\toperator.struct('line', type_body)\n\t\t]\n\t}\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_ts_method_body(\n\t\tthis: $,\n\t\thaving_parts: $mol_view_tree2_prop,\n\t\tparent_context: $mol_view_tree2_context\n\t) {\n\t\tconst context = parent_context.parent(having_parts)\n\t\tconst having = having_parts.src\n\t\tconst operator = having.kids.length === 1 ? having.kids[0] : undefined\n\n\t\tif (! operator ) return this.$mol_fail(\n\t\t\terr`Need an child part in a class body at ${having.span}`\n\t\t)\n\n\t\tconst type = operator.type\n\n\t\tconst index = context.index(having_parts)\n\n\t\tlet body: $mol_tree2\n\n\t\tif (type === '<=') body = add_return(operator, this.$mol_view_tree2_ts_bind_left(operator, context, having_parts))\n\t\telse if (type === '<=>') body = add_return(operator, this.$mol_view_tree2_ts_bind_both(operator, context))\n\t\telse if (type === '@') body = add_return(operator, this.$mol_view_tree2_ts_locale(operator, context))\n\t\telse if (type === '*') body = add_return(operator, this.$mol_view_tree2_ts_dictionary(operator, context, having_parts))\n\t\telse if (type[0] === '/') body = add_return(operator, this.$mol_view_tree2_ts_array(operator, context, having_parts))\n\t\telse if (/^[$A-Z]/.test(type)) body = this.$mol_view_tree2_ts_factory(operator, having_parts, context)\n\t\telse body = add_return(operator, this.$mol_view_tree2_ts_value(operator))\n\n\t\tconst method = this.$mol_view_tree2_ts_method(having_parts, body, context.types)\n\n\t\tcontext.method(index, method)\t\n\t}\n\n\tfunction add_return(op: $mol_tree2, value: $mol_tree2[]) {\n\t\treturn op.struct('indent', [\n\t\t\top.struct('line', [\n\t\t\t\top.data('return '),\n\t\t\t\t... value\n\t\t\t])\n\t\t])\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_ts_method(\n\t\tthis: $,\n\t\towner_parts: $mol_view_tree2_prop,\n\t\tbody: $mol_tree2,\n\t\ttypes = false\n\t) {\n\t\tconst { name, key, next, src } = owner_parts\n\t\tconst operator = src.kids.length === 1 ? src.kids[0] : undefined\n\t\tconst type = operator?.type\n\t\tconst is_class = type && /^[$A-Z]/.test( type )\n\t\tconst is_delegate = type === '<=' || type === '<=>'\n\n\t\tlet need_cache = false\n\t\tif (is_delegate) need_cache = false\n\t\telse if (next !== undefined) need_cache = true\n\t\telse if (is_class) need_cache = true\n\n\t\tconst sub: $mol_tree2[] = this.$mol_view_tree2_ts_comment_doc(src)\n\n\t\tif (need_cache && key) sub.push(name.data(`@ $${''}mol_mem_key`)) \n\t\tif (need_cache && ! key) sub.push(name.data(`@ $${''}mol_mem`))\n\n\t\tsub.push(\n\t\t\tname.struct('line', [\n\t\t\t\tname,\n\t\t\t\t$mol_view_tree2_ts_function_declaration(owner_parts, types),\n\t\t\t\tname.data(' {'),\n\t\t\t])\n\t\t)\n\n\t\tif (next && need_cache) sub.push(\n\t\t\tnext.struct('indent', [\n\t\t\t\tnext.struct('line', [\n\t\t\t\t\tnext.data('if ( '),\n\t\t\t\t\tnext,\n\t\t\t\t\tnext.data(' !== undefined ) return '),\n\t\t\t\t\tnext,\n\t\t\t\t\tnext.data(' as never'),\n\t\t\t\t])\n\t\t\t])\n\t\t)\n\n\t\tsub.push(body, name.data('}'))\n\n\t\treturn sub\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_build_start(\n\t\tthis: $,\n\t\tpaths : string[],\n\t) {\n\t\tvar build = $mol_build.relative( '.' )\n\t\tif( paths.length > 0 ) {\n\t\t\ttry {\n\t\t\t\tpaths.forEach(\n\t\t\t\t\t( path : string )=> {\n\t\t\t\t\t\tpath = build.root().resolve( path ).path()\n\t\t\t\t\t\treturn build.bundleAll( { path } )\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t\tprocess.exit(0)\n\t\t\t} catch( error: any ) {\n\t\t\t\tthis.$mol_log3_fail({\n\t\t\t\t\tplace: '$mol_build_start' , \n\t\t\t\t\tmessage: error.message,\n\t\t\t\t\ttrace: error.stack,\n\t\t\t\t})\n\t\t\t\tprocess.exit(1)\n\t\t\t}\n\t\t} else {\n\t\t\tPromise.resolve().then( ()=> build.server().start() )\n\t\t}\n\t}\n\t\n\tsetTimeout( ()=> $mol_wire_async( $mol_ambient({}) ).$mol_build_start( process.argv.slice( 2 ) ) )\n\n\texport class $mol_build extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic root( path : string ) {\n\t\t\treturn this.make({\n\t\t\t\troot : ()=> $mol_file.absolute( path ) ,\n\t\t\t})\n\t\t}\n\t\t\n\t\tstatic relative( path : string ) {\n\t\t\treturn $mol_build.root( $mol_file.relative( path ).path() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tserver() {\n\t\t\treturn $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 $mol_file.relative( '.' )\n\t\t}\n\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 = $mol_tree.fromString( file.text() , file.path() )\n\n\t\t\tlet content = ''\n\t\t\tfor( const step of tree.select( 'build' , '' ).sub ) {\n\n\t\t\t\tconst res = this.$.$mol_exec( file.parent().path() , step.value ).stdout.toString().trim()\n\t\t\t\tif( step.type ) content += `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\t\n\t\t@ $mol_mem_key\n\t\tviewTreeTranspile( path : string ) {\n\n\t\t\tconst file = $mol_file.absolute( path )\n\t\t\tconst name = file.name()\n\n\t\t\tconst script = file.parent().resolve( `-view.tree/${ name }.ts` )\n\t\t\tconst sourceMap = file.parent().resolve( `-view.tree/${ name }.map` )\n\t\t\tconst locale = file.parent().resolve( `-view.tree/${ name }.locale=en.json` )\n\t\t\t\n\t\t\tconst text = file.text()\n\t\t\tconst tree = this.$.$mol_tree2_from_string( text , file.path() )\n\t\t\tconst res = this.$.$mol_view_tree2_ts_compile( tree )\n\n\t\t\tscript.text( res.script )\n\t\t\t// sourceMap.text( res.map )\n\t\t\tlocale.text( JSON.stringify( res.locales , null , '\\t' ) )\n\t\t\t\t\n\t\t\treturn [ script , locale ]\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\t\t\t\t\t\t\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\tmods( { path , exclude } : { path : string , exclude? : string[] } ) {\n\n\t\t\tconst parent = $mol_file.absolute( path )\n\t\t\tconst mods : $mol_file[] = []\n\t\t\t\n\t\t\tparent.sub().slice().sort( ( a, b )=> a.name().length - b.name().length ).forEach(\n\t\t\t\tchild => {\n\t\t\t\t\t\n\t\t\t\t\tconst name = child.name()\n\n\t\t\t\t\tif( !/^[a-z0-9]/i.test( name ) ) return false\n\t\t\t\t\tif( exclude && RegExp( '[.=](' + exclude.join( '|' ) + ')[.]' , 'i' ).test( name ) ) return false\n\n\t\t\t\t\t// if (! child.exists()) return false\n\t\t\t\t\t\n\t\t\t\t\tif( /(meta\\.tree)$/.test( name ) ) {\n\t\t\t\t\t\tmods.push( ... this.metaTreeTranspile( child.path() ) )\n\t\t\t\t\t} else if( /(view\\.tree)$/.test( name ) ) {\n\t\t\t\t\t\tmods.push( ... this.viewTreeTranspile( child.path() ) )\n\t\t\t\t\t} else if( /(\\.css)$/.test( name ) ) {\n\t\t\t\t\t\tmods.push( ... this.cssTranspile( child.path() ) )\n\t\t\t\t\t} else if( /(\\.glsl)$/.test( name ) ) {\n\t\t\t\t\t\tmods.push( ... this.glslTranspile( child.path() ) )\n\t\t\t\t\t}\n\n\t\t\t\t\tmods.push( child )\n\t\t\t\t\t\n\t\t\t\t\treturn true\n\t\t\t\t}\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? : 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? : 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? : 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( { path : 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? : 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( { path : 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 : 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 of this.nodeDeps({ path , exclude }) ) {\n\t\t\t\t\ttypes.push( '\\t' + JSON.stringify( dep ) + ' : typeof import( ' + JSON.stringify( dep ) + ' )' )\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( 'interface $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 : 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 : 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 : 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 : 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\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: (()=>{}) as any,\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// watchers.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\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\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\t\tplace : `${this}.tsService()` ,\n\t\t\t\t\t\t\tmessage: String( diagnostic.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: false,\n\t\t\t\t\twatchFile: 4,\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\t// for( const path of paths ) {\n\t\t\t\t\t// \tconst version = $node.fs.statSync( path ).mtime.valueOf()\n\t\t\t\t\t// \tthis.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 : res.outputText.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\tconst srcMap = src.parent().resolve( src.name() + '.map' );\n\t\t\t\t\n\t\t\t\treturn {\n\t\t\t\t\ttext : src.text().replace( /^\\/\\/#\\ssourceMappingURL=/mg , '//' )+'\\n',\n\t\t\t\t\tmap : srcMap.exists() ? JSON.parse( srcMap.text() ) as $mol_sourcemap_raw : undefined\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 : string[] } ) : $mol_file[] {\n\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? : 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? : 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? : 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: { '..' : Number.MIN_SAFE_INTEGER }\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? : 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\t\t\n\t\t@ $mol_mem_key\n\t\tmodEnsure( path : string ) {\n\n\t\t\tvar mod = $mol_file.absolute( path )\n\t\t\tif( mod === this.root() ) return false\n\n\t\t\tvar parent = mod.parent()\n\t\t\tthis.modEnsure( parent.path() )\n\t\t\t\n\t\t\tvar mapping = this.modMeta( parent.path() )\n\t\t\t\n\t\t\tif( mod.exists() ) {\n\n\t\t\t\ttry {\n\n\t\t\t\t\tif( mod.type() !== 'dir' ) return false\n\t\t\t\t\t\n\t\t\t\t\tconst git_dir = mod.resolve( '.git' )\n\t\t\t\t\tif( git_dir.exists() ) return false\n\n\t\t\t\t\tfor( let repo of mapping.select( 'pack' , mod.name() , 'git' ).sub ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.$.$mol_exec( mod.path() , 'git' , 'init' )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = this.$.$mol_exec( mod.path() , 'git' , 'remote' , 'show' , repo.value )\n\t\t\t\t\t\tconst matched = res.stdout.toString().match( /HEAD branch: (.*?)\\n/ )\n\t\t\t\t\t\tconst head_branch_name = res instanceof Error || matched === null || !matched[1]\n\t\t\t\t\t\t\t? 'master'\n\t\t\t\t\t\t\t: matched[1]\n\t\t\t\t\t\t\n\t\t\t\t\t\tthis.$.$mol_exec( mod.path() , 'git' , 'remote' , 'add' , '--track' , head_branch_name! , 'origin' , repo.value )\n\t\t\t\t\t\tthis.$.$mol_exec( mod.path() , 'git' , 'pull' )\n\t\t\t\t\t\tmod.reset()\n\t\t\t\t\t\tfor ( const sub of mod.sub() ) {\n\t\t\t\t\t\t\tsub.reset()\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true\n\t\t\t\t\t}\n\n\t\t\t\t} catch( error: any ) {\n\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.modEnsure()` ,\n\t\t\t\t\t\tpath ,\n\t\t\t\t\t\tmessage: error.message ,\n\t\t\t\t\t})\n\n\t\t\t\t}\n\n\t\t\t\treturn false\n\t\t\t}\n\n\t\t\tfor( let repo of mapping.select( 'pack' , mod.name() , 'git' ).sub ) {\n\t\t\t\tthis.$.$mol_exec( this.root().path() , 'git' , 'clone' , repo.value , mod.relate( this.root() ) )\n\t\t\t\tmod.reset()\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t\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\tif(\n\t\t\t\t!mod.name().startsWith('@')\n\t\t\t\t&& (\n\t\t\t\t\tparent.name() === 'node_modules'\n\t\t\t\t\t|| ( parent === this.root().resolve( 'node' ) )&&( mod.name() !== 'node' )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t$node[ mod.name() ] // force autoinstall through npm\n\t\t\t}\n\n\t\t\t// Handle npm pacakges with names @hello/world\n\t\t\tif (parent.name().startsWith('@') && parent.parent().name() === 'node_modules') {\n\t\t\t\t$node [ `${parent.name()}/${mod.name()}` ]\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tmodMeta( path : string ) {\n\n\t\t\tconst decls = [] as $mol_tree[]\n\n\t\t\tconst pack = $mol_file.absolute( path )\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.push( ... $mol_tree.fromString( file.text() , file.path() ).sub )\n\t\t\t}\n\t\t\t\n\t\t\treturn new $mol_tree({ sub : decls })\n\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tgraph( { path , exclude } : { path : string , exclude? : string[] } ) {\n\t\t\tlet graph = new $mol_graph< string , { priority : number } >()\n\t\t\tlet added : { [ path : string ] : boolean } = {}\n\t\t\t\n\t\t\tvar addMod = ( mod : $mol_file )=> {\n\t\t\t\tif( added[ mod.path() ] ) return\n\t\t\t\tadded[ mod.path() ] = true\n\t\t\t\t\n\t\t\t\tgraph.nodes.add( mod.relate( this.root() ) )\n\t\t\t\t\n\t\t\t\tconst checkDep = ( p : string )=> {\n\n\t\t\t\t\tconst isFile = /\\.\\w+$/.test( p )\n\t\t\t\t\t\n\t\t\t\t\tvar dep = ( p[ 0 ] === '/' )\n\t\t\t\t\t? this.root().resolve( p + ( isFile ? '' : '/' + p.replace( /.*\\// , '' ) ) )\n\t\t\t\t\t: ( p[ 0 ] === '.' )\n\t\t\t\t\t? mod.resolve( p )\n\t\t\t\t\t: this.root().resolve( 'node_modules' ).resolve( './' + p )\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis.modEnsure( dep.path() )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\terror.message = `${ error.message }\\nDependency \"${ dep.relate( this.root() ) }\" from \"${ mod.relate( this.root() ) }\" `\n\t\t\t\t\t\t$mol_fail_hidden(error)\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\twhile( !dep.exists() ) dep = dep.parent()\n\t\t\t\t\t\n\t\t\t\t\tif( dep.type() === 'dir' && dep.name() !== 'index' ) {\n\t\t\t\t\t\tlet index = dep.resolve( 'index.js' )\n\t\t\t\t\t\tif( index.exists() ) dep = index\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\t//if( dep.type() === 'file' ) dep = dep.parent()\n\t\t\t\t\tif( mod === dep ) return\n\t\t\t\t\t\n\t\t\t\t\tconst from = mod.relate( this.root() )\n\t\t\t\t\tconst to = dep.relate( this.root() )\n\t\t\t\t\tconst edge = graph.edges_out.get( from )?.get( to )\n\t\t\t\t\tif( !edge || ( deps[ p ] > edge.priority ) ) {\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\taddMod( dep )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tlet deps = this.dependencies( { path : mod.path() , exclude } )\n\t\t\t\tfor( let p in deps ) {\n\t\t\t\t\tcheckDep( p )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.modEnsure( path )\n\n\t\t\taddMod( $mol_file.absolute( path ) )\n\t\t\t\n\t\t\tgraph.acyclic( edge => edge.priority )\n\n\t\t\treturn graph\n\t\t}\n\n\t\t@ $mol_action\n\t\tbundleAllWeb( { path } : { path : string } ) {\n\t\t\tthis.bundle({ path , bundle : 'web.deps.json' })\n\t\t\tthis.bundle({ path , bundle : 'web.css' })\n\t\t\tthis.bundle({ path , bundle : 'web.js' })\n\t\t\tthis.bundle({ path , bundle : 'web.test.js' })\n\t\t\tthis.bundle({ path , bundle : 'web.test.html' })\n\t\t\tthis.bundle({ path , bundle : 'web.view.tree' })\n\t\t\tthis.bundle({ path , bundle : 'web.meta.tree' })\n\t\t\tthis.bundle({ path , bundle : 'web.locale=en.json' })\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllWebAudit( { path } : { path : string } ) {\n\t\t\tthis.bundle({ path , bundle : 'web.audit.js' })\n\t\t\tthis.bundle({ path , bundle : 'web.d.ts' })\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllNode( { path } : { path : string } ) {\n\t\t\tthis.bundle({ path , bundle : 'node.deps.json' })\n\t\t\tthis.bundle({ path , bundle : 'node.js' })\n\t\t\tthis.bundle({ path , bundle : 'node.test.js' })\n\t\t\tthis.bundle({ path , bundle : 'node.view.tree' })\n\t\t\tthis.bundle({ path , bundle : 'node.meta.tree' })\n\t\t\tthis.bundle({ path , bundle : 'node.locale=en.json' })\n\t\t\treturn null\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAllNodeAudit( { path } : { path : string } ) {\n\t\t\tthis.bundle({ path , bundle : 'node.audit.js' })\n\t\t\tthis.bundle({ path , bundle : 'node.d.ts' })\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tbundleAll( { path } : { path : string } ) {\n\n\t\t\tthis.bundle({ path , bundle : 'index.html' })\n\t\t\tthis.bundle({ path , bundle : '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 , bundle : 'package.json' })\n\t\t\tthis.bundle({ path , bundle : 'readme.md' })\n\n\t\t\tthis.bundleFiles( { path , exclude : [ 'node' ] } )\n\t\t\tthis.bundleCordova( { path , exclude : [ '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.bundleTestJS( { 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 , exclude : [ '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 , exclude : [ 'web' ] } ) )\n\t\t\t}\n\t\t\t\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 , exclude : [ '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_mem_key\n\t\tbundleJS( { path , exclude , bundle } : { path : string , exclude : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.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( targetJS.parent().path(), ';')\n\t\t\tconcater.add( '\"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\tsources.forEach(\n\t\t\t\t( src )=> {\n\t\t\t\t\tif( bundle === 'node' ) {\n\t\t\t\t\t\tif( /node_modules\\//.test( src.relate( this.root() ) ) ) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst content = this.js_content( src.path() )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst isCommonJs = /typeof +exports|module\\.exports|\\bexports\\.\\w+\\s*=/.test( content.text )\n\t\t\t\t\t\n\t\t\t\t\t\tif( isCommonJs ) {\n\t\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\t}\n\n\t\t\t\t\t\tconcater.add( content.text , src.relate( targetJS.parent() ) , content.map )\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( isCommonJs ) {\n\t\t\t\t\t\t\tconst idFull = src.relate( this.root().resolve( 'node_modules' ) )\n\t\t\t\t\t\t\tconst idShort = idFull.replace( /\\/index\\.js$/ , '' ).replace( /\\.js$/ , '' )\n\t\t\t\t\t\t\tconcater.add( `\\n$${''}node[ \"${ idShort }\" ] = $${''}node[ \"${ idFull }\" ] = module.${''}exports }.call( {} , {} )\\n`, '-' )\n\t\t\t\t\t\t}\n\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\terrors.push( error )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t)\n\t\t\tif( errors.length ) $mol_fail_hidden( new $mol_error_mix( `Build fail ${path}`, ...errors ) )\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 : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.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.*)/, '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 : string[] , bundle : string } ) : $mol_file[] {\n\n\t\t\tconst start = Date.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\t$mol_fail_hidden( new $mol_error_mix( `Build fail ${path}`, ... errors ) )\n\t\t\t}\n\n\t\t\ttarget.text( 'console.info(\"Audit passed\")' )\n\t\t\t\n\t\t\treturn [ target ]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tbundleTestJS( { path , exclude , bundle } : { path : string , exclude : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\n\t\t\tvar root = this.root()\n\t\t\tvar target = pack.resolve( `-/${bundle}.test.js` )\n\t\t\tvar targetMap = pack.resolve( `-/${bundle}.test.js.map` )\n\t\t\t\n\t\t\tvar concater = new $mol_sourcemap_builder( target.parent().path(), ';')\n\t\t\tconcater.add( '\"use strict\"' )\n\t\t\t\n\t\t\tvar exclude_ext = exclude.filter( ex => ex !== 'test' && ex !== 'dev' )\n\t\t\tvar sources = this.sources_js( { path , exclude : exclude_ext } )\n\t\t\tvar sourcesNoTest = new Set( this.sources_js( { path , exclude } ) )\n\t\t\tvar sourcesTest = sources.filter( src => !sourcesNoTest.has( src ) )\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\t\t\tif( sources.length === 0 ) return []\n\t\t\t\n\t\t\tconst errors = [] as Error[]\n\n\t\t\tsourcesTest.forEach(\n\t\t\t\t( src )=> {\n\t\t\t\t\tif( bundle === 'node' ) {\n\t\t\t\t\t\tif( /node_modules\\//.test( src.relate( root ) ) ) {\n\t\t\t\t\t\t\treturn\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\ttry {\n\t\t\t\t\t\tconst content = this.js_content( src.path() )\n\t\t\t\t\t\tconcater.add( content.text, src.relate( target.parent() ), content.map)\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\terrors.push( error )\n\t\t\t\t\t}\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 ) $mol_fail_hidden( new $mol_error_mix( `Build fail ${path}`, ...errors ) )\n\n\t\t\tif( bundle === 'node' ) {\n\t\t\t\tthis.$.$mol_exec( this.root().path() , 'node' , '--trace-uncaught', target.relate( this.root() ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn [ target , targetMap ]\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tbundleTestHtml( { path } : { path : string } ) : $mol_file[] {\n\t\t\t\n\t\t\tconst start = Date.now()\n\t\t\t\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\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\" /><body><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? : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.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\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\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\tbundleViewTree( { path , exclude , bundle } : { path : string , exclude? : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.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? : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.now()\n\t\t\tvar pack = $mol_file.absolute( path )\n\t\t\t\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_tree[] = []\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.sub.length > 0 ) {\n\t\t\t\t\tnamedMetas.push( meta.clone({ value: '/' + path }) )\n\t\t\t\t}\n\t\t\t} )\n\t\t\t\n\t\t\tif( namedMetas.length === 0 ) return []\n\t\t\t\n\t\t\ttarget.text( new $mol_tree( { sub: namedMetas } ).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 : string[] } ) : string[] {\n\t\t\t\n\t\t\tvar res = new Set<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)?\\// , '' ).replace( /\\/.*/g , '' )\n\t\t\t\t\tres.add( mod )\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 : string[] } ) : $mol_file[] {\n\t\t\t\n\t\t\tconst start = Date.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 : string[] } ) : $mol_file[] {\n\t\t\tconst start = Date.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\t\t\t\t\n\t\t\t\tconst published = ( [] as string[] ).concat( JSON.parse(\n\t\t\t\t\tthis.$.$mol_exec( '' , 'npm' , 'view' , name , 'versions', '--json' ).stdout.toString()\n\t\t\t\t) ).slice(-1)[0].split('.').map( Number )\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 {}\n\n\t\t\t++ version[2]\n\n\t\t\tjson.version = version.join( '.' )\n\n\t\t\tjson.dependencies = {}\n\t\t\t\n\t\t\tfor( let dep of this.nodeDeps({ path , exclude }) ) {\n\t\t\t\tif( require('module').builtinModules.includes(dep) ) continue\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? : 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 = Date.now()\n\t\t\tconst html = pack.resolve( 'index.html' )\n\n\t\t\tif ( html.exists() ) {\n\t\t\t\tconst html_target = pack.resolve( '-/index.html' )\n\t\t\t\thtml_target.text( html.text() )\n\t\t\t\ttargets.push( html_target )\n\t\t\t\tthis.logBundle( html_target , Date.now() - start )\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\tbundleFiles( { path , exclude } : { path : string , exclude? : 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\tvar sources = this.sourcesAll( { path , exclude } )\n\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\tsources.forEach( source => {\n\t\t\t\tconst tree = $mol_tree.fromString( source.text() , source.path() )\n\t\t\t\t\n\t\t\t\ttree.select( 'deploy' ).sub.forEach( deploy => {\n\t\t\t\t\tconst start = Date.now()\n\t\t\t\t\tconst file = root.resolve( deploy.value.replace( /^\\// , '' ) )\n\t\t\t\t\tif ( ! file.exists() ) return\n\t\t\t\t\tconst target = pack.resolve( `-/${ file.relate( root ) }` )\n\t\t\t\t\ttarget.buffer( file.buffer() )\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\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? : string[] } ) : $mol_file[] {\n\t\t\tconst start = Date.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? : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tif( bundle === 'node' ) return []\n\n\t\t\tconst start = Date.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? : 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 = Date.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? : string[] , bundle : string } ) : $mol_file[] {\n\t\t\tconst start = Date.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( { path : 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/require\\(\\s*['\"](.*?)['\"]\\s*\\)/ig , ( str , path )=> {\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' ] = 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/\\$([a-z0-9]{2,})(?:((?:[\\._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/require\\(\\s*['\"](.*?)['\"]\\s*\\)/ig , ( str , 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[ 'test.ts' ] = source => {\n\t// \tvar ts = './' + source.name().replace( /\\.test\\./ , '.' )\n\t// \tvar depends : { [ index : string ] : number } = { [ ts ] : 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.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\t\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_tree.fromString( source.text() , source.path() )\n\t\t\n\t\ttree.select( 'require' ).sub.forEach( leaf => {\n\t\t\tdepends[ leaf.value ] = 0\n\t\t} )\n\t\t\n\t\ttree.select( 'include' ).sub.forEach( leaf => {\n\t\t\tdepends[ leaf.value ] = -9000\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() }.ts`]: 0,\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\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]\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\t$node['portastic'].find(\n\t\t\t\t{\n\t\t\t\t\tmin : this.port() ,\n\t\t\t\t\tmax : this.port() + 1000 ,\n\t\t\t\t\tretrieve : 1\n\t\t\t\t}\n\t\t\t).then(\n\t\t\t\t( ports : number[] ) => {\n\t\t\t\t\tserver.listen( ports[ 0 ] )\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\tplace: `${ this }` ,\n\t\t\t\t\t\tmessage: `Started` ,\n\t\t\t\t\t\tlocation: `http://${ this.internal_ip() }:${ ports[ 0 ] }/`\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t)\n\n\t\t\treturn server\n\n\t\t}\n\n\t\tconnections = new Set< InstanceType<$node['ws']> >()\n\n\t\t@ $mol_mem\n\t\tsocket() {\n\n\t\t\tconst socket = new $node.ws.Server({\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() : any[] {\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 unknown\n\t\t}\n\t\t\n\t\texpressCors() {\n\t\t\treturn $node.cors() as unknown\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}\n\t\t\t)\n\t\t}\n\t\t\n\t\texpressDirector() {\n\t\t\treturn $node['serve-index']( this.rootPublic() , { icons : true } ) as unknown\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 ( req : any , res : any , next : () => void )=> 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\t\n\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tconst current = $mol_wire_auto()\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\t\n\texport class $mol_build_server extends $mol_server {\n\n\t\tstatic trace = false\n\n\t\texpressGenerator() {\n\t\t\tconst self = $mol_wire_async( this )\n\t\t\treturn function( ... args: any[] ) {\n\t\t\t\treturn self.handleRequest.apply( self, args )\n\t\t\t}\n\t\t}\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\tnext : () => any\n\t\t) {\n\t\t\tres.set( 'Cache-Control', 'must-revalidate, public, ' )\n\t\t\t\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\treturn this.generate( req.url ) && Promise.resolve().then( next )\n\t\t\t\n\t\t\t} catch( error: any ) {\n\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}.handleRequest()`,\n\t\t\t\t\t\turi: req.path,\n\t\t\t\t\t\tmessage: error.message,\n\t\t\t\t\t\tstack: error.stack,\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( req.url.match( /\\.js$/ ) ) {\n\n\t\t\t\t\tconst script = ( error as Error ).message.split( '\\n\\n' ).map( msg => {\n\t\t\t\t\t\treturn `console.error( ${ JSON.stringify( msg ) } )`\n\t\t\t\t\t} ).join( '\\n' )\n\t\t\t\t\t\n\t\t\t\t\tres.send( script ).end()\n\n\t\t\t\t} else {\n\t\t\t\t\tif (! this.$.$mol_build_server.trace) {\n\t\t\t\t\t\terror.message += '\\n' + 'Set $mol_build_server.trace = true for stacktraces'\n\t\t\t\t\t}\n\n\t\t\t\t\tres.status(500).send( error.toString() ).end()\n\t\t\t\t\tthis.$.$mol_log3_fail({\n\t\t\t\t\t\tplace: `${this}.handleRequest()`,\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\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\n\t\t\t$mol_wire_solid()\n\n\t\t\tconst matched = url.match( /^(.*)\\/-\\/(\\w+(?:.\\w+)+)$/ )\n\t\t\tif( !matched ) return [] as $mol_file[]\n\t\t\t\n\t\t\tconst build = this.build()\n\t\t\t\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\treturn build.bundle( { path , bundle } )\n\t\t\t\n\t\t}\n\t\t\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) => {\n\t\t\t\t\n\t\t\t\tconst root = $mol_file.absolute( this.rootPublic() )\n\t\t\t\tconst dir = root.resolve( req.path )\t\t\t\t\n\t\t\t\tconst build = this.build()\n\n\t\t\t\tbuild.modEnsure( dir.path() )\n\n\t\t\t\tconst match = req.url.match( /(\\/|.*[^\\-]\\/)([\\?#].*)?$/ )\n\t\t\t\tif( !match) return next()\t\t\t\t\n\n\t\t\t\tconst file = root.resolve( `${req.path}index.html` )\n\n\t\t\t\tif( file.exists() ) {\n\t\t\t\t\treturn res.redirect( 301, `${match[1]}-/test.html${match[2] ?? ''}` )\n\t\t\t\t}\t\t\t\t\n\t\t\t\t\n\t\t\t\tif( dir.type() === 'dir' ) {\n\t\t\t\t\tconst files = new Set<string>( [ '-' ] )\n\t\t\t\t\tfor( const file of dir.sub() ) {\n\t\t\t\t\t\tfiles.add( file.name() )\n\t\t\t\t\t\tif( /\\.meta\\.tree$/.test( file.name() ) ) {\n\t\t\t\t\t\t\tconst meta = $$.$mol_tree2_from_string( file.text() )\n\t\t\t\t\t\t\tfor( const pack of meta.select( 'pack', null ).kids ) {\n\t\t\t\t\t\t\t\tfiles.add( pack.type )\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\tconst html = `\n\t\t\t\t\t\t<style>\n\t\t\t\t\t\t\tbody {\n\t\t\t\t\t\t\t\tdisplay: flex;\n\t\t\t\t\t\t\t\tflex-direction: column;\n\t\t\t\t\t\t\t\tflex-wrap: wrap;\n\t\t\t\t\t\t\t\tfont: 1rem/1.5rem sans-serif;\n\t\t\t\t\t\t\t\theight: 100%;\n\t\t\t\t\t\t\t\tmargin: 0;\n\t\t\t\t\t\t\t\tpadding: 0.75rem;\n\t\t\t\t\t\t\t\tbox-sizing: border-box;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ta {\n\t\t\t\t\t\t\t\ttext-decoration: none;\n\t\t\t\t\t\t\t\tcolor: rgb(57, 115, 172);\n\t\t\t\t\t\t\t\tfont-weight: bolder;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ta:hover {\n\t\t\t\t\t\t\t\tbackground: hsl( 0deg, 0%, 0%, .05 )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</style>\n\t\t\t\t\t` + [ ... files ].sort().map( file => `<a href=\"${file}\">${file}</a>` ).join( '\\n' )\n\t\t\t\t\t\n\t\t\t\t\tres.writeHead( 200, {\n\t\t\t\t\t\t'Content-Type': 'text/html',\n\t\t\t\t\t\t'Access-Control-Allow-Origin': '*',\n\t\t\t\t\t} )\n\t\t\t\t\t\n\t\t\t\t\treturn res.end( html )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next()\n\t\t\t\t\n\t\t\t}\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']>, string >() ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tsocket() {\n\t\t\t\n\t\t\treturn super.socket().on( 'connection' , ( line , req )=> {\n\t\t\t\t\n\t\t\t\tconst path = req.url!.replace( /\\/-.*/ , '' ).substring( 1 )\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\t\t\t\t\n\t\t\t\tline.on( 'close' , ()=> {\n\t\t\t\t\t\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\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\t\t\t\n\t\t\treturn socket\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tnotify( [ line, path ]: [ InstanceType<$node['ws']>, string ] ) {\n\t\t\t\n\t\t\tconst build = this.build()\n\t\t\tconst bundle = build.root().resolve( path )\n\n\t\t\t// watch changes\n\t\t\tconst sources = build.sourcesAll({ path: bundle.path() , exclude : [ 'node' ] })\n\t\t\tfor( const src of sources ) src.buffer()\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}\n\n}\n"]}
|