mol_view_tree2_lib 1.0.86 → 1.0.87
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/node.deps.json +1 -1
- package/node.js +0 -5
- package/node.js.map +1 -1
- package/node.mjs +0 -5
- package/node.test.js +0 -5
- package/node.test.js.map +1 -1
- package/package.json +1 -2
package/node.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../mam.ts","../../../../../mol/ambient/ambient.ts","../../../../../mol/delegate/delegate.ts","../../../../../mol/owning/owning.ts","../../../../../mol/fail/fail.ts","../../../../../mol/fail/hidden/hidden.ts","../../../../../mol/func/name/name.ts","../../../../../mol/object2/object2.ts","../../../../../mol/span/span.ts","../../../../../mol/error/syntax/syntax.ts","../../../../../mol/tree2/from/string/string.ts","../../../../../mol/tree2/to/string/string.ts","../../../../../mol/maybe/maybe.ts","../../../../../mol/tree2/tree2.ts","../../../../../mol/view/tree2/error.ts","../../../../../mol/view/tree2/child.ts","../../../../../mol/view/tree2/classes.ts","../../../../../mol/view/tree2/normalize.ts","../../../../../mol/tree2/from/json/json.ts","../../../../../mol/tree2/js/is/number/number.ts","../../../../../mol/tree2/js/to/text/text.ts","../../../../../mol/tree2/span/imprint/imprint.ts","../../../../../mol/tree2/span/reuse/reuse.ts","../../../../../mol/tree2/text/to/string/string.ts","../../../../../mol/vlq/vlq.ts","../../../../../mol/tree2/text/to/sourcemap/sourcemap.ts","../../../../../mol/sourcemap/url/url.ts","../../../../../mol/sourcemap/dataurl/dataurl.ts","../../../../../mol/tree2/text/to/string/mapped/mapped.ts","../../../../../mol/guard/defined.ts","../../../../../mol/tree2/text/to/sourcemap/vis/vis.ts","../../../../../mol/tree2/to/json/json.ts","../../../../../mol/tree2/to/stream/stream.ts","../../../../../mol/tree2/xml/from/dom/dom.ts","../../../../../mol/html/encode/encode.ts","../../../../../mol/tree2/xml/to/text/text.ts","../../../../../mol/regexp/regexp.ts","../../../../../mol/view/tree2/prop/signature.ts","../../../../../mol/view/tree2/prop/parts.ts","../../../../../mol/view/tree2/prop/quote.ts","../../../../../mol/view/tree2/class/match.ts","../../../../../mol/view/tree2/class/super.ts","../../../../../mol/view/tree2/class/props.ts","../../../../../mol/view/tree2/to/dts/dts.ts","../../../../../mol/object/object.ts","../../../../../mol/guid/guid.ts","../../../../../mol/wire/cursor/cursor.ts","../../../../../mol/wire/pub/pub.ts","../../../../../mol/wire/wire.ts","../../../../../mol/dev/format/format.ts","../../../../../mol/wire/pub/sub/sub.ts","../../../../../mol/after/tick/tick.ts","../../../../../mol/promise/like/like.ts","../../../../../mol/wire/fiber/fiber.ts","../../../../../mol/key/key.ts","../../../../../mol/after/timeout/timeout.ts","../../../../../mol/after/frame/frame.node.ts","../../../../../mol/compare/deep/deep.ts","../../../../../mol/log3/log3.ts","../../../../../mol/term/color/color.ts","../../../../../mol/log3/log3.node.ts","../../../../../mol/wire/task/task.ts","../../../../../mol/wire/method/method.ts","../../../../../mol/fail/catch/catch.ts","../../../../../mol/try/try.node.ts","../../../../../mol/fail/log/log.ts","../../../../../mol/wire/atom/atom.ts","../../../../../mol/wire/solo/solo.ts","../../../../../mol/wire/plex/plex.ts","../../../../../mol/mem/mem.ts","../../../../../mol/dom/context/context.ts","../../../../../node/internal/check/check.node.ts","../../../../../node/node.node.ts","../../../../../mol/error/mix/mix.ts","../../../../../mol/env/env.ts","../../../../../mol/env/env.node.ts","../../../../../mol/wire/sync/sync.ts","../../../../../mol/run/run.node.ts","../../../../../mol/exec/exec.node.ts","../../../../../mol/dom/context/context.node.ts","../../../../../mol/wire/solid/solid.ts","../../../../../mol/mem/persist/persist.ts","../../../../../mol/wire/probe/probe.ts","../../../../../mol/mem/cached/cached.ts","../../../../../mol/storage/storage.ts","../../../../../mol/state/local/local.ts","../../../../../mol/const/const.ts","../../../../../mol/action/action.ts","../../../../../mol/wire/async/async.ts","../../../../../mol/lock/lock.ts","../../../../../mol/compare/array/array.ts","../../../../../mol/charset/decode/decode.ts","../../../../../mol/charset/encode/encode.ts","../../../../../mol/file/transaction/transaction.ts","../../../../../mol/file/transaction/transaction.node.ts","../../../../../mol/file/base/base.ts","../../../../../mol/file/file.ts","../../../../../mol/file/file.node.ts","../../../../../mol/dom/dom.ts","../../../../../mol/state/local/local.node.ts","../../../../../mol/locale/locale.ts","../../../../../mol/view/tree2/to/js/js.ts","../../../../../mol/view/tree2/to/locale/locale.ts","../../../../../mol/view/tree2/to/text/text.ts","../../../../../mol/test/test.test.ts","../../../../../mol/test/test.node.test.ts","../../../../../mol/func/name/name.test.ts","../../../../../mol/dom/render/children/children.ts","../../../../../mol/dom/serialize/serialize.ts","../../../../../mol/jsx/jsx.ts","../../../../../mol/jsx/jsx.test.tsx","../../../../../mol/range2/range2.ts","../../../../../mol/range2/range2.test.ts","../../../../../mol/compare/deep/deep.test.tsx","../../../../../mol/assert/assert.ts","../../../../../mol/assert/assert.test.ts","../../../../../mol/log3/log3.test.ts","../../../../../mol/try/try.test.ts","../../../../../mol/fail/log/log.test.ts","../../../../../mol/delegate/delegate.test.ts","../../../../../mol/error/mix/mix.test.ts","../../../../../mol/object/object.test.ts","../../../../../mol/wire/pub/sub/sub.test.ts","../../../../../mol/after/mock/mock.test.ts","../../../../../mol/after/tick/tick.test.ts","../../../../../mol/wire/fiber/fiber.test.ts","../../../../../mol/wire/async/async.test.ts","../../../../../mol/wire/sync/sync.test.ts","../../../../../mol/promise/promise/promise.ts","../../../../../mol/after/timeout/timeout.test.ts","../../../../../mol/after/work/work.ts","../../../../../mol/after/work/work.test.ts","../../../../../mol/wait/rest/rest.ts","../../../../../mol/wait/rest/rest.test.ts","../../../../../mol/wait/timeout/timeout.ts","../../../../../mol/wait/timeout/timeout.test.ts","../../../../../mol/run/run.node.test.ts","../../../../../mol/span/span.test.ts","../../../../../mol/maybe/maybe.test.ts","../../../../../mol/tree2/from/json/json.test.ts","../../../../../mol/tree2/tree2.test.ts","../../../../../mol/tree2/from/string/string.test.ts","../../../../../mol/data/setup/setup.ts","../../../../../mol/data/setup/setup.test.ts","../../../../../mol/func/is/class/class.ts","../../../../../mol/func/is/class/class.test.ts","../../../../../mol/data/pipe/pipe.ts","../../../../../mol/data/pipe/pipe.test.ts","../../../../../mol/tree2/js/to/text/text.test.ts","../../../../../mol/vlq/vlq.test.ts","../../../../../mol/tree2/text/to/sourcemap/sourcemap.test.ts","../../../../../mol/tree2/to/json/json.test.ts","../../../../../mol/regexp/regexp.test.ts","../../../../../mol/view/tree2/prop/parts.test.ts","../../../../../mol/style/attach/attach.ts","../../../../../mol/promise/blocker/blocker.ts","../../../../../mol/decor/decor.ts","../../../../../mol/style/unit/unit.ts","../../../../../mol/style/func/func.ts","../../../../../mol/style/prop/prop.ts","../../../../../mol/wire/solo/solo.test.ts","../../../../../mol/wire/plex/plex.test.ts","../../../../../mol/wire/probe/probe.test.ts","../../../../../mol/key/key.test.tsx","../../../../../mol/after/frame/frame.test.ts","../../../../../mol/wire/log/log.ts","../../../../../mol/wire/atom/atom.test.ts","../../../../../mol/state/arg/arg.node.ts","../../../../../mol/state/arg/arg.node.test.ts","../../../../../mol/media/media.ts","../../../../../mol/const/const.test.ts","../../../../../mol/compare/array/array.test.ts","../../../../../mol/charset/decode/decode.test.ts","../../../../../mol/charset/encode/encode.test.ts","../../../../../mol/state/local/local.test.ts","../../../../../mol/state/local/local.mock.test.ts","../../../../../mol/lights/lights.ts","../../../../../mol/theme/theme.ts","../../../../../mol/theme/-css/theme.css.ts","../../../../../mol/theme/theme_lights.ts","../../../../../mol/gap/gap.ts","../../../../../mol/gap/-css/gap.css.ts","../../../../../mol/window/window.node.ts","../../../../../mol/view/selection/selection.ts","../../../../../mol/wrapper/wrapper.ts","../../../../../mol/wrapper/wrapper.test.ts","../../../../../mol/memo/memo.ts","../../../../../mol/memo/memo.test.ts","../../../../../mol/dom/qname/qname.ts","../../../../../mol/wire/watch/watch.ts","../../../../../mol/dom/render/attributes/attributes.ts","../../../../../mol/dom/render/events/events.ts","../../../../../mol/error/message/message.ts","../../../../../mol/dom/render/styles/styles.ts","../../../../../mol/dom/render/fields/fields.ts","../../../../../mol/view/view/-css/view.css.ts","../../../../../mol/view/view/view.tsx","../../../../../mol/view/view/view.test.ts","../../../../../mol/plugin/plugin.ts","../../../../../mol/hotkey/hotkey.view.tree","../../../../../mol/keyboard/code/code.ts","../../../../../mol/hotkey/hotkey.view.ts","../../../../../mol/string/string.view.tree","../../../../../mol/dom/listener/listener.ts","../../../../../mol/layer/layer.ts","../../../../../mol/layer/-css/layer.css.ts","../../../../../mol/string/string.view.ts","../../../../../mol/string/-css/string.view.css.ts","../../../../../mol/paragraph/paragraph.view.tree","../../../../../mol/paragraph/paragraph.view.ts","../../../../../mol/paragraph/-css/paragraph.view.css.ts","../../../../../mol/dimmer/dimmer.view.tree","../../../../../mol/dimmer/dimmer.test.ts","../../../../../mol/dimmer/dimmer.view.ts","../../../../../mol/dimmer/-css/dimmer.view.css.ts","../../../../../mol/speck/speck.view.tree","../../../../../mol/speck/-css/speck.view.css.ts","../../../../../mol/button/button.view.tree","../../../../../mol/button/button.test.ts","../../../../../mol/button/button.view.ts","../../../../../mol/button/-css/button.view.css.ts","../../../../../mol/button/typed/typed.view.tree","../../../../../mol/button/typed/-css/typed.view.css.ts","../../../../../mol/button/minor/minor.view.tree","../../../../../mol/button/minor/-css/minor.view.css.ts","../../../../../mol/view/tree2/class/props.test.ts","../../../../../mol/locale/locale.test.ts","../../../../../mol/view/tree2/to/locale/locale.test.ts","../../../../../mol/view/tree2/to/js/test/ex/array_slot.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_nan.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_union.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_number.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_boolean.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_chaining.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_fallback.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_chaining.view.tree","../../../../../mol/view/tree2/to/js/test/ex/right_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_string.view.tree","../../../../../localized_string","../../../../../mol/view/tree2/to/js/test/ex/left_read_only.view.tree","../../../../../mol/view/tree2/to/js/test/ex/right_hierarchy.view.tree","../../../../../mol/view/tree2/to/js/test/ex/right_read_only.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_dict.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_with_types.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_inheritance.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_legacy_value.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_typed_null.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_in_dictionary.view.tree","../../../../../mol/scroll/scroll.view.tree","../../../../../mol/print/print.ts","../../../../../mol/style/sheet/sheet.ts","../../../../../mol/style/sheet/sheet.test.ts","../../../../../mol/style/define/define.ts","../../../../../mol/scroll/scroll.view.ts","../../../../../mol/scroll/scroll.view.css.ts","../../../../../mol/page/page.view.tree","../../../../../mol/page/page.view.css.ts","../../../../../mol/view/tree2/to/js/test/ex/right_in_left_bind.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_empty_class.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_two_classes.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_factory_props.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_default_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_complex_key.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_constructor_tuple.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_second_level_index.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_quoted_props.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_spread_other.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_of_array_or_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_localized_in_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_with_default_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_in_array_and_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_indexed_second_level.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_spread_other_channel.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_factory_inheritance.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_with_inheritance.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_localized_default_value.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_mutable_and_read_only.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_localized_prop_value.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_with_separate_default_and_comment.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_with_separate_default_in_right_part.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_doubing_right_part_with_same_default.view.tree","../../../../../mol/view/tree2/to/js/test/ex/klass.ts","../../../../../mol/view/tree2/to/js/test/ex/right_hierarchy_bar.ts","../../../../../mol/view/tree2/to/js/test/run.test.ts","../../../../../mol/view/tree2/to/js/test/js.bidi.test.ts","../../../../../mol/view/tree2/to/js/test/js.left.test.ts","../../../../../mol/view/tree2/to/js/test/js.array.test.ts","../../../../../mol/view/tree2/to/js/test/js.right.test.ts","../../../../../mol/view/tree2/to/js/test/js.simple.test.ts","../../../../../mol/view/tree2/to/js/test/js.structural.test.ts"],"names":[],"mappings":"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","sourcesContent":["Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\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","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || (this.constructor as { $?: $ }).$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** 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\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.flatMap( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ this.clone( sub ) ]\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\texport class $mol_view_tree2_error extends Error {\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly spans: readonly $mol_span[]\n\t\t) {\n\t\t\tsuper(message)\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\tmessage: this.message,\n\t\t\t\tspans: this.spans\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree2_error_suggestions {\n\t\tconstructor(\n\t\t\treadonly suggestions: readonly string[]\n\t\t) {}\n\n\t\ttoString() {\n\t\t\treturn this.suggestions.map(suggestion => `\\`${suggestion}\\``).join(', ')\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.suggestions\n\t\t}\n\t}\n\n\texport function $mol_view_tree2_error_str(\n\t\tstrings: readonly string[],\n\t\t...parts: readonly ($mol_span | readonly $mol_span[] | string | number | $mol_view_tree2_error_suggestions)[]\n\t) {\n\t\tconst spans: $mol_span[] = []\n\n\t\tfor (const part of parts) {\n\t\t\tif (part instanceof $mol_span) spans.push(part)\n\t\t\tif (Array.isArray(part) && part.length > 0 && part[0] instanceof $mol_span) spans.push(...part)\n\t\t}\n\n\t\treturn new $mol_view_tree2_error(join(strings, parts), spans)\n\t}\n\n\tfunction join(strings: readonly string[], objects: readonly unknown[]) {\n\t\tlet result = ''\n\t\tlet obj_pos = 0\n\t\tlet obj_len = objects.length\n\n\t\tfor (const str of strings) {\n\t\t\tresult += str\n\t\t\tif (obj_pos < obj_len) {\n\t\t\t\tconst obj = objects[obj_pos++]\n\t\t\t\tif (Array.isArray(obj)) result += obj.map(item => `\\`${item}\\``).join(', ')\n\t\t\t\telse result += `\\`${String(obj)}\\``\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_child(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) {\n\n\t\tif( tree.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Required one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\tif( tree.kids.length > 1 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Should be only one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn tree.kids[0]\n\t}\n\n}\n","namespace $ {\n\texport function $mol_view_tree2_classes( defs : $mol_tree2 ) {\n\t\treturn defs.clone(defs.hack({\n\t\t\t'-': () => []\n\t\t}))\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_view_tree2_normalize( this: $, defs : $mol_tree2 ) {\n\t\treturn defs.clone(\n\t\t\t$mol_view_tree2_classes( defs ).kids.map( cl => cl.clone([\n\t\t\t\tthis.$mol_view_tree2_class_super( cl ).clone(\n\t\t\t\t\tthis.$mol_view_tree2_class_props( cl )\n\t\t\t\t)\n\t\t\t]) )\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_js_is_number(type: string) {\n\t\treturn type.match(/[\\+\\-]*NaN/) || !Number.isNaN( Number( type ) )\n\t}\n}\n","namespace $ {\n\n\tfunction is_identifier( tree: $mol_tree2 ) {\n\t\tif( tree.type ) return false\n\t\treturn /^[a-z_$][a-z_$0-9]*$/i.test( tree.text() )\n\t}\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction block( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.kids.length === 0 ? [] : [ input.struct( 'indent',\n\t\t\t\t\tinput.kids.map( ( kid, index ) =>\n\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t... ( separator ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t] ),\n\t\t\t\t\t),\n\t\t\t\t) ],\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\treturn js.list( js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': block( '{', ';', '}' ),\n\t\t\t';': block( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': block( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t'?.[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '?.[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '?.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> input.kids[0].type\n\t\t\t\t? duplet( '[', ']: ' )( input, belt )\n\t\t\t\t: duplet( '', ': ' )( input, belt ),\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t] ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) )\n\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_span_imprint( tree: $mol_tree2 ) {\n\n\t\tconst sources = new Map< string, $mol_tree2 >()\n\n\t\tconst res = tree.clone( tree.hack({\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\tif( !sources.has( input.span.uri ) ) {\n\t\t\t\t\tsources.set( input.span.uri,\n\t\t\t\t\t\ttree.struct( input.span.uri, [\n\t\t\t\t\t\t\ttree.data( input.span.source )\n\t\t\t\t\t\t] ),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tinput.clone([\n\t\t\t\t\t\tinput.data( input.span.toString() ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t]),\n\t\t\t\t]\n\n\t\t\t},\n\t\t}) )\n\n\t\treturn tree.clone([\n\t\t\t... sources.values(),\n\t\t\tres,\n\t\t])\n\n\t}\n}\n","namespace $ {\n\texport function $mol_tree2_span_reuse( tree: $mol_tree2 ) {\n\t\t\n\t\tconst sources = new Map< string, string >()\n\n\t\treturn tree.clone(\n\t\t\ttree.hack({\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( input.type ) {\n\t\t\t\t\t\tsources.set( input.type, input.kids[0].text() )\n\t\t\t\t\t\treturn []\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn input.hack({\n\t\t\t\t\t\t'': ( input, belt )=> {\n\t\t\t\t\t\t\tconst kids = input.list( input.kids.slice(1) ).hack( belt )\n\t\t\t\t\t\t\tconst [ _, uri, row, col, length ] = /^(.*)#(\\d+):(\\d+)\\/(\\d+)$/.exec( input.kids[0].text() )!\n\t\t\t\t\t\t\tconst span = new $mol_span( uri, sources.get( uri )!, Number( row ), Number( col ), Number( length ) )\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tnew $mol_tree2( input.type , input.value , kids, span ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) next_line()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map: $mol_sourcemap_raw = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_url(this: $, uri: string, type = 'js' as 'js' | 'css') {\n\t\tif (type === 'css') return `\\n/*# sourceMappingURL=${uri}*/`\n\t\treturn `\\n//# sourceMappingURL=${uri}`\n\t}\n\n}\n","namespace $ {\n\n\tconst prefix = '# sourceMappingURL=data:application/json,'\n\tconst end_comment = ' */'\n\n\texport function $mol_sourcemap_dataurl_decode(this: $, data: string) {\n\t\tconst index = data.lastIndexOf(prefix)\n\n\t\tif (index === -1) return undefined\n\n\t\tdata = data.substring(index + prefix.length)\n\n\t\tif (data.endsWith(end_comment)) data = data.substring(0, data.length - end_comment.length)\n\n\t\tconst decoded = this.decodeURIComponent(data)\n\n\t\ttry {\n\t\t\tconst map = JSON.parse(decoded) as $mol_sourcemap_raw | null\n\n\t\t\tif (! map) return undefined\n\n\t\t\tif (typeof map.mappings === 'string' && map.mappings.startsWith(';;')) {\n\t\t\t\tmap.mappings = map.mappings.substring(2)\n\t\t\t}\n\n\t\t\treturn map\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) e.message += ', origin=' + decoded\n\t\t\t$mol_fail_hidden(e)\n\t\t}\n\t}\n\n\texport function $mol_sourcemap_dataurl_encode(this: $, map: $mol_sourcemap_raw, type = 'js' as 'js' | 'css') {\n\t\tconst str = JSON.stringify( { ...map, mappings: ';;' + map.mappings } )\n\n\t\treturn this.$mol_sourcemap_url('data:application/json,' + this.encodeURIComponent( str ), type)\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string_mapped( this: $, text: $mol_tree2, type: 'js' | 'css' ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\n\t\tconst chunk = this.$mol_sourcemap_dataurl_encode( map, type )\n\t\treturn code + chunk\n\t}\n\n\texport function $mol_tree2_text_to_string_mapped_js( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'js' )\n\t}\n\t\n\texport function $mol_tree2_text_to_string_mapped_css( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'css')\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap_vis( this: $, text: $mol_tree2 ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\t\t\n\t\tconst uri = [\n\t\t\t'https://sokra.github.io/source-map-visualization/#base64',\n\t\t\tbtoa( code ),\n\t\t\tbtoa( JSON.stringify( map ) ),\n\t\t\t... map.sourcesContent?.filter($mol_guard_defined).map( btoa ) ?? [],\n\t\t].join( ',' )\n\n\t\treturn uri\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Makes JSON from json.tree. */\n\texport function $mol_tree2_to_json(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t): unknown {\n\n\t\tif( !tree.type ) {\n\t\t\tif( tree.kids.every( kid => !kid.type ) ) return tree.text()\n\t\t\tif( tree.kids.length !== 1 ) this.$mol_fail( new Error( `Multiple json root at ${tree.span}` ) )\n\t\t\treturn this.$mol_tree2_to_json(tree.kids[0] )\n\t\t}\n\t\t\n\t\tif( tree.type === '-' ) return undefined\n\t\tif( tree.type === 'true' ) return true\n\t\tif( tree.type === 'false' ) return false\n\t\tif( tree.type === 'null' ) return null\n\t\t\n\t\tif( tree.type === '*' ) {\n\t\t\t\n\t\t\tconst obj = {} as Record< string, unknown >\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tconst key = kid.type || kid.clone( kid.kids.slice( 0, -1 ) ).text()\n\t\t\t\tconst val = this.$mol_tree2_to_json( kid.kids[ kid.kids.length - 1 ] )\n\t\t\t\t\n\t\t\t\tif( val !== undefined ) obj[ key ] = val\n\t\t\t}\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tif( tree.type === '/' ) {\n\t\t\t\n\t\t\tconst res = [] as unknown[]\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tvar val = this.$mol_tree2_to_json( kid )\n\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tconst numb = Number( tree.type ) \n\t\tif( !Number.isNaN( numb ) || tree.type === 'NaN' ) return numb\n\t\t\n\t\tthis.$mol_fail( new Error( `Unknown json type (${tree.type}) at ${tree.span}` ) )\n\t}\n\n}\n","namespace $ {\n\t\n\texport async function $mol_tree2_to_stream(\n\t\ttree: $mol_tree2,\n\t\toutput: {\n\t\t\twrite( chunk: string ): boolean\n\t\t\tonce?( event: 'drain', cb: ()=> void ): void\n\t\t},\n\t\tprefix = '',\n\t) {\n\n\t\tconst pause = ()=> {\n\t\t\treturn new Promise( done => {\n\t\t\t\toutput.once!( 'drain', ()=> done( null ) )\n\t\t\t} )\n\t\t}\n\n\t\tlet out = ''\n\n\t\tif( tree.type.length ) {\n\t\t\t\n\t\t\tif( !prefix.length ) {\n\t\t\t\tprefix = \"\\t\";\n\t\t\t}\n\n\t\t\tout += tree.type\n\n\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\toutput.write( out + ' ' )\n\t\t\t\tawait $mol_tree2_to_stream( tree.kids[ 0 ], output, prefix )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tout += \"\\n\"\n\n\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\tout += \"\\\\\" + tree.value + \"\\n\"\n\n\t\t}\n\n\t\toutput.write( out )\n\n\t\tfor( const kid of tree.kids ) {\n\t\t\tif( !output.write( prefix ) ) await pause()\n\t\t\tawait $mol_tree2_to_stream( kid, output, prefix + \"\\t\" )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\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\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\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\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params<T> = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): RegExpStringIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp<any>( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst { begin, end, latin_only, or, optional, repeat_greedy } = $mol_regexp\n\n\texport let $mol_view_tree2_prop_signature = $mol_regexp.from([\n\t\tbegin,\n\t\t{ name: repeat_greedy( latin_only, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( latin_only, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( latin_only, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\texport function $mol_view_tree2_prop_parts(this: $, prop: $mol_tree2 ) {\n\t\tconst groups = [ ...prop.type.matchAll( $mol_view_tree2_prop_signature ) ][0]?.groups\n\n\t\tif (! groups) {\n\t\t\tthis.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Required prop like some*? at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tname: groups.name,\n\t\t\tkey: groups.key,\n\t\t\tnext: groups.next ? '?' : ''\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst regular_regex = /^\\w+$/\n\n\texport function $mol_view_tree2_prop_quote(name: $mol_tree2) {\n\t\tif (regular_regex.test(name.value)) return name\n\n\t\treturn name.data(JSON.stringify(name.value))\n\t}\n}\n","namespace $ {\n\tconst class_regex = /^[$A-Z][$\\w<>\\[\\]()\"'?|]+$/\n\n\texport function $mol_view_tree2_class_match(klass?: $mol_tree2) {\n\t\tif (! klass?.type) return false\n\t\tif (klass.type === 'NaN' || klass.type === 'Infinity') return false\n\n\t\treturn class_regex.test(klass.type)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_class_super(\n\t\tthis: $,\n\t\tklass: $mol_tree2\n\t) {\n\t\tif( ! $mol_view_tree2_class_match( klass ) ) return this.$mol_fail(\n\t\t\terr `Wrong class name at ${klass.span}` \n\t\t)\n\n\t\tconst superclass = klass.kids.length === 1 ? klass.kids[0] : undefined\n\n\t\tif (! superclass) return this.$mol_fail(\n\t\t\terr`No super class at ${klass.span}`\n\t\t)\n\n\t\tif( ! $mol_view_tree2_class_match( superclass ) ) return this.$mol_fail(\n\t\t\terr`Wrong super class name ${JSON.stringify(superclass.type).replace(/(^\"|\"$)/g, \"\")} at ${superclass.span}`\n\t\t)\n\n\t\treturn superclass\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\ttype Context = { factory?: $mol_tree2 }\n\n\texport function $mol_view_tree2_class_props(\n\t\tthis: $,\n\t\tklass : $mol_tree2,\n\t) {\n\t\tlet props = this.$mol_view_tree2_class_super( klass )\n\t\t\n\t\t// ! syntax to *\n\t\tprops = props.clone(\n\t\t\tprops.hack({\n\t\t\t\t'': ( node, belt )=> {\n\t\t\t\t\tconst normal = node.type.replace( /!\\w+/, '*' )\n\t\t\t\t\tif( node.type === normal ) return [ node.clone( node.hack( belt ) ) ]\n\t\t\t\t\treturn [ node.struct( normal, node.hack( belt ) ) ]\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst props_inner = {} as Record<string, $mol_tree2>\n\n\t\tconst add_inner = ( prop: $mol_tree2 ) => {\n\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\t\t\tconst prev = props_inner[name]\n\t\t\tif (prev && prev.kids[0]?.toString() !== prop.kids[0]?.toString()) {\n\t\t\t\tthis.$mol_fail(err`Need an equal default values at ${prev.span} vs ${prop.span}`)\n\t\t\t}\n\t\t\tprops_inner[name] = prop\n\t\t}\n\n\t\tconst upper = (operator: $mol_tree2, belt: $mol_tree2_belt<Context>, context: Context) => {\n\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\tconst defs = prop.hack( belt, { factory: prop } )\n\t\t\tif( defs.length ) add_inner( prop.clone( defs ) )\n\n\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t}\n\n\t\tconst props_root = props.hack({\n\t\t\t'<=': upper,\n\n\t\t\t'<=>': upper,\n\n\t\t\t'^': ( operator, belt, context) => {\n\t\t\t\tif (operator.kids.length === 0) return [ operator ]\n\t\t\t\treturn upper(operator, belt, context)\n\t\t\t},\n\n\t\t\t'': (left, belt, context) => {\n\t\t\t\tlet right\n\t\t\t\tconst operator = left.kids[0]\n\n\t\t\t\tif (operator?.type === '=>' && context.factory) {\n\t\t\t\t\tright = operator.kids[0]\n\t\t\t\t\tif (! right) this.$mol_fail(err`Need a child ${operator.span}`)\n\t\t\t\t\tif (! context.factory) this.$mol_fail(err`Need a parent ${left.span}`)\n\n\t\t\t\t\tadd_inner(right.clone([\n\t\t\t\t\t\tright.struct('=', [\n\t\t\t\t\t\t\tcontext.factory.struct(\n\t\t\t\t\t\t\tcontext.factory.type.replace( /\\*.*/, '*' ),\n\t\t\t\t\t\t\t\t[ left.clone([]) ],\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]))\n\t\t\t\t}\n\n\t\t\t\tif (right) context = { factory: right.clone([]) }\n\t\t\t\telse if( operator && ! context.factory && $mol_view_tree2_class_match( operator ) ) {\n\t\t\t\t\tcontext = { factory: left.clone([]) }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst hacked = left.clone( left.hack( belt, context ) )\n\n\t\t\t\treturn [ hacked ]\n\t\t\t}\n\n\t\t}, { factory: undefined } as Context)\n\n\t\tfor (const prop of props_root ) add_inner(prop)\n\t\t\n\t\treturn Object.values(props_inner)\n\t}\n\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2) {\n\t\tconst name = prop.type\n\t\t\t? this.$mol_view_tree2_prop_parts(prop).name\n\t\t\t: prop.value\n\n\t\tif (! name) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Required valid prop name at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.data(name)\n\t}\n\t\n\tfunction channel_signature( this: $, prop: $mol_tree2, ... val: $mol_tree2[] ) {\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tif (next && ! val[0]?.value ) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Type empty for next value at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.struct( 'line', [\n\t\t\tprop.data(name),\n\t\t\tprop.data('( '),\n\t\t\t... key ? [\n\t\t\t\tprop.data('id'),\n\t\t\t\tprop.data( ': any' + ( next ? ', ' : '' ) ),\n\t\t\t] : [],\n\t\t\t... next ? [\n\t\t\t\tprop.data('next'),\n\t\t\t\tprop.data( '?: ' ),\n\t\t\t\t... val,\n\t\t\t\tprop.data(' '),\n\t\t\t] : [],\n\t\t\tprop.data(')'),\n\t\t] )\n\t\t\n\t}\n\n\tfunction return_type(this: $, klass: $mol_tree2, input: $mol_tree2) {\n\t\treturn [\n\t\t\tinput.data( 'ReturnType< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( '\\'] >' ),\n\t\t]\n\t}\n\n\tfunction parameters(this: $, klass: $mol_tree2, input: $mol_tree2, pick_index?: number) {\n\t\tconst result = [\n\t\t\tinput.data( 'Parameters< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( `'] >`),\n\t\t]\n\n\t\tif (pick_index !== undefined) {\n\t\t\tresult.push(input.data(`[${pick_index}]`))\n\t\t}\n\n\t\treturn result\n\t}\n\n\tfunction primitive_type(input: $mol_tree2) {\n\t\tlet type = 'string'\n\t\tif (input.type && $mol_tree2_js_is_number(input.type)) type = 'number'\n\n\t\tif (input.type === 'true' || input.type === 'false') type = 'boolean'\n\n\t\treturn input.data(type)\n\t}\n\n\tfunction readonly_arr(input: $mol_tree2, infered: readonly $mol_tree2[]) {\n\t\treturn [\n\t\t\tinput.data('readonly('),\n\t\t\tinfered.length === 1 ? infered[0] : input.struct( 'indent', infered),\n\t\t\tinput.data(')[]'),\n\t\t]\n\t}\n\n\tfunction type_enforce(this: $, name: $mol_tree2, a: readonly $mol_tree2[], b: readonly $mol_tree2[]) {\n\t\treturn name.struct('line', [\n\t\t\tname.data(`type ${ name.value.replace(/<.*>/g, '') } = $mol_type_enforce<` ),\n\t\t\tname.struct( 'indent', [\n\t\t\t\ta[0].struct('line', a),\n\t\t\t\ta[0].data(','),\n\t\t\t\tb[0].struct('line', b),\n\t\t\t]),\n\t\t\tname.data( '>' ),\n\t\t])\n\t}\n\n\texport function $mol_view_tree2_to_dts(this: $, tree: $mol_tree2) {\n\t\t\n\t\tconst descr = $mol_view_tree2_classes( tree )\n\t\t\n\t\tconst types = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\t\t\t\n\t\t\tlet assert_count = 0\n\t\t\tconst parent = this.$mol_view_tree2_child(klass)\n\t\t\tconst props = this.$mol_view_tree2_class_props(klass)\n\t\t\tconst aliases = [] as $mol_tree2[]\n\t\t\tconst context = { objects: [] as $mol_tree2[] }\n\t\t\tconst klass_name = klass.type.slice(1)\n\t\t\ttypes.push(\n\t\t\t\tklass.struct( 'line', [\n\t\t\t\t\tklass.data( 'export class ' ),\n\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\tparent.data( ' extends ' ),\n\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\tklass.data( ' {' ),\n\t\t\t\t] ),\n\t\t\t\t... props.map( prop => {\n\t\t\t\t\t\n\t\t\t\t\tconst val = prop.hack({\n\t\t\t\t\t\t\n\t\t\t\t\t\t'null': val => {\n\t\t\t\t\t\t\tconst kid = val.kids[0]\n\n\t\t\t\t\t\t\treturn kid?.type\n\t\t\t\t\t\t\t\t? [ kid.data(kid.type), val.data( ' | null' ) ]\n\t\t\t\t\t\t\t\t: [ val.data( 'any' ) ]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t\t'true': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t'false': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t\n\t\t\t\t\t\t'@': ( locale, belt )=> locale.hack( belt ),\n\t\t\t\t\t\t\n\t\t\t\t\t\t'<=>': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'<=': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'=>': () => [],\n\n\t\t\t\t\t\t'^': (input) => {\n\t\t\t\t\t\t\tconst host = input.kids.length ? klass : parent\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\thost.data(host.type),\n\t\t\t\t\t\t\t\tinput.kids.length ? input.kids[0] : prop\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'=': (input) => {\n\t\t\t\t\t\t\tconst left = input.kids[0]\n\t\t\t\t\t\t\tconst right = left.kids[0]\n\n\t\t\t\t\t\t\tconst left_parts = this.$mol_view_tree2_prop_parts(left)\n\t\t\t\t\t\t\tconst right_parts = this.$mol_view_tree2_prop_parts(right)\n\n\t\t\t\t\t\t\tlet conflict: 'next' | 'key' | undefined\n\n\t\t\t\t\t\t\t// if (left_parts.next && right_parts.next) conflict = 'next'\n\t\t\t\t\t\t\tif (left_parts.key && right_parts.key) conflict = 'key'\n\n\t\t\t\t\t\t\tif (conflict) {\n\t\t\t\t\t\t\t\tthis.$mol_fail(err`Only one \"${conflict}\" allowed: ${\n\t\t\t\t\t\t\t\t\tleft_parts[conflict]} at ${left.span} or ${\n\t\t\t\t\t\t\t\t\t\tright_parts[conflict]} at ${right.span}`)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst main = klass.data(klass.type)\n\t\t\t\t\t\t\tconst prop_parts = this.$mol_view_tree2_prop_parts(prop)\n\t\t\t\t\t\t\tconst method = prop.data(`${ klass.type }_${prop_parts.name}`)\n\t\t\t\t\t\t\tconst second_main = left_parts.key || left_parts.next ? main : left.struct('line',\n\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tconst second_key = left_parts.next || left_parts.key ? left : right\n\n\t\t\t\t\t\t\tif (prop_parts.key) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (prop_parts.next) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, prop_parts.key ? 1 : 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, (left_parts.next ? left_parts : right_parts).key ? 1 : 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tleft.struct('line',\n\t\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tname_of.call(this, right),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\t\t\t\tif (input.type[0] === '*') {\n\t\t\t\t\t\t\t\tlet unions = [] as $mol_tree2[]\n\n\t\t\t\t\t\t\t\tconst hacked = ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t\t\t... input.kids.map( kid => {\n\t\t\t\t\t\t\t\t\t\tif (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t\tunions = unions.concat(kid.data(' & '), kid.hack_self(belt, context))\n\t\t\t\t\t\t\t\t\t\t\treturn []\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tconst child = this.$mol_view_tree2_child(kid)\n\t\t\t\t\t\t\t\t\t\tconst ret = child.hack_self( belt )\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct( 'line', kid.type.match(/(?:\\*|\\?)/)\n\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\tchannel_signature.call(this, kid, ...ret),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data(': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\''),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( kid.type || kid.value ),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\tif (input.type.length > 1 || ! hacked.length) {\n\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\tinput.data('Record<string, '),\n\t\t\t\t\t\t\t\t\t\tinput.data(input.type.slice(1) || 'any'),\n\t\t\t\t\t\t\t\t\t\tinput.data('>'),\n\t\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data('({ '),\n\t\t\t\t\t\t\t\t\tinput.struct( 'indent', hacked),\n\t\t\t\t\t\t\t\t\tinput.data('}) '),\n\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( input.type[0] === '/' ) {\n\t\t\t\t\t\t\t\tconst array_type = [\n\t\t\t\t\t\t\t\t\tinput.type.length > 1\n\t\t\t\t\t\t\t\t\t\t? input.data(input.type.slice(1))\n\t\t\t\t\t\t\t\t\t\t: input.data('any')\n\t\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t\tif (array_type[0].value === 'any') {\n\t\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor (const kid of input.kids) {\n\t\t\t\t\t\t\t\t\tlet result = kid.hack_self(belt, context) as $mol_tree2[]\n\n\t\t\t\t\t\t\t\t\tconst val = result[0].value\n\n\t\t\t\t\t\t\t\t\tif (val === 'string') {\n\t\t\t\t\t\t\t\t\t\tresult = kid.value.includes('`')\n\t\t\t\t\t\t\t\t\t\t\t? [ kid.data(JSON.stringify(kid.value))]\n\t\t\t\t\t\t\t\t\t\t\t: [ kid.data('`'), kid , kid.data('`') ]\n\t\t\t\t\t\t\t\t\t} else if (val === 'boolean') result = [ kid.data(kid.type) ]\n\t\t\t\t\t\t\t\t\telse if (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t result.push((kid.kids[0] ?? prop).data('[number]'))\n\t\t\t\t\t\t\t\t\t} else continue\n\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tinput.data(`${ klass.type }_${prop.type.replace(/[\\?\\*]*/g, '')}__${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t\t\tarray_type\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\t\t\t\tconst first = input.kids[0]\n\t\t\t\t\t\t\t\tif( first?.type[0] === '/' ) {\n\n\t\t\t\t\t\t\t\t\tconst args = first.kids.map( (kid, index) => {\n\t\t\t\t\t\t\t\t\t\tconst result = kid.hack_self(belt, context) as $mol_tree2[]\n\t\t\t\t\t\t\t\t\t\tif (index !== 0) result.unshift(kid.data(', '))\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct('line', result)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tfirst.data(`${input.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data('[ '),\n\t\t\t\t\t\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data( ' ]' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( `ConstructorParameters< typeof `),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(input.type),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(` >`),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t} else for( const over of input.kids ) {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tconst name = name_of.call(this, over )\n\t\t\t\t\t\t\t\t\tconst bind = this.$mol_view_tree2_child(over)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tover.data(`${ input.type }__${ name.value }_${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tover.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t\treturn_type.call(\n\t\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t\t\t\t\tover,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tprimitive_type(input)\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t}, context)\n\t\n\t\t\t\t\treturn prop.struct( 'indent', [\n\t\t\t\t\t\tprop.struct( 'line', [\n\t\t\t\t\t\t\tchannel_signature.call(this, prop, ... val ), // Parameter, not Return\n\t\t\t\t\t\t\tprop.data(': '),\n\t\t\t\t\t\t\t... val,\n\t\t\t\t\t\t] )\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t} ).filter($mol_guard_defined),\n\t\t\t\t... aliases,\n\t\t\t\tklass.data( '}' ),\n\t\t\t\tdescr.data(''),\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.data( 'declare namespace $ {' ),\n\t\t\tdescr.data( '' ),\n\t\t\tdescr.struct( 'indent', types ),\n\t\t\tdescr.data( '}' ),\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\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\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\n\t\t\t// \t\t}\n\t\t\t\t\t\n\t\t\t// \t}\n\t\t\t\t\n\t\t\t// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\t// if( value instanceof DataView ) return [ ... new Uint8Array( value.buffer ) ]\n\t\t\tif( value instanceof TypedArray ) return [ ... value as any ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this.$\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakSet< any >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.has( error ) ) return false\n\t\t\n\t\tcatched.add( error )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\treturn error\n\t\t}\n\t}\n\t\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst internals = mod.builtinModules\n\t\n\texport function $node_internal_check(name: string) {\n\t\tif ( name.startsWith('node:') ) return true\n\t\treturn internals.includes(name)\n\t}\n\n}\n","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 $$ = ( $ as any )\n\t\tif( $$.$node_internal_check(name, target) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\ttry {\n\t\t\ttarget.require.resolve( name )\n\t\t} catch {\n\t\t\n\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\n\t\t\ttry {\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t} catch (e) {\n\t\t\t\tif( $$.$mol_promise_like( e ) ) $$.$mol_fail_hidden( e )\n\t\t\t\t$$.$mol_fail_log(e)\n\t\t\t}\n\n\t\t\tconst mam_node_modules = target.require('node:path').join(process.cwd(), 'node_modules')\n\t\t\tif (! process.env.NODE_PATH?.includes(mam_node_modules)) {\n\t\t\t\tprocess.env.NODE_PATH=`${mam_node_modules}${process.env.NODE_PATH ? `:${process.env.NODE_PATH}` : ''}`\n\t\t\t\ttarget.require('node:module').Module._initPaths()\n\t\t\t}\n\t\t}\n\n\t\treturn target.require( name )\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nconst cache = new Map< string, any >()\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : readonly string[]\n\t) {\n\t\treturn this.$mol_run.spawn( { command: [ command, ...args ], dir } )\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\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\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\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only'\n\t\t| 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\treturn 0\n\t\t}\n\n\t\tread() {\n\t\t\treturn new Uint8Array()\n\t\t}\n\n\t\ttruncate(size: number) {}\n\n\t\tclose() {}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync(this.descr())\n\t\t}\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\t/**\n\t * Localisation in $mol framework\n\t * @see https://mol.hyoo.ru/#!section=docs/=s5aqnb_odub8l\n\t */\n\texport class $mol_locale extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang_default() {\n\t\t\treturn 'en'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang( next? : string ) {\n\t\t\treturn this.$.$mol_state_local.value( 'locale' , next ) || $mol_dom_context.navigator.language.replace( /-.*/ , '' ) || this.lang_default()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic source( lang : string ) {\n\t\t\treturn JSON.parse( this.$.$mol_file.relative( `web.locale=${ lang }.json` ).text().toString() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic texts( lang : string , next? : $mol_locale_dict ) : $mol_locale_dict {\n\t\t\tif( next ) return next\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn this.source( lang ).valueOf()\n\t\t\t} catch( error: any ) {\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\tconst def = this.lang_default()\n\t\t\t\t\tif( lang === def ) throw error\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ): string {\n\t\t\t\n\t\t\tconst lang = this.lang()\n\n\t\t\tconst target = this.texts( lang )[ key ]\n\t\t\tif( target ) return target\n\t\t\t\n\t\t\tthis.warn( key )\n\t\t\t\n\t\t\tconst en = this.texts( 'en' )[ key ]\n\t\t\tif( !en ) return key\n\t\t\t\n\t\t\treturn en\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic warn( key : string ) {\n\t\t\tconsole.warn( `Not translated to \"${ this.lang() }\": ${ key }` )\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_parts(prop).name\n\t}\n\t\n\tfunction params_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\t\n\tfunction args_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? key.length > 1\n\t\t\t\t\t? [ prop.data( key.slice(1) ) ]\n\t\t\t\t\t: [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\n\tfunction call_method_name(this: $, child: $mol_tree2, optional: boolean) {\n\t\treturn child.struct( optional ? '?.[]' : '[]', [\n\t\t\tchild.data( name_of.call( this, child ) )\n\t\t] )\n\t}\n\n\tfunction call_of(this: $, bind: $mol_tree2, bidi = true) {\n\t\tif( bind.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\terr`Required one child at ${bind.span}`\n\t\t\t)\n\t\t}\n\n\t\tconst chain = [ bind.struct( 'this' ) ]\n\n\t\tfor (const child of bind.kids) {\n\t\t\tchain.push(\n\t\t\t\tcall_method_name.call(this, child, chain.length > 1),\n\t\t\t\targs_of.call(this, child, bidi),\n\t\t\t)\n\t\t}\n\n\t\treturn bind.struct( '()', chain )\n\t}\n\n\ttype Context = { chain?: string[] }\n\t\n\tconst localized_string = $$.$mol_tree2_from_string(`\n\t\t()\n\t\t\tthis\n\t\t\t[] \\\\$\n\t\t\t[] \\\\$mol_locale\n\t\t\t[] \\\\text\n\t\t\t(,) #key\n\t`, 'localized_string' )\n\n\tfunction klass_body(\n\t\tthis: $,\n\t\tacc: {\n\t\t\tklass: $mol_tree2\n\t\t\taddons: $mol_tree2[]\n\t\t\tmembers: $mol_tree2[]\n\t\t},\n\t\tprop: $mol_tree2\n\t) {\n\t\tconst { klass, members, addons } = acc\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tconst decorate = ()=> {\n\t\t\treturn prop.struct( '()', [\n\t\t\t\tprop.struct( key ? '$mol_mem_key' : '$mol_mem' ),\n\t\t\t\tprop.struct( '(,)', [\n\t\t\t\t\tprop.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tprop.data( 'prototype' ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tprop.data( name ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t}\n\t\tconst op = prop.kids[0]\n\t\tconst is_delegate = op?.type === '<=>' || op?.type === '='\n\t\tif( ! is_delegate && next ) addons.push( decorate() )\n\t\t\n\t\tconst val = prop.hack<Context>({\n\t\t\t\n\t\t\t'@': ( locale, belt, context )=> {\n\t\t\t\tconst chain = context.chain?.join('_')\n\n\t\t\t\treturn localized_string.hack({\n\t\t\t\t\t'#key': key => [ locale.data( `${ klass.type }_${ name }${ chain ? `_${chain}` : '' }` ) ],\n\t\t\t\t})\n\t\t\t},\n\t\t\t\n\t\t\t'<=': bind => [ call_of.call(this, bind, false) ],\n\n\t\t\t'<=>': bind => [ call_of.call(this, bind, true) ],\n\t\t\t\n\t\t\t'=>': bind => [],\n\t\t\t\n\t\t\t'^': ( ref, belt, context )=> [\n\t\t\t\tref.struct( '...', [\n\t\t\t\t\t\n\t\t\t\t\t// prop ^ foo\n\t\t\t\t\tref.kids[0]?.type\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name_of.call(this, ref.kids[0]) ) ] ),\n\t\t\t\t\t\targs_of.call(this, ref.kids[0])\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// Having $having foo / ^\n\t\t\t\t\t: context.chain\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( '$' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( op.type ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'prototype' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( context.chain[0] ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'call' ) ] ),\n\t\t\t\t\t\tref.struct( '(,)', [ ref.struct( 'obj' ) ] ),\n\t\t\t\t\t\t... context.chain.slice(1).map( field => ref.struct( '[]', [ ref.data( field ) ] ) )\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// prop ^\n\t\t\t\t\t: ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'super' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name ) ] ),\n\t\t\t\t\t\tref.struct( '(,)' )\n\t\t\t\t\t] ),\n\t\t\t\t\t\n\t\t\t\t] ),\n\t\t\t],\n\n\t\t\t'=': bind => [ bind.struct( '()', [\n\t\t\t\tbind.struct( 'this' ),\n\t\t\t\t... bind.hack({ '': ( method, belt, ctx )=> [\n\t\t\t\t\tcall_method_name.call( this, method, (ctx.item_index++) > 0 ),\n\t\t\t\t\targs_of.call( this, method ),\n\t\t\t\t\t... method.hack( belt ),\n\t\t\t\t] }, { item_index: 0 }),\n\t\t\t] ) ],\n\t\t\t\t\n\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct('{,}',\n\t\t\t\t\t\t\tinput.kids.map( field => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( field.type === '^' ) return field.list([ field ]).hack( belt, context )[0]\n\t\t\t\t\t\t\t\tconst field_name = (field.type || field.value).replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\treturn field.struct( ':', [\n\t\t\t\t\t\t\t\t\tfield.data( field_name ),\n\t\t\t\t\t\t\t\t\tfield.kids[0].type === '<=>'\n\t\t\t\t\t\t\t\t\t\t? field.struct( '=>', [\n\t\t\t\t\t\t\t\t\t\t\tparams_of.call(this, field ),\n\t\t\t\t\t\t\t\t\t\t\t... field.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t: field.hack<Context>( belt, {... context, chain: [...context.chain ?? [], field_name] })[0],\n\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} ).filter( this.$mol_guard_defined )\n\t\t\t\t\t\t)\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( input.type[0] === '/' ) return [\n\t\t\t\t\tinput.struct( '[,]', input.hack( belt, context ) ),\n\t\t\t\t]\n\t\t\t\tif( input.type && $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput\n\t\t\t\t]\n\n\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\tif( ! next ) addons.push( decorate() )\n\t\t\t\t\t\n\t\t\t\t\tconst overrides = [] as $mol_tree2[]\n\t\t\t\t\t\n\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( over.type[0] === '/' ) continue\n\t\t\t\t\t\tconst bind = over.kids[0]\n\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\n\t\t\t\t\t\tconst over_name = name_of.call(this, over )\n\n\t\t\t\t\t\tconst body = [\n\t\t\t\t\t\t\targs_of.call(this, over ),\n\t\t\t\t\t\t\tover.struct( '()', over.hack( belt, { chain: [ over.type ] } )),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\toverrides.push(\n\t\t\t\t\t\t\tover.struct( '=', [\n\t\t\t\t\t\t\t\tover.struct( '()', [\n\t\t\t\t\t\t\t\t\tover.struct( 'obj' ),\n\t\t\t\t\t\t\t\t\tover.struct( '[]', [\n\t\t\t\t\t\t\t\t\t\tover.data( over_name ),\n\t\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\tover.struct( '=>', body ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'const', [\n\t\t\t\t\t\t\tinput.struct( 'obj' ),\n\t\t\t\t\t\t\tinput.struct( 'new', [\n\t\t\t\t\t\t\t\tinput.struct( 'this' ),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( '$' ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( input.type.replace(/<.+>/g, '') ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct( '(,)', input.select( '/', null ).hack( belt ) ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\t... overrides,\n\t\t\t\t\t\tinput.struct( 'obj' ),\n\t\t\t\t\t]\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ input ]\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t})\n\n\t\tmembers.push(\n\t\t\tprop.struct( '.', [\n\t\t\t\tprop.data( name ),\n\t\t\t\tparams_of.call(this, prop ),\n\t\t\t\tprop.struct( '{;}', [\n\t\t\t\t\t... next && ! is_delegate ? [\n\t\t\t\t\t\tprop.struct( 'if', [\n\t\t\t\t\t\t\tprop.struct( '(!==)', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t\tprop.struct( 'undefined' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\tprop.struct( 'return', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] : [],\n\t\t\t\t\t... val.slice( 0, -1 ),\n\t\t\t\t\tprop.struct( 'return', val.slice( -1 ) ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t)\n\n\t\treturn acc\n\t}\n\n\texport function $mol_view_tree2_to_js( this: $, descr: $mol_tree2 ) {\n\t\t\n\t\tdescr = $mol_view_tree2_classes( descr )\n\t\t\n\t\tconst definitions = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst parent = klass.kids[0]\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst addons = [] as $mol_tree2[]\n\t\t\tconst members = [] as $mol_tree2[]\n\t\t\tconst acc = { klass, addons, members }\n\n\t\t\tfor( const prop of props ) {\n\t\t\t\ttry {\n\t\t\t\t\tklass_body.call( this, acc, prop )\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\te.message += ` at ${prop.span}`\n\t\t\t\t\t$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefinitions.push(\n\t\t\t\tklass.struct( '=', [\n\t\t\t\t\tklass.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tklass.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tklass.struct( 'class', [\n\t\t\t\t\t\tklass.struct( klass.type ),\n\t\t\t\t\t\tparent.struct( 'extends', [\n\t\t\t\t\t\t\tparent.struct( '()', [\n\t\t\t\t\t\t\t\tparent.struct( '$' ),\n\t\t\t\t\t\t\t\tparent.struct( '[]', [\n\t\t\t\t\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tklass.struct( '{}', members ),\n\t\t\t\t\t] ),\n\t\t\t\t] ),\n\t\t\t\t... addons,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.struct( ';', definitions )\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_to_locale(this: $, module: $mol_tree2) {\n\t\tconst locales: Record<string, string> = {}\n\t\tconst descr = $mol_view_tree2_classes( module )\n\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst acc = { chain: [] as string[] }\n\n\t\t\tfor (const prop of props) {\n\t\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\t\t\tprop.hack<typeof acc>({\n\t\t\t\t\t'': ( input, belt, context )=> {\n\t\t\t\t\t\tif( input.type[0] === '@' ) {\n\t\t\t\t\t\t\tconst chain = context.chain?.join('_')\n\t\t\t\t\t\t\tconst path = `${ klass.type }_${ name }${chain.length ? `_${chain}` : ''}`\n\t\t\t\t\t\t\tlocales[path] = input.kids[0].text()\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\t\t\tfor( const field of input.kids ) {\n\t\t\t\t\t\t\t\tif( field.type === '^' ) continue\n\n\t\t\t\t\t\t\t\tconst field_name = field.type.replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\tfield.hack( belt, {\n\t\t\t\t\t\t\t\t\t... context,\n\t\t\t\t\t\t\t\t\tchain: [\n\t\t\t\t\t\t\t\t\t\t...context.chain ?? [],\n\t\t\t\t\t\t\t\t\t\tfield_name\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( /^[$A-Z]/.test( input.type ) ) {\n\t\t\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\t\tif( over.type === '/' ) continue\n\n\t\t\t\t\t\t\t\tconst oname = this.$mol_view_tree2_prop_parts( over ).name\n\t\t\t\t\t\t\t\tover.hack( belt, { ... context, chain: [ oname ] } )\n\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [ input ]\n\t\t\t\t\t}\n\t\t\t\t}, acc)\n\t\t\t}\n\t\t}\n\n\t\treturn locales\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_to_text( this: $, tree: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_js_to_text( this.$mol_view_tree2_to_js( tree ) )\n\t}\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $ )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> any >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tconst res = test( context )\n\t\t\tif( $mol_promise_like( res ) ) {\n\t\t\t\tawait new Promise( ( done, fail )=> {\n\t\t\t\t\tres.then( done, fail )\n\t\t\t\t\tsetTimeout( ()=> fail( new Error( 'Test timeout: ' + test.name ) ), 1000 )\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t$$.$mol_log3_done({\n\t\t\tplace: '$mol_test',\n\t\t\tmessage: 'All tests passed',\n\t\t\tcount: $mol_test_all.length,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( async ()=> {\n\t\t\t\n\t\t\tscheduled = false\n \t\t\t\n\t\t\tawait $mol_test_run()\n\t\t\t$$.$mol_test_complete()\n\t\t\t\n\t\t} , 1000 )\n\t\t\n\t}\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ] as const\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} as any , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_test_complete() {\n\t\tprocess.exit(0)\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'FQN of anon function'($) {\n\t\t\tconst $$ = Object.assign( $ , { $mol_func_name_test : ( ()=> ()=> {} )() } )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name( $$.$mol_func_name_test ) , '$mol_func_name_test' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '$mol_func_name_test' )\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\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} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","/** @jsx $mol_jsx */\n/** @jsxFrag $mol_jsx_frag */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (<div/>).outerHTML , '<div></div>' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = <input value='123' /> as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<input value=\"123\">' )\n\t\t\t$mol_assert_equal( dom.value, '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom = <div class={ 'foo bar' } />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div class=\"foo bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom = <div style={{ color: 'red' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div style=\"color: red;\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom = <div dataset={{ foo: 'bar' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div data-foo=\"bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom = <div lang=\"ru\" hidden />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div lang=\"ru\" hidden=\"\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define child nodes'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\thello\n\t\t\t\t\t<strong>world</strong>\n\t\t\t\t\t!\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div>hello<strong>world</strong>!</div>' )\n\n\t\t} ,\n\n\t\t'Make fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<>\n\t\t\t\t\t<br />\n\t\t\t\t\t<hr />\n\t\t\t\t</>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_dom_serialize( dom ), '<br xmlns=\"http://www.w3.org/1999/xhtml\" /><hr xmlns=\"http://www.w3.org/1999/xhtml\" />' )\n\n\t\t} ,\n\n\t\t'Spread fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\t<>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<hr />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div><br><hr></div>' )\n\n\t\t} ,\n\n\t\t'Function as component'() {\n\n\t\t\tconst Button = (\n\t\t\t\tprops: { hint: string },\n\t\t\t\ttarget: ()=> string,\n\t\t\t) => {\n\t\t\t\treturn <button title={ props.hint } >{ target() }</button>\n\t\t\t}\n\n\t\t\tconst dom = <Button id=\"foo\" hint=\"click me\">{ ()=> 'hey!' }</Button>\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<button id=\"foo\" title=\"click me\" class=\"Button\">hey!</button>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Nested guid generation'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"bar\">\n\t\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t</Bar>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: {}, icon: Element )=> {\n\t\t\t\treturn <span>{ icon }<i id=\"label\"/></span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"foo\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"foo\" class=\"Foo\"><span id=\"foo/bar\" class=\"Foo_bar Bar\"><img id=\"foo/icon\" class=\"Foo_icon\"><i id=\"foo/bar/label\" class=\"Foo_bar_label Bar_label\"></i></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on non unique ids'() {\n\n\t\t\tconst App = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <App id=\"foo\" />, 'JSX already has tag with id \"foo/bar\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Owner based guid generationn'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"middle\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"app\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"app\" class=\"Foo\"><span id=\"app/middle\" class=\"Foo_middle Bar\"><img id=\"app/icon\" class=\"Foo_icon\"></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on same ids from different caller'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t<Bar id=\"bar\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <Foo id=\"foo\" />, 'JSX already has tag with id \"foo/icon\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/** Lazy computed lists with native Array interface. $mol_range2_array is mutable but all derived ranges are immutable. */\n\texport function $mol_range2< Item = number >(\n\t\titem: Item[] | ( ( index : number )=> Item ) = index => index as any ,\n\t\tsize = ()=> Number.POSITIVE_INFINITY ,\n\t): Item[] {\n\t\t\n\t\tconst source = typeof item === 'function' ? new $mol_range2_array< Item >() : item\n\t\t\n\t\tif( typeof item !== 'function' ) {\n\t\t\titem = index => source[ index ]\n\t\t\tsize = ()=> source.length\n\t\t}\n\n\t\treturn new Proxy( source , {\n\n\t\t\tget( target , field ) {\n\n\t\t\t\tif( typeof field === 'string' ) {\n\t\t\t\t\tif( field === 'length' ) return size()\n\t\t\t\t\t\n\t\t\t\t\tconst index = Number( field )\n\t\t\t\t\tif( index < 0 ) return undefined\n\t\t\t\t\tif( index >= size() ) return undefined\n\t\t\t\t\tif( index === Math.trunc( index ) ) return ( item as any )( index )\n\t\t\t\t}\n\n\t\t\t\treturn $mol_range2_array.prototype[ field as any ]\n\t\t\t} ,\n\n\t\t\tset( target , field ) {\n\t\t\t\treturn $mol_fail( new TypeError( `Lazy range is read only (trying to set field ${ JSON.stringify( field ) })` ) )\n\t\t\t} ,\n\n\t\t\townKeys( target ) {\n\t\t\t\treturn [ ... Array( size() ) ].map( ( v, i ) => String( i ) ).concat( 'length' )\n\t\t\t} ,\n\n\t\t\tgetOwnPropertyDescriptor( target , field ) : PropertyDescriptor | undefined {\n\t\t\t\t\n\t\t\t\tif( field === \"length\" ) return {\n\t\t\t\t\tvalue : size() ,\n\t\t\t\t\twritable : true ,\n\t\t\t\t\tenumerable : false ,\n\t\t\t\t\tconfigurable : false ,\n\t\t\t\t}\n\n\t\t\t\tconst index = Number( field )\n\t\t\t\tif( index === Math.trunc( index ) ) return {\n\t\t\t\t\tget : ()=> this.get!( target , field , this ) ,\n\t\t\t\t\tenumerable : true ,\n\t\t\t\t\tconfigurable : true ,\n\t\t\t\t}\n\n\t\t\t\treturn Object.getOwnPropertyDescriptor( target , field )\n\t\t\t}\n\n\t\t} )\n\n\t}\n\n\texport class $mol_range2_array< Item > extends Array< Item > {\n\t\t\n\t\t// Lazy\n\t\tconcat( ... tail : Item[][] ) : Item[] {\n\t\t\tif( tail.length === 0 ) return this as any\n\n\t\t\tif( tail.length > 1 ) {\n\t\t\t\tlet list = this as any\n\t\t\t\tfor( let item of tail ) list = list.concat( item )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => index < this.length ? this[ index ] : tail[0][ index - this.length ] ,\n\t\t\t\t()=> this.length + tail[0].length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tfilter< Context > (\n\t\t\tcheck : ( val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\t\n\t\t\tconst filtered = [] as Item[]\n\t\t\tlet cursor = -1\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => {\n\t\t\t\t\t\n\t\t\t\t\twhile( cursor < this.length && index >= filtered.length - 1 ) {\n\t\t\t\t\t\tconst val = this[ ++ cursor ]\n\t\t\t\t\t\tif( check( val, cursor, this ) ) filtered.push( val )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn filtered[ index ]\n\t\t\t\t},\n\t\t\t\t()=> cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t// Diligent\n\t\tforEach< Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> void ,\n\t\t\tcontext? : Context,\n\t\t) {\n\t\t\tfor( let [ key , value ] of this.entries() ) proceed.call( context as Context , value , key , this )\n\t\t}\n\n\t\t// Lazy\n\t\tmap< Item_out , Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> Item_out ,\n\t\t\tcontext? : Context ,\n\t\t) : Item_out[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => proceed.call( context as Context , this[ index ] , index , this ) ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Diligent\n\t\treduce< Result > (\n\t\t\tmerge : ( result : Result , val : Item , index : number , list : Item[] )=> Result ,\n\t\t\tresult? : Result ,\n\t\t) {\n\t\t\tlet index = 0\n\n\t\t\tif( arguments.length === 1 ) {\n\t\t\t\tresult = this[ index ++ ] as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( ; index < this.length ; ++ index ) {\n\t\t\t\tresult = merge( result as Result , this[ index ] , index , this as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\n\t\t// Lazy\n\t\ttoReversed(): Item[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ this.length - 1 - index ] ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tslice( from = 0 , to = this.length ) {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ from + index ] ,\n\t\t\t\t()=> Math.min( to , this.length ) - from ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tsome< Context > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( check.call( context as Context , this[ index ] , index , this ) ) return true\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\t// Lazy\n\t\tevery< Narrow extends Item, Context = null >( check: ( value: Item, index: number, array: Item[] )=> value is Narrow, context?: Context ): this is Narrow[]\n\t\tevery< Context = null > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( !check.call( context as Context , this[ index ] , index , this as any as Item[] ) ) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\n\t\treverse() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable reverse is forbidden. Use toReversed instead.` ) )\n\t\t}\n\n\t\tsort() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable sort is forbidden. Use toSorted instead.` ) )\n\t\t}\n\t\t\n\t\tindexOf( needle: Item ) {\n\t\t\treturn this.findIndex( item => item === needle )\n\t\t}\n\t\t\n\t\t[Symbol.toPrimitive]() {\n\t\t\treturn $mol_guid()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'lazy calls'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 10 )\n\n\t\t\t$mol_assert_equal( list[-1] , undefined )\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 9 )\n\t\t\t$mol_assert_equal( list[9.5] , undefined )\n\t\t\t$mol_assert_equal( list[10] , undefined )\n\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'infinity list'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) )\n\n\t\t\t$mol_assert_equal( list.length , Number.POSITIVE_INFINITY )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[Number.MAX_SAFE_INTEGER] , Number.MAX_SAFE_INTEGER )\n\t\t\t$mol_assert_equal( list[Number.POSITIVE_INFINITY] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t} ,\n\n\t\t'stringify'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\t\t\t$mol_assert_equal( list.join(';') , '0;1;2;3;4' )\n\n\t\t} ,\n\n\t\t'for-of'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i of $mol_range2( i => i + 1 , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '12345' )\n\n\t\t} ,\n\n\t\t'for-in'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i in $mol_range2( i => i , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'forEach'() {\n\n\t\t\tlet log = ''\n\n\t\t\t$mol_range2( i => i , ()=> 5 ).forEach( i => log += i )\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'reduce'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2().slice( 1 , 6 )\n\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v ) , 15 )\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v , 5 ) , 20 )\n\n\t\t} ,\n\n\t\t'lazy concat'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 ).concat(\n\t\t\t\t[ 0 , 1 , 2 , 3 , 4 ] ,\n\t\t\t\t$mol_range2( index => ( ++ calls2 , index ) , ()=> 5 ) ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 15 )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[5] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 4 )\n\t\t\t$mol_assert_equal( list[10] , 0 )\n\t\t\t$mol_assert_equal( list[14] , 4 )\n\t\t\t$mol_assert_equal( list[15] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy filter'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 15 ).filter( v => v % 2 ).slice( 0 , 3 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 1 )\n\t\t\t$mol_assert_equal( list[2] , 5 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 8 )\n\n\t\t} ,\n\n\t\t'lazy reverse'() {\n\t\t\tlet calls = 0\n\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).toReversed().slice(0, 3)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 9 )\n\t\t\t$mol_assert_equal( list[2] , 7 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy map'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst source = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 )\n\t\t\tconst target = source.map(\n\t\t\t\t( item , index , self )=> {\n\t\t\t\t\t++ calls2\n\t\t\t\t\t$mol_assert_equal( source , self )\n\t\t\t\t\treturn index + 10\n\t\t\t\t} ,\n\t\t\t\t()=> 5 ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, target instanceof Array )\n\t\t\t$mol_assert_equal( target.length , 5 )\n\n\t\t\t$mol_assert_equal( target[0] , 10 )\n\t\t\t$mol_assert_equal( target[4] , 14 )\n\t\t\t$mol_assert_equal( target[5] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy slice'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).slice( 3 , 7 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( list[0] , 3 )\n\t\t\t$mol_assert_equal( list[3] , 6 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy some'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).some( v => v >= 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i , ()=> 0 ).some( v => true ) )\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i ).some( v => v > 5 ) )\n\t\t} ,\n\n\t\t'lazy every'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).every( v => v < 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i , ()=> 0 ).every( v => false ) )\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i ).every( v => v < 5 ) )\n\t\t} ,\n\n\t\t'lazyfy'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2([ 0 , 1 , 2 , 3 , 4 , 5 ]).map( i => ( ++ calls , i + 10 ) ).slice( 2 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( calls , 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( list[0] , 12 )\n\t\t\t$mol_assert_equal( list[3] , 15 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'prevent modification'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_fail( ()=> list.push( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.pop() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.unshift( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.shift() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.splice( 1 , 2 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list[ 1 ] = 2 , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.reverse() , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.sort() , TypeError )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\n\t\t}\n\n\t})\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\t$mol_test({\n\n\t\t'nulls & undefineds'() {\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( null , null ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( undefined , undefined ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( undefined , null ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , null ) )\n\t\t\t\n\t\t} ,\n\n\t\t'number'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( 1 , 1 ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Number.NaN , Number.NaN ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( 1 , 2 ) )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( 1 ) , Object( 1 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( Object( 1 ) , Object( 2 ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( {} , {} ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { b : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { a : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , { a : undefined } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a: 1, b: 2 } , { b: 2, a: 1 } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a : { b : 1 } } , { a : { b : 1 } } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object.create(null), Object.create(null) ) )\n\t\t} ,\n\n\t\t'Array'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 ] , [ 1 , 3 ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 , ] , [ 1 , 3 , undefined ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2().slice(0,0), new Array() ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2(), $mol_range2() ) )\n\t\t\t\n\t\t} ,\n\n\t\t'Non POJO are different'() {\n\t\t\t\n\t\t\tclass Thing extends Object {}\n\t\t\t$mol_assert_not( $mol_compare_deep( new Thing , new Thing ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( ()=> 1 , ()=>1 ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new RangeError( 'Test error' ) , new RangeError( 'Test error' ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO with symbols'() {\n\t\t\tconst sym = Symbol()\n\t\t\t$mol_assert_ok( $mol_compare_deep( { [ sym ]: true }, { [ sym ]: true } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { [ Symbol() ]: true }, { [ Symbol() ]: true } ) )\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference'() {\n\n\t\t\tconst a = { foo : {} }\n\t\t\t;(a as any)['self'] = a\n\n\t\t\tconst b = { foo : {} }\n\t\t\t;(b as any)['self'] = b\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference with cache warmup'() {\n\t\t\tconst obj1 = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj1_copy = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj2 = { test: 2, obj1 }\n\t\t\tconst obj2_copy = { test: 2, obj1: obj1_copy }\n\t\t\tconst obj3 = { test: 3, obj2 }\n\t\t\tconst obj3_copy = { test: 3, obj2: obj2_copy }\n\n\t\t\tobj1.obj3 = obj3\n\t\t\tobj1_copy.obj3 = obj3_copy\n\n\t\t\t// warmup cache\n\t\t\t$mol_assert_not( $mol_compare_deep( obj1 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj2 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj3 , {} as any ) )\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( obj3 , obj3_copy ) )\n\n\t\t} ,\n\n\t\t'Date'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Date( 12345 ) , new Date( 12345 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Date( 12345 ) , new Date( 12346 ) ) )\n\t\t} ,\n\n\t\t'RegExp'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( /\\x22/mig , /\\x22/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x21/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x22/mg ) )\n\t\t} ,\n\n\t\t'Error'() {\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( new Error( 'xxx' ) , new Error( 'xxx' ) ) )\n\n\t\t\tconst fail = ( message: string )=> new Error( message )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'xxx' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'yyy' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t} ,\n\n\t\t'Map'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map , new Map ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ 1 , [2] ] ]) , new Map([ [ 1 , [2] ] ]) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [1] , 2 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ 1 , 2 ] ]) , new Map([ [ 1 , 3 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [3] , 2 ] ]) ) )\n\t\t} ,\n\t\t\n\t\t'Set'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set , new Set ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set([ 1 , [2] ]) , new Set([ 1 , [2] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Set([ 1 ]) , new Set([ 2 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\t\t\n\t\t'DataView'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array().buffer ) , new DataView( new Uint8Array().buffer ) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]).buffer ) , new DataView( new Uint8Array([ 0 ]).buffer ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]). buffer ) , new DataView( new Uint8Array([ 1 ]).buffer ) ) )\n\t\t} ,\n\t\t\n\t\t'Serializale'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\t\n\t\t\t\tconstructor(\n\t\t\t\t\treadonly name: string,\n\t\t\t\t\treadonly rand = Math.random(),\n\t\t\t\t) {}\n\t\t\t\t\n\t\t\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\t\t\treturn this.name\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( new User( 'Jin' ), new User( 'Jin' ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new User( 'Jin' ), new User( 'John' ) ) )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Iterable'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new URLSearchParams({ foo: 'bar' }), new URLSearchParams({ foo: 'bar' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx' }), new URLSearchParams({ foo: 'yyy' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx', bar: 'yyy' }), new URLSearchParams({ bar: 'yyy', foo: 'xxx' }) ) )\n\t\t} ,\n\t\t\n\t})\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Argument must be Truthy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_ok( value : any ) {\n\t\tif( value ) return\n\t\t$mol_fail( new Error( `${value} ≠ true` ) )\n\t}\n\t\n\t/**\n\t * Argument must be Falsy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_not( value : any ) {\n\t\tif( !value ) return\n\t\t$mol_fail( new Error( `${value} ≠ false` ) )\n\t}\n\t\n\t/**\n\t * Handler must throw an error.\n\t * @example\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } ) // Passes because throws error\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , 'Parse error' ) // Passes because throws right message\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , Error ) // Passes because throws right class\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_fail(\n\t\thandler: ()=> any ,\n\t\tErrorRight: string | typeof Error | typeof Promise\n\t) {\n\t\t\n\t\tconst fail = $.$mol_fail\n\t\t\n\t\ttry {\n\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\t\t\t\n\t\t\thandler()\n\n\t\t} catch( error: any ) {\n\t\t\t\n\t\t\t$.$mol_fail = fail\n\n\t\t\tif( typeof ErrorRight === 'string' ) {\n\t\t\t\t$mol_assert_equal( error.message ?? error, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_equal( error instanceof ErrorRight, true )\n\t\t\t}\n\t\t\t\n\t\t\treturn error\n\n\t\t} finally {\n\t\t\t$.$mol_fail = fail\n\t\t}\n\n\t\t$mol_fail( new Error( 'Not failed' ) )\n\t}\n\t\n\t/** @deprecated Use $mol_assert_equal */\n\texport function $mol_assert_like< Value >( ... args : [ Value, Value, ...Value[] ] ) {\n\t\t$mol_assert_equal( ... args )\n\t}\n\t\n\t/**\n\t * All arguments must not be structural equal to each other.\n\t * @example\n\t * $mol_assert_unique( 1 , 2 , 3 ) // Passes\n\t * $mol_assert_unique( 1 , 1 , 2 ) // Fails because 1 === 1\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_unique( ... args : [ any, any, ...any[] ] ) {\n\t\t\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\t\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( !$mol_compare_deep( args[i], args[j] ) ) continue\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error(\n\t\t\t\t\t`Uniquesess assertion failure`,\n\t\t\t\t\t{ cause: { [i]: args[i], [i]: args[i] } },\n\t\t\t\t) )\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * All arguments must be structural equal each other.\n\t * @example\n\t * $mol_assert_like( [1] , [1] , [1] ) // Passes\n\t * $mol_assert_like( [1] , [1] , [2] ) // Fails because 1 !== 2\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_equal< Value >( ... args : [ Value, Value, ... Value[] ] ) {\n\t\tfor( let i = 1 ; i < args.length ; ++i ) {\n\t\t\t\n\t\t\tif( $mol_compare_deep( args[0] , args[i] ) ) continue\n\t\t\t\n\t\t\treturn $mol_fail( new Error(\n\t\t\t\t`Equality assertion failure`,\n\t\t\t\t{ cause: { 0: args[0], [i]: args[i] } },\n\t\t\t) )\n\t\t\t\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'must be false'() {\n\t\t\t$mol_assert_not( 0 )\n\t\t} ,\n\t\t\n\t\t'must be true'() {\n\t\t\t$mol_assert_ok( 1 )\n\t\t} ,\n\t\t\n\t\t'two must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'three must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'two must be unique'() {\n\t\t\t$mol_assert_unique( [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 1 ] , [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\n\t\t'two object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 } )\n\t\t} ,\n\n\t\t'three object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 }, { a: 1 } )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'return result without errors'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_try( ()=> false ) , false )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t//'return error if thrown'() {\n\t\t//\t\n\t\t//\tconst error = new Error( '$mol_try test error' )\n\t\t//\t$mol_assert_equal( $mol_try( ()=> { throw error } ) , error )\n\t\t//\t\n\t\t//} ,\n\t\t\n\t})\t\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> $.$mol_fail_log = ()=> false )\n}\n\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'get'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( proxy.foo , 777 )\n\t\t},\n\n\t\t'has'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( 'foo' in proxy , true )\n\t\t},\n\n\t\t'set'() {\n\t\t\tconst target = { foo : 777 }\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> target )\n\t\t\tproxy.foo = 123\n\t\t\t$mol_assert_equal( target.foo , 123 )\n\t\t},\n\t\t\n\t\t'getOwnPropertyDescriptor'() {\n\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tObject.getOwnPropertyDescriptor( proxy , 'foo' ),\n\t\t\t\t{\n\t\t\t\t\tvalue: 777,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'ownKeys'() {\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> ({ foo : 777 , [ Symbol.toStringTag ] : 'bar' }),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tReflect.ownKeys( proxy ),\n\t\t\t\t[ 'foo' , Symbol.toStringTag ],\n\t\t\t)\n\n\t\t},\n\n\t\t'getPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( proxy ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'setPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\t\t\tconst target = {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> target,\n\t\t\t)\n\n\t\t\tObject.setPrototypeOf( proxy , Foo.prototype )\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( target ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'instanceof'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t\t'autobind'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'auto name'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix {}\n\t\t\tconst mix = new Invalid( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_equal( mix.name, 'Invalid_Error' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'simpe mix'() {\n\t\t\t\n\t\t\tconst mix = new $mol_error_mix( 'foo', {},\n\t\t\t\tnew Error( 'bar' ),\n\t\t\t\tnew Error( 'lol' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( mix.message, 'foo' )\n\t\t\t$mol_assert_equal( mix.errors.map( e => e.message ), [ 'bar', 'lol' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'provide additional info'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix<{\n\t\t\t\tvalue: string,\n\t\t\t\thint: string,\n\t\t\t}> {}\n\t\t\t\n\t\t\tconst mix: unknown = new $mol_error_mix( 'Wrong password', {},\n\t\t\t\tnew Invalid( 'Too short', { value: 'p@ssw0rd', hint: '> 8 letters' } ),\n\t\t\t\tnew Invalid( 'Too simple', { value: 'p@ssw0rd', hint: 'need capital letter' } ),\n\t\t\t)\n\t\t\t\n\t\t\tconst hints = [] as string[]\n\t\t\t\n\t\t\tif( mix instanceof $mol_error_mix ) {\n\t\t\t\tfor( const er of mix.errors ) {\n\t\t\t\t\tif( er instanceof Invalid ) {\n\t\t\t\t\t\thints.push( er.cause?.hint ?? '' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( hints, [ '> 8 letters', 'need capital letter' ] )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'init with overload'() {\n\t\t\tclass X extends $mol_object {\n\t\t\t\tfoo() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = X.make({\n\t\t\t\tfoo : ()=> 2 ,\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( x.foo() , 2 )\n\t\t} ,\n\t\t\t\n\t\t'Context in instance inherits from class'($) {\n\t\t\tconst custom = $.$mol_ambient({})\n\t\t\tclass X extends $.$mol_object {\n\t\t\t\tstatic $ = custom\n\t\t\t}\n\n\t\t\t$mol_assert_equal(new X().$, custom)\n\t\t},\n\n\t} )\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Collect deps'() {\n\t\t\t\n\t\t\tconst pub1 = new $mol_wire_pub\n\t\t\tconst pub2 = new $mol_wire_pub\n\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub2, pub2 ] )\n\t\t\t\n\t\t\tconst bu2 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu2 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub1, pub2 ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'cyclic detection'( $ ) {\n\t\t\t\n\t\t\tconst sub1 = new $mol_wire_pub_sub\n\t\t\tconst sub2 = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub1.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst bu2 = sub2.track_on()\n\t\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_fail( ()=> sub1.promote(), 'Circular subscription' )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tsub2.track_cut()\n\t\t\t\t\tsub2.track_off( bu2 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub1.track_cut()\n\t\t\t\tsub1.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\t/// @todo right orderinng\n\texport let $mol_after_mock_queue = [] as ( ()=> void )[]\n\n\texport function $mol_after_mock_warp() {\n\t\tconst queue = $mol_after_mock_queue.splice( 0 )\n\t\tfor( const task of queue ) task()\n\t}\n\n\texport class $mol_after_mock_commmon extends $mol_object2 {\n\n\t\tpromise = Promise.resolve()\n\t\tcancelled = false\n\t\tid : any\n\n\t\tconstructor( public task : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_after_mock_queue.push( task )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tconst index = $mol_after_mock_queue.indexOf( this.task )\n\t\t\tif( index >= 0 )$mol_after_mock_queue.splice( index , 1 )\n\t\t}\n\n\t}\n\n\texport class $mol_after_mock_timeout extends $mol_after_mock_commmon {\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\ttask : ()=> void ,\n\t\t) {\n\t\t\tsuper( task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_tick = $mol_after_mock_commmon as any as typeof $mol_after_tick\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Sync execution'() {\n\n\t\t\tclass Sync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic calc( a: number, b: number ) {\n\t\t\t\t\treturn a + b\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Sync.calc( 1, 2 ), 3 )\n\t\t\t\n\t\t},\n\n\t\tasync 'async <=> sync'() {\n\t\t\t\n\t\t\tclass SyncAsync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await SyncAsync.calc( 1, 2 ), 8 )\n\n\t\t},\n\n\t\tasync 'Idempotence control'() {\n\n\t\t\tclass Idempotence extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic logs_idemp = 0\n\t\t\t\tstatic logs_unidemp = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic log_idemp() {\n\t\t\t\t\tthis.logs_idemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic log_unidemp() {\n\t\t\t\t\tthis.logs_unidemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tthis.log_idemp()\n\t\t\t\t\tthis.log_unidemp()\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await Idempotence.calc( 1, 2 ), 8 )\n\t\t\t$mol_assert_equal( Idempotence.logs_idemp, 1 )\n\t\t\t$mol_assert_equal( Idempotence.logs_unidemp, 3 )\n\n\t\t},\n\n\t\tasync 'Error handling'() {\n\t\t\t\n\t\t\tclass Handle extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async sum( a: number, b: number ){\n\t\t\t\t\t$mol_fail( new Error( 'test error ' + ( a + b ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic check() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn $mol_wire_sync( Handle ).sum( 1, 2 )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\t$mol_assert_equal( error.message, 'test error 3' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tawait $mol_wire_async( Handle ).check()\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_async(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, Promise<string>>\n\t\t},\n\t\t\n\t\tasync 'Latest method calls wins'( $ ) {\n\t\t\t\n\t\t\tclass NameLogger extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic first = [] as string[]\n\t\t\t\tstatic last = [] as string[]\n\t\t\t\t\n\t\t\t\tstatic send( next: string ) {\n\t\t\t\t\t$mol_wire_sync( this.first ).push( next )\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\tthis.last.push( next )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( NameLogger ).send\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( NameLogger.first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( NameLogger.last, [ 'jin' ] )\n\n\t\t},\n\n\t\tasync 'Latest function calls wins'( $ ) {\n\t\t\t\n\t\t\tconst first = [] as string[]\n\t\t\tconst last = [] as string[]\n\t\t\t\n\t\t\tfunction send_name( next: string ) {\n\t\t\t\t$mol_wire_sync( first ).push( next )\n\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\tlast.push( next )\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( send_name )\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( last, [ 'jin' ] )\n\t\t\t\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn Promise.resolve('')\n\t\t\t\t}\n\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_sync(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, string>\n\t\t},\n\n\t\tasync 'test method from host'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test function'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this.b)()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test construct itself'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic instances = [] as A[]\n\n\t\t\t\tstatic a() {\n\t\t\t\t\tconst a = new ($mol_wire_sync(A))()\n\t\t\t\t\tthis.instances.push( a )\n\t\t\t\t\t$mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve() }\n\t\t\t}\n\n\t\t\tawait $mol_wire_async(A).a()\n\t\t\t$mol_assert_equal(A.instances.length, 2)\n\t\t\t$mol_assert_equal(A.instances[0] instanceof A, true)\n\n\t\t\t$mol_assert_equal(A.instances[0], A.instances[1])\n\n\t\t}\n\t})\n\n}\n\n","namespace $ {\n\texport class $mol_promise<Result = void> extends Promise<Result> {\n\t\tdone: (value: Result | PromiseLike<Result>) => void\n\t\tfail: (reason?: any) => void\n\n\t\tconstructor(\n\t\t\texecutor?: (\n\t\t\t\tdone: (value: Result | PromiseLike<Result>) => void,\n\t\t\t\tfail: (reason?: any) => void\n\t\t\t) => void\n\t\t) {\n\t\t\tlet done: (value: Result | PromiseLike<Result>) => void\n\t\t\tlet fail: (reason?: any) => void\n\n\t\t\tsuper((d, f) => {\n\t\t\t\tdone = d\n\t\t\t\tfail = f\n\t\t\t\texecutor?.(d, f)\n\t\t\t})\n\n\t\t\tthis.done = done!\n\t\t\tthis.fail = fail!\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_timeout = $mol_after_mock_timeout as any as typeof $mol_after_timeout\n\t})\n\n}\n","namespace $ {\n\n\tdeclare function requestIdleCallback( task : ()=> void , options? : { timeout : number } ) : any\n\tdeclare function cancelIdleCallback( id : any ) : void\n\n\texport class $mol_after_work 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 = requestIdleCallback( task , { timeout : delay } )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tcancelIdleCallback( this.id )\n\t\t}\n\n\t}\n\t\n\tif( typeof requestIdleCallback !== 'function' ) {\n\t\t$.$mol_after_work = $mol_after_timeout\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_work = $mol_after_mock_timeout as any as typeof $mol_after_work\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_wait_rest_async( this: $ ) {\n\t\treturn new Promise( done => {\n\t\t\tnew this.$mol_after_work( 16 , ()=> done( null ) )\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_rest( this: $ ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_rest_async()\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_timeout = function $mol_wait_timeout_mock( this: $, timeout: number ) { }\n\t\t$.$mol_wait_timeout_async = async function $mol_wait_timeout_async_mock( this: $, timeout: number ) {}\n\t} )\n\n}\n","namespace $ {\n\t\n\texport function $mol_wait_timeout_async( this: $, timeout: number ): Promise< void > {\n\t\tconst promise = new $mol_promise()\n\t\tconst task = new this.$mol_after_timeout( timeout , ()=> promise.done() )\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> task.destructor()\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_timeout( this: $, timeout: number ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_timeout_async( timeout )\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_rest = function $mol_wait_rest_mock( this: $ ) { }\n\t\t$.$mol_wait_rest_async = async function $mol_wait_rest_async_mock( this: $ ) {}\n\t} )\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\tasync 'exec timeout auto kill child process'($) {\n\t\t\tlet close_mock = () => {}\n\t\t\tconst error_message = 'Run error, timeout'\n\n\t\t\tfunction mol_run_spawn_sync_mock() {\n\t\t\t\treturn {\n\t\t\t\t\toutput: [],\n\t\t\t\t\tstdout: error_message,\n\t\t\t\t\tstderr: '',\n\t\t\t\t\tstatus: 0,\n\t\t\t\t\tsignal: null,\n\t\t\t\t\tpid: 123,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction mol_run_spawn_mock() {\n\t\t\t\treturn {\n\t\t\t\t\ton(name: string, cb: () => void) {\n\t\t\t\t\t\tif (name === 'exit') close_mock = cb\n\t\t\t\t\t},\n\t\t\t\t\tkill() { close_mock() }\n\t\t\t\t} as any\n\t\t\t}\n\n\t\t\tconst context_mock = $.$mol_ambient({\n\t\t\t\t$mol_run_spawn_sync: mol_run_spawn_sync_mock,\n\t\t\t\t$mol_run_spawn: mol_run_spawn_mock\n\t\t\t})\n\n\t\t\tclass $mol_run_mock extends $mol_run {\n\t\t\t\tstatic get $() { return context_mock }\n\t\t\t\tstatic override async_enabled() {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet message = ''\n\t\t\ttry {\n\t\t\t\tconst res = await $mol_wire_async($mol_run_mock).spawn({\n\t\t\t\t\tcommand: 'sleep 10',\n\t\t\t\t\tdir: '.',\n\t\t\t\t\ttimeout: 10,\n\t\t\t\t\tenv: { 'MOL_RUN_ASYNC': '1' }\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tmessage= (e as Error).message\n\t\t\t}\n\t\t\t$mol_assert_equal(message, error_message)\n\t\t}\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t'span for same uri'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.span(4, 5, 8)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 4)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 8)\n\t\t},\n\n\t\t'span after of given position'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.after(11)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 7)\n\t\t\t$mol_assert_equal(child.length, 11)\n\t\t},\n\n\t\t'slice span - regular'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(1, 4)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 4)\n\t\t\t$mol_assert_equal(child.length, 3)\n\n\t\t\tconst child2 = span.slice(2, 2)\n\n\t\t\t$mol_assert_equal(child2.col, 5)\n\t\t\t$mol_assert_equal(child2.length, 0)\n\t\t},\n\n\t\t'slice span - negative'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(-3, -1)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 2)\n\t\t},\n\n\t\t'slice span - out of range'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\n\t\t\t$mol_assert_fail( ()=> span.slice(-1, 3), `End value '3' can't be less than begin value (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 6), `End value '6' out of range (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 10), `End value '10' out of range (test.ts#1:3/5)` )\n\t\t},\n\n\t\t'error handling'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst error = span.error('Some error')\n\n\t\t\t$mol_assert_equal(error.message, 'Some error (test.ts#1:3/4)')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'all cases of using maybe'() {\n\t\t\t$mol_assert_equal( $mol_maybe( 0 )[ 0 ] , 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( false )[ 0 ] , false )\n\t\t\t$mol_assert_equal( $mol_maybe( null )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( void 0 )[ 0 ] , void 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_maybe< number >( void 0 ).map( v => v.toString() )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( 0 ).map( v => v.toString() )[ 0 ] , '0' )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json( new Uint16Array([ 1, 10, 256 ]) ).toString() , '\\\\\\x01\\x00\\n\\\\\\x00\\x00\\x01\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t} )\t\n}\n","namespace $ {\n\t\n\tfunction check( tree: $mol_tree2, ideal: string ) {\n\t\t$mol_assert_equal(\n\t\t\ttree.toString(),\n\t\t\t$$.$mol_tree2_from_string( ideal ).toString(),\n\t\t)\n\t}\n\t\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string( `\n\t\t\t\t\ta b c d\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' ),\n\t\t\t\t`\n\t\t\t\t\ta b c x\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'updating'($) {\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x') ] )[0],\n\t\t\t\t`\n\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x'), $mol_tree2.struct('y') ], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t\t\tx\n\t\t\t\t\t\ty\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'deleting'($) {\n\t\t\t\n\t\t\tconst base = $.$mol_tree2_from_string(`\n\t\t\t\ta b c d\n\t\t\t`)\n\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.update( base.select( 'a', 'b', 'c', null ).kids , 'a' , 'b' , 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b d\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 0, 0, 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'hack'($) {\n\n\t\t\tconst res = $.$mol_tree2_from_string(`\n\t\t\t\tfoo bar xxx\n\t\t\t`)\n\t\t\t.hack({\n\t\t\t\t'bar' : ( input , belt )=> [ input.struct( '777' , input.hack( belt ) ) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.map( String ) , [ 'foo 777 xxx\\n' ] )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\n\\n\\n\" ).kids.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids[ 1 ].value , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar \\\\pol\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 0 ].value , \"pol\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 1 ].value , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'Too many tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too many tabs\\ntest#3:1/6\\n!!!!!!\\n\\t\\t\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Too few tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\t\tfoo\n\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too few tabs\\ntest#3:1/4\\n!!!!\\n\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator at start'( $ ) {\n\n\t\t\tconst tree = `foo\\n \\tbar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#2:1/2\\n!!\\n \\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator in the middle'( $ ) {\n\n\t\t\tconst tree = `foo bar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar' )\n\n\t\t},\n\n\t\t'Unexpected EOF, LF required'( $ ) {\n\n\t\t\tconst tree = `\tfoo`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Unexpected EOF, LF required\\ntest#1:5/1\\n\t !\\n\tfoo' )\n\n\t\t},\n\n\t\t'Errors skip and collect'( $ ) {\n\n\t\t\tconst tree = `foo bar`\n\t\t\tconst errors = [] as string[]\n\n\t\t\tconst $$ = $.$mol_ambient({\n\t\t\t\t$mol_fail: ( error: any ) => {\n\t\t\t\t\terrors.push( error.message )\n\t\t\t\t\treturn null as never\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst res = $$.$mol_tree2_from_string( tree , 'test' )\n\n\t\t\t$mol_assert_like( errors, [\n\t\t\t\t'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar',\n\t\t\t\t'Unexpected EOF, LF required\\ntest#1:9/1\\n !\\nfoo bar',\n\t\t\t] )\n\n\t\t\t$mol_assert_equal( res.toString(), 'foo bar\\n' )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\n\texport function $mol_data_setup<\n\t\tValue extends $mol_data_value ,\n\t\tConfig = never\n\t>(\n\t\tvalue : Value ,\n\t\tconfig : Config ,\n\t) {\n\t\t\n\t\treturn Object.assign( value , {\n\t\t\tconfig ,\n\t\t\tValue : null as any as ReturnType< Value >\n\t\t} )\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'config by value'() {\n\n\t\t\tconst N = $mol_data_setup( ( a : number )=> a , 5 )\n\t\t\t\n\t\t\t$mol_assert_equal( N.config , 5 )\n\t\t\t\n\t\t\ttype record_value = $mol_type_assert<\n\t\t\t\ttypeof N.Value ,\n\t\t\t\tnumber\n\t\t\t>\n\t\t\t\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_func_is_class<\n\t\tFunc extends Function\n\t>(\n\t\tfunc: Func\n\t): func is Func & ( new( ...args: any[] )=> any ) {\n\t\treturn Object.getOwnPropertyDescriptor( func, 'prototype' )?.writable === false\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'function'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function() {} ) )\n\t\t},\n\t\t\n\t\t'generator'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function*(){} ) )\n\t\t},\n\n\t\t'async'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( async function(){} ) )\n\t\t},\n\n\t\t'arrow'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( ()=> null ) )\n\t\t},\n\n\t\t'named class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class Foo {} ) )\n\t\t},\n\n\t\t'unnamed class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class {} ) )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\ttype Guard_value<\n\t\tFuncs extends $mol_type_unary[] ,\n\t\tIndex extends keyof Funcs\n\t> = $mol_type_param<\n\t\tIndex extends keyof $mol_type_tail< Funcs >\n\t\t\t? $mol_type_tail< Funcs >[ Index ]\n\t\t\t: any ,\n\t\t0\n\t>\n\n\ttype Guard<\n\t\tFuncs extends $mol_type_unary[]\n\t> = {\n\t\t[ Index in keyof Funcs ] : (\n\t\t\tFuncs[Index] extends $mol_type_unary_func\n\t\t\t\t? (\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t\t\t: new(\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t)\n\t}\n\n\t/**\n\t * Combines list of unary functions/classes to one function.\n\t * \n\t * \tconst reparse = $mol_data_pipe( JSON.stringify , JSON.parse )\n\t **/\n\texport function $mol_data_pipe<\n\t\tFuncs extends $mol_type_unary[]\n\t>(\n\t\t... funcs : Funcs & Guard< Funcs >\n\t) {\n\n\t\treturn $mol_data_setup(\n\t\t\tfunction( this: any, input : $mol_type_param< Funcs[0] , 0 > ) {\n\t\t\t\tlet value : any = input\n\t\t\t\tfor( const func of funcs ) value = $mol_func_is_class( func ) ? new func( value ) : ( func as any ).call( this, value )\n\t\t\t\treturn value as $mol_type_result<\n\t\t\t\t\t$mol_type_foot< Funcs >\n\t\t\t\t>\n\t\t\t},\n\t\t\t{ funcs }\n\t\t)\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t// @todo enable on strict\n\t\t// 'no functions'() {\n\t\t\t\n\t\t// \tconst stringify = $mol_data_pipe()\n\t\t\t\n\t\t// \ttype Type = $mol_type_assert<\n\t\t// \t\ttypeof stringify,\n\t\t// \t\t( input : never )=> never\n\t\t// \t>\n\t\n\t\t// },\n\n\t\t'single function'() {\n\t\t\t\n\t\t\tconst stringify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( stringify( 5 ) , '5' )\n\t\t\t\n\t\t},\n\n\t\t'two functions'() {\n\n\t\t\tconst isLong = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> input.length > 2 ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( isLong( 5.0 ) , false )\n\t\t\t$mol_assert_equal( isLong( 5.1 ) , true )\n\t\t\t\n\t\t},\n\n\t\t'three functions'() {\n\n\t\t\tconst pattern = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> new RegExp( input ) ,\n\t\t\t\t( input : RegExp )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( pattern( 5 ) , '/5/' )\n\t\t\t\n\t\t},\n\n\t\t'classes'() {\n\n\t\t\tclass Box {\n\t\t\t\tconstructor( public value : string ) {}\n\t\t\t}\n\n\t\t\tconst boxify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\tBox\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_ok( boxify( 5 ) instanceof Box )\n\t\t\t$mol_assert_like( boxify( 5 ).value, '5' )\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\tconst convert = $mol_data_pipe(\n\t\t$mol_tree2_from_string,\n\t\t$mol_tree2_js_to_text,\n\t\t$mol_tree2_text_to_string,\n\t)\n\n\t$mol_test({\n\n\t\t'boolean'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ttrue\n\t\t\t\t`),\n\t\t\t\t'true\\n',\n\t\t\t)\n\t\t},\n\t\t\n\t\t'number'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t1.2\n\t\t\t\t`),\n\t\t\t\t'1.2\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t1e+2\n\t\t\t\t`),\n\t\t\t\t'1e+2\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t-Infinity\n\t\t\t\t`),\n\t\t\t\t'-Infinity\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tNaN\n\t\t\t\t`),\n\t\t\t\t'NaN\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'variable'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ta\n\t\t\t\t`),\n\t\t\t\t'a\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t$\n\t\t\t\t`),\n\t\t\t\t'$\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ta0\n\t\t\t\t`),\n\t\t\t\t'a0\\n',\n\t\t\t)\n\n\t\t},\n\t\t\n\t\t'string'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t\\\\\n\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\\\\bar\n\t\t\t\t`),\n\t\t\t\t'\"foo\\\\nbar\"\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t\\`\\`\n\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'`foo${bar}`\\n',\n\t\t\t)\n\n\t\t},\n\n\t\t'wrong name'() {\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> convert(`\n\t\t\t\t\tfoo+bar\n\t\t\t\t`),\n\t\t\t\t'Wrong node type\\nfoo+bar\\n?#2:6/7',\n\t\t\t)\n\t\t},\n\n\t\t'array'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t[,]\n\t\t\t\t`),\n\t\t\t\t'[]\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t[,]\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'[1, 2]\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'last'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'(1, 2)\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'scope'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{;}\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'{\\n\\t1;\\n\\t2;\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'object'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t`),\n\t\t\t\t'{}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'{foo, bar}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\tbar\n\t\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'{\"foo\": 1, [bar]: 2}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'regexp'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t/./\n\t\t\t\t\t\t.source \\\\foo\\\\n\n\t\t\t\t\t\t.multiline\n\t\t\t\t\t\t.ignoreCase\n\t\t\t\t\t\t.global\n\t\t\t\t`),\n\t\t\t\t'/foo\\\\\\\\n/mig\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'unary'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tvoid yield* yield await ~ ! - + 1\n\t\t\t\t`),\n\t\t\t\t'void yield* yield await ~!-+1\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'binary'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t(+)\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'(\\n\\t1 + \\n\\t2 + \\n\\t3\\n)\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t@++ foo\n\t\t\t\t`),\n\t\t\t\t'foo++\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'chain'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t[] \\\\bar\n\t\t\t\t\t\t[] 1\n\t\t\t\t`),\n\t\t\t\t'(foo.bar[1])\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t[] 1\n\t\t\t\t\t\t(,)\n\t\t\t\t`),\n\t\t\t\t'(foo[1]())\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\t[,] 0\n\t\t\t\t\t\t[] 1\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t2\n\t\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'([0][1](2, 3))\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'function'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=>\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t`),\n\t\t\t\t'() => 1\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync=>\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t`),\n\t\t\t\t'async () => 1\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'function foo(){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction\n\t\t\t\t\t\t(,) foo\n\t\t\t\t\t\t{;} debugger\n\t\t\t\t`),\n\t\t\t\t'function (foo){\\n\\tdebugger;\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction*\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'function* (){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'async function (){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync*\n\t\t\t\t\t\t(,) foo\n\t\t\t\t\t\t{;} debugger\n\t\t\t\t`),\n\t\t\t\t'async function* (foo){\\n\\tdebugger;\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'class'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass\n\t\t\t\t\t\tFoo\n\t\t\t\t\t\t{}\n\t\t\t\t`),\n\t\t\t\t'class Foo {}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass\n\t\t\t\t\t\tFoo\n\t\t\t\t\t\textends Bar\n\t\t\t\t\t\t{}\n\t\t\t\t`),\n\t\t\t\t'class Foo extends Bar {}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\t.\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tfoo(){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tstatic\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tstatic [\"foo\"](){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tget\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tget [\"foo\"](){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tset\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,) bar\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tset [\"foo\"](bar){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'if'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t?:\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'1 ? 2 : 3\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tif\n\t\t\t\t\t\t() 1\n\t\t\t\t\t\t{;} 2\n\t\t\t\t`),\n\t\t\t\t'if(1) {\\n\\t2;\\n}\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tif\n\t\t\t\t\t\t() 1\n\t\t\t\t\t\t{;} 2\n\t\t\t\t\t\t{;} 3\n\t\t\t\t`),\n\t\t\t\t'if(1) {\\n\\t2;\\n}else{\\n\\t3;\\n}\\n',\n\t\t\t)\n\n\t\t},\n\n\t\t'assign'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'foo = bar\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=\n\t\t\t\t\t\t[,]\n\t\t\t\t\t\t\tfoo\n\t\t\t\t\t\t\tbar\n\t\t\t\t\t\t[,]\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'[foo, bar] = [1, 2]\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tlet foo\n\t\t\t\t`),\n\t\t\t\t'let foo\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tlet\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'let foo = bar\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t+=\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'foo += bar\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'min'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( Number.MIN_SAFE_INTEGER ), '//////H' )\n\t\t},\n\n\t\t'negative'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( -1 ), 'D' )\n\t\t},\n\n\t\t'zero'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( 0 ), 'A' )\n\t\t},\n\n\t\t'binom'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( 67 ), 'mE' )\n\t\t},\n\n\t\t'max'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( Number.MAX_SAFE_INTEGER ), '+/////H' )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t'sample source mapped lang'( $ ) {\n\n\t\t\tconst source = {\n\t\t\t\tscript1: `1@\\n2`,\n\t\t\t\tscript2: `***`\n\t\t\t}\n\n\t\t\tconst span = {\n\t\t\t\tscript1: $mol_span.entire( 'script1', source.script1 ),\n\t\t\t\tscript2: $mol_span.entire( 'script2', source.script2 ),\n\t\t\t}\n\n\t\t\tconst tree = $mol_tree2.list([\n\t\t\t\t$mol_tree2.struct( 'line', [\n\t\t\t\t\t$mol_tree2.data( '\"use strict\";', [], span.script1.after() ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(11);', [], span.script1.slice( 0, 1 ) ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(21);', [], span.script2 ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(12);', [], span.script1.span( 2, 1, 1 ) ),\n\t\t\t\t], span.script1 ),\n\t\t\t], span.script1 )\n\n\t\t\t$mol_assert_like(\n\t\t\t\t$.$mol_tree2_text_to_string( tree ),\n\t\t\t\t'\"use strict\";console.log(11);console.log(21);console.log(12);\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t$.$mol_tree2_text_to_sourcemap( tree ),\n\t\t\t\t{\n\t\t\t\t\t\"version\": 3,\n\t\t\t\t\t\"sources\": [\n\t\t\t\t\t\t\"script1\",\n\t\t\t\t\t\t\"script2\"\n\t\t\t\t\t],\n\t\t\t\t\t\"sourcesContent\": [ source.script1, source.script2 ],\n\t\t\t\t\t\"mappings\": \"AAAA,AAAI,aAAJ,gBCAA,gBDCA;\"\n\t\t\t\t}\n\t\t\t)\n\n\t\t}\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'atoms'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"null\\n\" ).kids[0] ) , null )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"true\\n\" ).kids[0] ) , true )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"false\\n\" ).kids[0] ) , false )\n\t\t},\n\t\t\n\t\t'numbers'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1\\n\" ).kids[0] ) , 1 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1.2\\n\" ).kids[0] ) , 1.2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1.2e+2\\n\" ).kids[0] ) , 120 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"NaN\\n\" ).kids[0] ) , Number.NaN )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"+Infinity\\n\" ).kids[0] ) , Number.POSITIVE_INFINITY )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"-Infinity\\n\" ).kids[0] ) , Number.NEGATIVE_INFINITY )\n\t\t},\n\t\t\n\t\t'string'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"\\\\foo\\n\" ).kids[0] ) , 'foo' )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"\\\\\\n\\t\\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , 'foo\\nbar' )\n\t\t},\n\t\t\n\t\t'array'($) {\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\" ).kids[0] ) , [] )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\\t\\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , [ 'foo', 'bar' ] )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\\t- \\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , [ 'bar' ] )\n\t\t},\n\t\t\n\t\t'object'($) {\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\" ).kids[0] ) , {} )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\\t\\\\foo\\n\\t\\t\\\\bar\\n\" ).kids[0] ) , { foo: 'bar' } )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\\t\\\\\\n\\t\\t\\\\foo\\n\\t\\t\\\\bar\\n\\t\\t\\\\lol\\n\" ).kids[0] ) , { 'foo\\nbar': 'lol' } )\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'escape' () {\n\n\t\t\tconst specials = $mol_regexp.from( '.*+?^${}()|[]\\\\' )\n\t\t\t$mol_assert_equal( specials.source , '\\\\.\\\\*\\\\+\\\\?\\\\^\\\\$\\\\{\\\\}\\\\(\\\\)\\\\|\\\\[\\\\]\\\\\\\\' )\n\n\t\t},\n\n\t\t'char code' () {\n\n\t\t\tconst space = $mol_regexp.from( 32 )\n\t\t\t$mol_assert_like( ' '.match( space ) , [ ' ' ] )\n\n\t\t},\n\n\t\t'repeat fixed'() {\n\n\t\t\tconst { repeat , decimal_only: digit } = $mol_regexp\n\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\t$mol_assert_like( '#2020#'.match( year ) , [ '2020' ] )\n\n\t\t},\n\n\t\t'greedy repeat'() {\n\n\t\t\tconst { repeat , repeat_greedy , latin_only: letter } = $mol_regexp\n\n\t\t\t$mol_assert_like( 'abc'.match( repeat( letter, 1, 2 ) ) , [ 'a', 'b', 'c' ] )\n\t\t\t$mol_assert_like( 'abc'.match( repeat_greedy( letter, 1, 2 ) ) , [ 'ab', 'c' ] )\n\n\t\t},\n\n\t\t'repeat range'() {\n\n\t\t\tconst { repeat_greedy , decimal_only: digit } = $mol_regexp\n\n\t\t\tconst year = repeat_greedy( digit , 2 , 4 )\n\t\t\t\n\t\t\t$mol_assert_like( '#2#'.match( year ) , null )\n\t\t\t$mol_assert_like( '#20#'.match( year ) , [ '20' ] )\n\t\t\t$mol_assert_like( '#2020#'.match( year ) , [ '2020' ] )\n\t\t\t$mol_assert_like( '#20201#'.match( year ) , [ '2020' ] )\n\n\t\t},\n\n\t\t'repeat from'() {\n\n\t\t\tconst { repeat_greedy , latin_only: letter } = $mol_regexp\n\n\t\t\tconst name = repeat_greedy( letter , 2 )\n\n\t\t\t$mol_assert_like( '##'.match( name ) , null )\n\t\t\t$mol_assert_like( '#a#'.match( name ) , null )\n\t\t\t$mol_assert_like( '#ab#'.match( name ) , [ 'ab' ] )\n\t\t\t$mol_assert_like( '#abc#'.match( name ) , [ 'abc' ] )\n\n\t\t},\n\n\t\t'from string'() {\n\n\t\t\tconst regexp = $mol_regexp.from( '[\\\\d]' )\n\t\t\t\n\t\t\t$mol_assert_equal( regexp.source , '\\\\[\\\\\\\\d\\\\]' )\n\t\t\t$mol_assert_equal( regexp.flags , 'gsu' )\n\n\t\t},\n\n\t\t'from regexp'() {\n\t\t\t\n\t\t\tconst regexp = $mol_regexp.from( /[\\d]/i )\n\t\t\t\n\t\t\t$mol_assert_equal( regexp.source , '[\\\\d]' )\n\t\t\t$mol_assert_equal( regexp.flags , 'i' )\n\n\t\t},\n\n\t\t'split'() {\n\t\t\t\n\t\t\tconst regexp = $mol_regexp.from( ';' )\n\t\t\t\n\t\t\t$mol_assert_like( 'aaa;bbb;ccc'.split( regexp ) , [ 'aaa', ';', 'bbb', ';', 'ccc' ] )\n\t\t\t$mol_assert_like( 'aaa;;ccc'.split( regexp ) , [ 'aaa', ';', '', ';', 'ccc' ] )\n\t\t\t$mol_assert_like( 'aaa'.split( regexp ) , [ 'aaa' ] )\n\t\t\t$mol_assert_like( ''.split( regexp ) , [''] )\n\n\t\t},\n\n\t\t'test for matching'() {\n\t\t\t\n\t\t\tconst regexp = $mol_regexp.from( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_like( regexp.test( '' ) , false )\n\t\t\t$mol_assert_like( regexp.test( 'fo' ) , false )\n\t\t\t$mol_assert_like( regexp.test( 'foo' ) , true )\n\t\t\t$mol_assert_like( regexp.test( 'foobar' ) , true )\n\t\t\t$mol_assert_like( regexp.test( 'barfoo' ) , true )\n\n\t\t},\n\n\t\t'case ignoring'() {\n\n\t\t\tconst xxx = $mol_regexp.from( 'x' , { ignoreCase : true } )\n\n\t\t\t$mol_assert_like( xxx.flags , 'gisu' )\n\t\t\t$mol_assert_like( xxx.exec( 'xx' )![0] , 'x' )\n\t\t\t$mol_assert_like( xxx.exec( 'XX' )![0] , 'X' )\n\n\t\t},\n\n\t\t'multiline mode'() {\n\n\t\t\tconst { end , from } = $mol_regexp\n\n\t\t\tconst xxx = from( [ 'x' , end ] , { multiline : true } )\n\n\t\t\t$mol_assert_like( xxx.exec( 'x\\ny' )![0] , 'x' )\n\t\t\t$mol_assert_like( xxx.flags , 'gmsu' )\n\n\t\t},\n\n\t\t'flags override'() {\n\n\t\t\tconst triplet = $mol_regexp.from(\n\t\t\t\t$mol_regexp.from(\n\t\t\t\t\t/.../,\n\t\t\t\t\t{ ignoreCase: true },\n\t\t\t\t),\n\t\t\t\t{ multiline: true },\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like( triplet.toString() , '/.../gmsu' )\n\n\t\t},\n\n\t\t'sequence'() {\n\n\t\t\tconst { begin , end , decimal_only: digit , repeat , from } = $mol_regexp\n\t\t\t\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\tconst dash = '-'\n\t\t\tconst month = repeat( digit , 2 , 2 )\n\t\t\tconst day = repeat( digit , 2 , 2 )\n\n\t\t\tconst date = from([ begin , year , dash , month , dash , day , end ])\n\n\t\t\t$mol_assert_like( date.exec( '2020-01-02' )![0] , '2020-01-02' )\n\n\t\t},\n\n\t\t'optional'() {\n\n\t\t\tconst name = $mol_regexp.from([ 'A', ['4'] ])\n\n\t\t\t$mol_assert_equal( 'AB'.match( name )![0] , 'A' )\n\t\t\t$mol_assert_equal( 'A4'.match( name )![0] , 'A4' )\n\n\t\t},\n\n\t\t'anon variants'() {\n\n\t\t\tconst name = $mol_regexp.from([ 'A', $mol_regexp.vary([ '4', '5' ]) ])\n\n\t\t\t$mol_assert_equal( 'AB'.match( name ) , null )\n\t\t\t$mol_assert_equal( 'A4'.match( name )![0] , 'A4' )\n\t\t\t$mol_assert_equal( 'A5'.match( name )![0] , 'A5' )\n\n\t\t},\n\n\t\t'only groups'() {\n\n\t\t\tconst regexp = $mol_regexp.from({ dog : '@' })\n\n\t\t\t$mol_assert_like( [ ... '#'.matchAll( regexp ) ][0].groups , undefined )\n\t\t\t$mol_assert_like( [ ... '@'.matchAll( regexp ) ][0].groups , { dog : '@' } )\n\n\t\t},\n\n\t\t'catch skipped'() {\n\n\t\t\tconst regexp = $mol_regexp.from(/(@)(\\d?)/g)\n\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '[[@]]'.matchAll( regexp ) ].map( f => [ ... f ] ) ,\n\t\t\t\t[\n\t\t\t\t\t[ '[[' ],\n\t\t\t\t\t[ '@', '@' , '' ],\n\t\t\t\t\t[ ']]' ],\n\t\t\t\t]\n\t\t\t)\n\n\t\t},\n\n\t\t'enum variants'() {\n\n\t\t\tenum Sex {\n\t\t\t\tmale = 'male',\n\t\t\t\tfemale = 'female',\n\t\t\t}\n\n\t\t\tconst sexism = $mol_regexp.from( Sex )\n\n\t\t\t$mol_assert_like( [ ... ''.matchAll( sexism ) ].length, 0 )\n\t\t\t$mol_assert_like( [ ... 'trans'.matchAll( sexism ) ][0].groups, undefined )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'male'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ male : 'male' , female : '' },\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'female'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ male : '' , female : 'female' },\n\t\t\t)\n\n\t\t},\n\n\t\t'recursive only groups'() {\n\n\t\t\tenum Sex {\n\t\t\t\tmale = 'male',\n\t\t\t\tfemale = 'female',\n\t\t\t}\n\n\t\t\tconst sexism = $mol_regexp.from({ Sex })\n\n\t\t\t$mol_assert_like( [ ... ''.matchAll( sexism ) ].length , 0 )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'male'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ Sex : 'male' , male : 'male' , female : '' },\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'female'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ Sex : 'female' , male : '' , female : 'female' },\n\t\t\t)\n\n\t\t},\n\n\t\t'sequence with groups'() {\n\n\t\t\tconst { begin , end , decimal_only: digit , repeat , from } = $mol_regexp\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\tconst dash = '-'\n\t\t\tconst month = repeat( digit , 2 , 2 )\n\t\t\tconst day = repeat( digit , 2 , 2 )\n\n\t\t\tconst regexp = from([ begin , {year} , dash , {month} , dash , {day} , end ])\n\t\t\tconst found = [ ... '2020-01-02'.matchAll( regexp ) ]\n\n\t\t\t$mol_assert_like( found[0].groups , {\n\t\t\t\tyear : '2020' ,\n\t\t\t\tmonth : '01' ,\n\t\t\t\tday : '02' ,\n\t\t\t} )\n\n\t\t},\n\n\t\t'sequence with groups of mixed type'() {\n\n\t\t\tconst prefix = '/'\n\t\t\tconst postfix = '/'\n\n\t\t\tconst regexp = $mol_regexp.from([ {prefix} , /(\\w+)/ , {postfix} , /([gumi]*)/ ])\n\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '/foo/mi'.matchAll( regexp ) ],\n\t\t\t\t[\n\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t[ \"/foo/mi\", \"/\", \"foo\", \"/\", \"mi\" ],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tgroups: {\n\t\t\t\t\t\t\t\tprefix : '/' ,\n\t\t\t\t\t\t\t\tpostfix : '/' ,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tindex: 0,\n\t\t\t\t\t\t\tinput: \"/\",\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t)\n\n\t\t},\n\n\t\t'recursive sequence with groups'() {\n\n\t\t\tconst { begin , end , decimal_only: digit , repeat , from } = $mol_regexp\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\tconst dash = '-'\n\t\t\tconst month = repeat( digit , 2 , 2 )\n\t\t\tconst day = repeat( digit , 2 , 2 )\n\n\t\t\tconst regexp = from([\n\t\t\t\tbegin , { date : [ {year} , dash , {month} ] } , dash , {day} , end\n\t\t\t])\n\t\t\t\n\t\t\tconst found = [ ... '2020-01-02'.matchAll( regexp ) ]\n\n\t\t\t$mol_assert_like( found[0].groups , {\n\t\t\t\tdate : '2020-01' ,\n\t\t\t\tyear : '2020' ,\n\t\t\t\tmonth : '01' ,\n\t\t\t\tday : '02' ,\n\t\t\t} )\n\n\t\t},\n\n\t\t'parse multiple'() {\n\n\t\t\tconst { decimal_only: digit , from } = $mol_regexp\n\n\t\t\tconst regexp = from({ digit })\n\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '123'.matchAll( regexp ) ].map( f => f.groups ) ,\n\t\t\t\t[\n\t\t\t\t\t{ digit : '1' },\n\t\t\t\t\t{ digit : '2' },\n\t\t\t\t\t{ digit : '3' },\n\t\t\t\t]\n\t\t\t)\n\n\t\t},\n\n\t\t'named variants'() {\n\n\t\t\tconst { begin , or , end , from } = $mol_regexp\n\n\t\t\tconst sexism = from([\n\t\t\t\tbegin , 'sex = ' , { sex : [ 'male' , or , 'female' ] } , end\n\t\t\t])\n\n\t\t\t$mol_assert_like( [ ... 'sex = male'.matchAll( sexism ) ][0].groups , { sex : 'male' } )\n\t\t\t$mol_assert_like( [ ... 'sex = female'.matchAll( sexism ) ][0].groups , { sex : 'female' } )\n\t\t\t$mol_assert_like( [ ... 'sex = malefemale'.matchAll( sexism ) ][0].groups , undefined )\n\n\t\t},\n\n\t\t'force after'() {\n\n\t\t\tconst { latin_only: letter , force_after , from } = $mol_regexp\n\n\t\t\tconst regexp = from([ letter , force_after( '.' ) ])\n\n\t\t\t$mol_assert_like( 'x.'.match( regexp ) , [ 'x' ] )\n\t\t\t$mol_assert_like( 'x,'.match( regexp ) , null )\n\n\t\t},\n\n\t\t'forbid after'() {\n\n\t\t\tconst { latin_only: letter , forbid_after , from } = $mol_regexp\n\n\t\t\tconst regexp = from([ letter , forbid_after( '.' ) ])\n\n\t\t\t$mol_assert_like( 'x.'.match( regexp ) , null )\n\t\t\t$mol_assert_like( 'x,'.match( regexp ) , [ 'x' ] )\n\n\t\t},\n\n\t\t'char except'() {\n\n\t\t\tconst { char_except, latin_only, tab } = $mol_regexp\n\n\t\t\tconst name = char_except( latin_only, tab )\n\n\t\t\t$mol_assert_like( 'a'.match( name ) , null )\n\t\t\t$mol_assert_like( '\\t'.match( name ) , null )\n\t\t\t$mol_assert_like( '('.match( name ) , [ '(' ] )\n\n\t\t},\n\n\t\t'unicode only'() {\n\n\t\t\tconst { unicode_only, from } = $mol_regexp\n\n\t\t\tconst name = from([\n\t\t\t\tunicode_only( 'Script', 'Cyrillic' ),\n\t\t\t\tunicode_only( 'Hex_Digit' ),\n\t\t\t])\n\n\t\t\t$mol_assert_like( 'FF'.match( name ) , null )\n\t\t\t$mol_assert_like( 'ФG'.match( name ) , null )\n\t\t\t$mol_assert_like( 'ФF'.match( name ) , [ 'ФF' ] )\n\n\t\t},\n\n\t\t'generate by optional with inner group'() {\n\n\t\t\tconst { begin, end, from } = $mol_regexp\n\t\t\t\n\t\t\tconst animals = from([ begin, '#', [ '^', { dog : '@' } ], end ])\n\n\t\t\t$mol_assert_equal( animals.generate({}) , '#' )\n\t\t\t\n\t\t\t$mol_assert_equal( animals.generate({ dog: false }) , '#' )\n\t\t\t$mol_assert_equal( animals.generate({ dog: true }) , '#^@' )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> animals.generate({ dog: '$' }) , 'Wrong param: dog=$' )\n\n\t\t},\n\n\t\t'generate by optional with inner group with variants'() {\n\n\t\t\tconst { begin, end, from } = $mol_regexp\n\t\t\t\n\t\t\tconst animals = from([ begin, '#', [ '^', { animal: { dog : '@', fox: '&' } } ], end ])\n\n\t\t\t$mol_assert_equal( animals.generate({}) , '#' )\n\t\t\t\n\t\t\t$mol_assert_equal( animals.generate({ dog: true }) , '#^@' )\n\t\t\t$mol_assert_equal( animals.generate({ fox: true }) , '#^&' )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> animals.generate({ dog: '$' }) , 'Wrong param: dog=$' )\n\n\t\t},\n\t\t\n\t\t'complex example'() {\n\t\t\t\n\t\t\tconst {\n\t\t\t\tbegin, end,\n\t\t\t\tchar_only, char_range,\n\t\t\t\tlatin_only, slash_back,\n\t\t\t\trepeat_greedy, from,\n\t\t\t} = $mol_regexp\n\t\t\t\n\t\t\tconst atom_char = char_only( latin_only, \"!#$%&'*+/=?^`{|}~-\" )\n\t\t\tconst atom = repeat_greedy( atom_char, 1 )\n\t\t\tconst dot_atom = from([ atom, repeat_greedy([ '.', atom ]) ])\n\t\t\t\n\t\t\tconst name_letter = char_only(\n\t\t\t\tchar_range( 0x01, 0x08 ),\n\t\t\t\t0x0b, 0x0c,\n\t\t\t\tchar_range( 0x0e, 0x1f ),\n\t\t\t\t0x21,\n\t\t\t\tchar_range( 0x23, 0x5b ),\n\t\t\t\tchar_range( 0x5d, 0x7f ),\n\t\t\t)\n\t\t\t\n\t\t\tconst quoted_pair = from([\n\t\t\t\tslash_back,\n\t\t\t\tchar_only(\n\t\t\t\t\tchar_range( 0x01, 0x09 ),\n\t\t\t\t\t0x0b, 0x0c,\n\t\t\t\t\tchar_range( 0x0e, 0x7f ),\n\t\t\t\t)\n\t\t\t])\n\t\t\t\n\t\t\tconst name = repeat_greedy({ name_letter, quoted_pair })\n\t\t\tconst quoted_name = from([ '\"', {name}, '\"' ])\n\t\t\t\n\t\t\tconst local_part = from({ dot_atom, quoted_name })\n\t\t\tconst domain = dot_atom\n\t\t\t\n\t\t\tconst mail = from([ begin, local_part, '@', {domain}, end ])\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo..bar@example.org'.match( mail ), null )\n\t\t\t$mol_assert_equal( 'foo..bar\"@example.org'.match( mail ), null )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'foo.bar@example.org'.matchAll( mail ) ][0].groups,\n\t\t\t\t{\n\t\t\t\t\tdot_atom: \"foo.bar\",\n\t\t\t\t\tquoted_name: \"\",\n\t\t\t\t\tname: \"\",\n\t\t\t\t\tname_letter: \"\",\n\t\t\t\t\tquoted_pair: \"\",\n\t\t\t\t\tdomain: \"example.org\",\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '\"foo..bar\"@example.org'.matchAll( mail ) ][0].groups,\n\t\t\t\t{\n\t\t\t\t\tdot_atom: \"\",\n\t\t\t\t\tquoted_name: '\"foo..bar\"',\n\t\t\t\t\tname: \"foo..bar\",\n\t\t\t\t\tname_letter: \"r\",\n\t\t\t\t\tquoted_pair: \"\",\n\t\t\t\t\tdomain: \"example.org\",\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tmail.generate({ dot_atom: 'foo.bar', domain: 'example.org' }),\n\t\t\t\t'foo.bar@example.org',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tmail.generate({ name: 'foo..bar', domain: 'example.org' }),\n\t\t\t\t'\"foo..bar\"@example.org',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> mail.generate({ dot_atom: 'foo..bar', domain: 'example.org' }),\n\t\t\t\t'Wrong param: dot_atom=foo..bar',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t})\n\n}\n","namespace $ {\n\tfunction get_parts(str: string) {\n\t\treturn $$.$mol_view_tree2_prop_parts($mol_tree2.struct(str))\n\t}\n\n\t$mol_test({\n\t\t'wrong order'($) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\tget_parts('some_bla?*')\n\t\t\t}, 'Required prop like some*? at `?#1:1/0`')\n\t\t},\n\n\t\t'empty'($) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\tget_parts('')\n\t\t\t}, 'Required prop like some*? at `?#1:1/0`')\n\t\t},\n\n\t\t'prop in upper case'($) {\n\t\t\tconst parts = get_parts('Close_icon')\n\t\t\t$mol_assert_equal(parts.name, 'Close_icon')\n\t\t\t$mol_assert_equal(parts.key, '')\n\t\t\t$mol_assert_equal(parts.next, '')\n\t\t},\n\n\t\t'prop with index'($) {\n\t\t\tconst parts = get_parts('some_bla*')\n\t\t\t$mol_assert_equal(parts.name, 'some_bla')\n\t\t\t$mol_assert_equal(parts.key, '*')\n\t\t\t$mol_assert_equal(parts.next, '')\n\t\t},\n\n\t\t'prop with index and value'($) {\n\t\t\tconst parts = get_parts('some_bla*?')\n\t\t\t$mol_assert_equal(parts.name, 'some_bla')\n\t\t\t$mol_assert_equal(parts.key, '*')\n\t\t\t$mol_assert_equal(parts.next, '?')\n\t\t},\n\n\t\t'legacy indexed'($) {\n\t\t\tconst parts = get_parts('Some*default')\n\t\t\t$mol_assert_equal(parts.name, 'Some')\n\t\t\t$mol_assert_equal(parts.key, '*default')\n\t\t\t$mol_assert_equal(parts.next, '')\n\t\t},\n\n\t\t'legacy indexed value'($) {\n\t\t\tconst parts = get_parts('Some*k?v')\n\t\t\t$mol_assert_equal(parts.name, 'Some')\n\t\t\t$mol_assert_equal(parts.key, '*k')\n\t\t\t$mol_assert_equal(parts.next, '?')\n\t\t}\n\t})\n}\n","namespace $ {\n\n\texport function $mol_style_attach(\n\t\tid : string ,\n\t\ttext : string ,\n\t) {\n\n\t\tconst doc = $mol_dom_context.document\n\t\tif( !doc ) return null\n\t\t\n\t\tconst elid = `$mol_style_attach:${id}`\n\t\t\n\t\tlet el = doc.getElementById( elid ) as HTMLStyleElement\n\t\tif( !el ) {\n\t\t\tel = doc.createElement('style')\n\t\t\tel.id = elid\n\t\t\tdoc.head.appendChild( el )\n\t\t}\n\t\tif( el.innerHTML != text ) el.innerHTML = text\n\t\t\n\t\treturn el\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_promise_blocker<Result> extends $mol_promise<Result> {\n\t\tstatic [Symbol.toStringTag] = '$mol_promise_blocker'\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_decor< Value > {\n\t\t\n\t\tconstructor(\n\t\t\treadonly value : Value\n\t\t) {}\n\n\t\tprefix() { return '' }\n\t\tvalueOf() { return this.value }\n\t\tpostfix() { return '' }\n\n\t\ttoString(){\n\t\t\treturn `${ this.prefix() }${ this.valueOf() }${ this.postfix() }`\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport type $mol_style_unit_length =\n\t| '%'\n\t| 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt'\n\t| 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh'\n\t| 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'\n\t\n\texport type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'\n\t\n\texport type $mol_style_unit_time = 's' | 'ms'\n\n\texport type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time\n\n\texport type $mol_style_unit_str< Quanity extends $mol_style_unit_any = $mol_style_unit_any> = `${number}${Quanity}`\n\n\t/**\n\t * CSS Units\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_unit<\n\t\tLiteral extends $mol_style_unit_any\n\t> extends $mol_decor< number > {\n\n\t\tconstructor(\n\t\t\tvalue : number,\n\t\t\treadonly literal : Literal,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tpostfix() {\n\t\t\treturn this.literal\n\t\t}\n\n\t\tstatic per( value : number ) { return `${value}%` as const }\n\t\tstatic px( value : number ) { return `${ value }px` as const }\n\t\tstatic mm( value : number ) { return `${value}mm` as const }\n\t\tstatic cm( value : number ) { return `${value}cm` as const }\n\t\tstatic Q( value : number ) { return `${value}Q` as const }\n\t\tstatic in( value : number ) { return `${value}in` as const }\n\t\tstatic pc( value : number ) { return `${value}pc` as const }\n\t\tstatic pt( value : number ) { return `${value}pt` as const }\n\t\tstatic cap( value : number ) { return `${value}cap` as const }\n\t\tstatic ch( value : number ) { return `${value}ch` as const }\n\t\tstatic em( value : number ) { return `${value}em` as const }\n\t\tstatic rem( value : number ) { return `${value}rem` as const }\n\t\tstatic ex( value : number ) { return `${value}ex` as const }\n\t\tstatic ic( value : number ) { return `${value}ic` as const }\n\t\tstatic lh( value : number ) { return `${value}lh` as const }\n\t\tstatic rlh( value : number ) { return `${value}rlh` as const }\n\t\tstatic vh( value : number ) { return `${value}vh` as const }\n\t\tstatic vw( value : number ) { return `${value}vw` as const }\n\t\tstatic vi( value : number ) { return `${value}vi` as const }\n\t\tstatic vb( value : number ) { return `${value}vb` as const }\n\t\tstatic vmin( value : number ) { return `${value}vmin` as const }\n\t\tstatic vmax( value : number ) { return `${value}vmax` as const }\n\t\t\n\t\tstatic deg( value : number ) { return `${value}deg` as const }\n\t\tstatic rad( value : number ) { return `${value}rad` as const }\n\t\tstatic grad( value : number ) { return `${value}grad` as const }\n\t\tstatic turn( value : number ) { return `${value}turn` as const }\n\n\t\tstatic s( value : number ) { return `${value}s` as const }\n\t\tstatic ms( value : number ) { return `${value}ms` as const }\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_style_func_name =\n\t| 'calc'\n\t| 'hsla'\n\t| 'rgba'\n\t| 'var'\n\t| 'clamp'\n\t| 'scale'\n\t| 'cubic-bezier'\n\t| 'linear'\n\t| 'steps'\n\t| $mol_style_func_image\n\t| $mol_style_func_filter\n\t\n\texport type $mol_style_func_image =\n\t| 'url'\n\t| 'linear-gradient'\n\t| 'radial-gradient'\n\t| 'conic-gradient'\n\t\n\texport type $mol_style_func_filter =\n\t| 'blur'\n\t| 'brightness'\n\t| 'contrast'\n\t| 'drop-shadow'\n\t| 'grayscale'\n\t| 'hue-rotate'\n\t| 'invert'\n\t| 'opacity'\n\t| 'sepia'\n\t| 'saturate'\n\n\tconst { per } = $mol_style_unit\n\t\n\t/**\n\t * CSS Functions\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_func<\n\t\tName extends $mol_style_func_name ,\n\t\tValue = unknown,\n\t> extends $mol_decor< Value > {\n\n\t\tconstructor(\n\t\t\treadonly name : Name,\n\t\t\tvalue : Value,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tprefix() { return this.name + '(' }\n\t\tpostfix() { return ')' }\n\n\t\tstatic linear_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'linear-gradient' , value )\n\t\t}\n\n\t\tstatic radial_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'radial-gradient' , value )\n\t\t}\n\n\t\tstatic calc< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'calc' , value )\n\t\t}\n\n\t\tstatic vary< Name extends string, Value extends string >( name : Name, defaultValue? : Value ) {\n\t\t\treturn new $mol_style_func( 'var' , defaultValue ? [name, defaultValue] : name )\n\t\t}\n\n\t\tstatic url< Href extends string >( href : Href ) {\n\t\t\treturn new $mol_style_func( 'url' , JSON.stringify( href ) )\n\t\t}\n\n\t\tstatic hsla(\n\t\t\thue: number,\n\t\t\tsaturation: number,\n\t\t\tlightness: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'hsla',\n\t\t\t\t[ hue , per( saturation ) , per( lightness ) , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic clamp(\n\t\t\tmin: $mol_style_unit_str< any >,\n\t\t\tmid: $mol_style_unit_str< any >,\n\t\t\tmax: $mol_style_unit_str< any >,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'clamp',\n\t\t\t\t[ min, mid, max ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic rgba(\n\t\t\tred: number,\n\t\t\tgreen: number,\n\t\t\tblue: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'rgba',\n\t\t\t\t[ red , green , blue , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic scale(\n\t\t\tzoom: number,\n\t\t) {\n\t\t\treturn new $mol_style_func( 'scale', [ zoom ] )\n\t\t}\n\t\t\n\t\tstatic linear(\n\t\t\t...breakpoints : Array<number | [number, number | $mol_style_unit_str<'%'>]>\n\t\t){\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"linear\",\n\t\t\t\tbreakpoints.map((e) =>\n\t\t\t\t\tArray.isArray(e)\n\t\t\t\t\t\t? String(e[0]) +\n\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t (typeof e[1] === \"number\" ? e[1] + \"%\" : e[1].toString())\n\t\t\t\t\t\t: String(e)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic cubic_bezier(\n\t\t\tx1: number,\n\t\t\ty1: number,\n\t\t\tx2: number,\n\t\t\ty2: number\n\t\t){\n\t\t\treturn new $mol_style_func( 'cubic-bezier', [ x1, y1, x2, y2 ]);\n\t\t}\n\t\t\n\t\tstatic steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'){\n\t\t\treturn new $mol_style_func( 'steps', [ value, step_position ] )\n\t\t}\n\t\t\n\t\tstatic blur(value?: $mol_style_unit_str<$mol_style_unit_length>){\n\t\t\treturn new $mol_style_func( 'blur', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic brightness(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'brightness', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic contrast(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'contrast', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic drop_shadow(\n\t\t\tcolor: $mol_style_properties_color,\n\t\t\tx_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\ty_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\tblur_radius?: $mol_style_unit_str<$mol_style_unit_length>\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"drop-shadow\",\n\t\t\t\tblur_radius\n\t\t\t\t\t? [color, x_offset, y_offset, blur_radius]\n\t\t\t\t\t: [color, x_offset, y_offset]\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic grayscale(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'grayscale', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>){\n\t\t\treturn new $mol_style_func( 'hue-rotate', value ?? \"\")\n\t\t}\n\t\t\n\t\tstatic invert(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'invert', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic opacity(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'opacity', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic sepia(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'sepia', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic saturate(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'saturate', value ?? \"\" );\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Create record of CSS variables. */\n\texport function $mol_style_prop< Keys extends string[] >(\n\t\tprefix: string ,\n\t\tkeys: Keys\n\t) {\n\t\t\n\t\tconst record = keys.reduce( ( rec , key: Keys[number] )=> {\n\t\t\t\n\t\t\trec[ key ] = $mol_style_func.vary( `--${ prefix }_${ key }` )\n\t\t\treturn rec\n\t\t\t\n\t\t}, {} as Record< Keys[number], $mol_style_func< 'var' > > )\n\t\t\n\t\treturn record\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#component-states\n\t\t'Cached channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 2 )\n\n\t\t\tApp.value( 2 )\n\t\t\t$mol_assert_equal( App.value(), 3 )\n\n\t\t},\n\n\t\t'Read Pushed' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 1 ), 1 )\n\t\t\t$mol_assert_equal( App.value(), 1 )\n\n\t\t},\n\n\t\t'Mem overrides mem' ($) {\n\n\t\t\tclass Base extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tclass Middle extends Base {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) + 1\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tclass App extends Middle {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) * 3\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 9 )\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 5 ), 21 )\n\t\t\t$mol_assert_equal( App.value(), 21 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-consistency\n\t\t'Auto recalculation of cached values'( $ ) {\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\treturn this.xxx() + 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\treturn this.yyy() + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.yyy(), 2 )\n\t\t\t$mol_assert_equal( App.zzz(), 3 )\n\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_equal( App.zzz(), 7 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-reasonability\n\t\t'Skip recalculation when actually no dependency changes'( $ ) {\n\t\t\t\n\t\t\tconst log = [] as string[]\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\tlog.push( 'xxx' )\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\tlog.push( 'yyy' )\n\t\t\t\t\treturn [ Math.sign( this.xxx() ) ]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\tlog.push( 'zzz' )\n\t\t\t\t\treturn this.yyy()[0] + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx' ] )\n\t\t\t\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx' ] )\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx', 'yyy' ] )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#flow-auto\n\t\t'Flow: Auto'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic source( next = 1 ) { return next }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = true ) { return next }\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tconst res = this.condition() ? this.source() : 0\n\t\t\t\t\treturn res + this.counter ++\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t$mol_assert_equal( App.counter , 1 )\n\t\t\t\n\t\t\tApp.source( 10 )\n\t\t\t$mol_assert_equal( App.result() , 11 )\n\t\t\t$mol_assert_equal( App.counter , 2 )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( App.source() , 1 )\n\t\t\t\n\t\t\tApp.source( 20 )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_equal( App.result() , 23 )\n\t\t\t$mol_assert_equal( App.counter , 4 )\n\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#dupes-equality\n\t\t'Dupes: Equality'( $ ) {\n\t\t\t\n\t\t\tlet counter = 0\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo( next? : { numbs: number[] } ) {\n\t\t\t\t\treturn next ?? { numbs: [ 1 ] }\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() {\n\t\t\t\t\treturn { ... this.foo(), count: ++ counter }\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\n\t\t\tApp.foo({ numbs: [ 1 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\t\t\t\n\t\t\tApp.foo({ numbs: [ 2 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 2 ], count: 2 } )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#cycle-fail\n\t\t'Cycle: Fail'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo() : number {\n\t\t\t\t\treturn this.bar() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() : number {\n\t\t\t\t\treturn this.foo() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_fail( ()=> App.foo(), 'Circular subscription' )\n\t\t\t\t}\t\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.test()\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Update deps on push'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic res( next?: boolean ) {\n\t\t// \t\t\treturn this.left( next ) && this.right()\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.res(), false )\n\t\t// \t$mol_assert_equal( App.res( true ), false )\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right( true ), true )\n\t\t// \t$mol_assert_equal( App.res(), true )\n\t\t\t\n\t\t// } ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Different order of pull and push'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic fast( next?: number ) {\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic slow( next?: number ) {\n\t\t\t\t\tif( next !== undefined ) this.slow() // enforce pull before push\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.fast()\n\t\t\t$mol_assert_equal( App.slow( 666 ), 666 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 666 )\n\t\t\t\n\t\t\tApp.store( 777 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 777 )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Actions inside invariant'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count2() {\n\t\t\t\t\treturn this.count()\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\tconst count = this.count2()\n\t\t\t\t\tif( !count ) this.count( count + 1 )\n\t\t\t\t\treturn count + 1\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.res(), 1 )\n\t\t\t\n\t\t\tApp.count( 5 )\n\t\t\t$mol_assert_like( App.res(), 6 )\n\n\t\t} ,\n\t\t\n\t\tasync 'Toggle with async'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic checked( next = false ) {\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic toggle() {\n\t\t\t\t\tconst prev = this.checked()\n\t\t\t\t\t$mol_assert_unique( this.checked( !prev ), prev )\n\t\t\t\t\t// $mol_assert_equal( this.checked() , prev )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\treturn this.checked()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_equal( App.res(), false )\n\t\t\t\t\t\n\t\t\t\t\tApp.toggle()\n\t\t\t\t\t$mol_assert_equal( App.res(), true )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t\t\n\t\t} ,\n\n\t\t// // https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Stable order of multiple root'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\tstatic counter = 0\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_root() {\n\t\t// \t\t\tthis.left_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_root() {\n\t\t// \t\t\tthis.right_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.left_root(), 1 )\n\t\t// \t$mol_assert_equal( App.right_root(), 2 )\n\t\t\t\n\t\t// \tApp.right_trigger( 1 )\n\t\t// \tApp.left_trigger( 1 )\n\t\t\t\n\t\t// \t$mol_wire_fiber.sync()\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right_root(), 4 )\n\t\t// \t$mol_assert_equal( App.left_root(), 3 )\n\n\t\t// } ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#error-store\n\t\t'Restore after error'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = false ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic broken() {\n\t\t\t\t\t\n\t\t\t\t\tif( this.condition() ) {\n\t\t\t\t\t\t$mol_fail( new Error( 'test error' ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\treturn this.broken()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_fail( ()=> App.result(), 'test error' )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\n\t\t} ,\n\t\n\t\tasync 'Wait for data'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic async source() {\n\t\t\t\t\treturn 'Jin'\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic middle() {\n\t\t\t\t\treturn $mol_wire_sync( this ).source()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic target() {\n\t\t\t\t\treturn this.middle()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_equal( App.target() , 'Jin' )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t},\n\n\t\t'Auto destroy on long alone'( $ ) {\n\n\t\t\tlet destroyed = false\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic showing( next = true ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic details() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdestructor() {\n\t\t\t\t\t\t\tdestroyed = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic render() {\n\t\t\t\t\treturn this.showing() ? this.details() : null\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst details = App.render()\n\t\t\t$mol_assert_ok( details )\n\n\t\t\tApp.showing( false )\n\t\t\t$mol_assert_not( App.render() )\n\t\t\t\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_equal( App.render() , details )\n\t\t\t\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_not( destroyed )\n\t\t\t\n\t\t\tApp.showing( false )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_ok( destroyed )\n\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_unique( App.render() , details )\n\t\t\t\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\tasync 'Hold pubs while wait async task'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ): number {\n\t\t\t\t\treturn ( $mol_wire_probe( ()=> this.resets() ) ?? -1 ) + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async wait() { }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\treturn ++ this.counter\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tif( this.resets() ) $mol_wire_sync( this ).wait()\n\t\t\t\t\treturn this.value()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.resets( null )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( await $mol_wire_async( App ).result() , 1 )\n\t\t\t\n\t\t},\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic title() {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.title() }` , 'App.title<>' )\n\n\t\t} ,\n\n\t\t'Unsubscribe from temp pubs on complete' ($) {\n\n\t\t\tclass Random extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic seed() {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ) {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\tthis.resets()\n\t\t\t\t\treturn this.seed()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tconst first = Random.value()\n\t\t\t\n\t\t\tRandom.resets( null )\n\t\t\t$mol_assert_unique( Random.value(), first )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'Error caching' ($) {\n\t\t\tconst next_cached = 123\n\n\t\t\tclass Some extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic data( id: string, next?: unknown): unknown {\n\t\t\t\t\tif (next) return next as never\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t$mol_wire_async(this).data(id, next_cached)\n\t\t\t\t\t}, 10)\n\n\t\t\t\t\t$mol_fail_hidden(new Promise(() => {}))\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic run() {\n\t\t\t\t\treturn this.data('1')\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst val = await $mol_wire_async(Some).run()\n\t\t\t$mol_assert_equal(val, next_cached)\n\t\t} ,\n\n\t\t'Memoize by single simple key' ($) {\n\n\t\t\tclass Team extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic user_name( user: string , next?: string ) {\n\t\t\t\t\treturn next ?? user\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic user_names() {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tthis.user_name( 'jin' ),\n\t\t\t\t\t\tthis.user_name( 'john' ),\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Team.user_names(), [ 'jin', 'john' ] )\n\t\t\t\n\t\t\tTeam.user_name( 'jin', 'JIN' )\n\t\t\t$mol_assert_like( Team.user_names(), [ 'JIN', 'john' ] )\n\n\t\t} ,\n\n\t\t'Memoize by single complex key' ($) {\n\n\t\t\tclass Map extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic tile( pos: [ number, number ] ) {\n\t\t\t\t\treturn new String( `/tile=${pos}` )\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_like( this.tile([0,1]), new String( '/tile=0,1' ) )\n\t\t\t\t\t$mol_assert_equal( this.tile([0,1]), this.tile([0,1]) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tMap.test()\n\t\t} ,\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic like( friend: number ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic relation( [ friend, props ]: [ number, [ number ] ] ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.like(123) }` , 'App.like<123>' )\n\t\t\t$mol_assert_equal( `${ App.relation([123,[456]]) }` , 'App.relation<[123,[456]]>' )\n\n\t\t} ,\n\n\t\t'Deep deps' ($) {\n\n\t\t\tclass Fib extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic sums = 0\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic value( index: number , next?: number ): number {\n\t\t\t\t\tif( next ) return next\n\t\t\t\t\tif( index < 2 ) return 1\n\t\t\t\t\t++ this.sums\n\t\t\t\t\treturn this.value( index - 1 ) + this.value( index - 2 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 5 )\n\t\t\t$mol_assert_equal( Fib.sums, 3 )\n\t\t\t\n\t\t\tFib.value( 1, 2 )\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 8 )\n\t\t\t$mol_assert_equal( Fib.sums, 6 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Previous value'() {\n\n\t\t\tclass Cache extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next?: Record< string, number > ): typeof next {\n\t\t\t\t\tif( !next ) return {}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t... $mol_wire_probe( ()=> this.store() ) ?? {},\n\t\t\t\t\t\t... next,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store(), {} )\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store({ foo: 666 }), { foo: 666 } )\n\t\t\t$mol_assert_like( Cache.store({ bar: 777 }), { foo: 666, bar: 777 } )\n\n\t\t} ,\n\t\t\n\t})\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t$mol_test({\n\t\t\n\t\t'Primitives'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( null ), 'null' )\n\t\t\t$mol_assert_equal( $mol_key( false ), 'false' )\n\t\t\t$mol_assert_equal( $mol_key( true ), 'true' )\n\t\t\t$mol_assert_equal( $mol_key( 0 ), '0' )\n\t\t\t$mol_assert_equal( $mol_key( 1n<<64n ), '18446744073709551616n' )\n\t\t\t$mol_assert_equal( $mol_key( '' ), '\"\"' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array & POJO'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key([ null ]), '[null]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: 0 }), '{\"foo\":0}' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: [false] }), '{\"foo\":[false]}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Uint8Array([ 1, 2 ]) ), '[1,2]' )\n\t\t\t$mol_assert_equal( $mol_key([ new Uint8Array([ 1, 2 ]) ]), '[[1,2]]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: new Uint8Array([ 1, 2 ]) }), '{\"foo\":[1,2]}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Function'() {\n\t\t\t\n\t\t\tconst func = ()=> {}\n\t\t\t$mol_assert_equal( $mol_key( func ), $mol_key( func ) )\n\t\t\t$mol_assert_unique( $mol_key( func ), $mol_key( ()=> {} ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Objects'() {\n\t\t\t\n\t\t\tclass User {}\n\t\t\tconst jin = new User()\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( jin ), $mol_key( jin ) )\n\t\t\t$mol_assert_unique( $mol_key( jin ), $mol_key( new User() ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Elements'() {\n\t\t\t\n\t\t\tconst foo = <div>bar</div>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( foo ), $mol_key( foo ) )\n\t\t\t$mol_assert_unique( $mol_key( foo ), $mol_key( <div>bar</div> ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Custom JSON representation'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\tconstructor( public name: string, public age: number ) {}\n\t\t\t\ttoJSON() { return { name: this.name } }\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new User( 'jin', 18 ) ), '{\"name\":\"jin\"}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Special native classes'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Date( 'xyz' ) ), 'null' )\n\t\t\t$mol_assert_equal( $mol_key( new Date( '2001-01-02T03:04:05.678Z' ) ), '\"2001-01-02T03:04:05.678Z\"' )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( /./ ), '\"/./\"' )\n\t\t\t$mol_assert_equal( $mol_key( /\\./gimsu ), '\"/\\\\\\\\./gimsu\"' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_frame = $mol_after_mock_commmon as any as typeof $mol_after_frame\n\t})\n\n}\n","namespace $ {\n\t\n\t/** Watch and logs reactive states. Logger automatically added to test bundle which is adding to `test.html`. */\n\texport class $mol_wire_log extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic watch( task?: ()=> any ) {\n\t\t\treturn task\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic track( fiber: $mol_wire_fiber< any, any, any > ) {\n\t\t\t\n\t\t\tconst prev = $mol_wire_probe( ()=> this.track( fiber ) )\n\t\t\tlet next: any\n\t\t\t\n\t\t\ttry {\n\t\t\t\tnext = fiber.sync()\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tfor( const pub of fiber.pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( fiber.host === this ) return next\n\t\t\t\n\t\t\tif( $mol_compare_deep( prev, next ) ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '💧 Same',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t} else if( prev !== undefined ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '🔥 Next',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t\tprev,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic active() {\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.watch()?.()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t} finally {\n\t\t\t\tfor( const pub of ( $mol_wire_auto() as $mol_wire_fiber< any, any, any > ).pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_wire_log.active()\n\n}\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record<string, string | null> ) {\n\t\t\tconst params : Record<string, string | null> = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record<string, string | null>) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.link( next ) )\n\t\t}\n\t\t\n\t\tstatic commit() {}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record<string, string | null> ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record<string, string | null> = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( context => {\n\t\tclass $mol_state_arg_mock extends $mol_state_arg {\n\n\t\t\tstatic $ = context\n\t\t\t\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tstatic href( next? : string ) { return next || '' }\n\t\n\t\t\t@ $mol_action\n\t\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\t\tthis.href( this.link( next ) )\n\t\t\t}\n\n\t\t}\n\t\tcontext.$mol_state_arg = $mol_state_arg_mock\n\t} )\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_media extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic match( query: string, next?: boolean ) {\n\t\t\t\n\t\t\tif( next !== undefined ) return next\n\t\t\t\n\t\t\tconst res = this.$.$mol_dom_context.matchMedia?.( query ) ?? {}\n\t\t\tres.onchange = ()=> this.match( query, res.matches )\n\t\t\t\n\t\t\treturn res.matches\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( { \n\t\t\n\t\t'const returns stored value'() {\n\t\t\n\t\t\tconst foo = { bar : $mol_const( Math.random() ) }\n\t\t\t\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar() )\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar['()'] )\n\t\t\t\n\t\t} ,\n\n\t} )\n}\n","namespace $ {\n\n\tclass TestClass extends Uint8Array {}\n\n\t$mol_test({\n\t\t'Uint8Array vs itself'() {\n\t\t\t$mol_assert_ok( $mol_compare_array( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_array( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_array( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\n\t\t'Uint8Array vs subclassed array'() {\n\t\t\t$mol_assert_not( $mol_compare_array( new Uint8Array , new TestClass ) )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t'decode utf8 string'() {\n\t\t\tconst str = 'Hello, ΧΨΩЫ'\n\t\t\tconst encoded = new Uint8Array( [ 72, 101, 108, 108, 111, 44, 32, 206, 167, 206, 168, 206, 169, 208, 171 ] )\n\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded), str )\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded, 'utf8'), str )\n\t\t},\n\n\t\t'decode empty string'() {\n\t\t\tconst encoded = new Uint8Array( [] )\n\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded), '' )\n\t\t},\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'encode empty'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '' ),\n\t\t\t\tnew Uint8Array( [] ),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 1 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'F' ),\n\t\t\t\tnew Uint8Array([ 0x46 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 2 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'Б' ),\n\t\t\t\tnew Uint8Array([ 0xd0, 0x91 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 3 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'ह' ),\n\t\t\t\tnew Uint8Array([ 0xe0, 0xa4, 0xb9 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 4 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '𐍈' ),\n\t\t\t\tnew Uint8Array([ 0xf0, 0x90, 0x8d, 0x88 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode surrogate pair'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '😀' ),\n\t\t\t\tnew Uint8Array([ 0xf0, 0x9f, 0x98, 0x80 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'local get set delete'() {\n\t\t\t\t\t\n\t\t\tvar key = '$mol_state_local_test:' + Math.random()\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , null )\n\t\t\t\n\t\t\t$mol_state_local.value( key , 123 )\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , 123 )\n\t\t\t\n\t\t\t$mol_state_local.value( key , null )\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , null )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( context => {\n\t\tclass $mol_state_local_mock< Value > extends $mol_state_local< Value > {\n\n\t\t\tstatic state = {} as Record< string , any >\n\t\t\t\t\t\t\n\t\t\t@ $mol_mem_key\n\t\t\tstatic value< Value >(\n\t\t\t\tkey : string ,\n\t\t\t\tnext = this.state[ key ] as Value ,\n\t\t\t) {\n\t\t\t\treturn this.state[ key ] = ( next || null )\n\t\t\t}\n\n\t\t}\n\t\tcontext.$mol_state_local = $mol_state_local_mock\n\t} )\n\t\n}\n","namespace $ {\n\t\n\tfunction parse( theme: string | null ) {\n\t\tif( theme === 'true' ) return true\n\t\tif( theme === 'false' ) return false\n\t\treturn null\n\t}\n\t\n\t/**\n\t * Switcher between light/dark themes (usually for `mol_theme_auto` plugin).\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_lights_demo\n\t */\n\texport function $mol_lights( this : $ , next? : boolean ) {\n\t\t\n\t\tconst arg = parse( this.$mol_state_arg.value( 'mol_lights' ) )\n\t\t\n\t\tconst base = this.$mol_media.match( '(prefers-color-scheme: light)' )\n\t\t\n\t\tif( next === undefined ) {\n\t\t\treturn arg ?? this.$mol_state_local.value< boolean >( '$mol_lights' ) ?? base\n\t\t} else {\n\t\t\tif( arg === null ) {\n\t\t\t\tthis.$mol_state_local.value( '$mol_lights' , next === base ? null : next )\n\t\t\t} else {\n\t\t\t\tthis.$mol_state_arg.value( 'mol_lights' , String( next ) )\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Theme css variables\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\t\n\texport const $mol_theme = $mol_style_prop(\n\t\t'mol_theme',\n\t\t[\n\t\t\t'back',\n\t\t\t'hover',\n\t\t\t'card',\n\t\t\t'current',\n\t\t\t'special',\n\t\t\t'text',\n\t\t\t'control',\n\t\t\t'shade',\n\t\t\t'line',\n\t\t\t'focus',\n\t\t\t'field',\n\t\t\t'image',\n\t\t\t'spirit',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \":root {\\n\\t--mol_theme_hue: 240deg;\\n\\t--mol_theme_hue_spread: 90deg;\\n\\tcolor-scheme: dark light;\\n}\\n\\n:where([mol_theme]) {\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n\\tbackground-color: var(--mol_theme_back);\\n}\\n\\t\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\n\\t--mol_theme_luma: -1;\\n\\t--mol_theme_image: invert(1) hue-rotate( 180deg );\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 0%, .75 );\\n\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 30% .05 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 15% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 60% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 70% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 70% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_luma: 1;\\n\\t--mol_theme_image: none;\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 100%, .75 );\\n\\t\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t--mol_theme_back: oklch( 92% .01 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 99% .01 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_hover: oklch( 50% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 60% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 40% .15 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 50% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 50% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 25% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 85% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 98% .03 var(--mol_theme_hue) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 35% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 45% .15 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 83% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n\\n\"\n) }","namespace $ {\n\t$mol_style_attach( '$mol_theme_lights', `:root { --mol_theme_back: oklch( ${ $$.$mol_lights() ? 92 : 20 }% .01 var(--mol_theme_hue) ) }` )\n}\n","namespace $ {\n\n\t/**\n\t * Gap in CSS\n\t * @see https://page.hyoo.ru/#!=msdb74_bm7nsq\n\t */\n\texport let $mol_gap = $mol_style_prop(\n\t\t'mol_gap',\n\t\t[\n\t\t\t'page',\n\t\t\t'block',\n\t\t\t'text',\n\t\t\t'round',\n\t\t\t'space',\n\t\t\t'blur',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/gap/gap.css\",\n \":root {\\n\\t--mol_gap_page: 3rem;\\n\\t--mol_gap_block: .75rem;\\n\\t--mol_gap_text: .5rem .75rem;\\n\\t--mol_gap_round: .25rem;\\n\\t--mol_gap_space: .25rem;\\n\\t--mol_gap_blur: .5rem;\\n}\\n\"\n) }","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\tstatic size() {\n\t\t\treturn {\n\t\t\t\twidth: 1024,\n\t\t\t\theight: 768,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[], notify?: 'notify' ) : Element[] {\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next?.[0] ?? $mol_dom_context.document.activeElement\n\t\t\twhile( element?.shadowRoot ) {\n\t\t\t\telement = element!.shadowRoot.activeElement\n\t\t\t}\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\tconst parent = element.parentNode\n\t\t\t\tif( parent instanceof ShadowRoot ) element = parent.host\n\t\t\t\telse element = parent as HTMLElement\n\t\t\t}\n\t\t\t\n\t\t\tif( !next || notify ) return parents\n\t\t\t\n\t\t\tnew $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\tconst element = this.focused()![0] as HTMLElement\n\t\t\t\t\n\t\t\t\tif( element ) element.focus()\n\t\t\t\telse $mol_dom_context.blur()\n\t\t\t\t\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler<Class> = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn (\n\t\t\t\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )!,\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost extends object ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )! as TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'run callback' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\t$mol_assert_equal( Plus1.run( ()=> 2 ) , 3 )\n\n\t\t} ,\n\n\t\t'wrap function' () {\n\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tconst obj = {\n\t\t\t\tlevel : 2 ,\n\t\t\t\tpow : Plus1.func( function( this : { level : number } , a ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t} )\n\t\t\t}\n\n\t\t\t$mol_assert_equal( obj.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate field getter' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\n\t\t\t\tstatic last = 0\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn Plus1.last = ( task.call( this , ... args ) || 0 ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\t@ Plus1.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t\n\t\t\tFoo.two = 3\n\t\t\t$mol_assert_equal( Plus1.last , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t} ,\n\n\t\t'decorate instance method' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo1 {\n\n\t\t\t\tlevel = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tpow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst Foo2 = Foo1\n\t\t\tconst foo = new Foo2\n\n\t\t\t$mol_assert_equal( foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate static method' () {\n\t\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\tstatic level = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tstatic pow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( Foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate class' () {\n\t\t\t\n\t\t\tclass BarInc extends $mol_wrapper {\n\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> Foo ) {\n\t\t\t\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\n\t\t\t\t\t\tconst foo = task.call( this , ...args )\n\t\t\t\t\t\tfoo.bar ++\n\t\t\t\t\t\treturn foo\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t@ BarInc.class\n\t\t\tclass Foo {\n\t\t\t\tconstructor( public bar : number ) {}\n\t\t\t}\n\n\t\t\t$mol_assert_equal( new Foo( 2 ).bar , 3 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\tconst fun = function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ) ) return store.get( this )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t\tReflect.defineProperty( fun , 'name' , { value : task.name + ' ' } )\n\n\t\t\treturn fun\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'memoize field' () {\n\n\t\t\tclass Foo {\n\n\t\t\t\tstatic one = 1\n\n\t\t\t\t@ $mol_memo.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn ++ this.one\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {} \n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t\tFoo.two = 3\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 3 )\n\t\t\t$mol_assert_equal( Foo.two , 3 )\n\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/g , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean|null }\n\t) {\n\n\t\tfor( let name in attrs ) {\n\n\t\t\tlet val = attrs[ name ] as any\n\n\t\t\tif( val === undefined ) {\n\t\t\t\t\n\t\t\t\tcontinue\n\t\t\t\t\n\t\t\t} else if( val === null || val === false ) {\n\n\t\t\t\tif( !el.hasAttribute( name ) ) continue\n\t\t\t\t\n\t\t\t\tel.removeAttribute( name )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst str = String( val )\n\t\t\t\tif( el.getAttribute( name ) === str ) continue\n\t\t\t\t\n\t\t\t\tel.setAttribute( name , str )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any },\n\t\tpassive = false\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive } )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport function $mol_error_message(this: $, error: unknown) {\n\t\treturn String((error instanceof Error ? error.message : null) || error) || 'Unknown'\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle.setProperty(kebab(name), `${ val }px`);\n\t\t\t} else {\n\t\t\t\tstyle.setProperty(kebab(name), val);\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\tif( val === (el as any)[ key ] ) continue\n\t\t\t\n\t\t\t(el as any)[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: height, width, min-height, min-width, max-width, max-height, transform, scale, translate, rotate;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: ease-out;\\n\\t-webkit-appearance: none;\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tcontain: style;\\n\\tscrollbar-color: var(--mol_theme_line) transparent;\\n\\tscrollbar-width: thin;\\n}\\t\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_line);\\n}\\t\\n\\n[mol_view]::-webkit-scrollbar {\\n\\twidth: .25rem;\\n\\theight: .25rem;\\n}\\n\\n[mol_view]::-webkit-scrollbar-corner {\\n\\tbackground-color: var(--mol_theme_line);\\n}\\n\\n[mol_view]::-webkit-scrollbar-track {\\n\\tbackground-color: transparent;\\n}\\n\\n[mol_view]::-webkit-scrollbar-thumb {\\n\\tbackground-color: var(--mol_theme_line);\\n\\tborder-radius: var(--mol_gap_round);\\n}\\n\\n[mol_view] > * {\\n\\tword-break: inherit;\\n}\\n\\n[mol_view_root] {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tfont-family: system-ui, 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n\\tfont-size: 1rem;\\n\\tline-height: 1.5rem;\\n\\t/* background: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text); */\\n\\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\\n\\ttab-size: 4;\\n\\toverscroll-behavior: contain; /** Disable navigation gestures **/\\n}\\n\\n@media print {\\n\\t[mol_view_root] {\\n\\t\\theight: auto;\\n\\t}\\n}\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"], [mol_view_error=\\\"$mol_promise_blocker\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t-45deg,\\n\\t\\t#f92323,\\n\\t\\t#f92323 .5rem,\\n\\t\\t#ff3d3d .5rem,\\n\\t\\t#ff3d3d 1.5rem\\n\\t);\\n\\tcolor: black;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes mol_view_wait {\\n\\tfrom {\\n\\t\\topacity: .25;\\n\\t}\\n\\t20% {\\n\\t\\topacity: .75;\\n\\t}\\n\\tto {\\n\\t\\topacity: .25;\\n\\t}\\n}\\n\\n:where([mol_view][mol_view_error=\\\"$mol_promise_blocker\\\"]),\\n:where([mol_view][mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground: var(--mol_theme_hover);\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait 1s steps(20,end) infinite;\\n}\\n\"\n) }","/** @jsx $mol_jsx */\nnamespace $ {\n\n\texport type $mol_view_content = $mol_view|Node|string|number|boolean|null\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\t\n\t/**\n\t * The base class for all visual components. It provides the infrastructure for reactive lazy rendering, handling exceptions.\n\t * @see https://mol.hyoo.ru/#!section=docs/=vv2nig_s5zr0f\n\t */\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root< This extends typeof $mol_view >( this : This , id: number ) {\n\t\t\treturn new this as InstanceType< This >\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic roots() {\n\t\t\t\n\t\t\treturn [ ... $mol_dom.document.querySelectorAll( '[mol_view_root]:not([mol_view_root=\"\"])' ) ].map( ( node, index ) => {\n\n\t\t\t\tconst name = node.getAttribute( 'mol_view_root' )!\n\t\t\t\t\n\t\t\t\tconst View = (this.$ as any)[ name ] as typeof $mol_view\n\t\t\t\tif( !View ) {\n\t\t\t\t\t$mol_fail_log( new Error( `Autobind unknown view class`, { cause: { name } } ) )\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst view = View.Root( index )\n\t\t\t\tview.dom_node( node )\n\t\t\t\treturn view\n\t\t\t\t\n\t\t\t} ).filter( $mol_guard_defined )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic auto() {\n\t\t\t\n\t\t\tconst roots = this.roots()\n\t\t\tif( !roots.length ) return\n\t\t\t\n\t\t\tfor( const root of roots ) {\n\t\t\t\ttry {\n\t\t\t\t\troot.dom_tree()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tdocument.title = roots[0].title()\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\tdescr: try {\n\t\t\t\t\n\t\t\t\tconst descr = roots[0].hint()\n\t\t\t\tif( !descr ) break descr\n\t\t\t\t\n\t\t\t\tconst head = $mol_dom.document.head\n\t\t\t\tlet node = head.querySelector( 'meta[name=\"description\"]' ) as HTMLMetaElement | null\n\t\t\t\tif( node ) node.content = descr\n\t\t\t\telse head.append( <meta name=\"description\" content={ descr } /> )\n\t\t\t\t\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}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\treturn this.toString().match( /.*\\.(\\w+)/ )?.[1] ?? this.toString()\n\t\t}\n\t\t\n\t\thint() {\n\t\t\treturn ''\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : ( next ? [ node ] : [] ) )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t}\n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\t@ $mol_memo.method\n\t\tdom_name() {\n\t\t\treturn $mol_dom_qname( this.constructor.toString() ) || 'div'\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn [] as readonly $mol_view_content[]\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined ambient context\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\treturn this.sub()\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub()\n\t\t\t\tif( !sub ) return 0\n\t\t\t\t\n\t\t\t\tsub.forEach( view => {\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.minimal_width()\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( const view of this.sub() ?? [] ) {\n\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\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} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\n\t\t\treturn min\n\t\t}\n\n\t\tstatic watchers = new Set< $mol_view >()\n\n\t\t@ $mol_mem\n\t\tview_rect() {\n\t\t\tif( $mol_wire_probe( ()=> this.view_rect() ) === undefined ) {\n\t\t\t\t$mol_wire_watch()\n\t\t\t\treturn null // don't touch DOM to prevent instant reflow\n\t\t\t} else {\n\t\t\t\tconst { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect()\n\t\t\t\treturn { width, height, left, right, top, bottom } // pick to optimize compare\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tdom_id() {\n\t\t\treturn this.toString().replace( /</g, '(' ).replace( />/g, ')' ).replaceAll( /\"/g, \"'\" )\n\t\t}\n\t\n\t\tdom_node_external( next?: Element) {\n\t\t\tconst node = next ?? $mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\tconst id = this.dom_id()\n\t\t\tnode.setAttribute( 'id' , id )\n\t\t\tnode.toString = $mol_const( '<#' + id + '>' )\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst node = this.dom_node_external( next )\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event_async()\n\t\t\t$mol_dom_render_events(node, events)\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_final() {\n\t\t\t\n\t\t\tthis.render()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tfor( const el of sub ) {\n\t\t\t\tif( el && typeof el === 'object' && 'dom_final' in el ) {\n\t\t\t\t\tel['dom_final']()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.dom_node()\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree( next? : Element ) : Element {\n\t\t\tconst node = this.dom_node( next )\n\t\t\t\n\t\t\trender: try {\n\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : null } )\n\n\t\t\t\ttry {\n\t\t\t\t\n\t\t\t\t\tthis.render()\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tfor( let plugin of this.plugins() ) {\n\t\t\t\t\t\tif( plugin instanceof $mol_plugin ) {\n\t\t\t\t\t\t\tplugin.dom_tree()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\tconst mol_view_error = $mol_promise_like(error)\n\t\t\t\t\t? (error as any).constructor[Symbol.toStringTag] ?? 'Promise'\n\t\t\t\t\t: error.name || error.constructor.name\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error } )\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) break render\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t;( node as HTMLElement ).innerText = this.$.$mol_error_message(error).replace( /^|$/mg, '\\xA0\\xA0' )\n\t\t\t\t} catch {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.auto()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\t\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node_actual() {\n\t\t\tconst node = this.dom_node()\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tauto() {\n\t\t\treturn [] as any\n\t\t}\n\n\t\t@ $mol_mem\n\t\trender() {\n\n\t\t\tconst node = this.dom_node_actual()\n\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tconst nodes = sub.map( child => {\n\t\t\t\tif( child == null ) return null\n\t\t\t\treturn ( child instanceof $mol_view )\n\t\t\t\t\t? child.dom_node()\n\t\t\t\t\t: child instanceof $mol_dom_context.Node\n\t\t\t\t\t? child\n\t\t\t\t\t: String( child )\n\t\t\t})\n\t\t\t\n\t\t\t$mol_dom_render_children( node , nodes )\n\n\t\t\tfor( const el of sub ) if( el && typeof el === 'object' && 'dom_tree' in el ) el['dom_tree']()\n\n\t\t\t$mol_dom_render_fields( node , this.field() )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tif( current.constructor.name !== classes.at(-1)?.name ) {\n\t\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\t}\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tstatic _view_names?: Map< string, string[] >\n\t\tstatic view_names( suffix: string ) {\n\t\t\t\n\t\t\tlet cache = Reflect.getOwnPropertyDescriptor( this, '_view_names' )?.value\n\t\t\tif( !cache ) cache = this._view_names = new Map\n\t\t\t\n\t\t\tconst cached = cache.get( suffix )\n\t\t\tif( cached ) return cached\n\t\t\t\n\t\t\tconst names = [] as string[]\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tfor( const Class of this.view_classes() ) {\n\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\telse break\n\t\t\t}\n\t\t\t\n\t\t\tcache.set( suffix, names )\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this ) as $mol_wire_fiber< any, any[], any >\n\n\t\t\tif(!( owner?.host instanceof $mol_view )) return names\n\n\t\t\tconst suffix = owner.task.name.trim()\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tnames.push( ... ( owner.host.constructor as typeof $mol_view ).view_names( suffix ) )\n\t\t\t\n\t\t\tfor( let prefix of owner.host.view_names_owned() ) {\n\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tview_names() {\n\t\t\tconst names = new Set< string >()\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) names.add( name )\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = this.$.$mol_func_name( Class )\n\t\t\t\tif( name ) names.add( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\ttheme( next?: string | null ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean|null } {\n\t\t\tlet attrs : any = {}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).replace( /^(?=\\d)/ , '_' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\tmol_theme: this.theme(),\n\t\t\t} as {}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tevent_async() {\n\t\t\treturn { ... $mol_wire_async(this.event()) }\n\t\t}\n\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t// $mol_dev_format_shade( '/' ) ,\n\t\t\t\t// $mol_dev_format_auto( $mol_wire_cache( this ).sub().cache ) ,\n\t\t\t)\n\t\t}\n\n\t\t/** Deep search view by predicate. */\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( path.length === 0 && check( this ) ) return yield [ this ]\n\t\t\t\n\t\t\ttry {\n\t\t\t\tconst checked = new Set<$mol_view>()\n\t\t\t\tconst sub = this.sub()\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif( ! ( item instanceof $mol_view ) ) continue\n\n\t\t\t\t\tif ( ! check( item ) ) continue\n\t\t\t\t\tchecked.add(item)\n\t\t\t\t\tyield [ ... path, this, item ]\n\t\t\t\t}\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif ( ! ( item instanceof $mol_view) ) continue\n\t\t\t\t\tif ( checked.has(item) ) continue\n\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t}\n\t\t\t} catch( error: unknown ) {\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders path of views to DOM. */\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.sub()\n\n\t\t\tconst index = kids.findIndex( item => {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\treturn path.has( item )\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders view to DOM and scroll to it. */\n\t\tensure_visible( view: $mol_view, align: ScrollLogicalPosition = \"start\" ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.dom_final()\n\t\t\t} finally {\n\t\t\t\tview.dom_node().scrollIntoView({ block: align })\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tif( win.parent !== win.self && !win.document.hasFocus() ) return\n\t\t\t\n\t\t\t// new this.$.$mol_after_frame( ()=> {\n\t\t\t// \tthis.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' })\n\t\t\t// } )\n\t\t\t\n\t\t\tnew this.$.$mol_after_timeout( 0, ()=> {\n\t\t\t\tthis.focused( true )\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tconst node = $mol_wire_probe(() => this.dom_node())\n\t\t\tif (! node) return\n\n\t\t\tconst events = $mol_wire_probe(() => this.event_async())\n\t\t\tif (! events) return\n\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.removeEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\tevents[ event_name ]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $ , typeof $mol_view >\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'id auto generation'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test_item extends $mol_view { }\n\t\t\t\n\t\t\tclass $mol_view_test_block extends $mol_view {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_mem_key\n\t\t\t\telement( id : number ) {\n\t\t\t\t\treturn new $mol_view_test_item()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tvar x = $mol_view_test_block.Root(0)\n\t\t\t\n\t\t\t$mol_assert_equal( x.dom_node().id , '$mol_view_test_block.Root(0)' )\n\t\t\t$mol_assert_equal( x.element( 0 ).dom_node().id , '$mol_view_test_block.Root(0).element(0)' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'caching ref to dom node'($) {\n\t\t\t\n\t\t\tvar x = new class extends $mol_view { }\n\t\t\tx.$ = $\n\t\t\t\n\t\t\t$mol_assert_equal( x.dom_node() , x.dom_node() )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'content render'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tsub() {\n\t\t\t\t\treturn [ 'lol' , 5 ]\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_tree()\n\t\t\t\n\t\t\t$mol_assert_equal( node.innerHTML , 'lol5' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'bem attributes generation'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test_item extends $mol_view { }\n\t\t\t\n\t\t\tclass $mol_view_test_block extends $mol_view {\n\t\t\t\t\n\t\t\t\t@ $mol_mem_key\n\t\t\t\tElement( id : number ) {\n\t\t\t\t\treturn new $mol_view_test_item()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test_block()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\t$mol_assert_equal( x.dom_node().getAttribute( 'mol_view_test_block' ) , '' )\n\t\t\t$mol_assert_equal( x.dom_node().getAttribute( 'mol_view' ) , '' )\n\t\t\t\n\t\t\t$mol_assert_equal( x.Element( 0 ).dom_node().getAttribute( 'mol_view_test_block_element' ) , '' )\n\t\t\t\n\t\t\t$mol_assert_equal( x.Element( 0 ).dom_node().getAttribute( 'mol_view_test_item' ) , '' )\n\t\t\t$mol_assert_equal( x.Element( 0 ).dom_node().getAttribute( 'mol_view' ) , '' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'render custom attributes'($) {\n\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tattr() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'href' : '#haha' ,\n\t\t\t\t\t\t'required' : true ,\n\t\t\t\t\t\t'hidden' : false ,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_tree()\n\t\t\t\n\t\t\t$mol_assert_equal( node.getAttribute( 'href' ) , '#haha' )\n\t\t\t$mol_assert_equal( node.getAttribute( 'required' ) , 'true' )\n\t\t\t$mol_assert_equal( node.getAttribute( 'hidden' ) , null )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'render custom fields'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tfield() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'hidden' : true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_tree() as HTMLElement\n\t\t\t\n\t\t\t$mol_assert_equal( node.hidden , true )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'attach event handlers'($) {\n\t\t\t\t\n\t\t\tvar clicked = false\n\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tevent() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'click' : ( next? : Event ) => this.event_click( next )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tevent_click( next? : Event ) {\n\t\t\t\t\tclicked = true\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_node() as HTMLElement\n\t\t\tnode.click()\n\t\t\t\n\t\t\t$mol_assert_ok( clicked )\n\t\t\t\n\t\t} ,\n\t\n\t} )\n}\n","namespace $ {\n\t/** Plugin is component without its own DOM element, but instead uses the owner DOM element */\n\texport class $mol_plugin extends $mol_view {\n\n\t\toverride dom_node_external( next? : Element ) {\n\t\t\treturn next ?? $mol_owning_get<typeof this, $mol_wire_fiber<$mol_view, any, any>>( this )!.host!.dom_node()\n\t\t}\n\n\t\toverride render() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\n\t}\n\n}\n","$mol_hotkey $mol_plugin\n\tevent *\n\t\t^\n\t\tkeydown?event <=> keydown?event null\n\tkey *\n\tmod_ctrl false\n\tmod_alt false\n\tmod_shift false\n","namespace $ {\n\t/**\n\t* Key names code for hotkey\n\t* @see [mol_hotkey](../../hotkey/hotkey.view.ts)\n\t*/\n\texport enum $mol_keyboard_code {\n\t\tbackspace = 8,\n\t\ttab = 9,\n\t\tenter = 13,\n\t\tshift = 16,\n\t\tctrl = 17,\n\t\talt = 18,\n\t\tpause = 19,\n\t\tcapsLock = 20,\n\t\tescape = 27,\n\t\tspace = 32,\n\t\tpageUp = 33,\n\t\tpageDown = 34,\n\t\tend = 35,\n\t\thome = 36,\n\t\tleft = 37,\n\t\tup = 38,\n\t\tright = 39,\n\t\tdown = 40,\n\t\tinsert = 45,\n\t\tdelete = 46,\n\t\tkey0 = 48,\n\t\tkey1 = 49,\n\t\tkey2 = 50,\n\t\tkey3 = 51,\n\t\tkey4 = 52,\n\t\tkey5 = 53,\n\t\tkey6 = 54,\n\t\tkey7 = 55,\n\t\tkey8 = 56,\n\t\tkey9 = 57,\n\t\tA = 65,\n\t\tB = 66,\n\t\tC = 67,\n\t\tD = 68,\n\t\tE = 69,\n\t\tF = 70,\n\t\tG = 71,\n\t\tH = 72,\n\t\tI = 73,\n\t\tJ = 74,\n\t\tK = 75,\n\t\tL = 76,\n\t\tM = 77,\n\t\tN = 78,\n\t\tO = 79,\n\t\tP = 80,\n\t\tQ = 81,\n\t\tR = 82,\n\t\tS = 83,\n\t\tT = 84,\n\t\tU = 85,\n\t\tV = 86,\n\t\tW = 87,\n\t\tX = 88,\n\t\tY = 89,\n\t\tZ = 90,\n\t\tmetaLeft = 91,\n\t\tmetaRight = 92,\n\t\tselect = 93,\n\t\tnumpad0 = 96,\n\t\tnumpad1 = 97,\n\t\tnumpad2 = 98,\n\t\tnumpad3 = 99,\n\t\tnumpad4 = 100,\n\t\tnumpad5 = 101,\n\t\tnumpad6 = 102,\n\t\tnumpad7 = 103,\n\t\tnumpad8 = 104,\n\t\tnumpad9 = 105,\n\t\tmultiply = 106,\n\t\tadd = 107,\n\t\tsubtract = 109,\n\t\tdecimal = 110,\n\t\tdivide = 111,\n\t\tF1 = 112,\n\t\tF2 = 113,\n\t\tF3 = 114,\n\t\tF4 = 115,\n\t\tF5 = 116,\n\t\tF6 = 117,\n\t\tF7 = 118,\n\t\tF8 = 119,\n\t\tF9 = 120,\n\t\tF10 = 121,\n\t\tF11 = 122,\n\t\tF12 = 123,\n\t\tnumLock = 144,\n\t\tscrollLock = 145,\n\t\tsemicolon = 186,\n\t\tequals = 187,\n\t\tcomma = 188,\n\t\tdash = 189,\n\t\tperiod = 190,\n\t\tforwardSlash = 191,\n\t\tgraveAccent = 192,\n\t\tbracketOpen = 219,\n\t\tslashBack = 220,\n\t\tslashBackLeft = 226,\n\t\tbracketClose = 221,\n\t\tquoteSingle = 222\n\t}\n}\n","namespace $.$$ {\n\t/**\n\t * Plugin which adds handlers for keyboard keys.\n\t * @see [mol_keyboard_code](../keyboard/code/code.ts)\n\t */\n\texport class $mol_hotkey extends $.$mol_hotkey {\n\n\t\tkey() {\n\t\t\treturn super.key() as {\n\t\t\t\t[ key in keyof typeof $mol_keyboard_code ]? : ( event : KeyboardEvent )=> void\n\t\t\t}\n\t\t}\n\t\t\n\t\tkeydown( event? : KeyboardEvent ) {\n\n\t\t\tif( !event ) return\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tlet name = $mol_keyboard_code[ event.keyCode ] as keyof typeof $mol_keyboard_code\n\t\t\t\n\t\t\tif( this.mod_ctrl() !== ( event.ctrlKey || event.metaKey ) ) return\n\t\t\tif( this.mod_alt() !== event.altKey ) return\n\t\t\tif( this.mod_shift() !== event.shiftKey ) return\n\t\t\t\n\t\t\tconst handle = this.key()[ name ]\n\t\t\tif( handle ) handle( event )\n\n\t\t}\n\t\t\n\t}\n}\n","$mol_string $mol_view\n\tdom_name \\input\n\tenabled true\n\tminimal_height 40\n\tautocomplete false\n\tselection? /number\n\t\t0\n\t\t0\n\tauto /\n\t\t<= selection_watcher null\n\t\t<= error_report null\n\tfield *\n\t\t^\n\t\tdisabled <= disabled false\n\t\tvalue <= value_changed? <=> value? \\\n\t\tplaceholder <= hint_visible <= hint \\\n\t\tspellcheck <= spellcheck true\n\t\tautocomplete <= autocomplete_native \\\n\t\tselectionEnd <= selection_end 0\n\t\tselectionStart <= selection_start 0\n\t\tinputMode <= keyboard \\text\n\t\tenterkeyhint <= enter \\go\n\tattr *\n\t\t^\n\t\tmaxlength <= length_max +Infinity\n\t\ttype <= type? \\text\n\tevent *\n\t\t^\n\t\tinput?event <=> event_change?event null\n\tplugins /\n\t\t<= Submit $mol_hotkey\n\t\t\tmod_ctrl <= submit_with_ctrl false\n\t\t\tkey * enter?event <=> submit?event null\n","namespace $ {\n\n\texport class $mol_dom_listener extends $mol_object {\n\n\t\tconstructor(\n\t\t\tpublic _node : any ,\n\t\t\tpublic _event : string ,\n\t\t\tpublic _handler : ( event : any )=> any ,\n\t\t\tpublic _config : boolean|{ passive : boolean } = { passive : true }\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis._node.addEventListener( this._event , this._handler , this._config )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis._node.removeEventListener( this._event , this._handler , this._config )\n\t\t\tsuper.destructor()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * Z-index values for layers\n\t * https://page.hyoo.ru/#!=xthcpx_wqmiba\n\t */\n\texport let $mol_layer = $mol_style_prop(\n\t\t'mol_layer',\n\t\t[\n\t\t\t'hover',\n\t\t\t'focus',\n\t\t\t'speck',\n\t\t\t'float',\n\t\t\t'popup',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/layer/layer.css\",\n \":root {\\n\\t--mol_layer_hover: 1;\\n\\t--mol_layer_focus: 2;\\n\\t--mol_layer_speck: 3;\\n\\t--mol_layer_float: 4;\\n\\t--mol_layer_popup: 5;\\n}\\n\"\n) }","namespace $.$$ {\n\t/**\n\t * An input field for entering single line text.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_string_demo\n\t */\n\texport class $mol_string extends $.$mol_string {\n\t\t\n\t\t@ $mol_action\n\t\tevent_change( next? : Event ) {\n\t\t\tif( !next ) return\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tconst from = el.selectionStart\n\t\t\tconst to = el.selectionEnd\n\t\t\ttry {\n\t\t\t\tel.value = this.value_changed( el.value )\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t\tif( to === null ) return \n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\t\t\tthis.selection_change( next )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\terror_report() {\n\t\t\ttry {\n\t\t\t\tif( this.focused() ) this.value()\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thint_visible() {\n\t\t\treturn ( this.enabled() ? this.hint() : '' ) || ' '\n\t\t}\n\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\n\t\tautocomplete_native() {\n\t\t\treturn this.autocomplete() ? 'on' : 'off'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tselection_watcher() {\n\t\t\treturn new $mol_dom_listener(\n\t\t\t\tthis.$.$mol_dom_context.document,\n\t\t\t\t'selectionchange',\n\t\t\t\t$mol_wire_async( event => this.selection_change( event ) ),\n\t\t\t)\n\t\t}\n\t\t\n\t\tselection_change( event: Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el !== this.$.$mol_dom_context.document.activeElement ) return\n\t\t\t\n\t\t\tconst [ from, to ] = this.selection([\n\t\t\t\tel.selectionStart!,\n\t\t\t\tel.selectionEnd!,\n\t\t\t])\n\t\t\t\n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\n\t\t\tif( to !== from && el.selectionEnd === el.selectionStart ) {\n\t\t\t\tel.selectionEnd = to\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tselection_start() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( !this.focused() ) return undefined!\n\t\t\tif( el.selectionStart == null ) return undefined!\n\t\t\treturn this.selection()[0]\n\t\t}\n\t\t\n\t\tselection_end() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( !this.focused() ) return undefined!\n\t\t\tif( el.selectionEnd == null ) return undefined!\n\t\t\treturn this.selection()[1]\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/string/string.view.css\",\n \"[mol_string] {\\n\\tbox-sizing: border-box;\\n\\toutline-offset: 0;\\n\\tborder: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\twhite-space: pre-line;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tpadding: var(--mol_gap_text);\\n\\ttext-align: left;\\n\\tposition: relative;\\n\\tfont: inherit;\\n\\tflex: 1 1 auto;\\n\\tbackground: transparent;\\n\\tmin-width: 0;\\n\\tcolor: inherit;\\n\\tbackground: var(--mol_theme_field);\\n}\\n\\n[mol_string]:disabled:not(:placeholder-shown) {\\n\\tbackground-color: transparent;\\n\\tcolor: var(--mol_theme_text);\\n}\\n\\n[mol_string]:where(:not(:disabled)) {\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\\n}\\n\\n[mol_string]:where(:not(:disabled)):hover {\\n\\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_string]:focus {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n\\tcolor: var(--mol_theme_text);\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\\n}\\n\\n[mol_string]::placeholder {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_string]::-ms-clear {\\n\\tdisplay: none;\\n}\\n\"\n) }","$mol_paragraph $mol_view\n\tline_height 24\n\tletter_width 7\n\twidth_limit +Infinity\n\trow_width 0\n\tsub / <= title\n","namespace $.$$ {\n\n\texport class $mol_paragraph extends $.$mol_paragraph {\n\n\t\t@ $mol_mem\n\t\tmaximal_width() {\n\n\t\t\tlet width = 0\n\t\t\tconst letter = this.letter_width()\n\t\t\t\n\t\t\tfor( const kid of this.sub() ) {\n\t\t\t\t\n\t\t\t\tif( !kid ) continue\n\t\t\t\t\n\t\t\t\tif( kid instanceof $mol_view ) {\n\t\t\t\t\twidth += kid.maximal_width()\n\t\t\t\t} else if( typeof kid !== 'object' ) {\n\t\t\t\t\twidth += String( kid ).length * letter\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\treturn width\n\n\t\t}\n\n\t\twidth_limit() {\n\t\t\treturn this.$.$mol_window.size().width\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.letter_width()\n\t\t}\n\n\t\t@ $mol_mem\n\t\trow_width() {\n\t\t\treturn Math.max( Math.min( this.width_limit() , this.maximal_width() ) , this.letter_width() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\treturn Math.max( 1 , Math.ceil( this.maximal_width() / this.row_width() ) ) * this.line_height()\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/paragraph/paragraph.view.css\",\n \":where([mol_paragraph]) {\\n\\tmargin: 0;\\n\\tmax-width: 100%;\\n}\\n\"\n) }","$mol_dimmer $mol_paragraph\n\thaystack \\\n\tneedle \\\n\tsub <= parts /$mol_view_content\n\tLow* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n\tHigh* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t'Empty needle'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> ' '\n\t\t\tapp.haystack = ()=> 'foo bar'\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ 'foo bar' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Empty haystack'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo bar'\n\t\t\tapp.haystack = ()=> ''\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ '' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Not found'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo'\n\t\t\tapp.haystack = ()=> ' bar '\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' bar ' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'One found'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo'\n\t\t\tapp.haystack = ()=> ' barfoo '\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' bar', 'foo', ' ' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Multiple found'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo'\n\t\t\tapp.haystack = ()=> ' foobarfoo foo'\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' ', 'foo', 'bar', 'foo', ' ', 'foo' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Fuzzy search'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo bar'\n\t\t\tapp.haystack = ()=> ' barfoo '\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' ', 'bar', '', 'foo', ' ' ] )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $.$$ {\n\n\t/**\n\t * Output text with dimmed mismatched substrings.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_dimmer_demo\n\t */\n\texport class $mol_dimmer extends $.$mol_dimmer {\n\t\t\n\t\tparts() {\n\t\t\tconst needle = this.needle()\n\t\t\tif( needle.length < 2 ) return [ this.haystack() ]\n\t\t\t\n\t\t\tlet chunks : any[] = []\n\t\t\tlet strings = this.strings()\n\t\t\t\n\t\t\tfor( let index = 0 ; index < strings.length ; index++ ) {\n\t\t\t\tif( strings[ index ] === '' ) continue\n\t\t\t\t\n\t\t\t\tchunks.push( ( index % 2 ) ? this.High( index ) : this.Low( index ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstrings() {\n\t\t\t\n\t\t\tconst options = this.needle().split( /\\s+/g ).filter( Boolean )\n\t\t\tif( !options.length ) return [ this.haystack() ]\n\t\t\t\n\t\t\tconst variants = { ... options } as Record< number, string >\n\t\t\tconst regexp = $mol_regexp.from( { needle: variants } , { ignoreCase: true } )\n\t\t\t\n\t\t\treturn this.haystack().split( regexp )\n\t\t}\n\t\t\n\t\tstring( index: number ) {\n\t\t\treturn this.strings()[ index ]\n\t\t}\n\t\t\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( check( this, this.haystack() ) ) {\n\t\t\t\tyield [ ... path, this ]\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/dimmer/dimmer.view.css\",\n \"[mol_dimmer] {\\n\\tdisplay: block;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_dimmer_low] {\\n\\tdisplay: inline;\\n\\topacity: 0.8;\\n}\\n\\n[mol_dimmer_high] {\\n\\tdisplay: inline;\\n\\tcolor: var(--mol_theme_focus);\\n\\ttext-shadow: 0 0;\\n}\\n\"\n) }","$mol_speck $mol_view\n\ttheme \\$mol_theme_accent\n\tsub /\n\t\t<= value null\n","namespace $ { $mol_style_attach( \"mol/speck/speck.view.css\",\n \"[mol_speck] {\\n\\tfont-size: .75rem;\\n\\tborder-radius: 1rem;\\n\\tmargin: -0.5rem -0.2rem;\\n\\talign-self: flex-start;\\n\\tmin-height: 1em;\\n\\tmin-width: .75rem;\\n\\tvertical-align: sub;\\n\\tpadding: 0 .2rem;\\n\\tposition: absolute;\\n\\tz-index: var(--mol_layer_speck);\\n\\ttext-align: center;\\n\\tline-height: .9;\\n\\tdisplay: inline-block;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tuser-select: none;\\n\\tbox-shadow: 0 0 3px rgba(0,0,0,.5);\\n}\\n\"\n) }","$mol_button $mol_view\n\tenabled true\n\tclick?event null\n\tevent_click?event null\n\tstatus? /\n\tevent *\n\t\t^\n\t\tclick?event <=> activate?event <=> event_activate?event null\n\t\tdblclick?event <=> clicks?event null\n\t\tkeydown?event <=> key_press?event <=> event_key_press?event null\n\tattr *\n\t\t^\n\t\tdisabled <= disabled false\n\t\trole \\button\n\t\ttabindex <= tab_index 0\n\t\ttitle <= hint_safe <= hint \\\n\tsub /$mol_view_content\n\t\t<= title\n\tSpeck $mol_speck\n\t\tvalue <= error \\\n","namespace $.$$ {\n\t\n\t$mol_test({\n\t\t\n\t\t'handle clicks by default'($) {\n\t\t\tlet clicked = false\n\t\t\t\n\t\t\tconst clicker = $mol_button.make({\n\t\t\t\t$,\n\t\t\t\tclick : ( event : MouseEvent )=> { clicked = true } ,\n\t\t\t})\n\t\t\t\n\t\t\tconst element = clicker.dom_tree() as HTMLButtonElement\n\t\t\t\n\t\t\tconst event = $mol_dom_context.document.createEvent( 'mouseevent' )\n\t\t\tevent.initEvent( 'click' , true , true )\n\t\t\telement.dispatchEvent( event )\n\t\t\t\n\t\t\t$mol_assert_ok( clicked )\n\t\t} ,\n\t\t\n\t\t'no handle clicks if disabled'($) {\n\t\t\tlet clicked = false\n\t\t\t\n\t\t\tconst clicker = $mol_button.make({\n\t\t\t\t$,\n\t\t\t\tclick : ( event : MouseEvent )=> { clicked = true } ,\n\t\t\t\tenabled : ()=> false ,\n\t\t\t})\n\t\t\t\n\t\t\tconst element = clicker.dom_tree() as HTMLButtonElement\n\t\t\t\n\t\t\tconst event = $mol_dom_context.document.createEvent( 'mouseevent' )\n\t\t\tevent.initEvent( 'click' , true , true )\n\t\t\telement.dispatchEvent( event )\n\t\t\t\n\t\t\t$mol_assert_not( clicked )\n\t\t} ,\n\t\t\n\t\tasync 'Store error'($) {\n\t\t\t\n\t\t\tconst clicker = $mol_button.make({\n\t\t\t\t$,\n\t\t\t\tclick : ( event : MouseEvent )=> $.$mol_fail( new Error( 'Test error' ) ),\n\t\t\t})\n\t\t\t\n\t\t\tconst event = $mol_dom_context.document.createEvent( 'mouseevent' )\n\t\t\t$mol_assert_fail( ()=> clicker.event_activate( event ), 'Test error' )\n\t\t\tawait Promise.resolve()\n\t\t\t$mol_assert_equal( clicker.status()[0].message, 'Test error' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Simple button.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_button_demo\n\t */\n\texport class $mol_button extends $.$mol_button {\n\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\t\t\n\t\tevent_activate( next : Event ) {\n\t\t\t\n\t\t\tif( !next ) return\n\t\t\tif( !this.enabled() ) return\n\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tthis.event_click( next )\n\t\t\t\tthis.click( next )\n\t\t\t\tthis.status([ null ])\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t// Calling actions from catch section, if throwing promise breaks idempotency\n\t\t\t\tPromise.resolve().then( ()=> this.status([ error ]) )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tevent_key_press ( event: KeyboardEvent ) { \n\t\t\tif( event.keyCode === $mol_keyboard_code.enter ) {\n\t\t\t\treturn this.activate( event )\n\t\t\t}\n\t\t} \n\t\t\n\t\ttab_index() {\n\t\t\treturn this.enabled() ? super.tab_index() : -1\n\t\t}\n\n\t\terror() {\n\n\t\t\tconst error = this.status()?.[0]\n\t\t\tif( !error ) return ''\n\n\t\t\tif( $mol_promise_like(error) ) {\n\t\t\t\treturn $mol_fail_hidden( error )\n\t\t\t}\n\t\t\treturn this.$.$mol_error_message( error )\n\n\t\t}\n\t\t\n\t\thint_safe() {\n\t\t\ttry {\n\t\t\t\treturn this.hint()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn ''\n\t\t\t}\n\t\t}\n\n\t\tsub_visible() {\n\t\t\treturn [\n\t\t\t\t... this.error() ? [ this.Speck() ] : [] ,\n\t\t\t\t... this.sub() ,\n\t\t\t]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/button/button.view.css\",\n \"[mol_button] {\\n\\tborder: none;\\n\\tfont: inherit;\\n\\tdisplay: inline-flex;\\n\\tflex-shrink: 0;\\n\\ttext-decoration: inherit;\\n\\tcursor: inherit;\\n\\tposition: relative;\\n\\tbox-sizing: border-box;\\n\\tword-break: normal;\\n\\tcursor: default;\\n\\tuser-select: none;\\n\\t-webkit-user-select: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\tbackground: transparent;\\n\\tcolor: inherit;\\n}\\n\\n[mol_button]:where(:not(:disabled)):hover {\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_button]:focus {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n}\\n\"\n) }","$mol_button_typed $mol_button\n\tminimal_height 40\n\tminimal_width 40\n","namespace $ { $mol_style_attach( \"mol/button/typed/typed.view.css\",\n \"[mol_button_typed] {\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tpadding: var(--mol_gap_text);\\n\\tborder-radius: var(--mol_gap_round);\\n\\tgap: var(--mol_gap_space);\\n\\tuser-select: none;\\n\\tcursor: pointer;\\n\\tmin-width: 2.5rem;\\n\\tmin-height: 2.5rem;\\n}\\n\\n[mol_button_typed][disabled] {\\n\\tpointer-events: none;\\n}\\n\\n[mol_button_typed]:hover ,\\n[mol_button_typed]:focus-visible {\\n\\tbox-shadow: inset 0 0 0 100vmax var(--mol_theme_hover);\\n}\\n\\n[mol_button_typed]:active {\\n\\tcolor: var(--mol_theme_focus);\\n}\\n\"\n) }","$mol_button_minor $mol_button_typed\n","namespace $ { $mol_style_attach( \"mol/button/minor/minor.view.css\",\n \"[mol_button_minor] {\\n\\tcolor: var(--mol_theme_control);\\n}\\n\\n[mol_button_minor][disabled] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\"\n) }","namespace $.$$ {\n\tconst d = '$'\n\tconst file_name = '/mol/view/tree2/class/props.test.ts'\n\n\tfunction normalize($: $, src: string, dest?: string) {\n\t\tconst mod = $.$mol_tree2_from_string( src, file_name )\n\t\tconst input = $.$mol_view_tree2_class_props(mod.kids[0]).join('')\n\t\tconst output = dest ? $$.$mol_tree2_from_string(dest, 'reference').toString() : ''\n\t\treturn { input, output }\n\t}\n\n\t$mol_test({\n\t\t'dupes merge'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tquery? \\\\\n\t\t\t\t\tQuery $mol_string\n\t\t\t\t\t\tvalue? <=> query? \\\\\n\t\t\t\t\tSuggest_label ${d}mol_dimmer\n\t\t\t\t\t\tneedle <= query? \\\\\n\t\t\t\t\t\tkey * escape? <=> clear? null\n\t\t\t\t\tClear ${d}mol_button_minor\n\t\t\t\t\t\tclick?event <=> clear?event null\n\t\t\t`\n\n\t\t\tconst dest = `\n\t\t\t\tquery? \\\\\n\t\t\t\tclear?event null\n\t\t\t\tQuery $mol_string value? <=> query?\n\t\t\t\tSuggest_label $mol_dimmer\n\t\t\t\t\tneedle <= query?\n\t\t\t\t\tkey * escape? <=> clear?\n\t\t\t\tClear $mol_button_minor click?event <=> clear?event\n\t\t\t`\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'left and bidi common'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\ttitle @ \\\\title\n\t\t\t\t\tsub2 /\n\t\t\t\t\t\t<= Close_icon ${d}mol_icon_cross\n\t\t\t\t\tsub /\n\t\t\t\t\t\t<= Title ${d}mol_view\n\t\t\t\t\t\t\tsub /\n\t\t\t\t\t\t\t\t<= title\n\t\t\t\t\t\t<= Close ${d}mol_button\n\t\t\t\t\t\t\ttitle \\\\close\n\t\t\t\t\t\t\tclick?event <=> close?event null\n\t\t\t`\n\t\t\t\n\t\t\tconst dest = `\n\t\t\t\tClose_icon ${d}mol_icon_cross\n\t\t\t\tTitle ${d}mol_view sub / <= title\n\t\t\t\tclose?event null\n\t\t\t\tClose ${d}mol_button\n\t\t\t\t\ttitle \\\\close\n\t\t\t\t\tclick?event <=> close?event\n\t\t\t\ttitle @ \\\\title\n\t\t\t\tsub2 / <= Close_icon\n\t\t\t\tsub /\n\t\t\t\t\t<= Title\n\t\t\t\t\t<= Close\n\t\t\t`\n\t\t\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'right bind levels'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tDog ${d}mol_view_tree2_class_test_dog\n\t\t\t\t\t\tMouth => Dog_mouth\n\t\t\t\t\t\t\tanimation => dog_animation\n\t\t\t\t\tplugins /\n\t\t\t\t\t\t<= Human* ${d}mol_view_tree2_class_test_human\n\t\t\t\t\t\t\tMouth => Human_mouth\n\t\t\t\t\t\t\t\tanimation => human_animation\n\t\t\t\t\t\t\t\t\ttext => human_text\n\t\t\t`\n\n\t\t\tconst dest = `\n\t\t\t\tDog_mouth = Dog Mouth\n\t\t\t\tdog_animation = Dog_mouth animation\n\t\t\t\tHuman_mouth = Human* Mouth\n\t\t\t\thuman_animation = Human_mouth animation\n\t\t\t\thuman_text = human_animation text\n\t\t\t\tHuman* $mol_view_tree2_class_test_human Mouth => Human_mouth animation => human_animation text => human_text\n\t\t\t\tDog $mol_view_tree2_class_test_dog Mouth => Dog_mouth animation => dog_animation\n\t\t\t\tplugins / <= Human*\n\t\t\t`\n\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'good right bind dupes'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tSuggest_label ${d}mol_dimmer\n\t\t\t\t\t\tclear? => clear?\n\t\t\t\t\tClear ${d}mol_button_minor\n\t\t\t\t\t\tclick?e <=> clear?e\n\t\t\t`\n\n\t\t\tconst dest = `\n\t\t\t\tclear? = Suggest_label clear?\n\t\t\t\tSuggest_label $mol_dimmer clear? => clear?\n\t\t\t\tClear $mol_button_minor click?e <=> clear?e\n\t\t\t`\n\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'conflicting right bind dupes'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tSuggest_label ${d}mol_dimmer\n\t\t\t\t\t\tclear => clear\n\t\t\t\t\tClear ${d}mol_button_minor\n\t\t\t\t\t\tclick?event <=> clear?event null\n\t\t\t`\n\n\t\t\t$mol_assert_fail(\n\t\t\t\t() => normalize($, src).input,\n\t\t\t\t`Need an equal default values at \\`/mol/view/tree2/class/props.test.ts#4:16/5\\` vs \\`/mol/view/tree2/class/props.test.ts#6:23/11\\`\n<=>\n/mol/view/tree2/class/props.test.ts#6:19/3\nclick?event\n/mol/view/tree2/class/props.test.ts#6:7/11\n$mol_button_minor\n/mol/view/tree2/class/props.test.ts#5:12/17\nClear\n/mol/view/tree2/class/props.test.ts#5:6/5`\n\t\t\t)\n\t\t},\n\t})\n}\n","namespace $ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\tclass $mol_locale_mock extends $mol_locale {\n\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tlang( next = 'en' ) { return next }\n\t\t\t\n\t\t\t@ $mol_mem_key\n\t\t\tstatic source( lang: string ) {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t$.$mol_locale = $mol_locale_mock\n\t} )\n\t\n}\n","namespace $ {\n\n\tconst run = $mol_data_pipe(\n\t\t$mol_tree2_from_string.bind($$),\n\t\t$mol_view_tree2_to_locale.bind($$)\n\t)\n\n\t$mol_test({\n\t\t'Locale simple'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tFoo Object\n\t\t\t\t\tlocalized @ \\\\bla\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_localized'], 'bla')\n\t\t},\n\n\t\t'Locale structural'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tFoo Object\n\t\t\t\t\tbar *\n\t\t\t\t\t\tloc @ \\\\v1\n\t\t\t\t\t\tbaz *\n\t\t\t\t\t\t\tloc2 @ \\\\v2\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_bar_loc'], 'v1')\n\t\t\t$mol_assert_equal(locales['Foo_bar_baz_loc2'], 'v2')\n\t\t},\n\n\t\t'Locale factory'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tBar Object\n\t\t\t\t\tloc \\\\v0\n\t\t\t\tFoo Object\n\t\t\t\t\tbutton Bar\n\t\t\t\t\t\tloc @ \\\\v1\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_button_loc'], 'v1')\n\t\t},\n\n\t\t'Locale bidi bind localized'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tFoo Object\n\t\t\t\t\ta? <=> b? @ \\\\v1\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_b'], 'v1')\n\t\t},\n\n\t\n\t})\n}\n","$mol_view_tree2_to_js_test_ex_array_slot_foo $mol_object\n\tfoot /string|number|boolean\n\t\t1\n\t\ttrue\n\t\t\\foot1\n\t\t^ insert /\n\t\t\t2\n\t\t\t3\n\t\t\t<= ins1 \\ins1\n\t\t\t^ sub_ins /number\n\t\t\t\t<= sub_ins1 1\n\t\t\t<= ins2 \\ins2\n\t\t<= foot2 \\foot2\n\n","$mol_view_tree2_to_js_test_ex_simple_nan_foo $mol_object\n\ta NaN\n\tb +NaN\n\tc -NaN\n\td +Infinity\n\te -Infinity\n\tf Infinity\n\n","$mol_view_tree2_to_js_test_ex_structural_foo $mol_object\n\tbar *\n\t\talpha 1\n\t\tbeta *\n\t\txxx <= lol 2\n","$mol_view_tree2_to_js_test_ex_array_union_foo $mol_object\n\tbar /$mol_view_tree2_to_js_test_ex_klass_tuple_type\n\t\t\\a\n\t\t<= foo \\c\n\t\t\\b\n","$mol_view_tree2_to_js_test_ex_array_number_foo $mol_object\n\tbar /\n\t\t-NaN\n\t\t-Infinity\n\t\t+Infinity\n\t\t0\n","$mol_view_tree2_to_js_test_ex_bidi_indexed_foo $mol_object\n\tindexed*? <=> owner*? null\n","$mol_view_tree2_to_js_test_ex_array_boolean_foo $mol_object\n\tbar /boolean\n\t\tfalse\n\t\ttrue\n","$mol_view_tree2_to_js_test_ex_array_indexed_foo $mol_object\n\ttags* /string\n\t\t<= tag1* \\t1\n\t\t^ slot* /\n\t\t\t<= tag2* \\t2\n","$mol_view_tree2_to_js_test_ex_bidi_chaining_foo $mol_object\n\ta? <=> b? <=> c? null\n","$mol_view_tree2_to_js_test_ex_bidi_fallback_foo $mol_object\n\tbar1? <=> bar2? 1\n","$mol_view_tree2_to_js_test_ex_left_chaining_foo $mol_object\n\ta <= b <= c? <= d? 0\n","$mol_view_tree2_to_js_test_ex_right_indexed_foo $mol_object\n\ta? *\n\t\tsome 123\n$mol_view_tree2_to_js_test_ex_right_indexed_bar $mol_object\n\tCls* $mol_view_tree2_to_js_test_ex_right_indexed_foo\n\t\ta => b*\n","$mol_view_tree2_to_js_test_ex_simple_string_foo $mol_object\n\thardcoded \\\n\t\t\\First\n\t\t\\Second\n\tlocalized @ \\bla\n","\n\t\t()\n\t\t\tthis\n\t\t\t[] \\$\n\t\t\t[] \\$mol_locale\n\t\t\t[] \\text\n\t\t\t(,) #key\n\t","$mol_view_tree2_to_js_test_ex_left_read_only_foo $mol_object\n\tbar1 <= bar2? 1\n","$mol_view_tree2_to_js_test_ex_right_hierarchy_foo $mol_object\n\tIndexed*xxx $mol_view_tree2_to_js_test_ex_right_hierarchy_bar\n\t\ttitle? => indexed_title*?\n\t\tid <= indexed_id* 0\n\tprj $mol_view_tree2_to_js_test_ex_right_hierarchy_bar\n\t\tdomain* => prj_domain*\n\t\t\tuser => prj_user*\n\t\t\t\tid => prj_user_id*\n","$mol_view_tree2_to_js_test_ex_right_read_only_foo $mol_object\n\ta*? null\n$mol_view_tree2_to_js_test_ex_right_read_only_bar $mol_object\n\tObj $mol_view_tree2_to_js_test_ex_right_read_only_foo\n\t\ta*? => b*?\n","$mol_view_tree2_to_js_test_ex_structural_dict_foo $mol_object\n\tbar *\n\t\talpha 1\n\t\tbeta \\a\n","$mol_view_tree2_to_js_test_ex_array_with_types_foo $mol_object\n\tarr /readonly(number)[]\n","$mol_view_tree2_to_js_test_ex_array_inheritance_foo $mol_object\n\tarr /\n\t\t\\v1\n$mol_view_tree2_to_js_test_ex_array_inheritance_bar $mol_view_tree2_to_js_test_ex_array_inheritance_foo\n\tarr /\n\t\t\\v3\n\t\t^\n\t\t\\v4\n","$mol_view_tree2_to_js_test_ex_bidi_legacy_value_foo $mol_object\n\ta?v <=> b?v 1\n","$mol_view_tree2_to_js_test_ex_simple_typed_null_foo $mol_object\n\ta null string|number\n","$mol_view_tree2_to_js_test_ex_bidi_in_dictionary_foo $mol_object\n\tevent *\n\t\tclick? <=> run? null\n","$mol_scroll $mol_view\n\tscroll_top? 0\n\tscroll_left? 0\n\tattr *\n\t\t^\n\t\ttabindex <= tabindex -1\n\tevent *\n\t\t^\n\t\tscroll?event <=> event_scroll?event null\n","namespace $ {\n\n\texport class $mol_print extends $mol_object {\n\n\t\t@ $mol_mem\n\t\tstatic before() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'beforeprint' , ()=> {\n\t\t\t\tthis.active( true )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic after() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'afterprint' , ()=> {\n\t\t\t\tthis.active( false )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic active( next? : boolean ) {\n\t\t\tthis.before()\n\t\t\tthis.after()\n\t\t\treturn next || false\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_style_sheet<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig0 : Config ,\n\t) {\n\n\t\tlet rules = [] as string[]\n\n\t\tconst block = $mol_dom_qname( $mol_ambient({}).$mol_func_name( Component ) )\n\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\n\t\tconst make_class = ( prefix : string , path : string[] , config : typeof config0 )=> {\n\n\t\t\tconst props = [] as string[]\n\n\t\t\tconst selector = ( prefix : string , path : string[] )=> {\n\t\t\t\tif( path.length === 0 ) return prefix || `[${ block }]`\n\t\t\t\tlet res = `[${ block }_${ path.join('_') }]`\n\t\t\t\tif( prefix ) res = prefix + ' :where(' + res + ')'\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tfor( const key of Object.keys( config ).reverse() ) {\n\n\t\t\t\tif( /^(--)?[a-z]/.test(key) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst addProp = ( keys : string[] , val : any )=> {\n\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\n\t\t\t\t\t\t\tif( val[0] && [ Array , Object ].includes( val[0].constructor ) ) {\n\t\t\t\t\t\t\t\tval = val.map( v => {\n\t\t\t\t\t\t\t\t\treturn Object.entries( v ).map( ([ n , a ])=> {\n\t\t\t\t\t\t\t\t\t\tif( a === true ) return kebab( n )\n\t\t\t\t\t\t\t\t\t\tif( a === false ) return null\n\t\t\t\t\t\t\t\t\t\treturn String( a )\n\t\t\t\t\t\t\t\t\t} ).filter( Boolean ).join(' ')\n\t\t\t\t\t\t\t\t}).join( ',' )\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tval = val.join(' ')\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t} else if( val.constructor === Object ) {\n\n\t\t\t\t\t\t\tfor( let suffix of Object.keys( val ).reverse() ) {\n\t\t\t\t\t\t\t\taddProp( [ ... keys , kebab( suffix ) ] , val[ suffix ] )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\taddProp( [ kebab(key) ] , (config as any)[key] )\n\n\t\t\t\t} else if( /^[A-Z]/.test(key) ) {\n\n\t\t\t\t\tmake_class( prefix , [ ... path , key.toLowerCase() ] , (config as any)[key] )\n\n\t\t\t\t} else if( key[0] === '$' ) {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + ' :where([' + $mol_dom_qname( key ) + '])' , [] , (config as any)[key] )\n\n\t\t\t\t} else if( key === '>' ) {\n\n\t\t\t\t\tconst types = config[key] as any\n\n\t\t\t\t\tfor( let type of Object.keys( types ).reverse() ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ' > :where([' + $mol_dom_qname( type ) + '])' , [] , types[type] )\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@' ) {\n\n\t\t\t\t\tconst attrs = config[key] as any\n\n\t\t\t\t\tfor( let name of Object.keys( attrs ).reverse() ) {\n\t\t\t\t\t\tfor( let val in attrs[name] ) {\n\t\t\t\t\t\t\tmake_class( selector( prefix , path ) + ':where([' + name + '=' + JSON.stringify( val ) + '])' , [] , attrs[name][val] )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@media' ) {\n\n\t\t\t\t\tconst media = (config as any)[key] as any\n\n\t\t\t\t\tfor( let query of Object.keys( media ).reverse() ) {\n\n\t\t\t\t\t\trules.push('}\\n')\n\t\t\t\t\t\t\n\t\t\t\t\t\tmake_class( prefix , path , media[query] )\n\t\t\t\t\t\t\n\t\t\t\t\t\trules.push( `${ key } ${ query } {\\n` )\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@starting-style' ) {\n\n\t\t\t\t\tconst styles = (config as any)[key] as any\n\t\t\t\t\trules.push('}\\n')\n\t\t\t\t\tmake_class( prefix , path , styles )\n\t\t\t\t\trules.push( `${ key } {\\n` )\n\n\t\t\t\t} else if( key[0] === '[' && key[key.length-1] === ']' ) {\n\n\t\t\t\t\tconst attr = key.slice( 1, -1 )\n\t\t\t\t\tconst vals = config[ key as any ] as any as Record< string, any >\n\t\t\t\t\t\n\t\t\t\t\tfor( let val of Object.keys( vals ).reverse() ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ':where([' + attr + '=' + JSON.stringify( val ) + '])' , [] , vals[val] )\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t} else {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + key , [] , (config as any)[key] )\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tif( props.length ) {\n\t\t\t\trules.push( `${ selector( prefix , path ) } {\\n${ props.reverse().join('') }}\\n` )\n\t\t\t}\n\n\t\t}\n\n\t\tmake_class( '' , [] , config0 )\n\n\t\treturn rules.reverse().join('')\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_style_sheet_test1 extends $mol_view {\n\t\tItem() { return new $mol_view }\n\t}\n\n\texport class $mol_style_sheet_test2 extends $mol_view {\n\t\tList() { return new $mol_style_sheet_test1 }\n\t}\n\n\t$mol_test({\n\n\t\t'component block styles'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tdisplay: 'block',\n\t\t\t\tzIndex: 1,\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tdisplay: block;\\n\\tz-index: 1;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'various units'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\twidth : '50%',\n\t\t\t\theight : '50px',\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\twidth: 50%;\\n\\theight: 50px;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'various functions'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst { calc } = $mol_style_func\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\twidth : calc( `100% - 1px` ),\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\twidth: calc(100% - 1px);\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'property groups'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tflex : {\n\t\t\t\t\tgrow: 5,\n\t\t\t\t\tshrink: 10,\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tflex-grow: 5;\\n\\tflex-shrink: 10;\\n}\\n' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'custom properties'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\t'--isVariable': 'yes',\n\t\t\t\t'--is_variable': 'no',\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\t--is-variable: yes;\\n\\t--is_variable: no;\\n}\\n' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'custom property groups'() {\n\t\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\t'--variable' : {\n\t\t\t\t\ttest1: '5px',\n\t\t\t\t\ttest2: '10px',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\t--variable-test1: 5px;\\n\\t--variable-test2: 10px;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'property shorthand'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\t\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tpadding: [ '5px' , 'auto' ],\n\t\t\t\tmargin: [ '10px' , 'auto' ],\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tpadding: 5px auto;\\n\\tmargin: 10px auto;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'sequenced values'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst { url } = $mol_style_func\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tbackground: {\n\t\t\t\t\timage: [ [url('foo')], [url('bar')] ],\n\t\t\t\t\tsize: [[ 'cover' ], [ 'contain' ]],\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tbackground-image: url(\"foo\"),url(\"bar\");\\n\\tbackground-size: cover,contain;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'sequenced structs'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tbox: {\n\t\t\t\t\tshadow: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinset: true,\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\tblur: '0.5rem',\n\t\t\t\t\t\t\tspread: 0,\n\t\t\t\t\t\t\tcolor: 'red',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinset: false,\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\tblur: '0.5rem',\n\t\t\t\t\t\t\tspread: 0,\n\t\t\t\t\t\t\tcolor: 'blue',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tbox-shadow: inset 0 0 0.5rem 0 red,0 0 0.5rem 0 blue;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with pseudo class'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t':focus': {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]:focus {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with pseudo element'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'::first-line': {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]::first-line {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with media query'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'@media': {\n\t\t\t\t\t'print': {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t\t'(max-width: 640px)': {\n\t\t\t\t\t\tdisplay: 'inline',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n@media print {\\n[mol_style_sheet_test] {\\n\\tdisplay: block;\\n}\\n}\\n@media (max-width: 640px) {\\n[mol_style_sheet_test] {\\n\\tdisplay: inline;\\n}\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with attribute value'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tattr() { return {\n\t\t\t\t\tmol_theme: '$mol_theme_dark'\n\t\t\t\t} }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'@' : {\n\t\t\t\t\tmol_theme: {\n\t\t\t\t\t\t'$mol_theme_dark': {\n\t\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tdisabled: {\n\t\t\t\t\t\t'true': {\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]:where([mol_theme=\"$mol_theme_dark\"]) {\\n\\tdisplay: block;\\n}\\n[mol_style_sheet_test]:where([disabled=\"true\"]) {\\n\\twidth: 100%;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with attribute value (short syntax)'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tattr() { return {\n\t\t\t\t\tmol_theme: '$mol_theme_dark'\n\t\t\t\t} }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'[mol_theme]': {\n\t\t\t\t\t'$mol_theme_dark': {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'[disabled]': {\n\t\t\t\t\t'true': {\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t},\n\t\t\t\t\t'false': {\n\t\t\t\t\t\twidth: '50%',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]:where([mol_theme=\"$mol_theme_dark\"]) {\\n\\tdisplay: block;\\n}\\n[mol_style_sheet_test]:where([disabled=\"true\"]) {\\n\\twidth: 100%;\\n}\\n[mol_style_sheet_test]:where([disabled=\"false\"]) {\\n\\twidth: 50%;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component element styles'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tItem() { return new $mol_view }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\tItem : {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test_item] {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component element of element styles'() {\n\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test2 , {\n\t\t\t\twidth: '100%',\n\t\t\t\tList : {\n\t\t\t\t\tcolor: 'red',\n\t\t\t\t\tItem : {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test2] {\\n\\twidth: 100%;\\n}\\n[mol_style_sheet_test2_list] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test2_list_item] {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component element styles with block attribute value'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tItem() { return new $mol_view }\n\t\t\t\tattr() { return {\n\t\t\t\t\tmol_theme: '$mol_theme_dark',\n\t\t\t\t\tdisabled: true,\n\t\t\t\t} }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\t'@' : {\n\t\t\t\t\tmol_theme: {\n\t\t\t\t\t\t'$mol_theme_dark': {\n\t\t\t\t\t\t\tItem: {\n\t\t\t\t\t\t\t\tcolor: 'red',\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\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test]:where([mol_theme=\"$mol_theme_dark\"]) :where([mol_style_sheet_test_item]) {\\n\\tcolor: red;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'inner component styles by class'() {\n\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test2 , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t$mol_style_sheet_test1 : {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test2] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test2] :where([mol_style_sheet_test1]) {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'child component styles by class'() {\n\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test2 , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'>' : {\n\t\t\t\t\t$mol_style_sheet_test1 : {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t\t$mol_style_sheet_test2 : {\n\t\t\t\t\t\tdisplay: 'inline',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test2] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test2] > :where([mol_style_sheet_test1]) {\\n\\tdisplay: block;\\n}\\n[mol_style_sheet_test2] > :where([mol_style_sheet_test2]) {\\n\\tdisplay: inline;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\t/**\n\t * CSS in TS.\n\t * Statically typed CSS style sheets. Following samples show which CSS code are generated from TS code.\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport function $mol_style_define<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig : Config ,\n\t) {\n\n\t\treturn $mol_style_attach(\n\t\t\tComponent.name,\n\t\t\t$mol_style_sheet( Component , config ),\n\t\t)\n\n\t}\n\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Scrolling pane.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_scroll_demo\n\t */\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t@ $mol_mem\n\t\tscroll_top( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollTop = next\n\t\t\t\n\t\t\treturn el.scrollTop\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_left( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollLeft = next\n\t\t\t\n\t\t\treturn el.scrollLeft\n\t\t}\n\t\t\n\t\tevent_scroll( next? : Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\n\t\t\tthis.scroll_left( el.scrollLeft, 'cache' )\n\t\t\tthis.scroll_top( el.scrollTop, 'cache' )\n\t\t\t\n\t\t}\n\n\t\tminimal_height() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $.$$ {\n\n\tconst { per , rem , px } = $mol_style_unit\n\n\t$mol_style_define( $mol_scroll , {\n\n\t\tdisplay: 'grid',\n\t\toverflow: 'auto',\n\t\tflex: {\n\t\t\tdirection: 'column',\n\t\t\tgrow: 1,\n\t\t\tshrink: 1,\n\t\t\t// basis: 0,\n\t\t},\n\t\toutline: 'none',\n\t\talign: {\n\t\t\tself: 'stretch',\n\t\t\titems: 'flex-start',\n\t\t},\n\t\tboxSizing: 'border-box',\n\t\twillChange: 'scroll-position',\n\t\tscroll: {\n\t\t\tpadding: [ rem(.75), 0 ],\n\t\t},\n\t\tmaxHeight: per(100),\n\t\tmaxWidth: per(100),\n\t\twebkitOverflowScrolling: 'touch',\n\t\tcontain: 'content',\n\n\t\t'>': {\n\t\t\t$mol_view: {\n\t\t\t\t// transform: 'translateZ(0)', // enforce gpu scroll in all agents\n\t\t\t\tgridArea: '1/1',\n\t\t\t},\n\t\t},\n\n\t\t'::before': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t'::after': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t\n\t\t'::-webkit-scrollbar': {\n\t\t\twidth: rem(.25),\n\t\t\theight: rem(.25),\n\t\t},\n\t\t\n\t\t'@media' : {\n\t\t\t'print' : {\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tcontain: 'none',\n\t\t\t\tmaxHeight: 'unset',\n\t\t\t},\n\t\t},\n\n\t})\n\n}\n","$mol_page $mol_view\n\tdom_name \\article\n\tattr *\n\t\t^\n\t\ttabIndex <= tabindex -1\n\tsub /\n\t\t<= Head $mol_view\n\t\t\tminimal_height 64\n\t\t\tdom_name \\header\n\t\t\tsub <= head /\n\t\t\t\t<= Title $mol_view\n\t\t\t\t\tdom_name \\h1\n\t\t\t\t\tsub <= title_content /\n\t\t\t\t\t\t<= Logo null\n\t\t\t\t\t\t<= title\n\t\t\t\t<= Tools $mol_view\n\t\t\t\t\tsub <= tools /$mol_view_content\n\t\t<= Body $mol_scroll\n\t\t\tscroll_top? => body_scroll_top?\n\t\t\tsub <= body_content /\n\t\t\t\t<= Body_content $mol_view\n\t\t\t\t\tsub <= body /$mol_view\n\t\t<= Foot $mol_view\n\t\t\tdom_name \\footer\n\t\t\tsub <= foot /$mol_view\n","namespace $.$$ {\n\n\tconst { per , rem } = $mol_style_unit\n\tconst { hsla, blur } = $mol_style_func\n\n\t$mol_style_define( $mol_page , {\n\n\t\tdisplay: 'flex' ,\n\t\tflex: {\n\t\t\tbasis: 'auto' ,\n\t\t\tdirection: 'column' ,\n\t\t},\n\t\tposition: 'relative' ,\n\t\talignSelf: 'stretch' ,\n\t\tmaxWidth: per(100) ,\n\t\tmaxHeight: per(100) ,\n\t\tboxSizing: 'border-box' ,\n\t\tcolor: $mol_theme.text ,\n\t\t// backdropFilter: blur( `3px` ), enforces layering\n\t\t// zIndex: 0 ,\n\t\t\n\t\t':focus': {\n\t\t\toutline: 'none',\n\t\t} ,\n\n\t\tHead: {\n\t\t\tdisplay: 'flex' ,\n\t\t\tflexWrap: 'wrap' ,\n\t\t\tjustifyContent: 'flex-end' ,\n\t\t\tflex: 'none',\n\t\t\tposition: 'relative' ,\n\t\t\tmargin: 0 ,\n\t\t\tminHeight: rem(4),\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [\n\t\t\t\t\t[ 0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t\t[ 0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t],\n\t\t\t},\n\t\t\tzIndex: 2,\n\n\t\t\t'@media': {\n\t\t\t\t'print': {\n\t\t\t\t\tbox: {\n\t\t\t\t\t\tshadow: [[ 0, `1px`, 0, 0, hsla( 0, 0, 0, .25 ) ]],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t},\n\n\t\tTitle: {\n\n\t\t\tminHeight: rem(2),\n\t\t\tmargin: 0,\n\t\t\tpadding: $mol_gap.text,\n\t\t\tgap: $mol_gap.text,\n\t\t\twordBreak: 'normal',\n\t\t\ttextShadow: '0 0',\n\n\t\t\tfont: {\n\t\t\t\tsize: 'inherit',\n\t\t\t\tweight: 'normal',\n\t\t\t},\n\t\n\t\t\tflex: {\n\t\t\t\tgrow: 1,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: 'auto',\n\t\t\t},\n\n\t\t},\n\n\t\tTools: {\n\t\t\t\n\t\t\tflex: {\n\t\t\t\tbasis: 'auto',\n\t\t\t\tgrow: 0,\n\t\t\t\tshrink: 1,\n\t\t\t},\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'flex-end',\n\t\t\talignItems: 'flex-start',\n\t\t\tflexWrap: 'wrap',\n\n\t\t\t'@media': {\n\t\t\t\t'print': {\n\t\t\t\t\tdisplay: 'none',\n\t\t\t\t},\n\t\t\t},\n\n\t\t},\n\n\t\tBody: {\n\t\t\tflex: {\n\t\t\t\tgrow: 1000,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: per(100),\n\t\t\t},\n\t\t},\n\t\t\n\t\tBody_content: {\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tminHeight: 0,\n\t\t\tminWidth: 0,\n\t\t\tflex: {\n\t\t\t\tdirection: 'column',\n\t\t\t\tshrink: 1,\n\t\t\t\tgrow: 1,\n\t\t\t},\n\t\t\tjustify: {\n\t\t\t\tself: 'stretch',\n\t\t\t},\n\t\t},\n\t\t\n\t\tFoot: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between',\n\t\t\tflex: 'none',\n\t\t\tmargin: 0,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [\n\t\t\t\t\t[ 0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t\t[ 0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t],\n\t\t\t},\n\t\t\tzIndex: 1,\n\t\t\tpadding: $mol_gap.block ,\n\t\t\t':empty': {\n\t\t\t\tdisplay: 'none',\n\t\t\t},\n\t\t},\t\n\n\t} )\n\t\n}\n","$mol_view_tree2_to_js_test_ex_right_in_left_foo $mol_object\n\ta null\n$mol_view_tree2_to_js_test_ex_right_in_left_bar $mol_object\n\tfoo <= Cls $mol_view_tree2_to_js_test_ex_right_in_left_foo\n\t\ta => b\n\tpages /\n\t\t<= Menu $mol_page\n\t\t\tTitle => Menu_title\n","$mol_view_tree2_to_js_test_ex_simple_empty_class_foo $mol_object\n","$mol_view_tree2_to_js_test_ex_simple_two_classes_foo $mol_object\n\tstr \\some\n$mol_view_tree2_to_js_test_ex_simple_two_classes_bar $mol_view_tree2_to_js_test_ex_simple_two_classes_foo\n\tstr \\some2\n","$mol_view_tree2_to_js_test_ex_simple_factory_props_bar $mol_object\n\tsub /number\n\tloc \\v2\n\tdeep * loc @ \\v2\n\tsome false\n\n$mol_view_tree2_to_js_test_ex_simple_factory_props_foo $mol_object\n\tbutton $mol_view_tree2_to_js_test_ex_simple_factory_props_bar\n\t\tsome true\n\t\tloc @ \\v1\n\t\tdeep * loc @ \\v1\n\t\tsub /\n\t\t\t1\n","$mol_view_tree2_to_js_test_ex_simple_default_indexed_foo $mol_object\n\ta_b*? 0\n\tlegacy*k?v 0\n","$mol_view_tree2_to_js_test_ex_structural_complex_key_foo $mol_object\n\tdictionary *\n\t\t\\raw data key\n\t\t\t\\1\n\t\t\\key2\n\t\t\t\\2\n\t\tkey3\n\t\t\t\\3\n","$mol_view_tree2_to_js_test_ex_array_constructor_tuple_foo $mol_object\n\tblobs /\n\t\t<= text_blob? $mol_view_tree2_to_js_test_ex_klass_tuple<string> /\n\t\t\t/string\n\t\t\t\t<= text \\123\n\t\t\t* type \\text/plain\n","$mol_view_tree2_to_js_test_ex_left_second_level_index_bar $mol_object\n\tlocalized \\\n\n$mol_view_tree2_to_js_test_ex_left_second_level_index_foo $mol_object\n\tcls* <= owner*? $mol_view_tree2_to_js_test_ex_left_second_level_index_bar\n\t\tlocalized <= some*? @ \\v1\n","$mol_view_tree2_to_js_test_ex_structural_quoted_props_foo $mol_object\n\tbar *\n\t\ta$ 1\n\t\tb-t *\n","$mol_view_tree2_to_js_test_ex_structural_spread_other_foo $mol_object\n\ttest *\n\t\taaa 123\n\tfield *\n\t\tbbb 321\n\t\t^ test\n","$mol_view_tree2_to_js_test_ex_array_of_array_or_object_foo $mol_object\n\tcomplex /\n\t\t\\1\n\t\t/\n\t\t\ttrue\n\t\t/\n\t\t\t\\1\n\t\t\t21\n\t\t*number|string\n\t\t\ta 1\n\t\t\tstr \\some\n","$mol_view_tree2_to_js_test_ex_bidi_localized_in_object_foo $mol_object\n\tobj *\n\t\tloc? <=> outer? @ \\test1\n","$mol_view_tree2_to_js_test_ex_bidi_with_default_object_foo $mol_object\n\tclass? <=> owner? $mol_object\n","$mol_view_tree2_to_js_test_ex_left_in_array_and_object_bar $mol_object\n\trows /\n$mol_view_tree2_to_js_test_ex_left_in_array_and_object_foo $mol_object\n\tobj *\n\t\tprop <= Obj\n\tarr /\n\t\t<= Obj $mol_view_tree2_to_js_test_ex_left_in_array_and_object_bar\n\t\t\trows <= content /\n","$mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar $mol_object\n\texpanded \\\n$mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_foo $mol_object\n\tindexed*? $mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar\n\t\texpanded <=> owner*? \\w\n","$mol_view_tree2_to_js_test_ex_array_spread_other_bar $mol_object\n\tsup /\n\t\t\\v1\n\tarr /\n\t\t\\v2\n\t\t^ sup\n","$mol_view_tree2_to_js_test_ex_simple_factory_inheritance_bar $mol_object\n\tconfig *\n\t\tips /\n\t\t\t\\127.0.0.1\n\n$mol_view_tree2_to_js_test_ex_simple_factory_inheritance_foo $mol_object\n\tHaving $mol_view_tree2_to_js_test_ex_simple_factory_inheritance_bar\n\t\tconfig *\n\t\t\tips /\n\t\t\t\t^\n\t\t\t\t\\0.0.0.0\n\t\t\t\t^ addon /\n\t\t\t\t\t\\1.1.1.1\n","$mol_view_tree2_to_js_test_ex_structural_with_inheritance_foo $mol_object\n\tfield *\n\t\txxx 123\n\t\txxy \\test\n\n$mol_view_tree2_to_js_test_ex_structural_with_inheritance_bar $mol_view_tree2_to_js_test_ex_structural_with_inheritance_foo\n\tfield *\n\t\tyyy 234\n\t\t^\n\t\tzzz 345\n","$mol_view_tree2_to_js_test_ex_bidi_localized_default_value_foo $mol_object\n\ta? <=> b? @ \\some1\n","$mol_view_tree2_to_js_test_ex_simple_mutable_and_read_only_foo $mol_object\n\treadonly null\n\tmutable? null\n","$mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo $mol_object\n\tbar *\n\t\tloc @ \\\\v1\n\t\tbaz *\n\t\t\tloc2 @ \\\\v2\n","$mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_bar $mol_object\n\trows /\n$mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_foo $mol_object\n\tcontent 123\n\tObj $mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_bar\n\t\trows / <= content - 321\n","$mol_view_tree2_to_js_test_ex_bidi_with_separate_default_in_right_part_foo $mol_object\n\tb? false\n\ta? <=> b?\n","$mol_view_tree2_to_js_test_ex_bidi_doubing_right_part_with_same_default_foo $mol_object\n\ta? <=> b? false\n\tc? <=> b? false\n","namespace $ {\n\texport type $mol_view_tree2_to_js_test_ex_klass_tuple_type = 'a' | 'b' | 'c'\n\n\texport class $mol_view_tree2_to_js_test_ex_klass_tuple<V = string> extends $mol_object {\n\t\tconstructor(readonly tuple: readonly string[] = [], readonly some?: { type: V }) {\n\t\t\tsuper()\n\t\t}\n\t}\n}\n","namespace $ {\n\texport class $mol_view_tree2_to_js_test_ex_right_hierarchy_bar extends $mol_object {\n\t\t@ $mol_mem\n\t\ttitle(next?: number) {\n\t\t\treturn 123 + (next ?? 0)\n\t\t}\n\t\tid() {\n\t\t\treturn 0\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tdomain(id: number) {\n\t\t\treturn {\n\t\t\t\tuser() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid() {\n\t\t\t\t\t\t\treturn 1 + id\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}\n\t}\n}\n","namespace $ {\n\n\tconst str2js = (function (this: $, data: string, url: string) {\n\t\tconst tree = this.$mol_tree2_from_string(data, url)\n\t\tconst js_tree = this.$mol_view_tree2_to_js(tree)\n\t\tconst js_text = this.$mol_tree2_js_to_text(js_tree)\n\t\tconst js_str = this.$mol_tree2_text_to_string_mapped_js(js_text)\n\t\treturn js_str\n\t}).bind($ as typeof $$)\n\n\texport function $mol_view_tree2_to_js_test_run( tree: string ): any {\n\t\tclass $mol_view_mock extends $mol_object {}\n\t\tconst $ = { $mol_object: $mol_view_mock }\n\t\t;( $mol_view_mock as any )[$mol_ambient_ref] = $\n\n\t\tconst src_uri = `.view.tree`\n\t\tconst js = str2js( tree, src_uri )\n\n\t\teval( js )\n\t\treturn $\n\t}\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t'Bidi bind fallback'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_fallback_foo\n\t\t\tconst foo = _foo.make({ })\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar1(),\n\t\t\t\tfoo.bar2(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar2( 2 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t2,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar1( 1 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar1( 1 ),\n\t\t\t\tfoo.bar2(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar2( 3 ),\n\t\t\t\tfoo.bar2(),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t3,\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Bidi bind legacy value'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_legacy_value_foo\n\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.a(),\n\t\t\t\tfoo.b(),\n\t\t\t\t1,\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b( 2 ),\n\t\t\t\tfoo.a(),\n\t\t\t\t2,\n\t\t\t)\n\t\t},\n\t\t\n\t\t'Bidi bind in dictionary'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_in_dictionary_foo\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).event().click({}),\n\t\t\t\t{},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Bidi bind chaining'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_chaining_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a()\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind indexed'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_indexed_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\tfoo.owner(1, 'a')\n\t\t\tfoo.owner(2, 'b'),\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(1),\n\t\t\t\tfoo.indexed(1),\n\t\t\t\t'a'\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(1, 'a2'),\n\t\t\t\tfoo.indexed(1),\n\t\t\t\t'a2'\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(2),\n\t\t\t\tfoo.indexed(2),\n\t\t\t\t'b'\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind indexed second level'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_foo\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar\n\t\t\t_foo.$.$mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar = _bar\n\n\t\t\tconst foo = _foo.make({ $ })\n\n\n\t\t\tfoo.owner(1, 'a')\n\t\t\tfoo.owner(2, 'b')\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(1),\n\t\t\t\tfoo.indexed(1).expanded(),\n\t\t\t\t'a'\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(2),\n\t\t\t\tfoo.indexed(2).expanded(),\n\t\t\t\t'b'\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind doubing right part with same default'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_doubing_right_part_with_same_default_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.a(),\n\t\t\t\tfalse\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind with separate default in right part'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_with_separate_default_in_right_part_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a()\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind index from outer scope throws error'( $ ) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_view\n\t\t\t\t\t\ta!? $mol_view\n\t\t\t\t\t\t\texpanded <=> cell_test_expanded!? null\n\t\t\t\t`)\n\t\t\t}, `Required prop like some*? at \\`.view.tree#4:21/20\\`\n<=>\n.view.tree#4:17/3\nexpanded\n.view.tree#4:8/8\n$mol_view\n.view.tree#3:11/9\na!?\n.view.tree#3:7/3` )\n\t\t},\n\n\t\t'Bidi bind with default object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_with_default_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\tconst view = new $mol_object\n\t\t\tfoo.owner(view)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(),\n\t\t\t\tfoo.class(),\n\t\t\t\tview\n\t\t\t)\n\t\t},\n\t\t\n\t\t'Bidi bind localized default value'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_localized_default_value_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_bidi_localized_default_value_foo_b`,\n\t\t\t)\n\t\t\n\t\t},\n\n\t\t'Bidi bind localized in object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_localized_in_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.obj().loc(),\n\t\t\t\tfoo.outer(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_bidi_localized_in_object_foo_outer`\n\t\t\t)\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Left bind read only'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_read_only_foo\n\t\t\t\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar1(),\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.bar1( 2 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\tfoo.bar2(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar2( 2 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t2,\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Left bind second level index'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_second_level_index_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_ok(foo.owner(1) instanceof $mol_object)\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.some(1),\n\t\t\t\tfoo.some(1),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_left_second_level_index_foo_some`\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.owner(1),\n\t\t\t\tfoo.cls(1),\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.owner(1).localized(),\n\t\t\t\tfoo.some(1),\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.cls(2),\n\t\t\t\tfoo.owner(2),\n\t\t\t)\n\t\t},\n\n\t\t'Left bind in array and object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_in_array_and_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.obj().prop,\n\t\t\t\tfoo.arr()[0],\n\t\t\t\tfoo.Obj()\n\t\t\t)\n\t\t},\n\n\t\t'Left bind with separate default and comment'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.Obj().rows(),\n\t\t\t\t[ 123 ]\n\t\t\t)\n\t\t},\n\n\t\t'Left bind chaining'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_chaining_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t0\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(1),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t1\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.a(2),\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.b(2),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.d(),\n\t\t\t\t1\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.c(2),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t2\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(1),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(3),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t3\n\t\t\t)\n\t\t\t\n\t\t},\n\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Array boolean'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_boolean_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_sub = $mol_type_assert<ReturnType<typeof foo['bar']>, readonly boolean[]>\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar(),\n\t\t\t\t[ false, true ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array number'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_number_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype a1 = $mol_type_assert<ReturnType<typeof foo['bar']>, any /* readonly number[] */ >\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar(),\n\t\t\t\t[\n\t\t\t\t\tNumber.NaN,\n\t\t\t\t\tNumber.NEGATIVE_INFINITY,\n\t\t\t\t\tNumber.POSITIVE_INFINITY,\n\t\t\t\t\t0,\n\t\t\t\t],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array with types'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_with_types_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_arr = $mol_type_assert<ReturnType<typeof foo['arr']>, readonly( readonly(number)[] )[]>\n\t\t\t$mol_assert_like(foo.arr(), [])\n\n\t\t},\n\n\t\t'Array of array or object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_of_array_or_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t// type a1 = $mol_type_assert<\n\t\t\t// \tReturnType<typeof foo.complex>,\n\t\t\t// \treadonly (readonly(number | string)[] | Record<string, number | string>)[]\n\t\t\t// >\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.complex(),\n\t\t\t\t[ '1', [ true ], [ '1', 21 ], { a: 1, str: 'some' } ]\n\t\t\t)\n\n\t\t},\n\n\t\t'Array inheritance'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_array_inheritance_bar\n\n\t\t\t$mol_assert_like(_bar.make({ $ }).arr(), ['v3', 'v1', 'v4' ])\n\n\t\t},\n\n\t\t'Array spread other'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_array_spread_other_bar\n\t\t\tconst bar = _bar.make({ $ })\n\n\t\t\t$mol_assert_like(bar.arr(), ['v2', 'v1' ])\n\t\t\t$mol_assert_like(bar.arr()[1], bar.sup()[0])\n\n\t\t},\n\n\t\t'Array slot' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_slot_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_foot = $mol_type_assert<ReturnType<typeof foo['foot']>, readonly(string | number | boolean)[]>\n\t\t\t$mol_assert_like(foo.foot(), [ 1, true, 'foot1', 2, 3, 'ins1', 1, 'ins2', 'foot2' ])\n\t\t},\n\n\t\t'Array indexed' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_indexed_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_tag = $mol_type_assert<Parameters<typeof foo['tags']>[0], any>\n\t\t\ttype assert_slot = $mol_type_assert<Parameters<typeof foo['slot']>[0], any>\n\t\t\ttype assert_tag1 = $mol_type_assert<Parameters<typeof foo['tag1']>[0], any>\n\t\t\ttype assert_tag2 = $mol_type_assert<Parameters<typeof foo['tag2']>[0], any>\n\t\t\t$mol_assert_like(foo.tags(1), [ 't1', 't2' ])\n\t\t\t$mol_assert_like(foo.slot(1), [ 't2' ])\n\t\t},\n\n\t\t'Array union' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_union_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_tag = $mol_type_assert<ReturnType<typeof foo['bar']>[number], $mol_view_tree2_to_js_test_ex_klass_tuple_type>\n\t\t\t$mol_assert_like(foo.bar(), [ 'a', 'c', 'b' ])\n\t\t},\n\n\t\t'Array constructor tuple'($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_constructor_tuple_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype a0 = $mol_type_assert<\n\t\t\t\tReturnType<typeof foo['text_blob']>,\n\t\t\t\t$mol_view_tree2_to_js_test_ex_klass_tuple\n\t\t\t>\n\n\t\t\ttype a1 = $mol_type_assert<\n\t\t\t\tReturnType<typeof foo['blobs']>,\n\t\t\t\treadonly any[]\n\t\t\t\t// readonly $mol_view_tree2_to_js_test_ex_klass_tuple[]\n\t\t\t>\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.text_blob().tuple,\n\t\t\t\t[ '123' ]\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.blobs(),\n\t\t\t\t[\n\t\t\t\t\tfoo.text_blob(),\n\t\t\t\t]\n\t\t\t)\n\t\t},\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Right bind read only'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_right_read_only_bar\n\t\t\t\n\t\t\tconst bar = _bar.make({ $: _bar.$ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.Obj().a(1),\n\t\t\t\tbar.b(1)\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Right bind in left bind'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_right_in_left_bar\n\t\t\t\n\t\t\tconst bar = _bar.make({ $: _bar.$ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.foo(),\n\t\t\t\tbar.Cls(),\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.foo().a(),\n\t\t\t\tbar.Cls().a(),\n\t\t\t\tbar.b()\n\t\t\t)\n\t\t},\n\n\t\t'Right bind indexed'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_right_indexed_bar\n\t\t\t\n\t\t\tconst bar = _bar.make({ $: _bar.$ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tbar.Cls(1).a(),\n\t\t\t\tbar.b(1),\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.b(1),\n\t\t\t\t{ some: 123 }\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tbar.Cls(1).a() === bar.b(2),\n\t\t\t\tfalse,\n\t\t\t)\n\t\t},\n\n\t\t'Right hierarchy'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_right_hierarchy_foo\n\t\t\tconst foo = _foo.make({ $: _foo.$ })\n\t\t\ttype prj_user_id_assert = $mol_type_assert<ReturnType<typeof foo['prj_user_id']>, number >\n\t\t\ttype prj_domain_assert = $mol_type_assert<ReturnType<typeof foo['prj_domain']>, {\n\t\t\t\tuser: () => { id: () => number }\n\t\t\t} >\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.prj_user_id(1),\n\t\t\t\t2\n\t\t\t)\n\t\t},\n\n\t\t'Right mixed args'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_right_hierarchy_foo\n\t\t\tconst foo = _foo.make({ $: _foo.$ })\n\t\t\tfoo.indexed_id = id => id + 25\n\n\t\t\t$mol_assert_like( foo.indexed_title(1), 123 )\n\t\t\t$mol_assert_like( foo.Indexed(0).id(), 25 )\n\t\t\t$mol_assert_like( foo.Indexed(1).id(), 26 )\n\t\t\t$mol_assert_like( foo.indexed_title(0, 2), 125 )\n\t\t}\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'simple empty class'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_empty_class_foo\n\t\t\t\n\t\t\t$mol_assert_ok(_foo.make({ $ }) instanceof _foo)\n\t\t},\n\n\t\t'simple mutable and read only channels'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_mutable_and_read_only_foo\n\t\t\t\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype assert_ro = $mol_type_assert<ReturnType<typeof foo['readonly']>, any>\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.readonly(),\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.readonly( 1 ),\n\t\t\t\tfoo.readonly(),\n\t\t\t\tnull,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.mutable(),\n\t\t\t\tnull,\n\t\t\t)\n\t\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.mutable(2),\n\t\t\t\tfoo.mutable(),\n\t\t\t\t2,\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'simple string channel'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_string_foo\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t_foo.make({ $ }).hardcoded(),\n\t\t\t\t'First\\nSecond',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t_foo.make({ $ }).localized(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_simple_string_foo_localized`,\n\t\t\t)\n\t\t},\n\t\t\n\t\t'simple default indexed channel'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_default_indexed_foo\n\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.a_b(0, 1),\n\t\t\t\tfoo.a_b(0),\n\t\t\t\t1\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.legacy(0, 1),\n\t\t\t\tfoo.legacy(0),\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\n\t\t'simple throw if cyrillic name'( $ ) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\tsub / <= Чlose_icon $mol_object\n\t\t\t\t`)\n\t\t\t}, `Required prop like some*? at \\`.view.tree#3:16/10\\`\n<=\n.view.tree#3:13/2\n/\n.view.tree#3:11/1\nsub\n.view.tree#3:7/3`)\n\t\t},\n\n\t\t'simple empty legacy indexed channel throws error'( $ ) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\ta!? null\n\t\t\t\t`)\n\t\t\t}, 'Required prop like some*? at `.view.tree#3:7/3`' )\n\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\tb! 1\n\t\t\t\t`)\n\t\t\t}, 'Required prop like some*? at `.view.tree#3:7/2`' )\n\t\t},\n\n\t\t'simple two classes'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_two_classes_foo\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_simple_two_classes_bar\n\t\t\tconst a = _foo.make( { $ })\n\t\t\tconst b = _bar.make( { $ })\n\n\t\t\t$mol_assert_ok(b instanceof _foo)\n\t\t\t$mol_assert_ok(b instanceof _bar)\n\n\t\t\t$mol_assert_equal( a.str(), 'some')\n\t\t\t$mol_assert_equal( b.str(), 'some2')\n\t\t},\n\n\t\t'simple commented node'( $ ) {\n\t\t\tconst { Foo } = $mol_view_tree2_to_js_test_run(`\n\t\t\t\t- Foo $mol_object\n\t\t\t\t\ta!? $mol_object\n\t\t\t\t\t\texpanded <=> cell_test_expanded!? null\n\t\t\t`)\n\t\t\t$mol_assert_ok(Foo === undefined)\n\t\t},\n\n\t\t'simple factory props'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_factory_props_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_ok(typeof foo.button().sub === 'function')\n\n\t\t\t$mol_assert_ok(typeof foo.button().some === 'function')\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.button().loc(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_simple_factory_props_foo_button_loc`\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.button().deep().loc,\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_simple_factory_props_foo_button_deep_loc`\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.button().sub()[0],\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\n\t\t'simple factory inheritance'( $ ) {\n\t\t\t\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_factory_inheritance_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.Having().config(),\n\t\t\t\t{ ips: [ '127.0.0.1', '0.0.0.0', '1.1.1.1' ] },\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'simple nan' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_nan_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_a = $mol_type_assert<ReturnType<typeof foo['a']>, number>\n\t\t\ttype assert_d = $mol_type_assert<ReturnType<typeof foo['d']>, number>\n\t\t\ttype assert_f = $mol_type_assert<ReturnType<typeof foo['f']>, number>\n\t\t\t$mol_assert_equal(foo.a(), foo.b(), foo.c(), NaN)\n\t\t\t$mol_assert_equal(foo.d(), Infinity)\n\t\t\t$mol_assert_equal(foo.e(), -Infinity)\n\t\t\t$mol_assert_equal(foo.f(), Infinity)\n\t\t},\n\n\t\t'simple typed null'($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_typed_null_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype a1 = $mol_type_assert<ReturnType<typeof foo.a>, string | number | null>\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.a(),\n\t\t\t\tnull\n\t\t\t)\n\t\t},\n\n\t\t'extra char' ($) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\titem_чount 50\n\t\t\t\t`)\n\t\t\t}, 'Required prop like some*? at `.view.tree#3:7/10`')\n\t\t},\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Structural channel'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_foo\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).bar(),\n\t\t\t\t{\n\t\t\t\t\talpha: 1,\n\t\t\t\t\tbeta: {},\n\t\t\t\t\txxx: 2,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Structural dict'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_dict_foo\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).bar(),\n\t\t\t\t{\n\t\t\t\t\talpha: 1,\n\t\t\t\t\tbeta: 'a',\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural channel with inheritance'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_structural_with_inheritance_bar\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_bar.make({ $ }).field(),\n\t\t\t\t{\n\t\t\t\t\tyyy: 234,\n\t\t\t\t\txxx: 123,\n\t\t\t\t\txxy: 'test',\n\t\t\t\t\tzzz: 345,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Structural channel spread other'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_spread_other_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype a1 = $mol_type_assert<\n\t\t\t\tReturnType<typeof foo.field>,\n\t\t\t\t{\n\t\t\t\t\taaa: number\n\t\t\t\t} & {\n\t\t\t\t\tbbb: number\n\t\t\t\t}\n\t\t\t>\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.field(),\n\t\t\t\t{\n\t\t\t\t\tbbb: 321,\n\t\t\t\t\taaa: 123,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural channel localized prop value'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar(),\n\t\t\t\t{\n\t\t\t\t\t'loc': `$mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo_bar_loc`,\n\t\t\t\t\t'baz': { 'loc2': `$mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo_bar_baz_loc2` }\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural channel quoted props'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_quoted_props_foo\n\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).bar(),\n\t\t\t\t{\n\t\t\t\t\t'a$': 1,\n\t\t\t\t\t'b-t': {},\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural complex key'($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_complex_key_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.dictionary(),\n\t\t\t\t{\n\t\t\t\t\t'raw data key': '1',\n\t\t\t\t\t'key2': '2',\n\t\t\t\t\t'key3': '3'\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t})\n\t\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../../../mam.ts","../../../../../mol/ambient/ambient.ts","../../../../../mol/delegate/delegate.ts","../../../../../mol/owning/owning.ts","../../../../../mol/fail/fail.ts","../../../../../mol/fail/hidden/hidden.ts","../../../../../mol/func/name/name.ts","../../../../../mol/object2/object2.ts","../../../../../mol/span/span.ts","../../../../../mol/error/syntax/syntax.ts","../../../../../mol/tree2/from/string/string.ts","../../../../../mol/tree2/to/string/string.ts","../../../../../mol/maybe/maybe.ts","../../../../../mol/tree2/tree2.ts","../../../../../mol/view/tree2/error.ts","../../../../../mol/view/tree2/child.ts","../../../../../mol/view/tree2/classes.ts","../../../../../mol/view/tree2/normalize.ts","../../../../../mol/tree2/from/json/json.ts","../../../../../mol/tree2/js/is/number/number.ts","../../../../../mol/tree2/js/to/text/text.ts","../../../../../mol/tree2/span/imprint/imprint.ts","../../../../../mol/tree2/span/reuse/reuse.ts","../../../../../mol/tree2/text/to/string/string.ts","../../../../../mol/vlq/vlq.ts","../../../../../mol/tree2/text/to/sourcemap/sourcemap.ts","../../../../../mol/sourcemap/url/url.ts","../../../../../mol/sourcemap/dataurl/dataurl.ts","../../../../../mol/tree2/text/to/string/mapped/mapped.ts","../../../../../mol/guard/defined.ts","../../../../../mol/tree2/text/to/sourcemap/vis/vis.ts","../../../../../mol/tree2/to/json/json.ts","../../../../../mol/tree2/to/stream/stream.ts","../../../../../mol/tree2/xml/from/dom/dom.ts","../../../../../mol/html/encode/encode.ts","../../../../../mol/tree2/xml/to/text/text.ts","../../../../../mol/regexp/regexp.ts","../../../../../mol/view/tree2/prop/signature.ts","../../../../../mol/view/tree2/prop/parts.ts","../../../../../mol/view/tree2/prop/quote.ts","../../../../../mol/view/tree2/class/match.ts","../../../../../mol/view/tree2/class/super.ts","../../../../../mol/view/tree2/class/props.ts","../../../../../mol/view/tree2/to/dts/dts.ts","../../../../../mol/object/object.ts","../../../../../mol/guid/guid.ts","../../../../../mol/wire/cursor/cursor.ts","../../../../../mol/wire/pub/pub.ts","../../../../../mol/wire/wire.ts","../../../../../mol/dev/format/format.ts","../../../../../mol/wire/pub/sub/sub.ts","../../../../../mol/after/tick/tick.ts","../../../../../mol/promise/like/like.ts","../../../../../mol/wire/fiber/fiber.ts","../../../../../mol/key/key.ts","../../../../../mol/after/timeout/timeout.ts","../../../../../mol/after/frame/frame.node.ts","../../../../../mol/compare/deep/deep.ts","../../../../../mol/log3/log3.ts","../../../../../mol/term/color/color.ts","../../../../../mol/log3/log3.node.ts","../../../../../mol/wire/task/task.ts","../../../../../mol/wire/method/method.ts","../../../../../mol/fail/catch/catch.ts","../../../../../mol/try/try.node.ts","../../../../../mol/fail/log/log.ts","../../../../../mol/wire/atom/atom.ts","../../../../../mol/wire/solo/solo.ts","../../../../../mol/wire/plex/plex.ts","../../../../../mol/mem/mem.ts","../../../../../mol/dom/context/context.ts","../../../../../node/internal/check/check.node.ts","../../../../../node/node.node.ts","../../../../../mol/error/mix/mix.ts","../../../../../mol/env/env.ts","../../../../../mol/env/env.node.ts","../../../../../mol/wire/sync/sync.ts","../../../../../mol/run/run.node.ts","../../../../../mol/exec/exec.node.ts","../../../../../mol/dom/context/context.node.ts","../../../../../mol/wire/solid/solid.ts","../../../../../mol/mem/persist/persist.ts","../../../../../mol/wire/probe/probe.ts","../../../../../mol/mem/cached/cached.ts","../../../../../mol/storage/storage.ts","../../../../../mol/state/local/local.ts","../../../../../mol/const/const.ts","../../../../../mol/action/action.ts","../../../../../mol/wire/async/async.ts","../../../../../mol/lock/lock.ts","../../../../../mol/compare/array/array.ts","../../../../../mol/charset/decode/decode.ts","../../../../../mol/charset/encode/encode.ts","../../../../../mol/file/transaction/transaction.ts","../../../../../mol/file/transaction/transaction.node.ts","../../../../../mol/file/base/base.ts","../../../../../mol/file/file.ts","../../../../../mol/file/file.node.ts","../../../../../mol/dom/dom.ts","../../../../../mol/state/local/local.node.ts","../../../../../mol/locale/locale.ts","../../../../../mol/view/tree2/to/js/js.ts","../../../../../mol/view/tree2/to/locale/locale.ts","../../../../../mol/view/tree2/to/text/text.ts","../../../../../mol/test/test.test.ts","../../../../../mol/test/test.node.test.ts","../../../../../mol/func/name/name.test.ts","../../../../../mol/dom/render/children/children.ts","../../../../../mol/dom/serialize/serialize.ts","../../../../../mol/jsx/jsx.ts","../../../../../mol/jsx/jsx.test.tsx","../../../../../mol/range2/range2.ts","../../../../../mol/range2/range2.test.ts","../../../../../mol/compare/deep/deep.test.tsx","../../../../../mol/assert/assert.ts","../../../../../mol/assert/assert.test.ts","../../../../../mol/log3/log3.test.ts","../../../../../mol/try/try.test.ts","../../../../../mol/fail/log/log.test.ts","../../../../../mol/delegate/delegate.test.ts","../../../../../mol/error/mix/mix.test.ts","../../../../../mol/object/object.test.ts","../../../../../mol/wire/pub/sub/sub.test.ts","../../../../../mol/after/mock/mock.test.ts","../../../../../mol/after/tick/tick.test.ts","../../../../../mol/wire/fiber/fiber.test.ts","../../../../../mol/wire/async/async.test.ts","../../../../../mol/wire/sync/sync.test.ts","../../../../../mol/promise/promise/promise.ts","../../../../../mol/after/timeout/timeout.test.ts","../../../../../mol/after/work/work.ts","../../../../../mol/after/work/work.test.ts","../../../../../mol/wait/rest/rest.ts","../../../../../mol/wait/rest/rest.test.ts","../../../../../mol/wait/timeout/timeout.ts","../../../../../mol/wait/timeout/timeout.test.ts","../../../../../mol/run/run.node.test.ts","../../../../../mol/span/span.test.ts","../../../../../mol/maybe/maybe.test.ts","../../../../../mol/tree2/from/json/json.test.ts","../../../../../mol/tree2/tree2.test.ts","../../../../../mol/tree2/from/string/string.test.ts","../../../../../mol/data/setup/setup.ts","../../../../../mol/data/setup/setup.test.ts","../../../../../mol/func/is/class/class.ts","../../../../../mol/func/is/class/class.test.ts","../../../../../mol/data/pipe/pipe.ts","../../../../../mol/data/pipe/pipe.test.ts","../../../../../mol/tree2/js/to/text/text.test.ts","../../../../../mol/vlq/vlq.test.ts","../../../../../mol/tree2/text/to/sourcemap/sourcemap.test.ts","../../../../../mol/tree2/to/json/json.test.ts","../../../../../mol/regexp/regexp.test.ts","../../../../../mol/view/tree2/prop/parts.test.ts","../../../../../mol/style/attach/attach.ts","../../../../../mol/promise/blocker/blocker.ts","../../../../../mol/decor/decor.ts","../../../../../mol/style/unit/unit.ts","../../../../../mol/style/func/func.ts","../../../../../mol/style/prop/prop.ts","../../../../../mol/wire/solo/solo.test.ts","../../../../../mol/wire/plex/plex.test.ts","../../../../../mol/wire/probe/probe.test.ts","../../../../../mol/key/key.test.tsx","../../../../../mol/after/frame/frame.test.ts","../../../../../mol/wire/log/log.ts","../../../../../mol/wire/atom/atom.test.ts","../../../../../mol/state/arg/arg.node.ts","../../../../../mol/state/arg/arg.node.test.ts","../../../../../mol/media/media.ts","../../../../../mol/const/const.test.ts","../../../../../mol/compare/array/array.test.ts","../../../../../mol/charset/decode/decode.test.ts","../../../../../mol/charset/encode/encode.test.ts","../../../../../mol/state/local/local.test.ts","../../../../../mol/state/local/local.mock.test.ts","../../../../../mol/lights/lights.ts","../../../../../mol/theme/theme.ts","../../../../../mol/theme/-css/theme.css.ts","../../../../../mol/theme/theme_lights.ts","../../../../../mol/gap/gap.ts","../../../../../mol/gap/-css/gap.css.ts","../../../../../mol/window/window.node.ts","../../../../../mol/view/selection/selection.ts","../../../../../mol/wrapper/wrapper.ts","../../../../../mol/wrapper/wrapper.test.ts","../../../../../mol/memo/memo.ts","../../../../../mol/memo/memo.test.ts","../../../../../mol/dom/qname/qname.ts","../../../../../mol/wire/watch/watch.ts","../../../../../mol/dom/render/attributes/attributes.ts","../../../../../mol/dom/render/events/events.ts","../../../../../mol/error/message/message.ts","../../../../../mol/dom/render/styles/styles.ts","../../../../../mol/dom/render/fields/fields.ts","../../../../../mol/view/view/-css/view.css.ts","../../../../../mol/view/view/view.tsx","../../../../../mol/view/view/view.test.ts","../../../../../mol/plugin/plugin.ts","../../../../../mol/hotkey/hotkey.view.tree","../../../../../mol/keyboard/code/code.ts","../../../../../mol/hotkey/hotkey.view.ts","../../../../../mol/string/string.view.tree","../../../../../mol/dom/listener/listener.ts","../../../../../mol/layer/layer.ts","../../../../../mol/layer/-css/layer.css.ts","../../../../../mol/string/string.view.ts","../../../../../mol/string/-css/string.view.css.ts","../../../../../mol/paragraph/paragraph.view.tree","../../../../../mol/paragraph/paragraph.view.ts","../../../../../mol/paragraph/-css/paragraph.view.css.ts","../../../../../mol/dimmer/dimmer.view.tree","../../../../../mol/dimmer/dimmer.test.ts","../../../../../mol/dimmer/dimmer.view.ts","../../../../../mol/dimmer/-css/dimmer.view.css.ts","../../../../../mol/speck/speck.view.tree","../../../../../mol/speck/-css/speck.view.css.ts","../../../../../mol/button/button.view.tree","../../../../../mol/button/button.test.ts","../../../../../mol/button/button.view.ts","../../../../../mol/button/-css/button.view.css.ts","../../../../../mol/button/typed/typed.view.tree","../../../../../mol/button/typed/-css/typed.view.css.ts","../../../../../mol/button/minor/minor.view.tree","../../../../../mol/button/minor/-css/minor.view.css.ts","../../../../../mol/view/tree2/class/props.test.ts","../../../../../mol/locale/locale.test.ts","../../../../../mol/view/tree2/to/locale/locale.test.ts","../../../../../mol/view/tree2/to/js/test/ex/array_slot.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_nan.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_union.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_number.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_boolean.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_chaining.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_fallback.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_chaining.view.tree","../../../../../mol/view/tree2/to/js/test/ex/right_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_string.view.tree","../../../../../localized_string","../../../../../mol/view/tree2/to/js/test/ex/left_read_only.view.tree","../../../../../mol/view/tree2/to/js/test/ex/right_hierarchy.view.tree","../../../../../mol/view/tree2/to/js/test/ex/right_read_only.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_dict.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_with_types.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_inheritance.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_legacy_value.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_typed_null.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_in_dictionary.view.tree","../../../../../mol/scroll/scroll.view.tree","../../../../../mol/print/print.ts","../../../../../mol/style/sheet/sheet.ts","../../../../../mol/style/sheet/sheet.test.ts","../../../../../mol/style/define/define.ts","../../../../../mol/scroll/scroll.view.ts","../../../../../mol/scroll/scroll.view.css.ts","../../../../../mol/page/page.view.tree","../../../../../mol/page/page.view.css.ts","../../../../../mol/view/tree2/to/js/test/ex/right_in_left_bind.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_empty_class.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_two_classes.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_factory_props.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_default_indexed.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_complex_key.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_constructor_tuple.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_second_level_index.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_quoted_props.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_spread_other.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_of_array_or_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_localized_in_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_with_default_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_in_array_and_object.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_indexed_second_level.view.tree","../../../../../mol/view/tree2/to/js/test/ex/array_spread_other_channel.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_factory_inheritance.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_with_inheritance.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_localized_default_value.view.tree","../../../../../mol/view/tree2/to/js/test/ex/simple_mutable_and_read_only.view.tree","../../../../../mol/view/tree2/to/js/test/ex/structural_localized_prop_value.view.tree","../../../../../mol/view/tree2/to/js/test/ex/left_with_separate_default_and_comment.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_with_separate_default_in_right_part.view.tree","../../../../../mol/view/tree2/to/js/test/ex/bidi_doubing_right_part_with_same_default.view.tree","../../../../../mol/view/tree2/to/js/test/ex/klass.ts","../../../../../mol/view/tree2/to/js/test/ex/right_hierarchy_bar.ts","../../../../../mol/view/tree2/to/js/test/run.test.ts","../../../../../mol/view/tree2/to/js/test/js.bidi.test.ts","../../../../../mol/view/tree2/to/js/test/js.left.test.ts","../../../../../mol/view/tree2/to/js/test/js.array.test.ts","../../../../../mol/view/tree2/to/js/test/js.right.test.ts","../../../../../mol/view/tree2/to/js/test/js.simple.test.ts","../../../../../mol/view/tree2/to/js/test/js.structural.test.ts"],"names":[],"mappings":"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","sourcesContent":["Error.stackTraceLimit = 50;\n\ndeclare let _$_: { new(): {} } & typeof globalThis\ndeclare class $ extends _$_ {}\n\nnamespace $ {\n\texport type $ = typeof $$\n\texport declare class $$ extends $ {\n\t\tstatic $: $\n\t}\n\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\tconst instances = new WeakSet< any >()\n\n\t/**\n\t * Proxy that delegates all to lazy returned target.\n\t * \n\t * \t$mol_delegate( Array.prototype , ()=> fetch_array() )\n\t */\n export function $mol_delegate< Value extends object >(\n\t\tproto : Value ,\n\t\ttarget : ()=> Value ,\n\t) {\n\n\t\tconst proxy = new Proxy( proto , {\n\n\t\t\tget: ( _ , field )=> {\n\t\t\t\tconst obj = target()\n\t\t\t\tlet val = Reflect.get( obj , field )\n\t\t\t\tif( typeof val === 'function' ) {\n\t\t\t\t\tval = val.bind( obj )\n\t\t\t\t} \n\t\t\t\treturn val\n\t\t\t},\n\t\t\thas: ( _ , field )=> Reflect.has( target(), field ),\n\t\t\tset: ( _ , field , value )=> Reflect.set( target() , field , value ),\n\t\t\t\n\t\t\tgetOwnPropertyDescriptor: ( _ , field )=> Reflect.getOwnPropertyDescriptor( target() , field ),\n\t\t\townKeys: ()=> Reflect.ownKeys( target() ),\n\t\t\t\n\t\t\tgetPrototypeOf: ()=> Reflect.getPrototypeOf( target() ),\n\t\t\tsetPrototypeOf: ( _ , donor )=> Reflect.setPrototypeOf( target() , donor ),\n\t\t\t\n\t\t\tisExtensible: ()=> Reflect.isExtensible( target() ),\n\t\t\tpreventExtensions: ()=> Reflect.preventExtensions( target() ),\n\t\t\t\n\t\t\tapply: ( _ , self , args )=> Reflect.apply( target() as Function , self , args ),\n\t\t\tconstruct: ( _ , args , retarget )=> Reflect.construct( target() as Function , args , retarget ),\n\t\t\t\n\t\t\tdefineProperty: ( _ , field , descr )=> Reflect.defineProperty( target() , field , descr ),\n\t\t\tdeleteProperty: ( _ , field )=> Reflect.deleteProperty( target() , field ),\n\n\t\t} )\n\n\t\tinstances.add( proxy )\n\n\t\treturn proxy\n\n\t}\n\n\tReflect.defineProperty(\n\t\t$mol_delegate ,\n\t\tSymbol.hasInstance ,\n\t\t{\n\t\t\tvalue : ( obj : object )=> instances.has( obj ),\n\t\t},\n\t)\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' && typeof having !== 'function' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\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","namespace $ {\n\t\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as any as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || (this.constructor as { $?: $ }).$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn ( this as any )[ Symbol.toStringTag ] || this.$.$mol_func_name( this )\n\t\t}\n\t\t\n\t\tstatic toJSON() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\tstatic destructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '<>'\n\t\t}\n\t\t\n\t\t// toJSON(): any {\n\t\t// \treturn this.toString()\n\t\t// }\n\n\t}\n}\n","namespace $ {\n\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = this.uri + ( '#' + this.row + ':' + this.col + '/' + this.length )\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message} (${this})` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail( this.error( `Begin value '${begin}' out of range`, RangeError ) )\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail( this.error( `End value '${end}' out of range`, RangeError ) )\n\t\t\tif (end < begin) this.$.$mol_fail( this.error( `End value '${end}' can't be less than begin value`, RangeError ) )\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** 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\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\t\n\texport function $mol_maybe< Value >( value : Value | null | undefined ) : Value[] {\n\t\treturn ( value == null ) ? [] : [ value ]\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\t\t\treturn this.update( $mol_maybe( value ), ... path )[0]\n\t\t}\n\n\t\t/** Makes new tree with node overrided by path. */\n\t\tupdate( value : readonly $mol_tree2[] , ...path : $mol_tree2_path ) : readonly $mol_tree2[] {\n\n\t\t\tif( path.length === 0 ) return value\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.flatMap( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.update( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( ... this.struct( type , [] ).update( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ this.clone( sub ) ]\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst ins = ( this.kids[ type ] || this.list([]) )\n\t\t\t\t\t.update( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn [ this.clone([\n\t\t\t\t\t... this.kids.slice( 0, type ),\n\t\t\t\t\t... ins,\n\t\t\t\t\t... this.kids.slice( type + 1 ),\n\t\t\t\t]) ]\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t\t.flatMap( item => item.update( value , ... path.slice( 1 ) ) )\n\n\t\t\t\treturn [ this.clone( kids ) ]\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\thack_self< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\tlet handle = belt[ this.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\tif( !handle || handle === Object.prototype[ this.type as keyof Object ] ) {\n\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t]\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn handle( this , belt , context! )\n\t\t\t} catch( error: any ) {\n\t\t\t\terror.message += `\\n${ this.clone([]) }${ this.span }`\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t... this.kids.map( child => child.hack_self(belt, context) )\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\texport class $mol_view_tree2_error extends Error {\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly spans: readonly $mol_span[]\n\t\t) {\n\t\t\tsuper(message)\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\tmessage: this.message,\n\t\t\t\tspans: this.spans\n\t\t\t}\n\t\t}\n\t}\n\n\texport class $mol_view_tree2_error_suggestions {\n\t\tconstructor(\n\t\t\treadonly suggestions: readonly string[]\n\t\t) {}\n\n\t\ttoString() {\n\t\t\treturn this.suggestions.map(suggestion => `\\`${suggestion}\\``).join(', ')\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn this.suggestions\n\t\t}\n\t}\n\n\texport function $mol_view_tree2_error_str(\n\t\tstrings: readonly string[],\n\t\t...parts: readonly ($mol_span | readonly $mol_span[] | string | number | $mol_view_tree2_error_suggestions)[]\n\t) {\n\t\tconst spans: $mol_span[] = []\n\n\t\tfor (const part of parts) {\n\t\t\tif (part instanceof $mol_span) spans.push(part)\n\t\t\tif (Array.isArray(part) && part.length > 0 && part[0] instanceof $mol_span) spans.push(...part)\n\t\t}\n\n\t\treturn new $mol_view_tree2_error(join(strings, parts), spans)\n\t}\n\n\tfunction join(strings: readonly string[], objects: readonly unknown[]) {\n\t\tlet result = ''\n\t\tlet obj_pos = 0\n\t\tlet obj_len = objects.length\n\n\t\tfor (const str of strings) {\n\t\t\tresult += str\n\t\t\tif (obj_pos < obj_len) {\n\t\t\t\tconst obj = objects[obj_pos++]\n\t\t\t\tif (Array.isArray(obj)) result += obj.map(item => `\\`${item}\\``).join(', ')\n\t\t\t\telse result += `\\`${String(obj)}\\``\n\t\t\t}\n\t\t}\n\n\t\treturn result\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_child(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) {\n\n\t\tif( tree.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Required one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\tif( tree.kids.length > 1 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str\n\t\t\t\t`Should be only one child at ${tree.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn tree.kids[0]\n\t}\n\n}\n","namespace $ {\n\texport function $mol_view_tree2_classes( defs : $mol_tree2 ) {\n\t\treturn defs.clone(defs.hack({\n\t\t\t'-': () => []\n\t\t}))\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_view_tree2_normalize( this: $, defs : $mol_tree2 ) {\n\t\treturn defs.clone(\n\t\t\t$mol_view_tree2_classes( defs ).kids.map( cl => cl.clone([\n\t\t\t\tthis.$mol_view_tree2_class_super( cl ).clone(\n\t\t\t\t\tthis.$mol_view_tree2_class_props( cl )\n\t\t\t\t)\n\t\t\t]) )\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( json.toString !== Object.prototype.toString ) {\n\t\t\treturn $mol_tree2.data( json.toString() , [], span )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_js_is_number(type: string) {\n\t\treturn type.match(/[\\+\\-]*NaN/) || !Number.isNaN( Number( type ) )\n\t}\n}\n","namespace $ {\n\n\tfunction is_identifier( tree: $mol_tree2 ) {\n\t\tif( tree.type ) return false\n\t\treturn /^[a-z_$][a-z_$0-9]*$/i.test( tree.text() )\n\t}\n\n\texport function $mol_tree2_js_to_text( this: $, js: $mol_tree2 ) {\n\n\t\tfunction sequence( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\tinput.struct( separator && input.kids.length > 2 ? 'indent' : 'line',\n\t\t\t\t\t\t( [] as $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t... input.kids.map( ( kid, index ) => [\n\t\t\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\t... ( separator && index < input.kids.length - 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction block( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t... input.kids.length === 0 ? [] : [ input.struct( 'indent',\n\t\t\t\t\tinput.kids.map( ( kid, index ) =>\n\t\t\t\t\t\tkid.struct( 'line', [\n\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t... ( separator ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t\t] ),\n\t\t\t\t\t),\n\t\t\t\t) ],\n\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t]\n\t\t}\n\n\t\tfunction duplet( open?: string, separator?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator && input.kids.length > 1 ) ? [ input.data( separator ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\tfunction triplet( open?: string, separator12?: string, separator23?: string, close?: string ) {\n\t\t\treturn ( input: $mol_tree2, belt: $mol_tree2_belt< never > )=> [\n\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t... open ? [ input.data( open ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 0, 1 ) ).hack( belt ),\n\t\t\t\t\t... ( separator12 && input.kids.length > 1 ) ? [ input.data( separator12 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 1, 2 ) ).hack( belt ),\n\t\t\t\t\t... ( separator23 && input.kids.length > 2 ) ? [ input.data( separator23 ) ] : [],\n\t\t\t\t\t... input.list( input.kids.slice( 2, 3 ) ).hack( belt ),\n\t\t\t\t\t... close ? [ input.data( close ) ] : [],\n\t\t\t\t] ),\n\t\t\t]\n\t\t}\n\n\t\treturn js.list( js.hack({\n\n\t\t\t'+': sequence( '+' ),\n\t\t\t'-': sequence( '-' ),\n\t\t\t'!': sequence( '!' ),\n\t\t\t'~': sequence( '~' ),\n\n\t\t\t'return': sequence( 'return ' ),\n\t\t\t'break': sequence( 'break ' ),\n\t\t\t'continue': sequence( 'continue ' ),\n\t\t\t'yield': sequence( 'yield ' ),\n\t\t\t'yield*': sequence( 'yield* ' ),\n\t\t\t'await': sequence( 'await ' ),\n\t\t\t'void': sequence( 'void ' ),\n\t\t\t'delete': sequence( 'delete ' ),\n\t\t\t'typeof': sequence( 'typeof ' ),\n\t\t\t'new': sequence( 'new ' ),\n\t\t\t'...': sequence( '...' ),\n\n\t\t\t'@++': sequence( '', '', '++' ),\n\t\t\t'@--': sequence( '', '', '--' ),\n\t\t\t\n\t\t\t'(in)': sequence( '(', ' in ', ')' ),\n\t\t\t'(instanceof)': sequence( '(', ' instanceof ', ')' ),\n\n\t\t\t'(+)': sequence( '(', ' + ', ')' ),\n\t\t\t'(-)': sequence( '(', ' - ', ')' ),\n\t\t\t'(*)': sequence( '(', ' * ', ')' ),\n\t\t\t'(/)': sequence( '(', ' / ', ')' ),\n\t\t\t'(%)': sequence( '(', ' % ', ')' ),\n\t\t\t'(**)': sequence( '(', ' ** ', ')' ),\n\t\t\t\n\t\t\t'(<)': sequence( '(', ' < ', ')' ),\n\t\t\t'(<=)': sequence( '(', ' <= ', ')' ),\n\t\t\t'(>)': sequence( '(', ' > ', ')' ),\n\t\t\t'(>=)': sequence( '(', ' >= ', ')' ),\n\t\t\t'(==)': sequence( '(', ' == ', ')' ),\n\t\t\t'(!=)': sequence( '(', ' != ', ')' ),\n\t\t\t'(===)': sequence( '(', ' === ', ')' ),\n\t\t\t'(!==)': sequence( '(', ' !== ', ')' ),\n\t\t\t\n\t\t\t'(<<)': sequence( '(', ' << ', ')' ),\n\t\t\t'(>>)': sequence( '(', ' >> ', ')' ),\n\t\t\t'(>>>)': sequence( '(', ' >>> ', ')' ),\n\t\t\t'(&)': sequence( '(', ' & ', ')' ),\n\t\t\t'(|)': sequence( '(', ' | ', ')' ),\n\t\t\t'(^)': sequence( '(', ' ^ ', ')' ),\n\t\t\t\n\t\t\t'(&&)': sequence( '(', ' && ', ')' ),\n\t\t\t'(||)': sequence( '(', ' || ', ')' ),\n\t\t\t'(,)': sequence( '(', ', ', ')' ),\n\t\t\t'{;}': block( '{', ';', '}' ),\n\t\t\t';': block( '', ';', '' ),\n\t\t\t'[,]': sequence( '[', ', ', ']' ),\n\t\t\t'{,}': sequence( '{', ', ', '}' ),\n\n\t\t\t'()': sequence( '(', '', ')' ),\n\t\t\t'{}': block( '{', '', '}' ),\n\t\t\t\n\t\t\t'[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t'?.[]': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return sequence( '?.[', '', ']' )( input, belt )\n\t\t\t\telse return [ input.data( '?.' + first.text() ) ]\n\t\t\t},\n\t\t\t\n\t\t\t':': ( input, belt )=> input.kids[0].type\n\t\t\t\t? duplet( '[', ']: ' )( input, belt )\n\t\t\t\t: duplet( '', ': ' )( input, belt ),\n\t\t\t\n\t\t\t'let': duplet( 'let ', ' = ' ),\n\t\t\t'const': duplet( 'const ', ' = ' ),\n\t\t\t'var': duplet( 'var ', ' = ' ),\n\n\t\t\t'=': duplet( '', ' = ' ),\n\t\t\t'+=': duplet( '', ' += ' ),\n\t\t\t'-=': duplet( '', ' -= ' ),\n\t\t\t'*=': duplet( '', ' *= ' ),\n\t\t\t'/=': duplet( '', ' /= ' ),\n\t\t\t'%=': duplet( '', ' %= ' ),\n\t\t\t'**=': duplet( '', ' **= ' ),\n\t\t\t'<<=': duplet( '', ' <<= ' ),\n\t\t\t'>>=': duplet( '', ' >>= ' ),\n\t\t\t'>>>=': duplet( '', ' >>>= ' ),\n\t\t\t'&=': duplet( '', ' &= ' ),\n\t\t\t'|=': duplet( '', ' |= ' ),\n\t\t\t'^=': duplet( '', ' ^= ' ),\n\t\t\t'&&=': duplet( '', ' &&= ' ),\n\t\t\t'||=': duplet( '', ' ||= ' ),\n\n\t\t\t'=>': duplet( '', ' => ' ),\n\t\t\t'async=>': duplet( 'async ', ' => ' ),\n\t\t\t'function': triplet( 'function ' ),\n\t\t\t'function*': triplet( 'function* ' ),\n\t\t\t'async': triplet( 'async function ' ),\n\t\t\t'async*': triplet( 'async function* ' ),\n\n\t\t\t'class': triplet( 'class ', ' ' ),\n\t\t\t'extends': sequence( 'extends ', '', ' ' ),\n\n\t\t\t'if': triplet( 'if', ' ', 'else' ),\n\t\t\t'?:': triplet( '', ' ? ', ' : ' ),\n\n\t\t\t'.': ( input, belt )=> {\n\t\t\t\tconst first = input.kids[0]\n\t\t\t\tif( !is_identifier( first ) ) return triplet( '[', ']' )( input, belt )\n\t\t\t\telse return [\n\t\t\t\t\tinput.data( first.text() ),\n\t\t\t\t\t... input.list( input.kids.slice(1) ).hack( belt ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'get': triplet( 'get [', ']' ),\n\t\t\t'set': triplet( 'set [', ']' ),\n\t\t\t'static': triplet( 'static [', ']' ),\n\t\t\t\n\t\t\t'/./': sequence(),\n\t\t\t'.global': sequence( 'g' ),\n\t\t\t'.multiline': sequence( 'm' ),\n\t\t\t'.ignoreCase': sequence( 'i' ),\n\t\t\t'.source': ( input, belt )=> [\n\t\t\t\tinput.data( '/' ),\n\t\t\t\tinput.data( JSON.stringify( input.text() ).slice( 1, -1 ) ),\n\t\t\t\tinput.data( '/' ),\n\t\t\t],\n\n\t\t\t'``': ( input, belt )=> {\n\t\t\t\treturn [\n\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t\t... ( [] as $mol_tree2[] ).concat( ... input.kids.map( kid => {\n\t\t\t\t\t\t\tif( kid.type ) {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tkid.data( '${' ),\n\t\t\t\t\t\t\t\t\t... kid.list([ kid ]).hack( belt ),\n\t\t\t\t\t\t\t\t\tkid.data( '}' ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( JSON.stringify( kid.text() ).slice( 1, -1 ) ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t\tinput.data( '`' ),\n\t\t\t\t\t] ),\n\t\t\t\t]\n\t\t\t},\n\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t// string\n\t\t\t\tif( !input.type ) return [\n\t\t\t\t\tinput.data( JSON.stringify( input.text() ) ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// variable\n\t\t\t\tif( /^[\\w$#][\\w0-9$]*$/i.test( input.type ) ) return [\n\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t// ... input.hack( context ),\n\t\t\t\t]\n\t\t\t\t\n\t\t\t\t// number\n\t\t\t\tif( $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput.data( input.type )\n\t\t\t\t]\n\n\t\t\t\t$mol_fail( new SyntaxError( `Wrong node type` ) )\n\n\t\t\t},\n\n\t\t}) )\n\n\t}\n\n}\n","namespace $ {\n\texport function $mol_tree2_span_imprint( tree: $mol_tree2 ) {\n\n\t\tconst sources = new Map< string, $mol_tree2 >()\n\n\t\tconst res = tree.clone( tree.hack({\n\t\t\t'': ( input, belt )=> {\n\n\t\t\t\tif( !sources.has( input.span.uri ) ) {\n\t\t\t\t\tsources.set( input.span.uri,\n\t\t\t\t\t\ttree.struct( input.span.uri, [\n\t\t\t\t\t\t\ttree.data( input.span.source )\n\t\t\t\t\t\t] ),\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\tinput.clone([\n\t\t\t\t\t\tinput.data( input.span.toString() ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t]),\n\t\t\t\t]\n\n\t\t\t},\n\t\t}) )\n\n\t\treturn tree.clone([\n\t\t\t... sources.values(),\n\t\t\tres,\n\t\t])\n\n\t}\n}\n","namespace $ {\n\texport function $mol_tree2_span_reuse( tree: $mol_tree2 ) {\n\t\t\n\t\tconst sources = new Map< string, string >()\n\n\t\treturn tree.clone(\n\t\t\ttree.hack({\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( input.type ) {\n\t\t\t\t\t\tsources.set( input.type, input.kids[0].text() )\n\t\t\t\t\t\treturn []\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn input.hack({\n\t\t\t\t\t\t'': ( input, belt )=> {\n\t\t\t\t\t\t\tconst kids = input.list( input.kids.slice(1) ).hack( belt )\n\t\t\t\t\t\t\tconst [ _, uri, row, col, length ] = /^(.*)#(\\d+):(\\d+)\\/(\\d+)$/.exec( input.kids[0].text() )!\n\t\t\t\t\t\t\tconst span = new $mol_span( uri, sources.get( uri )!, Number( row ), Number( col ), Number( length ) )\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tnew $mol_tree2( input.type , input.value , kids, span ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t},\n\t\t\t\t\t})\n\n\t\t\t\t},\n\t\t\t}),\n\t\t)\n\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string( this: $, text: $mol_tree2 ) {\n\n\t\tlet res = ''\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: string, inline: boolean ) {\n\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tif( inline ) res += '\\n'\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + '\\t', false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) res += prefix\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) res += prefix\n\t\t\t\t\n\t\t\t\tres += text.text()\n\t\t\t\t\n\t\t\t\tif( !inline ) res += '\\n'\n\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tfor( let kid of text.kids ) {\n\t\t\tvisit( kid, '', false )\n\t\t}\n\t\t\n\t\treturn res\n\t}\n\n}\n","namespace $ {\n\n\tconst alphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\n\n\texport function $mol_vlq_encode( val: number ): string {\n\n\t\tconst sign = val < 0 ? 1 : 0\n\t\tif( sign ) val = -val\n\n\t\tlet index = sign | ( ( val & 0b1111 ) << 1 )\n\t\tval >>>= 4\n\t\t\n\t\tlet res = ''\n\n\t\twhile( val ) {\n\n\t\t\tindex |= 1 << 5\n\t\t\tres += alphabet[ index ]\n\t\t\t\n\t\t\tif( !val ) break\n\t\t\t\n\t\t\tindex = val & 0b11111\n\t\t\tval >>>= 5\n\t\t\t\n\t\t}\n\n\t\tres += alphabet[ index ]\n\n\t\treturn res\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap( this: $, tree: $mol_tree2 ) {\n\n\t\tlet col = 1\n\t\tlet prev_span: $mol_span | undefined\n\t\tlet prev_index = 0\n\t\tlet prev_col = 1\n\t\tlet mappings = ''\n\t\tlet line = [] as string[]\n\n\t\tconst file_indexes = new Map< string, number >()\n\t\tconst file_sources = new Map< string, string >()\n\n\t\tfunction span2index( span: $mol_span ) {\n\t\t\tif( file_indexes.has( span.uri ) ) return file_indexes.get( span.uri )!\n\t\t\tconst index = file_indexes.size\n\t\t\tfile_indexes.set( span.uri, index )\n\t\t\tfile_sources.set( span.uri, span.source )\n\t\t\treturn index\n\t\t}\n\t\t\n\t\tfunction next_line() {\n\t\t\tif( !line.length ) return\n\t\t\tmappings += line.join(',') + ';'\n\t\t\tline = []\n\t\t\tcol = 1\n\t\t\tprev_col = 1\n\t\t}\n\t\t\n\t\tfunction visit( text: $mol_tree2, prefix: number, inline: boolean ) {\n\n\t\t\tfunction indent() {\n\t\t\t\tcol += prefix\n\t\t\t}\n\t\n\t\t\tif( inline && text.type === 'indent' ) next_line()\n\t\t\t\n\t\t\tif( prev_span !== text.span || col === 1 ) {\n\n\t\t\t\tconst index = span2index( text.span )\n\t\t\t\t\n\t\t\t\tline.push(\n\t\t\t\t\t$mol_vlq_encode( col - prev_col ) + \n\t\t\t\t\t$mol_vlq_encode( index - prev_index ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.row - ( prev_span?.row ?? 1 ) ) +\n\t\t\t\t\t$mol_vlq_encode( text.span.col - ( prev_span?.col ?? 1 ) )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tprev_col = col\n\t\t\t\tprev_span = text.span\n\t\t\t\tprev_index = index\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( text.type === 'indent' ) {\n\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix + 1, false )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( inline ) next_line()\n\n\t\t\t} else if( text.type === 'line' ) {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tfor( let kid of text.kids ) {\n\t\t\t\t\tvisit( kid, prefix, true )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( !inline ) indent()\n\t\t\t\t\n\t\t\t\tcol += text.text().length\n\t\t\t\t\n\t\t\t\tif( !inline ) next_line()\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tfor( let kid of tree.kids ) {\n\t\t\tvisit( kid, 0, false )\n\t\t}\n\t\tnext_line()\n\t\t\n\t\tconst map: $mol_sourcemap_raw = {\n\t\t\tversion: 3,\n\t\t\tsources: [ ... file_sources.keys() ],\n\t\t\tsourcesContent: [ ... file_sources.values() ],\n\t\t\tmappings,\n\t\t}\n\n\t\treturn map\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_sourcemap_url(this: $, uri: string, type = 'js' as 'js' | 'css') {\n\t\tif (type === 'css') return `\\n/*# sourceMappingURL=${uri}*/`\n\t\treturn `\\n//# sourceMappingURL=${uri}`\n\t}\n\n}\n","namespace $ {\n\n\tconst prefix = '# sourceMappingURL=data:application/json,'\n\tconst end_comment = ' */'\n\n\texport function $mol_sourcemap_dataurl_decode(this: $, data: string) {\n\t\tconst index = data.lastIndexOf(prefix)\n\n\t\tif (index === -1) return undefined\n\n\t\tdata = data.substring(index + prefix.length)\n\n\t\tif (data.endsWith(end_comment)) data = data.substring(0, data.length - end_comment.length)\n\n\t\tconst decoded = this.decodeURIComponent(data)\n\n\t\ttry {\n\t\t\tconst map = JSON.parse(decoded) as $mol_sourcemap_raw | null\n\n\t\t\tif (! map) return undefined\n\n\t\t\tif (typeof map.mappings === 'string' && map.mappings.startsWith(';;')) {\n\t\t\t\tmap.mappings = map.mappings.substring(2)\n\t\t\t}\n\n\t\t\treturn map\n\t\t} catch (e) {\n\t\t\tif (e instanceof Error) e.message += ', origin=' + decoded\n\t\t\t$mol_fail_hidden(e)\n\t\t}\n\t}\n\n\texport function $mol_sourcemap_dataurl_encode(this: $, map: $mol_sourcemap_raw, type = 'js' as 'js' | 'css') {\n\t\tconst str = JSON.stringify( { ...map, mappings: ';;' + map.mappings } )\n\n\t\treturn this.$mol_sourcemap_url('data:application/json,' + this.encodeURIComponent( str ), type)\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_string_mapped( this: $, text: $mol_tree2, type: 'js' | 'css' ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\n\t\tconst chunk = this.$mol_sourcemap_dataurl_encode( map, type )\n\t\treturn code + chunk\n\t}\n\n\texport function $mol_tree2_text_to_string_mapped_js( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'js' )\n\t}\n\t\n\texport function $mol_tree2_text_to_string_mapped_css( this: $, text: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_text_to_string_mapped( text, 'css')\n\t}\n\t\n}\n","namespace $ {\n\texport function $mol_guard_defined<T>(value: T): value is NonNullable<T> {\n\t\treturn value !== null && value !== undefined\n\t}\n}\n","namespace $ {\n\n\texport function $mol_tree2_text_to_sourcemap_vis( this: $, text: $mol_tree2 ) {\n\t\t\n\t\tconst code = this.$mol_tree2_text_to_string( text )\n\t\tconst map = this.$mol_tree2_text_to_sourcemap( text )\n\t\t\n\t\tconst uri = [\n\t\t\t'https://sokra.github.io/source-map-visualization/#base64',\n\t\t\tbtoa( code ),\n\t\t\tbtoa( JSON.stringify( map ) ),\n\t\t\t... map.sourcesContent?.filter($mol_guard_defined).map( btoa ) ?? [],\n\t\t].join( ',' )\n\n\t\treturn uri\n\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Makes JSON from json.tree. */\n\texport function $mol_tree2_to_json(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t): unknown {\n\n\t\tif( !tree.type ) {\n\t\t\tif( tree.kids.every( kid => !kid.type ) ) return tree.text()\n\t\t\tif( tree.kids.length !== 1 ) this.$mol_fail( new Error( `Multiple json root at ${tree.span}` ) )\n\t\t\treturn this.$mol_tree2_to_json(tree.kids[0] )\n\t\t}\n\t\t\n\t\tif( tree.type === '-' ) return undefined\n\t\tif( tree.type === 'true' ) return true\n\t\tif( tree.type === 'false' ) return false\n\t\tif( tree.type === 'null' ) return null\n\t\t\n\t\tif( tree.type === '*' ) {\n\t\t\t\n\t\t\tconst obj = {} as Record< string, unknown >\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tconst key = kid.type || kid.clone( kid.kids.slice( 0, -1 ) ).text()\n\t\t\t\tconst val = this.$mol_tree2_to_json( kid.kids[ kid.kids.length - 1 ] )\n\t\t\t\t\n\t\t\t\tif( val !== undefined ) obj[ key ] = val\n\t\t\t}\n\t\t\t\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tif( tree.type === '/' ) {\n\t\t\t\n\t\t\tconst res = [] as unknown[]\n\t\t\t\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\tif( kid.type === '-' ) continue\n\t\t\t\t\n\t\t\t\tvar val = this.$mol_tree2_to_json( kid )\n\t\t\t\tif( val !== undefined ) res.push( val )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\tconst numb = Number( tree.type ) \n\t\tif( !Number.isNaN( numb ) || tree.type === 'NaN' ) return numb\n\t\t\n\t\tthis.$mol_fail( new Error( `Unknown json type (${tree.type}) at ${tree.span}` ) )\n\t}\n\n}\n","namespace $ {\n\t\n\texport async function $mol_tree2_to_stream(\n\t\ttree: $mol_tree2,\n\t\toutput: {\n\t\t\twrite( chunk: string ): boolean\n\t\t\tonce?( event: 'drain', cb: ()=> void ): void\n\t\t},\n\t\tprefix = '',\n\t) {\n\n\t\tconst pause = ()=> {\n\t\t\treturn new Promise( done => {\n\t\t\t\toutput.once!( 'drain', ()=> done( null ) )\n\t\t\t} )\n\t\t}\n\n\t\tlet out = ''\n\n\t\tif( tree.type.length ) {\n\t\t\t\n\t\t\tif( !prefix.length ) {\n\t\t\t\tprefix = \"\\t\";\n\t\t\t}\n\n\t\t\tout += tree.type\n\n\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\toutput.write( out + ' ' )\n\t\t\t\tawait $mol_tree2_to_stream( tree.kids[ 0 ], output, prefix )\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tout += \"\\n\"\n\n\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\tout += \"\\\\\" + tree.value + \"\\n\"\n\n\t\t}\n\n\t\toutput.write( out )\n\n\t\tfor( const kid of tree.kids ) {\n\t\t\tif( !output.write( prefix ) ) await pause()\n\t\t\tawait $mol_tree2_to_stream( kid, output, prefix + \"\\t\" )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_tree2_xml_from_dom( dom: Node ): $mol_tree2 {\n\t\t\n\t\tswitch( dom.nodeType ) {\n\t\t\t\n\t\t\tcase dom.DOCUMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tkids.push( $mol_tree2_xml_from_dom( kid ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.list( kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.PROCESSING_INSTRUCTION_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '?', [\n\t\t\t\t\t$mol_tree2.struct( dom.nodeName, \n\t\t\t\t\t\tdom.nodeValue!.split(' ').map( chunk => {\n\t\t\t\t\t\t\tconst [, name, value ] = /^(.*?)(?:=\"(.*?)\")?$/.exec( chunk )!\n\t\t\t\t\t\t\tconst kids = value ? [ $mol_tree2.data( value ) ] : []\n\t\t\t\t\t\t\treturn $mol_tree2.struct( name, kids )\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\tcase dom.DOCUMENT_TYPE_NODE: {\n\t\t\t\tconst dom2 = dom as DocumentType\n\t\t\t\treturn $mol_tree2.struct( '!', [\n\t\t\t\t\t$mol_tree2.struct( 'DOCTYPE', [ \n\t\t\t\t\t\t$mol_tree2.struct( dom2.name )\n\t\t\t\t\t] )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.ELEMENT_NODE: {\n\t\t\t\tlet kids = [] as $mol_tree2[]\n\t\t\t\t\n\t\t\t\tfor( const attr of ( dom as Element ).attributes ) {\n\t\t\t\t\tkids.push(\n\t\t\t\t\t\t$mol_tree2.struct( '@', [\n\t\t\t\t\t\t\t$mol_tree2.struct( attr.nodeName, [\n\t\t\t\t\t\t\t\t$mol_tree2.data( attr.nodeValue! )\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\t\n\t\t\t\tfor( const kid of dom.childNodes ) {\n\t\t\t\t\tconst k = $mol_tree2_xml_from_dom( kid ) \n\t\t\t\t\tif( k.type || k.value ) kids.push( k )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_tree2.struct( dom.nodeName, kids )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.COMMENT_NODE: {\n\t\t\t\treturn $mol_tree2.struct( '--', [\n\t\t\t\t\t$mol_tree2.data( dom.nodeValue! )\n\t\t\t\t] )\n\t\t\t}\n\t\t\t\n\t\t\tcase dom.TEXT_NODE: {\n\t\t\t\tif( !dom.nodeValue!.trim() ) return $mol_tree2.list([])\n\t\t\t\treturn $mol_tree2.data(\n\t\t\t\t\tdom.nodeValue!.replace( /\\s+/g, ' ' )\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn $mol_fail( new Error( `Unsupported node ${ dom.nodeName }` ) )\n\t}\n\t\n}\n","namespace $ {\n\t\n\tconst mapping = {\n\t\t'<' : '<' ,\n\t\t'>' : '>' ,\n\t\t'\"' : '"' ,\n\t\t'&' : '&' ,\n\t}\n\t\n\texport function $mol_html_encode( text : string ) {\n\t\treturn text.replace( /[&<\">]/gi , str => mapping[ str as keyof typeof mapping ] )\n\t}\n\t\n}\n","namespace $ {\n\n\tfunction attrs_belt( separator : string ) : Record< string, $mol_tree2_hack<never> > {\n\t\treturn {\n\n\t\t\t'': ( input )=> [\n\t\t\t\tinput.data( ' ' ),\n\t\t\t\tinput.data( $mol_html_encode( input.type ) ),\n\t\t\t\t... input.value ? [\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\tinput.data( $mol_html_encode( input.value ) ),\n\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t] : [],\n\t\t\t\t... input.hack({\n\n\t\t\t\t\t'': ( input )=> {\n\n\t\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\t\tinput.data( separator ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t\t\tinput.data( '\"' ),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\t$mol_fail( new SyntaxError( 'Wrong attribute value' ) )\n\n\t\t\t\t\t},\n\n\t\t\t\t}),\n\t\t\t],\n\n\t\t}\n\t}\n\t\n\texport function $mol_tree2_xml_to_text( xml: $mol_tree2 ) {\n\t\treturn xml.list(\n\t\t\txml.hack({\n\n\t\t\t\t'@': ( input, belt )=> [],\n\n\t\t\t\t'--': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!-- ' ),\n\t\t\t\t\t\t... input.hack( belt ),\n\t\t\t\t\t\tinput.data( ' -->' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'?': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<?' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( '=' ) ),\n\t\t\t\t\t\tinput.data( '?>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'!': ( input, belt )=> [\n\t\t\t\t\txml.struct( 'line', [\n\t\t\t\t\t\tinput.data( '<!' ),\n\t\t\t\t\t\tinput.kids[0].data( input.kids[0].type ),\n\t\t\t\t\t\t... input.kids[0].hack( attrs_belt( ' ' ) ),\n\t\t\t\t\t\tinput.data( '>' ),\n\t\t\t\t\t] ),\n\t\t\t\t],\n\n\t\t\t\t'': ( input, belt )=> {\n\n\t\t\t\t\tif( !input.type ) return [\n\t\t\t\t\t\tinput.data( $mol_html_encode( input.text() ) ),\n\t\t\t\t\t]\n\n\t\t\t\t\tconst attrs = input.select( '@', null ).hack( attrs_belt( '=' ) )\n\t\t\t\t\tconst content = input.hack( belt )\n\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'line', [\n\t\t\t\t\t\t\tinput.data( `<` ),\n\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t... attrs,\n\t\t\t\t\t\t\t... content.length ? [\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t\tinput.struct( 'indent', content ),\n\t\t\t\t\t\t\t\tinput.data( `</` ),\n\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\tinput.data( `>` ),\n\t\t\t\t\t\t\t] : [\n\t\t\t\t\t\t\t\tinput.data( ` />` ),\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t] ),\n\t\t\t\t\t]\n\n\t\t\t\t},\n\n\t\t\t}),\n\t\t)\n\t}\n\n}\n","interface String {\n\t\n\tmatch< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.match ]\n\t>\n\t\n matchAll< RE extends RegExp >( regexp: RE ): ReturnType<\n\t\tRE[ typeof Symbol.matchAll ]\n\t>\n\t\n}\n\nnamespace $ {\n\t\n\ttype Groups_to_params<T> = {\n\t\t[P in keyof T]?: T[P] | boolean | undefined;\n\t};\t\n\n\texport type $mol_regexp_source =\n\t| number\n\t| string\n\t| RegExp\n\t| { [ key in string ] : $mol_regexp_source }\n\t| readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\texport type $mol_regexp_groups< Source extends $mol_regexp_source >\n\t\n\t\t= Source extends number\n\t\t? {}\n\t\t\n\t\t: Source extends string\n\t\t? {}\n\t\t\n\t\t: Source extends $mol_regexp_source[]\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in Extract< keyof Source , number > ] : $mol_regexp_groups< Source[ key ] >\n\t\t}[ Extract< keyof Source , number > ] > >\n\t\t\n\t\t: Source extends RegExp\n\t\t? Record< string, string > extends NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\t? {}\n\t\t\t: NonNullable< NonNullable< ReturnType< Source['exec'] > >[ 'groups' ] >\n\t\t\n\t\t: Source extends { readonly [ key in string ] : $mol_regexp_source }\n\t\t? $mol_type_merge< $mol_type_intersect< {\n\t\t\t[ key in keyof Source ] :\n\t\t\t\t$mol_type_merge<\n\t\t\t\t\t& $mol_type_override<\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in Extract< keyof Source , string > ]: string\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treadonly [ k in key ]:\n\t\t\t\t\t\t\t\tSource[ key ] extends string\n\t\t\t\t\t\t\t\t\t? Source[ key ]\n\t\t\t\t\t\t\t\t\t: string\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t& $mol_regexp_groups< Source[ key ] >\n\t\t\t\t>\n\t\t}[ keyof Source ] > >\n\n\t\t: never\n\t\t\n\t/** Type safe reguar expression builder */\n\texport class $mol_regexp< Groups extends Record< string , string > > extends RegExp {\n\t\t\n\t\t/** Prefer to use $mol_regexp.from */\n\t\tconstructor( source : string , flags : string = 'gsu' , readonly groups : ( Extract< keyof Groups , string > )[] = [] ) {\n\t\t\tsuper( source , flags )\n\t\t}\n\t\t\n\t\t*[Symbol.matchAll] (str:string): RegExpStringIterator< RegExpMatchArray & $mol_type_override< RegExpMatchArray, { groups?: { [ key in keyof Groups ] : string } } > > {\n\t\t\tconst index = this.lastIndex\n\t\t\tthis.lastIndex = 0\n\t\t\ttry {\n\t\t\t\twhile ( this.lastIndex < str.length ) {\n\t\t\t\t\tconst found = this.exec(str)\n\t\t\t\t\tif( !found ) break\n\t\t\t\t\tyield found\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tthis.lastIndex = index\n\t\t\t}\n\t\t}\n\t\t\n\t\t/** Parses input and returns found capture groups or null */\n\t\t[ Symbol.match ]( str : string ): null | RegExpMatchArray {\n\t\t\tconst res = [ ... this[Symbol.matchAll]( str ) ].filter( r => r.groups ).map( r => r[0] )\n\t\t\tif( !res.length ) return null\n\t\t\treturn res as RegExpMatchArray\n\t\t}\n\t\t\n\t\t/** Splits string by regexp edges */\n\t\t[ Symbol.split ]( str : string ): string[] {\n\t\t\t\n\t\t\tconst res = [] as string[]\n\t\t\tlet token_last = null\n\t\t\t\n\t\t\tfor( let token of this[Symbol.matchAll]( str ) ) {\n\t\t\t\tif( token.groups && ( token_last ? token_last.groups : true ) ) res.push( '' )\n\t\t\t\tres.push( token[0] )\n\t\t\t\ttoken_last = token\n\t\t\t}\n\t\t\t\n\t\t\tif( !res.length ) res.push( '' )\n\t\t\t\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttest( str : string ): boolean {\n\t\t\treturn Boolean( str.match( this) )\n\t\t}\n\t\t\n\t\texec( str : string ): RegExpExecArray & $mol_type_override< RegExpExecArray , { groups?: { [ key in keyof Groups ] : string } } > | null {\n\t\t\t\n\t\t\tconst from = this.lastIndex\n\t\t\tif( from >= str.length ) return null\n\t\t\t\n\t\t\tconst res = super.exec( str )\n\t\t\tif( res === null ) {\n\t\t\t\tthis.lastIndex = str.length\n\t\t\t\tif( !str ) return null\n\t\t\t\treturn Object.assign( [ str.slice( from ) ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: str,\n\t\t\t\t} ) as any\n\t\t\t}\n\n\t\t\tif( from === this.lastIndex ) {\n\t\t\t\t$mol_fail( new Error( 'Captured empty substring' ) )\n\t\t\t}\n\n\t\t\ttype Token = { [ key in keyof Groups ] : string } & { [ key : number ] : string }\n\t\t\tconst groups = {} as Token\n\t\t\t\n\t\t\tconst skipped = str.slice( from , this.lastIndex - res[0].length )\n\t\t\tif( skipped ) {\n\t\t\t\tthis.lastIndex = this.lastIndex - res[0].length\n\t\t\t\treturn Object.assign( [ skipped ], {\n\t\t\t\t\tindex: from,\n\t\t\t\t\tinput: res.input,\n\t\t\t\t} ) as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( let i = 0 ; i < this.groups.length ; ++i ) {\n\t\t\t\tconst group = this.groups[ i ]\n\t\t\t\tgroups[ group ] = groups[ group ] || res[ i + 1 ] || '' as any\n\t\t\t}\n\n\t\t\treturn Object.assign( res, { groups } )\n\t\t}\n\t\t\n\t\tgenerate(\n\t\t\tparams: Groups_to_params< Groups >\n\t\t): string | null {\n\t\t\treturn null\n\t\t}\n\t\t\n\t\tget native() {\n\t\t\treturn new RegExp( this.source, this.flags )\n\t\t}\n\n\t\t/** Makes regexp that non-greedy repeats this pattern from min to max count */\n\t\tstatic repeat<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}?`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\n\t\t}\n\n\t\t/** Makes regexp that greedy repeats this pattern from min to max count */\n\t\tstatic repeat_greedy<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\tmin = 0 ,\n\t\t\tmax = Number.POSITIVE_INFINITY ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\t\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\tconst upper = Number.isFinite( max ) ? max : ''\n\t\t\t\n\t\t\tconst str = `(?:${ regexp.source }){${ min },${ upper }}`\n\t\t\tconst regexp2 = new $mol_regexp( str , regexp.flags , regexp.groups )\n\t\t\t\n\t\t\tregexp2.generate = params => {\n\t\t\t\tconst res = regexp.generate( params )\n\t\t\t\tif( res ) return res\n\t\t\t\tif( min > 0 ) return res\n\t\t\t\treturn ''\n\t\t\t}\n\t\n\t\t\treturn regexp2\n\t\t}\n\n\t\t/** Makes regexp that match any of options */\n\t\tstatic vary<\n\t\t\tSources extends readonly $mol_regexp_source[]\n\t\t>(\n\t\t\tsources : Sources ,\n\t\t) {\n\t\t\t\n\t\t\tconst groups = [] as string[]\n\t\t\t\n\t\t\tconst chunks = sources.map( source => {\n\n\t\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\n\t\t\t\treturn regexp.source\n\n\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\t\t\t\n\t\t\treturn new $mol_regexp< $mol_regexp_groups< Sources[number] > >(\n\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t'' ,\n\t\t\t\tgroups as any[] ,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t/** Makes regexp that allow absent of this pattern */\n\t\tstatic optional<\n\t\t\tSource extends $mol_regexp_source\n\t\t>( source : Source ) {\n\t\t\treturn $mol_regexp.repeat_greedy( source , 0 , 1 )\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic force_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?=${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Makes regexp that look ahead for pattern */\n\t\tstatic forbid_after( source : $mol_regexp_source ) {\n\n\t\t\tconst regexp = $mol_regexp.from( source )\n\t\t\t\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`(?!${ regexp.source })` ,\n\t\t\t\tregexp.flags ,\n\t\t\t\tregexp.groups ,\n\t\t\t)\n\n\t\t}\n\n\t\t/** Converts some js values to regexp */\n\t\tstatic from<\n\t\t\tSource extends $mol_regexp_source\n\t\t>(\n\t\t\tsource : Source ,\n\t\t\t{ ignoreCase , multiline } : Partial< Pick< RegExp , 'ignoreCase' | 'multiline' > > = {\n\t\t\t\tignoreCase : false ,\n\t\t\t\tmultiline : false ,\n\t\t\t} ,\n\t\t) : $mol_regexp< $mol_regexp_groups< Source > > {\n\n\t\t\tlet flags = 'gsu'\n\t\t\tif( multiline ) flags += 'm'\n\t\t\tif( ignoreCase ) flags += 'i'\n\n\t\t\tif( typeof source === 'number' ) {\n\n\t\t\t\tconst src = `\\\\u{${ source.toString(16) }}`\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> src\n\t\t\t\treturn regexp\n\n\t\t\t} if( typeof source === 'string' ) {\n\n\t\t\t\tconst src = source.replace( /[.*+?^${}()|[\\]\\\\]/g , '\\\\$&' ) \n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >( src , flags )\n\t\t\t\tregexp.generate = ()=> source\n\t\t\t\treturn regexp\n\n\t\t\t} else if( source instanceof $mol_regexp ) {\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp<any>( source.source, flags, source.groups )\n\t\t\t\tregexp.generate = params => source.generate( params )\n\t\t\t\treturn regexp\n\t\t\t\t\n\t\t\t} if( source instanceof RegExp ) {\n\n\n\t\t\t\tconst test = new RegExp( '|' + source.source )\n\t\t\t\tconst groups = Array.from(\n\t\t\t\t\t{ length : test.exec('')!.length - 1 } ,\n\t\t\t\t\t( _ , i )=> String( i + 1 ) ,\n\t\t\t\t)\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\tsource.source ,\n\t\t\t\t\tsource.flags ,\n\t\t\t\t\tgroups as any ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tregexp.generate = ()=> ''\n\n\t\t\t\treturn regexp\n\n\t\t\t} if( Array.isArray( source ) ) {\n\n\t\t\t\tconst patterns = source.map( src => Array.isArray( src )\n\t\t\t\t\t? $mol_regexp.optional( src as any )\n\t\t\t\t\t: $mol_regexp.from( src )\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst chunks = patterns.map( pattern => pattern.source )\n\t\t\t\t\n\t\t\t\tconst groups = [] as ( Extract< keyof $mol_regexp_groups< Source > , string > )[]\n\n\t\t\t\tlet index = 0\n\t\t\n\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\n\t\t\t\t\tfor( let group of pattern.groups ) {\n\t\t\t\t\t\tif( Number( group ) >= 0 ) {\n\t\t\t\t\t\t\tgroups.push( String( index ++ ) as any )\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tgroups.push( group )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst regexp = new $mol_regexp( chunks.join( '' ) , flags , groups )\n\t\t\t\t\n\t\t\t\tregexp.generate = params => {\n\t\t\t\t\tlet res = ''\n\t\t\t\t\tfor( const pattern of patterns ) {\n\t\t\t\t\t\tlet sub = pattern.generate( params )\n\t\t\t\t\t\tif( sub === null ) return ''\n\t\t\t\t\t\tres += sub\n\t\t\t\t\t}\n\t\t\t\t\treturn res\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\t\t\n\t\t\t} else {\n\n\t\t\t\tconst groups = [] as string[]\n\n\t\t\t\tconst chunks = Object.keys( source ).map( name => {\n\n\t\t\t\t\tgroups.push( name )\n\n\t\t\t\t\tconst regexp = $mol_regexp.from( (source as any)[ name ] )\n\t\t\t\t\tgroups.push( ... regexp.groups )\n\t\t\t\t\t\n\t\t\t\t\treturn `(${regexp.source})`\n\n\t\t\t\t} ) as any as readonly[ $mol_regexp_source , ... $mol_regexp_source[] ]\n\n\t\t\t\tconst regexp = new $mol_regexp< $mol_regexp_groups< Source > >(\n\t\t\t\t\t`(?:${ chunks.join('|') })` ,\n\t\t\t\t\tflags ,\n\t\t\t\t\tgroups as any[] ,\n\t\t\t\t)\n\t\t\t\t\n\t\t\t\tconst validator = new RegExp( '^' + regexp.source + '$', flags )\n\t\t\t\tregexp.generate = (params: any) => {\n\t\t\t\t\t\n\t\t\t\t\tfor( let option in source ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( option in params ) {\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tif( typeof params[ option ] === 'boolean' ) {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( !params[ option as any ] ) continue\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tconst str = String( params[ option ] )\n\t\t\t\t\t\t\t\tif( str.match( validator ) ) return str\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t$mol_fail( new Error( `Wrong param: ${option}=${str}` ) )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif( typeof (source as any)[ option ] !== 'object' ) continue\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst res = $mol_regexp.from( (source as any)[ option ] ).generate( params )\n\t\t\t\t\t\tif( res ) return res\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn regexp\n\n\t\t\t}\n\t\n\t\t}\n\n\t\t/** Makes regexp which includes only unicode category */\n\t\tstatic unicode_only( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\p{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\t/** Makes regexp which excludes unicode category */\n\t\tstatic unicode_except( ... category: $mol_unicode_category ) {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`\\\\P{${ category.join( '=' ) }}`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_range(\n\t\t\tfrom: number,\n\t\t\tto: number,\n\t\t): $mol_regexp<{}> {\n\t\t\treturn new $mol_regexp(\n\t\t\t\t`${ $mol_regexp.from( from ).source }-${ $mol_regexp.from( to ).source }`\n\t\t\t)\n\t\t}\n\n\t\tstatic char_only(\n\t\t\t... allowed: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = allowed.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[${ regexp }]` )\n\t\t}\n\n\t\tstatic char_except(\n\t\t\t... forbidden: readonly [ $mol_regexp_source, ... $mol_regexp_source[] ]\n\t\t): $mol_regexp<{}> {\n\t\t\tconst regexp = forbidden.map( f => $mol_regexp.from( f ).source ).join('')\n\t\t\treturn new $mol_regexp( `[^${ regexp }]` )\n\t\t}\n\t\t\n\t\tstatic decimal_only = $mol_regexp.from( /\\d/gsu )\n\t\tstatic decimal_except = $mol_regexp.from( /\\D/gsu )\n\t\t\n\t\tstatic latin_only = $mol_regexp.from( /\\w/gsu )\n\t\tstatic latin_except = $mol_regexp.from( /\\W/gsu )\n\t\t\n\t\tstatic space_only = $mol_regexp.from( /\\s/gsu )\n\t\tstatic space_except = $mol_regexp.from( /\\S/gsu )\n\t\t\n\t\tstatic word_break_only = $mol_regexp.from( /\\b/gsu )\n\t\tstatic word_break_except = $mol_regexp.from( /\\B/gsu )\n\t\t\n\t\tstatic tab = $mol_regexp.from( /\\t/gsu )\n\t\tstatic slash_back = $mol_regexp.from( /\\\\/gsu )\n\t\tstatic nul = $mol_regexp.from( /\\0/gsu )\n\t\t\n\t\tstatic char_any = $mol_regexp.from( /./gsu )\n\t\tstatic begin = $mol_regexp.from( /^/gsu )\n\t\tstatic end = $mol_regexp.from( /$/gsu )\n\t\tstatic or = $mol_regexp.from( /|/gsu )\n\t\t\n\t\tstatic line_end = $mol_regexp.from({\n\t\t\twin_end: [ [ '\\r' ], '\\n' ],\n\t\t\tmac_end: '\\r',\n\t\t})\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\tconst { begin, end, latin_only, or, optional, repeat_greedy } = $mol_regexp\n\n\texport let $mol_view_tree2_prop_signature = $mol_regexp.from([\n\t\tbegin,\n\t\t{ name: repeat_greedy( latin_only, 1 ) },\n\t\t{ key: optional([ '*', repeat_greedy( latin_only, 0 ) ]) },\n\t\t{ next: optional([ '?', repeat_greedy( latin_only, 0 ) ]) },\n\t\tend,\n\t])\n\t\n}\n","namespace $ {\n\texport function $mol_view_tree2_prop_parts(this: $, prop: $mol_tree2 ) {\n\t\tconst groups = [ ...prop.type.matchAll( $mol_view_tree2_prop_signature ) ][0]?.groups\n\n\t\tif (! groups) {\n\t\t\tthis.$mol_fail(\n\t\t\t\t$mol_view_tree2_error_str`Required prop like some*? at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn {\n\t\t\tname: groups.name,\n\t\t\tkey: groups.key,\n\t\t\tnext: groups.next ? '?' : ''\n\t\t}\n\t}\n}\n","namespace $ {\n\tconst regular_regex = /^\\w+$/\n\n\texport function $mol_view_tree2_prop_quote(name: $mol_tree2) {\n\t\tif (regular_regex.test(name.value)) return name\n\n\t\treturn name.data(JSON.stringify(name.value))\n\t}\n}\n","namespace $ {\n\tconst class_regex = /^[$A-Z][$\\w<>\\[\\]()\"'?|]+$/\n\n\texport function $mol_view_tree2_class_match(klass?: $mol_tree2) {\n\t\tif (! klass?.type) return false\n\t\tif (klass.type === 'NaN' || klass.type === 'Infinity') return false\n\n\t\treturn class_regex.test(klass.type)\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\texport function $mol_view_tree2_class_super(\n\t\tthis: $,\n\t\tklass: $mol_tree2\n\t) {\n\t\tif( ! $mol_view_tree2_class_match( klass ) ) return this.$mol_fail(\n\t\t\terr `Wrong class name at ${klass.span}` \n\t\t)\n\n\t\tconst superclass = klass.kids.length === 1 ? klass.kids[0] : undefined\n\n\t\tif (! superclass) return this.$mol_fail(\n\t\t\terr`No super class at ${klass.span}`\n\t\t)\n\n\t\tif( ! $mol_view_tree2_class_match( superclass ) ) return this.$mol_fail(\n\t\t\terr`Wrong super class name ${JSON.stringify(superclass.type).replace(/(^\"|\"$)/g, \"\")} at ${superclass.span}`\n\t\t)\n\n\t\treturn superclass\n\t}\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\ttype Context = { factory?: $mol_tree2 }\n\n\texport function $mol_view_tree2_class_props(\n\t\tthis: $,\n\t\tklass : $mol_tree2,\n\t) {\n\t\tlet props = this.$mol_view_tree2_class_super( klass )\n\t\t\n\t\t// ! syntax to *\n\t\tprops = props.clone(\n\t\t\tprops.hack({\n\t\t\t\t'': ( node, belt )=> {\n\t\t\t\t\tconst normal = node.type.replace( /!\\w+/, '*' )\n\t\t\t\t\tif( node.type === normal ) return [ node.clone( node.hack( belt ) ) ]\n\t\t\t\t\treturn [ node.struct( normal, node.hack( belt ) ) ]\n\t\t\t\t}\n\t\t\t})\n\t\t)\n\n\t\tconst props_inner = {} as Record<string, $mol_tree2>\n\n\t\tconst add_inner = ( prop: $mol_tree2 ) => {\n\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\t\t\tconst prev = props_inner[name]\n\t\t\tif (prev && prev.kids[0]?.toString() !== prop.kids[0]?.toString()) {\n\t\t\t\tthis.$mol_fail(err`Need an equal default values at ${prev.span} vs ${prop.span}`)\n\t\t\t}\n\t\t\tprops_inner[name] = prop\n\t\t}\n\n\t\tconst upper = (operator: $mol_tree2, belt: $mol_tree2_belt<Context>, context: Context) => {\n\t\t\tconst prop = this.$mol_view_tree2_child( operator )\n\t\t\tconst defs = prop.hack( belt, { factory: prop } )\n\t\t\tif( defs.length ) add_inner( prop.clone( defs ) )\n\n\t\t\treturn [ operator.clone([ prop.clone([]) ]) ]\n\t\t}\n\n\t\tconst props_root = props.hack({\n\t\t\t'<=': upper,\n\n\t\t\t'<=>': upper,\n\n\t\t\t'^': ( operator, belt, context) => {\n\t\t\t\tif (operator.kids.length === 0) return [ operator ]\n\t\t\t\treturn upper(operator, belt, context)\n\t\t\t},\n\n\t\t\t'': (left, belt, context) => {\n\t\t\t\tlet right\n\t\t\t\tconst operator = left.kids[0]\n\n\t\t\t\tif (operator?.type === '=>' && context.factory) {\n\t\t\t\t\tright = operator.kids[0]\n\t\t\t\t\tif (! right) this.$mol_fail(err`Need a child ${operator.span}`)\n\t\t\t\t\tif (! context.factory) this.$mol_fail(err`Need a parent ${left.span}`)\n\n\t\t\t\t\tadd_inner(right.clone([\n\t\t\t\t\t\tright.struct('=', [\n\t\t\t\t\t\t\tcontext.factory.struct(\n\t\t\t\t\t\t\tcontext.factory.type.replace( /\\*.*/, '*' ),\n\t\t\t\t\t\t\t\t[ left.clone([]) ],\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t]),\n\t\t\t\t\t]))\n\t\t\t\t}\n\n\t\t\t\tif (right) context = { factory: right.clone([]) }\n\t\t\t\telse if( operator && ! context.factory && $mol_view_tree2_class_match( operator ) ) {\n\t\t\t\t\tcontext = { factory: left.clone([]) }\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst hacked = left.clone( left.hack( belt, context ) )\n\n\t\t\t\treturn [ hacked ]\n\t\t\t}\n\n\t\t}, { factory: undefined } as Context)\n\n\t\tfor (const prop of props_root ) add_inner(prop)\n\t\t\n\t\treturn Object.values(props_inner)\n\t}\n\n}\n","namespace $ {\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2) {\n\t\tconst name = prop.type\n\t\t\t? this.$mol_view_tree2_prop_parts(prop).name\n\t\t\t: prop.value\n\n\t\tif (! name) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Required valid prop name at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.data(name)\n\t}\n\t\n\tfunction channel_signature( this: $, prop: $mol_tree2, ... val: $mol_tree2[] ) {\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tif (next && ! val[0]?.value ) {\n\t\t\tthis.$mol_fail(\n\t\t\t\terr`Type empty for next value at ${prop.span}`\n\t\t\t)\n\t\t}\n\n\t\treturn prop.struct( 'line', [\n\t\t\tprop.data(name),\n\t\t\tprop.data('( '),\n\t\t\t... key ? [\n\t\t\t\tprop.data('id'),\n\t\t\t\tprop.data( ': any' + ( next ? ', ' : '' ) ),\n\t\t\t] : [],\n\t\t\t... next ? [\n\t\t\t\tprop.data('next'),\n\t\t\t\tprop.data( '?: ' ),\n\t\t\t\t... val,\n\t\t\t\tprop.data(' '),\n\t\t\t] : [],\n\t\t\tprop.data(')'),\n\t\t] )\n\t\t\n\t}\n\n\tfunction return_type(this: $, klass: $mol_tree2, input: $mol_tree2) {\n\t\treturn [\n\t\t\tinput.data( 'ReturnType< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( '\\'] >' ),\n\t\t]\n\t}\n\n\tfunction parameters(this: $, klass: $mol_tree2, input: $mol_tree2, pick_index?: number) {\n\t\tconst result = [\n\t\t\tinput.data( 'Parameters< ' ),\n\t\t\tklass,\n\t\t\tinput.data( '[\\'' ),\n\t\t\tname_of.call(this, input ),\n\t\t\tinput.data( `'] >`),\n\t\t]\n\n\t\tif (pick_index !== undefined) {\n\t\t\tresult.push(input.data(`[${pick_index}]`))\n\t\t}\n\n\t\treturn result\n\t}\n\n\tfunction primitive_type(input: $mol_tree2) {\n\t\tlet type = 'string'\n\t\tif (input.type && $mol_tree2_js_is_number(input.type)) type = 'number'\n\n\t\tif (input.type === 'true' || input.type === 'false') type = 'boolean'\n\n\t\treturn input.data(type)\n\t}\n\n\tfunction readonly_arr(input: $mol_tree2, infered: readonly $mol_tree2[]) {\n\t\treturn [\n\t\t\tinput.data('readonly('),\n\t\t\tinfered.length === 1 ? infered[0] : input.struct( 'indent', infered),\n\t\t\tinput.data(')[]'),\n\t\t]\n\t}\n\n\tfunction type_enforce(this: $, name: $mol_tree2, a: readonly $mol_tree2[], b: readonly $mol_tree2[]) {\n\t\treturn name.struct('line', [\n\t\t\tname.data(`type ${ name.value.replace(/<.*>/g, '') } = $mol_type_enforce<` ),\n\t\t\tname.struct( 'indent', [\n\t\t\t\ta[0].struct('line', a),\n\t\t\t\ta[0].data(','),\n\t\t\t\tb[0].struct('line', b),\n\t\t\t]),\n\t\t\tname.data( '>' ),\n\t\t])\n\t}\n\n\texport function $mol_view_tree2_to_dts(this: $, tree: $mol_tree2) {\n\t\t\n\t\tconst descr = $mol_view_tree2_classes( tree )\n\t\t\n\t\tconst types = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\t\t\t\n\t\t\tlet assert_count = 0\n\t\t\tconst parent = this.$mol_view_tree2_child(klass)\n\t\t\tconst props = this.$mol_view_tree2_class_props(klass)\n\t\t\tconst aliases = [] as $mol_tree2[]\n\t\t\tconst context = { objects: [] as $mol_tree2[] }\n\t\t\tconst klass_name = klass.type.slice(1)\n\t\t\ttypes.push(\n\t\t\t\tklass.struct( 'line', [\n\t\t\t\t\tklass.data( 'export class ' ),\n\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\tparent.data( ' extends ' ),\n\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\tklass.data( ' {' ),\n\t\t\t\t] ),\n\t\t\t\t... props.map( prop => {\n\t\t\t\t\t\n\t\t\t\t\tconst val = prop.hack({\n\t\t\t\t\t\t\n\t\t\t\t\t\t'null': val => {\n\t\t\t\t\t\t\tconst kid = val.kids[0]\n\n\t\t\t\t\t\t\treturn kid?.type\n\t\t\t\t\t\t\t\t? [ kid.data(kid.type), val.data( ' | null' ) ]\n\t\t\t\t\t\t\t\t: [ val.data( 'any' ) ]\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t\t'true': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t'false': val => [ val.data( 'boolean' ) ],\n\t\t\t\t\t\t\n\t\t\t\t\t\t'@': ( locale, belt )=> locale.hack( belt ),\n\t\t\t\t\t\t\n\t\t\t\t\t\t'<=>': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'<=': (input) => return_type.call(this, klass.data( klass.type ), this.$mol_view_tree2_child(input)),\n\t\t\t\t\t\t'=>': () => [],\n\n\t\t\t\t\t\t'^': (input) => {\n\t\t\t\t\t\t\tconst host = input.kids.length ? klass : parent\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\thost.data(host.type),\n\t\t\t\t\t\t\t\tinput.kids.length ? input.kids[0] : prop\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'=': (input) => {\n\t\t\t\t\t\t\tconst left = input.kids[0]\n\t\t\t\t\t\t\tconst right = left.kids[0]\n\n\t\t\t\t\t\t\tconst left_parts = this.$mol_view_tree2_prop_parts(left)\n\t\t\t\t\t\t\tconst right_parts = this.$mol_view_tree2_prop_parts(right)\n\n\t\t\t\t\t\t\tlet conflict: 'next' | 'key' | undefined\n\n\t\t\t\t\t\t\t// if (left_parts.next && right_parts.next) conflict = 'next'\n\t\t\t\t\t\t\tif (left_parts.key && right_parts.key) conflict = 'key'\n\n\t\t\t\t\t\t\tif (conflict) {\n\t\t\t\t\t\t\t\tthis.$mol_fail(err`Only one \"${conflict}\" allowed: ${\n\t\t\t\t\t\t\t\t\tleft_parts[conflict]} at ${left.span} or ${\n\t\t\t\t\t\t\t\t\t\tright_parts[conflict]} at ${right.span}`)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst main = klass.data(klass.type)\n\t\t\t\t\t\t\tconst prop_parts = this.$mol_view_tree2_prop_parts(prop)\n\t\t\t\t\t\t\tconst method = prop.data(`${ klass.type }_${prop_parts.name}`)\n\t\t\t\t\t\t\tconst second_main = left_parts.key || left_parts.next ? main : left.struct('line',\n\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\tconst second_key = left_parts.next || left_parts.key ? left : right\n\n\t\t\t\t\t\t\tif (prop_parts.key) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (prop_parts.next) {\n\t\t\t\t\t\t\t\ttypes.push( type_enforce.call(\n\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\tmethod.data(`${method.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\tparameters.call(this, main, prop, prop_parts.key ? 1 : 0),\n\t\t\t\t\t\t\t\t\tparameters.call(this, second_main, second_key, (left_parts.next ? left_parts : right_parts).key ? 1 : 0),\n\t\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn return_type.call(\n\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\tleft.struct('line',\n\t\t\t\t\t\t\t\t\treturn_type.call(this, main, left)\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\tname_of.call(this, right),\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\t\t\t\tif (input.type[0] === '*') {\n\t\t\t\t\t\t\t\tlet unions = [] as $mol_tree2[]\n\n\t\t\t\t\t\t\t\tconst hacked = ( [] as readonly $mol_tree2[] ).concat(\n\t\t\t\t\t\t\t\t\t... input.kids.map( kid => {\n\t\t\t\t\t\t\t\t\t\tif (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t\tunions = unions.concat(kid.data(' & '), kid.hack_self(belt, context))\n\t\t\t\t\t\t\t\t\t\t\treturn []\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tconst child = this.$mol_view_tree2_child(kid)\n\t\t\t\t\t\t\t\t\t\tconst ret = child.hack_self( belt )\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct( 'line', kid.type.match(/(?:\\*|\\?)/)\n\t\t\t\t\t\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t\t\t\t\tchannel_signature.call(this, kid, ...ret),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data(': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t: [\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\''),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( kid.type || kid.value ),\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data('\\': '),\n\t\t\t\t\t\t\t\t\t\t\t\t...ret,\n\t\t\t\t\t\t\t\t\t\t\t\tkid.data( ',' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t)\n\n\t\t\t\t\t\t\t\tif (input.type.length > 1 || ! hacked.length) {\n\t\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\t\tinput.data('Record<string, '),\n\t\t\t\t\t\t\t\t\t\tinput.data(input.type.slice(1) || 'any'),\n\t\t\t\t\t\t\t\t\t\tinput.data('>'),\n\t\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data('({ '),\n\t\t\t\t\t\t\t\t\tinput.struct( 'indent', hacked),\n\t\t\t\t\t\t\t\t\tinput.data('}) '),\n\t\t\t\t\t\t\t\t\t... unions\n\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( input.type[0] === '/' ) {\n\t\t\t\t\t\t\t\tconst array_type = [\n\t\t\t\t\t\t\t\t\tinput.type.length > 1\n\t\t\t\t\t\t\t\t\t\t? input.data(input.type.slice(1))\n\t\t\t\t\t\t\t\t\t\t: input.data('any')\n\t\t\t\t\t\t\t\t\t]\n\n\t\t\t\t\t\t\t\tif (array_type[0].value === 'any') {\n\t\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfor (const kid of input.kids) {\n\t\t\t\t\t\t\t\t\tlet result = kid.hack_self(belt, context) as $mol_tree2[]\n\n\t\t\t\t\t\t\t\t\tconst val = result[0].value\n\n\t\t\t\t\t\t\t\t\tif (val === 'string') {\n\t\t\t\t\t\t\t\t\t\tresult = kid.value.includes('`')\n\t\t\t\t\t\t\t\t\t\t\t? [ kid.data(JSON.stringify(kid.value))]\n\t\t\t\t\t\t\t\t\t\t\t: [ kid.data('`'), kid , kid.data('`') ]\n\t\t\t\t\t\t\t\t\t} else if (val === 'boolean') result = [ kid.data(kid.type) ]\n\t\t\t\t\t\t\t\t\telse if (kid.type[0] === '^') {\n\t\t\t\t\t\t\t\t\t\t result.push((kid.kids[0] ?? prop).data('[number]'))\n\t\t\t\t\t\t\t\t\t} else continue\n\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tinput.data(`${ klass.type }_${prop.type.replace(/[\\?\\*]*/g, '')}__${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tresult,\n\t\t\t\t\t\t\t\t\t\t\tarray_type\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\treturn readonly_arr(input, array_type)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\t\t\t\tconst first = input.kids[0]\n\t\t\t\t\t\t\t\tif( first?.type[0] === '/' ) {\n\n\t\t\t\t\t\t\t\t\tconst args = first.kids.map( (kid, index) => {\n\t\t\t\t\t\t\t\t\t\tconst result = kid.hack_self(belt, context) as $mol_tree2[]\n\t\t\t\t\t\t\t\t\t\tif (index !== 0) result.unshift(kid.data(', '))\n\n\t\t\t\t\t\t\t\t\t\treturn kid.struct('line', result)\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tfirst.data(`${input.type}__${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data('[ '),\n\t\t\t\t\t\t\t\t\t\t\t\t...args,\n\t\t\t\t\t\t\t\t\t\t\t\tfirst.data( ' ]' ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t\t[\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( `ConstructorParameters< typeof `),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(input.type),\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data(` >`),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t} else for( const over of input.kids ) {\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tconst name = name_of.call(this, over )\n\t\t\t\t\t\t\t\t\tconst bind = this.$mol_view_tree2_child(over)\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\ttypes.push(\n\t\t\t\t\t\t\t\t\t\ttype_enforce.call(\n\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\tover.data(`${ input.type }__${ name.value }_${klass_name}_${++assert_count}`),\n\t\t\t\t\t\t\t\t\t\t\tover.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t\treturn_type.call(\n\t\t\t\t\t\t\t\t\t\t\t\tthis,\n\t\t\t\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t\t\t\t\tover,\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\t\tinput.data( input.type ),\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t\tprimitive_type(input)\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t},\n\t\t\t\t\t\t\n\t\t\t\t\t}, context)\n\t\n\t\t\t\t\treturn prop.struct( 'indent', [\n\t\t\t\t\t\tprop.struct( 'line', [\n\t\t\t\t\t\t\tchannel_signature.call(this, prop, ... val ), // Parameter, not Return\n\t\t\t\t\t\t\tprop.data(': '),\n\t\t\t\t\t\t\t... val,\n\t\t\t\t\t\t] )\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t} ).filter($mol_guard_defined),\n\t\t\t\t... aliases,\n\t\t\t\tklass.data( '}' ),\n\t\t\t\tdescr.data(''),\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.data( 'declare namespace $ {' ),\n\t\t\tdescr.data( '' ),\n\t\t\tdescr.struct( 'indent', types ),\n\t\t\tdescr.data( '}' ),\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport namespace $$ { let $ }\n\n\texport const $mol_object_field = Symbol( '$mol_object_field' )\n\t\n\texport class $mol_object extends $mol_object2 {\n\t\t\n\t\tpublic static make< This extends typeof $mol_object >(\n\t\t\tthis: This,\n\t\t\tconfig: Partial< InstanceType< This > >,\n\t\t) {\n\t\t\treturn super.create( obj => {\n\t\t\t\tfor( let key in config ) ( obj as any )[ key ] = config[ key ]!\n\t\t\t} ) as InstanceType< This >\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\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\t/** Special status statuses. */\n\texport enum $mol_wire_cursor {\n\t\t\n\t\t/** Update required. */\n\t\tstale = -1,\n\t\t\n\t\t/** Some of (transitive) pub update required. */\n\t\tdoubt = -2,\n\t\t\n\t\t/** Actual state but may be dropped. */\n\t\tfresh = -3,\n\t\t\n\t\t/** State will never be changed. */\n\t\tfinal = -4,\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Collects subscribers in compact array. 28B\n\t */\n\texport class $mol_wire_pub extends Object {\n\t\t\n\t\tconstructor( id = `$mol_wire_pub:${ $mol_guid() }` ) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = id\n\t\t}\n\t\t\n\t\t[ Symbol.toStringTag ]!: string\n\t\tdata = [] as unknown[]\n\t\t\n\t\t// Derived objects should be Arrays.\n\t\tstatic get [ Symbol.species ]() {\n\t\t\treturn Array\n\t\t}\n\t\t\n\t\t/**\n\t\t * Index of first subscriber.\n\t\t */\n\t\tprotected sub_from = 0 // 4B\n\t\t\n\t\t/**\n\t\t * All current subscribers.\n\t\t */\n\t\tget sub_list() {\n\t\t\tconst res = [] as $mol_wire_sub[]\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\tres.push( this.data[i] as $mol_wire_sub )\n\t\t\t}\n\t\t\treturn res as readonly $mol_wire_sub[]\n\t\t}\n\t\t\n\t\t/**\n\t\t * Has any subscribers or not.\n\t\t */\n\t\tget sub_empty() {\n\t\t\treturn this.sub_from === this.data.length\n\t\t}\n\t\t\n\t\t/**\n\t\t * Subscribe subscriber to this publisher events and return position of subscriber that required to unsubscribe.\n\t\t */\n\t\tsub_on( sub: $mol_wire_pub, pub_pos: number ) {\n\t\t\tconst pos = this.data.length\n\t\t\tthis.data.push( sub, pub_pos )\n\t\t\treturn pos\n\t\t}\n\t\t\n\t\t/**\n\t\t * Unsubscribe subscriber from this publisher events by subscriber position provided by `on(pub)`.\n\t\t */\n\t\tsub_off( sub_pos: number ) {\n\t\t\t\n\t\t\tif(!( sub_pos < this.data.length )) {\n\t\t\t\t$mol_fail( new Error( `Wrong pos ${ sub_pos }` ) )\n\t\t\t}\n\t\t\t\n\t\t\tconst end = this.data.length - 2\n\t\t\tif( sub_pos !== end ) {\n\t\t\t\tthis.peer_move( end, sub_pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tif( end === this.sub_from ) this.reap()\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Called when last sub was unsubscribed.\n\t\t **/\n\t\treap() { }\n\t\t\n\t\t/**\n\t\t * Autowire this publisher with current subscriber.\n\t\t **/\n\t\tpromote() {\n\t\t\t$mol_wire_auto()?.track_next( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Enforce actualization. Should not throw errors.\n\t\t */\n\t\tfresh() {}\n\t\t\n\t\t/**\n\t\t * Allow to put data to caches in the subtree.\n\t\t */\n\t\tcomplete() {}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\t/**\n\t\t * Notify subscribers about self changes.\n\t\t */\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tfor( let i = this.sub_from; i < this.data.length; i += 2 ) {\n\t\t\t\t;( this.data[i] as $mol_wire_sub ).absorb( quant, this.data[ i + 1 ] as number )\n\t\t\t}\n\t\t}\n\t\t\n\t\t/**\n\t\t * Moves peer from one position to another. Doesn't clear data at old position!\n\t\t */\n\t\tpeer_move( from_pos: number, to_pos: number ) {\n\t\t\t\n\t\t\tconst peer = this.data[ from_pos ] as $mol_wire_pub\n\t\t\tconst self_pos = this.data[ from_pos + 1 ] as number\n\t\t\t\n\t\t\tthis.data[ to_pos ] = peer\n\t\t\tthis.data[ to_pos + 1 ] = self_pos\n\t\t\t\n\t\t\tpeer.peer_repos( self_pos, to_pos )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Updates self position in the peer.\n\t\t */\n\t\tpeer_repos( peer_pos: number, self_pos: number ) {\n\t\t\tthis.data[ peer_pos + 1 ] = self_pos\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport let $mol_wire_auto_sub: $mol_wire_sub | null = null\n\t\n\t/**\n\t * When fulfilled, all publishers are promoted to this subscriber on access to its.\n\t */\n\texport function $mol_wire_auto( next = $mol_wire_auto_sub ) {\n\t\treturn $mol_wire_auto_sub = next\n\t}\n\t\n\t/**\n\t * Affection queue. Used to prevent accidental stack overflow on emit.\n\t */\n\texport const $mol_wire_affected = [] as ( $mol_wire_sub | number )[]\n\t\n}\n","namespace $ {\n\n\t// https://docs.google.com/document/d/1FTascZXT9cxfetuPRT2eXPQKXui4nWFivUnS_335T3U/preview#\n\t($ as any)['devtoolsFormatters'] ||= []\n\n\texport function $mol_dev_format_register( config : {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> false\n\t} | {\n\t\theader : ( val : any , config : any )=> any\n\t\thasBody : ( val : any , config : any )=> boolean\n\t\tbody : ( val : any , config : any )=> any\n\t} ) {\n\t\t($ as any)['devtoolsFormatters'].push( config )\n\t}\n\n\texport const $mol_dev_format_head = Symbol( '$mol_dev_format_head' )\n\texport const $mol_dev_format_body = Symbol( '$mol_dev_format_body' )\n\t\n\tfunction $mol_dev_format_button( label: any, click: ()=> any ) {\n\t\treturn $mol_dev_format_auto( {\n\t\t\t[ $mol_dev_format_head ]() {\n\t\t\t\treturn $mol_dev_format_span( { color: 'cornflowerblue' }, label )\n\t\t\t},\n\t\t\t[ $mol_dev_format_body ]() {\n\t\t\t\tPromise.resolve().then( click )\n\t\t\t\treturn $mol_dev_format_span({})\n\t\t\t}\n\t\t} )\n\t}\n\n\t$mol_dev_format_register({\n\n\t\theader : ( val : any , config = false ) => {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_head in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_head ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tif( typeof val === 'function' ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Error ) {\n\t\t\t\t\n\t\t\t\treturn $mol_dev_format_span( {},\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\t$mol_dev_format_button( 'throw', ()=> $mol_fail_hidden( val ) ),\n\t\t\t\t)\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( val instanceof Promise ) {\n\t\t\t\treturn $mol_dev_format_shade(\n\t\t\t\t\t$mol_dev_format_native( val ),\n\t\t\t\t\t' ',\n\t\t\t\t\tval[ Symbol.toStringTag ] ?? '',\n\t\t\t\t)\n\t\t\t}\n\t\t\t\n\t\t\tif( Symbol.toStringTag in val ) {\n\t\t\t\treturn $mol_dev_format_native( val )\n\t\t\t}\n\t\t\t\n\t\t\treturn null\n\t\t\t\n\t\t} ,\n\t\t\n\t\thasBody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return false\n\t\t\tif( !val ) return false\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) true\n\t\t\tif( val[ $mol_dev_format_body ] ) return true\n\t\t\t\n\t\t\treturn false\n\t\t},\n\n\t\tbody : ( val: any , config = false )=> {\n\t\t\t\n\t\t\tif( config ) return null\n\n\t\t\tif( !val ) return null\n\t\t\t\n\t\t\tif( $mol_dev_format_body in val ) {\n\t\t\t\ttry {\n\t\t\t\t\treturn val[ $mol_dev_format_body ]()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\treturn $mol_dev_format_accent( $mol_dev_format_native( val ), '💨', $mol_dev_format_native( error ), '' )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// if( Error.isError( val ) ) {\n\t\t\t// \treturn $mol_dev_format_native( val )\n\t\t\t// }\n\t\t\t\n\t\t\treturn null\n\t\t},\n\n\t})\n\n\texport function $mol_dev_format_native( obj : any ) {\n\t\t\n\t\tif( typeof obj === 'undefined' ) return $mol_dev_format_shade( 'undefined' )\n\t\t\n\t\t// if( ![ 'object', 'function', 'symbol' ].includes( typeof obj ) ) return obj\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : true ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_auto( obj : any ) {\n\t\t\n\t\tif( obj == null ) return $mol_dev_format_shade( String( obj ) )\n\n\t\treturn [\n\t\t\t'object' ,\n\t\t\t{\n\t\t\t\tobject : obj ,\n\t\t\t\tconfig : false ,\n\t\t\t} ,\n\t\t]\n\n\t}\n\n\texport function $mol_dev_format_element( element : string , style : object , ...content : any[] ) {\n\t\t\t\n\t\tconst styles = [] as string[]\n\t\t\n\t\tfor( let key in style ) styles.push( `${ key } : ${ (style as any)[key] }` )\n\t\t\n\t\treturn [\n\t\t\telement ,\n\t\t\t{\n\t\t\t\tstyle : styles.join( ' ; ' ) ,\n\t\t\t} ,\n\t\t\t... content ,\n\t\t]\n\n\t}\n\n\texport let $mol_dev_format_span = $mol_dev_format_element.bind( null , 'span' )\n\texport let $mol_dev_format_div = $mol_dev_format_element.bind( null , 'div' )\n\texport let $mol_dev_format_ol = $mol_dev_format_element.bind( null , 'ol' )\n\texport let $mol_dev_format_li = $mol_dev_format_element.bind( null , 'li' )\n\texport let $mol_dev_format_table = $mol_dev_format_element.bind( null , 'table' )\n\texport let $mol_dev_format_tr = $mol_dev_format_element.bind( null , 'tr' )\n\texport let $mol_dev_format_td = $mol_dev_format_element.bind( null , 'td' )\n\n\texport let $mol_dev_format_accent = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'magenta' ,\n\t} )\n\n\texport let $mol_dev_format_strong = $mol_dev_format_span.bind( null , {\n\t\t'font-weight' : 'bold' ,\n\t} )\n\n\texport let $mol_dev_format_string = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'green',\n\t} )\n\n\texport let $mol_dev_format_shade = $mol_dev_format_span.bind( null , {\n\t\t'color' : 'gray',\n\t} )\n\n\texport let $mol_dev_format_indent = $mol_dev_format_div.bind( null , {\n\t\t'margin-left': '13px'\n\t} )\n\t\n\tclass Stack extends Array< Call > {\n\t\t\n\t\t// [ Symbol.toPrimitive ]() {\n\t\t// \treturn this.toString()\n\t\t// }\n\t\t\n\t\ttoString() {\n\t\t\treturn this.join( '\\n' )\n\t\t}\n\t\t\n\t}\n\t\n\tclass Call extends Object {\n\t\t\n\t\treadonly type: string\n\t\treadonly function: string\n\t\treadonly method: string\n\t\treadonly eval: string\n\t\treadonly source: string\n\t\treadonly offset: number\n\t\treadonly pos: [ number, number ]\n\t\treadonly object: unknown\n\t\treadonly flags: readonly string[]\n\t\t[ Symbol.toStringTag ]!: string\n\t\t\n\t\tconstructor( call: NodeJS.CallSite ) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tthis.type = call.getTypeName() ?? ''\n\t\t\tthis.function = call.getFunctionName() ?? ''\n\t\t\tthis.method = call.getMethodName() ?? ''\n\t\t\tif( this.method === this.function ) this.method = ''\n\t\t\t// const func = c.getFunction()\n\t\t\tthis.pos = [ call.getEnclosingLineNumber() ?? 0, call.getEnclosingColumnNumber() ?? 0 ]\n\t\t\tthis.eval = call.getEvalOrigin() ?? ''\n\t\t\tthis.source = call.getScriptNameOrSourceURL() ?? ''\n\t\t\tthis.object = call.getThis()\n\t\t\tthis.offset = call.getPosition()\n\t\t\t\n\t\t\tconst flags = []\n\t\t\tif( call.isAsync() ) flags.push( 'async' )\n\t\t\tif( call.isConstructor() ) flags.push( 'constructor' )\n\t\t\tif( call.isEval() ) flags.push( 'eval' )\n\t\t\tif( call.isNative() ) flags.push( 'native' )\n\t\t\tif( call.isPromiseAll() ) flags.push( 'PromiseAll' )\n\t\t\tif( call.isToplevel() ) flags.push( 'top' )\n\t\t\tthis.flags = flags\n\t\t\n\t\t\tconst type = this.type ? this.type + '.' : ''\n\t\t\tconst func = this.function || '<anon>'\n\t\t\tconst method = this.method ? ' [' + this.method + '] ' : ''\n\t\t\t\n\t\t\tthis[ Symbol.toStringTag ] = `${type}${func}${method}`\n\t\t}\n\t\t\n\t\t[ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\tconst object = this.object || ''\n\t\t\tconst label = this[ Symbol.toStringTag ]\n\t\t\tconst source = `${ this.source }:${ this.pos.join( ':' ) } #${ this.offset }`\n\t\t\treturn `\\tat ${object}${label} (${source})`\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_dev_format_native( this ),\n\t\t\t\t$mol_dev_format_shade( ' ' ),\n\t\t\t\t... this.object ? [\n\t\t\t\t\t$mol_dev_format_native( this.object ),\n\t\t\t\t] : [],\n\t\t\t\t... this.method ? [ $mol_dev_format_shade( ' ',\n\t\t\t\t\t' [',\n\t\t\t\t\tthis.method,\n\t\t\t\t\t']',\n\t\t\t\t) ] : [],\n\t\t\t\t$mol_dev_format_shade( ' ', this.flags.join( ', ' ) ),\n\t\t\t)\n\t\t}\n\n\t}\n\t\n\tError.prepareStackTrace ??= ( error: Error, stack: NodeJS.CallSite[] )=> new Stack( ... stack.map( call => new Call( call ) ) )\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Publisher that can auto collect other publishers. 32B\n\t * \n\t * \tP1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^\n\t * \tpubs_from subs_from\n\t */\n\texport class $mol_wire_pub_sub extends $mol_wire_pub implements $mol_wire_sub {\n\t\t\n\t\tprotected pub_from = 0 // 4B\n\t\tprotected cursor = $mol_wire_cursor.stale // 4B\n\t\t\n\t\tget temp() {\n\t\t\treturn false\n\t\t}\n\t\t\n\t\tget pub_list() {\n\t\t\tconst res = [] as $mol_wire_pub[]\n\t\t\tconst max = this.cursor >=0 ? this.cursor : this.sub_from\n\t\t\tfor( let i = this.pub_from; i < max; i += 2 ) {\n\t\t\t\tif( this.data[i] ) res.push( this.data[i] as $mol_wire_pub )\n\t\t\t}\n\t\t\treturn res\n\t\t}\n\t\t\n\t\ttrack_on() {\n\t\t\tthis.cursor = this.pub_from\n\t\t\tconst sub = $mol_wire_auto()\n\t\t\t$mol_wire_auto( this )\n\t\t\treturn sub\n\t\t}\n\t\t\n\t\tpromote() {\n\t\t\t\n\t\t\tif( this.cursor >= this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Circular subscription' ) )\n\t\t\t}\n\t\t\t\n\t\t\tsuper.promote()\n\t\t}\n\t\t\n\t\ttrack_next( pub?: $mol_wire_pub ): $mol_wire_pub | null {\n\t\t\t\n\t\t\tif( this.cursor < 0 ) $mol_fail( new Error( 'Promo to non begun sub' ) )\n\t\t\t\n\t\t\tif( this.cursor < this.sub_from ) {\n\t\t\t\n \t\t\t\tconst next = this.data[ this.cursor ] as $mol_wire_pub | undefined\n\t\t\t\tif( pub === undefined ) return next ?? null\n\t\t\t\t\n\t\t\t\tif( next === pub ) {\n\t\t\t\t\tthis.cursor += 2\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( next ) {\n\t\t\t\t\t\n\t\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tthis.peer_move( this.cursor, this.sub_from )\n\t\t\t\t\tthis.sub_from += 2\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tif( pub === undefined ) return null\n\t\t\t\t\n\t\t\t\tif( this.sub_from < this.data.length ) {\n\t\t\t\t\tthis.peer_move( this.sub_from, this.data.length )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.sub_from += 2\n\t\t\t\t\n\t\t\t}\t\t\t\n\t\t\t\n\t\t\tthis.data[ this.cursor ] = pub\n\t\t\tthis.data[ this.cursor + 1 ] = pub.sub_on( this, this.cursor )\n\t\t\t\n\t\t\tthis.cursor += 2\n\t\t\t\n\t\t\treturn pub\n\t\t}\n\t\t\n\t\ttrack_off( sub: $mol_wire_sub | null ) {\n\t\t\t\n\t\t\t$mol_wire_auto( sub )\n\t\t\t\n\t\t\tif( this.cursor < 0 ) {\n\t\t\t\t$mol_fail( new Error( 'End of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.cursor;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub.fresh()\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t}\n\t\t\n\t\tpub_off( sub_pos: number ) {\n\t\t\tthis.data[ sub_pos ] = undefined as any\n\t\t\tthis.data[ sub_pos + 1 ] = undefined as any \n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.data.length - 2;\n\t\t\t\tcursor >= this.sub_from;\n\t\t\t\tcursor -= 2\n\t\t\t) {\n\t\t\t\tconst sub = this.data[ cursor ] as $mol_wire_sub\n\t\t\t\tconst pos = this.data[ cursor + 1 ] as number\n\t\t\t\tsub.pub_off( pos )\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = this.sub_from \n\t\t\tthis.cursor = this.pub_from\n\t\t\tthis.track_cut()\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\t\n\t\t}\n\t\t\n\t\ttrack_cut() {\n\t\t\t\n\t\t\tif( this.cursor < this.pub_from ) {\n\t\t\t\t$mol_fail( new Error( 'Cut of non begun sub' ) )\n\t\t\t}\n\t\t\t\n\t\t\tlet end = this.data.length\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.cursor;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\t\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub | undefined\n\t\t\t\tpub?.sub_off( this.data[ cursor + 1 ] as number )\n\t\t\t\t\n\t\t\t\tend -= 2\n\t\t\t\tif( this.sub_from <= end ) this.peer_move( end, cursor )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.data.length = end\n\t\t\t\n\t\t\tthis.sub_from = this.cursor\n\t\t\t\n\t\t}\n\t\t\n\t\tcomplete() { }\n\t\t\n\t\tcomplete_pubs() {\n\t\t\t\n\t\t\tconst limit = this.cursor < 0 ? this.sub_from : this.cursor \n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub?.incompleted ) return \n\t\t\t}\n\t\t\t\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < limit;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tpub?.complete()\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tabsorb( quant = $mol_wire_cursor.stale, pos = -1 ) {\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\tif( this.cursor >= quant ) return\n\t\t\t\n\t\t\tthis.cursor = quant\n\t\t\tthis.emit( $mol_wire_cursor.doubt )\n\t\t\t\n\t\t\t// if( pos >= 0 && pos < this.sub_from - 2 ) {\n\t\t\t\t\n\t\t\t// \tconst pub = this.data[ pos ] as $mol_wire_pub\n\t\t\t// \tif( pub instanceof $mol_wire_task ) return\n\t\t\t\t\n\t\t\t// \tfor(\n\t\t\t// \t\tlet cursor = this.pub_from;\n\t\t\t// \t\tcursor < this.sub_from;\n\t\t\t// \t\tcursor += 2\n\t\t\t// \t) {\n\t\t\t\t\t\n\t\t\t// \t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\t\t\n\t\t\t// \t\tif( pub instanceof $mol_wire_task ) {\n\t\t\t// \t\t\tpub.destructor()\n\t\t\t// \t\t}\n\t\t\t\t\t\n\t\t\t// \t}\n\t\t\t\t\n\t\t\t// }\n\t\t\t\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_native( this )\n\t\t}\n\t\t\n\t\t/**\n\t\t * Is subscribed to any publisher or not.\n\t\t */\n\t\tget pub_empty() {\n\t\t\treturn this.sub_from === this.pub_from\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_tick extends $mol_object2 {\n\n\t\tstatic promise = null as Promise<void> | null\n\t\tcancelled = false\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\t\n\t\t\tif( !$mol_after_tick.promise ) $mol_after_tick.promise = Promise.resolve().then( ()=> {\n\t\t\t\t$mol_after_tick.promise = null\n\t\t\t} )\n\t\t\t\n\t\t\t$mol_after_tick.promise.then( ()=> {\n\t\t\t\tif( this.cancelled ) return\n\t\t\t\ttask()\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis.cancelled = true\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\ttry {\n\t\t\treturn val && typeof val === 'object' && 'then' in val && typeof val.then === 'function'\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\tconst wrappers = new WeakMap< Promise< unknown >, Promise< any > >()\n\t\n\t/**\n\t * Suspendable task with support both sync/async api.\n\t * \n\t * \tA1 A2 A3 A4 P1 P2 P3 P4 S1 S2 S3\n\t * \t^ ^ ^\n\t * \targs_from pubs_from subs_from\n\t **/\n\texport abstract class $mol_wire_fiber<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_pub_sub {\n\t\n\t\tstatic warm = true\n\t\t\n\t\tstatic planning = new Set< $mol_wire_fiber< any, any, any > >()\n\t\tstatic reaping = new Set< $mol_wire_fiber< any, any, any > >()\n\t\t\n\t\tstatic plan_task: $mol_after_tick | null = null\n\t\tstatic plan() {\n\t\t\t\n\t\t\tif( this.plan_task ) return\n\t\t\t\n\t\t\tthis.plan_task = new $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tthis.sync()\n\t\t\t\t} finally {\n\t\t\t\t\t$mol_wire_fiber.plan_task = null\n\t\t\t\t}\n\n\t\t\t} )\n\t\t\t\n\t\t}\n\t\t\n\t\tstatic sync() {\n\t\t\t\n\t\t\t// Sync whole fiber graph\n\t\t\twhile( this.planning.size ) {\n\t\t\t\tfor( const fiber of this.planning ) {\n\t\t\t\t\tthis.planning.delete( fiber )\n\t\t\t\t\tif( fiber.cursor >= 0 ) continue\n\t\t\t\t\tif( fiber.cursor === $mol_wire_cursor.final ) continue\n\t\t\t\t\tfiber.fresh()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t// Collect garbage\n\t\t\twhile( this.reaping.size ) {\n\t\t\t\t\n\t\t\t\tconst fibers = this.reaping\n\t\t\t\tthis.reaping = new Set\n\t\t\t\t\n\t\t\t\tfor( const fiber of fibers ) {\n\t\t\t\t\tif( !fiber.sub_empty ) continue\n\t\t\t\t\tfiber.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tpublic cache: Result | Error | Promise< Result | Error > = undefined as any\n\t\t\n\t\tget args() {\n\t\t\treturn this.data.slice( 0 , this.pub_from ) as any as Args\n\t\t}\n\t\t\n\t\tresult() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tif( this.cache instanceof Error ) return\n\t\t\treturn this.cache\n\t\t}\n\t\t\n\t\tget incompleted() {\n\t\t\treturn $mol_promise_like( this.cache )\n\t\t}\n\t\t\n\t\tfield() {\n\t\t\treturn this.task.name + '()'\n\t\t}\n\t\t\n\t\tconstructor(\n\t\t\tid: string,\n\t\t\treadonly task: ( this : Host , ... args : Args )=> Result,\n\t\t\treadonly host?: Host,\n\t\t\targs?: Args\n\t\t) {\n\t\t\t\n\t\t\tsuper( id )\n\t\t\tif( args ) this.data.push( ... args )\n\t\t\tthis.pub_from = this.sub_from = args?.length ?? 0\n\t\t\t\n\t\t}\n\t\t\n\t\tplan() {\n\t\t\t$mol_wire_fiber.planning.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t\treturn this\n\t\t}\n\t\t\n\t\treap() {\n\t\t\t$mol_wire_fiber.reaping.add( this )\n\t\t\t$mol_wire_fiber.plan()\n\t\t}\n\t\t\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\t[ $mol_dev_format_head ]() {\n\t\t\t\n\t\t\tconst cursor = {\n\t\t\t\t[ $mol_wire_cursor.stale ]: '🔴',\n\t\t\t\t[ $mol_wire_cursor.doubt ]: '🟡',\n\t\t\t\t[ $mol_wire_cursor.fresh ]: '🟢',\n\t\t\t\t[ $mol_wire_cursor.final ]: '🔵',\n\t\t\t}[ this.cursor ] ?? this.cursor.toString()\n\t\t\t\n\t\t\treturn $mol_dev_format_div( {},\n\t\t\t\t$mol_owning_check( this, this.cache )\n\t\t\t\t\t? $mol_dev_format_shade( cursor )\n\t\t\t\t\t: $mol_dev_format_shade( this[ Symbol.toStringTag ], cursor ),\n\t\t\t\t$mol_dev_format_auto( this.cache ),\n\t\t\t)\n\t\t\t\n\t\t}\n\t\t[ $mol_dev_format_body ]() { return null }\n\t\t\n\t\tget $() {\n\t\t\treturn ( this.host ?? this.task as any )['$']\n\t\t}\n\t\t\n\t\temit( quant = $mol_wire_cursor.stale ) {\n\t\t\tif( this.sub_empty ) this.plan()\n\t\t\telse super.emit( quant )\n\t\t}\n\t\t\n\t\tfresh() {\n\n\t\t\ttype Result = typeof this.cache\n\t\t\t\n\t\t\tif( this.cursor === $mol_wire_cursor.fresh ) return\n\t\t\tif( this.cursor === $mol_wire_cursor.final ) return\n\t\t\t\n\t\t\tcheck: if( this.cursor === $mol_wire_cursor.doubt ) {\n\t\t\t\t\n\t\t\t\tfor( let i = this.pub_from ; i < this.sub_from; i += 2 ) {\n\t\t\t\t\t;( this.data[i] as $mol_wire_pub )?.fresh()\n\t\t\t\t\tif( this.cursor !== $mol_wire_cursor.doubt ) break check\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\treturn\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst bu = this.track_on()\n\t\t\tlet result: typeof this.cache\n\n\t\t\ttry {\n\n\t\t\t\tswitch( this.pub_from ) {\n\t\t\t\t\tcase 0: result = (this.task as any).call( this.host! ); break\n\t\t\t\t\tcase 1: result = (this.task as any).call( this.host!, this.data[0] ); break\n\t\t\t\t\tdefault: result = (this.task as any).call( this.host!, ... this.args ); break\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!.then(a=>a)\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( res: Result )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.put( res )\n\t\t\t\t\t\t\treturn res\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\twrappers.set( result, result )\n\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\tif( error instanceof Error || $mol_promise_like( error ) ) {\n\t\t\t\t\tresult = error\n\t\t\t\t} else {\n\t\t\t\t\tresult = new Error( String( error ), { cause: error } )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( result ) ) {\n\t\t\t\t\t\n\t\t\t\t\tif( wrappers.has( result ) ) {\n\t\t\t\t\t\tresult = wrappers.get( result )!\n\t\t\t\t\t} else {\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst put = ( v: any )=> {\n\t\t\t\t\t\t\tif( this.cache === result ) this.absorb()\n\t\t\t\t\t\t\treturn v\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t\twrappers.set( result, result = Object.assign(\n\t\t\t\t\t\t\tresult.then( put, put ),\n\t\t\t\t\t\t\t{ destructor: ( result as any ).destructor || (()=> {}) }\n\t\t\t\t\t\t) )\n\t\t\t\t\t\t\n\t\t\t\t\t\tconst error = new Error( `Promise in ${ this }` )\n\t\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( ! $mol_promise_like( result ) ) {\n\t\t\t\tthis.track_cut()\n\t\t\t}\n\t\t\t\n\t\t\tthis.track_off( bu )\n\t\t\tthis.put( result )\n\t\t\t\n\t\t\treturn this\n\t\t}\n\t\t\n\t\trefresh() {\n\t\t\tthis.cursor = $mol_wire_cursor.stale\n\t\t\tthis.fresh()\n\t\t}\n\t\t\n\t\tabstract put( next: Result | Error | Promise< Result | Error > ): Result | Error | Promise< Result | Error >\n\t\t\n\t\t/**\n\t\t * Synchronous execution. Throws Promise when waits async task (SuspenseAPI provider).\n\t\t * Should be called inside SuspenseAPI consumer (ie fiber).\n\t\t */\n\t\tsync() {\n\t\t\t\n\t\t\tif( !$mol_wire_fiber.warm ) {\n\t\t\t\treturn this.result() as Awaited< Result >\n\t\t\t}\n\t\t\t\n\t\t\tthis.promote()\n\t\t\tthis.fresh()\n\t\t\t\n\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\tif( $mol_promise_like( this.cache ) ) {\n\t\t\t\treturn $mol_fail_hidden( this.cache )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.cache as Awaited< Result >\n\t\t}\n\n\t\t/**\n\t\t * Asynchronous execution.\n\t\t * It's SuspenseAPI consumer. So SuspenseAPI providers can be called inside.\n\t\t */\n\t\tasync async_raw() {\n\t\t\t\n\t\t\twhile( true ) {\n\t\t\t\t\n\t\t\t\tthis.fresh()\n\t\t\t\t\n\t\t\t\tif( this.cache instanceof Error ) {\n\t\t\t\t\t$mol_fail_hidden( this.cache )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tawait Promise.race([ this.cache, this.step() ])\n\t\t\t\tif( ! $mol_promise_like( this.cache ) ) return this.cache\n\t\t\t\t\t\n\t\t\t\tif( this.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t// never ends on destructed fiber\n\t\t\t\t\tawait new Promise( ()=> {} )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tasync() {\n\t\t\tconst promise = this.async_raw() as Promise<Result> & { destructor(): void }\n\n\t\t\tif (! promise.destructor) promise.destructor = () => this.destructor()\n\n\t\t\treturn promise\n\t\t}\n\t\t\n\t\tstep() {\n\t\t\treturn new Promise< null >( done => {\n\t\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\tconst prev = sub.track_on()\n\t\t\t\tsub.track_next( this )\n\t\t\t\tsub.track_off( prev )\n\t\t\t\tsub.absorb = ()=> {\n\t\t\t\t\tdone( null )\n\t\t\t\t\tsetTimeout( ()=> sub.destructor() )\n\t\t\t\t}\n\t\t\t} )\n\t\t}\n\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\t$mol_wire_fiber.planning.delete( this )\n\t\t\t\n\t\t\tif( ! $mol_owning_check( this, this.cache ) ) return\n\n\t\t\ttry {\n\t\t\t\tthis.cache.destructor()\n\t\t\t} catch (result) {\n\t\t\t\tif ($mol_promise_like(result)) {\n\t\t\t\t\tconst error = new Error( `Promise in ${ this }.destructor()` )\n\t\t\t\t\tObject.defineProperty( result, 'stack', { get: ()=> error.stack } )\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden(result)\n\t\t\t}\n\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport const $mol_key_store = new WeakMap< object, string >()\n\t\n\tconst TypedArray = Object.getPrototypeOf( Uint8Array )\n\n\t/** Returns string key for any value. */\n\texport function $mol_key< Value >( value : Value ) : string {\n\t\t\n\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\tif( typeof value === 'symbol' ) return value.description!\n\t\tif( !value ) return JSON.stringify( value )\n\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return JSON.stringify( value )\n\t\t\n\t\treturn JSON.stringify( value, ( field, value )=> {\n\t\t\t\n\t\t\tif( typeof value === 'bigint' ) return value.toString() + 'n'\n\t\t\tif( typeof value === 'symbol' ) return value.description\n\t\t\tif( !value ) return value\n\t\t\tif( typeof value !== 'object' && typeof value !== 'function' ) return value\n\t\t\tif( Array.isArray( value ) ) return value\n\t\t\t\n\t\t\tconst proto = Reflect.getPrototypeOf( value )\n\t\t\tif( !proto ) return value\n\t\t\tif( Reflect.getPrototypeOf( proto ) === null ) return value\n\t\t\t\n\t\t\tif( 'toJSON' in value ) return value\n\t\t\tif( value instanceof RegExp ) return value.toString()\n\t\t\t// if( value instanceof DataView ) return [ ... new Uint8Array( value.buffer ) ]\n\t\t\tif( value instanceof TypedArray ) return [ ... value as any ]\n\t\t\t\n\t\t\tlet key = $mol_key_store.get( value )\n\t\t\tif( key ) return key\n\t\t\t\n\t\t\tkey = $mol_guid()\n\t\t\t$mol_key_store.set( value, key )\n\t\t\t\n\t\t\treturn key\n\t\t} )\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_timeout extends $mol_object2 {\n\n\t\tid : any\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis.id = setTimeout( task , delay )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tclearTimeout( this.id )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_after_frame extends $mol_after_timeout {\n\n\t\tconstructor(\n\t\t\tpublic task : ()=> void ,\n\t\t) {\n\t\t\tsuper( 16 , task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), ( right as any )['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && $mol_compare_deep( left.stack, (right as any).stack )\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >()\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tleft_cache.set(right, true);\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tif( left instanceof DataView ) return compare_buffer(\n\t\t\tnew Uint8Array( left.buffer, left.byteOffset, left.byteLength ),\n\t\t\tnew Uint8Array( right.buffer, right.byteOffset, right.byteLength ),\n\t\t)\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this.$\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\t\n\t/** Module for working with terminal. Text coloring when output in terminal */\n\texport class $mol_term_color {\n\t\t\n\t\tstatic reset = this.ansi( 0, 0 )\n\t\tstatic bold = this.ansi( 1, 22 )\n\t\tstatic italic = this.ansi( 3, 23 )\n\t\tstatic underline = this.ansi( 4, 24 )\n\t\tstatic inverse = this.ansi( 7, 27 )\n\t\tstatic hidden = this.ansi( 8, 28 )\n\t\tstatic strike = this.ansi( 9, 29 )\n\t\t\n\t\tstatic gray = this.ansi( 90, 39 )\n\t\tstatic red = this.ansi( 91, 39 )\n\t\tstatic green = this.ansi( 92, 39 )\n\t\tstatic yellow = this.ansi( 93, 39 )\n\t\tstatic blue = this.ansi( 94, 39 )\n\t\tstatic magenta = this.ansi( 95, 39 )\n\t\tstatic cyan = this.ansi( 96, 39 )\n\t\t\n\t\tstatic Gray = ( str: string )=> this.inverse( this.gray( str ) )\n\t\tstatic Red = ( str: string )=> this.inverse( this.red( str ) )\n\t\tstatic Green = ( str: string )=> this.inverse( this.green( str ) )\n\t\tstatic Yellow = ( str: string )=> this.inverse( this.yellow( str ) )\n\t\tstatic Blue = ( str: string )=> this.inverse( this.blue( str ) )\n\t\tstatic Magenta = ( str: string )=> this.inverse( this.magenta( str ) )\n\t\tstatic Cyan = ( str: string )=> this.inverse( this.cyan( str ) )\n\t\t\n\t\tstatic ansi( open: number, close: number ) {\n\t\n\t\t\tif( typeof process === 'undefined' ) return String\n\t\t\tif( !process.stdout.isTTY ) return String\n\t\t\n\t\t\tconst prefix = `\\x1b[${open}m`\n\t\t\tconst postfix = `\\x1b[${close}m`\n\t\t\t\n\t\t\tconst suffix_regexp = new RegExp( postfix.replace( '[', '\\\\[' ), 'g' )\n\t\t\n\t\t\treturn function colorer( str: string ) {\n\t\t\n\t\t\t\tstr = String( str )\n\t\t\t\tif( str === '' ) return str\n\t\t\n\t\t\t\tconst suffix = str.replace( suffix_regexp, prefix )\n\t\t\t\treturn prefix + suffix + postfix\n\t\t\n\t\t\t}\n\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport function $mol_log3_node_make(\n\t\tlevel : keyof Console ,\n\t\toutput : 'stdout' | 'stderr',\n\t\ttype : string ,\n\t\tcolor: ( str: string )=> string ,\n\t) {\n\n\t\treturn function $mol_log3_logger(\n\t\t\tthis : $ ,\n\t\t\tevent : $mol_log3_event<{}> ,\n\t\t) {\n\n\t\t\tif( !event.time ) event = { time : new Date().toISOString() , ... event }\n\n\t\t\tlet tree = this.$mol_tree2_from_json( event )\n\t\t\ttree = tree.struct( type, tree.kids )\n\t\t\t\n\t\t\tlet str = color( tree.toString() )\n\t\t\t;( this.console[ level ] as any )( str )\n\t\n\t\t\tconst self = this\n\t\t\treturn ()=> self.console.groupEnd()\n\n\t\t}\n\n\t}\n\n\t$.$mol_log3_come = $mol_log3_node_make( 'info' , 'stdout' , 'come' , $mol_term_color.blue )\n\t$.$mol_log3_done = $mol_log3_node_make( 'info' , 'stdout' , 'done' , $mol_term_color.green )\n\t$.$mol_log3_fail = $mol_log3_node_make( 'error' , 'stderr' , 'fail' , $mol_term_color.red )\n\t$.$mol_log3_warn = $mol_log3_node_make( 'warn' , 'stderr' , 'warn' , $mol_term_color.yellow )\n\t$.$mol_log3_rise = $mol_log3_node_make( 'log' , 'stdout' , 'rise' , $mol_term_color.magenta )\n\t$.$mol_log3_area = $mol_log3_node_make( 'log' , 'stdout' , 'area' , $mol_term_color.cyan )\n\n}\n","namespace $ {\n\t\n\t/** One-shot fiber */\n\texport class $mol_wire_task<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\t\t\n\t\tstatic getter<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\ttask: ( this : Host , ... args : Args )=> Result,\n\t\t): ( host: Host, args: Args )=> $mol_wire_task< Host, Args, Result > {\n\t\t\t\n\t\t\treturn function $mol_wire_task_get( host: Host, args: Args ) {\n\t\t\t\t\n\t\t\t\tconst sub = $mol_wire_auto()\n\t\t\t\tconst existen = sub?.track_next() as $mol_wire_task< Host, Args, Result > | undefined\n\t\t\t\tlet cause = ''\n\t\t\t\t\n\t\t\t\treuse: if( existen ) {\n\t\t\t\t\t\n\t\t\t\t\tif( !existen.temp ) break reuse\n\t\t\t\t\t\n\t\t\t\t\tif( existen.task !== task ) { cause = 'task'; break reuse }\n\t\t\t\t\tif( existen.host !== host ) { cause = 'host'; break reuse }\n\t\t\t\t\tif( !$mol_compare_deep( existen.args, args ) ) { cause = 'args'; break reuse }\n\t\t\t\t\t\n\t\t\t\t\treturn existen\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst key = ( (host as any)?.[ Symbol.toStringTag ] ?? host ) + ( '.' + task.name + '<#>' )\n\t\t\t\tconst next = new $mol_wire_task( key, task, host, args )\n\t\t\t\t\n\t\t\t\t// Disabled because non-idempotency is required for try-catch\n\t\t\t\tif( existen?.temp ) {\n\t\t\t\t\t$$.$mol_log3_warn({\n\t\t\t\t\t\tplace: '$mol_wire_task',\n\t\t\t\t\t\tmessage: `Different ${cause} on restart`,\n\t\t\t\t\t\tsub,\n\t\t\t\t\t\tprev: existen,\n\t\t\t\t\t\tnext,\n\t\t\t\t\t\thint: 'Maybe required additional memoization',\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tget temp() {\n\t\t\treturn true\n\t\t}\n\t\t\n\t\tcomplete() {\n\t\t\tif( $mol_promise_like( this.cache ) ) return\n\t\t\tthis.destructor()\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\tthis.cache = next\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) {\n\t\t\t\t\n\t\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\tif( next !== prev ) this.emit()\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn next\n\t\t\t}\n\t\t\t\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t\t\n\t\t\tif( this.sub_empty ) this.destructor()\n\t\t\telse if( next !== prev ) this.emit()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\tsuper.destructor()\n\t\t\tthis.cursor = $mol_wire_cursor.final\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber.\n\t */\n\texport function $mol_wire_method<\n\t\tHost extends object,\n\t\tArgs extends readonly any[],\n\t>(\n\t\thost : Host,\n\t\tfield : PropertyKey,\n\t\tdescr? : TypedPropertyDescriptor< ( ... args: Args )=> any >,\n\t) {\n\t\t\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field ) as any\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\t\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst temp = $mol_wire_task.getter( orig )\n\t\tconst value = function( this: Host, ... args: Args ) {\n\t\t\tconst fiber = temp( this ?? null as any, args )\n\t\t\treturn fiber.sync()\n\t\t}\n\t\t\n\t\tObject.defineProperty( value , 'name' , { value : orig.name + ' ' } )\n\t\t\n\t\tObject.assign( value, { orig } )\n\t\tconst descr2 = { ... descr, value }\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst catched = new WeakSet< any >()\n\n\texport function $mol_fail_catch( error: unknown ) {\n\t\t\n\t\tif( typeof error !== 'object' ) return false\n\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\tif( catched.has( error ) ) return false\n\t\t\n\t\tcatched.add( error )\n\t\treturn true\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_try< Result >( handler : ()=> Result ) : Result|Error {\n\t\ttry {\n\t\t\treturn handler()\n\t\t} catch( error: any ) {\n\t\t\treturn error\n\t\t}\n\t}\n\t\n} \n","namespace $ {\n\t\n\texport function $mol_fail_log( error: unknown ) {\n\t\t\n\t\tif( $mol_promise_like( error ) ) return false\n\t\tif( !$mol_fail_catch( error ) ) return false\n\t\t\n\t\t$mol_try( ()=> { $mol_fail_hidden( error ) } )\n\t\t\n\t\treturn true\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t/** Long-living fiber. */\n\texport class $mol_wire_atom<\n\t\tHost,\n\t\tArgs extends readonly unknown[],\n\t\tResult,\n\t> extends $mol_wire_fiber< Host, Args, Result > {\n\n\t\tstatic solo<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host, ... args: Args )=> Result,\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\t\n\t\t\tconst existen = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tif( existen ) return existen\n\t\t\t\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key = prefix + ( '.' + task.name + '<>' )\n\t\t\t\n\t\t\tconst fiber = new $mol_wire_atom( key, task, host, [] as any as Args )\n\t\t\t;( host as any ?? task )[ field ] = fiber\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic plex<\n\t\t\tHost,\n\t\t\tArgs extends readonly unknown[],\n\t\t\tResult,\n\t\t>(\n\t\t\thost: Host,\n\t\t\ttask: ( this: Host , ... args: Args )=> Result,\n\t\t\tkey: Args[0],\n\t\t): $mol_wire_atom< Host, Args, Result > {\n\t\t\t\n\t\t\tconst field = task.name + '()'\n\t\t\tlet dict = Object.getOwnPropertyDescriptor( host ?? task, field )?.value\n\t\t\tconst prefix = (host as any)?.[ Symbol.toStringTag ] ?? ( host instanceof Function ? $$.$mol_func_name( host ) : host )\n\t\t\tconst key_str = $mol_key( key )\n\t\t\t\n\t\t\tif( dict ) {\n\t\t\t\tconst existen = dict.get( key_str )\n\t\t\t\tif( existen ) return existen\n\t\t\t} else {\n\t\t\t\tdict = ( host as any ?? task )[ field ] = new Map<any,any>()\n\t\t\t}\n\t\t\t\n\t\t\tconst id = prefix + ( '.' + task.name ) + ( '<' + key_str.replace( /^\"|\"$/g, \"'\" ) + '>' )\n\t\t\tconst fiber = new $mol_wire_atom( id, task, host, [ key ] as any as Args )\n\t\t\tdict.set( key_str, fiber )\n\t\t\t\n\t\t\treturn fiber\n\t\t}\n\t\t\n\t\tstatic watching = new Set< $mol_wire_atom< any, any, any > >()\n\t\tstatic watcher = null as $mol_after_frame | null\n\t\t\n\t\tstatic watch() {\n\t\t\n\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t\n\t\t\tfor( const atom of $mol_wire_atom.watching ) {\n\t\t\t\t\n\t\t\t\tif( atom.cursor === $mol_wire_cursor.final ) {\n\t\t\t\t\t$mol_wire_atom.watching.delete( atom )\n\t\t\t\t} else {\n\t\t\t\t\tatom.cursor = $mol_wire_cursor.stale\n\t\t\t\t\tatom.fresh()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twatch() {\n\t\t\t\n\t\t\tif( !$mol_wire_atom.watcher ) {\n\t\t\t\t$mol_wire_atom.watcher = new $mol_after_frame( $mol_wire_atom.watch )\n\t\t\t}\n\t\t\t\n\t\t\t$mol_wire_atom.watching.add( this )\n\t\t\t\n\t\t}\n\t\t\n\t\t/**\n\t\t * Update atom value through another temp fiber.\n\t\t */\n\t\t@ $mol_wire_method\n\t\tresync( args: Args ) {\n\t\t\t\n\t\t\t// enforce pulling tasks abort\n\t\t\tfor(\n\t\t\t\tlet cursor = this.pub_from;\n\t\t\t\tcursor < this.sub_from;\n\t\t\t\tcursor += 2\n\t\t\t) {\n\t\t\t\tconst pub = this.data[ cursor ] as $mol_wire_pub\n\t\t\t\tif( pub && pub instanceof $mol_wire_task ) {\n\t\t\t\t\tpub.destructor()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.put( this.task.call( this.host!, ... args ) )\n\t\t}\n\t\t\n\t\t@ $mol_wire_method\n\t\tonce() {\n\t\t\treturn this.sync()\n\t\t}\n\t\t\n\t\tchannel() {\n\t\t\treturn Object.assign( ( next?: $mol_type_foot< Args > )=> {\n\t\t\t\t\t\n\t\t\t\tif( next !== undefined ) return this.resync( [ ... this.args, next ] as any ) as never\n\t\t\t\tif( !$mol_wire_fiber.warm ) return this.result() as never\n\t\t\t\t\n\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\treturn this.once()\n\t\t\t\t} else {\n\t\t\t\t\treturn this.sync()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}, { atom: this as $mol_wire_atom< Host, Args, Result > } )\n\t\t}\n\t\t\n\t\tdestructor() {\n\t\t\t\n\t\t\tsuper.destructor()\n\t\t\t\n\t\t\tif( this.pub_from === 0 ) {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ] = null\n\t\t\t} else {\n\t\t\t\t;( this.host as any ?? this.task )[ this.field() ].delete( $mol_key( this.args[0] ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tput( next: Result | Error | Promise< Result | Error > ) {\n\t\t\t\n\t\t\tconst prev = this.cache\n\t\t\t\n\t\t\tupdate: if( next !== prev ) {\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\tif( $mol_compare_deep( prev, next ) ) break update\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_check( this, prev ) ) {\n\t\t\t\t\tprev.destructor()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( $mol_owning_catch( this, next ) ) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\t(next as any)[ Symbol.toStringTag ] = (this as any)[ Symbol.toStringTag ]\n\t\t\t\t\t} catch { // Promises throw in strict mode\n\t\t\t\t\t\tObject.defineProperty( next, Symbol.toStringTag, { value: (this as any)[ Symbol.toStringTag ] } )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( !this.sub_empty ) this.emit()\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tthis.cache = next\n\t\t\tthis.cursor = $mol_wire_cursor.fresh\n\t\t\t\n\t\t\tif( $mol_promise_like( next ) ) return next\n\t\t\t\n\t\t\tthis.complete_pubs()\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\t/** Decorates solo object channel to [mol_wire_atom](../atom/atom.ts). */\n\texport function $mol_wire_solo< Args extends any[] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ){\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.solo( this, orig )\n\t\t\t\t\n\t\t\t\tif(( args.length === 0 )||( args[0] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2 as any as TypedPropertyDescriptor< ( ... args: First_optional< Args > )=> any >\n\t}\n\n\ttype First_optional< Args extends any[] > = Args extends []\n\t\t? []\n\t\t: [ Args[0] | undefined, ... $mol_type_tail< Args > ]\n\n}\n","namespace $ {\n\t\n\t/** Reactive memoizing multiplexed property decorator. */\n\texport function $mol_wire_plex< Args extends [ any, ... any[] ] >(\n\t\thost: object,\n\t\tfield: string,\n\t\tdescr?: TypedPropertyDescriptor< ( ... args: Args )=> any >\n\t) {\n\n\t\tif( !descr ) descr = Reflect.getOwnPropertyDescriptor( host , field )\n\t\tconst orig = descr?.value! ?? (host as any)[ field ]\n\t\t\n\t\tconst sup = Reflect.getPrototypeOf( host )!\n\t\tif( typeof (sup as any)[ field ] === 'function' ) {\n\t\t\tObject.defineProperty( orig , 'name' , { value : (sup as any)[ field ].name } )\n\t\t}\n\t\t\n\t\tconst descr2 = {\n\t\t\t... descr,\n\t\t\tvalue: function( this: typeof host, ... args: Args ) {\n\t\t\t\n\t\t\t\tlet atom = $mol_wire_atom.plex( this, orig, args[0] )\n\t\t\t\t\n\t\t\t\tif(( args.length === 1 )||( args[1] === undefined )) {\n\t\t\t\t\t\n\t\t\t\t\tif( !$mol_wire_fiber.warm ) return atom.result()\n\t\t\t\t\t\n\t\t\t\t\tif( $mol_wire_auto()?.temp ) {\n\t\t\t\t\t\treturn atom.once()\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn atom.sync()\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn atom.resync( args )\t\n\t\t\t}\n\t\t}\n\t\t\n\t\tReflect.defineProperty( descr2.value , 'name' , { value : orig.name + ' ' } )\n\t\tReflect.defineProperty( descr2.value , 'length' , { value : orig.length } )\n\t\tObject.assign( descr2.value, { orig } )\n\t\t\n\t\tReflect.defineProperty( host, field, descr2 )\n\t\t\n\t\treturn descr2\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Reactive memoizing solo property decorator from [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem\n\t * name(next?: string) {\n\t * \treturn next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem = $mol_wire_solo\n\n\t/**\n\t * Reactive memoizing multiplexed property decorator [mol_wire](../wire/README.md)\n\t * @example\n\t * '@' $mol_mem_key\n\t * name(id: number, next?: string) {\n\t * return next ?? 'default'\n\t * }\n\t * @see https://mol.hyoo.ru/#!section=docs/=qxmh6t_sinbmb\n\t */\n\texport let $mol_mem_key = $mol_wire_plex\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\n\tconst mod = require/****/( 'module' ) as typeof import/****/( 'module' )\n\tconst internals = mod.builtinModules\n\t\n\texport function $node_internal_check(name: string) {\n\t\tif ( name.startsWith('node:') ) return true\n\t\treturn internals.includes(name)\n\t}\n\n}\n","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 $$ = ( $ as any )\n\t\tif( $$.$node_internal_check(name, target) ) return target.require ( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\ttry {\n\t\t\ttarget.require.resolve( name )\n\t\t} catch {\n\t\t\n\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\n\t\t\ttry {\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t} catch (e) {\n\t\t\t\tif( $$.$mol_promise_like( e ) ) $$.$mol_fail_hidden( e )\n\t\t\t\t$$.$mol_fail_log(e)\n\t\t\t}\n\n\t\t}\n\n\t\treturn target.require( name )\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nconst cache = new Map< string, any >()\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\tfunction cause_serialize(cause: unknown) {\n\t\treturn JSON.stringify( cause, null, ' ' )\n\t\t\t.replace(/\\(/,'<')\n\t\t\t.replace(/\\)/,' >')\n\t}\n\n\tfunction frame_normalize(frame: string | Object) {\n\t\treturn ( typeof frame === 'string' ? frame : cause_serialize(frame) )\n\t\t\t.trim()\n\t\t\t.replace( /at /gm, ' at ' )\n\t\t\t.replace( /^(?! +at )(.*)/gm, ' at | $1 (#)' )\n\t}\n\n\texport class $mol_error_mix< Cause extends {} = {} > extends AggregateError {\n\t\t\n\t\tname = $$.$mol_func_name( this.constructor ).replace( /^\\$/, '' ) + '_Error'\n\n\t\tconstructor(\n\t\t\tmessage: string,\n\t\t\treadonly cause = {} as Cause,\n\t\t\t... errors: readonly Error[]\n\t\t) {\n\t\t\t\n\t\t\tsuper( errors, message, { cause } )\n\t\t\t\n\t\t\tconst desc = Object.getOwnPropertyDescriptor( this, 'stack' )\n\t\t\tconst stack_get = ()=> desc?.get?.() ?? super.stack ?? desc?.value ?? this.message\n\t\t\t\n\t\t\tObject.defineProperty( this, 'stack', {\n\t\t\t\tget: ()=> stack_get() + '\\n' + [\n\t\t\t\t\t\tthis.cause ?? 'no cause',\n\t\t\t\t\t\t... this.errors.flatMap( e => [\n\t\t\t\t\t\t\tString( e.stack ),\n\t\t\t\t\t\t\t... e instanceof $mol_error_mix || ! e.cause ? [] : [ e.cause ]\n\t\t\t\t\t\t] )\n\t\t\t\t\t].map(frame_normalize).join('\\n')\n\t\t\t} )\n\n\t\t\t// в nodejs, что б не дублировалось cause в консоли\n\t\t\tObject.defineProperty(this, 'cause', {\n\t\t\t\tget: () => cause\n\t\t\t})\t\n\t\t}\n\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\treturn $$.$mol_func_name( this )\n\t\t}\n\n\t\tstatic make(\n\t\t\t...params: ConstructorParameters<typeof $mol_error_mix>\n\t\t) {\n\t\t\treturn new this(...params)\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\tconst factories = new WeakMap<Function, Function>()\n\n\tfunction factory<Args extends unknown[], Result>(\n\t\tval: new (...args: Args) => Result\n\t) {\n\t\tlet make = factories.get(val) as null | ((...args: Args) => Result)\n\n\t\tif ( make ) return make\n\n\t\tmake = $mol_func_name_from((...args: Args) => new val(...args), val)\n\t\tfactories.set(val, make)\n\n\t\treturn make\n\t}\n\n\tconst getters = new WeakMap<Object, Record<string | symbol, (next?: unknown) => unknown>>()\n\n\tfunction get_prop(\n\t\thost: Object,\n\t\tfield: string | symbol,\n\t) {\n\t\tlet props = getters.get(host)\n\t\tlet get_val = props?.[field]\n\n\t\tif ( get_val ) return get_val\n\n\t\tget_val = (next?: unknown) => {\n\t\t\tif (next !== undefined) host[field as keyof typeof host] = next as any\n\n\t\t\treturn host[field as keyof typeof host]\n\t\t}\n\n\t\tObject.defineProperty( get_val , 'name' , { value : field } )\n\n\t\tif (! props) {\n\t\t\tprops = {}\n\t\t\tgetters.set(host, props)\n\t\t}\n\t\tprops[field] = get_val\n\n\t\treturn get_val\n\t}\n\n\t/**\n\t * Convert asynchronous (promise-based) API to synchronous by wrapping function and method calls in a fiber.\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport function $mol_wire_sync< Host extends object >( obj: Host ) {\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tlet val = (obj as any)[ field ]\n\t\t\t\tconst temp = $mol_wire_task.getter(typeof val === 'function' ? val : get_prop(obj, field))\n\n\t\t\t\tif (typeof val !== 'function') return temp( obj, [] ).sync()\n\n\t\t\t\treturn function $mol_wire_sync( this: Host, ... args: unknown[] ) {\n\t\t\t\t\tconst fiber = temp( obj, args )\n\t\t\t\t\treturn fiber.sync()\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tset( obj, field, next) {\n\t\t\t\tconst temp = $mol_wire_task.getter(get_prop(obj, field))\n\t\t\t\ttemp( obj, [ next ] ).sync()\n\n\t\t\t\treturn true\n\t\t\t},\n\n\t\t\tconstruct(obj, args) {\n\t\t\t\tconst temp = $mol_wire_task.getter(factory(obj as (new ( ... args: unknown[] )=> unknown)))\n\t\t\t\treturn temp( obj, args ).sync() as object\n\t\t\t},\n\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tconst temp = $mol_wire_task.getter(obj as ( ... args: any[] )=> any)\n\t\t\t\treturn temp(self, args).sync()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultAwaited<Host>\n\t}\n\n\ttype FunctionResultAwaited<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? (...args: Args) => Awaited<Res>\n\t\t: Some\n\n\ttype ConstructorResultAwaited<Some> = Some extends new (...args: infer Args) => infer Res\n\t\t? new (...args: Args) => Res\n\t\t: {}\n\n\ttype MethodsResultAwaited<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultAwaited<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultAwaited<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultAwaited<Some> : {}\n\t) & ( Some extends Object ? MethodsResultAwaited<Some> & ConstructorResultAwaited<Some> : Some )\n\n}\n","namespace $ {\n\n\texport type $mol_run_error_context = {\n\t\tpid?: number\n\t\tstdout: Buffer | string\n\t\tstderr: Buffer | string\n\t}\n\n\texport class $mol_run_error extends $mol_error_mix<{\n\t\ttimeout_kill?: boolean\n\t\tpid?: number\n\t\tsignal?: NodeJS.Signals | null\n\t\tstatus?: number | null\n\t\tcommand: string\n\t\tdir: string\n\t}> {}\n\n\texport const $mol_run_spawn = (\n\t\t...args: Parameters<typeof $node['child_process']['spawn']>\n\t) => $node['child_process'].spawn(...args)\n\n\texport const $mol_run_spawn_sync = (\n\t\t...args: Parameters<typeof $node['child_process']['spawnSync']>\n\t) => $node['child_process'].spawnSync(...args)\n\n\texport type $mol_run_options = {\n\t\tcommand : readonly string[] | string\n\t\tdir : string\n\t\ttimeout?: number\n\t\tenv?: Record<string, string | undefined>\n\t}\n\n\texport class $mol_run extends $mol_object {\n\n\t\tstatic async_enabled() {\n\t\t\treturn Boolean(this.$.$mol_env()['MOL_RUN_ASYNC'])\n\t\t}\n\n\t\tstatic spawn(options: $mol_run_options) {\n\t\t\tconst sync = ! this.async_enabled() || ! Boolean($mol_wire_auto())\n\t\t\tconst env = options.env ?? this.$.$mol_env()\n\n\t\t\treturn $mol_wire_sync(this).spawn_async( { ...options, sync, env } )\n\t\t}\n\n\t\tstatic spawn_async(\n\t\t\t{ dir, sync, timeout, command, env }: $mol_run_options & { sync?: boolean }\n\t\t) {\n\t\t\tconst args_raw = typeof command === 'string' ? command.split( ' ' ) : command\n\t\t\tconst [ app, ...args ] = args_raw\n\t\t\tconst opts = { shell: true, cwd: dir, env }\n\n\t\t\tconst log_object = {\n\t\t\t\tplace: `${this}.spawn()`,\n\t\t\t\tmessage: 'Run',\n\t\t\t\tcommand: args_raw.join(' ') ,\n\t\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\t}\n\n\t\t\tif (sync) {\n\n\t\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t\thint: 'Run inside fiber',\n\t\t\t\t\t...log_object\n\t\t\t\t})\n\n\t\t\t\tlet error: Error | undefined\n\t\t\t\tlet res\n\n\t\t\t\ttry {\n\t\t\t\t\tres = this.$.$mol_run_spawn_sync(app, args, opts)\n\t\t\t\t\terror = res.error\n\t\t\t\t} catch (err) {\n\t\t\t\t\terror = err as Error\n\t\t\t\t}\n\n\t\t\t\tif (! res || error || res.status) {\n\t\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res),\n\t\t\t\t\t\t{ ...log_object, status: res?.status, signal: res?.signal },\n\t\t\t\t\t\t...(error ? [error] : [])\n\t\t\t\t\t)\n\t\t\t\t}\n\n\t\t\t\treturn res\n\t\t\t}\n\n\t\t\tlet sub\n\n\t\t\ttry {\n\t\t\t\tsub = this.$.$mol_run_spawn(app, args, {\n\t\t\t\t\t...opts,\n\t\t\t\t\tstdio: [ 'pipe', 'inherit', 'inherit' ],\n\t\t\t\t})\n\t\t\t} catch (error) {\n\t\t\t\tthrow new $mol_run_error(\n\t\t\t\t\tthis.error_message(undefined),\n\t\t\t\t\tlog_object,\n\t\t\t\t\terror as Error\n\t\t\t\t)\n\t\t\t}\n\t\n\t\t\tconst pid = sub.pid ?? 0\n\n\t\t\tthis.$.$mol_log3_come({\n\t\t\t\t...log_object,\n\t\t\t\tpid,\n\t\t\t})\n\t\n\t\t\tlet timeout_kill = false\n\t\t\tlet timer: undefined | ReturnType<typeof setTimeout>\n\t\n\t\t\tconst std_data = [] as Buffer[]\n\t\t\tconst error_data = [] as Buffer[]\n\t\n\t\t\tconst add = (std_chunk?: Buffer, error_chunk?: Buffer) => {\n\t\t\t\tif (std_chunk) std_data.push(std_chunk)\n\t\t\t\tif (error_chunk) error_data.push(error_chunk)\n\t\t\t\tif (! timeout) return\n\t\n\t\t\t\tclearTimeout(timer)\n\t\n\t\t\t\ttimer = setTimeout(() => {\n\t\t\t\t\tconst signal = timeout_kill ? 'SIGKILL' : 'SIGTERM'\n\t\t\t\t\ttimeout_kill = true\n\t\t\t\t\tadd()\n\t\t\t\t\tsub.kill(signal)\n\t\t\t\t}, timeout)\n\t\t\t}\n\t\n\t\t\tadd()\n\t\n\t\t\tsub.stdout?.on('data', data => add(data) )\n\t\t\tsub.stderr?.on('data', data => add(undefined, data) )\n\t\n\t\t\tconst result_promise = new Promise<$mol_run_error_context>((done, fail) => {\n\t\t\t\tconst close = (error: Error | null, status: number | null = null, signal: NodeJS.Signals | null = null) => {\n\t\t\t\t\tif (! timer && timeout) return\n\t\n\t\t\t\t\tclearTimeout(timer)\n\t\t\t\t\ttimer = undefined\n\t\n\t\t\t\t\tconst res = {\n\t\t\t\t\t\tpid,\n\t\t\t\t\t\tsignal,\n\t\t\t\t\t\tget stdout() { return Buffer.concat(std_data) },\n\t\t\t\t\t\tget stderr() { return Buffer.concat(error_data) }\n\t\t\t\t\t}\n\t\t\n\t\t\t\t\tif (error || status || timeout_kill) return fail( new $mol_run_error(\n\t\t\t\t\t\tthis.error_message(res) + (timeout_kill ? ', timeout' : ''),\n\t\t\t\t\t\t{ ...log_object, pid, status, signal, timeout_kill },\n\t\t\t\t\t\t...error ? [ error ] : []\n\t\t\t\t\t) )\n\n\t\t\t\t\tthis.$.$mol_log3_done({\n\t\t\t\t\t\t...log_object,\n\t\t\t\t\t\tpid,\n\t\t\t\t\t})\n\t\t\t\n\t\t\t\t\tdone(res)\n\t\t\t\t}\n\t\n\t\t\t\tsub.on('disconnect', () => close(new Error('Disconnected')) )\n\t\t\t\tsub.on('error', err => close(err) )\n\t\t\t\tsub.on('exit', (status, signal) => close(null, status, signal) )\n\t\t\t})\n\t\n\t\t\treturn Object.assign(result_promise, { destructor: () => {\n\t\t\t\tclearTimeout(timer)\n\t\t\t\tsub.kill('SIGKILL')\n\t\t\t} })\n\t\t}\n\n\t\tstatic error_message(res?: $mol_run_error_context) {\n\t\t\treturn res?.stderr.toString() || res?.stdout.toString() || 'Run error'\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : readonly string[]\n\t) {\n\t\treturn this.$mol_run.spawn( { command: [ command, ...args ], dir } )\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\t/**\n\t * Disable reaping of current subscriber\n\t */\n\texport function $mol_wire_solid() {\n\t\tlet current = $mol_wire_auto() as $mol_wire_fiber< any, any, any >\n\t\tif( current!.temp ) current = current!.host\n\t\tif( current!.reap !== nothing ) {\n\t\t\tcurrent?.sub_on( sub, sub.data.length )\n\t\t}\n\t\tcurrent!.reap = nothing\n\t}\n\t\n\tconst nothing = ()=> {}\n\tconst sub = new $mol_wire_pub_sub\n\t\n}\n","namespace $ {\n\texport let $mol_mem_persist = $mol_wire_solid\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\texport class $mol_storage extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic native() {\n\t\t\treturn this.$.$mol_dom_context.navigator.storage ?? { // exists only in secure context\n\t\t\t\tpersisted: async ()=> false,\n\t\t\t\tpersist: async ()=> false,\n\t\t\t\testimate: async ()=> ({}),\n\t\t\t\tgetDirectory: async ()=> null! as FileSystemHandle,\n\t\t\t} as StorageManager\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic persisted( next?: boolean, cache?: 'cache' ): boolean {\n\t\t\t\n\t\t\t$mol_mem_persist()\n\t\t\t\n\t\t\tif( cache ) return Boolean( next )\n\t\t\t\n\t\t\tconst native = this.native()\n\t\t\tif( next && !$mol_mem_cached( ()=> this.persisted() ) ) {\n\t\t\t\tnative.persist().then( actual => {\n\t\t\t\t\t\n\t\t\t\t\tsetTimeout( ()=> this.persisted( actual, 'cache' ), 5000 )\n\t\t\t\t\t\n\t\t\t\t\tif( actual ) this.$.$mol_log3_done({ place: `$mol_storage`, message: `Persist: Yes` })\n\t\t\t\t\telse this.$.$mol_log3_fail({ place: `$mol_storage`, message: `Persist: No` })\n\t\t\t\t\t\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t\treturn next ?? $mol_wire_sync( native ).persisted()\n\t\t}\n\t\t\n\t\tstatic estimate() {\n\t\t\treturn $mol_wire_sync( this.native() ?? {} ).estimate()\n\t\t}\n\t\t\n\t\tstatic dir() {\n\t\t\treturn $mol_wire_sync( this.native() ).getDirectory()\n\t\t}\n\t\t\n\t}\n}\n","namespace $ {\n\t\n\texport class $mol_state_local< Value > extends $mol_object {\n\t\t\n\t\tstatic 'native()' : Pick< Storage , 'getItem'|'setItem'|'removeItem' >\n\t\tstatic native() {\n\t\t\tif( this['native()'] ) return this['native()']\n\n\t\t\tcheck : try {\n\t\t\t\tconst native = $mol_dom_context.localStorage\n\t\t\t\tif( !native ) break check\n\t\t\t\t\n\t\t\t\tnative.setItem( '' , '' )\n\t\t\t\tnative.removeItem( '' )\n\t\t\t\treturn this['native()'] = native\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.warn( error )\n\t\t\t}\n\n\t\t\treturn this['native()'] = {\n\t\t\t\tgetItem( key : string ) {\n\t\t\t\t\treturn (this as any)[ ':' + key ]\n\t\t\t\t} ,\n\t\t\t\tsetItem( key : string , value : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = value\n\t\t\t\t} ,\n\t\t\t\tremoveItem( key : string ) {\n\t\t\t\t\t(this as any)[ ':' + key ] = void 0\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic changes( next?: StorageEvent ) { return next }\n\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tthis.changes()\n\t\t\t\n\t\t\tif( next === void 0 ) return JSON.parse( this.native().getItem( key ) || 'null' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tthis.native().removeItem( key )\n\t\t\t} else {\n\t\t\t\tthis.native().setItem( key , JSON.stringify( next ) )\n\t\t\t\tthis.$.$mol_storage.persisted( true )\n\t\t\t}\n\t\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tprefix() { return '' }\n\t\t\n\t\tvalue( key : string , next? : Value ) {\n\t\t\treturn $mol_state_local.value( this.prefix() + '.' + key , next )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ { \n\t/**\n\t * Returns closure that returns constant value.\n\t * @example\n\t * const rnd = $mol_const( Math.random() )\n\t */\n\texport function $mol_const< Value >( value : Value ) {\n\t\tconst getter = <{ () : Value , '()' : Value }> ( () => value )\n\t\tgetter['()'] = value\n\t\t;(getter as any)[ Symbol.toStringTag ] = value\n\t\t;(getter as any )[ $mol_dev_format_head ] = ()=> $mol_dev_format_span( {} , '()=> ', $mol_dev_format_auto( value ) )\n\t\treturn getter\n\t}\n}\n","namespace $ {\n\t/**\n\t * Decorates method to fiber to ensure it is executed only once inside other fiber from [mol_wire](../wire/README.md)\n\t * @see https://mol.hyoo.ru/#!section=docs/=1fcpsq_1wh0h2\n\t */\n\texport let $mol_action = $mol_wire_method\n}\n","namespace $ {\n\t\n\t/** Convert a pseudo-synchronous (Suspense API) API to an explicit asynchronous one (for integrating with external systems). */\n\texport function $mol_wire_async< Host extends object >( obj: Host ) {\n\t\t\n\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\tconst temp = $mol_wire_task.getter( obj as ( ... args: any[] )=> any )\n\t\t\n\t\treturn new Proxy( obj, {\n\t\t\t\n\t\t\tget( obj, field ) {\n\t\t\t\t\n\t\t\t\tconst val = (obj as any)[ field ]\n\t\t\t\tif( typeof val !== 'function' ) return val\n\t\t\t\t\n\t\t\t\tlet fiber: $mol_wire_fiber< any, any, any >\n\t\t\t\tconst temp = $mol_wire_task.getter( val ) \n\t\t\t\t\n\t\t\t\treturn function $mol_wire_async( this: Host, ... args: any[] ) {\n\t\t\t\t\tfiber?.destructor()\n\t\t\t\t\tfiber = temp( obj, args )\n\t\t\t\t\treturn fiber.async()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t\tapply( obj, self, args ) {\n\t\t\t\tfiber?.destructor()\n\t\t\t\tfiber = temp( self, args )\n\t\t\t\treturn fiber.async()\n\t\t\t},\n\t\t\t\n\t\t} ) as unknown as ObjectOrFunctionResultPromisify<Host>\n\t\t\n\t}\n\n\ttype FunctionResultPromisify<Some> = Some extends (...args: infer Args) => infer Res\n\t\t? Res extends PromiseLike<unknown> ? Some : (...args: Args) => Promise<Res>\n\t\t: Some\n\n\ttype MethodsResultPromisify<Host extends Object> = {\n\t\t[K in keyof Host]: FunctionResultPromisify<Host[K]>\n\t}\n\n\ttype ObjectOrFunctionResultPromisify<Some> = (\n\t\tSome extends (...args: any) => unknown ? FunctionResultPromisify<Some> : {}\n\t) & ( Some extends Object ? MethodsResultPromisify<Some> : Some )\n\n}\n","namespace $ {\n\texport class $mol_lock extends $mol_object {\n\t\tprotected promise = null as null | Promise<void>\n\n\t\tasync wait() {\n let next = () => {}\n\t\t\tlet destructed = false\n const task = $mol_wire_auto()\n\t\t\tif (! task) return next\n\n\t\t\tconst destructor = task.destructor.bind(task)\n task.destructor = ()=> {\n\t\t\t\tdestructor()\n\t\t\t\tdestructed = true\n next()\n }\n\n\t\t\tlet promise\n\n\t\t\tdo {\n\t\t\t\tpromise = this.promise\n\t\t\t\tawait promise\n\t\t\t\tif (destructed) return next\n\t\t\t} while (promise !== this.promise)\n\n\t\t\tthis.promise = new Promise(done => { next = done })\n\t\t\treturn next\n\t\t}\n\n\t\tgrab() { return $mol_wire_sync(this).wait() }\n\t}\n}\n","namespace $ {\n export function $mol_compare_array<Value extends ArrayLike<unknown>>(a: Value, b: Value): boolean {\n\t\tif (a === b) return true\n\t\tif (Object.getPrototypeOf(a) !== Object.getPrototypeOf(b)) return false\n\t\tif (a.length !== b.length) return false\n\n\t\tfor (let i = 0; i < a.length; i++)\n\t\t\tif (a[i] !== b[i]) return false\n\n\t\treturn true\n\t}\n}\n","namespace $ {\n\n\tconst decoders = {} as { [ key in $mol_charset_encoding ]?: TextDecoder }\n\n\texport function $mol_charset_decode(\n\t\tbuffer: AllowSharedBufferSource,\n\t\tencoding: $mol_charset_encoding = 'utf8',\n\t) {\n\t\t\n\t\tlet decoder = decoders[ encoding ]\n\t\tif( !decoder ) decoder = decoders[ encoding ] = new TextDecoder( encoding )\n\t\t\n\t\treturn decoder.decode( buffer )\n\t}\n\n}\n","namespace $ {\n\n\tlet buf = new Uint8Array( 2**12 ) // 4KB Mem Page\n\t\n\texport function $mol_charset_encode( str: string ) {\n\t\tconst capacity = str.length * 3\n\t\tif( buf.byteLength < capacity ) buf = new Uint8Array( capacity )\n\t\treturn buf.slice( 0, $mol_charset_encode_to( str, buf ) )\n\t}\n\n\texport function $mol_charset_encode_to( str: string, buf: Uint8Array< ArrayBuffer >, from = 0 ) {\n\n\t\tlet pos = from\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) { // ASCII - 1 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = code\n\t\t\t\t\n\t\t\t} else if( code < 0x800 ) { // 2 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xc0 | ( code >> 6 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else if( code < 0xd800 || code >= 0xe000 ) { // 3 octet\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xe0 | ( code >> 12 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( code >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( code & 0x3f )\n\t\t\t\t\n\t\t\t} else { // surrogate pair\n\t\t\t\t\n\t\t\t\tconst point = ( ( code - 0xd800 ) << 10 ) + str.charCodeAt( ++ i ) + 0x2400\n\t\t\t\t\n\t\t\t\tbuf[ pos ++ ] = 0xf0 | ( point >> 18 )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 12 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( ( point >> 6 ) & 0x3f )\n\t\t\t\tbuf[ pos ++ ] = 0x80 | ( point & 0x3f )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\treturn pos - from\n\t}\n\n\texport function $mol_charset_encode_size( str: string ) {\n\n\t\tlet size = 0\n\n\t\tfor( let i = 0; i < str.length; i++ ) {\n\t\t\t\n\t\t\tlet code = str.charCodeAt( i )\n\t\t\t\n\t\t\tif( code < 0x80 ) size += 1\n\t\t\telse if( code < 0x800 ) size += 2\n\t\t\telse if( code < 0xd800 || code >= 0xe000 ) size += 3\n\t\t\telse size += 4\n\t\t\t\n\t\t}\n\n\t\treturn size\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_transaction_mode = 'create' | 'exists_truncate' | 'exists_fail' | 'read_only'\n\t\t| 'write_only' | 'read_write' | 'append'\n\n\texport type $mol_file_transaction_buffer = ArrayBufferView\n\n\texport class $mol_file_transaction extends $mol_object {\n\t\tpath() { return '' }\n\n\t\tmodes() { return [] as readonly $mol_file_transaction_mode[] }\n\n\t\twrite(options: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\treturn 0\n\t\t}\n\n\t\tread() {\n\t\t\treturn new Uint8Array()\n\t\t}\n\n\t\ttruncate(size: number) {}\n\n\t\tclose() {}\n\n\t\toverride destructor() {\n\t\t\tthis.close()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\tenum file_modes {\n\t\t/** create if it doesn't already exist */\n\t\tcreate = $node.fs.constants.O_CREAT,\n\t\t/** truncate to zero size if it already exists */\n\t\texists_truncate = $node.fs.constants.O_TRUNC,\n\t\t/** throw exception if it already exists */\n\t\texists_fail = $node.fs.constants.O_EXCL,\n\t\tread_only = $node.fs.constants.O_RDONLY,\n\t\twrite_only = $node.fs.constants.O_WRONLY,\n\t\tread_write = $node.fs.constants.O_RDWR,\n\t\t/** data will be appended to the end */\n\t\tappend = $node.fs.constants.O_APPEND,\n\t}\n\n\tfunction mode_mask(modes: readonly $mol_file_transaction_mode[]) {\n\t\treturn modes.reduce( ( res, mode )=> res | file_modes[ mode ], 0 )\n\t}\n\n\texport class $mol_file_transaction_node extends $mol_file_transaction {\n\t\t@ $mol_mem\n\t\tprotected descr() {\n\t\t\t$mol_wire_solid()\n\t\t\treturn $node.fs.openSync(this.path(), mode_mask(this.modes()) )\n\t\t}\n\n\t\toverride write({ buffer, offset = 0, length, position = null }: {\n\t\t\tbuffer: ArrayBufferView | string | readonly ArrayBufferView[],\n\t\t\toffset?: number | null,\n\t\t\tlength?: number | null,\n\t\t\tposition?: number | null,\n\t\t}) {\n\t\t\tif (Array.isArray(buffer)) {\n\t\t\t\treturn $node.fs.writevSync( this.descr(), buffer, position ?? undefined)\n\t\t\t}\n\n\t\t\tif (typeof buffer === 'string') {\n\t\t\t\treturn $node.fs.writeSync( this.descr(), buffer, position )\n\t\t\t}\n\n\t\t\tlength = length ?? (buffer as ArrayBufferView).byteLength\n\n\t\t\treturn $node.fs.writeSync( this.descr(), buffer as NodeJS.ArrayBufferView, offset, length, position )\n\t\t}\n\n\t\toverride truncate(size: number) {\n\t\t\t$node.fs.ftruncateSync(this.descr())\n\t\t}\n\n\t\toverride read() {\n\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync(this.descr()) as Buffer< ArrayBuffer >)\n\t\t}\n\n\t\toverride close() {\n\t\t\t$node.fs.closeSync(this.descr())\n\t\t}\n\n\t}\n\n\t$.$mol_file_transaction = $mol_file_transaction_node\n}\n","namespace $ {\n\n\texport class $mol_file_base extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic absolute<This extends typeof $mol_file_base>(this: This, path : string ) {\n\t\t\treturn this.make<typeof $mol_file_base>({\n\t\t\t\tpath : $mol_const( path )\n\t\t\t}) as InstanceType< This >\n\t\t}\n\n\t\tstatic relative<This extends typeof $mol_file_base>(this: This, path : string ) : InstanceType<This> {\n\t\t\tthrow new Error( 'Not implemented yet' )\n\t\t}\n\t\t\n\t\tstatic base = ''\n\t\t\n\t\tpath() {\n\t\t\treturn '.'\n\t\t}\n\t\t\n\t\tparent() {\n\t\t\treturn this.resolve( '..' )\n\t\t}\n\n\t\t@ $mol_action\n\t\texists_cut() { return this.exists() }\n\n\t\tprotected root() {\n\t\t\tconst path = this.path()\n\t\t\tconst base = (this.constructor as typeof $mol_file_base).base\n\n\t\t\t// Если путь выше или равен base или если parent такойже как и this - считаем это корнем\n\t\t\treturn base.startsWith(path) || this == this.parent()\n\t\t}\n\n\t\t@ $mol_mem\n\t\tprotected stat(next? : $mol_file_stat | null, virt?: 'virt') {\n\n\t\t\tconst path = this.path()\n\t\t\tconst parent = this.parent()\n\n\t\t\t// Отслеживать проверку наличия родительской папки не стоит до корня диска\n\t\t\t// Лучше ограничить mam-ом\n\t\t\tif ( ! this.root() ) {\n\t\t\t\t/*\n\t\t\t\tЕсли parent папка удалилась, надо ресетнуть все объекты в ней на любой глубине.\n\t\t\t\tНапример, rm -rf с последующим git pull: parent папка может удалиться, потом создасться,\n\t\t\t\tа текущая папка успеет только удалиться до момента выполнения stat.\n\t\t\t\tПоэтому parent.exists() не запустит перевычисления, нужна именно parent.version()\n\n\t\t\t\tОднако, parent.version() меняется не только при удалении, будет ложное срабатывание\n\t\t\t\tС этим придется мириться, красивого решения пока нет.\n\t\t\t\t*/\n\n\t\t\t\tparent.version()\n\t\t\t}\n\t\t\tparent.watcher()\n\n\t\t\tif( virt ) return next ?? null\n\t\t\t\n\t\t\treturn next ?? this.info(path)\n\t\t}\n\n\t\tprotected static changed = new Set<$mol_file_base>\n\n\t\tprotected static frame = null as null | $mol_after_timeout\n\n\t\tprotected static changed_add(type: 'change' | 'rename', path: string) {\n\t\t\tif (/([\\/\\\\]\\.|___$)/.test( path )) return\n\n\t\t\tconst file = this.relative( path.at(-1) === '/' ? path.slice(0, -1) : path )\n\t\t\t// console.log(type, path)\n\n\t\t\t// add (change): добавился файл - у parent надо обновить список sub, если он был заюзан\n\t\t\t// change, unlink (rename): обновился или удалился файл - ресетим\n\t\t\t// addDir (change), добавилась папка, у parent обновляем список директорий в sub\n\t\t\t// дочерние ресетим\n\n\t\t\t// unlinkDir (rename), удалилась папка, ресетим ее\n\t\t\t// stat у всех дочерних обновится сам, т.к. связан с parent.version()\n\t\t\tthis.changed.add(file)\n\n\t\t\tif (! this.watching) return\n\n\t\t\t// throttle, пока события поступают не сбрасываем.\n\t\t\t// аналог awaitWriteFinish из chokidar\n\t\t\t// интервалы между change-сообщениями модифицируемого файла должны быть меньше watch_debounce\n\t\t\tthis.frame?.destructor()\n\t\t\tthis.frame = new this.$.$mol_after_timeout(this.watch_debounce(), () => {\n\t\t\t\tif (! this.watching) return\n\t\t\t\tthis.watching = false\n\t\t\t\t$mol_wire_async(this).flush()\n\t\t\t} )\n\t\t}\n\n\t\t/**\n\t\t * Должно быть больше, чем время между событиями от вотчера при записи внешним процессом.\n\t\t * Иначе запуск ресетов паралельно с изменением может привести к неконсистентности.\n\t\t */\n\t\tstatic watch_debounce() { return 500 }\n\n\t\t@ $mol_action\n\t\tstatic flush() {\n\t\t\t// Пока flush работает, вотчер сюда не заходит, но может добавлять новые изменения\n\t\t\t// на каждом перезапуске они применятся\n\t\t\t// Пока run выполняется, изменения накапливаются, в конце run вызывается flush\n\t\t\t// Пока применяются изменения, run должен ожидать конца flush\n\n\t\t\tfor (const file of this.changed) {\n\t\t\t\tconst parent = file.parent()\n\n\t\t\t\ttry {\n\t\t\t\t\tif ( $mol_wire_probe(() => parent.sub()) ) parent.sub(null)\n\t\t\t\t\tfile.reset()\n\t\t\t\t} catch (error) {\n\t\t\t\t\tif ($mol_fail_catch(error)) $mol_fail_log(error)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.changed.clear()\n\t\t\tthis.watching = true\n\n\t\t\t// this.watch_wd?.destructor()\n\t\t\t// this.watch_wd = null\n\t}\n\n\t\tprotected static watching = true\n\n\t\tprotected static lock = new $mol_lock\n\n\t\t@ $mol_action\n\t\tprotected static watch_off(path: string) {\n\t\t\tthis.watching = false\n\t\t\t// run должен ожидать конца flush\n\t\t\tthis.flush()\n\t\t\tthis.watching = false\n\n\t\t\t/*\n\t\t\twatch запаздывает и событие может прилететь через 3 сек после окончания сайд эффекта\n\t\t\tпоэтому добавляем папку, которую меняет side_effect\n\t\t\tКогда дойдет до выполнения flush, он ресетнет ее\n\t\t\t\n\t\t\tИначе будут лишние срабатывания\n\t\t\tНапример, удалили hyoo/board, watch ресетит и exists начинает отдавать false, срабатывает git clone\n\t\t\tСразу после него событие addDir еще не успело прийти,\n\t\t\tна следующем перезапуске вызывается git pull, т.к.\n\t\t\tс точки зрения реактивной системы hyoo/board еще не существует.\n\t\t\t*/\n\t\t\tthis.changed.add(this.absolute(path))\n\t\t}\n\t\n\t\t// protected static watch_wd = null as null | $mol_after_timeout\n\n\t\tstatic unwatched<Result>(side_effect: () => Result, affected_dir: string) {\n\t\t\t// ждем, пока выполнится предыдущий unwatched\n\t\t\tconst unlock = this.lock.grab()\n\t\t\tthis.watch_off(affected_dir)\n\n\t\t\ttry {\n\t\t\t\tconst result = side_effect()\n\t\t\t\tthis.flush()\n\t\t\t\tunlock()\n\t\t\t\treturn result\n\t\t\t} catch(e) {\n\t\t\t\tif (! $mol_promise_like(e)) {\n\t\t\t\t\tthis.flush()\n\t\t\t\t\tunlock()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\n\t\treset() {\n\t\t\tthis.stat( null )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tmodified() { return this.stat()?.mtime ?? null }\n\n\t\t@ $mol_mem\n\t\tversion() {\n\t\t\tconst next = this.stat()?.mtime.getTime().toString( 36 ).toUpperCase() ?? ''\n\t\t\t// console.log('version', next, this.path())\n\t\t\treturn next\n\t\t}\n\n\t\tprotected info( path: string ) { return null as null | $mol_file_stat }\n\t\tprotected ensure() {}\n\t\tprotected drop() {}\n\t\tprotected copy(to: string) {}\n\t\tprotected read(): Uint8Array<ArrayBuffer> { return new Uint8Array }\n\t\tprotected write(buffer: Uint8Array<ArrayBuffer>) { }\n\t\tprotected kids() {\n\t\t\treturn [] as readonly this[]\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\treadable(opts: { start?: number, end?: number }) {\n\t\t\treturn new ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\twritable(opts: { start?: number }) {\n\t\t\treturn new WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t// open( ... modes: readonly $mol_file_mode[] ) { return 0 }\n\n\t\t@ $mol_mem\n\t\tbuffer( next? : Uint8Array<ArrayBuffer> ): Uint8Array<ArrayBuffer> {\n\n\t\t\t// Если версия пустая - возвращаем пустой буфер\n\t\t\tlet readed: Uint8Array<ArrayBuffer> = new Uint8Array()\n\n\t\t\tif( next === undefined ) {\n\t\t\t\t// Если меняется версия файла, буфер надо перечитать\n\t\t\t\tif ( this.version() ) readed = this.read()\n\t\t\t}\n\n\t\t\tconst prev = $mol_mem_cached( ()=> this.buffer() )\n\t\t\tconst changed = prev === undefined || ! $mol_compare_array( prev, next ?? readed)\n\n\t\t\tif( prev !== undefined && changed ) {\n\t\t\t\t// Логируем, если повторно читаем/пишем и буфер поменялся\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tplace: `$mol_file_node.buffer()`,\n\t\t\t\t\tmessage: 'Changed' ,\n\t\t\t\t\tpath: this.relate() ,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\tif (next === undefined) return changed ? readed : prev\n\n\t\t\t// Если буфер при записи не поменялся и файл не удаляли перед этим - не записываем новую версию.\n\t\t\t// Если записывать, это приведет к смене mtime и вотчер снова триггернется, даже если содержимое файла не поменялось.\n\n\t\t\t// В этом алгоритме есть изъян.\n\t\t\t// Если файл записали, потом отключили вотчер, кто-то из вне его поменял, потом включили вотчер, снова записали тот же буфер,\n\t\t\t// то буфер не запишется на диск, т.к. кэш не консистентен с диском.\n\t\t\t\n\t\t\tif (! changed && this.exists()) return prev\n\t\t\t\n\t\t\tthis.parent().exists( true )\n\t\t\tthis.stat( this.stat_make(next.length), 'virt' )\n\n\t\t\tthis.write(next)\n\n\t\t\treturn next\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tstat_make(size: number) {\n\t\t\tconst now = new Date()\n\t\t\treturn {\n\t\t\t\ttype: 'file',\n\t\t\t\tsize,\n\t\t\t\tatime: now,\n\t\t\t\tmtime: now,\n\t\t\t\tctime: now,\n\t\t\t} as const\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tclone(to: string) {\n\t\t\tif (! this.exists() ) return null\n\n\t\t\tconst target = (this.constructor as typeof $mol_file_base).absolute(to) as this\n\n\t\t\ttry {\n\t\t\t\tthis.version()\n\t\t\t\ttarget.parent().exists(true)\n\t\t\t\tthis.copy(to)\n\t\t\t\ttarget.reset()\n\t\t\t\treturn target\n\t\t\t} catch (error) {\n\t\t\t\tif ( $mol_fail_catch(error)) {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t// static watch_root = ''\n\n\t\t// static watcher_warned = false\n\t\twatcher() {\n\t\t\t// const constructor = this.constructor as typeof $mol_file_base\n\t\t\t// if (! constructor.watcher_warned) {\n\t\t\t// \tconsole.warn(`${constructor}.watcher() not implemented`)\n\t\t\t// \tconstructor.watcher_warned = true\n\t\t\t// }\n\n\t\t\treturn {\n\t\t\t\tdestructor() {}\n\t\t\t}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\texists( next? : boolean ) {\n\t\t\t\n\t\t\tconst exists = Boolean( this.stat() )\n\n\t\t\t// console.log('exists current', exists, 'next', next, this.path())\n\t\t\tif( next === undefined ) return exists\n\t\t\tif( next === exists ) return exists\n\n\t\t\tif( next ) {\n\t\t\t\tthis.parent().exists( true )\n\t\t\t\tthis.ensure()\n\t\t\t} else {\n\t\t\t\tthis.drop()\n\t\t\t}\n\n\t\t\tthis.reset()\n\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\ttype() {\n\t\t\treturn this.stat()?.type ?? ''\n\t\t}\n\t\t\n\t\tname() {\n\t\t\treturn this.path().replace( /^.*\\//, '' )\n\t\t}\n\t\t\n\t\text() {\n\t\t\tconst match = /((?:\\.\\w+)+)$/.exec( this.path() )\n\t\t\treturn match ? match[ 1 ].substring( 1 ) : ''\n\t\t}\n\n\t\ttext(next?: string, virt?: 'virt') {\n\t\t\t// Если записываем text, и вотчер ресетнул записанный файл,\n\t\t\t// то надо снова его обновить, вызвать логику, которая делала пуш в text.\n\t\t\t// Например файл удалили, потом снова создали, версия поменялась - перезаписываем\n\t\t\t// Если использовать version, то вновь созданный файл, через вотчер запустит свое пересоздание\n\t\t\tif (next !== undefined) this.exists()\n\t\t\treturn this.text_int(next, virt)\n\t\t}\n\n\t\t@ $mol_mem\n\t\ttext_int(next?: string, virt?: 'virt') {\n\t\t\tif( virt ) {\n\t\t\t\tthis.stat( this.stat_make(0), 'virt' )\n\t\t\t\treturn next!\n\t\t\t}\n\n\t\t\tif( next === undefined ) {\n\t\t\t\treturn $mol_charset_decode( this.buffer( ) )\t\n\t\t\t} else {\n\t\t\t\tconst buffer = $mol_charset_encode( next )\n\t\t\t\tthis.buffer( buffer )\n\t\t\t\treturn next\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsub(reset?: null) {\n\t\t\tif (! this.exists() ) return []\n\t\t\tif ( this.type() !== 'dir') return []\n\n\t\t\tthis.version()\n\n\t\t\t// Если дочерний file удалился, список надо обновить\n\t\t\treturn this.kids().filter(file => file.exists())\n\t\t}\n\n\t\tresolve(path: string): this {\n\t\t\tthrow new Error('implement')\n\t\t}\n\n\t\trelate( base = ( this.constructor as typeof $mol_file_base ).relative( '.' )): string {\n\t\t\tconst base_path = base.path()\n\t\t\tconst path = this.path()\n\t\t\treturn path.startsWith(base_path) ? path.slice(base_path.length) : path\n\t\t}\n\n\t\tfind(\n\t\t\tinclude? : RegExp ,\n\t\t\texclude? : RegExp\n\t\t) {\n\t\t\tconst found = [] as typeof this[]\n\t\t\tconst sub = this.sub()\n\n\t\t\tfor (const child of sub) {\n\t\t\t\tconst child_path = child.path()\n\n\t\t\t\tif( exclude && child_path.match( exclude ) ) continue\n\n\t\t\t\tif( !include || child_path.match( include ) ) found.push( child )\n\n\t\t\t\tif( child.type() === 'dir' ) {\n\t\t\t\t\tconst sub_child = child.find( include , exclude )\n\t\t\t\t\tfor (const child of sub_child) found.push(child)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn found\n\t\t}\n\n\t\t@ $mol_mem\n\t\tsize() {\n\t\t\tswitch( this.type() ) {\n\t\t\t\tcase 'file': return this.stat()?.size ?? 0\n\t\t\t\tdefault: return 0\n\t\t\t}\n\t\t}\n\t\t\n\t\ttoJSON() {\n\t\t\treturn this.path()\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\topen( ... modes: readonly $mol_file_transaction_mode[] ) {\n\t\t\treturn this.$.$mol_file_transaction.make({\n\t\t\t\tpath: () => this.path(),\n\t\t\t\tmodes: () => modes\n\t\t\t})\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_file_type = 'file' | 'dir' | 'link'\n\n\texport interface $mol_file_stat {\n\t\ttype: $mol_file_type\n\t\tsize: number\n\t\tatime: Date\n\t\tmtime: Date\n\t\tctime: Date\n\t}\n\n\texport class $mol_file extends $mol_file_base {}\n\n}\n","namespace $ {\n\n\tfunction stat_convert(stat: ReturnType<typeof $node.fs.statSync>): null | $mol_file_stat {\n\t\t\n\t\tif( !stat ) return null\n\t\t\n\t\tlet type: $mol_file_type | undefined\n\t\tif (stat.isDirectory()) type = 'dir'\n\t\tif (stat.isFile()) type = 'file'\n\t\tif (stat.isSymbolicLink()) type = 'link'\n\n\t\tif (! type) return $mol_fail( new Error(`Unsupported file type`) )\n\n\t\treturn {\n\t\t\ttype, \n\t\t\tsize: Number(stat.size),\n\t\t\tatime: stat.atime,\n\t\t\tmtime: stat.mtime,\n\t\t\tctime: stat.ctime\n\t\t}\n\t}\n\n\texport function $mol_file_node_buffer_normalize(buf: Buffer< ArrayBuffer >): Uint8Array< ArrayBuffer > {\n\t\treturn new Uint8Array(buf.buffer, buf.byteOffset, buf.byteLength)\n\t}\n\n\texport class $mol_file_node extends $mol_file {\n\n\t\tstatic relative<This extends typeof $mol_file>(this: This, path : string ) {\n\t\t\treturn this.absolute<This>( $node.path.resolve( this.base, path ).replace( /\\\\/g , '/' ) )\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride watcher(reset?: null) {\n\t\t\tconst path = this.path()\n\t\t\tconst root = this.root()\n\t\t\t// Если папки/файла нет, watch упадет с ошибкой\n\t\t\t// exists обратится к parent.version и parent.watcher\n\t\t\t// Поэтому у root-папки и выше не надо вызывать exists, иначе поднимется выше base до корня диска\n\t\t\t// exists вызывать надо, что б пересоздавать вотчер при появлении папки или файла\n\t\t\tif (! root && ! this.exists() ) return super.watcher()\n\n\t\t\tlet watcher\n\n\t\t\ttry {\n\t\t\t\t// Между exists и watch файл может удалиться, в любом случае надо обрабатывать ENOENT\n\t\t\t\twatcher = $node.fs.watch( path )\n\t\t\t} catch (error: any) {\n\t\t\t\tif ( ! (error instanceof Error) ) error = new Error('Unknown watch error', {cause: error})\n\t\t\t\terror.message += '\\n' + path\n\n\t\t\t\tif ( root || error.code !== 'ENOENT' ) {\n\t\t\t\t\tthis.$.$mol_fail_log(error)\n\t\t\t\t}\n\n\t\t\t\t// Если файла нет - вотчер не создается, создастся потом, когда exists поменяется на true.\n\t\t\t\t// Если создание упало с другой ошибкой - не ломаем работу mol_file, деградируем до не реактивной fs.\n\n\t\t\t\treturn super.watcher()\n\t\t\t}\n\n\t\t\twatcher.on('change', (type: 'change' | 'rename', name) => {\n\t\t\t\tif (! name) return\n\t\t\t\tconst path = $node.path.join( this.path(), name.toString() )\n\t\t\t\t;(this.constructor as typeof $mol_file_base).changed_add(type, path)\n\t\t\t})\n\n\t\t\twatcher.on('error', e => this.$.$mol_fail_log(e) )\n\n\t\t\tlet destructed = false\n\n\t\t\twatcher.on('close', () => {\n\t\t\t\t// Если в процессе работы вотчер сам закрылся, надо его переоткрыть\n\t\t\t\tif (! destructed) setTimeout(() => $mol_wire_async(this).watcher(null), 500)\n\t\t\t})\n\n\t\t\treturn {\n\t\t\t\tdestructor() {\n\t\t\t\t\tdestructed = true\n\t\t\t\t\twatcher.close()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override info( path: string ) {\n\t\t\ttry {\n\t\t\t\treturn stat_convert($node.fs.statSync(path))\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\tif (error.code === 'ENOENT') return null\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(error)\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn null\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override ensure() {\n\t\t\tconst path = this.path()\n\t\t\ttry {\n\t\t\t\t$node.fs.mkdirSync( path, { recursive: true } )\n\t\t\t\treturn null\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'EEXIST') return null\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t\tthis.$.$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override copy(to: string) {\n\t\t\t$node.fs.copyFileSync(this.path(), to)\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tprotected override drop() {\n\t\t\t$node.fs.unlinkSync( this.path() )\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override read() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\treturn $mol_file_node_buffer_normalize($node.fs.readFileSync( path ) as Buffer< ArrayBuffer >)\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (! $mol_promise_like(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_action\n\t\tprotected override write(buffer: Uint8Array< ArrayBuffer >) {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\n\t\t\t\t$node.fs.writeFileSync( path, buffer )\n\n\t\t\t} catch( error: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(error)) {\n\t\t\t\t\terror.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\treturn this.$.$mol_fail_hidden( error )\n\t\t\t}\n\n\t\t}\n\n\t\tprotected override kids() {\n\t\t\tconst path = this.path()\n\n\t\t\ttry {\n\t\t\t\tconst kids = $node.fs.readdirSync( path )\n\t\t\t\t\t.filter( name => !/^\\.+$/.test( name ) )\n\t\t\t\t\t.map( name => this.resolve( name ) )\n\n\t\t\t\treturn kids\n\t\t\t} catch( e: any ) {\n\t\t\t\tif (this.$.$mol_fail_catch(e)) {\n\t\t\t\t\tif (e.code === 'ENOENT') return []\n\t\t\t\t\te.message += '\\n' + path\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden(e)\n\t\t\t}\n\t\t}\n\t\t\n\t\toverride resolve( path : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_file )\n\t\t\t\t.relative( $node.path.join( this.path() , path ) ) as this\n\t\t}\n\t\t\n\t\toverride relate( base = ( this.constructor as typeof $mol_file ).relative( '.' )) {\n\t\t\treturn $node.path.relative( base.path() , this.path() ).replace( /\\\\/g , '/' )\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\toverride readable(opts: { start?: number, end?: number }) {\n\t\t\tconst { Readable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createReadStream(this.path(), {\n\t\t\t\tflags: 'r',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tend: opts?.end,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Readable.toWeb(stream) as ReadableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t\t@ $mol_mem\n\t\toverride writable(opts?: { start?: number }) {\n\t\t\tconst { Writable } = $node['node:stream'] as typeof import('node:stream')\n\t\t\tconst stream = $node.fs.createWriteStream(this.path(), {\n\t\t\t\tflags: 'w+',\n\t\t\t\tautoClose: true,\n\t\t\t\tstart: opts?.start,\n\t\t\t\tencoding: 'binary',\n\t\t\t})\n\n\t\t\treturn Writable.toWeb(stream) as WritableStream<Uint8Array<ArrayBuffer>>\n\t\t}\n\n\t}\n\n\n\t$.$mol_file = $mol_file_node\n}\n","namespace $ {\n\t\n\texport var $mol_dom = $mol_dom_context\n\t\n}\n","namespace $ {\n\texport class $mol_state_local_node< Value > extends $mol_state_local< Value > {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dir() {\n\t\t\tconst base = process.env.XDG_DATA_HOME || ( $node.os.homedir() + '/.local/share' )\n\t\t\treturn $mol_file.absolute( base ).resolve( './mol_state_local' )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value< Value >(\n\t\t\tkey : string ,\n\t\t\tnext? : Value | null ,\n\t\t) : Value | null {\n\t\t\t\n\t\t\tconst file = this.dir().resolve( encodeURIComponent( key ) + '.json' )\n\t\t\t\n\t\t\tif( next === null ) {\n\t\t\t\tfile.exists( false )\n\t\t\t\treturn null\n\t\t\t}\n\t\t\t\n\t\t\tconst arg = next === undefined ? undefined : JSON.stringify( next )\n\t\t\treturn JSON.parse( file.text( arg ) || 'null' )\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t$.$mol_state_local = $mol_state_local_node\n}\n","namespace $ {\n\t\n\texport interface $mol_locale_dict {\n\t\t[ key : string ] : string\n\t}\n\t\n\t/**\n\t * Localisation in $mol framework\n\t * @see https://mol.hyoo.ru/#!section=docs/=s5aqnb_odub8l\n\t */\n\texport class $mol_locale extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang_default() {\n\t\t\treturn 'en'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic lang( next? : string ) {\n\t\t\treturn this.$.$mol_state_local.value( 'locale' , next ) || $mol_dom_context.navigator.language.replace( /-.*/ , '' ) || this.lang_default()\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic source( lang : string ) {\n\t\t\treturn JSON.parse( this.$.$mol_file.relative( `web.locale=${ lang }.json` ).text().toString() )\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic texts( lang : string , next? : $mol_locale_dict ) : $mol_locale_dict {\n\t\t\tif( next ) return next\n\t\t\t\n\t\t\ttry {\n\t\t\t\treturn this.source( lang ).valueOf()\n\t\t\t} catch( error: any ) {\n\t\t\t\tif( $mol_fail_catch( error ) ) {\n\t\t\t\t\tconst def = this.lang_default()\n\t\t\t\t\tif( lang === def ) throw error\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic text( key : string ): string {\n\t\t\t\n\t\t\tconst lang = this.lang()\n\n\t\t\tconst target = this.texts( lang )[ key ]\n\t\t\tif( target ) return target\n\t\t\t\n\t\t\tthis.warn( key )\n\t\t\t\n\t\t\tconst en = this.texts( 'en' )[ key ]\n\t\t\tif( !en ) return key\n\t\t\t\n\t\t\treturn en\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic warn( key : string ) {\n\t\t\tconsole.warn( `Not translated to \"${ this.lang() }\": ${ key }` )\n\t\t\treturn null\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\tconst err = $mol_view_tree2_error_str\n\n\tfunction name_of(this: $, prop: $mol_tree2 ) {\n\t\treturn this.$mol_view_tree2_prop_parts(prop).name\n\t}\n\t\n\tfunction params_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\t\n\tfunction args_of( this: $, prop: $mol_tree2, bidi = true ) {\n\t\t\n\t\tconst { key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\treturn prop.struct( '(,)', [\n\t\t\t... key\n\t\t\t\t? key.length > 1\n\t\t\t\t\t? [ prop.data( key.slice(1) ) ]\n\t\t\t\t\t: [ prop.struct( 'id' ) ]\n\t\t\t\t: [],\n\t\t\t... ( bidi && next ) ? [ prop.struct( 'next' ) ] : [],\n\t\t] )\n\t\t\n\t}\n\n\tfunction call_method_name(this: $, child: $mol_tree2, optional: boolean) {\n\t\treturn child.struct( optional ? '?.[]' : '[]', [\n\t\t\tchild.data( name_of.call( this, child ) )\n\t\t] )\n\t}\n\n\tfunction call_of(this: $, bind: $mol_tree2, bidi = true) {\n\t\tif( bind.kids.length === 0 ) {\n\t\t\treturn this.$mol_fail(\n\t\t\t\terr`Required one child at ${bind.span}`\n\t\t\t)\n\t\t}\n\n\t\tconst chain = [ bind.struct( 'this' ) ]\n\n\t\tfor (const child of bind.kids) {\n\t\t\tchain.push(\n\t\t\t\tcall_method_name.call(this, child, chain.length > 1),\n\t\t\t\targs_of.call(this, child, bidi),\n\t\t\t)\n\t\t}\n\n\t\treturn bind.struct( '()', chain )\n\t}\n\n\ttype Context = { chain?: string[] }\n\t\n\tconst localized_string = $$.$mol_tree2_from_string(`\n\t\t()\n\t\t\tthis\n\t\t\t[] \\\\$\n\t\t\t[] \\\\$mol_locale\n\t\t\t[] \\\\text\n\t\t\t(,) #key\n\t`, 'localized_string' )\n\n\tfunction klass_body(\n\t\tthis: $,\n\t\tacc: {\n\t\t\tklass: $mol_tree2\n\t\t\taddons: $mol_tree2[]\n\t\t\tmembers: $mol_tree2[]\n\t\t},\n\t\tprop: $mol_tree2\n\t) {\n\t\tconst { klass, members, addons } = acc\n\t\tconst { name, key, next } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\tconst decorate = ()=> {\n\t\t\treturn prop.struct( '()', [\n\t\t\t\tprop.struct( key ? '$mol_mem_key' : '$mol_mem' ),\n\t\t\t\tprop.struct( '(,)', [\n\t\t\t\t\tprop.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tprop.struct( '[]', [\n\t\t\t\t\t\t\tprop.data( 'prototype' ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tprop.data( name ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t}\n\t\tconst op = prop.kids[0]\n\t\tconst is_delegate = op?.type === '<=>' || op?.type === '='\n\t\tif( ! is_delegate && next ) addons.push( decorate() )\n\t\t\n\t\tconst val = prop.hack<Context>({\n\t\t\t\n\t\t\t'@': ( locale, belt, context )=> {\n\t\t\t\tconst chain = context.chain?.join('_')\n\n\t\t\t\treturn localized_string.hack({\n\t\t\t\t\t'#key': key => [ locale.data( `${ klass.type }_${ name }${ chain ? `_${chain}` : '' }` ) ],\n\t\t\t\t})\n\t\t\t},\n\t\t\t\n\t\t\t'<=': bind => [ call_of.call(this, bind, false) ],\n\n\t\t\t'<=>': bind => [ call_of.call(this, bind, true) ],\n\t\t\t\n\t\t\t'=>': bind => [],\n\t\t\t\n\t\t\t'^': ( ref, belt, context )=> [\n\t\t\t\tref.struct( '...', [\n\t\t\t\t\t\n\t\t\t\t\t// prop ^ foo\n\t\t\t\t\tref.kids[0]?.type\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name_of.call(this, ref.kids[0]) ) ] ),\n\t\t\t\t\t\targs_of.call(this, ref.kids[0])\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// Having $having foo / ^\n\t\t\t\t\t: context.chain\n\t\t\t\t\t? ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'this' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( '$' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( op.type ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'prototype' ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( context.chain[0] ) ] ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( 'call' ) ] ),\n\t\t\t\t\t\tref.struct( '(,)', [ ref.struct( 'obj' ) ] ),\n\t\t\t\t\t\t... context.chain.slice(1).map( field => ref.struct( '[]', [ ref.data( field ) ] ) )\n\t\t\t\t\t] )\n\t\t\t\t\t\n\t\t\t\t\t// prop ^\n\t\t\t\t\t: ref.struct( '()', [\n\t\t\t\t\t\tref.struct( 'super' ),\n\t\t\t\t\t\tref.struct( '[]', [ ref.data( name ) ] ),\n\t\t\t\t\t\tref.struct( '(,)' )\n\t\t\t\t\t] ),\n\t\t\t\t\t\n\t\t\t\t] ),\n\t\t\t],\n\n\t\t\t'=': bind => [ bind.struct( '()', [\n\t\t\t\tbind.struct( 'this' ),\n\t\t\t\t... bind.hack({ '': ( method, belt, ctx )=> [\n\t\t\t\t\tcall_method_name.call( this, method, (ctx.item_index++) > 0 ),\n\t\t\t\t\targs_of.call( this, method ),\n\t\t\t\t\t... method.hack( belt ),\n\t\t\t\t] }, { item_index: 0 }),\n\t\t\t] ) ],\n\t\t\t\t\n\t\t\t'': ( input, belt, context )=> {\n\n\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct('{,}',\n\t\t\t\t\t\t\tinput.kids.map( field => {\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tif( field.type === '^' ) return field.list([ field ]).hack( belt, context )[0]\n\t\t\t\t\t\t\t\tconst field_name = (field.type || field.value).replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\treturn field.struct( ':', [\n\t\t\t\t\t\t\t\t\tfield.data( field_name ),\n\t\t\t\t\t\t\t\t\tfield.kids[0].type === '<=>'\n\t\t\t\t\t\t\t\t\t\t? field.struct( '=>', [\n\t\t\t\t\t\t\t\t\t\t\tparams_of.call(this, field ),\n\t\t\t\t\t\t\t\t\t\t\t... field.hack( belt ),\n\t\t\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\t\t: field.hack<Context>( belt, {... context, chain: [...context.chain ?? [], field_name] })[0],\n\t\t\t\t\t\t\t\t] )\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t} ).filter( this.$mol_guard_defined )\n\t\t\t\t\t\t)\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tif( input.type[0] === '/' ) return [\n\t\t\t\t\tinput.struct( '[,]', input.hack( belt, context ) ),\n\t\t\t\t]\n\t\t\t\tif( input.type && $mol_tree2_js_is_number(input.type) ) return [\n\t\t\t\t\tinput\n\t\t\t\t]\n\n\t\t\t\tif( $mol_view_tree2_class_match( input ) ) {\n\t\t\t\t\tif( ! next ) addons.push( decorate() )\n\t\t\t\t\t\n\t\t\t\t\tconst overrides = [] as $mol_tree2[]\n\t\t\t\t\t\n\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\n\t\t\t\t\t\tif( over.type[0] === '/' ) continue\n\t\t\t\t\t\tconst bind = over.kids[0]\n\t\t\t\t\t\tif( bind.type === '=>' ) continue\n\n\t\t\t\t\t\tconst over_name = name_of.call(this, over )\n\n\t\t\t\t\t\tconst body = [\n\t\t\t\t\t\t\targs_of.call(this, over ),\n\t\t\t\t\t\t\tover.struct( '()', over.hack( belt, { chain: [ over.type ] } )),\n\t\t\t\t\t\t]\n\n\t\t\t\t\t\toverrides.push(\n\t\t\t\t\t\t\tover.struct( '=', [\n\t\t\t\t\t\t\t\tover.struct( '()', [\n\t\t\t\t\t\t\t\t\tover.struct( 'obj' ),\n\t\t\t\t\t\t\t\t\tover.struct( '[]', [\n\t\t\t\t\t\t\t\t\t\tover.data( over_name ),\n\t\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\t\tover.struct( '=>', body ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\treturn [\n\t\t\t\t\t\tinput.struct( 'const', [\n\t\t\t\t\t\t\tinput.struct( 'obj' ),\n\t\t\t\t\t\t\tinput.struct( 'new', [\n\t\t\t\t\t\t\t\tinput.struct( 'this' ),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( '$' ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct('[]', [\n\t\t\t\t\t\t\t\t\tinput.data( input.type.replace(/<.+>/g, '') ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t\tinput.struct( '(,)', input.select( '/', null ).hack( belt ) ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\t... overrides,\n\t\t\t\t\t\tinput.struct( 'obj' ),\n\t\t\t\t\t]\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn [ input ]\n\t\t\t\t\n\t\t\t},\n\t\t\t\n\t\t})\n\n\t\tmembers.push(\n\t\t\tprop.struct( '.', [\n\t\t\t\tprop.data( name ),\n\t\t\t\tparams_of.call(this, prop ),\n\t\t\t\tprop.struct( '{;}', [\n\t\t\t\t\t... next && ! is_delegate ? [\n\t\t\t\t\t\tprop.struct( 'if', [\n\t\t\t\t\t\t\tprop.struct( '(!==)', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t\tprop.struct( 'undefined' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t\tprop.struct( 'return', [\n\t\t\t\t\t\t\t\tprop.struct( 'next' ),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] : [],\n\t\t\t\t\t... val.slice( 0, -1 ),\n\t\t\t\t\tprop.struct( 'return', val.slice( -1 ) ),\n\t\t\t\t] ),\n\t\t\t] )\n\t\t)\n\n\t\treturn acc\n\t}\n\n\texport function $mol_view_tree2_to_js( this: $, descr: $mol_tree2 ) {\n\t\t\n\t\tdescr = $mol_view_tree2_classes( descr )\n\t\t\n\t\tconst definitions = [] as $mol_tree2[]\n\t\t\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst parent = klass.kids[0]\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst addons = [] as $mol_tree2[]\n\t\t\tconst members = [] as $mol_tree2[]\n\t\t\tconst acc = { klass, addons, members }\n\n\t\t\tfor( const prop of props ) {\n\t\t\t\ttry {\n\t\t\t\t\tklass_body.call( this, acc, prop )\n\t\t\t\t} catch (e: any) {\n\t\t\t\t\te.message += ` at ${prop.span}`\n\t\t\t\t\t$mol_fail_hidden(e)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tdefinitions.push(\n\t\t\t\tklass.struct( '=', [\n\t\t\t\t\tklass.struct( '()', [\n\t\t\t\t\t\tklass.struct( '$' ),\n\t\t\t\t\t\tklass.struct( '[]', [\n\t\t\t\t\t\t\tklass.data( klass.type ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t] ),\n\t\t\t\t\tklass.struct( 'class', [\n\t\t\t\t\t\tklass.struct( klass.type ),\n\t\t\t\t\t\tparent.struct( 'extends', [\n\t\t\t\t\t\t\tparent.struct( '()', [\n\t\t\t\t\t\t\t\tparent.struct( '$' ),\n\t\t\t\t\t\t\t\tparent.struct( '[]', [\n\t\t\t\t\t\t\t\t\tparent.data( parent.type ),\n\t\t\t\t\t\t\t\t]),\n\t\t\t\t\t\t\t] ),\n\t\t\t\t\t\t] ),\n\t\t\t\t\t\tklass.struct( '{}', members ),\n\t\t\t\t\t] ),\n\t\t\t\t] ),\n\t\t\t\t... addons,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\treturn descr.list([\n\t\t\tdescr.struct( ';', definitions )\n\t\t])\n\t\t\n\t}\n}\n","namespace $ {\n\n\texport function $mol_view_tree2_to_locale(this: $, module: $mol_tree2) {\n\t\tconst locales: Record<string, string> = {}\n\t\tconst descr = $mol_view_tree2_classes( module )\n\n\t\tfor( const klass of descr.kids ) {\n\n\t\t\tconst props = this.$mol_view_tree2_class_props( klass )\n\t\t\tconst acc = { chain: [] as string[] }\n\n\t\t\tfor (const prop of props) {\n\t\t\t\tconst { name } = this.$mol_view_tree2_prop_parts(prop)\n\n\t\t\t\tprop.hack<typeof acc>({\n\t\t\t\t\t'': ( input, belt, context )=> {\n\t\t\t\t\t\tif( input.type[0] === '@' ) {\n\t\t\t\t\t\t\tconst chain = context.chain?.join('_')\n\t\t\t\t\t\t\tconst path = `${ klass.type }_${ name }${chain.length ? `_${chain}` : ''}`\n\t\t\t\t\t\t\tlocales[path] = input.kids[0].text()\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( input.type[0] === '*' ) {\n\t\t\t\t\t\t\tfor( const field of input.kids ) {\n\t\t\t\t\t\t\t\tif( field.type === '^' ) continue\n\n\t\t\t\t\t\t\t\tconst field_name = field.type.replace(/\\?\\w*$/, '')\n\n\t\t\t\t\t\t\t\tfield.hack( belt, {\n\t\t\t\t\t\t\t\t\t... context,\n\t\t\t\t\t\t\t\t\tchain: [\n\t\t\t\t\t\t\t\t\t\t...context.chain ?? [],\n\t\t\t\t\t\t\t\t\t\tfield_name\n\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( /^[$A-Z]/.test( input.type ) ) {\n\t\t\t\t\t\t\tfor( const over of input.kids ) {\n\t\t\t\t\t\t\t\tif( over.type === '/' ) continue\n\n\t\t\t\t\t\t\t\tconst oname = this.$mol_view_tree2_prop_parts( over ).name\n\t\t\t\t\t\t\t\tover.hack( belt, { ... context, chain: [ oname ] } )\n\t\t\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn [ input ]\n\t\t\t\t\t}\n\t\t\t\t}, acc)\n\t\t\t}\n\t\t}\n\n\t\treturn locales\n\t}\n}\n","namespace $ {\n\texport function $mol_view_tree2_to_text( this: $, tree: $mol_tree2 ) {\n\t\treturn this.$mol_tree2_js_to_text( this.$mol_view_tree2_to_js( tree ) )\n\t}\n}\n","namespace $ {\n\n\texport function $mol_test( set : { [ name : string ] : string | ( ( context : $ )=> void ) } ) {\n\t\t\n\t\tfor( let name in set ) {\n\n\t\t\tconst code = set[ name ]\n\t\t\tconst test = ( typeof code === 'string' ) ? new Function( '' , code ) as ()=> void : code\n\t\t\t\n\t\t\t$mol_test_all.push( test )\n\t\t}\n\n\t\t$mol_test_schedule()\n\t}\n\n\texport let $mol_test_mocks = [] as Array< ( context : $ )=> void >\n\n\texport const $mol_test_all = [] as Array< ( context : $ )=> any >\n\n\texport async function $mol_test_run() {\n\n\t\tfor( var test of $mol_test_all ) {\n\n\t\t\tlet context = Object.create( $$ )\n\t\t\tfor( let mock of $mol_test_mocks ) await mock( context )\n\t\t\t\n\t\t\tconst res = test( context )\n\t\t\tif( $mol_promise_like( res ) ) {\n\t\t\t\tawait new Promise( ( done, fail )=> {\n\t\t\t\t\tres.then( done, fail )\n\t\t\t\t\tsetTimeout( ()=> fail( new Error( 'Test timeout: ' + test.name ) ), 1000 )\n\t\t\t\t} )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\t$$.$mol_log3_done({\n\t\t\tplace: '$mol_test',\n\t\t\tmessage: 'All tests passed',\n\t\t\tcount: $mol_test_all.length,\n\t\t})\n\t\t\n\t}\n\t\n\tlet scheduled = false\n\texport function $mol_test_schedule() {\n\n\t\tif( scheduled ) return\n\t\tscheduled = true\n\n\t\tsetTimeout( async ()=> {\n\t\t\t\n\t\t\tscheduled = false\n \t\t\t\n\t\t\tawait $mol_test_run()\n\t\t\t$$.$mol_test_complete()\n\t\t\t\n\t\t} , 1000 )\n\t\t\n\t}\n\n\t$mol_test_mocks.push( context => {\n\t\tlet seed = 0\n\n\t\tcontext.Math = Object.create( Math )\n\t\tcontext.Math.random = ()=> Math.sin( seed++ )\n\n\t\tconst forbidden = [ 'XMLHttpRequest' , 'fetch' ] as const\n\n\t\tfor( let api of forbidden ) {\n\t\t\tcontext[ api ] = new Proxy( function(){} as any , {\n\t\t\t\tget() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t\tapply() {\n\t\t\t\t\t$mol_fail_hidden( new Error( `${ api } is forbidden in tests` ) )\n\t\t\t\t} ,\n\t\t\t} )\n\t\t}\n\t\t\n\t} )\n\n\t$mol_test({\n\n\t\t'mocked Math.random'( $ ) {\n\t\t\tconsole.assert( $.Math.random() === 0 )\n\t\t\tconsole.assert( $.Math.random() === Math.sin(1) )\n\t\t} ,\n\n\t\t'forbidden XMLHttpRequest'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void new $.XMLHttpRequest )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'XMLHttpRequest is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t\t'forbidden fetch'( $ ) {\n\t\t\ttry {\n\t\t\t\tconsole.assert( void $.fetch('') )\n\t\t\t} catch( error: any ) {\n\t\t\t\tconsole.assert( error.message === 'fetch is forbidden in tests' )\n\t\t\t}\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_test_complete() {\n\t\tprocess.exit(0)\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'FQN of anon function'($) {\n\t\t\tconst $$ = Object.assign( $ , { $mol_func_name_test : ( ()=> ()=> {} )() } )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name( $$.$mol_func_name_test ) , '$mol_func_name_test' )\n\t\t\t$mol_assert_equal( $$.$mol_func_name_test.name , '$mol_func_name_test' )\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_dom_render_children (\n\t\tel : Element | DocumentFragment ,\n\t\tchildNodes : NodeList | Array< Node | string | null >\n\t) {\n\t\tconst node_set = new Set< Node | string | null >( childNodes )\n\t\t\n\t\tlet nextNode : Node | null = el.firstChild\n\t\tfor( let view of childNodes ) {\n\n\t\t\tif( view == null ) continue\n\n\t\t\tif( view instanceof $mol_dom_context.Node ) {\n\t\t\t\t\n\t\t\t\twhile( true ) {\n\t\t\t\t\tif( !nextNode ) {\n\t\t\t\t\t\tel.appendChild( view )\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t\tif( nextNode == view ) {\n\t\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t\t\tbreak\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( node_set.has( nextNode ) ) {\n\t\t\t\t\t\t\tel.insertBefore( view , nextNode )\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst nn = nextNode.nextSibling\n\t\t\t\t\t\t\tel.removeChild( nextNode )\n\t\t\t\t\t\t\tnextNode = nn\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} else {\n\t\t\t\tif( nextNode && nextNode.nodeName === '#text' ) {\n\t\t\t\t\tconst str = String( view )\n\t\t\t\t\tif( nextNode.nodeValue !== str ) nextNode.nodeValue = str\n\t\t\t\t\tnextNode = nextNode.nextSibling\n\t\t\t\t} else {\n\t\t\t\t\tconst textNode = $mol_dom_context.document.createTextNode( String( view ) )\n\t\t\t\t\tel.insertBefore( textNode , nextNode )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\twhile( nextNode ) {\n\t\t\tconst currNode = nextNode\n\t\t\tnextNode = currNode.nextSibling\n\t\t\tel.removeChild( currNode )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_dom_serialize(\n\t\tnode: Node\n\t) {\n\t\tconst serializer = new $mol_dom_context.XMLSerializer\n\t\treturn serializer.serializeToString( node )\n\t}\n\n}\n","namespace $ {\n\n\texport let $mol_jsx_prefix = ''\n\texport let $mol_jsx_crumbs = ''\n\n\texport let $mol_jsx_booked = null as null | Set< string >\n\t\n\texport let $mol_jsx_document : $mol_jsx.JSX.ElementClass['ownerDocument'] = {\n\t\tgetElementById : ()=> null ,\n\t\tcreateElementNS : ( space: string, name : string )=> $mol_dom_context.document.createElementNS( space, name ) as any,\n\t\tcreateDocumentFragment : ()=> $mol_dom_context.document.createDocumentFragment(),\n\t}\n\t\n\texport const $mol_jsx_frag = ''\n\n\t/**\n\t * JSX adapter that makes DOM tree.\n\t * Generates global unique ids for every DOM-element by components tree with ids.\n\t * Ensures all local ids are unique.\n\t * Can reuse an existing nodes by GUIDs when used inside [`mol_jsx_attach`](https://github.com/hyoo-ru/mam_mol/tree/master/jsx/attach).\n\t */\n\texport function $mol_jsx<\n\t\tProps extends $mol_jsx.JSX.IntrinsicAttributes,\n\t\tChildren extends Array< Node | string >\n\t>(\n\t\tElem : string\n\t\t\t| ( ( props : Props , ... children : Children ) => Element ) ,\n\t\tprops : Props ,\n\t\t... childNodes : Children\n\t) : Element | DocumentFragment {\n\n\t\tconst id = props && props.id || ''\n\t\tconst guid = id ? $mol_jsx_prefix ? $mol_jsx_prefix + '/'+ id : id : $mol_jsx_prefix\n\t\tconst crumbs_self = id ? $mol_jsx_crumbs.replace( /(\\S+)/g, `$1_${ id.replace( /\\/.*/i, '' ) }` ) : $mol_jsx_crumbs\n\t\t\n\t\tif( Elem && $mol_jsx_booked ) {\n\t\t\tif( $mol_jsx_booked.has( id ) ) {\n\t\t\t\t$mol_fail( new Error( `JSX already has tag with id ${ JSON.stringify( guid ) }` ) )\n\t\t\t} else {\n\t\t\t\t$mol_jsx_booked.add( id )\n\t\t\t}\n\t\t}\n\n\t\tlet node: Element | DocumentFragment | null = guid ? $mol_jsx_document.getElementById( guid ) : null\n\n\t\tif( $mol_jsx_prefix ) {\n\t\t\t\n\t\t\tconst prefix_ext = $mol_jsx_prefix\n\t\t\tconst booked_ext = $mol_jsx_booked\n\t\t\tconst crumbs_ext = $mol_jsx_crumbs\n\t\t\t\n\t\t\tfor( const field in props ) {\n\t\t\t\t\n\t\t\t\tconst func = props[ field ]\n\t\t\t\tif( typeof func !== 'function' ) continue\n\t\t\t\t\n\t\t\t\t\n\t\t\t\tconst wrapper = function( this: any, ... args: any[] ) {\n\t\t\t\t\t\n\t\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix_ext\n\t\t\t\t\t\t$mol_jsx_booked = booked_ext\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs_ext\n\t\t\t\t\t\t\n\t\t\t\t\t\treturn func.call( this, ... args )\n\t\t\t\t\t\t\n\t\t\t\t\t} finally {\n\t\t\t\t\t\t\n\t\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t$mol_func_name_from( wrapper, func )\n\t\t\t\tprops[ field ] = wrapper as any\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tif( typeof Elem !== 'string' ) {\n\n\t\t\tif( 'prototype' in Elem ) {\n\n\t\t\t\tconst view = node && (node as any)[ String(Elem) ] || new ( Elem as any )\n\t\t\t\t\n\t\t\t\tObject.assign( view , props )\n\t\t\t\tview[ Symbol.toStringTag ] = guid\n\t\t\t\t\n\t\t\t\tview.childNodes = childNodes\n\t\t\t\t\n\t\t\t\tif( !view.ownerDocument ) view.ownerDocument = $mol_jsx_document\n\t\t\t\tview.className = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\t\t\t\n\t\t\t\tnode = view.valueOf()\n\t\t\t\t\n\t\t\t\t;(node as any)![ String(Elem) ] = view\n\t\t\t\t\n\t\t\t\treturn node!\n\n\t\t\t} else {\n\n\t\t\t\tconst prefix = $mol_jsx_prefix\n\t\t\t\tconst booked = $mol_jsx_booked\n\t\t\t\tconst crumbs = $mol_jsx_crumbs\n\t\t\t\t\n\t\t\t\ttry {\n\t\n\t\t\t\t\t$mol_jsx_prefix = guid\n\t\t\t\t\t$mol_jsx_booked = new Set\n\t\t\t\t\t$mol_jsx_crumbs = ( crumbs_self ? crumbs_self + ' ' : '' ) + ( Elem['name'] || Elem )\n\t\n\t\t\t\t\treturn ( Elem as any )( props , ... childNodes )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\n\t\t\t\t\t$mol_jsx_prefix = prefix\n\t\t\t\t\t$mol_jsx_booked = booked\n\t\t\t\t\t$mol_jsx_crumbs = crumbs\n\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( !node ) {\n\t\t\tnode = Elem\n\t\t\t\t? $mol_jsx_document.createElementNS( props?.xmlns ?? 'http://www.w3.org/1999/xhtml', Elem )\n\t\t\t\t: $mol_jsx_document.createDocumentFragment()\n\t\t}\n\n\t\t$mol_dom_render_children( node , ( [] as ( Node | string )[] ).concat( ... childNodes ) )\n\t\tif( !Elem ) return node\n\n\t\tif( guid ) ( node as Element ).id = guid\n\t\tfor( const key in props ) {\n\t\t\tif( key === 'id' ) continue\n\t\t\t\n\t\t\tif( typeof props[ key ] === 'string' ) {\n\t\t\t\t\n\t\t\t\tif( typeof (node as any)[ key ] === 'string' ) (node as any)[ key ] = props[ key ]\n\t\t\t\t;( node as Element ).setAttribute( key , (props as any)[ key ] )\n\t\t\t\t\n\t\t\t} else if(\n\t\t\t\tprops[ key ] &&\n\t\t\t\ttypeof props[ key ] === 'object' &&\n\t\t\t\tReflect.getPrototypeOf( props[ key ] as any ) === Reflect.getPrototypeOf({})\n\t\t\t) {\n\n\t\t\t\tif( typeof (node as any)[ key ] === 'object' ) {\n\t\t\t\t\tObject.assign( ( node as any )[ key ] , props[ key ] )\n\t\t\t\t\tcontinue\n\t\t\t\t}\n\n\t\t\t} else {\n\n\t\t\t\t(node as any)[ key ] = props[ key ]\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tif( $mol_jsx_crumbs ) ( node as Element ).className = ( (props as any)?.['class'] ? (props as any)['class'] + ' ' : '' ) + crumbs_self\n\n\t\treturn node\n\n\t}\n\n\texport declare namespace $mol_jsx.JSX {\n\n\t\texport interface Element extends HTMLElement {\n\t\t\tclass?: string\n\t\t}\n\t\t\n\t\texport interface ElementClass {\n\t\t\tattributes : {}\n\t\t\townerDocument : Pick< Document , 'getElementById' | 'createElementNS' | 'createDocumentFragment' >\n\t\t\tchildNodes : Array< Node | string >\n\t\t\tvalueOf() : Element\n\t\t}\n\t\t\n\t\ttype OrString< Dict > = {\n\t\t\t[ key in keyof Dict ]: Dict[ key ] | string\n\t\t}\n\t\t\n\t\t/** Props for html elements */\n\t\texport type IntrinsicElements = {\n\t\t\t[ key in keyof ElementTagNameMap ]? : $.$mol_type_partial_deep< OrString<\n\t\t\t\t& Element\n\t\t\t\t& IntrinsicAttributes\n\t\t\t\t& ElementTagNameMap[ key ]\n\t\t\t> >\n\t\t}\n\t\t\n\t\t/** Additional undeclared props */\n\t\texport interface IntrinsicAttributes {\n\t\t\tid? : string\n\t\t\txmlns? : string\n\t\t}\n\t\t\n\t\texport interface ElementAttributesProperty {\n\t\t\tattributes : {\n\t\t\t}\n\t\t}\n\t\t\n\t\t// export type IntrinsicClassAttributes< Class > = $.$mol_type_partial_deep< Omit< Class , 'valueOf' > >\n\t\t\n\t\tinterface ElementChildrenAttribute {\n\t\t}\n\t\n\t}\n\n}\n","/** @jsx $mol_jsx */\n/** @jsxFrag $mol_jsx_frag */\nnamespace $ {\n\t\n\t$mol_test({\n\t\t\n\t\t'Make empty div'() {\n\t\t\t$mol_assert_equal( (<div/>).outerHTML , '<div></div>' )\n\t\t} ,\n\t\t\n\t\t'Define native field'() {\n\t\t\t\n\t\t\tconst dom = <input value='123' /> as HTMLInputElement\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<input value=\"123\">' )\n\t\t\t$mol_assert_equal( dom.value, '123' )\n\n\t\t} ,\n\t\t\n\t\t'Define classes'() {\n\t\t\t\n\t\t\tconst dom = <div class={ 'foo bar' } />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div class=\"foo bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define styles'() {\n\t\t\t\n\t\t\tconst dom = <div style={{ color: 'red' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div style=\"color: red;\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define dataset'() {\n\t\t\t\n\t\t\tconst dom = <div dataset={{ foo: 'bar' }} />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div data-foo=\"bar\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define attributes'() {\n\t\t\t\n\t\t\tconst dom = <div lang=\"ru\" hidden />\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div lang=\"ru\" hidden=\"\"></div>' )\n\n\t\t} ,\n\t\t\n\t\t'Define child nodes'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\thello\n\t\t\t\t\t<strong>world</strong>\n\t\t\t\t\t!\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div>hello<strong>world</strong>!</div>' )\n\n\t\t} ,\n\n\t\t'Make fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<>\n\t\t\t\t\t<br />\n\t\t\t\t\t<hr />\n\t\t\t\t</>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_dom_serialize( dom ), '<br xmlns=\"http://www.w3.org/1999/xhtml\" /><hr xmlns=\"http://www.w3.org/1999/xhtml\" />' )\n\n\t\t} ,\n\n\t\t'Spread fragment'() {\n\n\t\t\tconst dom =\n\t\t\t\t<div>\n\t\t\t\t\t<>\n\t\t\t\t\t\t<br />\n\t\t\t\t\t\t<hr />\n\t\t\t\t\t</>\n\t\t\t\t</div>\n\t\t\t\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div><br><hr></div>' )\n\n\t\t} ,\n\n\t\t'Function as component'() {\n\n\t\t\tconst Button = (\n\t\t\t\tprops: { hint: string },\n\t\t\t\ttarget: ()=> string,\n\t\t\t) => {\n\t\t\t\treturn <button title={ props.hint } >{ target() }</button>\n\t\t\t}\n\n\t\t\tconst dom = <Button id=\"foo\" hint=\"click me\">{ ()=> 'hey!' }</Button>\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<button id=\"foo\" title=\"click me\" class=\"Button\">hey!</button>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Nested guid generation'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"bar\">\n\t\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t</Bar>\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: {}, icon: Element )=> {\n\t\t\t\treturn <span>{ icon }<i id=\"label\"/></span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"foo\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"foo\" class=\"Foo\"><span id=\"foo/bar\" class=\"Foo_bar Bar\"><img id=\"foo/icon\" class=\"Foo_icon\"><i id=\"foo/bar/label\" class=\"Foo_bar_label Bar_label\"></i></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on non unique ids'() {\n\n\t\t\tconst App = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t\t<span id=\"bar\" />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <App id=\"foo\" />, 'JSX already has tag with id \"foo/bar\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Owner based guid generationn'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<Bar id=\"middle\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\tconst dom = <Foo id=\"app\" />\n\n\t\t\t$mol_assert_equal( dom.outerHTML, '<div id=\"app\" class=\"Foo\"><span id=\"app/middle\" class=\"Foo_middle Bar\"><img id=\"app/icon\" class=\"Foo_icon\"></span></div>' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Fail on same ids from different caller'() {\n\n\t\t\tconst Foo = ()=> {\n\t\t\t\treturn <div>\n\t\t\t\t\t<img id=\"icon\" />\n\t\t\t\t\t<Bar id=\"bar\" icon={ ()=> <img id=\"icon\" /> } />\n\t\t\t\t</div>\n\t\t\t}\n\n\t\t\tconst Bar = ( props: { icon: ()=> Element } )=> {\n\t\t\t\treturn <span>{ props.icon() }</span>\n\t\t\t}\n\n\t\t\t$mol_assert_fail( ()=> <Foo id=\"foo\" />, 'JSX already has tag with id \"foo/icon\"' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t/** Lazy computed lists with native Array interface. $mol_range2_array is mutable but all derived ranges are immutable. */\n\texport function $mol_range2< Item = number >(\n\t\titem: Item[] | ( ( index : number )=> Item ) = index => index as any ,\n\t\tsize = ()=> Number.POSITIVE_INFINITY ,\n\t): Item[] {\n\t\t\n\t\tconst source = typeof item === 'function' ? new $mol_range2_array< Item >() : item\n\t\t\n\t\tif( typeof item !== 'function' ) {\n\t\t\titem = index => source[ index ]\n\t\t\tsize = ()=> source.length\n\t\t}\n\n\t\treturn new Proxy( source , {\n\n\t\t\tget( target , field ) {\n\n\t\t\t\tif( typeof field === 'string' ) {\n\t\t\t\t\tif( field === 'length' ) return size()\n\t\t\t\t\t\n\t\t\t\t\tconst index = Number( field )\n\t\t\t\t\tif( index < 0 ) return undefined\n\t\t\t\t\tif( index >= size() ) return undefined\n\t\t\t\t\tif( index === Math.trunc( index ) ) return ( item as any )( index )\n\t\t\t\t}\n\n\t\t\t\treturn $mol_range2_array.prototype[ field as any ]\n\t\t\t} ,\n\n\t\t\tset( target , field ) {\n\t\t\t\treturn $mol_fail( new TypeError( `Lazy range is read only (trying to set field ${ JSON.stringify( field ) })` ) )\n\t\t\t} ,\n\n\t\t\townKeys( target ) {\n\t\t\t\treturn [ ... Array( size() ) ].map( ( v, i ) => String( i ) ).concat( 'length' )\n\t\t\t} ,\n\n\t\t\tgetOwnPropertyDescriptor( target , field ) : PropertyDescriptor | undefined {\n\t\t\t\t\n\t\t\t\tif( field === \"length\" ) return {\n\t\t\t\t\tvalue : size() ,\n\t\t\t\t\twritable : true ,\n\t\t\t\t\tenumerable : false ,\n\t\t\t\t\tconfigurable : false ,\n\t\t\t\t}\n\n\t\t\t\tconst index = Number( field )\n\t\t\t\tif( index === Math.trunc( index ) ) return {\n\t\t\t\t\tget : ()=> this.get!( target , field , this ) ,\n\t\t\t\t\tenumerable : true ,\n\t\t\t\t\tconfigurable : true ,\n\t\t\t\t}\n\n\t\t\t\treturn Object.getOwnPropertyDescriptor( target , field )\n\t\t\t}\n\n\t\t} )\n\n\t}\n\n\texport class $mol_range2_array< Item > extends Array< Item > {\n\t\t\n\t\t// Lazy\n\t\tconcat( ... tail : Item[][] ) : Item[] {\n\t\t\tif( tail.length === 0 ) return this as any\n\n\t\t\tif( tail.length > 1 ) {\n\t\t\t\tlet list = this as any\n\t\t\t\tfor( let item of tail ) list = list.concat( item )\n\t\t\t\treturn list\n\t\t\t}\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => index < this.length ? this[ index ] : tail[0][ index - this.length ] ,\n\t\t\t\t()=> this.length + tail[0].length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tfilter< Context > (\n\t\t\tcheck : ( val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\t\n\t\t\tconst filtered = [] as Item[]\n\t\t\tlet cursor = -1\n\t\t\t\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => {\n\t\t\t\t\t\n\t\t\t\t\twhile( cursor < this.length && index >= filtered.length - 1 ) {\n\t\t\t\t\t\tconst val = this[ ++ cursor ]\n\t\t\t\t\t\tif( check( val, cursor, this ) ) filtered.push( val )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn filtered[ index ]\n\t\t\t\t},\n\t\t\t\t()=> cursor < this.length ? Number.POSITIVE_INFINITY : filtered.length,\n\t\t\t)\n\t\t\t\n\t\t}\n\n\t\t// Diligent\n\t\tforEach< Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> void ,\n\t\t\tcontext? : Context,\n\t\t) {\n\t\t\tfor( let [ key , value ] of this.entries() ) proceed.call( context as Context , value , key , this )\n\t\t}\n\n\t\t// Lazy\n\t\tmap< Item_out , Context > (\n\t\t\tproceed : ( this : Context , val : Item , index : number , list : Item[] )=> Item_out ,\n\t\t\tcontext? : Context ,\n\t\t) : Item_out[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => proceed.call( context as Context , this[ index ] , index , this ) ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Diligent\n\t\treduce< Result > (\n\t\t\tmerge : ( result : Result , val : Item , index : number , list : Item[] )=> Result ,\n\t\t\tresult? : Result ,\n\t\t) {\n\t\t\tlet index = 0\n\n\t\t\tif( arguments.length === 1 ) {\n\t\t\t\tresult = this[ index ++ ] as any\n\t\t\t}\n\t\t\t\n\t\t\tfor( ; index < this.length ; ++ index ) {\n\t\t\t\tresult = merge( result as Result , this[ index ] , index , this as any )\n\t\t\t}\n\t\t\t\n\t\t\treturn result\n\t\t}\n\n\t\t// Lazy\n\t\ttoReversed(): Item[] {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ this.length - 1 - index ] ,\n\t\t\t\t()=> this.length ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tslice( from = 0 , to = this.length ) {\n\t\t\treturn $mol_range2(\n\t\t\t\tindex => this[ from + index ] ,\n\t\t\t\t()=> Math.min( to , this.length ) - from ,\n\t\t\t)\n\t\t}\n\n\t\t// Lazy\n\t\tsome< Context > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( check.call( context as Context , this[ index ] , index , this ) ) return true\n\t\t\t}\n\t\t\treturn false\n\t\t}\n\n\t\t// Lazy\n\t\tevery< Narrow extends Item, Context = null >( check: ( value: Item, index: number, array: Item[] )=> value is Narrow, context?: Context ): this is Narrow[]\n\t\tevery< Context = null > (\n\t\t\tcheck : ( this : Context , val : Item , index : number , list : Item[] )=> boolean ,\n\t\t\tcontext? : Context ,\n\t\t) {\n\t\t\tfor( let index = 0 ; index < this.length ; ++ index ) {\n\t\t\t\tif( !check.call( context as Context , this[ index ] , index , this as any as Item[] ) ) return false\n\t\t\t}\n\t\t\treturn true\n\t\t}\n\n\t\treverse() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable reverse is forbidden. Use toReversed instead.` ) )\n\t\t}\n\n\t\tsort() {\n\t\t\treturn $mol_fail( new TypeError( `Mutable sort is forbidden. Use toSorted instead.` ) )\n\t\t}\n\t\t\n\t\tindexOf( needle: Item ) {\n\t\t\treturn this.findIndex( item => item === needle )\n\t\t}\n\t\t\n\t\t[Symbol.toPrimitive]() {\n\t\t\treturn $mol_guid()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'lazy calls'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 10 )\n\n\t\t\t$mol_assert_equal( list[-1] , undefined )\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 9 )\n\t\t\t$mol_assert_equal( list[9.5] , undefined )\n\t\t\t$mol_assert_equal( list[10] , undefined )\n\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'infinity list'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) )\n\n\t\t\t$mol_assert_equal( list.length , Number.POSITIVE_INFINITY )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[Number.MAX_SAFE_INTEGER] , Number.MAX_SAFE_INTEGER )\n\t\t\t$mol_assert_equal( list[Number.POSITIVE_INFINITY] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t} ,\n\n\t\t'stringify'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\t\t\t$mol_assert_equal( list.join(';') , '0;1;2;3;4' )\n\n\t\t} ,\n\n\t\t'for-of'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i of $mol_range2( i => i + 1 , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '12345' )\n\n\t\t} ,\n\n\t\t'for-in'() {\n\n\t\t\tlet log = ''\n\n\t\t\tfor( let i in $mol_range2( i => i , ()=> 5 ) ) {\n\t\t\t\tlog += i\n\t\t\t}\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'forEach'() {\n\n\t\t\tlet log = ''\n\n\t\t\t$mol_range2( i => i , ()=> 5 ).forEach( i => log += i )\n\n\t\t\t$mol_assert_equal( log , '01234' )\n\n\t\t} ,\n\n\t\t'reduce'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2().slice( 1 , 6 )\n\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v ) , 15 )\n\t\t\t$mol_assert_equal( list.reduce( ( s , v )=> s + v , 5 ) , 20 )\n\n\t\t} ,\n\n\t\t'lazy concat'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 ).concat(\n\t\t\t\t[ 0 , 1 , 2 , 3 , 4 ] ,\n\t\t\t\t$mol_range2( index => ( ++ calls2 , index ) , ()=> 5 ) ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 15 )\n\n\t\t\t$mol_assert_equal( list[0] , 0 )\n\t\t\t$mol_assert_equal( list[4] , 4 )\n\t\t\t$mol_assert_equal( list[5] , 0 )\n\t\t\t$mol_assert_equal( list[9] , 4 )\n\t\t\t$mol_assert_equal( list[10] , 0 )\n\t\t\t$mol_assert_equal( list[14] , 4 )\n\t\t\t$mol_assert_equal( list[15] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy filter'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 15 ).filter( v => v % 2 ).slice( 0 , 3 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 1 )\n\t\t\t$mol_assert_equal( list[2] , 5 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 8 )\n\n\t\t} ,\n\n\t\t'lazy reverse'() {\n\t\t\tlet calls = 0\n\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).toReversed().slice(0, 3)\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 3 )\n\n\t\t\t$mol_assert_equal( list[0] , 9 )\n\t\t\t$mol_assert_equal( list[2] , 7 )\n\t\t\t$mol_assert_equal( list[3] , undefined )\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy map'() {\n\n\t\t\tlet calls1 = 0\n\t\t\tlet calls2 = 0\n\t\t\t\n\t\t\tconst source = $mol_range2( index => ( ++ calls1 , index ) , ()=> 5 )\n\t\t\tconst target = source.map(\n\t\t\t\t( item , index , self )=> {\n\t\t\t\t\t++ calls2\n\t\t\t\t\t$mol_assert_equal( source , self )\n\t\t\t\t\treturn index + 10\n\t\t\t\t} ,\n\t\t\t\t()=> 5 ,\n\t\t\t)\n\n\t\t\t$mol_assert_equal( true, target instanceof Array )\n\t\t\t$mol_assert_equal( target.length , 5 )\n\n\t\t\t$mol_assert_equal( target[0] , 10 )\n\t\t\t$mol_assert_equal( target[4] , 14 )\n\t\t\t$mol_assert_equal( target[5] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls1 , 2 )\n\t\t\t$mol_assert_equal( calls2 , 2 )\n\n\t\t} ,\n\n\t\t'lazy slice'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2( index => ( ++ calls , index ) , ()=> 10 ).slice( 3 , 7 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( list[0] , 3 )\n\t\t\t$mol_assert_equal( list[3] , 6 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'lazy some'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( true, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).some( v => v >= 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i , ()=> 0 ).some( v => true ) )\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i ).some( v => v > 5 ) )\n\t\t} ,\n\n\t\t'lazy every'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\t$mol_assert_equal( false, $mol_range2( index => ( ++ calls , index ) , ()=> 5 ).every( v => v < 2 ) )\n\n\t\t\t$mol_assert_equal( calls , 3 )\n\n\t\t\t$mol_assert_equal( true, $mol_range2( i => i , ()=> 0 ).every( v => false ) )\n\t\t\t$mol_assert_equal( false, $mol_range2( i => i ).every( v => v < 5 ) )\n\t\t} ,\n\n\t\t'lazyfy'() {\n\n\t\t\tlet calls = 0\n\t\t\t\n\t\t\tconst list = $mol_range2([ 0 , 1 , 2 , 3 , 4 , 5 ]).map( i => ( ++ calls , i + 10 ) ).slice( 2 )\n\n\t\t\t$mol_assert_equal( true, list instanceof Array )\n\t\t\t$mol_assert_equal( list.length , 4 )\n\n\t\t\t$mol_assert_equal( calls , 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( list[0] , 12 )\n\t\t\t$mol_assert_equal( list[3] , 15 )\n\t\t\t$mol_assert_equal( list[4] , undefined )\n\t\t\t\n\t\t\t$mol_assert_equal( calls , 2 )\n\n\t\t} ,\n\n\t\t'prevent modification'() {\n\n\t\t\tconst list = $mol_range2( i => i , ()=> 5 )\n\n\t\t\t$mol_assert_fail( ()=> list.push( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.pop() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.unshift( 4 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.shift() , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.splice( 1 , 2 ) , TypeError )\n\t\t\t$mol_assert_fail( ()=> list[ 1 ] = 2 , TypeError )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> list.reverse() , TypeError )\n\t\t\t$mol_assert_fail( ()=> list.sort() , TypeError )\n\n\t\t\t$mol_assert_equal( list.toString() , '0,1,2,3,4' )\n\n\t\t}\n\n\t})\n\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\n\t$mol_test({\n\n\t\t'nulls & undefineds'() {\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( null , null ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( undefined , undefined ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( undefined , null ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , null ) )\n\t\t\t\n\t\t} ,\n\n\t\t'number'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( 1 , 1 ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Number.NaN , Number.NaN ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( 1 , 2 ) )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object( 1 ) , Object( 1 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( Object( 1 ) , Object( 2 ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( {} , {} ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { b : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a : 1 } , { a : 2 } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( {} , { a : undefined } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { a: 1, b: 2 } , { b: 2, a: 1 } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( { a : { b : 1 } } , { a : { b : 1 } } ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( Object.create(null), Object.create(null) ) )\n\t\t} ,\n\n\t\t'Array'() {\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 ] , [ 1 , 3 ] ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( [ 1 , 2 , ] , [ 1 , 3 , undefined ] ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2().slice(0,0), new Array() ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( $mol_range2(), $mol_range2() ) )\n\t\t\t\n\t\t} ,\n\n\t\t'Non POJO are different'() {\n\t\t\t\n\t\t\tclass Thing extends Object {}\n\t\t\t$mol_assert_not( $mol_compare_deep( new Thing , new Thing ) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( ()=> 1 , ()=>1 ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new RangeError( 'Test error' ) , new RangeError( 'Test error' ) ) )\n\t\t\t\n\t\t} ,\n\n\t\t'POJO with symbols'() {\n\t\t\tconst sym = Symbol()\n\t\t\t$mol_assert_ok( $mol_compare_deep( { [ sym ]: true }, { [ sym ]: true } ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( { [ Symbol() ]: true }, { [ Symbol() ]: true } ) )\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference'() {\n\n\t\t\tconst a = { foo : {} }\n\t\t\t;(a as any)['self'] = a\n\n\t\t\tconst b = { foo : {} }\n\t\t\t;(b as any)['self'] = b\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( a , b ) )\n\n\t\t} ,\n\n\t\t'same POJOs with cyclic reference with cache warmup'() {\n\t\t\tconst obj1 = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj1_copy = { test: 1, obj3: null as unknown as Object }\n\t\t\tconst obj2 = { test: 2, obj1 }\n\t\t\tconst obj2_copy = { test: 2, obj1: obj1_copy }\n\t\t\tconst obj3 = { test: 3, obj2 }\n\t\t\tconst obj3_copy = { test: 3, obj2: obj2_copy }\n\n\t\t\tobj1.obj3 = obj3\n\t\t\tobj1_copy.obj3 = obj3_copy\n\n\t\t\t// warmup cache\n\t\t\t$mol_assert_not( $mol_compare_deep( obj1 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj2 , {} as any ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( obj3 , {} as any ) )\n\n\t\t\t$mol_assert_ok( $mol_compare_deep( obj3 , obj3_copy ) )\n\n\t\t} ,\n\n\t\t'Date'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Date( 12345 ) , new Date( 12345 ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Date( 12345 ) , new Date( 12346 ) ) )\n\t\t} ,\n\n\t\t'RegExp'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( /\\x22/mig , /\\x22/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x21/mig ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( /\\x22/mig , /\\x22/mg ) )\n\t\t} ,\n\n\t\t'Error'() {\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep( new Error( 'xxx' ) , new Error( 'xxx' ) ) )\n\n\t\t\tconst fail = ( message: string )=> new Error( message )\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'xxx' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t\t$mol_assert_not( $mol_compare_deep(\n\t\t\t\t... [ 'xxx' , 'yyy' ].map( msg => new Error( msg ) ) as [ Error, Error ]\n\t\t\t) )\n\t\t\t\n\t\t} ,\n\n\t\t'Map'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map , new Map ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ 1 , [2] ] ]) , new Map([ [ 1 , [2] ] ]) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [1] , 2 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ 1 , 2 ] ]) , new Map([ [ 1 , 3 ] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Map([ [ [1] , 2 ] ]) , new Map([ [ [3] , 2 ] ]) ) )\n\t\t} ,\n\t\t\n\t\t'Set'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set , new Set ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Set([ 1 , [2] ]) , new Set([ 1 , [2] ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Set([ 1 ]) , new Set([ 2 ]) ) )\n\t\t} ,\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\t\t\n\t\t'DataView'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array().buffer ) , new DataView( new Uint8Array().buffer ) ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]).buffer ) , new DataView( new Uint8Array([ 0 ]).buffer ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new DataView( new Uint8Array([ 0 ]). buffer ) , new DataView( new Uint8Array([ 1 ]).buffer ) ) )\n\t\t} ,\n\t\t\n\t\t'Serializale'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\t\n\t\t\t\tconstructor(\n\t\t\t\t\treadonly name: string,\n\t\t\t\t\treadonly rand = Math.random(),\n\t\t\t\t) {}\n\t\t\t\t\n\t\t\t\t[ Symbol.toPrimitive ]( mode: 'default' | 'number' | 'string' ) {\n\t\t\t\t\treturn this.name\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_ok( $mol_compare_deep( new User( 'Jin' ), new User( 'Jin' ) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new User( 'Jin' ), new User( 'John' ) ) )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'Iterable'() {\n\t\t\t$mol_assert_ok( $mol_compare_deep( new URLSearchParams({ foo: 'bar' }), new URLSearchParams({ foo: 'bar' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx' }), new URLSearchParams({ foo: 'yyy' }) ) )\n\t\t\t$mol_assert_not( $mol_compare_deep( new URLSearchParams({ foo: 'xxx', bar: 'yyy' }), new URLSearchParams({ bar: 'yyy', foo: 'xxx' }) ) )\n\t\t} ,\n\t\t\n\t})\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Argument must be Truthy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_ok( value : any ) {\n\t\tif( value ) return\n\t\t$mol_fail( new Error( `${value} ≠ true` ) )\n\t}\n\t\n\t/**\n\t * Argument must be Falsy\n\t * @deprecated use $mol_assert_equal instead\n\t */\n\texport function $mol_assert_not( value : any ) {\n\t\tif( !value ) return\n\t\t$mol_fail( new Error( `${value} ≠ false` ) )\n\t}\n\t\n\t/**\n\t * Handler must throw an error.\n\t * @example\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } ) // Passes because throws error\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , 'Parse error' ) // Passes because throws right message\n\t * $mol_assert_fail( ()=>{ throw new Error( 'Parse error' ) } , Error ) // Passes because throws right class\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_fail(\n\t\thandler: ()=> any ,\n\t\tErrorRight: string | typeof Error | typeof Promise\n\t) {\n\t\t\n\t\tconst fail = $.$mol_fail\n\t\t\n\t\ttry {\n\t\t\t$.$mol_fail = $.$mol_fail_hidden\n\t\t\t\n\t\t\thandler()\n\n\t\t} catch( error: any ) {\n\t\t\t\n\t\t\t$.$mol_fail = fail\n\n\t\t\tif( typeof ErrorRight === 'string' ) {\n\t\t\t\t$mol_assert_equal( error.message ?? error, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_equal( error instanceof ErrorRight, true )\n\t\t\t}\n\t\t\t\n\t\t\treturn error\n\n\t\t} finally {\n\t\t\t$.$mol_fail = fail\n\t\t}\n\n\t\t$mol_fail( new Error( 'Not failed' ) )\n\t}\n\t\n\t/** @deprecated Use $mol_assert_equal */\n\texport function $mol_assert_like< Value >( ... args : [ Value, Value, ...Value[] ] ) {\n\t\t$mol_assert_equal( ... args )\n\t}\n\t\n\t/**\n\t * All arguments must not be structural equal to each other.\n\t * @example\n\t * $mol_assert_unique( 1 , 2 , 3 ) // Passes\n\t * $mol_assert_unique( 1 , 1 , 2 ) // Fails because 1 === 1\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_unique( ... args : [ any, any, ...any[] ] ) {\n\t\t\n\t\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\t\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( !$mol_compare_deep( args[i], args[j] ) ) continue\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error(\n\t\t\t\t\t`Uniquesess assertion failure`,\n\t\t\t\t\t{ cause: { [i]: args[i], [i]: args[i] } },\n\t\t\t\t) )\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n\t/**\n\t * All arguments must be structural equal each other.\n\t * @example\n\t * $mol_assert_like( [1] , [1] , [1] ) // Passes\n\t * $mol_assert_like( [1] , [1] , [2] ) // Fails because 1 !== 2\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\n\t */\n\texport function $mol_assert_equal< Value >( ... args : [ Value, Value, ... Value[] ] ) {\n\t\tfor( let i = 1 ; i < args.length ; ++i ) {\n\t\t\t\n\t\t\tif( $mol_compare_deep( args[0] , args[i] ) ) continue\n\t\t\t\n\t\t\treturn $mol_fail( new Error(\n\t\t\t\t`Equality assertion failure`,\n\t\t\t\t{ cause: { 0: args[0], [i]: args[i] } },\n\t\t\t) )\n\t\t\t\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'must be false'() {\n\t\t\t$mol_assert_not( 0 )\n\t\t} ,\n\t\t\n\t\t'must be true'() {\n\t\t\t$mol_assert_ok( 1 )\n\t\t} ,\n\t\t\n\t\t'two must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'three must be equal'() {\n\t\t\t$mol_assert_equal( 2 , 2 , 2 )\n\t\t} ,\n\t\t\n\t\t'two must be unique'() {\n\t\t\t$mol_assert_unique( [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 1 ] , [ 2 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_equal( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\n\t\t'two object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 } )\n\t\t} ,\n\n\t\t'three object must be alike'() {\n\t\t\t$mol_assert_equal( { a: 1 }, { a: 1 }, { a: 1 } )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_log3_come = ()=> {}\n\t\t$.$mol_log3_done = ()=> {}\n\t\t$.$mol_log3_fail = ()=> {}\n\t\t$.$mol_log3_warn = ()=> {}\n\t\t$.$mol_log3_rise = ()=> {}\n\t\t$.$mol_log3_area = ()=> ()=> {}\n\t} )\n\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'return result without errors'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_try( ()=> false ) , false )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t//'return error if thrown'() {\n\t\t//\t\n\t\t//\tconst error = new Error( '$mol_try test error' )\n\t\t//\t$mol_assert_equal( $mol_try( ()=> { throw error } ) , error )\n\t\t//\t\n\t\t//} ,\n\t\t\n\t})\t\n}\n","namespace $ {\n\t$mol_test_mocks.push( $=> $.$mol_fail_log = ()=> false )\n}\n\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'get'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( proxy.foo , 777 )\n\t\t},\n\n\t\t'has'() {\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t$mol_assert_equal( 'foo' in proxy , true )\n\t\t},\n\n\t\t'set'() {\n\t\t\tconst target = { foo : 777 }\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> target )\n\t\t\tproxy.foo = 123\n\t\t\t$mol_assert_equal( target.foo , 123 )\n\t\t},\n\t\t\n\t\t'getOwnPropertyDescriptor'() {\n\n\t\t\tconst proxy = $mol_delegate( {} as any , ()=> ({ foo : 777 }) )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tObject.getOwnPropertyDescriptor( proxy , 'foo' ),\n\t\t\t\t{\n\t\t\t\t\tvalue: 777,\n\t\t\t\t\twritable: true,\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tconfigurable: true,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'ownKeys'() {\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> ({ foo : 777 , [ Symbol.toStringTag ] : 'bar' }),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tReflect.ownKeys( proxy ),\n\t\t\t\t[ 'foo' , Symbol.toStringTag ],\n\t\t\t)\n\n\t\t},\n\n\t\t'getPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} as any ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( proxy ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'setPrototypeOf'() {\n\n\t\t\tclass Foo {}\n\t\t\tconst target = {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> target,\n\t\t\t)\n\n\t\t\tObject.setPrototypeOf( proxy , Foo.prototype )\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tObject.getPrototypeOf( target ),\n\t\t\t\tFoo.prototype,\n\t\t\t)\n\n\t\t},\n\n\t\t'instanceof'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t\t'autobind'() {\n\n\t\t\tclass Foo {}\n\n\t\t\tconst proxy = $mol_delegate(\n\t\t\t\t{} ,\n\t\t\t\t()=> new Foo,\n\t\t\t)\n\n\t\t\t$mol_assert_ok( proxy instanceof Foo )\n\t\t\t$mol_assert_ok( proxy instanceof $mol_delegate )\n\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'auto name'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix {}\n\t\t\tconst mix = new Invalid( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_equal( mix.name, 'Invalid_Error' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'simpe mix'() {\n\t\t\t\n\t\t\tconst mix = new $mol_error_mix( 'foo', {},\n\t\t\t\tnew Error( 'bar' ),\n\t\t\t\tnew Error( 'lol' ),\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( mix.message, 'foo' )\n\t\t\t$mol_assert_equal( mix.errors.map( e => e.message ), [ 'bar', 'lol' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'provide additional info'() {\n\t\t\t\n\t\t\tclass Invalid extends $mol_error_mix<{\n\t\t\t\tvalue: string,\n\t\t\t\thint: string,\n\t\t\t}> {}\n\t\t\t\n\t\t\tconst mix: unknown = new $mol_error_mix( 'Wrong password', {},\n\t\t\t\tnew Invalid( 'Too short', { value: 'p@ssw0rd', hint: '> 8 letters' } ),\n\t\t\t\tnew Invalid( 'Too simple', { value: 'p@ssw0rd', hint: 'need capital letter' } ),\n\t\t\t)\n\t\t\t\n\t\t\tconst hints = [] as string[]\n\t\t\t\n\t\t\tif( mix instanceof $mol_error_mix ) {\n\t\t\t\tfor( const er of mix.errors ) {\n\t\t\t\t\tif( er instanceof Invalid ) {\n\t\t\t\t\t\thints.push( er.cause?.hint ?? '' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( hints, [ '> 8 letters', 'need capital letter' ] )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'init with overload'() {\n\t\t\tclass X extends $mol_object {\n\t\t\t\tfoo() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = X.make({\n\t\t\t\tfoo : ()=> 2 ,\n\t\t\t})\n\t\t\t\n\t\t\t$mol_assert_equal( x.foo() , 2 )\n\t\t} ,\n\t\t\t\n\t\t'Context in instance inherits from class'($) {\n\t\t\tconst custom = $.$mol_ambient({})\n\t\t\tclass X extends $.$mol_object {\n\t\t\t\tstatic $ = custom\n\t\t\t}\n\n\t\t\t$mol_assert_equal(new X().$, custom)\n\t\t},\n\n\t} )\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Collect deps'() {\n\t\t\t\n\t\t\tconst pub1 = new $mol_wire_pub\n\t\t\tconst pub2 = new $mol_wire_pub\n\t\t\tconst sub = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub2, pub2 ] )\n\t\t\t\n\t\t\tconst bu2 = sub.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tpub1.promote()\n\t\t\t\tpub1.promote()\n\t\t\t\tpub2.promote()\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub.track_cut()\n\t\t\t\tsub.track_off( bu2 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tpub1.emit()\n\t\t\tpub2.emit()\n\t\t\t\n\t\t\t$mol_assert_like( sub.pub_list, [ pub1, pub1, pub2 ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'cyclic detection'( $ ) {\n\t\t\t\n\t\t\tconst sub1 = new $mol_wire_pub_sub\n\t\t\tconst sub2 = new $mol_wire_pub_sub\n\t\t\t\n\t\t\tconst bu1 = sub1.track_on()\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst bu2 = sub2.track_on()\n\t\t\t\ttry {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_fail( ()=> sub1.promote(), 'Circular subscription' )\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tsub2.track_cut()\n\t\t\t\t\tsub2.track_off( bu2 )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tsub1.track_cut()\n\t\t\t\tsub1.track_off( bu1 )\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\t/// @todo right orderinng\n\texport let $mol_after_mock_queue = [] as ( ()=> void )[]\n\n\texport function $mol_after_mock_warp() {\n\t\tconst queue = $mol_after_mock_queue.splice( 0 )\n\t\tfor( const task of queue ) task()\n\t}\n\n\texport class $mol_after_mock_commmon extends $mol_object2 {\n\n\t\tpromise = Promise.resolve()\n\t\tcancelled = false\n\t\tid : any\n\n\t\tconstructor( public task : ()=> void ) {\n\t\t\tsuper()\n\t\t\t$mol_after_mock_queue.push( task )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tconst index = $mol_after_mock_queue.indexOf( this.task )\n\t\t\tif( index >= 0 )$mol_after_mock_queue.splice( index , 1 )\n\t\t}\n\n\t}\n\n\texport class $mol_after_mock_timeout extends $mol_after_mock_commmon {\n\n\t\tconstructor(\n\t\t\tpublic delay : number ,\n\t\t\ttask : ()=> void ,\n\t\t) {\n\t\t\tsuper( task )\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_tick = $mol_after_mock_commmon as any as typeof $mol_after_tick\n\t})\n\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Sync execution'() {\n\n\t\t\tclass Sync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic calc( a: number, b: number ) {\n\t\t\t\t\treturn a + b\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Sync.calc( 1, 2 ), 3 )\n\t\t\t\n\t\t},\n\n\t\tasync 'async <=> sync'() {\n\t\t\t\n\t\t\tclass SyncAsync extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await SyncAsync.calc( 1, 2 ), 8 )\n\n\t\t},\n\n\t\tasync 'Idempotence control'() {\n\n\t\t\tclass Idempotence extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic logs_idemp = 0\n\t\t\t\tstatic logs_unidemp = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic log_idemp() {\n\t\t\t\t\tthis.logs_idemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic log_unidemp() {\n\t\t\t\t\tthis.logs_unidemp += 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async val( a: number ) {\n\t\t\t\t\treturn a\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic sum( a: number, b: number ) {\n\t\t\t\t\tthis.log_idemp()\n\t\t\t\t\tthis.log_unidemp()\n\t\t\t\t\tconst syn = $mol_wire_sync( this )\n\t\t\t\t\treturn syn.val( a ) + syn.val( b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async calc( a: number, b: number ) {\n\t\t\t\t\treturn 5 + await $mol_wire_async( this ).sum( a, b )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( await Idempotence.calc( 1, 2 ), 8 )\n\t\t\t$mol_assert_equal( Idempotence.logs_idemp, 1 )\n\t\t\t$mol_assert_equal( Idempotence.logs_unidemp, 3 )\n\n\t\t},\n\n\t\tasync 'Error handling'() {\n\t\t\t\n\t\t\tclass Handle extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic async sum( a: number, b: number ){\n\t\t\t\t\t$mol_fail( new Error( 'test error ' + ( a + b ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic check() {\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn $mol_wire_sync( Handle ).sum( 1, 2 )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t\t\t$mol_assert_equal( error.message, 'test error 3' )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tawait $mol_wire_async( Handle ).check()\n\t\t\t\n\t\t},\n\t\t\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn ''\n\t\t\t\t}\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_async(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, Promise<string>>\n\t\t},\n\t\t\n\t\tasync 'Latest method calls wins'( $ ) {\n\t\t\t\n\t\t\tclass NameLogger extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic first = [] as string[]\n\t\t\t\tstatic last = [] as string[]\n\t\t\t\t\n\t\t\t\tstatic send( next: string ) {\n\t\t\t\t\t$mol_wire_sync( this.first ).push( next )\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\tthis.last.push( next )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( NameLogger ).send\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( NameLogger.first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( NameLogger.last, [ 'jin' ] )\n\n\t\t},\n\n\t\tasync 'Latest function calls wins'( $ ) {\n\t\t\t\n\t\t\tconst first = [] as string[]\n\t\t\tconst last = [] as string[]\n\t\t\t\n\t\t\tfunction send_name( next: string ) {\n\t\t\t\t$mol_wire_sync( first ).push( next )\n\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\tlast.push( next )\n\t\t\t}\n\t\t\t\n\t\t\tconst name = $mol_wire_async( send_name )\n\t\t\t\n\t\t\tname( 'john' )\n\t\t\tconst promise = name( 'jin' )\n\t\t\t\n\t\t\t$.$mol_after_mock_warp()\n\t\t\tawait promise\n\t\t\t\n\t\t\t$mol_assert_equal( first, [ 'john', 'jin' ] )\n\t\t\t$mol_assert_equal( last, [ 'jin' ] )\n\t\t\t\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'test types'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn Promise.resolve('')\n\t\t\t\t}\n\n\t\t\t\tstatic b() {\n\t\t\t\t\treturn $mol_wire_sync(this).a()\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttype Check = $mol_type_assert<ReturnType<typeof A['b']>, string>\n\t\t},\n\n\t\tasync 'test method from host'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test function'( $ ) {\n\t\t\tlet count = 0\n\t\t\tclass A {\n\t\t\t\tstatic a() {\n\t\t\t\t\treturn $mol_wire_sync(this.b)()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve(++count) }\n\t\t\t}\n\n\t\t\t\n\t\t\t$mol_assert_equal(await $mol_wire_async(A).a(), 1, count)\n\n\t\t},\n\n\t\tasync 'test construct itself'( $ ) {\n\t\t\tclass A {\n\t\t\t\tstatic instances = [] as A[]\n\n\t\t\t\tstatic a() {\n\t\t\t\t\tconst a = new ($mol_wire_sync(A))()\n\t\t\t\t\tthis.instances.push( a )\n\t\t\t\t\t$mol_wire_sync(this).b()\n\t\t\t\t}\n\n\t\t\t\tstatic b() { return Promise.resolve() }\n\t\t\t}\n\n\t\t\tawait $mol_wire_async(A).a()\n\t\t\t$mol_assert_equal(A.instances.length, 2)\n\t\t\t$mol_assert_equal(A.instances[0] instanceof A, true)\n\n\t\t\t$mol_assert_equal(A.instances[0], A.instances[1])\n\n\t\t}\n\t})\n\n}\n\n","namespace $ {\n\texport class $mol_promise<Result = void> extends Promise<Result> {\n\t\tdone: (value: Result | PromiseLike<Result>) => void\n\t\tfail: (reason?: any) => void\n\n\t\tconstructor(\n\t\t\texecutor?: (\n\t\t\t\tdone: (value: Result | PromiseLike<Result>) => void,\n\t\t\t\tfail: (reason?: any) => void\n\t\t\t) => void\n\t\t) {\n\t\t\tlet done: (value: Result | PromiseLike<Result>) => void\n\t\t\tlet fail: (reason?: any) => void\n\n\t\t\tsuper((d, f) => {\n\t\t\t\tdone = d\n\t\t\t\tfail = f\n\t\t\t\texecutor?.(d, f)\n\t\t\t})\n\n\t\t\tthis.done = done!\n\t\t\tthis.fail = fail!\n\t\t}\n\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_timeout = $mol_after_mock_timeout as any as typeof $mol_after_timeout\n\t})\n\n}\n","namespace $ {\n\n\tdeclare function requestIdleCallback( task : ()=> void , options? : { timeout : number } ) : any\n\tdeclare function cancelIdleCallback( id : any ) : void\n\n\texport class $mol_after_work 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 = requestIdleCallback( task , { timeout : delay } )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tcancelIdleCallback( this.id )\n\t\t}\n\n\t}\n\t\n\tif( typeof requestIdleCallback !== 'function' ) {\n\t\t$.$mol_after_work = $mol_after_timeout\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_work = $mol_after_mock_timeout as any as typeof $mol_after_work\n\t})\n\n}\n","namespace $ {\n\t\n\texport function $mol_wait_rest_async( this: $ ) {\n\t\treturn new Promise( done => {\n\t\t\tnew this.$mol_after_work( 16 , ()=> done( null ) )\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_rest( this: $ ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_rest_async()\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_timeout = function $mol_wait_timeout_mock( this: $, timeout: number ) { }\n\t\t$.$mol_wait_timeout_async = async function $mol_wait_timeout_async_mock( this: $, timeout: number ) {}\n\t} )\n\n}\n","namespace $ {\n\t\n\texport function $mol_wait_timeout_async( this: $, timeout: number ): Promise< void > {\n\t\tconst promise = new $mol_promise()\n\t\tconst task = new this.$mol_after_timeout( timeout , ()=> promise.done() )\n\t\treturn Object.assign( promise, {\n\t\t\tdestructor: ()=> task.destructor()\n\t\t} )\n\t}\n\t\n\texport function $mol_wait_timeout( this: $, timeout: number ) {\n\t\treturn this.$mol_wire_sync( this ).$mol_wait_timeout_async( timeout )\n\t}\n\t\n}\n","namespace $.$$ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_wait_rest = function $mol_wait_rest_mock( this: $ ) { }\n\t\t$.$mol_wait_rest_async = async function $mol_wait_rest_async_mock( this: $ ) {}\n\t} )\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\tasync 'exec timeout auto kill child process'($) {\n\t\t\tlet close_mock = () => {}\n\t\t\tconst error_message = 'Run error, timeout'\n\n\t\t\tfunction mol_run_spawn_sync_mock() {\n\t\t\t\treturn {\n\t\t\t\t\toutput: [],\n\t\t\t\t\tstdout: error_message,\n\t\t\t\t\tstderr: '',\n\t\t\t\t\tstatus: 0,\n\t\t\t\t\tsignal: null,\n\t\t\t\t\tpid: 123,\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfunction mol_run_spawn_mock() {\n\t\t\t\treturn {\n\t\t\t\t\ton(name: string, cb: () => void) {\n\t\t\t\t\t\tif (name === 'exit') close_mock = cb\n\t\t\t\t\t},\n\t\t\t\t\tkill() { close_mock() }\n\t\t\t\t} as any\n\t\t\t}\n\n\t\t\tconst context_mock = $.$mol_ambient({\n\t\t\t\t$mol_run_spawn_sync: mol_run_spawn_sync_mock,\n\t\t\t\t$mol_run_spawn: mol_run_spawn_mock\n\t\t\t})\n\n\t\t\tclass $mol_run_mock extends $mol_run {\n\t\t\t\tstatic get $() { return context_mock }\n\t\t\t\tstatic override async_enabled() {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet message = ''\n\t\t\ttry {\n\t\t\t\tconst res = await $mol_wire_async($mol_run_mock).spawn({\n\t\t\t\t\tcommand: 'sleep 10',\n\t\t\t\t\tdir: '.',\n\t\t\t\t\ttimeout: 10,\n\t\t\t\t\tenv: { 'MOL_RUN_ASYNC': '1' }\n\t\t\t\t})\n\t\t\t} catch (e) {\n\t\t\t\tmessage= (e as Error).message\n\t\t\t}\n\t\t\t$mol_assert_equal(message, error_message)\n\t\t}\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t'span for same uri'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.span(4, 5, 8)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 4)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 8)\n\t\t},\n\n\t\t'span after of given position'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst child = span.after(11)\n\n\t\t\t$mol_assert_equal(child.uri, 'test.ts')\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 7)\n\t\t\t$mol_assert_equal(child.length, 11)\n\t\t},\n\n\t\t'slice span - regular'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(1, 4)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 4)\n\t\t\t$mol_assert_equal(child.length, 3)\n\n\t\t\tconst child2 = span.slice(2, 2)\n\n\t\t\t$mol_assert_equal(child2.col, 5)\n\t\t\t$mol_assert_equal(child2.length, 0)\n\t\t},\n\n\t\t'slice span - negative'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\t\t\tconst child = span.slice(-3, -1)\n\n\t\t\t$mol_assert_equal(child.row, 1)\n\t\t\t$mol_assert_equal(child.col, 5)\n\t\t\t$mol_assert_equal(child.length, 2)\n\t\t},\n\n\t\t'slice span - out of range'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 5)\n\n\t\t\t$mol_assert_fail( ()=> span.slice(-1, 3), `End value '3' can't be less than begin value (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 6), `End value '6' out of range (test.ts#1:3/5)` )\n\t\t\t$mol_assert_fail( ()=> span.slice(1, 10), `End value '10' out of range (test.ts#1:3/5)` )\n\t\t},\n\n\t\t'error handling'( $ ) {\n\t\t\tconst span = new $mol_span('test.ts', '', 1, 3, 4)\n\t\t\tconst error = span.error('Some error')\n\n\t\t\t$mol_assert_equal(error.message, 'Some error (test.ts#1:3/4)')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'all cases of using maybe'() {\n\t\t\t$mol_assert_equal( $mol_maybe( 0 )[ 0 ] , 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( false )[ 0 ] , false )\n\t\t\t$mol_assert_equal( $mol_maybe( null )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( void 0 )[ 0 ] , void 0 )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_maybe< number >( void 0 ).map( v => v.toString() )[ 0 ] , void 0 )\n\t\t\t$mol_assert_equal( $mol_maybe( 0 ).map( v => v.toString() )[ 0 ] , '0' )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'fromJSON'() {\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([]).toString() , '/\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ false , true ]).toString() , '/\\n\\tfalse\\n\\ttrue\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ 0 , 1 , 2.3 ]).toString() , '/\\n\\t0\\n\\t1\\n\\t2.3\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json( new Uint16Array([ 1, 10, 256 ]) ).toString() , '\\\\\\x01\\x00\\n\\\\\\x00\\x00\\x01\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json([ '' , 'foo' , 'bar\\nbaz' ]).toString() , '/\\n\\t\\\\\\n\\t\\\\foo\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n' )\n\t\t\t$mol_assert_equal( $mol_tree2_from_json({ 'foo' : false , 'bar\\nbaz' : 'lol' }).toString() , '*\\n\\tfoo false\\n\\t\\\\\\n\\t\\t\\\\bar\\n\\t\\t\\\\baz\\n\\t\\t\\\\lol\\n' )\n\t\t} ,\n\t\t\n\t} )\t\n}\n","namespace $ {\n\t\n\tfunction check( tree: $mol_tree2, ideal: string ) {\n\t\t$mol_assert_equal(\n\t\t\ttree.toString(),\n\t\t\t$$.$mol_tree2_from_string( ideal ).toString(),\n\t\t)\n\t}\n\t\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string( `\n\t\t\t\t\ta b c d\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`).insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' ),\n\t\t\t\t`\n\t\t\t\t\ta b c x\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b x\n\t\t\t\t`,\n\t\t\t)\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b\n\t\t\t\t`)\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null ),\n\t\t\t\t`\n\t\t\t\t\ta b \\\\\n\t\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'updating'($) {\n\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x') ] )[0],\n\t\t\t\t`\n\t\t\t\t\tx\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\t$.$mol_tree2_from_string(`\n\t\t\t\t\ta b c d\n\t\t\t\t`).update( [ $mol_tree2.struct('x'), $mol_tree2.struct('y') ], 'a', 'b', 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t\t\tx\n\t\t\t\t\t\ty\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'deleting'($) {\n\t\t\t\n\t\t\tconst base = $.$mol_tree2_from_string(`\n\t\t\t\ta b c d\n\t\t\t`)\n\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 'a' , 'b' , 'c' ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.update( base.select( 'a', 'b', 'c', null ).kids , 'a' , 'b' , 'c' )[0],\n\t\t\t\t`\n\t\t\t\t\ta b d\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t\tcheck(\n\t\t\t\tbase.insert( null , 0, 0, 0 ),\n\t\t\t\t`\n\t\t\t\t\ta b\n\t\t\t\t`,\n\t\t\t)\n\t\t\t\n\t\t} ,\n\n\t\t'hack'($) {\n\n\t\t\tconst res = $.$mol_tree2_from_string(`\n\t\t\t\tfoo bar xxx\n\t\t\t`)\n\t\t\t.hack({\n\t\t\t\t'bar' : ( input , belt )=> [ input.struct( '777' , input.hack( belt ) ) ] ,\n\t\t\t})\n\n\t\t\t$mol_assert_equal( res.map( String ) , [ 'foo 777 xxx\\n' ] )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'tree parsing'( $ ) {\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\nbar\\n\" ).kids[ 1 ].type , \"bar\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo\\n\\n\\n\" ).kids.length , 1 )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids.length , 2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"=foo\\n\\\\bar\\n\" ).kids[ 1 ].value , \"bar\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar \\\\pol\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 0 ].value , \"pol\" )\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( \"foo bar\\n\\t\\\\pol\\n\\t\\\\men\\n\" ).kids[ 0 ].kids[ 0 ].kids[ 1 ].value , \"men\" )\n\t\t\t\n\t\t\t$mol_assert_equal( $.$mol_tree2_from_string( 'foo bar \\\\text\\n' ).toString() , 'foo bar \\\\text\\n' )\n\t\t} ,\n\n\t\t'Too many tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too many tabs\\ntest#3:1/6\\n!!!!!!\\n\\t\\t\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Too few tabs'( $ ) {\n\n\t\t\tconst tree = `\n\t\t\t\t\tfoo\n\t\t\t\tbar\n\t\t\t`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Too few tabs\\ntest#3:1/4\\n!!!!\\n\\t\\t\\t\\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator at start'( $ ) {\n\n\t\t\tconst tree = `foo\\n \\tbar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#2:1/2\\n!!\\n \\tbar' )\n\n\t\t},\n\n\t\t'Wrong nodes separator in the middle'( $ ) {\n\n\t\t\tconst tree = `foo bar\\n`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar' )\n\n\t\t},\n\n\t\t'Unexpected EOF, LF required'( $ ) {\n\n\t\t\tconst tree = `\tfoo`\n\n\t\t\t$mol_assert_fail( ()=> {\n\t\t\t\t$.$mol_tree2_from_string( tree , 'test' )\n\t\t\t}, 'Unexpected EOF, LF required\\ntest#1:5/1\\n\t !\\n\tfoo' )\n\n\t\t},\n\n\t\t'Errors skip and collect'( $ ) {\n\n\t\t\tconst tree = `foo bar`\n\t\t\tconst errors = [] as string[]\n\n\t\t\tconst $$ = $.$mol_ambient({\n\t\t\t\t$mol_fail: ( error: any ) => {\n\t\t\t\t\terrors.push( error.message )\n\t\t\t\t\treturn null as never\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tconst res = $$.$mol_tree2_from_string( tree , 'test' )\n\n\t\t\t$mol_assert_like( errors, [\n\t\t\t\t'Wrong nodes separator\\ntest#1:5/1\\n !\\nfoo bar',\n\t\t\t\t'Unexpected EOF, LF required\\ntest#1:9/1\\n !\\nfoo bar',\n\t\t\t] )\n\n\t\t\t$mol_assert_equal( res.toString(), 'foo bar\\n' )\n\n\t\t},\n\n\t} )\t\n}\n","namespace $ {\n\n\texport function $mol_data_setup<\n\t\tValue extends $mol_data_value ,\n\t\tConfig = never\n\t>(\n\t\tvalue : Value ,\n\t\tconfig : Config ,\n\t) {\n\t\t\n\t\treturn Object.assign( value , {\n\t\t\tconfig ,\n\t\t\tValue : null as any as ReturnType< Value >\n\t\t} )\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'config by value'() {\n\n\t\t\tconst N = $mol_data_setup( ( a : number )=> a , 5 )\n\t\t\t\n\t\t\t$mol_assert_equal( N.config , 5 )\n\t\t\t\n\t\t\ttype record_value = $mol_type_assert<\n\t\t\t\ttypeof N.Value ,\n\t\t\t\tnumber\n\t\t\t>\n\t\t\t\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_func_is_class<\n\t\tFunc extends Function\n\t>(\n\t\tfunc: Func\n\t): func is Func & ( new( ...args: any[] )=> any ) {\n\t\treturn Object.getOwnPropertyDescriptor( func, 'prototype' )?.writable === false\n\t}\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'function'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function() {} ) )\n\t\t},\n\t\t\n\t\t'generator'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( function*(){} ) )\n\t\t},\n\n\t\t'async'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( async function(){} ) )\n\t\t},\n\n\t\t'arrow'() {\n\t\t\t$mol_assert_not( $mol_func_is_class( ()=> null ) )\n\t\t},\n\n\t\t'named class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class Foo {} ) )\n\t\t},\n\n\t\t'unnamed class'() {\n\t\t\t$mol_assert_ok( $mol_func_is_class( class {} ) )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\n\ttype Guard_value<\n\t\tFuncs extends $mol_type_unary[] ,\n\t\tIndex extends keyof Funcs\n\t> = $mol_type_param<\n\t\tIndex extends keyof $mol_type_tail< Funcs >\n\t\t\t? $mol_type_tail< Funcs >[ Index ]\n\t\t\t: any ,\n\t\t0\n\t>\n\n\ttype Guard<\n\t\tFuncs extends $mol_type_unary[]\n\t> = {\n\t\t[ Index in keyof Funcs ] : (\n\t\t\tFuncs[Index] extends $mol_type_unary_func\n\t\t\t\t? (\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t\t\t: new(\n\t\t\t\t\tinput : $mol_type_param< Funcs[Index] , 0 >\n\t\t\t\t) => Guard_value< Funcs , Index >\n\t\t)\n\t}\n\n\t/**\n\t * Combines list of unary functions/classes to one function.\n\t * \n\t * \tconst reparse = $mol_data_pipe( JSON.stringify , JSON.parse )\n\t **/\n\texport function $mol_data_pipe<\n\t\tFuncs extends $mol_type_unary[]\n\t>(\n\t\t... funcs : Funcs & Guard< Funcs >\n\t) {\n\n\t\treturn $mol_data_setup(\n\t\t\tfunction( this: any, input : $mol_type_param< Funcs[0] , 0 > ) {\n\t\t\t\tlet value : any = input\n\t\t\t\tfor( const func of funcs ) value = $mol_func_is_class( func ) ? new func( value ) : ( func as any ).call( this, value )\n\t\t\t\treturn value as $mol_type_result<\n\t\t\t\t\t$mol_type_foot< Funcs >\n\t\t\t\t>\n\t\t\t},\n\t\t\t{ funcs }\n\t\t)\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t// @todo enable on strict\n\t\t// 'no functions'() {\n\t\t\t\n\t\t// \tconst stringify = $mol_data_pipe()\n\t\t\t\n\t\t// \ttype Type = $mol_type_assert<\n\t\t// \t\ttypeof stringify,\n\t\t// \t\t( input : never )=> never\n\t\t// \t>\n\t\n\t\t// },\n\n\t\t'single function'() {\n\t\t\t\n\t\t\tconst stringify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( stringify( 5 ) , '5' )\n\t\t\t\n\t\t},\n\n\t\t'two functions'() {\n\n\t\t\tconst isLong = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> input.length > 2 ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( isLong( 5.0 ) , false )\n\t\t\t$mol_assert_equal( isLong( 5.1 ) , true )\n\t\t\t\n\t\t},\n\n\t\t'three functions'() {\n\n\t\t\tconst pattern = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\t( input : string )=> new RegExp( input ) ,\n\t\t\t\t( input : RegExp )=> input.toString() ,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal( pattern( 5 ) , '/5/' )\n\t\t\t\n\t\t},\n\n\t\t'classes'() {\n\n\t\t\tclass Box {\n\t\t\t\tconstructor( public value : string ) {}\n\t\t\t}\n\n\t\t\tconst boxify = $mol_data_pipe(\n\t\t\t\t( input : number )=> input.toString() ,\n\t\t\t\tBox\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_ok( boxify( 5 ) instanceof Box )\n\t\t\t$mol_assert_like( boxify( 5 ).value, '5' )\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\tconst convert = $mol_data_pipe(\n\t\t$mol_tree2_from_string,\n\t\t$mol_tree2_js_to_text,\n\t\t$mol_tree2_text_to_string,\n\t)\n\n\t$mol_test({\n\n\t\t'boolean'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ttrue\n\t\t\t\t`),\n\t\t\t\t'true\\n',\n\t\t\t)\n\t\t},\n\t\t\n\t\t'number'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t1.2\n\t\t\t\t`),\n\t\t\t\t'1.2\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t1e+2\n\t\t\t\t`),\n\t\t\t\t'1e+2\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t-Infinity\n\t\t\t\t`),\n\t\t\t\t'-Infinity\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tNaN\n\t\t\t\t`),\n\t\t\t\t'NaN\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'variable'() {\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ta\n\t\t\t\t`),\n\t\t\t\t'a\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t$\n\t\t\t\t`),\n\t\t\t\t'$\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\ta0\n\t\t\t\t`),\n\t\t\t\t'a0\\n',\n\t\t\t)\n\n\t\t},\n\t\t\n\t\t'string'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t\\\\\n\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\\\\bar\n\t\t\t\t`),\n\t\t\t\t'\"foo\\\\nbar\"\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t\\`\\`\n\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'`foo${bar}`\\n',\n\t\t\t)\n\n\t\t},\n\n\t\t'wrong name'() {\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> convert(`\n\t\t\t\t\tfoo+bar\n\t\t\t\t`),\n\t\t\t\t'Wrong node type\\nfoo+bar\\n?#2:6/7',\n\t\t\t)\n\t\t},\n\n\t\t'array'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t[,]\n\t\t\t\t`),\n\t\t\t\t'[]\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t[,]\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'[1, 2]\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'last'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'(1, 2)\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'scope'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{;}\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'{\\n\\t1;\\n\\t2;\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'object'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t`),\n\t\t\t\t'{}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'{foo, bar}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t{,}\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t:\n\t\t\t\t\t\t\tbar\n\t\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'{\"foo\": 1, [bar]: 2}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'regexp'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t/./\n\t\t\t\t\t\t.source \\\\foo\\\\n\n\t\t\t\t\t\t.multiline\n\t\t\t\t\t\t.ignoreCase\n\t\t\t\t\t\t.global\n\t\t\t\t`),\n\t\t\t\t'/foo\\\\\\\\n/mig\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'unary'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tvoid yield* yield await ~ ! - + 1\n\t\t\t\t`),\n\t\t\t\t'void yield* yield await ~!-+1\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'binary'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t(+)\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'(\\n\\t1 + \\n\\t2 + \\n\\t3\\n)\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t@++ foo\n\t\t\t\t`),\n\t\t\t\t'foo++\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'chain'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t[] \\\\bar\n\t\t\t\t\t\t[] 1\n\t\t\t\t`),\n\t\t\t\t'(foo.bar[1])\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t[] 1\n\t\t\t\t\t\t(,)\n\t\t\t\t`),\n\t\t\t\t'(foo[1]())\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t()\n\t\t\t\t\t\t[,] 0\n\t\t\t\t\t\t[] 1\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t2\n\t\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'([0][1](2, 3))\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'function'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=>\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t`),\n\t\t\t\t'() => 1\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync=>\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t1\n\t\t\t\t`),\n\t\t\t\t'async () => 1\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'function foo(){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction\n\t\t\t\t\t\t(,) foo\n\t\t\t\t\t\t{;} debugger\n\t\t\t\t`),\n\t\t\t\t'function (foo){\\n\\tdebugger;\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tfunction*\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'function* (){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync\n\t\t\t\t\t\t(,)\n\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'async function (){}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tasync*\n\t\t\t\t\t\t(,) foo\n\t\t\t\t\t\t{;} debugger\n\t\t\t\t`),\n\t\t\t\t'async function* (foo){\\n\\tdebugger;\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'class'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass\n\t\t\t\t\t\tFoo\n\t\t\t\t\t\t{}\n\t\t\t\t`),\n\t\t\t\t'class Foo {}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass\n\t\t\t\t\t\tFoo\n\t\t\t\t\t\textends Bar\n\t\t\t\t\t\t{}\n\t\t\t\t`),\n\t\t\t\t'class Foo extends Bar {}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\t.\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tfoo(){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tstatic\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tstatic [\"foo\"](){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tget\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,)\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tget [\"foo\"](){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tclass {}\n\t\t\t\t\t\tset\n\t\t\t\t\t\t\t\\\\foo\n\t\t\t\t\t\t\t(,) bar\n\t\t\t\t\t\t\t{;}\n\t\t\t\t`),\n\t\t\t\t'class {\\n\\tset [\"foo\"](bar){}\\n}\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'if'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t?:\n\t\t\t\t\t\t1\n\t\t\t\t\t\t2\n\t\t\t\t\t\t3\n\t\t\t\t`),\n\t\t\t\t'1 ? 2 : 3\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tif\n\t\t\t\t\t\t() 1\n\t\t\t\t\t\t{;} 2\n\t\t\t\t`),\n\t\t\t\t'if(1) {\\n\\t2;\\n}\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tif\n\t\t\t\t\t\t() 1\n\t\t\t\t\t\t{;} 2\n\t\t\t\t\t\t{;} 3\n\t\t\t\t`),\n\t\t\t\t'if(1) {\\n\\t2;\\n}else{\\n\\t3;\\n}\\n',\n\t\t\t)\n\n\t\t},\n\n\t\t'assign'() {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'foo = bar\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t=\n\t\t\t\t\t\t[,]\n\t\t\t\t\t\t\tfoo\n\t\t\t\t\t\t\tbar\n\t\t\t\t\t\t[,]\n\t\t\t\t\t\t\t1\n\t\t\t\t\t\t\t2\n\t\t\t\t`),\n\t\t\t\t'[foo, bar] = [1, 2]\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tlet foo\n\t\t\t\t`),\n\t\t\t\t'let foo\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\tlet\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'let foo = bar\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tconvert(`\n\t\t\t\t\t+=\n\t\t\t\t\t\tfoo\n\t\t\t\t\t\tbar\n\t\t\t\t`),\n\t\t\t\t'foo += bar\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\t$mol_test({\n\n\t\t'min'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( Number.MIN_SAFE_INTEGER ), '//////H' )\n\t\t},\n\n\t\t'negative'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( -1 ), 'D' )\n\t\t},\n\n\t\t'zero'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( 0 ), 'A' )\n\t\t},\n\n\t\t'binom'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( 67 ), 'mE' )\n\t\t},\n\n\t\t'max'() {\n\t\t\t$mol_assert_equal( $mol_vlq_encode( Number.MAX_SAFE_INTEGER ), '+/////H' )\n\t\t},\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t'sample source mapped lang'( $ ) {\n\n\t\t\tconst source = {\n\t\t\t\tscript1: `1@\\n2`,\n\t\t\t\tscript2: `***`\n\t\t\t}\n\n\t\t\tconst span = {\n\t\t\t\tscript1: $mol_span.entire( 'script1', source.script1 ),\n\t\t\t\tscript2: $mol_span.entire( 'script2', source.script2 ),\n\t\t\t}\n\n\t\t\tconst tree = $mol_tree2.list([\n\t\t\t\t$mol_tree2.struct( 'line', [\n\t\t\t\t\t$mol_tree2.data( '\"use strict\";', [], span.script1.after() ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(11);', [], span.script1.slice( 0, 1 ) ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(21);', [], span.script2 ),\n\t\t\t\t\t$mol_tree2.data( 'console.log(12);', [], span.script1.span( 2, 1, 1 ) ),\n\t\t\t\t], span.script1 ),\n\t\t\t], span.script1 )\n\n\t\t\t$mol_assert_like(\n\t\t\t\t$.$mol_tree2_text_to_string( tree ),\n\t\t\t\t'\"use strict\";console.log(11);console.log(21);console.log(12);\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t$.$mol_tree2_text_to_sourcemap( tree ),\n\t\t\t\t{\n\t\t\t\t\t\"version\": 3,\n\t\t\t\t\t\"sources\": [\n\t\t\t\t\t\t\"script1\",\n\t\t\t\t\t\t\"script2\"\n\t\t\t\t\t],\n\t\t\t\t\t\"sourcesContent\": [ source.script1, source.script2 ],\n\t\t\t\t\t\"mappings\": \"AAAA,AAAI,aAAJ,gBCAA,gBDCA;\"\n\t\t\t\t}\n\t\t\t)\n\n\t\t}\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'atoms'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"null\\n\" ).kids[0] ) , null )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"true\\n\" ).kids[0] ) , true )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"false\\n\" ).kids[0] ) , false )\n\t\t},\n\t\t\n\t\t'numbers'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1\\n\" ).kids[0] ) , 1 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1.2\\n\" ).kids[0] ) , 1.2 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"1.2e+2\\n\" ).kids[0] ) , 120 )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"NaN\\n\" ).kids[0] ) , Number.NaN )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"+Infinity\\n\" ).kids[0] ) , Number.POSITIVE_INFINITY )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"-Infinity\\n\" ).kids[0] ) , Number.NEGATIVE_INFINITY )\n\t\t},\n\t\t\n\t\t'string'($) {\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"\\\\foo\\n\" ).kids[0] ) , 'foo' )\n\t\t\t$mol_assert_equal( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"\\\\\\n\\t\\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , 'foo\\nbar' )\n\t\t},\n\t\t\n\t\t'array'($) {\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\" ).kids[0] ) , [] )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\\t\\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , [ 'foo', 'bar' ] )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"/\\n\\t- \\\\foo\\n\\t\\\\bar\\n\" ).kids[0] ) , [ 'bar' ] )\n\t\t},\n\t\t\n\t\t'object'($) {\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\" ).kids[0] ) , {} )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\\t\\\\foo\\n\\t\\t\\\\bar\\n\" ).kids[0] ) , { foo: 'bar' } )\n\t\t\t$mol_assert_like( $.$mol_tree2_to_json( $.$mol_tree2_from_string( \"*\\n\\t\\\\\\n\\t\\t\\\\foo\\n\\t\\t\\\\bar\\n\\t\\t\\\\lol\\n\" ).kids[0] ) , { 'foo\\nbar': 'lol' } )\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'escape' () {\n\n\t\t\tconst specials = $mol_regexp.from( '.*+?^${}()|[]\\\\' )\n\t\t\t$mol_assert_equal( specials.source , '\\\\.\\\\*\\\\+\\\\?\\\\^\\\\$\\\\{\\\\}\\\\(\\\\)\\\\|\\\\[\\\\]\\\\\\\\' )\n\n\t\t},\n\n\t\t'char code' () {\n\n\t\t\tconst space = $mol_regexp.from( 32 )\n\t\t\t$mol_assert_like( ' '.match( space ) , [ ' ' ] )\n\n\t\t},\n\n\t\t'repeat fixed'() {\n\n\t\t\tconst { repeat , decimal_only: digit } = $mol_regexp\n\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\t$mol_assert_like( '#2020#'.match( year ) , [ '2020' ] )\n\n\t\t},\n\n\t\t'greedy repeat'() {\n\n\t\t\tconst { repeat , repeat_greedy , latin_only: letter } = $mol_regexp\n\n\t\t\t$mol_assert_like( 'abc'.match( repeat( letter, 1, 2 ) ) , [ 'a', 'b', 'c' ] )\n\t\t\t$mol_assert_like( 'abc'.match( repeat_greedy( letter, 1, 2 ) ) , [ 'ab', 'c' ] )\n\n\t\t},\n\n\t\t'repeat range'() {\n\n\t\t\tconst { repeat_greedy , decimal_only: digit } = $mol_regexp\n\n\t\t\tconst year = repeat_greedy( digit , 2 , 4 )\n\t\t\t\n\t\t\t$mol_assert_like( '#2#'.match( year ) , null )\n\t\t\t$mol_assert_like( '#20#'.match( year ) , [ '20' ] )\n\t\t\t$mol_assert_like( '#2020#'.match( year ) , [ '2020' ] )\n\t\t\t$mol_assert_like( '#20201#'.match( year ) , [ '2020' ] )\n\n\t\t},\n\n\t\t'repeat from'() {\n\n\t\t\tconst { repeat_greedy , latin_only: letter } = $mol_regexp\n\n\t\t\tconst name = repeat_greedy( letter , 2 )\n\n\t\t\t$mol_assert_like( '##'.match( name ) , null )\n\t\t\t$mol_assert_like( '#a#'.match( name ) , null )\n\t\t\t$mol_assert_like( '#ab#'.match( name ) , [ 'ab' ] )\n\t\t\t$mol_assert_like( '#abc#'.match( name ) , [ 'abc' ] )\n\n\t\t},\n\n\t\t'from string'() {\n\n\t\t\tconst regexp = $mol_regexp.from( '[\\\\d]' )\n\t\t\t\n\t\t\t$mol_assert_equal( regexp.source , '\\\\[\\\\\\\\d\\\\]' )\n\t\t\t$mol_assert_equal( regexp.flags , 'gsu' )\n\n\t\t},\n\n\t\t'from regexp'() {\n\t\t\t\n\t\t\tconst regexp = $mol_regexp.from( /[\\d]/i )\n\t\t\t\n\t\t\t$mol_assert_equal( regexp.source , '[\\\\d]' )\n\t\t\t$mol_assert_equal( regexp.flags , 'i' )\n\n\t\t},\n\n\t\t'split'() {\n\t\t\t\n\t\t\tconst regexp = $mol_regexp.from( ';' )\n\t\t\t\n\t\t\t$mol_assert_like( 'aaa;bbb;ccc'.split( regexp ) , [ 'aaa', ';', 'bbb', ';', 'ccc' ] )\n\t\t\t$mol_assert_like( 'aaa;;ccc'.split( regexp ) , [ 'aaa', ';', '', ';', 'ccc' ] )\n\t\t\t$mol_assert_like( 'aaa'.split( regexp ) , [ 'aaa' ] )\n\t\t\t$mol_assert_like( ''.split( regexp ) , [''] )\n\n\t\t},\n\n\t\t'test for matching'() {\n\t\t\t\n\t\t\tconst regexp = $mol_regexp.from( 'foo' )\n\t\t\t\n\t\t\t$mol_assert_like( regexp.test( '' ) , false )\n\t\t\t$mol_assert_like( regexp.test( 'fo' ) , false )\n\t\t\t$mol_assert_like( regexp.test( 'foo' ) , true )\n\t\t\t$mol_assert_like( regexp.test( 'foobar' ) , true )\n\t\t\t$mol_assert_like( regexp.test( 'barfoo' ) , true )\n\n\t\t},\n\n\t\t'case ignoring'() {\n\n\t\t\tconst xxx = $mol_regexp.from( 'x' , { ignoreCase : true } )\n\n\t\t\t$mol_assert_like( xxx.flags , 'gisu' )\n\t\t\t$mol_assert_like( xxx.exec( 'xx' )![0] , 'x' )\n\t\t\t$mol_assert_like( xxx.exec( 'XX' )![0] , 'X' )\n\n\t\t},\n\n\t\t'multiline mode'() {\n\n\t\t\tconst { end , from } = $mol_regexp\n\n\t\t\tconst xxx = from( [ 'x' , end ] , { multiline : true } )\n\n\t\t\t$mol_assert_like( xxx.exec( 'x\\ny' )![0] , 'x' )\n\t\t\t$mol_assert_like( xxx.flags , 'gmsu' )\n\n\t\t},\n\n\t\t'flags override'() {\n\n\t\t\tconst triplet = $mol_regexp.from(\n\t\t\t\t$mol_regexp.from(\n\t\t\t\t\t/.../,\n\t\t\t\t\t{ ignoreCase: true },\n\t\t\t\t),\n\t\t\t\t{ multiline: true },\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like( triplet.toString() , '/.../gmsu' )\n\n\t\t},\n\n\t\t'sequence'() {\n\n\t\t\tconst { begin , end , decimal_only: digit , repeat , from } = $mol_regexp\n\t\t\t\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\tconst dash = '-'\n\t\t\tconst month = repeat( digit , 2 , 2 )\n\t\t\tconst day = repeat( digit , 2 , 2 )\n\n\t\t\tconst date = from([ begin , year , dash , month , dash , day , end ])\n\n\t\t\t$mol_assert_like( date.exec( '2020-01-02' )![0] , '2020-01-02' )\n\n\t\t},\n\n\t\t'optional'() {\n\n\t\t\tconst name = $mol_regexp.from([ 'A', ['4'] ])\n\n\t\t\t$mol_assert_equal( 'AB'.match( name )![0] , 'A' )\n\t\t\t$mol_assert_equal( 'A4'.match( name )![0] , 'A4' )\n\n\t\t},\n\n\t\t'anon variants'() {\n\n\t\t\tconst name = $mol_regexp.from([ 'A', $mol_regexp.vary([ '4', '5' ]) ])\n\n\t\t\t$mol_assert_equal( 'AB'.match( name ) , null )\n\t\t\t$mol_assert_equal( 'A4'.match( name )![0] , 'A4' )\n\t\t\t$mol_assert_equal( 'A5'.match( name )![0] , 'A5' )\n\n\t\t},\n\n\t\t'only groups'() {\n\n\t\t\tconst regexp = $mol_regexp.from({ dog : '@' })\n\n\t\t\t$mol_assert_like( [ ... '#'.matchAll( regexp ) ][0].groups , undefined )\n\t\t\t$mol_assert_like( [ ... '@'.matchAll( regexp ) ][0].groups , { dog : '@' } )\n\n\t\t},\n\n\t\t'catch skipped'() {\n\n\t\t\tconst regexp = $mol_regexp.from(/(@)(\\d?)/g)\n\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '[[@]]'.matchAll( regexp ) ].map( f => [ ... f ] ) ,\n\t\t\t\t[\n\t\t\t\t\t[ '[[' ],\n\t\t\t\t\t[ '@', '@' , '' ],\n\t\t\t\t\t[ ']]' ],\n\t\t\t\t]\n\t\t\t)\n\n\t\t},\n\n\t\t'enum variants'() {\n\n\t\t\tenum Sex {\n\t\t\t\tmale = 'male',\n\t\t\t\tfemale = 'female',\n\t\t\t}\n\n\t\t\tconst sexism = $mol_regexp.from( Sex )\n\n\t\t\t$mol_assert_like( [ ... ''.matchAll( sexism ) ].length, 0 )\n\t\t\t$mol_assert_like( [ ... 'trans'.matchAll( sexism ) ][0].groups, undefined )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'male'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ male : 'male' , female : '' },\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'female'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ male : '' , female : 'female' },\n\t\t\t)\n\n\t\t},\n\n\t\t'recursive only groups'() {\n\n\t\t\tenum Sex {\n\t\t\t\tmale = 'male',\n\t\t\t\tfemale = 'female',\n\t\t\t}\n\n\t\t\tconst sexism = $mol_regexp.from({ Sex })\n\n\t\t\t$mol_assert_like( [ ... ''.matchAll( sexism ) ].length , 0 )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'male'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ Sex : 'male' , male : 'male' , female : '' },\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'female'.matchAll( sexism ) ][0].groups,\n\t\t\t\t{ Sex : 'female' , male : '' , female : 'female' },\n\t\t\t)\n\n\t\t},\n\n\t\t'sequence with groups'() {\n\n\t\t\tconst { begin , end , decimal_only: digit , repeat , from } = $mol_regexp\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\tconst dash = '-'\n\t\t\tconst month = repeat( digit , 2 , 2 )\n\t\t\tconst day = repeat( digit , 2 , 2 )\n\n\t\t\tconst regexp = from([ begin , {year} , dash , {month} , dash , {day} , end ])\n\t\t\tconst found = [ ... '2020-01-02'.matchAll( regexp ) ]\n\n\t\t\t$mol_assert_like( found[0].groups , {\n\t\t\t\tyear : '2020' ,\n\t\t\t\tmonth : '01' ,\n\t\t\t\tday : '02' ,\n\t\t\t} )\n\n\t\t},\n\n\t\t'sequence with groups of mixed type'() {\n\n\t\t\tconst prefix = '/'\n\t\t\tconst postfix = '/'\n\n\t\t\tconst regexp = $mol_regexp.from([ {prefix} , /(\\w+)/ , {postfix} , /([gumi]*)/ ])\n\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '/foo/mi'.matchAll( regexp ) ],\n\t\t\t\t[\n\t\t\t\t\tObject.assign(\n\t\t\t\t\t\t[ \"/foo/mi\", \"/\", \"foo\", \"/\", \"mi\" ],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tgroups: {\n\t\t\t\t\t\t\t\tprefix : '/' ,\n\t\t\t\t\t\t\t\tpostfix : '/' ,\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tindex: 0,\n\t\t\t\t\t\t\tinput: \"/\",\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t],\n\t\t\t)\n\n\t\t},\n\n\t\t'recursive sequence with groups'() {\n\n\t\t\tconst { begin , end , decimal_only: digit , repeat , from } = $mol_regexp\n\t\t\tconst year = repeat( digit , 4 , 4 )\n\t\t\tconst dash = '-'\n\t\t\tconst month = repeat( digit , 2 , 2 )\n\t\t\tconst day = repeat( digit , 2 , 2 )\n\n\t\t\tconst regexp = from([\n\t\t\t\tbegin , { date : [ {year} , dash , {month} ] } , dash , {day} , end\n\t\t\t])\n\t\t\t\n\t\t\tconst found = [ ... '2020-01-02'.matchAll( regexp ) ]\n\n\t\t\t$mol_assert_like( found[0].groups , {\n\t\t\t\tdate : '2020-01' ,\n\t\t\t\tyear : '2020' ,\n\t\t\t\tmonth : '01' ,\n\t\t\t\tday : '02' ,\n\t\t\t} )\n\n\t\t},\n\n\t\t'parse multiple'() {\n\n\t\t\tconst { decimal_only: digit , from } = $mol_regexp\n\n\t\t\tconst regexp = from({ digit })\n\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '123'.matchAll( regexp ) ].map( f => f.groups ) ,\n\t\t\t\t[\n\t\t\t\t\t{ digit : '1' },\n\t\t\t\t\t{ digit : '2' },\n\t\t\t\t\t{ digit : '3' },\n\t\t\t\t]\n\t\t\t)\n\n\t\t},\n\n\t\t'named variants'() {\n\n\t\t\tconst { begin , or , end , from } = $mol_regexp\n\n\t\t\tconst sexism = from([\n\t\t\t\tbegin , 'sex = ' , { sex : [ 'male' , or , 'female' ] } , end\n\t\t\t])\n\n\t\t\t$mol_assert_like( [ ... 'sex = male'.matchAll( sexism ) ][0].groups , { sex : 'male' } )\n\t\t\t$mol_assert_like( [ ... 'sex = female'.matchAll( sexism ) ][0].groups , { sex : 'female' } )\n\t\t\t$mol_assert_like( [ ... 'sex = malefemale'.matchAll( sexism ) ][0].groups , undefined )\n\n\t\t},\n\n\t\t'force after'() {\n\n\t\t\tconst { latin_only: letter , force_after , from } = $mol_regexp\n\n\t\t\tconst regexp = from([ letter , force_after( '.' ) ])\n\n\t\t\t$mol_assert_like( 'x.'.match( regexp ) , [ 'x' ] )\n\t\t\t$mol_assert_like( 'x,'.match( regexp ) , null )\n\n\t\t},\n\n\t\t'forbid after'() {\n\n\t\t\tconst { latin_only: letter , forbid_after , from } = $mol_regexp\n\n\t\t\tconst regexp = from([ letter , forbid_after( '.' ) ])\n\n\t\t\t$mol_assert_like( 'x.'.match( regexp ) , null )\n\t\t\t$mol_assert_like( 'x,'.match( regexp ) , [ 'x' ] )\n\n\t\t},\n\n\t\t'char except'() {\n\n\t\t\tconst { char_except, latin_only, tab } = $mol_regexp\n\n\t\t\tconst name = char_except( latin_only, tab )\n\n\t\t\t$mol_assert_like( 'a'.match( name ) , null )\n\t\t\t$mol_assert_like( '\\t'.match( name ) , null )\n\t\t\t$mol_assert_like( '('.match( name ) , [ '(' ] )\n\n\t\t},\n\n\t\t'unicode only'() {\n\n\t\t\tconst { unicode_only, from } = $mol_regexp\n\n\t\t\tconst name = from([\n\t\t\t\tunicode_only( 'Script', 'Cyrillic' ),\n\t\t\t\tunicode_only( 'Hex_Digit' ),\n\t\t\t])\n\n\t\t\t$mol_assert_like( 'FF'.match( name ) , null )\n\t\t\t$mol_assert_like( 'ФG'.match( name ) , null )\n\t\t\t$mol_assert_like( 'ФF'.match( name ) , [ 'ФF' ] )\n\n\t\t},\n\n\t\t'generate by optional with inner group'() {\n\n\t\t\tconst { begin, end, from } = $mol_regexp\n\t\t\t\n\t\t\tconst animals = from([ begin, '#', [ '^', { dog : '@' } ], end ])\n\n\t\t\t$mol_assert_equal( animals.generate({}) , '#' )\n\t\t\t\n\t\t\t$mol_assert_equal( animals.generate({ dog: false }) , '#' )\n\t\t\t$mol_assert_equal( animals.generate({ dog: true }) , '#^@' )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> animals.generate({ dog: '$' }) , 'Wrong param: dog=$' )\n\n\t\t},\n\n\t\t'generate by optional with inner group with variants'() {\n\n\t\t\tconst { begin, end, from } = $mol_regexp\n\t\t\t\n\t\t\tconst animals = from([ begin, '#', [ '^', { animal: { dog : '@', fox: '&' } } ], end ])\n\n\t\t\t$mol_assert_equal( animals.generate({}) , '#' )\n\t\t\t\n\t\t\t$mol_assert_equal( animals.generate({ dog: true }) , '#^@' )\n\t\t\t$mol_assert_equal( animals.generate({ fox: true }) , '#^&' )\n\t\t\t\n\t\t\t$mol_assert_fail( ()=> animals.generate({ dog: '$' }) , 'Wrong param: dog=$' )\n\n\t\t},\n\t\t\n\t\t'complex example'() {\n\t\t\t\n\t\t\tconst {\n\t\t\t\tbegin, end,\n\t\t\t\tchar_only, char_range,\n\t\t\t\tlatin_only, slash_back,\n\t\t\t\trepeat_greedy, from,\n\t\t\t} = $mol_regexp\n\t\t\t\n\t\t\tconst atom_char = char_only( latin_only, \"!#$%&'*+/=?^`{|}~-\" )\n\t\t\tconst atom = repeat_greedy( atom_char, 1 )\n\t\t\tconst dot_atom = from([ atom, repeat_greedy([ '.', atom ]) ])\n\t\t\t\n\t\t\tconst name_letter = char_only(\n\t\t\t\tchar_range( 0x01, 0x08 ),\n\t\t\t\t0x0b, 0x0c,\n\t\t\t\tchar_range( 0x0e, 0x1f ),\n\t\t\t\t0x21,\n\t\t\t\tchar_range( 0x23, 0x5b ),\n\t\t\t\tchar_range( 0x5d, 0x7f ),\n\t\t\t)\n\t\t\t\n\t\t\tconst quoted_pair = from([\n\t\t\t\tslash_back,\n\t\t\t\tchar_only(\n\t\t\t\t\tchar_range( 0x01, 0x09 ),\n\t\t\t\t\t0x0b, 0x0c,\n\t\t\t\t\tchar_range( 0x0e, 0x7f ),\n\t\t\t\t)\n\t\t\t])\n\t\t\t\n\t\t\tconst name = repeat_greedy({ name_letter, quoted_pair })\n\t\t\tconst quoted_name = from([ '\"', {name}, '\"' ])\n\t\t\t\n\t\t\tconst local_part = from({ dot_atom, quoted_name })\n\t\t\tconst domain = dot_atom\n\t\t\t\n\t\t\tconst mail = from([ begin, local_part, '@', {domain}, end ])\n\t\t\t\n\t\t\t$mol_assert_equal( 'foo..bar@example.org'.match( mail ), null )\n\t\t\t$mol_assert_equal( 'foo..bar\"@example.org'.match( mail ), null )\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... 'foo.bar@example.org'.matchAll( mail ) ][0].groups,\n\t\t\t\t{\n\t\t\t\t\tdot_atom: \"foo.bar\",\n\t\t\t\t\tquoted_name: \"\",\n\t\t\t\t\tname: \"\",\n\t\t\t\t\tname_letter: \"\",\n\t\t\t\t\tquoted_pair: \"\",\n\t\t\t\t\tdomain: \"example.org\",\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t[ ... '\"foo..bar\"@example.org'.matchAll( mail ) ][0].groups,\n\t\t\t\t{\n\t\t\t\t\tdot_atom: \"\",\n\t\t\t\t\tquoted_name: '\"foo..bar\"',\n\t\t\t\t\tname: \"foo..bar\",\n\t\t\t\t\tname_letter: \"r\",\n\t\t\t\t\tquoted_pair: \"\",\n\t\t\t\t\tdomain: \"example.org\",\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tmail.generate({ dot_atom: 'foo.bar', domain: 'example.org' }),\n\t\t\t\t'foo.bar@example.org',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tmail.generate({ name: 'foo..bar', domain: 'example.org' }),\n\t\t\t\t'\"foo..bar\"@example.org',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_fail(\n\t\t\t\t()=> mail.generate({ dot_atom: 'foo..bar', domain: 'example.org' }),\n\t\t\t\t'Wrong param: dot_atom=foo..bar',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t})\n\n}\n","namespace $ {\n\tfunction get_parts(str: string) {\n\t\treturn $$.$mol_view_tree2_prop_parts($mol_tree2.struct(str))\n\t}\n\n\t$mol_test({\n\t\t'wrong order'($) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\tget_parts('some_bla?*')\n\t\t\t}, 'Required prop like some*? at `?#1:1/0`')\n\t\t},\n\n\t\t'empty'($) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\tget_parts('')\n\t\t\t}, 'Required prop like some*? at `?#1:1/0`')\n\t\t},\n\n\t\t'prop in upper case'($) {\n\t\t\tconst parts = get_parts('Close_icon')\n\t\t\t$mol_assert_equal(parts.name, 'Close_icon')\n\t\t\t$mol_assert_equal(parts.key, '')\n\t\t\t$mol_assert_equal(parts.next, '')\n\t\t},\n\n\t\t'prop with index'($) {\n\t\t\tconst parts = get_parts('some_bla*')\n\t\t\t$mol_assert_equal(parts.name, 'some_bla')\n\t\t\t$mol_assert_equal(parts.key, '*')\n\t\t\t$mol_assert_equal(parts.next, '')\n\t\t},\n\n\t\t'prop with index and value'($) {\n\t\t\tconst parts = get_parts('some_bla*?')\n\t\t\t$mol_assert_equal(parts.name, 'some_bla')\n\t\t\t$mol_assert_equal(parts.key, '*')\n\t\t\t$mol_assert_equal(parts.next, '?')\n\t\t},\n\n\t\t'legacy indexed'($) {\n\t\t\tconst parts = get_parts('Some*default')\n\t\t\t$mol_assert_equal(parts.name, 'Some')\n\t\t\t$mol_assert_equal(parts.key, '*default')\n\t\t\t$mol_assert_equal(parts.next, '')\n\t\t},\n\n\t\t'legacy indexed value'($) {\n\t\t\tconst parts = get_parts('Some*k?v')\n\t\t\t$mol_assert_equal(parts.name, 'Some')\n\t\t\t$mol_assert_equal(parts.key, '*k')\n\t\t\t$mol_assert_equal(parts.next, '?')\n\t\t}\n\t})\n}\n","namespace $ {\n\n\texport function $mol_style_attach(\n\t\tid : string ,\n\t\ttext : string ,\n\t) {\n\n\t\tconst doc = $mol_dom_context.document\n\t\tif( !doc ) return null\n\t\t\n\t\tconst elid = `$mol_style_attach:${id}`\n\t\t\n\t\tlet el = doc.getElementById( elid ) as HTMLStyleElement\n\t\tif( !el ) {\n\t\t\tel = doc.createElement('style')\n\t\t\tel.id = elid\n\t\t\tdoc.head.appendChild( el )\n\t\t}\n\t\tif( el.innerHTML != text ) el.innerHTML = text\n\t\t\n\t\treturn el\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_promise_blocker<Result> extends $mol_promise<Result> {\n\t\tstatic [Symbol.toStringTag] = '$mol_promise_blocker'\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_decor< Value > {\n\t\t\n\t\tconstructor(\n\t\t\treadonly value : Value\n\t\t) {}\n\n\t\tprefix() { return '' }\n\t\tvalueOf() { return this.value }\n\t\tpostfix() { return '' }\n\n\t\ttoString(){\n\t\t\treturn `${ this.prefix() }${ this.valueOf() }${ this.postfix() }`\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport type $mol_style_unit_length =\n\t| '%'\n\t| 'px' | 'cm' | 'mm' | 'Q' | 'in' | 'pc' | 'pt'\n\t| 'cap' | 'ch' | 'em' | 'rem' | 'ex' | 'ic' | 'lh' | 'rlh'\n\t| 'vh' | 'vw' | 'vi' | 'vb' | 'vmin' | 'vmax'\n\t\n\texport type $mol_style_unit_angle = 'deg' | 'rad' | 'grad' | 'turn'\n\t\n\texport type $mol_style_unit_time = 's' | 'ms'\n\n\texport type $mol_style_unit_any = $mol_style_unit_length | $mol_style_unit_angle | $mol_style_unit_time\n\n\texport type $mol_style_unit_str< Quanity extends $mol_style_unit_any = $mol_style_unit_any> = `${number}${Quanity}`\n\n\t/**\n\t * CSS Units\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_unit<\n\t\tLiteral extends $mol_style_unit_any\n\t> extends $mol_decor< number > {\n\n\t\tconstructor(\n\t\t\tvalue : number,\n\t\t\treadonly literal : Literal,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tpostfix() {\n\t\t\treturn this.literal\n\t\t}\n\n\t\tstatic per( value : number ) { return `${value}%` as const }\n\t\tstatic px( value : number ) { return `${ value }px` as const }\n\t\tstatic mm( value : number ) { return `${value}mm` as const }\n\t\tstatic cm( value : number ) { return `${value}cm` as const }\n\t\tstatic Q( value : number ) { return `${value}Q` as const }\n\t\tstatic in( value : number ) { return `${value}in` as const }\n\t\tstatic pc( value : number ) { return `${value}pc` as const }\n\t\tstatic pt( value : number ) { return `${value}pt` as const }\n\t\tstatic cap( value : number ) { return `${value}cap` as const }\n\t\tstatic ch( value : number ) { return `${value}ch` as const }\n\t\tstatic em( value : number ) { return `${value}em` as const }\n\t\tstatic rem( value : number ) { return `${value}rem` as const }\n\t\tstatic ex( value : number ) { return `${value}ex` as const }\n\t\tstatic ic( value : number ) { return `${value}ic` as const }\n\t\tstatic lh( value : number ) { return `${value}lh` as const }\n\t\tstatic rlh( value : number ) { return `${value}rlh` as const }\n\t\tstatic vh( value : number ) { return `${value}vh` as const }\n\t\tstatic vw( value : number ) { return `${value}vw` as const }\n\t\tstatic vi( value : number ) { return `${value}vi` as const }\n\t\tstatic vb( value : number ) { return `${value}vb` as const }\n\t\tstatic vmin( value : number ) { return `${value}vmin` as const }\n\t\tstatic vmax( value : number ) { return `${value}vmax` as const }\n\t\t\n\t\tstatic deg( value : number ) { return `${value}deg` as const }\n\t\tstatic rad( value : number ) { return `${value}rad` as const }\n\t\tstatic grad( value : number ) { return `${value}grad` as const }\n\t\tstatic turn( value : number ) { return `${value}turn` as const }\n\n\t\tstatic s( value : number ) { return `${value}s` as const }\n\t\tstatic ms( value : number ) { return `${value}ms` as const }\n\t\n\t}\n\n}\n","namespace $ {\n\n\texport type $mol_style_func_name =\n\t| 'calc'\n\t| 'hsla'\n\t| 'rgba'\n\t| 'var'\n\t| 'clamp'\n\t| 'scale'\n\t| 'cubic-bezier'\n\t| 'linear'\n\t| 'steps'\n\t| $mol_style_func_image\n\t| $mol_style_func_filter\n\t\n\texport type $mol_style_func_image =\n\t| 'url'\n\t| 'linear-gradient'\n\t| 'radial-gradient'\n\t| 'conic-gradient'\n\t\n\texport type $mol_style_func_filter =\n\t| 'blur'\n\t| 'brightness'\n\t| 'contrast'\n\t| 'drop-shadow'\n\t| 'grayscale'\n\t| 'hue-rotate'\n\t| 'invert'\n\t| 'opacity'\n\t| 'sepia'\n\t| 'saturate'\n\n\tconst { per } = $mol_style_unit\n\t\n\t/**\n\t * CSS Functions\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport class $mol_style_func<\n\t\tName extends $mol_style_func_name ,\n\t\tValue = unknown,\n\t> extends $mol_decor< Value > {\n\n\t\tconstructor(\n\t\t\treadonly name : Name,\n\t\t\tvalue : Value,\n\t\t) {\n\t\t\tsuper( value )\n\t\t}\n\n\t\tprefix() { return this.name + '(' }\n\t\tpostfix() { return ')' }\n\n\t\tstatic linear_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'linear-gradient' , value )\n\t\t}\n\n\t\tstatic radial_gradient< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'radial-gradient' , value )\n\t\t}\n\n\t\tstatic calc< Value >( value : Value ) {\n\t\t\treturn new $mol_style_func( 'calc' , value )\n\t\t}\n\n\t\tstatic vary< Name extends string, Value extends string >( name : Name, defaultValue? : Value ) {\n\t\t\treturn new $mol_style_func( 'var' , defaultValue ? [name, defaultValue] : name )\n\t\t}\n\n\t\tstatic url< Href extends string >( href : Href ) {\n\t\t\treturn new $mol_style_func( 'url' , JSON.stringify( href ) )\n\t\t}\n\n\t\tstatic hsla(\n\t\t\thue: number,\n\t\t\tsaturation: number,\n\t\t\tlightness: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'hsla',\n\t\t\t\t[ hue , per( saturation ) , per( lightness ) , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic clamp(\n\t\t\tmin: $mol_style_unit_str< any >,\n\t\t\tmid: $mol_style_unit_str< any >,\n\t\t\tmax: $mol_style_unit_str< any >,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'clamp',\n\t\t\t\t[ min, mid, max ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic rgba(\n\t\t\tred: number,\n\t\t\tgreen: number,\n\t\t\tblue: number,\n\t\t\talpha: number,\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t'rgba',\n\t\t\t\t[ red , green , blue , alpha ],\n\t\t\t)\n\t\t}\n\t\n\t\tstatic scale(\n\t\t\tzoom: number,\n\t\t) {\n\t\t\treturn new $mol_style_func( 'scale', [ zoom ] )\n\t\t}\n\t\t\n\t\tstatic linear(\n\t\t\t...breakpoints : Array<number | [number, number | $mol_style_unit_str<'%'>]>\n\t\t){\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"linear\",\n\t\t\t\tbreakpoints.map((e) =>\n\t\t\t\t\tArray.isArray(e)\n\t\t\t\t\t\t? String(e[0]) +\n\t\t\t\t\t\t \" \" +\n\t\t\t\t\t\t (typeof e[1] === \"number\" ? e[1] + \"%\" : e[1].toString())\n\t\t\t\t\t\t: String(e)\n\t\t\t\t)\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic cubic_bezier(\n\t\t\tx1: number,\n\t\t\ty1: number,\n\t\t\tx2: number,\n\t\t\ty2: number\n\t\t){\n\t\t\treturn new $mol_style_func( 'cubic-bezier', [ x1, y1, x2, y2 ]);\n\t\t}\n\t\t\n\t\tstatic steps(value: number, step_position: 'jump-start' | 'jump-end' | 'jump-none' | 'jump-both' | 'start' | 'end'){\n\t\t\treturn new $mol_style_func( 'steps', [ value, step_position ] )\n\t\t}\n\t\t\n\t\tstatic blur(value?: $mol_style_unit_str<$mol_style_unit_length>){\n\t\t\treturn new $mol_style_func( 'blur', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic brightness(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'brightness', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic contrast(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'contrast', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic drop_shadow(\n\t\t\tcolor: $mol_style_properties_color,\n\t\t\tx_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\ty_offset: $mol_style_unit_str<$mol_style_unit_length>,\n\t\t\tblur_radius?: $mol_style_unit_str<$mol_style_unit_length>\n\t\t) {\n\t\t\treturn new $mol_style_func(\n\t\t\t\t\"drop-shadow\",\n\t\t\t\tblur_radius\n\t\t\t\t\t? [color, x_offset, y_offset, blur_radius]\n\t\t\t\t\t: [color, x_offset, y_offset]\n\t\t\t);\n\t\t}\n\t\t\n\t\tstatic grayscale(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'grayscale', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic hue_rotate(value?: 0 | $mol_style_unit_str<$mol_style_unit_angle>){\n\t\t\treturn new $mol_style_func( 'hue-rotate', value ?? \"\")\n\t\t}\n\t\t\n\t\tstatic invert(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'invert', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic opacity(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'opacity', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic sepia(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'sepia', value ?? \"\" );\n\t\t}\n\t\t\n\t\tstatic saturate(value?: number | $mol_style_unit_str<'%'>){\n\t\t\treturn new $mol_style_func( 'saturate', value ?? \"\" );\n\t\t}\n\t\n\t}\n\n}\n","namespace $ {\n\t\n\t/** Create record of CSS variables. */\n\texport function $mol_style_prop< Keys extends string[] >(\n\t\tprefix: string ,\n\t\tkeys: Keys\n\t) {\n\t\t\n\t\tconst record = keys.reduce( ( rec , key: Keys[number] )=> {\n\t\t\t\n\t\t\trec[ key ] = $mol_style_func.vary( `--${ prefix }_${ key }` )\n\t\t\treturn rec\n\t\t\t\n\t\t}, {} as Record< Keys[number], $mol_style_func< 'var' > > )\n\t\t\n\t\treturn record\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#component-states\n\t\t'Cached channel' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 2 )\n\n\t\t\tApp.value( 2 )\n\t\t\t$mol_assert_equal( App.value(), 3 )\n\n\t\t},\n\n\t\t'Read Pushed' ($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 1 ), 1 )\n\t\t\t$mol_assert_equal( App.value(), 1 )\n\n\t\t},\n\n\t\t'Mem overrides mem' ($) {\n\n\t\t\tclass Base extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next = 1 ) {\n\t\t\t\t\treturn next + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tclass Middle extends Base {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) + 1\n\t\t\t\t}\n\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tclass App extends Middle {\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value( next?: number ) {\n\t\t\t\t\treturn super.value( next ) * 3\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.value(), 9 )\n\t\t\t\n\t\t\t$mol_assert_equal( App.value( 5 ), 21 )\n\t\t\t$mol_assert_equal( App.value(), 21 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-consistency\n\t\t'Auto recalculation of cached values'( $ ) {\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\treturn this.xxx() + 1\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\treturn this.yyy() + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.yyy(), 2 )\n\t\t\t$mol_assert_equal( App.zzz(), 3 )\n\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_equal( App.zzz(), 7 )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-reasonability\n\t\t'Skip recalculation when actually no dependency changes'( $ ) {\n\t\t\t\n\t\t\tconst log = [] as string[]\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic xxx( next? : number ) {\n\t\t\t\t\tlog.push( 'xxx' )\n\t\t\t\t\treturn next || 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic yyy() {\n\t\t\t\t\tlog.push( 'yyy' )\n\t\t\t\t\treturn [ Math.sign( this.xxx() ) ]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic zzz() {\n\t\t\t\t\tlog.push( 'zzz' )\n\t\t\t\t\treturn this.yyy()[0] + 1\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx' ] )\n\t\t\t\n\t\t\tApp.xxx( 5 )\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx' ] )\n\t\t\t\n\t\t\tApp.zzz()\n\t\t\t$mol_assert_like( log, [ 'zzz', 'yyy', 'xxx', 'xxx', 'yyy' ] )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#flow-auto\n\t\t'Flow: Auto'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\t\t\t\t\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic source( next = 1 ) { return next }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = true ) { return next }\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tconst res = this.condition() ? this.source() : 0\n\t\t\t\t\treturn res + this.counter ++\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t$mol_assert_equal( App.counter , 1 )\n\t\t\t\n\t\t\tApp.source( 10 )\n\t\t\t$mol_assert_equal( App.result() , 11 )\n\t\t\t$mol_assert_equal( App.counter , 2 )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( App.source() , 1 )\n\t\t\t\n\t\t\tApp.source( 20 )\n\t\t\t$mol_assert_equal( App.result() , 2 )\n\t\t\t$mol_assert_equal( App.counter , 3 )\n\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_equal( App.result() , 23 )\n\t\t\t$mol_assert_equal( App.counter , 4 )\n\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#dupes-equality\n\t\t'Dupes: Equality'( $ ) {\n\t\t\t\n\t\t\tlet counter = 0\n\t\t\t\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo( next? : { numbs: number[] } ) {\n\t\t\t\t\treturn next ?? { numbs: [ 1 ] }\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() {\n\t\t\t\t\treturn { ... this.foo(), count: ++ counter }\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\n\t\t\tApp.foo({ numbs: [ 1 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 1 ], count: 1 } )\n\t\t\t\n\t\t\tApp.foo({ numbs: [ 2 ] })\n\t\t\t$mol_assert_like( App.bar(), { numbs: [ 2 ], count: 2 } )\n\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#cycle-fail\n\t\t'Cycle: Fail'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic foo() : number {\n\t\t\t\t\treturn this.bar() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic bar() : number {\n\t\t\t\t\treturn this.foo() + 1\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_fail( ()=> App.foo(), 'Circular subscription' )\n\t\t\t\t}\t\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.test()\n\t\t} ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Update deps on push'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right( next = false ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic res( next?: boolean ) {\n\t\t// \t\t\treturn this.left( next ) && this.right()\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.res(), false )\n\t\t// \t$mol_assert_equal( App.res( true ), false )\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right( true ), true )\n\t\t// \t$mol_assert_equal( App.res(), true )\n\t\t\t\n\t\t// } ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Different order of pull and push'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic fast( next?: number ) {\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic slow( next?: number ) {\n\t\t\t\t\tif( next !== undefined ) this.slow() // enforce pull before push\n\t\t\t\t\treturn this.store( next )\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tApp.fast()\n\t\t\t$mol_assert_equal( App.slow( 666 ), 666 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 666 )\n\t\t\t\n\t\t\tApp.store( 777 )\n\t\t\t$mol_assert_equal( App.fast(), App.slow(), 777 )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t'Actions inside invariant'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count( next = 0 ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic count2() {\n\t\t\t\t\treturn this.count()\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\tconst count = this.count2()\n\t\t\t\t\tif( !count ) this.count( count + 1 )\n\t\t\t\t\treturn count + 1\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( App.res(), 1 )\n\t\t\t\n\t\t\tApp.count( 5 )\n\t\t\t$mol_assert_like( App.res(), 6 )\n\n\t\t} ,\n\t\t\n\t\tasync 'Toggle with async'( $ ) {\n\t\t\n\t\t\tclass App extends $mol_object2 {\n\t\t\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic checked( next = false ) {\n\t\t\t\t\t$$.$mol_wait_timeout(0)\n\t\t\t\t\treturn next\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic toggle() {\n\t\t\t\t\tconst prev = this.checked()\n\t\t\t\t\t$mol_assert_unique( this.checked( !prev ), prev )\n\t\t\t\t\t// $mol_assert_equal( this.checked() , prev )\n\t\t\t\t}\n\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic res() {\n\t\t\t\t\treturn this.checked()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_equal( App.res(), false )\n\t\t\t\t\t\n\t\t\t\t\tApp.toggle()\n\t\t\t\t\t$mol_assert_equal( App.res(), true )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\n\t\t\t}\n\t\t\t\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t\t\n\t\t} ,\n\n\t\t// // https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\t// 'Stable order of multiple root'( $ ) {\n\t\t\n\t\t// \tclass App extends $mol_object2 {\n\t\t\n\t\t// \t\tstatic $ = $\n\t\t\t\t\n\t\t// \t\tstatic counter = 0\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic left_root() {\n\t\t// \t\t\tthis.left_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_trigger( next = 0 ) {\n\t\t// \t\t\treturn next\n\t\t// \t\t}\n\t\t\t\t\n\t\t// \t\t@ $mol_wire_solo\n\t\t// \t\tstatic right_root() {\n\t\t// \t\t\tthis.right_trigger()\n\t\t// \t\t\treturn ++ this.counter\n\t\t// \t\t}\n\t\t\n\t\t// \t}\n\t\t\t\n\t\t// \t$mol_assert_equal( App.left_root(), 1 )\n\t\t// \t$mol_assert_equal( App.right_root(), 2 )\n\t\t\t\n\t\t// \tApp.right_trigger( 1 )\n\t\t// \tApp.left_trigger( 1 )\n\t\t\t\n\t\t// \t$mol_wire_fiber.sync()\n\t\t\t\n\t\t// \t$mol_assert_equal( App.right_root(), 4 )\n\t\t// \t$mol_assert_equal( App.left_root(), 3 )\n\n\t\t// } ,\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#error-store\n\t\t'Restore after error'( $ ) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic get $() { return $ }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic condition( next = false ) { return next }\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic broken() {\n\t\t\t\t\t\n\t\t\t\t\tif( this.condition() ) {\n\t\t\t\t\t\t$mol_fail( new Error( 'test error' ) )\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\treturn this.broken()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.condition( true )\n\t\t\t$mol_assert_fail( ()=> App.result(), 'test error' )\n\t\t\t\n\t\t\tApp.condition( false )\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\n\t\t} ,\n\t\n\t\tasync 'Wait for data'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic async source() {\n\t\t\t\t\treturn 'Jin'\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic middle() {\n\t\t\t\t\treturn $mol_wire_sync( this ).source()\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic target() {\n\t\t\t\t\treturn this.middle()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t$mol_assert_equal( App.target() , 'Jin' )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tawait $mol_wire_async( App ).test()\n\t\t},\n\n\t\t'Auto destroy on long alone'( $ ) {\n\n\t\t\tlet destroyed = false\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic showing( next = true ) {\n\t\t\t\t\treturn next\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic details() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tdestructor() {\n\t\t\t\t\t\t\tdestroyed = true\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic render() {\n\t\t\t\t\treturn this.showing() ? this.details() : null\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst details = App.render()\n\t\t\t$mol_assert_ok( details )\n\n\t\t\tApp.showing( false )\n\t\t\t$mol_assert_not( App.render() )\n\t\t\t\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_equal( App.render() , details )\n\t\t\t\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_not( destroyed )\n\t\t\t\n\t\t\tApp.showing( false )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_ok( destroyed )\n\n\t\t\tApp.showing( true )\n\t\t\t$mol_assert_unique( App.render() , details )\n\t\t\t\n\t\t},\n\n\t\t// https://github.com/nin-jin/slides/tree/master/reactivity#wish-stability\n\t\tasync 'Hold pubs while wait async task'($) {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic counter = 0\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ): number {\n\t\t\t\t\treturn ( $mol_wire_probe( ()=> this.resets() ) ?? -1 ) + 1\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tstatic async wait() { }\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\treturn ++ this.counter\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic result() {\n\t\t\t\t\tif( this.resets() ) $mol_wire_sync( this ).wait()\n\t\t\t\t\treturn this.value()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( App.result() , 1 )\n\t\t\t\n\t\t\tApp.resets( null )\n\t\t\t$mol_wire_fiber.sync()\n\t\t\t$mol_assert_equal( await $mol_wire_async( App ).result() , 1 )\n\t\t\t\n\t\t},\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic title() {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.title() }` , 'App.title<>' )\n\n\t\t} ,\n\n\t\t'Unsubscribe from temp pubs on complete' ($) {\n\n\t\t\tclass Random extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic seed() {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic resets( next?: null ) {\n\t\t\t\t\treturn Math.random()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic value() {\n\t\t\t\t\tthis.resets()\n\t\t\t\t\treturn this.seed()\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tconst first = Random.value()\n\t\t\t\n\t\t\tRandom.resets( null )\n\t\t\t$mol_assert_unique( Random.value(), first )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\tasync 'Error caching' ($) {\n\t\t\tconst next_cached = 123\n\n\t\t\tclass Some extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic data( id: string, next?: unknown): unknown {\n\t\t\t\t\tif (next) return next as never\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t$mol_wire_async(this).data(id, next_cached)\n\t\t\t\t\t}, 10)\n\n\t\t\t\t\t$mol_fail_hidden(new Promise(() => {}))\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic run() {\n\t\t\t\t\treturn this.data('1')\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tconst val = await $mol_wire_async(Some).run()\n\t\t\t$mol_assert_equal(val, next_cached)\n\t\t} ,\n\n\t\t'Memoize by single simple key' ($) {\n\n\t\t\tclass Team extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic user_name( user: string , next?: string ) {\n\t\t\t\t\treturn next ?? user\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic user_names() {\n\t\t\t\t\treturn [\n\t\t\t\t\t\tthis.user_name( 'jin' ),\n\t\t\t\t\t\tthis.user_name( 'john' ),\n\t\t\t\t\t]\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Team.user_names(), [ 'jin', 'john' ] )\n\t\t\t\n\t\t\tTeam.user_name( 'jin', 'JIN' )\n\t\t\t$mol_assert_like( Team.user_names(), [ 'JIN', 'john' ] )\n\n\t\t} ,\n\n\t\t'Memoize by single complex key' ($) {\n\n\t\t\tclass Map extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic tile( pos: [ number, number ] ) {\n\t\t\t\t\treturn new String( `/tile=${pos}` )\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_method\n\t\t\t\tstatic test() {\n\t\t\t\t\t\n\t\t\t\t\t$mol_assert_like( this.tile([0,1]), new String( '/tile=0,1' ) )\n\t\t\t\t\t$mol_assert_equal( this.tile([0,1]), this.tile([0,1]) )\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\n\t\t\tMap.test()\n\t\t} ,\n\n\t\t'Owned value has js-path name' () {\n\n\t\t\tclass App extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic like( friend: number ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic relation( [ friend, props ]: [ number, [ number ] ] ) {\n\t\t\t\t\treturn new $mol_object2\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( `${ App.like(123) }` , 'App.like<123>' )\n\t\t\t$mol_assert_equal( `${ App.relation([123,[456]]) }` , 'App.relation<[123,[456]]>' )\n\n\t\t} ,\n\n\t\t'Deep deps' ($) {\n\n\t\t\tclass Fib extends $mol_object2 {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\tstatic sums = 0\n\n\t\t\t\t@ $mol_wire_plex\n\t\t\t\tstatic value( index: number , next?: number ): number {\n\t\t\t\t\tif( next ) return next\n\t\t\t\t\tif( index < 2 ) return 1\n\t\t\t\t\t++ this.sums\n\t\t\t\t\treturn this.value( index - 1 ) + this.value( index - 2 )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 5 )\n\t\t\t$mol_assert_equal( Fib.sums, 3 )\n\t\t\t\n\t\t\tFib.value( 1, 2 )\n\t\t\t$mol_assert_equal( Fib.value( 4 ), 8 )\n\t\t\t$mol_assert_equal( Fib.sums, 6 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'Previous value'() {\n\n\t\t\tclass Cache extends $mol_object2 {\n\n\t\t\t\t@ $mol_wire_solo\n\t\t\t\tstatic store( next?: Record< string, number > ): typeof next {\n\t\t\t\t\tif( !next ) return {}\n\t\t\t\t\treturn {\n\t\t\t\t\t\t... $mol_wire_probe( ()=> this.store() ) ?? {},\n\t\t\t\t\t\t... next,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store(), {} )\n\t\t\t\n\t\t\t$mol_assert_like( Cache.store({ foo: 666 }), { foo: 666 } )\n\t\t\t$mol_assert_like( Cache.store({ bar: 777 }), { foo: 666, bar: 777 } )\n\n\t\t} ,\n\t\t\n\t})\n}\n","/** @jsx $mol_jsx */\nnamespace $ {\n\t$mol_test({\n\t\t\n\t\t'Primitives'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( null ), 'null' )\n\t\t\t$mol_assert_equal( $mol_key( false ), 'false' )\n\t\t\t$mol_assert_equal( $mol_key( true ), 'true' )\n\t\t\t$mol_assert_equal( $mol_key( 0 ), '0' )\n\t\t\t$mol_assert_equal( $mol_key( 1n<<64n ), '18446744073709551616n' )\n\t\t\t$mol_assert_equal( $mol_key( '' ), '\"\"' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array & POJO'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key([ null ]), '[null]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: 0 }), '{\"foo\":0}' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: [false] }), '{\"foo\":[false]}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Uint8Array'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Uint8Array([ 1, 2 ]) ), '[1,2]' )\n\t\t\t$mol_assert_equal( $mol_key([ new Uint8Array([ 1, 2 ]) ]), '[[1,2]]' )\n\t\t\t$mol_assert_equal( $mol_key({ foo: new Uint8Array([ 1, 2 ]) }), '{\"foo\":[1,2]}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Function'() {\n\t\t\t\n\t\t\tconst func = ()=> {}\n\t\t\t$mol_assert_equal( $mol_key( func ), $mol_key( func ) )\n\t\t\t$mol_assert_unique( $mol_key( func ), $mol_key( ()=> {} ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Objects'() {\n\t\t\t\n\t\t\tclass User {}\n\t\t\tconst jin = new User()\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( jin ), $mol_key( jin ) )\n\t\t\t$mol_assert_unique( $mol_key( jin ), $mol_key( new User() ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Elements'() {\n\t\t\t\n\t\t\tconst foo = <div>bar</div>\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( foo ), $mol_key( foo ) )\n\t\t\t$mol_assert_unique( $mol_key( foo ), $mol_key( <div>bar</div> ) )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Custom JSON representation'() {\n\t\t\t\n\t\t\tclass User {\n\t\t\t\tconstructor( public name: string, public age: number ) {}\n\t\t\t\ttoJSON() { return { name: this.name } }\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new User( 'jin', 18 ) ), '{\"name\":\"jin\"}' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Special native classes'() {\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( new Date( 'xyz' ) ), 'null' )\n\t\t\t$mol_assert_equal( $mol_key( new Date( '2001-01-02T03:04:05.678Z' ) ), '\"2001-01-02T03:04:05.678Z\"' )\n\t\t\t\n\t\t\t$mol_assert_equal( $mol_key( /./ ), '\"/./\"' )\n\t\t\t$mol_assert_equal( $mol_key( /\\./gimsu ), '\"/\\\\\\\\./gimsu\"' )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( $ => {\n\t\t$.$mol_after_frame = $mol_after_mock_commmon as any as typeof $mol_after_frame\n\t})\n\n}\n","namespace $ {\n\t\n\t/** Watch and logs reactive states. Logger automatically added to test bundle which is adding to `test.html`. */\n\texport class $mol_wire_log extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic watch( task?: ()=> any ) {\n\t\t\treturn task\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic track( fiber: $mol_wire_fiber< any, any, any > ) {\n\t\t\t\n\t\t\tconst prev = $mol_wire_probe( ()=> this.track( fiber ) )\n\t\t\tlet next: any\n\t\t\t\n\t\t\ttry {\n\t\t\t\tnext = fiber.sync()\n\t\t\t} finally {\n\t\t\t\t\n\t\t\t\tfor( const pub of fiber.pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tif( fiber.host === this ) return next\n\t\t\t\n\t\t\tif( $mol_compare_deep( prev, next ) ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '💧 Same',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t} else if( prev !== undefined ) {\n\t\t\t\t\n\t\t\t\tthis.$.$mol_log3_rise({\n\t\t\t\t\tmessage: '🔥 Next',\n\t\t\t\t\tplace: fiber,\n\t\t\t\t\tprev,\n\t\t\t\t})\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\treturn next\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic active() {\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.watch()?.()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t} finally {\n\t\t\t\tfor( const pub of ( $mol_wire_auto() as $mol_wire_fiber< any, any, any > ).pub_list ) {\n\t\t\t\t\tif( pub instanceof $mol_wire_fiber ) {\n\t\t\t\t\t\tthis.track( pub )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\t$mol_wire_log.active()\n\n}\n","namespace $ {\n\n\t/** State of arguments like `foo=bar xxx` */\n\texport class $mol_state_arg extends $mol_object {\n\t\t\n\t\tstatic prolog = ''\n\t\tstatic separator = ' '\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href( next? : string ) {\n\t\t\treturn next || process.argv.slice( 2 ).join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic href_normal() {\n\t\t\treturn this.link({})\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic dict( next? : { [ key : string ] : string | null } ) {\n\t\t\tif( next !== void 0 ) this.href( this.make_link( next ) )\n\t\t\t\n\t\t\tvar href = this.href()\n\t\t\tvar chunks = href.split( ' ' )\n\t\t\t\n\t\t\tvar params : { [ key : string ] : string } = {}\n\t\t\tchunks.forEach(\n\t\t\t\tchunk => {\n\t\t\t\t\tif( !chunk ) return\n\t\t\t\t\tvar vals = chunk.split( '=' ).map( decodeURIComponent )\n\t\t\t\t\tparams[ vals.shift()! ] = vals.join('=')\n\t\t\t\t}\n\t\t\t)\n\t\t\t\n\t\t\treturn params as Readonly< typeof params >\n\t\t}\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic value( key : string , next? : string | null ) {\n\t\t\tif( next === void 0 ) return this.dict()[ key ] ?? null\n\t\t\tthis.href( this.link( { [ key ] : next } ) )\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tstatic link( next : Record<string, string | null> ) {\n\t\t\tconst params : Record<string, string | null> = {}\n\t\t\t\n\t\t\tvar prev = this.dict()\n\t\t\tfor( var key in prev ) {\n\t\t\t\tparams[ key ] = prev[ key ]\n\t\t\t}\n\t\t\t\n\t\t\tfor( var key in next ) {\n\t\t\t\tparams[ key ] = next[ key ]\n\t\t\t}\n\t\t\t\n\t\t\treturn this.make_link( params )\n\t\t}\n\t\t\n\t\tstatic make_link( next : Record<string, string | null>) {\n\t\t\tconst chunks : string[] = []\n\t\t\tfor( const key in next ) {\n\t\t\t\tif( next[ key ] !== null ) {\n\t\t\t\t\tchunks.push([key, next[key]!].map(encodeURIComponent).join('='))\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks.join( ' ' )\n\t\t}\n\t\t\n\t\t@ $mol_action\n\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\tthis.href( this.link( next ) )\n\t\t}\n\t\t\n\t\tstatic commit() {}\n\t\t\n\t\tconstructor( public prefix = '' ) {\n\t\t\tsuper()\n\t\t}\n\t\t\n\t\tvalue( key : string , next? : string ) {\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).value( this.prefix + key , next )\n\t\t}\n\t\t\n\t\tsub( postfix : string ) {\n\t\t\treturn new ( this.constructor as typeof $mol_state_arg )( this.prefix + postfix + '.' )\n\t\t}\n\t\t\n\t\tlink( next : Record<string, string | null> ) {\n\t\t\tconst prefix = this.prefix\n\t\t\tconst dict : Record<string, string | null> = {}\n\t\t\tfor( var key in next ) {\n\t\t\t\tdict[ prefix + key ] = next[ key ]\n\t\t\t}\n\t\t\treturn ( this.constructor as typeof $mol_state_arg ).link( dict )\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( context => {\n\t\tclass $mol_state_arg_mock extends $mol_state_arg {\n\n\t\t\tstatic $ = context\n\t\t\t\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tstatic href( next? : string ) { return next || '' }\n\t\n\t\t\t@ $mol_action\n\t\t\tstatic go( next : { [ key : string ] : string | null } ) {\n\t\t\t\tthis.href( this.link( next ) )\n\t\t\t}\n\n\t\t}\n\t\tcontext.$mol_state_arg = $mol_state_arg_mock\n\t} )\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_media extends $mol_object2 {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic match( query: string, next?: boolean ) {\n\t\t\t\n\t\t\tif( next !== undefined ) return next\n\t\t\t\n\t\t\tconst res = this.$.$mol_dom_context.matchMedia?.( query ) ?? {}\n\t\t\tres.onchange = ()=> this.match( query, res.matches )\n\t\t\t\n\t\t\treturn res.matches\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( { \n\t\t\n\t\t'const returns stored value'() {\n\t\t\n\t\t\tconst foo = { bar : $mol_const( Math.random() ) }\n\t\t\t\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar() )\n\t\t\t$mol_assert_equal( foo.bar() , foo.bar['()'] )\n\t\t\t\n\t\t} ,\n\n\t} )\n}\n","namespace $ {\n\n\tclass TestClass extends Uint8Array {}\n\n\t$mol_test({\n\t\t'Uint8Array vs itself'() {\n\t\t\t$mol_assert_ok( $mol_compare_array( new Uint8Array , new Uint8Array ) )\n\t\t\t$mol_assert_ok( $mol_compare_array( new Uint8Array([ 0 ]) , new Uint8Array([ 0 ]) ) )\n\t\t\t$mol_assert_not( $mol_compare_array( new Uint8Array([ 0 ]) , new Uint8Array([ 1 ]) ) )\n\t\t} ,\n\n\t\t'Uint8Array vs subclassed array'() {\n\t\t\t$mol_assert_not( $mol_compare_array( new Uint8Array , new TestClass ) )\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t'decode utf8 string'() {\n\t\t\tconst str = 'Hello, ΧΨΩЫ'\n\t\t\tconst encoded = new Uint8Array( [ 72, 101, 108, 108, 111, 44, 32, 206, 167, 206, 168, 206, 169, 208, 171 ] )\n\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded), str )\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded, 'utf8'), str )\n\t\t},\n\n\t\t'decode empty string'() {\n\t\t\tconst encoded = new Uint8Array( [] )\n\n\t\t\t$mol_assert_equal( $mol_charset_decode(encoded), '' )\n\t\t},\n\t})\n}\n","namespace $ {\n\t$mol_test({\n\t\t\n\t\t'encode empty'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '' ),\n\t\t\t\tnew Uint8Array( [] ),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 1 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'F' ),\n\t\t\t\tnew Uint8Array([ 0x46 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 2 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'Б' ),\n\t\t\t\tnew Uint8Array([ 0xd0, 0x91 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 3 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( 'ह' ),\n\t\t\t\tnew Uint8Array([ 0xe0, 0xa4, 0xb9 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode 4 octet'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '𐍈' ),\n\t\t\t\tnew Uint8Array([ 0xf0, 0x90, 0x8d, 0x88 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t\t'encode surrogate pair'() {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$mol_charset_encode( '😀' ),\n\t\t\t\tnew Uint8Array([ 0xf0, 0x9f, 0x98, 0x80 ]),\n\t\t\t)\n\t\t},\n\t\t\n\t})\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'local get set delete'() {\n\t\t\t\t\t\n\t\t\tvar key = '$mol_state_local_test:' + Math.random()\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , null )\n\t\t\t\n\t\t\t$mol_state_local.value( key , 123 )\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , 123 )\n\t\t\t\n\t\t\t$mol_state_local.value( key , null )\n\t\t\t$mol_assert_equal( $mol_state_local.value( key ) , null )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\t$mol_test_mocks.push( context => {\n\t\tclass $mol_state_local_mock< Value > extends $mol_state_local< Value > {\n\n\t\t\tstatic state = {} as Record< string , any >\n\t\t\t\t\t\t\n\t\t\t@ $mol_mem_key\n\t\t\tstatic value< Value >(\n\t\t\t\tkey : string ,\n\t\t\t\tnext = this.state[ key ] as Value ,\n\t\t\t) {\n\t\t\t\treturn this.state[ key ] = ( next || null )\n\t\t\t}\n\n\t\t}\n\t\tcontext.$mol_state_local = $mol_state_local_mock\n\t} )\n\t\n}\n","namespace $ {\n\t\n\tfunction parse( theme: string | null ) {\n\t\tif( theme === 'true' ) return true\n\t\tif( theme === 'false' ) return false\n\t\treturn null\n\t}\n\t\n\t/**\n\t * Switcher between light/dark themes (usually for `mol_theme_auto` plugin).\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_lights_demo\n\t */\n\texport function $mol_lights( this : $ , next? : boolean ) {\n\t\t\n\t\tconst arg = parse( this.$mol_state_arg.value( 'mol_lights' ) )\n\t\t\n\t\tconst base = this.$mol_media.match( '(prefers-color-scheme: light)' )\n\t\t\n\t\tif( next === undefined ) {\n\t\t\treturn arg ?? this.$mol_state_local.value< boolean >( '$mol_lights' ) ?? base\n\t\t} else {\n\t\t\tif( arg === null ) {\n\t\t\t\tthis.$mol_state_local.value( '$mol_lights' , next === base ? null : next )\n\t\t\t} else {\n\t\t\t\tthis.$mol_state_arg.value( 'mol_lights' , String( next ) )\n\t\t\t}\n\t\t\treturn next\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\t/**\n\t * Theme css variables\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_textarea_demo\n\t */\t\n\texport const $mol_theme = $mol_style_prop(\n\t\t'mol_theme',\n\t\t[\n\t\t\t'back',\n\t\t\t'hover',\n\t\t\t'card',\n\t\t\t'current',\n\t\t\t'special',\n\t\t\t'text',\n\t\t\t'control',\n\t\t\t'shade',\n\t\t\t'line',\n\t\t\t'focus',\n\t\t\t'field',\n\t\t\t'image',\n\t\t\t'spirit',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/theme/theme.css\",\n \":root {\\n\\t--mol_theme_hue: 240deg;\\n\\t--mol_theme_hue_spread: 90deg;\\n\\tcolor-scheme: dark light;\\n}\\n\\n:where([mol_theme]) {\\n\\tcolor: var(--mol_theme_text);\\n\\tfill: var(--mol_theme_text);\\n\\tbackground-color: var(--mol_theme_back);\\n}\\n\\t\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\n\\t--mol_theme_luma: -1;\\n\\t--mol_theme_image: invert(1) hue-rotate( 180deg );\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 0%, .75 );\\n\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 10% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 20%, .25 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 8%, .25 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 80% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 60%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 65% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 60%, 65% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 60%, 65% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n:root, [mol_theme=\\\"$mol_theme_dark\\\"], :where([mol_theme=\\\"$mol_theme_dark\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_back: oklch( 20% .03 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 30% .05 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_field: oklch( 15% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_hover: oklch( 70% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 80% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 60% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 80% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 70% .1 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 70% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 70% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t\\n\\t--mol_theme_luma: 1;\\n\\t--mol_theme_image: none;\\n\\t--mol_theme_spirit: hsl( 0deg, 0%, 100%, .75 );\\n\\t\\n\\t--mol_theme_back: hsl( var(--mol_theme_hue), 20%, 92% );\\n\\t--mol_theme_card: hsl( var(--mol_theme_hue), 50%, 100%, .5 );\\n\\t--mol_theme_field: hsl( var(--mol_theme_hue), 50%, 100%, .75 );\\n\\t--mol_theme_hover: hsl( var(--mol_theme_hue), 0%, 50%, .1 );\\n\\t\\n\\t--mol_theme_text: hsl( var(--mol_theme_hue), 0%, 0% );\\n\\t--mol_theme_shade: hsl( var(--mol_theme_hue), 0%, 40%, 1 );\\n\\t--mol_theme_line: hsl( var(--mol_theme_hue), 0%, 50%, .25 );\\n\\t--mol_theme_focus: hsl( calc( var(--mol_theme_hue) + 180deg ), 100%, 40% );\\n\\t\\n\\t--mol_theme_control: hsl( var(--mol_theme_hue), 80%, 30% );\\n\\t--mol_theme_current: hsl( calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\t--mol_theme_special: hsl( calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ), 80%, 30% );\\n\\n} @supports( color: oklch( 0% 0 0deg ) ) {\\n[mol_theme=\\\"$mol_theme_light\\\"], :where([mol_theme=\\\"$mol_theme_light\\\"]) [mol_theme] {\\n\\t--mol_theme_back: oklch( 92% .01 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 99% .01 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_field: oklch( 100% 0 var(--mol_theme_hue) / .5 );\\n\\t--mol_theme_hover: oklch( 50% 0 var(--mol_theme_hue) / .1 );\\n\\t\\n\\t--mol_theme_text: oklch( 20% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_shade: oklch( 60% 0 var(--mol_theme_hue) );\\n\\t--mol_theme_line: oklch( 50% 0 var(--mol_theme_hue) / .25 );\\n\\t--mol_theme_focus: oklch( 60% .2 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t\\n\\t--mol_theme_control: oklch( 40% .15 var(--mol_theme_hue) );\\n\\t--mol_theme_current: oklch( 50% .2 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_special: oklch( 50% .2 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\n} }\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 25% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 35% .1 var(--mol_theme_hue) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_base\\\"] {\\n\\t--mol_theme_back: oklch( 85% .075 var(--mol_theme_hue) );\\n\\t--mol_theme_card: oklch( 98% .03 var(--mol_theme_hue) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_current\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) - var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 25% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 35% .1 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_special\\\"] {\\n\\t--mol_theme_back: oklch( 85% .05 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + var(--mol_theme_hue_spread) ) / .25 );\\n}\\n\\n:where( :root, [mol_theme=\\\"$mol_theme_dark\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 35% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 45% .15 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n:where( [mol_theme=\\\"$mol_theme_light\\\"] ) [mol_theme=\\\"$mol_theme_accent\\\"] {\\n\\t--mol_theme_back: oklch( 83% .1 calc( var(--mol_theme_hue) + 180deg ) );\\n\\t--mol_theme_card: oklch( 98% .03 calc( var(--mol_theme_hue) + 180deg ) / .25 );\\n}\\n\\n\"\n) }","namespace $ {\n\t$mol_style_attach( '$mol_theme_lights', `:root { --mol_theme_back: oklch( ${ $$.$mol_lights() ? 92 : 20 }% .01 var(--mol_theme_hue) ) }` )\n}\n","namespace $ {\n\n\t/**\n\t * Gap in CSS\n\t * @see https://page.hyoo.ru/#!=msdb74_bm7nsq\n\t */\n\texport let $mol_gap = $mol_style_prop(\n\t\t'mol_gap',\n\t\t[\n\t\t\t'page',\n\t\t\t'block',\n\t\t\t'text',\n\t\t\t'round',\n\t\t\t'space',\n\t\t\t'blur',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/gap/gap.css\",\n \":root {\\n\\t--mol_gap_page: 3rem;\\n\\t--mol_gap_block: .75rem;\\n\\t--mol_gap_text: .5rem .75rem;\\n\\t--mol_gap_round: .25rem;\\n\\t--mol_gap_space: .25rem;\\n\\t--mol_gap_blur: .5rem;\\n}\\n\"\n) }","namespace $ {\n\t\n\texport class $mol_window extends $mol_object {\n\t\t\n\t\tstatic size() {\n\t\t\treturn {\n\t\t\t\twidth: 1024,\n\t\t\t\theight: 768,\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport class $mol_view_selection extends $mol_object {\n\t\t\n\t\t@ $mol_mem\n\t\tstatic focused( next? : Element[], notify?: 'notify' ) : Element[] {\n\t\t\t\n\t\t\tconst parents : Element[] = []\n\t\t\tlet element = next?.[0] ?? $mol_dom_context.document.activeElement\n\t\t\twhile( element?.shadowRoot ) {\n\t\t\t\telement = element!.shadowRoot.activeElement\n\t\t\t}\n\t\t\t\n\t\t\twhile( element ) {\n\t\t\t\tparents.push( element )\n\t\t\t\tconst parent = element.parentNode\n\t\t\t\tif( parent instanceof ShadowRoot ) element = parent.host\n\t\t\t\telse element = parent as HTMLElement\n\t\t\t}\n\t\t\t\n\t\t\tif( !next || notify ) return parents\n\t\t\t\n\t\t\tnew $mol_after_tick( ()=> {\n\t\t\t\t\n\t\t\t\tconst element = this.focused()![0] as HTMLElement\n\t\t\t\t\n\t\t\t\tif( element ) element.focus()\n\t\t\t\telse $mol_dom_context.blur()\n\t\t\t\t\n\t\t\t} )\n\n\t\t\treturn parents\n\t\t}\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\n\texport class $mol_wrapper extends $mol_object2 {\n\n\t\tstatic wrap : ( task : ( ... ags : any[] )=> any )=> ( ... ags : any[] )=> any\n\t\t\n\t\tstatic run< Result >( task : ()=> Result ) : Result {\n\t\t\treturn this.func( task )()\n\t\t}\n\t\n\t\tstatic func< Args extends any[] , Result , Host = void >(\n\t\t\tfunc : ( this : Host , ... args : Args )=> Result\n\t\t) : ( this : Host , ... args : Args )=> Result {\n\t\t\treturn this.wrap( func )\n\t\t}\n\n\t\tstatic get class() {\n\n\t\t\treturn < Class extends new ( ... args : any[] )=> any >(\n\t\t\t\tClass : Class\n\t\t\t) => {\n\n\t\t\t\ttype Args = ConstructorParameters< Class >\n\t\t\t\ttype Result = InstanceType< Class >\n\n\t\t\t\tconst construct = ( target : Class , args : Args )=> new Class( ... args )\n\n\t\t\t\tconst handler: ProxyHandler<Class> = {\n\t\t\t\t\tconstruct : this.func( construct )\n\t\t\t\t} \n\n\t\t\t\t;(handler as any)[ Symbol.toStringTag ] = Class.name + '#'\n\n\t\t\t\treturn new Proxy( Class , handler )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\n\t\tstatic get method() {\n\t\t\t\n\t\t\treturn (\n\t\t\t\tobj : object,\n\t\t\t\tname : PropertyKey,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )!,\n\t\t\t) => {\n\t\t\t\tdescr.value = this.func( descr.value! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tstatic get field() {\n\t\t\t\n\t\t\treturn <\n\t\t\t\tHost extends object ,\n\t\t\t\tField extends keyof Host ,\n\t\t\t\tArgs extends any[] ,\n\t\t\t\tResult ,\n\t\t\t>(\n\t\t\t\tobj : Host ,\n\t\t\t\tname : Field ,\n\t\t\t\tdescr = Reflect.getOwnPropertyDescriptor( obj, name )! as TypedPropertyDescriptor< Result >\n\t\t\t) => {\n\t\t\t\tdescr.get = descr.set = this.func( descr.get! )\n\t\t\t\treturn descr\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'run callback' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\t$mol_assert_equal( Plus1.run( ()=> 2 ) , 3 )\n\n\t\t} ,\n\n\t\t'wrap function' () {\n\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\t\n\t\t\tconst obj = {\n\t\t\t\tlevel : 2 ,\n\t\t\t\tpow : Plus1.func( function( this : { level : number } , a ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t} )\n\t\t\t}\n\n\t\t\t$mol_assert_equal( obj.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate field getter' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\n\t\t\t\tstatic last = 0\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn Plus1.last = ( task.call( this , ... args ) || 0 ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\t@ Plus1.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn 1\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t\n\t\t\tFoo.two = 3\n\t\t\t$mol_assert_equal( Plus1.last , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t} ,\n\n\t\t'decorate instance method' () {\n\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo1 {\n\n\t\t\t\tlevel = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tpow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tconst Foo2 = Foo1\n\t\t\tconst foo = new Foo2\n\n\t\t\t$mol_assert_equal( foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate static method' () {\n\t\t\t\n\t\t\tclass Plus1 extends $mol_wrapper {\n\t\t\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> number ) {\n\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\t\t\t\t\t\treturn task.call( this , ... args ) + 1 as number\n\t\t\t\t\t}\n\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\n\t\t\tclass Foo {\n\n\t\t\t\tstatic level = 2\n\n\t\t\t\t@ Plus1.method\n\t\t\t\tstatic pow( a : number ) {\n\t\t\t\t\treturn a ** this.level\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\t$mol_assert_equal( Foo.pow( 2 ) , 5 )\n\n\t\t} ,\n\n\t\t'decorate class' () {\n\t\t\t\n\t\t\tclass BarInc extends $mol_wrapper {\n\n\t\t\t\tstatic wrap< This , Args extends any[] >( task : ( this : This , ... args : Args )=> Foo ) {\n\t\t\t\t\t\n\t\t\t\t\treturn function( this : This , ... args : Args ) {\n\n\t\t\t\t\t\tconst foo = task.call( this , ...args )\n\t\t\t\t\t\tfoo.bar ++\n\t\t\t\t\t\treturn foo\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\t@ BarInc.class\n\t\t\tclass Foo {\n\t\t\t\tconstructor( public bar : number ) {}\n\t\t\t}\n\n\t\t\t$mol_assert_equal( new Foo( 2 ).bar , 3 )\n\n\t\t} ,\n\n\t})\n}\n","namespace $ {\n\n\texport class $mol_memo extends $mol_wrapper {\n\t\t\n\t\tstatic wrap< This extends object , Value >( task : ( this : This , next? : Value )=> Value ) {\n\n\t\t\tconst store = new WeakMap< This , Value >()\n\n\t\t\tconst fun = function( this : This , next? : Value ) {\n\n\t\t\t\tif( next === undefined && store.has( this ) ) return store.get( this )\n\t\t\t\t\n\t\t\t\tconst val = task.call( this , next ) ?? next\n\t\t\t\t\n\t\t\t\tstore.set( this , val! )\n\t\t\t\t\n\t\t\t\treturn val\n\n\t\t\t}\n\n\t\t\tReflect.defineProperty( fun , 'name' , { value : task.name + ' ' } )\n\n\t\t\treturn fun\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $ {\n\n\t$mol_test({\n\n\t\t'memoize field' () {\n\n\t\t\tclass Foo {\n\n\t\t\t\tstatic one = 1\n\n\t\t\t\t@ $mol_memo.field\n\t\t\t\tstatic get two() {\n\t\t\t\t\treturn ++ this.one\n\t\t\t\t}\n\t\t\t\tstatic set two( next : number ) {} \n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\t\t\t$mol_assert_equal( Foo.two , 2 )\n\n\t\t\tFoo.two = 3\n\t\t\t\n\t\t\t$mol_assert_equal( Foo.two , 3 )\n\t\t\t$mol_assert_equal( Foo.two , 3 )\n\n\t\t} ,\n\n\t})\n\n}\n","namespace $ {\n\n\texport function $mol_dom_qname( name : string ) {\n\t\treturn name.replace( /\\W/g , '' ).replace( /^(?=\\d+)/ , '_' )\n\t}\n\n}\n","namespace $ {\n\t\n\t/**\n\t * Real-time refresh current atom.\n\t * Don't use if possible. May reduce performance.\n\t */\n\texport function $mol_wire_watch() {\n\t\tconst atom = $mol_wire_auto()\n\t\tif( atom instanceof $mol_wire_atom ) {\n\t\t\tatom.watch()\n\t\t} else {\n\t\t\t$mol_fail( new Error( 'Atom is required for watching' ) )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_attributes (\n\t\tel : Element ,\n\t\tattrs : { [ key : string ] : string|number|boolean|null }\n\t) {\n\n\t\tfor( let name in attrs ) {\n\n\t\t\tlet val = attrs[ name ] as any\n\n\t\t\tif( val === undefined ) {\n\t\t\t\t\n\t\t\t\tcontinue\n\t\t\t\t\n\t\t\t} else if( val === null || val === false ) {\n\n\t\t\t\tif( !el.hasAttribute( name ) ) continue\n\t\t\t\t\n\t\t\t\tel.removeAttribute( name )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst str = String( val )\n\t\t\t\tif( el.getAttribute( name ) === str ) continue\n\t\t\t\t\n\t\t\t\tel.setAttribute( name , str )\n\n\t\t\t}\n\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_events (\n\t\tel : Element ,\n\t\tevents : { [ key : string ] : ( event : Event )=> any },\n\t\tpassive = false\n\t) {\n\t\tfor( let name in events ) {\n\t\t\tel.addEventListener( name , events[ name ] , { passive } )\n\t\t}\n\t}\n\n}\n","namespace $ {\n\texport function $mol_error_message(this: $, error: unknown) {\n\t\treturn String((error instanceof Error ? error.message : null) || error) || 'Unknown'\n\t}\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_styles (\n\t\tel : Element ,\n\t\tstyles : { [ key : string ] : string|number }\n\t) {\n\t\tfor( let name in styles ) {\n\t\t\tlet val = styles[ name ]\n\t\t\t\n\t\t\tconst style = ( el as HTMLElement ).style as any\n\t\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\t\t\t\n\t\t\tif( typeof val === 'number' ) {\n\t\t\t\tstyle.setProperty(kebab(name), `${ val }px`);\n\t\t\t} else {\n\t\t\t\tstyle.setProperty(kebab(name), val);\n\t\t\t}\n\t\t\t\n\t\t}\n\t}\n\n}\n","namespace $ {\n\t\n\texport function $mol_dom_render_fields (\n\t\tel : Element ,\n\t\tfields : { [ key : string ] : any }\n\t) {\n\t\tfor( let key in fields ) {\n\t\t\t\n\t\t\tconst val : any = fields[ key ]\n\t\t\t\n\t\t\tif( val === undefined ) continue\n\t\t\tif( val === (el as any)[ key ] ) continue\n\t\t\t\n\t\t\t(el as any)[ key ] = val\n\t\t}\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/view/view/view.css\",\n \"[mol_view] {\\n\\ttransition-property: height, width, min-height, min-width, max-width, max-height, transform, scale, translate, rotate;\\n\\ttransition-duration: .2s;\\n\\ttransition-timing-function: ease-out;\\n\\t-webkit-appearance: none;\\n\\tbox-sizing: border-box;\\n\\tdisplay: flex;\\n\\tflex-shrink: 0;\\n\\tcontain: style;\\n\\tscrollbar-color: var(--mol_theme_line) transparent;\\n\\tscrollbar-width: thin;\\n}\\t\\n\\n[mol_view]::selection {\\n\\tbackground: var(--mol_theme_line);\\n}\\t\\n\\n[mol_view]::-webkit-scrollbar {\\n\\twidth: .25rem;\\n\\theight: .25rem;\\n}\\n\\n[mol_view]::-webkit-scrollbar-corner {\\n\\tbackground-color: var(--mol_theme_line);\\n}\\n\\n[mol_view]::-webkit-scrollbar-track {\\n\\tbackground-color: transparent;\\n}\\n\\n[mol_view]::-webkit-scrollbar-thumb {\\n\\tbackground-color: var(--mol_theme_line);\\n\\tborder-radius: var(--mol_gap_round);\\n}\\n\\n[mol_view] > * {\\n\\tword-break: inherit;\\n}\\n\\n[mol_view_root] {\\n\\tmargin: 0;\\n\\tpadding: 0;\\n\\twidth: 100%;\\n\\theight: 100%;\\n\\tbox-sizing: border-box;\\n\\tfont-family: system-ui, 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\\n\\tfont-size: 1rem;\\n\\tline-height: 1.5rem;\\n\\t/* background: var(--mol_theme_back);\\n\\tcolor: var(--mol_theme_text); */\\n\\tcontain: unset; /** Fixes bg ignoring when applied to body on Chrome */\\n\\ttab-size: 4;\\n\\toverscroll-behavior: contain; /** Disable navigation gestures **/\\n}\\n\\n@media print {\\n\\t[mol_view_root] {\\n\\t\\theight: auto;\\n\\t}\\n}\\n[mol_view][mol_view_error]:not([mol_view_error=\\\"Promise\\\"], [mol_view_error=\\\"$mol_promise_blocker\\\"]) {\\n\\tbackground-image: repeating-linear-gradient(\\n\\t\\t-45deg,\\n\\t\\t#f92323,\\n\\t\\t#f92323 .5rem,\\n\\t\\t#ff3d3d .5rem,\\n\\t\\t#ff3d3d 1.5rem\\n\\t);\\n\\tcolor: black;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n\\n@keyframes mol_view_wait {\\n\\tfrom {\\n\\t\\topacity: .25;\\n\\t}\\n\\t20% {\\n\\t\\topacity: .75;\\n\\t}\\n\\tto {\\n\\t\\topacity: .25;\\n\\t}\\n}\\n\\n:where([mol_view][mol_view_error=\\\"$mol_promise_blocker\\\"]),\\n:where([mol_view][mol_view_error=\\\"Promise\\\"]) {\\n\\tbackground: var(--mol_theme_hover);\\n}\\n\\n[mol_view][mol_view_error=\\\"Promise\\\"] {\\n\\tanimation: mol_view_wait 1s steps(20,end) infinite;\\n}\\n\"\n) }","/** @jsx $mol_jsx */\nnamespace $ {\n\n\texport type $mol_view_content = $mol_view|Node|string|number|boolean|null\n\t\n\texport function $mol_view_visible_width() {\n\t\treturn $mol_window.size().width\n\t}\n\t\n\texport function $mol_view_visible_height() {\n\t\treturn $mol_window.size().height\n\t}\n\t\n\texport function $mol_view_state_key( suffix : string ) {\n\t\treturn suffix\n\t}\n\t\n\t/**\n\t * The base class for all visual components. It provides the infrastructure for reactive lazy rendering, handling exceptions.\n\t * @see https://mol.hyoo.ru/#!section=docs/=vv2nig_s5zr0f\n\t */\n\t/// Reactive statefull lazy ViewModel\n\texport class $mol_view extends $mol_object {\n\t\t\n\t\t@ $mol_mem_key\n\t\tstatic Root< This extends typeof $mol_view >( this : This , id: number ) {\n\t\t\treturn new this as InstanceType< This >\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstatic roots() {\n\t\t\t\n\t\t\treturn [ ... $mol_dom.document.querySelectorAll( '[mol_view_root]:not([mol_view_root=\"\"])' ) ].map( ( node, index ) => {\n\n\t\t\t\tconst name = node.getAttribute( 'mol_view_root' )!\n\t\t\t\t\n\t\t\t\tconst View = (this.$ as any)[ name ] as typeof $mol_view\n\t\t\t\tif( !View ) {\n\t\t\t\t\t$mol_fail_log( new Error( `Autobind unknown view class`, { cause: { name } } ) )\n\t\t\t\t\treturn null\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tconst view = View.Root( index )\n\t\t\t\tview.dom_node( node )\n\t\t\t\treturn view\n\t\t\t\t\n\t\t\t} ).filter( $mol_guard_defined )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic auto() {\n\t\t\t\n\t\t\tconst roots = this.roots()\n\t\t\tif( !roots.length ) return\n\t\t\t\n\t\t\tfor( const root of roots ) {\n\t\t\t\ttry {\n\t\t\t\t\troot.dom_tree()\n\t\t\t\t} catch( error ) {\n\t\t\t\t\t$mol_fail_log( error )\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tdocument.title = roots[0].title()\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\tdescr: try {\n\t\t\t\t\n\t\t\t\tconst descr = roots[0].hint()\n\t\t\t\tif( !descr ) break descr\n\t\t\t\t\n\t\t\t\tconst head = $mol_dom.document.head\n\t\t\t\tlet node = head.querySelector( 'meta[name=\"description\"]' ) as HTMLMetaElement | null\n\t\t\t\tif( node ) node.content = descr\n\t\t\t\telse head.append( <meta name=\"description\" content={ descr } /> )\n\t\t\t\t\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}\n\t\t\n\t\t@ $mol_mem\n\t\ttitle() {\n\t\t\treturn this.toString().match( /.*\\.(\\w+)/ )?.[1] ?? this.toString()\n\t\t}\n\t\t\n\t\thint() {\n\t\t\treturn ''\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tfocused( next?: boolean ) {\n\t\t\tlet node = this.dom_node()\n\t\t\tconst value = $mol_view_selection.focused( next === undefined ? undefined : ( next ? [ node ] : [] ) )\n\t\t\treturn value.indexOf( node ) !== -1\n\t\t}\n\t\t\n\t\tstate_key( suffix = '' ) {\n\t\t\treturn this.$.$mol_view_state_key( suffix )\n\t\t}\n\t\t\n\t\t/// Name of element that created when element not found in DOM\n\t\t@ $mol_memo.method\n\t\tdom_name() {\n\t\t\treturn $mol_dom_qname( this.constructor.toString() ) || 'div'\n\t\t}\n\t\t\n\t\t/// NameSpace of element that created when element not found in DOM\n\t\tdom_name_space() { return 'http://www.w3.org/1999/xhtml' }\n\t\t\n\t\t/// Raw child views\n\t\tsub() {\n\t\t\treturn [] as readonly $mol_view_content[]\n\t\t}\n\t\t\n\t\t/// Visible sub views with defined ambient context\n\t\t/// Render all by default\n\t\tsub_visible() {\n\t\t\treturn this.sub()\n\t\t}\n\t\t\n\t\t/// Minimal width that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_width() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tconst sub = this.sub()\n\t\t\t\tif( !sub ) return 0\n\t\t\t\t\n\t\t\t\tsub.forEach( view => {\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_width() )\n\t\t\t\t\t}\n\t\t\t\t} )\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\t\t\n\t\t\treturn min\n\t\t}\n\t\t\n\t\tmaximal_width() {\n\t\t\treturn this.minimal_width()\n\t\t}\n\t\t\n\t\t/// Minimal height that used for lazy rendering\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\t\n\t\t\tlet min = 0\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tfor( const view of this.sub() ?? [] ) {\n\n\t\t\t\t\tif( view instanceof $mol_view ) {\n\t\t\t\t\t\tmin = Math.max( min , view.minimal_height() )\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} catch( error: any ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn 24\n\t\t\t}\n\n\t\t\treturn min\n\t\t}\n\n\t\tstatic watchers = new Set< $mol_view >()\n\n\t\t@ $mol_mem\n\t\tview_rect() {\n\t\t\tif( $mol_wire_probe( ()=> this.view_rect() ) === undefined ) {\n\t\t\t\t$mol_wire_watch()\n\t\t\t\treturn null // don't touch DOM to prevent instant reflow\n\t\t\t} else {\n\t\t\t\tconst { width, height, left, right, top, bottom } = this.dom_node().getBoundingClientRect()\n\t\t\t\treturn { width, height, left, right, top, bottom } // pick to optimize compare\n\t\t\t}\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tdom_id() {\n\t\t\treturn this.toString().replace( /</g, '(' ).replace( />/g, ')' ).replaceAll( /\"/g, \"'\" )\n\t\t}\n\t\n\t\tdom_node_external( next?: Element) {\n\t\t\tconst node = next ?? $mol_dom_context.document.createElementNS( this.dom_name_space() , this.dom_name() )\n\n\t\t\tconst id = this.dom_id()\n\t\t\tnode.setAttribute( 'id' , id )\n\t\t\tnode.toString = $mol_const( '<#' + id + '>' )\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node( next? : Element ) {\n\t\t\t$mol_wire_solid()\n\t\t\tconst node = this.dom_node_external( next )\n\t\t\t$mol_dom_render_attributes( node , this.attr_static() )\n\t\t\t\n\t\t\tconst events = this.event_async()\n\t\t\t$mol_dom_render_events(node, events)\n\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_final() {\n\t\t\t\n\t\t\tthis.render()\n\t\t\t\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tfor( const el of sub ) {\n\t\t\t\tif( el && typeof el === 'object' && 'dom_final' in el ) {\n\t\t\t\t\tel['dom_final']()\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\treturn this.dom_node()\n\t\t\t\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tdom_tree( next? : Element ) : Element {\n\t\t\tconst node = this.dom_node( next )\n\t\t\t\n\t\t\trender: try {\n\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error : null } )\n\n\t\t\t\ttry {\n\t\t\t\t\n\t\t\t\t\tthis.render()\n\t\t\t\t\t\n\t\t\t\t} finally {\n\t\t\t\t\t\n\t\t\t\t\tfor( let plugin of this.plugins() ) {\n\t\t\t\t\t\tif( plugin instanceof $mol_plugin ) {\n\t\t\t\t\t\t\tplugin.dom_tree()\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\tconst mol_view_error = $mol_promise_like(error)\n\t\t\t\t\t? (error as any).constructor[Symbol.toStringTag] ?? 'Promise'\n\t\t\t\t\t: error.name || error.constructor.name\n\t\t\t\t$mol_dom_render_attributes( node , { mol_view_error } )\n\t\t\t\t\n\t\t\t\tif( $mol_promise_like( error ) ) break render\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t;( node as HTMLElement ).innerText = this.$.$mol_error_message(error).replace( /^|$/mg, '\\xA0\\xA0' )\n\t\t\t\t} catch {}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.auto()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\t\n\t\t\treturn node\n\t\t}\n\n\t\t@ $mol_mem\n\t\tdom_node_actual() {\n\t\t\tconst node = this.dom_node()\n\n\t\t\tconst attr = this.attr()\n\t\t\tconst style = this.style()\n\n\t\t\t$mol_dom_render_attributes( node , attr )\n\t\t\t$mol_dom_render_styles( node , style )\n\n\t\t\treturn node\n\t\t}\n\t\t\n\t\tauto() {\n\t\t\treturn [] as any\n\t\t}\n\n\t\t@ $mol_mem\n\t\trender() {\n\n\t\t\tconst node = this.dom_node_actual()\n\n\t\t\tconst sub = this.sub_visible()\n\t\t\tif( !sub ) return\n\t\t\t\n\t\t\tconst nodes = sub.map( child => {\n\t\t\t\tif( child == null ) return null\n\t\t\t\treturn ( child instanceof $mol_view )\n\t\t\t\t\t? child.dom_node()\n\t\t\t\t\t: child instanceof $mol_dom_context.Node\n\t\t\t\t\t? child\n\t\t\t\t\t: String( child )\n\t\t\t})\n\t\t\t\n\t\t\t$mol_dom_render_children( node , nodes )\n\n\t\t\tfor( const el of sub ) if( el && typeof el === 'object' && 'dom_tree' in el ) el['dom_tree']()\n\n\t\t\t$mol_dom_render_fields( node , this.field() )\n\t\t\t\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tstatic view_classes() {\n\t\t\tconst proto = this.prototype\n\t\t\t\n\t\t\tlet current = proto\n\t\t\tconst classes = [] as ( typeof $mol_view )[]\n\t\t\t\n\t\t\twhile( current ) {\n\t\t\t\tif( current.constructor.name !== classes.at(-1)?.name ) {\n\t\t\t\t\tclasses.push( current.constructor as typeof $mol_view )\n\t\t\t\t}\n\t\t\t\tif(!( current instanceof $mol_view )) break\n\t\t\t\tcurrent = Object.getPrototypeOf( current )\n\t\t\t}\n\t\t\t\n\t\t\treturn classes\n\t\t}\n\t\t\n\t\tstatic _view_names?: Map< string, string[] >\n\t\tstatic view_names( suffix: string ) {\n\t\t\t\n\t\t\tlet cache = Reflect.getOwnPropertyDescriptor( this, '_view_names' )?.value\n\t\t\tif( !cache ) cache = this._view_names = new Map\n\t\t\t\n\t\t\tconst cached = cache.get( suffix )\n\t\t\tif( cached ) return cached\n\t\t\t\n\t\t\tconst names = [] as string[]\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tfor( const Class of this.view_classes() ) {\n\t\t\t\tif( suffix in Class.prototype ) names.push( this.$.$mol_func_name( Class ) + suffix2 )\n\t\t\t\telse break\n\t\t\t}\n\t\t\t\n\t\t\tcache.set( suffix, names )\n\t\t\treturn names\n\t\t}\n\t\t\n\t\t@ $mol_memo.method\n\t\tview_names_owned() {\n\t\t\tconst names = [] as string[]\n\t\t\tlet owner = $mol_owning_get( this ) as $mol_wire_fiber< any, any[], any >\n\n\t\t\tif(!( owner?.host instanceof $mol_view )) return names\n\n\t\t\tconst suffix = owner.task.name.trim()\n\t\t\tconst suffix2 = '_' + suffix[0].toLowerCase() + suffix.substring(1)\n\t\t\t\n\t\t\tnames.push( ... ( owner.host.constructor as typeof $mol_view ).view_names( suffix ) )\n\t\t\t\n\t\t\tfor( let prefix of owner.host.view_names_owned() ) {\n\t\t\t\tnames.push( prefix + suffix2 )\n\t\t\t}\n\t\t\t\n\t\t\treturn names\n\t\t}\n\n\t\t@ $mol_memo.method\n\t\tview_names() {\n\t\t\tconst names = new Set< string >()\n\t\t\t\n\t\t\tfor( let name of this.view_names_owned() ) names.add( name )\n\n\t\t\tfor( let Class of ( this.constructor as typeof $mol_view ).view_classes() ) {\n\t\t\t\tconst name = this.$.$mol_func_name( Class )\n\t\t\t\tif( name ) names.add( name )\n\t\t\t}\n\n\t\t\treturn names\n\t\t}\n\t\t\n\t\ttheme( next?: string | null ) {\n\t\t\treturn next\n\t\t}\n\t\t\n\t\tattr_static() : { [ key : string ] : string|number|boolean|null } {\n\t\t\tlet attrs : any = {}\n\t\t\t\n\t\t\tfor( let name of this.view_names() ) attrs[ name.replace( /\\$/g , '' ).replace( /^(?=\\d)/ , '_' ).toLowerCase() ] = ''\n\t\t\t\n\t\t\treturn attrs\n\t\t}\n\t\t\n\t\tattr() {\n\t\t\treturn {\n\t\t\t\tmol_theme: this.theme(),\n\t\t\t} as {}\n\t\t}\n\t\t\n\t\tstyle() : { [ key : string ] : string|number } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tfield() : { [ key : string ] : any } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\tevent() : { [ key : string ] : ( event : Event )=> void } {\n\t\t\treturn {}\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tevent_async() {\n\t\t\treturn { ... $mol_wire_async(this.event()) }\n\t\t}\n\n\t\tplugins() {\n\t\t\treturn [] as readonly $mol_view[]\n\t\t}\n\t\t\n\t\t[ $mol_dev_format_head ]() {\n\t\t\treturn $mol_dev_format_span( {} ,\n\t\t\t\t$mol_dev_format_native( this ) ,\n\t\t\t\t// $mol_dev_format_shade( '/' ) ,\n\t\t\t\t// $mol_dev_format_auto( $mol_wire_cache( this ).sub().cache ) ,\n\t\t\t)\n\t\t}\n\n\t\t/** Deep search view by predicate. */\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( path.length === 0 && check( this ) ) return yield [ this ]\n\t\t\t\n\t\t\ttry {\n\t\t\t\tconst checked = new Set<$mol_view>()\n\t\t\t\tconst sub = this.sub()\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif( ! ( item instanceof $mol_view ) ) continue\n\n\t\t\t\t\tif ( ! check( item ) ) continue\n\t\t\t\t\tchecked.add(item)\n\t\t\t\t\tyield [ ... path, this, item ]\n\t\t\t\t}\n\n\t\t\t\tfor( const item of sub ) {\n\t\t\t\t\tif ( ! ( item instanceof $mol_view) ) continue\n\t\t\t\t\tif ( checked.has(item) ) continue\n\t\t\t\t\tyield* item.view_find( check, [ ... path, this ] )\n\t\t\t\t}\n\t\t\t} catch( error: unknown ) {\n\t\t\t\tif( $mol_promise_like( error ) ) $mol_fail_hidden( error )\n\t\t\t\t$mol_fail_log( error )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders path of views to DOM. */\n\t\tforce_render(\n\t\t\tpath : Set< $mol_view >,\n\t\t) {\n\n\t\t\tconst kids = this.sub()\n\n\t\t\tconst index = kids.findIndex( item => {\n\t\t\t\tif( item instanceof $mol_view ) {\n\t\t\t\t\treturn path.has( item )\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t})\n\n\t\t\tif( index >= 0 ) {\n\t\t\t\t( kids[ index ] as $mol_view ).force_render( path )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\t/** Renders view to DOM and scroll to it. */\n\t\tensure_visible( view: $mol_view, align: ScrollLogicalPosition = \"start\" ) {\n\t\t\t\n\t\t\tconst path = this.view_find( v => v === view ).next().value\n\t\t\tthis.force_render( new Set( path ) )\n\t\t\t\n\t\t\ttry {\n\t\t\t\tthis.dom_final()\n\t\t\t} finally {\n\t\t\t\tview.dom_node().scrollIntoView({ block: align })\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tbring() {\n\t\t\t\n\t\t\tconst win = this.$.$mol_dom_context\n\t\t\tif( win.parent !== win.self && !win.document.hasFocus() ) return\n\t\t\t\n\t\t\t// new this.$.$mol_after_frame( ()=> {\n\t\t\t// \tthis.dom_node().scrollIntoView({ block: 'start', inline: 'nearest' })\n\t\t\t// } )\n\t\t\t\n\t\t\tnew this.$.$mol_after_timeout( 0, ()=> {\n\t\t\t\tthis.focused( true )\n\t\t\t} )\n\t\t\t\n\t\t}\n\n\t\toverride destructor() {\n\t\t\tconst node = $mol_wire_probe(() => this.dom_node())\n\t\t\tif (! node) return\n\n\t\t\tconst events = $mol_wire_probe(() => this.event_async())\n\t\t\tif (! events) return\n\n\t\t\tfor( let event_name in events ) {\n\t\t\t\tnode.removeEventListener(\n\t\t\t\t\tevent_name ,\n\t\t\t\t\tevents[ event_name ]\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t}\n\n\texport type $mol_view_all = $mol_type_pick< $ , typeof $mol_view >\n\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'id auto generation'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test_item extends $mol_view { }\n\t\t\t\n\t\t\tclass $mol_view_test_block extends $mol_view {\n\n\t\t\t\tstatic $ = $\n\t\t\t\t\n\t\t\t\t@ $mol_mem_key\n\t\t\t\telement( id : number ) {\n\t\t\t\t\treturn new $mol_view_test_item()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tvar x = $mol_view_test_block.Root(0)\n\t\t\t\n\t\t\t$mol_assert_equal( x.dom_node().id , '$mol_view_test_block.Root(0)' )\n\t\t\t$mol_assert_equal( x.element( 0 ).dom_node().id , '$mol_view_test_block.Root(0).element(0)' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'caching ref to dom node'($) {\n\t\t\t\n\t\t\tvar x = new class extends $mol_view { }\n\t\t\tx.$ = $\n\t\t\t\n\t\t\t$mol_assert_equal( x.dom_node() , x.dom_node() )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'content render'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tsub() {\n\t\t\t\t\treturn [ 'lol' , 5 ]\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_tree()\n\t\t\t\n\t\t\t$mol_assert_equal( node.innerHTML , 'lol5' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'bem attributes generation'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test_item extends $mol_view { }\n\t\t\t\n\t\t\tclass $mol_view_test_block extends $mol_view {\n\t\t\t\t\n\t\t\t\t@ $mol_mem_key\n\t\t\t\tElement( id : number ) {\n\t\t\t\t\treturn new $mol_view_test_item()\n\t\t\t\t}\n\t\t\t\t\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test_block()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\t$mol_assert_equal( x.dom_node().getAttribute( 'mol_view_test_block' ) , '' )\n\t\t\t$mol_assert_equal( x.dom_node().getAttribute( 'mol_view' ) , '' )\n\t\t\t\n\t\t\t$mol_assert_equal( x.Element( 0 ).dom_node().getAttribute( 'mol_view_test_block_element' ) , '' )\n\t\t\t\n\t\t\t$mol_assert_equal( x.Element( 0 ).dom_node().getAttribute( 'mol_view_test_item' ) , '' )\n\t\t\t$mol_assert_equal( x.Element( 0 ).dom_node().getAttribute( 'mol_view' ) , '' )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'render custom attributes'($) {\n\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tattr() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'href' : '#haha' ,\n\t\t\t\t\t\t'required' : true ,\n\t\t\t\t\t\t'hidden' : false ,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_tree()\n\t\t\t\n\t\t\t$mol_assert_equal( node.getAttribute( 'href' ) , '#haha' )\n\t\t\t$mol_assert_equal( node.getAttribute( 'required' ) , 'true' )\n\t\t\t$mol_assert_equal( node.getAttribute( 'hidden' ) , null )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'render custom fields'($) {\n\t\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tfield() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'hidden' : true\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_tree() as HTMLElement\n\t\t\t\n\t\t\t$mol_assert_equal( node.hidden , true )\n\t\t\t\n\t\t} ,\n\t\t\n\t\t'attach event handlers'($) {\n\t\t\t\t\n\t\t\tvar clicked = false\n\t\t\t\n\t\t\tclass $mol_view_test extends $mol_view {\n\t\t\t\tevent() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t'click' : ( next? : Event ) => this.event_click( next )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tevent_click( next? : Event ) {\n\t\t\t\t\tclicked = true\n\t\t\t\t}\n\t\t\t}\n\t\t\t\n\t\t\tvar x = new $mol_view_test()\n\t\t\tx.$ = $\n\t\t\t\n\t\t\tvar node = x.dom_node() as HTMLElement\n\t\t\tnode.click()\n\t\t\t\n\t\t\t$mol_assert_ok( clicked )\n\t\t\t\n\t\t} ,\n\t\n\t} )\n}\n","namespace $ {\n\t/** Plugin is component without its own DOM element, but instead uses the owner DOM element */\n\texport class $mol_plugin extends $mol_view {\n\n\t\toverride dom_node_external( next? : Element ) {\n\t\t\treturn next ?? $mol_owning_get<typeof this, $mol_wire_fiber<$mol_view, any, any>>( this )!.host!.dom_node()\n\t\t}\n\n\t\toverride render() {\n\t\t\tthis.dom_node_actual()\n\t\t}\n\n\t}\n\n}\n","$mol_hotkey $mol_plugin\n\tevent *\n\t\t^\n\t\tkeydown?event <=> keydown?event null\n\tkey *\n\tmod_ctrl false\n\tmod_alt false\n\tmod_shift false\n","namespace $ {\n\t/**\n\t* Key names code for hotkey\n\t* @see [mol_hotkey](../../hotkey/hotkey.view.ts)\n\t*/\n\texport enum $mol_keyboard_code {\n\t\tbackspace = 8,\n\t\ttab = 9,\n\t\tenter = 13,\n\t\tshift = 16,\n\t\tctrl = 17,\n\t\talt = 18,\n\t\tpause = 19,\n\t\tcapsLock = 20,\n\t\tescape = 27,\n\t\tspace = 32,\n\t\tpageUp = 33,\n\t\tpageDown = 34,\n\t\tend = 35,\n\t\thome = 36,\n\t\tleft = 37,\n\t\tup = 38,\n\t\tright = 39,\n\t\tdown = 40,\n\t\tinsert = 45,\n\t\tdelete = 46,\n\t\tkey0 = 48,\n\t\tkey1 = 49,\n\t\tkey2 = 50,\n\t\tkey3 = 51,\n\t\tkey4 = 52,\n\t\tkey5 = 53,\n\t\tkey6 = 54,\n\t\tkey7 = 55,\n\t\tkey8 = 56,\n\t\tkey9 = 57,\n\t\tA = 65,\n\t\tB = 66,\n\t\tC = 67,\n\t\tD = 68,\n\t\tE = 69,\n\t\tF = 70,\n\t\tG = 71,\n\t\tH = 72,\n\t\tI = 73,\n\t\tJ = 74,\n\t\tK = 75,\n\t\tL = 76,\n\t\tM = 77,\n\t\tN = 78,\n\t\tO = 79,\n\t\tP = 80,\n\t\tQ = 81,\n\t\tR = 82,\n\t\tS = 83,\n\t\tT = 84,\n\t\tU = 85,\n\t\tV = 86,\n\t\tW = 87,\n\t\tX = 88,\n\t\tY = 89,\n\t\tZ = 90,\n\t\tmetaLeft = 91,\n\t\tmetaRight = 92,\n\t\tselect = 93,\n\t\tnumpad0 = 96,\n\t\tnumpad1 = 97,\n\t\tnumpad2 = 98,\n\t\tnumpad3 = 99,\n\t\tnumpad4 = 100,\n\t\tnumpad5 = 101,\n\t\tnumpad6 = 102,\n\t\tnumpad7 = 103,\n\t\tnumpad8 = 104,\n\t\tnumpad9 = 105,\n\t\tmultiply = 106,\n\t\tadd = 107,\n\t\tsubtract = 109,\n\t\tdecimal = 110,\n\t\tdivide = 111,\n\t\tF1 = 112,\n\t\tF2 = 113,\n\t\tF3 = 114,\n\t\tF4 = 115,\n\t\tF5 = 116,\n\t\tF6 = 117,\n\t\tF7 = 118,\n\t\tF8 = 119,\n\t\tF9 = 120,\n\t\tF10 = 121,\n\t\tF11 = 122,\n\t\tF12 = 123,\n\t\tnumLock = 144,\n\t\tscrollLock = 145,\n\t\tsemicolon = 186,\n\t\tequals = 187,\n\t\tcomma = 188,\n\t\tdash = 189,\n\t\tperiod = 190,\n\t\tforwardSlash = 191,\n\t\tgraveAccent = 192,\n\t\tbracketOpen = 219,\n\t\tslashBack = 220,\n\t\tslashBackLeft = 226,\n\t\tbracketClose = 221,\n\t\tquoteSingle = 222\n\t}\n}\n","namespace $.$$ {\n\t/**\n\t * Plugin which adds handlers for keyboard keys.\n\t * @see [mol_keyboard_code](../keyboard/code/code.ts)\n\t */\n\texport class $mol_hotkey extends $.$mol_hotkey {\n\n\t\tkey() {\n\t\t\treturn super.key() as {\n\t\t\t\t[ key in keyof typeof $mol_keyboard_code ]? : ( event : KeyboardEvent )=> void\n\t\t\t}\n\t\t}\n\t\t\n\t\tkeydown( event? : KeyboardEvent ) {\n\n\t\t\tif( !event ) return\n\t\t\tif( event.defaultPrevented ) return\n\n\t\t\tlet name = $mol_keyboard_code[ event.keyCode ] as keyof typeof $mol_keyboard_code\n\t\t\t\n\t\t\tif( this.mod_ctrl() !== ( event.ctrlKey || event.metaKey ) ) return\n\t\t\tif( this.mod_alt() !== event.altKey ) return\n\t\t\tif( this.mod_shift() !== event.shiftKey ) return\n\t\t\t\n\t\t\tconst handle = this.key()[ name ]\n\t\t\tif( handle ) handle( event )\n\n\t\t}\n\t\t\n\t}\n}\n","$mol_string $mol_view\n\tdom_name \\input\n\tenabled true\n\tminimal_height 40\n\tautocomplete false\n\tselection? /number\n\t\t0\n\t\t0\n\tauto /\n\t\t<= selection_watcher null\n\t\t<= error_report null\n\tfield *\n\t\t^\n\t\tdisabled <= disabled false\n\t\tvalue <= value_changed? <=> value? \\\n\t\tplaceholder <= hint_visible <= hint \\\n\t\tspellcheck <= spellcheck true\n\t\tautocomplete <= autocomplete_native \\\n\t\tselectionEnd <= selection_end 0\n\t\tselectionStart <= selection_start 0\n\t\tinputMode <= keyboard \\text\n\t\tenterkeyhint <= enter \\go\n\tattr *\n\t\t^\n\t\tmaxlength <= length_max +Infinity\n\t\ttype <= type? \\text\n\tevent *\n\t\t^\n\t\tinput?event <=> event_change?event null\n\tplugins /\n\t\t<= Submit $mol_hotkey\n\t\t\tmod_ctrl <= submit_with_ctrl false\n\t\t\tkey * enter?event <=> submit?event null\n","namespace $ {\n\n\texport class $mol_dom_listener extends $mol_object {\n\n\t\tconstructor(\n\t\t\tpublic _node : any ,\n\t\t\tpublic _event : string ,\n\t\t\tpublic _handler : ( event : any )=> any ,\n\t\t\tpublic _config : boolean|{ passive : boolean } = { passive : true }\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis._node.addEventListener( this._event , this._handler , this._config )\n\t\t}\n\n\t\tdestructor() {\n\t\t\tthis._node.removeEventListener( this._event , this._handler , this._config )\n\t\t\tsuper.destructor()\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/**\n\t * Z-index values for layers\n\t * https://page.hyoo.ru/#!=xthcpx_wqmiba\n\t */\n\texport let $mol_layer = $mol_style_prop(\n\t\t'mol_layer',\n\t\t[\n\t\t\t'hover',\n\t\t\t'focus',\n\t\t\t'speck',\n\t\t\t'float',\n\t\t\t'popup',\n\t\t] as const\n\t)\n\n}\n","namespace $ { $mol_style_attach( \"mol/layer/layer.css\",\n \":root {\\n\\t--mol_layer_hover: 1;\\n\\t--mol_layer_focus: 2;\\n\\t--mol_layer_speck: 3;\\n\\t--mol_layer_float: 4;\\n\\t--mol_layer_popup: 5;\\n}\\n\"\n) }","namespace $.$$ {\n\t/**\n\t * An input field for entering single line text.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_string_demo\n\t */\n\texport class $mol_string extends $.$mol_string {\n\t\t\n\t\t@ $mol_action\n\t\tevent_change( next? : Event ) {\n\t\t\tif( !next ) return\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tconst from = el.selectionStart\n\t\t\tconst to = el.selectionEnd\n\t\t\ttry {\n\t\t\t\tel.value = this.value_changed( el.value )\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t}\n\t\t\tif( to === null ) return \n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\t\t\tthis.selection_change( next )\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\terror_report() {\n\t\t\ttry {\n\t\t\t\tif( this.focused() ) this.value()\n\t\t\t} catch( error ) {\n\t\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\t\tif( error instanceof Error ) {\n\t\t\t\t\tel.setCustomValidity( error.message )\n\t\t\t\t\tel.reportValidity()\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\thint_visible() {\n\t\t\treturn ( this.enabled() ? this.hint() : '' ) || ' '\n\t\t}\n\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\n\t\tautocomplete_native() {\n\t\t\treturn this.autocomplete() ? 'on' : 'off'\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tselection_watcher() {\n\t\t\treturn new $mol_dom_listener(\n\t\t\t\tthis.$.$mol_dom_context.document,\n\t\t\t\t'selectionchange',\n\t\t\t\t$mol_wire_async( event => this.selection_change( event ) ),\n\t\t\t)\n\t\t}\n\t\t\n\t\tselection_change( event: Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( el !== this.$.$mol_dom_context.document.activeElement ) return\n\t\t\t\n\t\t\tconst [ from, to ] = this.selection([\n\t\t\t\tel.selectionStart!,\n\t\t\t\tel.selectionEnd!,\n\t\t\t])\n\t\t\t\n\t\t\tel.selectionEnd = to\n\t\t\tel.selectionStart = from\n\n\t\t\tif( to !== from && el.selectionEnd === el.selectionStart ) {\n\t\t\t\tel.selectionEnd = to\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\tselection_start() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( !this.focused() ) return undefined!\n\t\t\tif( el.selectionStart == null ) return undefined!\n\t\t\treturn this.selection()[0]\n\t\t}\n\t\t\n\t\tselection_end() {\n\t\t\tconst el = this.dom_node() as HTMLInputElement\n\t\t\tif( !this.focused() ) return undefined!\n\t\t\tif( el.selectionEnd == null ) return undefined!\n\t\t\treturn this.selection()[1]\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/string/string.view.css\",\n \"[mol_string] {\\n\\tbox-sizing: border-box;\\n\\toutline-offset: 0;\\n\\tborder: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\twhite-space: pre-line;\\n\\toverflow: hidden;\\n\\ttext-overflow: ellipsis;\\n\\tpadding: var(--mol_gap_text);\\n\\ttext-align: left;\\n\\tposition: relative;\\n\\tfont: inherit;\\n\\tflex: 1 1 auto;\\n\\tbackground: transparent;\\n\\tmin-width: 0;\\n\\tcolor: inherit;\\n\\tbackground: var(--mol_theme_field);\\n}\\n\\n[mol_string]:disabled:not(:placeholder-shown) {\\n\\tbackground-color: transparent;\\n\\tcolor: var(--mol_theme_text);\\n}\\n\\n[mol_string]:where(:not(:disabled)) {\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_line);\\n}\\n\\n[mol_string]:where(:not(:disabled)):hover {\\n\\tbox-shadow: inset 0 0 0 2px var(--mol_theme_line);\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_string]:focus {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n\\tcolor: var(--mol_theme_text);\\n\\tbox-shadow: inset 0 0 0 1px var(--mol_theme_focus);\\n}\\n\\n[mol_string]::placeholder {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\\n[mol_string]::-ms-clear {\\n\\tdisplay: none;\\n}\\n\"\n) }","$mol_paragraph $mol_view\n\tline_height 24\n\tletter_width 7\n\twidth_limit +Infinity\n\trow_width 0\n\tsub / <= title\n","namespace $.$$ {\n\n\texport class $mol_paragraph extends $.$mol_paragraph {\n\n\t\t@ $mol_mem\n\t\tmaximal_width() {\n\n\t\t\tlet width = 0\n\t\t\tconst letter = this.letter_width()\n\t\t\t\n\t\t\tfor( const kid of this.sub() ) {\n\t\t\t\t\n\t\t\t\tif( !kid ) continue\n\t\t\t\t\n\t\t\t\tif( kid instanceof $mol_view ) {\n\t\t\t\t\twidth += kid.maximal_width()\n\t\t\t\t} else if( typeof kid !== 'object' ) {\n\t\t\t\t\twidth += String( kid ).length * letter\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\treturn width\n\n\t\t}\n\n\t\twidth_limit() {\n\t\t\treturn this.$.$mol_window.size().width\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.letter_width()\n\t\t}\n\n\t\t@ $mol_mem\n\t\trow_width() {\n\t\t\treturn Math.max( Math.min( this.width_limit() , this.maximal_width() ) , this.letter_width() )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tminimal_height() {\n\t\t\treturn Math.max( 1 , Math.ceil( this.maximal_width() / this.row_width() ) ) * this.line_height()\n\t\t}\n\n\t}\n\n}\n","namespace $ { $mol_style_attach( \"mol/paragraph/paragraph.view.css\",\n \":where([mol_paragraph]) {\\n\\tmargin: 0;\\n\\tmax-width: 100%;\\n}\\n\"\n) }","$mol_dimmer $mol_paragraph\n\thaystack \\\n\tneedle \\\n\tsub <= parts /$mol_view_content\n\tLow* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n\tHigh* $mol_paragraph\n\t\tsub /\n\t\t\t<= string* \\\n","namespace $.$$ {\n\t$mol_test({\n\t\t\n\t\t'Empty needle'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> ' '\n\t\t\tapp.haystack = ()=> 'foo bar'\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ 'foo bar' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Empty haystack'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo bar'\n\t\t\tapp.haystack = ()=> ''\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ '' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Not found'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo'\n\t\t\tapp.haystack = ()=> ' bar '\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' bar ' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'One found'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo'\n\t\t\tapp.haystack = ()=> ' barfoo '\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' bar', 'foo', ' ' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Multiple found'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo'\n\t\t\tapp.haystack = ()=> ' foobarfoo foo'\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' ', 'foo', 'bar', 'foo', ' ', 'foo' ] )\n\t\t\t\n\t\t},\n\t\t\n\t\t'Fuzzy search'() {\n\t\t\t\n\t\t\tconst app = new $mol_dimmer\n\t\t\tapp.needle = ()=> 'foo bar'\n\t\t\tapp.haystack = ()=> ' barfoo '\n\t\t\t\n\t\t\t$mol_assert_like( app.strings(), [ ' ', 'bar', '', 'foo', ' ' ] )\n\t\t\t\n\t\t},\n\t\t\n\t})\n}\n","namespace $.$$ {\n\n\t/**\n\t * Output text with dimmed mismatched substrings.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_dimmer_demo\n\t */\n\texport class $mol_dimmer extends $.$mol_dimmer {\n\t\t\n\t\tparts() {\n\t\t\tconst needle = this.needle()\n\t\t\tif( needle.length < 2 ) return [ this.haystack() ]\n\t\t\t\n\t\t\tlet chunks : any[] = []\n\t\t\tlet strings = this.strings()\n\t\t\t\n\t\t\tfor( let index = 0 ; index < strings.length ; index++ ) {\n\t\t\t\tif( strings[ index ] === '' ) continue\n\t\t\t\t\n\t\t\t\tchunks.push( ( index % 2 ) ? this.High( index ) : this.Low( index ) )\n\t\t\t}\n\t\t\t\n\t\t\treturn chunks\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tstrings() {\n\t\t\t\n\t\t\tconst options = this.needle().split( /\\s+/g ).filter( Boolean )\n\t\t\tif( !options.length ) return [ this.haystack() ]\n\t\t\t\n\t\t\tconst variants = { ... options } as Record< number, string >\n\t\t\tconst regexp = $mol_regexp.from( { needle: variants } , { ignoreCase: true } )\n\t\t\t\n\t\t\treturn this.haystack().split( regexp )\n\t\t}\n\t\t\n\t\tstring( index: number ) {\n\t\t\treturn this.strings()[ index ]\n\t\t}\n\t\t\n\t\t*view_find(\n\t\t\tcheck: ( path : $mol_view, text?: string )=> boolean,\n\t\t\tpath = [] as $mol_view[],\n\t\t): Generator< $mol_view[] > {\n\n\t\t\tif( check( this, this.haystack() ) ) {\n\t\t\t\tyield [ ... path, this ]\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/dimmer/dimmer.view.css\",\n \"[mol_dimmer] {\\n\\tdisplay: block;\\n\\tmax-width: 100%;\\n}\\n\\n[mol_dimmer_low] {\\n\\tdisplay: inline;\\n\\topacity: 0.8;\\n}\\n\\n[mol_dimmer_high] {\\n\\tdisplay: inline;\\n\\tcolor: var(--mol_theme_focus);\\n\\ttext-shadow: 0 0;\\n}\\n\"\n) }","$mol_speck $mol_view\n\ttheme \\$mol_theme_accent\n\tsub /\n\t\t<= value null\n","namespace $ { $mol_style_attach( \"mol/speck/speck.view.css\",\n \"[mol_speck] {\\n\\tfont-size: .75rem;\\n\\tborder-radius: 1rem;\\n\\tmargin: -0.5rem -0.2rem;\\n\\talign-self: flex-start;\\n\\tmin-height: 1em;\\n\\tmin-width: .75rem;\\n\\tvertical-align: sub;\\n\\tpadding: 0 .2rem;\\n\\tposition: absolute;\\n\\tz-index: var(--mol_layer_speck);\\n\\ttext-align: center;\\n\\tline-height: .9;\\n\\tdisplay: inline-block;\\n\\twhite-space: nowrap;\\n\\ttext-overflow: ellipsis;\\n\\tuser-select: none;\\n\\tbox-shadow: 0 0 3px rgba(0,0,0,.5);\\n}\\n\"\n) }","$mol_button $mol_view\n\tenabled true\n\tclick?event null\n\tevent_click?event null\n\tstatus? /\n\tevent *\n\t\t^\n\t\tclick?event <=> activate?event <=> event_activate?event null\n\t\tdblclick?event <=> clicks?event null\n\t\tkeydown?event <=> key_press?event <=> event_key_press?event null\n\tattr *\n\t\t^\n\t\tdisabled <= disabled false\n\t\trole \\button\n\t\ttabindex <= tab_index 0\n\t\ttitle <= hint_safe <= hint \\\n\tsub /$mol_view_content\n\t\t<= title\n\tSpeck $mol_speck\n\t\tvalue <= error \\\n","namespace $.$$ {\n\t\n\t$mol_test({\n\t\t\n\t\t'handle clicks by default'($) {\n\t\t\tlet clicked = false\n\t\t\t\n\t\t\tconst clicker = $mol_button.make({\n\t\t\t\t$,\n\t\t\t\tclick : ( event : MouseEvent )=> { clicked = true } ,\n\t\t\t})\n\t\t\t\n\t\t\tconst element = clicker.dom_tree() as HTMLButtonElement\n\t\t\t\n\t\t\tconst event = $mol_dom_context.document.createEvent( 'mouseevent' )\n\t\t\tevent.initEvent( 'click' , true , true )\n\t\t\telement.dispatchEvent( event )\n\t\t\t\n\t\t\t$mol_assert_ok( clicked )\n\t\t} ,\n\t\t\n\t\t'no handle clicks if disabled'($) {\n\t\t\tlet clicked = false\n\t\t\t\n\t\t\tconst clicker = $mol_button.make({\n\t\t\t\t$,\n\t\t\t\tclick : ( event : MouseEvent )=> { clicked = true } ,\n\t\t\t\tenabled : ()=> false ,\n\t\t\t})\n\t\t\t\n\t\t\tconst element = clicker.dom_tree() as HTMLButtonElement\n\t\t\t\n\t\t\tconst event = $mol_dom_context.document.createEvent( 'mouseevent' )\n\t\t\tevent.initEvent( 'click' , true , true )\n\t\t\telement.dispatchEvent( event )\n\t\t\t\n\t\t\t$mol_assert_not( clicked )\n\t\t} ,\n\t\t\n\t\tasync 'Store error'($) {\n\t\t\t\n\t\t\tconst clicker = $mol_button.make({\n\t\t\t\t$,\n\t\t\t\tclick : ( event : MouseEvent )=> $.$mol_fail( new Error( 'Test error' ) ),\n\t\t\t})\n\t\t\t\n\t\t\tconst event = $mol_dom_context.document.createEvent( 'mouseevent' )\n\t\t\t$mol_assert_fail( ()=> clicker.event_activate( event ), 'Test error' )\n\t\t\tawait Promise.resolve()\n\t\t\t$mol_assert_equal( clicker.status()[0].message, 'Test error' )\n\t\t\t\n\t\t} ,\n\t\t\n\t})\n\t\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Simple button.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_button_demo\n\t */\n\texport class $mol_button extends $.$mol_button {\n\n\t\tdisabled() {\n\t\t\treturn !this.enabled()\n\t\t}\n\t\t\n\t\tevent_activate( next : Event ) {\n\t\t\t\n\t\t\tif( !next ) return\n\t\t\tif( !this.enabled() ) return\n\n\t\t\ttry {\n\t\t\t\t\n\t\t\t\tthis.event_click( next )\n\t\t\t\tthis.click( next )\n\t\t\t\tthis.status([ null ])\n\t\t\t\t\n\t\t\t} catch( error: any ) {\n\t\t\t\t// Calling actions from catch section, if throwing promise breaks idempotency\n\t\t\t\tPromise.resolve().then( ()=> this.status([ error ]) )\n\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t\n\t\t\t}\n\n\t\t}\n\t\t\n\t\tevent_key_press ( event: KeyboardEvent ) { \n\t\t\tif( event.keyCode === $mol_keyboard_code.enter ) {\n\t\t\t\treturn this.activate( event )\n\t\t\t}\n\t\t} \n\t\t\n\t\ttab_index() {\n\t\t\treturn this.enabled() ? super.tab_index() : -1\n\t\t}\n\n\t\terror() {\n\n\t\t\tconst error = this.status()?.[0]\n\t\t\tif( !error ) return ''\n\n\t\t\tif( $mol_promise_like(error) ) {\n\t\t\t\treturn $mol_fail_hidden( error )\n\t\t\t}\n\t\t\treturn this.$.$mol_error_message( error )\n\n\t\t}\n\t\t\n\t\thint_safe() {\n\t\t\ttry {\n\t\t\t\treturn this.hint()\n\t\t\t} catch( error ) {\n\t\t\t\t$mol_fail_log( error )\n\t\t\t\treturn ''\n\t\t\t}\n\t\t}\n\n\t\tsub_visible() {\n\t\t\treturn [\n\t\t\t\t... this.error() ? [ this.Speck() ] : [] ,\n\t\t\t\t... this.sub() ,\n\t\t\t]\n\t\t}\n\t\t\n\t}\n}\n","namespace $ { $mol_style_attach( \"mol/button/button.view.css\",\n \"[mol_button] {\\n\\tborder: none;\\n\\tfont: inherit;\\n\\tdisplay: inline-flex;\\n\\tflex-shrink: 0;\\n\\ttext-decoration: inherit;\\n\\tcursor: inherit;\\n\\tposition: relative;\\n\\tbox-sizing: border-box;\\n\\tword-break: normal;\\n\\tcursor: default;\\n\\tuser-select: none;\\n\\t-webkit-user-select: none;\\n\\tborder-radius: var(--mol_gap_round);\\n\\tbackground: transparent;\\n\\tcolor: inherit;\\n}\\n\\n[mol_button]:where(:not(:disabled)):hover {\\n\\tz-index: var(--mol_layer_hover);\\n}\\n\\n[mol_button]:focus {\\n\\toutline: none;\\n\\tz-index: var(--mol_layer_focus);\\n}\\n\"\n) }","$mol_button_typed $mol_button\n\tminimal_height 40\n\tminimal_width 40\n","namespace $ { $mol_style_attach( \"mol/button/typed/typed.view.css\",\n \"[mol_button_typed] {\\n\\talign-content: center;\\n\\talign-items: center;\\n\\tpadding: var(--mol_gap_text);\\n\\tborder-radius: var(--mol_gap_round);\\n\\tgap: var(--mol_gap_space);\\n\\tuser-select: none;\\n\\tcursor: pointer;\\n\\tmin-width: 2.5rem;\\n\\tmin-height: 2.5rem;\\n}\\n\\n[mol_button_typed][disabled] {\\n\\tpointer-events: none;\\n}\\n\\n[mol_button_typed]:hover ,\\n[mol_button_typed]:focus-visible {\\n\\tbox-shadow: inset 0 0 0 100vmax var(--mol_theme_hover);\\n}\\n\\n[mol_button_typed]:active {\\n\\tcolor: var(--mol_theme_focus);\\n}\\n\"\n) }","$mol_button_minor $mol_button_typed\n","namespace $ { $mol_style_attach( \"mol/button/minor/minor.view.css\",\n \"[mol_button_minor] {\\n\\tcolor: var(--mol_theme_control);\\n}\\n\\n[mol_button_minor][disabled] {\\n\\tcolor: var(--mol_theme_shade);\\n}\\n\"\n) }","namespace $.$$ {\n\tconst d = '$'\n\tconst file_name = '/mol/view/tree2/class/props.test.ts'\n\n\tfunction normalize($: $, src: string, dest?: string) {\n\t\tconst mod = $.$mol_tree2_from_string( src, file_name )\n\t\tconst input = $.$mol_view_tree2_class_props(mod.kids[0]).join('')\n\t\tconst output = dest ? $$.$mol_tree2_from_string(dest, 'reference').toString() : ''\n\t\treturn { input, output }\n\t}\n\n\t$mol_test({\n\t\t'dupes merge'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tquery? \\\\\n\t\t\t\t\tQuery $mol_string\n\t\t\t\t\t\tvalue? <=> query? \\\\\n\t\t\t\t\tSuggest_label ${d}mol_dimmer\n\t\t\t\t\t\tneedle <= query? \\\\\n\t\t\t\t\t\tkey * escape? <=> clear? null\n\t\t\t\t\tClear ${d}mol_button_minor\n\t\t\t\t\t\tclick?event <=> clear?event null\n\t\t\t`\n\n\t\t\tconst dest = `\n\t\t\t\tquery? \\\\\n\t\t\t\tclear?event null\n\t\t\t\tQuery $mol_string value? <=> query?\n\t\t\t\tSuggest_label $mol_dimmer\n\t\t\t\t\tneedle <= query?\n\t\t\t\t\tkey * escape? <=> clear?\n\t\t\t\tClear $mol_button_minor click?event <=> clear?event\n\t\t\t`\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'left and bidi common'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\ttitle @ \\\\title\n\t\t\t\t\tsub2 /\n\t\t\t\t\t\t<= Close_icon ${d}mol_icon_cross\n\t\t\t\t\tsub /\n\t\t\t\t\t\t<= Title ${d}mol_view\n\t\t\t\t\t\t\tsub /\n\t\t\t\t\t\t\t\t<= title\n\t\t\t\t\t\t<= Close ${d}mol_button\n\t\t\t\t\t\t\ttitle \\\\close\n\t\t\t\t\t\t\tclick?event <=> close?event null\n\t\t\t`\n\t\t\t\n\t\t\tconst dest = `\n\t\t\t\tClose_icon ${d}mol_icon_cross\n\t\t\t\tTitle ${d}mol_view sub / <= title\n\t\t\t\tclose?event null\n\t\t\t\tClose ${d}mol_button\n\t\t\t\t\ttitle \\\\close\n\t\t\t\t\tclick?event <=> close?event\n\t\t\t\ttitle @ \\\\title\n\t\t\t\tsub2 / <= Close_icon\n\t\t\t\tsub /\n\t\t\t\t\t<= Title\n\t\t\t\t\t<= Close\n\t\t\t`\n\t\t\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'right bind levels'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tDog ${d}mol_view_tree2_class_test_dog\n\t\t\t\t\t\tMouth => Dog_mouth\n\t\t\t\t\t\t\tanimation => dog_animation\n\t\t\t\t\tplugins /\n\t\t\t\t\t\t<= Human* ${d}mol_view_tree2_class_test_human\n\t\t\t\t\t\t\tMouth => Human_mouth\n\t\t\t\t\t\t\t\tanimation => human_animation\n\t\t\t\t\t\t\t\t\ttext => human_text\n\t\t\t`\n\n\t\t\tconst dest = `\n\t\t\t\tDog_mouth = Dog Mouth\n\t\t\t\tdog_animation = Dog_mouth animation\n\t\t\t\tHuman_mouth = Human* Mouth\n\t\t\t\thuman_animation = Human_mouth animation\n\t\t\t\thuman_text = human_animation text\n\t\t\t\tHuman* $mol_view_tree2_class_test_human Mouth => Human_mouth animation => human_animation text => human_text\n\t\t\t\tDog $mol_view_tree2_class_test_dog Mouth => Dog_mouth animation => dog_animation\n\t\t\t\tplugins / <= Human*\n\t\t\t`\n\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'good right bind dupes'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tSuggest_label ${d}mol_dimmer\n\t\t\t\t\t\tclear? => clear?\n\t\t\t\t\tClear ${d}mol_button_minor\n\t\t\t\t\t\tclick?e <=> clear?e\n\t\t\t`\n\n\t\t\tconst dest = `\n\t\t\t\tclear? = Suggest_label clear?\n\t\t\t\tSuggest_label $mol_dimmer clear? => clear?\n\t\t\t\tClear $mol_button_minor click?e <=> clear?e\n\t\t\t`\n\n\t\t\tconst res = normalize($, src, dest)\n\t\t\t$mol_assert_equal(res.input, res.output)\n\t\t},\n\n\t\t'conflicting right bind dupes'($) {\n\t\t\tconst src = `\n\t\t\t\t${d}my_test ${d}my_super\n\t\t\t\t\tSuggest_label ${d}mol_dimmer\n\t\t\t\t\t\tclear => clear\n\t\t\t\t\tClear ${d}mol_button_minor\n\t\t\t\t\t\tclick?event <=> clear?event null\n\t\t\t`\n\n\t\t\t$mol_assert_fail(\n\t\t\t\t() => normalize($, src).input,\n\t\t\t\t`Need an equal default values at \\`/mol/view/tree2/class/props.test.ts#4:16/5\\` vs \\`/mol/view/tree2/class/props.test.ts#6:23/11\\`\n<=>\n/mol/view/tree2/class/props.test.ts#6:19/3\nclick?event\n/mol/view/tree2/class/props.test.ts#6:7/11\n$mol_button_minor\n/mol/view/tree2/class/props.test.ts#5:12/17\nClear\n/mol/view/tree2/class/props.test.ts#5:6/5`\n\t\t\t)\n\t\t},\n\t})\n}\n","namespace $ {\n\t\n\t$mol_test_mocks.push( $ => {\n\t\tclass $mol_locale_mock extends $mol_locale {\n\t\t\t\n\t\t\t@ $mol_mem\n\t\t\tlang( next = 'en' ) { return next }\n\t\t\t\n\t\t\t@ $mol_mem_key\n\t\t\tstatic source( lang: string ) {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t$.$mol_locale = $mol_locale_mock\n\t} )\n\t\n}\n","namespace $ {\n\n\tconst run = $mol_data_pipe(\n\t\t$mol_tree2_from_string.bind($$),\n\t\t$mol_view_tree2_to_locale.bind($$)\n\t)\n\n\t$mol_test({\n\t\t'Locale simple'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tFoo Object\n\t\t\t\t\tlocalized @ \\\\bla\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_localized'], 'bla')\n\t\t},\n\n\t\t'Locale structural'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tFoo Object\n\t\t\t\t\tbar *\n\t\t\t\t\t\tloc @ \\\\v1\n\t\t\t\t\t\tbaz *\n\t\t\t\t\t\t\tloc2 @ \\\\v2\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_bar_loc'], 'v1')\n\t\t\t$mol_assert_equal(locales['Foo_bar_baz_loc2'], 'v2')\n\t\t},\n\n\t\t'Locale factory'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tBar Object\n\t\t\t\t\tloc \\\\v0\n\t\t\t\tFoo Object\n\t\t\t\t\tbutton Bar\n\t\t\t\t\t\tloc @ \\\\v1\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_button_loc'], 'v1')\n\t\t},\n\n\t\t'Locale bidi bind localized'( $ ) {\n\t\t\tconst locales = run(`\n\t\t\t\tFoo Object\n\t\t\t\t\ta? <=> b? @ \\\\v1\n\t\t\t`)\n\t\t\t$mol_assert_equal(locales['Foo_b'], 'v1')\n\t\t},\n\n\t\n\t})\n}\n","$mol_view_tree2_to_js_test_ex_array_slot_foo $mol_object\n\tfoot /string|number|boolean\n\t\t1\n\t\ttrue\n\t\t\\foot1\n\t\t^ insert /\n\t\t\t2\n\t\t\t3\n\t\t\t<= ins1 \\ins1\n\t\t\t^ sub_ins /number\n\t\t\t\t<= sub_ins1 1\n\t\t\t<= ins2 \\ins2\n\t\t<= foot2 \\foot2\n\n","$mol_view_tree2_to_js_test_ex_simple_nan_foo $mol_object\n\ta NaN\n\tb +NaN\n\tc -NaN\n\td +Infinity\n\te -Infinity\n\tf Infinity\n\n","$mol_view_tree2_to_js_test_ex_structural_foo $mol_object\n\tbar *\n\t\talpha 1\n\t\tbeta *\n\t\txxx <= lol 2\n","$mol_view_tree2_to_js_test_ex_array_union_foo $mol_object\n\tbar /$mol_view_tree2_to_js_test_ex_klass_tuple_type\n\t\t\\a\n\t\t<= foo \\c\n\t\t\\b\n","$mol_view_tree2_to_js_test_ex_array_number_foo $mol_object\n\tbar /\n\t\t-NaN\n\t\t-Infinity\n\t\t+Infinity\n\t\t0\n","$mol_view_tree2_to_js_test_ex_bidi_indexed_foo $mol_object\n\tindexed*? <=> owner*? null\n","$mol_view_tree2_to_js_test_ex_array_boolean_foo $mol_object\n\tbar /boolean\n\t\tfalse\n\t\ttrue\n","$mol_view_tree2_to_js_test_ex_array_indexed_foo $mol_object\n\ttags* /string\n\t\t<= tag1* \\t1\n\t\t^ slot* /\n\t\t\t<= tag2* \\t2\n","$mol_view_tree2_to_js_test_ex_bidi_chaining_foo $mol_object\n\ta? <=> b? <=> c? null\n","$mol_view_tree2_to_js_test_ex_bidi_fallback_foo $mol_object\n\tbar1? <=> bar2? 1\n","$mol_view_tree2_to_js_test_ex_left_chaining_foo $mol_object\n\ta <= b <= c? <= d? 0\n","$mol_view_tree2_to_js_test_ex_right_indexed_foo $mol_object\n\ta? *\n\t\tsome 123\n$mol_view_tree2_to_js_test_ex_right_indexed_bar $mol_object\n\tCls* $mol_view_tree2_to_js_test_ex_right_indexed_foo\n\t\ta => b*\n","$mol_view_tree2_to_js_test_ex_simple_string_foo $mol_object\n\thardcoded \\\n\t\t\\First\n\t\t\\Second\n\tlocalized @ \\bla\n","\n\t\t()\n\t\t\tthis\n\t\t\t[] \\$\n\t\t\t[] \\$mol_locale\n\t\t\t[] \\text\n\t\t\t(,) #key\n\t","$mol_view_tree2_to_js_test_ex_left_read_only_foo $mol_object\n\tbar1 <= bar2? 1\n","$mol_view_tree2_to_js_test_ex_right_hierarchy_foo $mol_object\n\tIndexed*xxx $mol_view_tree2_to_js_test_ex_right_hierarchy_bar\n\t\ttitle? => indexed_title*?\n\t\tid <= indexed_id* 0\n\tprj $mol_view_tree2_to_js_test_ex_right_hierarchy_bar\n\t\tdomain* => prj_domain*\n\t\t\tuser => prj_user*\n\t\t\t\tid => prj_user_id*\n","$mol_view_tree2_to_js_test_ex_right_read_only_foo $mol_object\n\ta*? null\n$mol_view_tree2_to_js_test_ex_right_read_only_bar $mol_object\n\tObj $mol_view_tree2_to_js_test_ex_right_read_only_foo\n\t\ta*? => b*?\n","$mol_view_tree2_to_js_test_ex_structural_dict_foo $mol_object\n\tbar *\n\t\talpha 1\n\t\tbeta \\a\n","$mol_view_tree2_to_js_test_ex_array_with_types_foo $mol_object\n\tarr /readonly(number)[]\n","$mol_view_tree2_to_js_test_ex_array_inheritance_foo $mol_object\n\tarr /\n\t\t\\v1\n$mol_view_tree2_to_js_test_ex_array_inheritance_bar $mol_view_tree2_to_js_test_ex_array_inheritance_foo\n\tarr /\n\t\t\\v3\n\t\t^\n\t\t\\v4\n","$mol_view_tree2_to_js_test_ex_bidi_legacy_value_foo $mol_object\n\ta?v <=> b?v 1\n","$mol_view_tree2_to_js_test_ex_simple_typed_null_foo $mol_object\n\ta null string|number\n","$mol_view_tree2_to_js_test_ex_bidi_in_dictionary_foo $mol_object\n\tevent *\n\t\tclick? <=> run? null\n","$mol_scroll $mol_view\n\tscroll_top? 0\n\tscroll_left? 0\n\tattr *\n\t\t^\n\t\ttabindex <= tabindex -1\n\tevent *\n\t\t^\n\t\tscroll?event <=> event_scroll?event null\n","namespace $ {\n\n\texport class $mol_print extends $mol_object {\n\n\t\t@ $mol_mem\n\t\tstatic before() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'beforeprint' , ()=> {\n\t\t\t\tthis.active( true )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic after() {\n\t\t\treturn new $mol_dom_listener( this.$.$mol_dom_context , 'afterprint' , ()=> {\n\t\t\t\tthis.active( false )\n\t\t\t} )\n\t\t}\n\n\t\t@ $mol_mem\n\t\tstatic active( next? : boolean ) {\n\t\t\tthis.before()\n\t\t\tthis.after()\n\t\t\treturn next || false\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\texport function $mol_style_sheet<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig0 : Config ,\n\t) {\n\n\t\tlet rules = [] as string[]\n\n\t\tconst block = $mol_dom_qname( $mol_ambient({}).$mol_func_name( Component ) )\n\t\tconst kebab = ( name : string )=> name.replace( /[A-Z]/g , letter => '-' + letter.toLowerCase() )\n\n\t\tconst make_class = ( prefix : string , path : string[] , config : typeof config0 )=> {\n\n\t\t\tconst props = [] as string[]\n\n\t\t\tconst selector = ( prefix : string , path : string[] )=> {\n\t\t\t\tif( path.length === 0 ) return prefix || `[${ block }]`\n\t\t\t\tlet res = `[${ block }_${ path.join('_') }]`\n\t\t\t\tif( prefix ) res = prefix + ' :where(' + res + ')'\n\t\t\t\treturn res\n\t\t\t}\n\t\t\t\n\t\t\tfor( const key of Object.keys( config ).reverse() ) {\n\n\t\t\t\tif( /^(--)?[a-z]/.test(key) ) {\n\t\t\t\t\t\n\t\t\t\t\tconst addProp = ( keys : string[] , val : any )=> {\n\n\t\t\t\t\t\tif( Array.isArray( val ) ) {\n\n\t\t\t\t\t\t\tif( val[0] && [ Array , Object ].includes( val[0].constructor ) ) {\n\t\t\t\t\t\t\t\tval = val.map( v => {\n\t\t\t\t\t\t\t\t\treturn Object.entries( v ).map( ([ n , a ])=> {\n\t\t\t\t\t\t\t\t\t\tif( a === true ) return kebab( n )\n\t\t\t\t\t\t\t\t\t\tif( a === false ) return null\n\t\t\t\t\t\t\t\t\t\treturn String( a )\n\t\t\t\t\t\t\t\t\t} ).filter( Boolean ).join(' ')\n\t\t\t\t\t\t\t\t}).join( ',' )\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tval = val.join(' ')\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t} else if( val.constructor === Object ) {\n\n\t\t\t\t\t\t\tfor( let suffix of Object.keys( val ).reverse() ) {\n\t\t\t\t\t\t\t\taddProp( [ ... keys , kebab( suffix ) ] , val[ suffix ] )\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t} else {\n\n\t\t\t\t\t\t\tprops.push(`\\t${ keys.join('-') }: ${ val };\\n`)\n\n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\n\t\t\t\t\taddProp( [ kebab(key) ] , (config as any)[key] )\n\n\t\t\t\t} else if( /^[A-Z]/.test(key) ) {\n\n\t\t\t\t\tmake_class( prefix , [ ... path , key.toLowerCase() ] , (config as any)[key] )\n\n\t\t\t\t} else if( key[0] === '$' ) {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + ' :where([' + $mol_dom_qname( key ) + '])' , [] , (config as any)[key] )\n\n\t\t\t\t} else if( key === '>' ) {\n\n\t\t\t\t\tconst types = config[key] as any\n\n\t\t\t\t\tfor( let type of Object.keys( types ).reverse() ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ' > :where([' + $mol_dom_qname( type ) + '])' , [] , types[type] )\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@' ) {\n\n\t\t\t\t\tconst attrs = config[key] as any\n\n\t\t\t\t\tfor( let name of Object.keys( attrs ).reverse() ) {\n\t\t\t\t\t\tfor( let val in attrs[name] ) {\n\t\t\t\t\t\t\tmake_class( selector( prefix , path ) + ':where([' + name + '=' + JSON.stringify( val ) + '])' , [] , attrs[name][val] )\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@media' ) {\n\n\t\t\t\t\tconst media = (config as any)[key] as any\n\n\t\t\t\t\tfor( let query of Object.keys( media ).reverse() ) {\n\n\t\t\t\t\t\trules.push('}\\n')\n\t\t\t\t\t\t\n\t\t\t\t\t\tmake_class( prefix , path , media[query] )\n\t\t\t\t\t\t\n\t\t\t\t\t\trules.push( `${ key } ${ query } {\\n` )\n\n\t\t\t\t\t}\n\n\t\t\t\t} else if( key === '@starting-style' ) {\n\n\t\t\t\t\tconst styles = (config as any)[key] as any\n\t\t\t\t\trules.push('}\\n')\n\t\t\t\t\tmake_class( prefix , path , styles )\n\t\t\t\t\trules.push( `${ key } {\\n` )\n\n\t\t\t\t} else if( key[0] === '[' && key[key.length-1] === ']' ) {\n\n\t\t\t\t\tconst attr = key.slice( 1, -1 )\n\t\t\t\t\tconst vals = config[ key as any ] as any as Record< string, any >\n\t\t\t\t\t\n\t\t\t\t\tfor( let val of Object.keys( vals ).reverse() ) {\n\t\t\t\t\t\tmake_class( selector( prefix , path ) + ':where([' + attr + '=' + JSON.stringify( val ) + '])' , [] , vals[val] )\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t} else {\n\n\t\t\t\t\tmake_class( selector( prefix , path ) + key , [] , (config as any)[key] )\n\n\t\t\t\t}\n\n\t\t\t}\n\t\t\t\n\t\t\tif( props.length ) {\n\t\t\t\trules.push( `${ selector( prefix , path ) } {\\n${ props.reverse().join('') }}\\n` )\n\t\t\t}\n\n\t\t}\n\n\t\tmake_class( '' , [] , config0 )\n\n\t\treturn rules.reverse().join('')\n\n\t}\n\n}\n","namespace $ {\n\n\texport class $mol_style_sheet_test1 extends $mol_view {\n\t\tItem() { return new $mol_view }\n\t}\n\n\texport class $mol_style_sheet_test2 extends $mol_view {\n\t\tList() { return new $mol_style_sheet_test1 }\n\t}\n\n\t$mol_test({\n\n\t\t'component block styles'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tdisplay: 'block',\n\t\t\t\tzIndex: 1,\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tdisplay: block;\\n\\tz-index: 1;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'various units'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\twidth : '50%',\n\t\t\t\theight : '50px',\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\twidth: 50%;\\n\\theight: 50px;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'various functions'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst { calc } = $mol_style_func\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\twidth : calc( `100% - 1px` ),\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\twidth: calc(100% - 1px);\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'property groups'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tflex : {\n\t\t\t\t\tgrow: 5,\n\t\t\t\t\tshrink: 10,\n\t\t\t\t}\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tflex-grow: 5;\\n\\tflex-shrink: 10;\\n}\\n' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'custom properties'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\t'--isVariable': 'yes',\n\t\t\t\t'--is_variable': 'no',\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\t--is-variable: yes;\\n\\t--is_variable: no;\\n}\\n' )\n\t\t\t\n\t\t},\n\t\t\n\t\t'custom property groups'() {\n\t\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\t'--variable' : {\n\t\t\t\t\ttest1: '5px',\n\t\t\t\t\ttest2: '10px',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\t--variable-test1: 5px;\\n\\t--variable-test2: 10px;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'property shorthand'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\t\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tpadding: [ '5px' , 'auto' ],\n\t\t\t\tmargin: [ '10px' , 'auto' ],\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tpadding: 5px auto;\\n\\tmargin: 10px auto;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'sequenced values'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst { url } = $mol_style_func\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tbackground: {\n\t\t\t\t\timage: [ [url('foo')], [url('bar')] ],\n\t\t\t\t\tsize: [[ 'cover' ], [ 'contain' ]],\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tbackground-image: url(\"foo\"),url(\"bar\");\\n\\tbackground-size: cover,contain;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'sequenced structs'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tbox: {\n\t\t\t\t\tshadow: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinset: true,\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\tblur: '0.5rem',\n\t\t\t\t\t\t\tspread: 0,\n\t\t\t\t\t\t\tcolor: 'red',\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tinset: false,\n\t\t\t\t\t\t\tx: 0,\n\t\t\t\t\t\t\ty: 0,\n\t\t\t\t\t\t\tblur: '0.5rem',\n\t\t\t\t\t\t\tspread: 0,\n\t\t\t\t\t\t\tcolor: 'blue',\n\t\t\t\t\t\t},\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tbox-shadow: inset 0 0 0.5rem 0 red,0 0 0.5rem 0 blue;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with pseudo class'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t':focus': {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]:focus {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with pseudo element'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'::first-line': {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]::first-line {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with media query'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'@media': {\n\t\t\t\t\t'print': {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t\t'(max-width: 640px)': {\n\t\t\t\t\t\tdisplay: 'inline',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n@media print {\\n[mol_style_sheet_test] {\\n\\tdisplay: block;\\n}\\n}\\n@media (max-width: 640px) {\\n[mol_style_sheet_test] {\\n\\tdisplay: inline;\\n}\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with attribute value'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tattr() { return {\n\t\t\t\t\tmol_theme: '$mol_theme_dark'\n\t\t\t\t} }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'@' : {\n\t\t\t\t\tmol_theme: {\n\t\t\t\t\t\t'$mol_theme_dark': {\n\t\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tdisabled: {\n\t\t\t\t\t\t'true': {\n\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]:where([mol_theme=\"$mol_theme_dark\"]) {\\n\\tdisplay: block;\\n}\\n[mol_style_sheet_test]:where([disabled=\"true\"]) {\\n\\twidth: 100%;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component block styles with attribute value (short syntax)'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tattr() { return {\n\t\t\t\t\tmol_theme: '$mol_theme_dark'\n\t\t\t\t} }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'[mol_theme]': {\n\t\t\t\t\t'$mol_theme_dark': {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\t'[disabled]': {\n\t\t\t\t\t'true': {\n\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t},\n\t\t\t\t\t'false': {\n\t\t\t\t\t\twidth: '50%',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test]:where([mol_theme=\"$mol_theme_dark\"]) {\\n\\tdisplay: block;\\n}\\n[mol_style_sheet_test]:where([disabled=\"true\"]) {\\n\\twidth: 100%;\\n}\\n[mol_style_sheet_test]:where([disabled=\"false\"]) {\\n\\twidth: 50%;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component element styles'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tItem() { return new $mol_view }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\tcolor: 'red',\n\t\t\t\tItem : {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test_item] {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component element of element styles'() {\n\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test2 , {\n\t\t\t\twidth: '100%',\n\t\t\t\tList : {\n\t\t\t\t\tcolor: 'red',\n\t\t\t\t\tItem : {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test2] {\\n\\twidth: 100%;\\n}\\n[mol_style_sheet_test2_list] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test2_list_item] {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'component element styles with block attribute value'() {\n\t\t\n\t\t\tclass $mol_style_sheet_test extends $mol_view {\n\t\t\t\tItem() { return new $mol_view }\n\t\t\t\tattr() { return {\n\t\t\t\t\tmol_theme: '$mol_theme_dark',\n\t\t\t\t\tdisabled: true,\n\t\t\t\t} }\n\t\t\t}\n\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test , {\n\t\t\t\t'@' : {\n\t\t\t\t\tmol_theme: {\n\t\t\t\t\t\t'$mol_theme_dark': {\n\t\t\t\t\t\t\tItem: {\n\t\t\t\t\t\t\t\tcolor: 'red',\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\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test]:where([mol_theme=\"$mol_theme_dark\"]) :where([mol_style_sheet_test_item]) {\\n\\tcolor: red;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'inner component styles by class'() {\n\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test2 , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t$mol_style_sheet_test1 : {\n\t\t\t\t\tdisplay: 'block',\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test2] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test2] :where([mol_style_sheet_test1]) {\\n\\tdisplay: block;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t\t'child component styles by class'() {\n\t\t\n\t\t\tconst sheet = $mol_style_sheet( $mol_style_sheet_test2 , {\n\t\t\t\tcolor: 'red',\n\t\t\t\t'>' : {\n\t\t\t\t\t$mol_style_sheet_test1 : {\n\t\t\t\t\t\tdisplay: 'block',\n\t\t\t\t\t},\n\t\t\t\t\t$mol_style_sheet_test2 : {\n\t\t\t\t\t\tdisplay: 'inline',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t} )\n\n\t\t\t$mol_assert_equal( sheet , '[mol_style_sheet_test2] {\\n\\tcolor: red;\\n}\\n[mol_style_sheet_test2] > :where([mol_style_sheet_test1]) {\\n\\tdisplay: block;\\n}\\n[mol_style_sheet_test2] > :where([mol_style_sheet_test2]) {\\n\\tdisplay: inline;\\n}\\n' )\n\t\t\t\n\t\t},\n\n\t})\n\n}\n","namespace $ {\n\n\t/**\n\t * CSS in TS.\n\t * Statically typed CSS style sheets. Following samples show which CSS code are generated from TS code.\n\t * @see https://mol.hyoo.ru/#!section=docs/=xwq9q5_f966fg\n\t */\n\texport function $mol_style_define<\n\t\tComponent extends $mol_view,\n\t\tConfig extends $mol_style_guard< Component , Config >,\n\t>(\n\t\tComponent : new()=> Component,\n\t\tconfig : Config ,\n\t) {\n\n\t\treturn $mol_style_attach(\n\t\t\tComponent.name,\n\t\t\t$mol_style_sheet( Component , config ),\n\t\t)\n\n\t}\n\n}\n","namespace $.$$ {\n\t\n\t/**\n\t * Scrolling pane.\n\t * @see https://mol.hyoo.ru/#!section=demos/demo=mol_scroll_demo\n\t */\n\texport class $mol_scroll extends $.$mol_scroll {\n\n\t\t@ $mol_mem\n\t\tscroll_top( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollTop = next\n\t\t\t\n\t\t\treturn el.scrollTop\n\t\t}\n\t\t\n\t\t@ $mol_mem\n\t\tscroll_left( next? : number, cache?: 'cache' ): number {\n\t\t\t\n\t\t\tconst el = this.dom_node()\n\t\t\tif( next !== undefined && !cache ) el.scrollLeft = next\n\t\t\t\n\t\t\treturn el.scrollLeft\n\t\t}\n\t\t\n\t\tevent_scroll( next? : Event ) {\n\t\t\t\n\t\t\tconst el = this.dom_node() as HTMLElement\n\t\t\t\n\t\t\tthis.scroll_left( el.scrollLeft, 'cache' )\n\t\t\tthis.scroll_top( el.scrollTop, 'cache' )\n\t\t\t\n\t\t}\n\n\t\tminimal_height() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t\tminimal_width() {\n\t\t\treturn this.$.$mol_print.active() ? null! : 0\n\t\t}\n\t\t\n\t}\n\n}\n","namespace $.$$ {\n\n\tconst { per , rem , px } = $mol_style_unit\n\n\t$mol_style_define( $mol_scroll , {\n\n\t\tdisplay: 'grid',\n\t\toverflow: 'auto',\n\t\tflex: {\n\t\t\tdirection: 'column',\n\t\t\tgrow: 1,\n\t\t\tshrink: 1,\n\t\t\t// basis: 0,\n\t\t},\n\t\toutline: 'none',\n\t\talign: {\n\t\t\tself: 'stretch',\n\t\t\titems: 'flex-start',\n\t\t},\n\t\tboxSizing: 'border-box',\n\t\twillChange: 'scroll-position',\n\t\tscroll: {\n\t\t\tpadding: [ rem(.75), 0 ],\n\t\t},\n\t\tmaxHeight: per(100),\n\t\tmaxWidth: per(100),\n\t\twebkitOverflowScrolling: 'touch',\n\t\tcontain: 'content',\n\n\t\t'>': {\n\t\t\t$mol_view: {\n\t\t\t\t// transform: 'translateZ(0)', // enforce gpu scroll in all agents\n\t\t\t\tgridArea: '1/1',\n\t\t\t},\n\t\t},\n\n\t\t'::before': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t'::after': {\n\t\t\tdisplay: 'none',\n\t\t},\n\t\t\n\t\t'::-webkit-scrollbar': {\n\t\t\twidth: rem(.25),\n\t\t\theight: rem(.25),\n\t\t},\n\t\t\n\t\t'@media' : {\n\t\t\t'print' : {\n\t\t\t\toverflow: 'hidden',\n\t\t\t\tcontain: 'none',\n\t\t\t\tmaxHeight: 'unset',\n\t\t\t},\n\t\t},\n\n\t})\n\n}\n","$mol_page $mol_view\n\tdom_name \\article\n\tattr *\n\t\t^\n\t\ttabIndex <= tabindex -1\n\tsub /\n\t\t<= Head $mol_view\n\t\t\tminimal_height 64\n\t\t\tdom_name \\header\n\t\t\tsub <= head /\n\t\t\t\t<= Title $mol_view\n\t\t\t\t\tdom_name \\h1\n\t\t\t\t\tsub <= title_content /\n\t\t\t\t\t\t<= Logo null\n\t\t\t\t\t\t<= title\n\t\t\t\t<= Tools $mol_view\n\t\t\t\t\tsub <= tools /$mol_view_content\n\t\t<= Body $mol_scroll\n\t\t\tscroll_top? => body_scroll_top?\n\t\t\tsub <= body_content /\n\t\t\t\t<= Body_content $mol_view\n\t\t\t\t\tsub <= body /$mol_view\n\t\t<= Foot $mol_view\n\t\t\tdom_name \\footer\n\t\t\tsub <= foot /$mol_view\n","namespace $.$$ {\n\n\tconst { per , rem } = $mol_style_unit\n\tconst { hsla, blur } = $mol_style_func\n\n\t$mol_style_define( $mol_page , {\n\n\t\tdisplay: 'flex' ,\n\t\tflex: {\n\t\t\tbasis: 'auto' ,\n\t\t\tdirection: 'column' ,\n\t\t},\n\t\tposition: 'relative' ,\n\t\talignSelf: 'stretch' ,\n\t\tmaxWidth: per(100) ,\n\t\tmaxHeight: per(100) ,\n\t\tboxSizing: 'border-box' ,\n\t\tcolor: $mol_theme.text ,\n\t\t// backdropFilter: blur( `3px` ), enforces layering\n\t\t// zIndex: 0 ,\n\t\t\n\t\t':focus': {\n\t\t\toutline: 'none',\n\t\t} ,\n\n\t\tHead: {\n\t\t\tdisplay: 'flex' ,\n\t\t\tflexWrap: 'wrap' ,\n\t\t\tjustifyContent: 'flex-end' ,\n\t\t\tflex: 'none',\n\t\t\tposition: 'relative' ,\n\t\t\tmargin: 0 ,\n\t\t\tminHeight: rem(4),\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [\n\t\t\t\t\t[ 0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t\t[ 0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t],\n\t\t\t},\n\t\t\tzIndex: 2,\n\n\t\t\t'@media': {\n\t\t\t\t'print': {\n\t\t\t\t\tbox: {\n\t\t\t\t\t\tshadow: [[ 0, `1px`, 0, 0, hsla( 0, 0, 0, .25 ) ]],\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\n\t\t},\n\n\t\tTitle: {\n\n\t\t\tminHeight: rem(2),\n\t\t\tmargin: 0,\n\t\t\tpadding: $mol_gap.text,\n\t\t\tgap: $mol_gap.text,\n\t\t\twordBreak: 'normal',\n\t\t\ttextShadow: '0 0',\n\n\t\t\tfont: {\n\t\t\t\tsize: 'inherit',\n\t\t\t\tweight: 'normal',\n\t\t\t},\n\t\n\t\t\tflex: {\n\t\t\t\tgrow: 1,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: 'auto',\n\t\t\t},\n\n\t\t},\n\n\t\tTools: {\n\t\t\t\n\t\t\tflex: {\n\t\t\t\tbasis: 'auto',\n\t\t\t\tgrow: 0,\n\t\t\t\tshrink: 1,\n\t\t\t},\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'flex-end',\n\t\t\talignItems: 'flex-start',\n\t\t\tflexWrap: 'wrap',\n\n\t\t\t'@media': {\n\t\t\t\t'print': {\n\t\t\t\t\tdisplay: 'none',\n\t\t\t\t},\n\t\t\t},\n\n\t\t},\n\n\t\tBody: {\n\t\t\tflex: {\n\t\t\t\tgrow: 1000,\n\t\t\t\tshrink: 1,\n\t\t\t\tbasis: per(100),\n\t\t\t},\n\t\t},\n\t\t\n\t\tBody_content: {\n\t\t\tpadding: $mol_gap.block ,\n\t\t\tminHeight: 0,\n\t\t\tminWidth: 0,\n\t\t\tflex: {\n\t\t\t\tdirection: 'column',\n\t\t\t\tshrink: 1,\n\t\t\t\tgrow: 1,\n\t\t\t},\n\t\t\tjustify: {\n\t\t\t\tself: 'stretch',\n\t\t\t},\n\t\t},\n\t\t\n\t\tFoot: {\n\t\t\tdisplay: 'flex',\n\t\t\tjustifyContent: 'space-between',\n\t\t\tflex: 'none',\n\t\t\tmargin: 0,\n\t\t\tbackground: {\n\t\t\t\tcolor: $mol_theme.card ,\n\t\t\t},\n\t\t\tborder: {\n\t\t\t\tradius: $mol_gap.round,\n\t\t\t},\n\t\t\tbox: {\n\t\t\t\tshadow: [\n\t\t\t\t\t[ 0, `-0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t\t[ 0, `0.5rem`, `0.5rem`, `-0.5rem`, hsla( 0, 0, 0, .25 ) ],\n\t\t\t\t],\n\t\t\t},\n\t\t\tzIndex: 1,\n\t\t\tpadding: $mol_gap.block ,\n\t\t\t':empty': {\n\t\t\t\tdisplay: 'none',\n\t\t\t},\n\t\t},\t\n\n\t} )\n\t\n}\n","$mol_view_tree2_to_js_test_ex_right_in_left_foo $mol_object\n\ta null\n$mol_view_tree2_to_js_test_ex_right_in_left_bar $mol_object\n\tfoo <= Cls $mol_view_tree2_to_js_test_ex_right_in_left_foo\n\t\ta => b\n\tpages /\n\t\t<= Menu $mol_page\n\t\t\tTitle => Menu_title\n","$mol_view_tree2_to_js_test_ex_simple_empty_class_foo $mol_object\n","$mol_view_tree2_to_js_test_ex_simple_two_classes_foo $mol_object\n\tstr \\some\n$mol_view_tree2_to_js_test_ex_simple_two_classes_bar $mol_view_tree2_to_js_test_ex_simple_two_classes_foo\n\tstr \\some2\n","$mol_view_tree2_to_js_test_ex_simple_factory_props_bar $mol_object\n\tsub /number\n\tloc \\v2\n\tdeep * loc @ \\v2\n\tsome false\n\n$mol_view_tree2_to_js_test_ex_simple_factory_props_foo $mol_object\n\tbutton $mol_view_tree2_to_js_test_ex_simple_factory_props_bar\n\t\tsome true\n\t\tloc @ \\v1\n\t\tdeep * loc @ \\v1\n\t\tsub /\n\t\t\t1\n","$mol_view_tree2_to_js_test_ex_simple_default_indexed_foo $mol_object\n\ta_b*? 0\n\tlegacy*k?v 0\n","$mol_view_tree2_to_js_test_ex_structural_complex_key_foo $mol_object\n\tdictionary *\n\t\t\\raw data key\n\t\t\t\\1\n\t\t\\key2\n\t\t\t\\2\n\t\tkey3\n\t\t\t\\3\n","$mol_view_tree2_to_js_test_ex_array_constructor_tuple_foo $mol_object\n\tblobs /\n\t\t<= text_blob? $mol_view_tree2_to_js_test_ex_klass_tuple<string> /\n\t\t\t/string\n\t\t\t\t<= text \\123\n\t\t\t* type \\text/plain\n","$mol_view_tree2_to_js_test_ex_left_second_level_index_bar $mol_object\n\tlocalized \\\n\n$mol_view_tree2_to_js_test_ex_left_second_level_index_foo $mol_object\n\tcls* <= owner*? $mol_view_tree2_to_js_test_ex_left_second_level_index_bar\n\t\tlocalized <= some*? @ \\v1\n","$mol_view_tree2_to_js_test_ex_structural_quoted_props_foo $mol_object\n\tbar *\n\t\ta$ 1\n\t\tb-t *\n","$mol_view_tree2_to_js_test_ex_structural_spread_other_foo $mol_object\n\ttest *\n\t\taaa 123\n\tfield *\n\t\tbbb 321\n\t\t^ test\n","$mol_view_tree2_to_js_test_ex_array_of_array_or_object_foo $mol_object\n\tcomplex /\n\t\t\\1\n\t\t/\n\t\t\ttrue\n\t\t/\n\t\t\t\\1\n\t\t\t21\n\t\t*number|string\n\t\t\ta 1\n\t\t\tstr \\some\n","$mol_view_tree2_to_js_test_ex_bidi_localized_in_object_foo $mol_object\n\tobj *\n\t\tloc? <=> outer? @ \\test1\n","$mol_view_tree2_to_js_test_ex_bidi_with_default_object_foo $mol_object\n\tclass? <=> owner? $mol_object\n","$mol_view_tree2_to_js_test_ex_left_in_array_and_object_bar $mol_object\n\trows /\n$mol_view_tree2_to_js_test_ex_left_in_array_and_object_foo $mol_object\n\tobj *\n\t\tprop <= Obj\n\tarr /\n\t\t<= Obj $mol_view_tree2_to_js_test_ex_left_in_array_and_object_bar\n\t\t\trows <= content /\n","$mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar $mol_object\n\texpanded \\\n$mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_foo $mol_object\n\tindexed*? $mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar\n\t\texpanded <=> owner*? \\w\n","$mol_view_tree2_to_js_test_ex_array_spread_other_bar $mol_object\n\tsup /\n\t\t\\v1\n\tarr /\n\t\t\\v2\n\t\t^ sup\n","$mol_view_tree2_to_js_test_ex_simple_factory_inheritance_bar $mol_object\n\tconfig *\n\t\tips /\n\t\t\t\\127.0.0.1\n\n$mol_view_tree2_to_js_test_ex_simple_factory_inheritance_foo $mol_object\n\tHaving $mol_view_tree2_to_js_test_ex_simple_factory_inheritance_bar\n\t\tconfig *\n\t\t\tips /\n\t\t\t\t^\n\t\t\t\t\\0.0.0.0\n\t\t\t\t^ addon /\n\t\t\t\t\t\\1.1.1.1\n","$mol_view_tree2_to_js_test_ex_structural_with_inheritance_foo $mol_object\n\tfield *\n\t\txxx 123\n\t\txxy \\test\n\n$mol_view_tree2_to_js_test_ex_structural_with_inheritance_bar $mol_view_tree2_to_js_test_ex_structural_with_inheritance_foo\n\tfield *\n\t\tyyy 234\n\t\t^\n\t\tzzz 345\n","$mol_view_tree2_to_js_test_ex_bidi_localized_default_value_foo $mol_object\n\ta? <=> b? @ \\some1\n","$mol_view_tree2_to_js_test_ex_simple_mutable_and_read_only_foo $mol_object\n\treadonly null\n\tmutable? null\n","$mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo $mol_object\n\tbar *\n\t\tloc @ \\\\v1\n\t\tbaz *\n\t\t\tloc2 @ \\\\v2\n","$mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_bar $mol_object\n\trows /\n$mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_foo $mol_object\n\tcontent 123\n\tObj $mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_bar\n\t\trows / <= content - 321\n","$mol_view_tree2_to_js_test_ex_bidi_with_separate_default_in_right_part_foo $mol_object\n\tb? false\n\ta? <=> b?\n","$mol_view_tree2_to_js_test_ex_bidi_doubing_right_part_with_same_default_foo $mol_object\n\ta? <=> b? false\n\tc? <=> b? false\n","namespace $ {\n\texport type $mol_view_tree2_to_js_test_ex_klass_tuple_type = 'a' | 'b' | 'c'\n\n\texport class $mol_view_tree2_to_js_test_ex_klass_tuple<V = string> extends $mol_object {\n\t\tconstructor(readonly tuple: readonly string[] = [], readonly some?: { type: V }) {\n\t\t\tsuper()\n\t\t}\n\t}\n}\n","namespace $ {\n\texport class $mol_view_tree2_to_js_test_ex_right_hierarchy_bar extends $mol_object {\n\t\t@ $mol_mem\n\t\ttitle(next?: number) {\n\t\t\treturn 123 + (next ?? 0)\n\t\t}\n\t\tid() {\n\t\t\treturn 0\n\t\t}\n\n\t\t@ $mol_mem_key\n\t\tdomain(id: number) {\n\t\t\treturn {\n\t\t\t\tuser() {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tid() {\n\t\t\t\t\t\t\treturn 1 + id\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}\n\t}\n}\n","namespace $ {\n\n\tconst str2js = (function (this: $, data: string, url: string) {\n\t\tconst tree = this.$mol_tree2_from_string(data, url)\n\t\tconst js_tree = this.$mol_view_tree2_to_js(tree)\n\t\tconst js_text = this.$mol_tree2_js_to_text(js_tree)\n\t\tconst js_str = this.$mol_tree2_text_to_string_mapped_js(js_text)\n\t\treturn js_str\n\t}).bind($ as typeof $$)\n\n\texport function $mol_view_tree2_to_js_test_run( tree: string ): any {\n\t\tclass $mol_view_mock extends $mol_object {}\n\t\tconst $ = { $mol_object: $mol_view_mock }\n\t\t;( $mol_view_mock as any )[$mol_ambient_ref] = $\n\n\t\tconst src_uri = `.view.tree`\n\t\tconst js = str2js( tree, src_uri )\n\n\t\teval( js )\n\t\treturn $\n\t}\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t'Bidi bind fallback'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_fallback_foo\n\t\t\tconst foo = _foo.make({ })\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar1(),\n\t\t\t\tfoo.bar2(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar2( 2 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t2,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar1( 1 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar1( 1 ),\n\t\t\t\tfoo.bar2(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.bar2( 3 ),\n\t\t\t\tfoo.bar2(),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t3,\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Bidi bind legacy value'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_legacy_value_foo\n\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.a(),\n\t\t\t\tfoo.b(),\n\t\t\t\t1,\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b( 2 ),\n\t\t\t\tfoo.a(),\n\t\t\t\t2,\n\t\t\t)\n\t\t},\n\t\t\n\t\t'Bidi bind in dictionary'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_in_dictionary_foo\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).event().click({}),\n\t\t\t\t{},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Bidi bind chaining'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_chaining_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a()\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind indexed'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_indexed_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\tfoo.owner(1, 'a')\n\t\t\tfoo.owner(2, 'b'),\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(1),\n\t\t\t\tfoo.indexed(1),\n\t\t\t\t'a'\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(1, 'a2'),\n\t\t\t\tfoo.indexed(1),\n\t\t\t\t'a2'\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(2),\n\t\t\t\tfoo.indexed(2),\n\t\t\t\t'b'\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind indexed second level'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_foo\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar\n\t\t\t_foo.$.$mol_view_tree2_to_js_test_ex_bidi_indexed_second_level_bar = _bar\n\n\t\t\tconst foo = _foo.make({ $ })\n\n\n\t\t\tfoo.owner(1, 'a')\n\t\t\tfoo.owner(2, 'b')\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(1),\n\t\t\t\tfoo.indexed(1).expanded(),\n\t\t\t\t'a'\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(2),\n\t\t\t\tfoo.indexed(2).expanded(),\n\t\t\t\t'b'\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind doubing right part with same default'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_doubing_right_part_with_same_default_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.a(),\n\t\t\t\tfalse\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind with separate default in right part'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_with_separate_default_in_right_part_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a()\n\t\t\t)\n\t\t},\n\n\t\t'Bidi bind index from outer scope throws error'( $ ) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_view\n\t\t\t\t\t\ta!? $mol_view\n\t\t\t\t\t\t\texpanded <=> cell_test_expanded!? null\n\t\t\t\t`)\n\t\t\t}, `Required prop like some*? at \\`.view.tree#4:21/20\\`\n<=>\n.view.tree#4:17/3\nexpanded\n.view.tree#4:8/8\n$mol_view\n.view.tree#3:11/9\na!?\n.view.tree#3:7/3` )\n\t\t},\n\n\t\t'Bidi bind with default object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_with_default_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\tconst view = new $mol_object\n\t\t\tfoo.owner(view)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.owner(),\n\t\t\t\tfoo.class(),\n\t\t\t\tview\n\t\t\t)\n\t\t},\n\t\t\n\t\t'Bidi bind localized default value'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_localized_default_value_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_bidi_localized_default_value_foo_b`,\n\t\t\t)\n\t\t\n\t\t},\n\n\t\t'Bidi bind localized in object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_bidi_localized_in_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.obj().loc(),\n\t\t\t\tfoo.outer(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_bidi_localized_in_object_foo_outer`\n\t\t\t)\n\t\t},\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Left bind read only'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_read_only_foo\n\t\t\t\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar1(),\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.bar1( 2 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\tfoo.bar2(),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar2( 2 ),\n\t\t\t\tfoo.bar1(),\n\t\t\t\t2,\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Left bind second level index'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_second_level_index_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_ok(foo.owner(1) instanceof $mol_object)\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.some(1),\n\t\t\t\tfoo.some(1),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_left_second_level_index_foo_some`\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.owner(1),\n\t\t\t\tfoo.cls(1),\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.owner(1).localized(),\n\t\t\t\tfoo.some(1),\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.cls(2),\n\t\t\t\tfoo.owner(2),\n\t\t\t)\n\t\t},\n\n\t\t'Left bind in array and object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_in_array_and_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.obj().prop,\n\t\t\t\tfoo.arr()[0],\n\t\t\t\tfoo.Obj()\n\t\t\t)\n\t\t},\n\n\t\t'Left bind with separate default and comment'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_with_separate_default_and_comment_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.Obj().rows(),\n\t\t\t\t[ 123 ]\n\t\t\t)\n\t\t},\n\n\t\t'Left bind chaining'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_left_chaining_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t0\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(1),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t1\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.a(2),\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.b(2),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.d(),\n\t\t\t\t1\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.c(2),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t2\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(1),\n\t\t\t\t1,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.d(3),\n\t\t\t\tfoo.c(),\n\t\t\t\tfoo.b(),\n\t\t\t\tfoo.a(),\n\t\t\t\t3\n\t\t\t)\n\t\t\t\n\t\t},\n\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Array boolean'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_boolean_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_sub = $mol_type_assert<ReturnType<typeof foo['bar']>, readonly boolean[]>\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar(),\n\t\t\t\t[ false, true ],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array number'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_number_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype a1 = $mol_type_assert<ReturnType<typeof foo['bar']>, any /* readonly number[] */ >\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar(),\n\t\t\t\t[\n\t\t\t\t\tNumber.NaN,\n\t\t\t\t\tNumber.NEGATIVE_INFINITY,\n\t\t\t\t\tNumber.POSITIVE_INFINITY,\n\t\t\t\t\t0,\n\t\t\t\t],\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Array with types'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_with_types_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_arr = $mol_type_assert<ReturnType<typeof foo['arr']>, readonly( readonly(number)[] )[]>\n\t\t\t$mol_assert_like(foo.arr(), [])\n\n\t\t},\n\n\t\t'Array of array or object'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_of_array_or_object_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\t// type a1 = $mol_type_assert<\n\t\t\t// \tReturnType<typeof foo.complex>,\n\t\t\t// \treadonly (readonly(number | string)[] | Record<string, number | string>)[]\n\t\t\t// >\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.complex(),\n\t\t\t\t[ '1', [ true ], [ '1', 21 ], { a: 1, str: 'some' } ]\n\t\t\t)\n\n\t\t},\n\n\t\t'Array inheritance'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_array_inheritance_bar\n\n\t\t\t$mol_assert_like(_bar.make({ $ }).arr(), ['v3', 'v1', 'v4' ])\n\n\t\t},\n\n\t\t'Array spread other'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_array_spread_other_bar\n\t\t\tconst bar = _bar.make({ $ })\n\n\t\t\t$mol_assert_like(bar.arr(), ['v2', 'v1' ])\n\t\t\t$mol_assert_like(bar.arr()[1], bar.sup()[0])\n\n\t\t},\n\n\t\t'Array slot' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_slot_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_foot = $mol_type_assert<ReturnType<typeof foo['foot']>, readonly(string | number | boolean)[]>\n\t\t\t$mol_assert_like(foo.foot(), [ 1, true, 'foot1', 2, 3, 'ins1', 1, 'ins2', 'foot2' ])\n\t\t},\n\n\t\t'Array indexed' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_indexed_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_tag = $mol_type_assert<Parameters<typeof foo['tags']>[0], any>\n\t\t\ttype assert_slot = $mol_type_assert<Parameters<typeof foo['slot']>[0], any>\n\t\t\ttype assert_tag1 = $mol_type_assert<Parameters<typeof foo['tag1']>[0], any>\n\t\t\ttype assert_tag2 = $mol_type_assert<Parameters<typeof foo['tag2']>[0], any>\n\t\t\t$mol_assert_like(foo.tags(1), [ 't1', 't2' ])\n\t\t\t$mol_assert_like(foo.slot(1), [ 't2' ])\n\t\t},\n\n\t\t'Array union' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_union_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_tag = $mol_type_assert<ReturnType<typeof foo['bar']>[number], $mol_view_tree2_to_js_test_ex_klass_tuple_type>\n\t\t\t$mol_assert_like(foo.bar(), [ 'a', 'c', 'b' ])\n\t\t},\n\n\t\t'Array constructor tuple'($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_array_constructor_tuple_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype a0 = $mol_type_assert<\n\t\t\t\tReturnType<typeof foo['text_blob']>,\n\t\t\t\t$mol_view_tree2_to_js_test_ex_klass_tuple\n\t\t\t>\n\n\t\t\ttype a1 = $mol_type_assert<\n\t\t\t\tReturnType<typeof foo['blobs']>,\n\t\t\t\treadonly any[]\n\t\t\t\t// readonly $mol_view_tree2_to_js_test_ex_klass_tuple[]\n\t\t\t>\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.text_blob().tuple,\n\t\t\t\t[ '123' ]\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.blobs(),\n\t\t\t\t[\n\t\t\t\t\tfoo.text_blob(),\n\t\t\t\t]\n\t\t\t)\n\t\t},\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Right bind read only'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_right_read_only_bar\n\t\t\t\n\t\t\tconst bar = _bar.make({ $: _bar.$ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.Obj().a(1),\n\t\t\t\tbar.b(1)\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Right bind in left bind'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_right_in_left_bar\n\t\t\t\n\t\t\tconst bar = _bar.make({ $: _bar.$ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.foo(),\n\t\t\t\tbar.Cls(),\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.foo().a(),\n\t\t\t\tbar.Cls().a(),\n\t\t\t\tbar.b()\n\t\t\t)\n\t\t},\n\n\t\t'Right bind indexed'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_right_indexed_bar\n\t\t\t\n\t\t\tconst bar = _bar.make({ $: _bar.$ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tbar.Cls(1).a(),\n\t\t\t\tbar.b(1),\n\t\t\t)\n\n\t\t\t$mol_assert_like(\n\t\t\t\tbar.b(1),\n\t\t\t\t{ some: 123 }\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tbar.Cls(1).a() === bar.b(2),\n\t\t\t\tfalse,\n\t\t\t)\n\t\t},\n\n\t\t'Right hierarchy'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_right_hierarchy_foo\n\t\t\tconst foo = _foo.make({ $: _foo.$ })\n\t\t\ttype prj_user_id_assert = $mol_type_assert<ReturnType<typeof foo['prj_user_id']>, number >\n\t\t\ttype prj_domain_assert = $mol_type_assert<ReturnType<typeof foo['prj_domain']>, {\n\t\t\t\tuser: () => { id: () => number }\n\t\t\t} >\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.prj_user_id(1),\n\t\t\t\t2\n\t\t\t)\n\t\t},\n\n\t\t'Right mixed args'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_right_hierarchy_foo\n\t\t\tconst foo = _foo.make({ $: _foo.$ })\n\t\t\tfoo.indexed_id = id => id + 25\n\n\t\t\t$mol_assert_like( foo.indexed_title(1), 123 )\n\t\t\t$mol_assert_like( foo.Indexed(0).id(), 25 )\n\t\t\t$mol_assert_like( foo.Indexed(1).id(), 26 )\n\t\t\t$mol_assert_like( foo.indexed_title(0, 2), 125 )\n\t\t}\n\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'simple empty class'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_empty_class_foo\n\t\t\t\n\t\t\t$mol_assert_ok(_foo.make({ $ }) instanceof _foo)\n\t\t},\n\n\t\t'simple mutable and read only channels'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_mutable_and_read_only_foo\n\t\t\t\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype assert_ro = $mol_type_assert<ReturnType<typeof foo['readonly']>, any>\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.readonly(),\n\t\t\t\t// @ts-ignore\n\t\t\t\tfoo.readonly( 1 ),\n\t\t\t\tfoo.readonly(),\n\t\t\t\tnull,\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.mutable(),\n\t\t\t\tnull,\n\t\t\t)\n\t\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.mutable(2),\n\t\t\t\tfoo.mutable(),\n\t\t\t\t2,\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'simple string channel'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_string_foo\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t_foo.make({ $ }).hardcoded(),\n\t\t\t\t'First\\nSecond',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t_foo.make({ $ }).localized(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_simple_string_foo_localized`,\n\t\t\t)\n\t\t},\n\t\t\n\t\t'simple default indexed channel'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_default_indexed_foo\n\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.a_b(0, 1),\n\t\t\t\tfoo.a_b(0),\n\t\t\t\t1\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.legacy(0, 1),\n\t\t\t\tfoo.legacy(0),\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\n\t\t'simple throw if cyrillic name'( $ ) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\tsub / <= Чlose_icon $mol_object\n\t\t\t\t`)\n\t\t\t}, `Required prop like some*? at \\`.view.tree#3:16/10\\`\n<=\n.view.tree#3:13/2\n/\n.view.tree#3:11/1\nsub\n.view.tree#3:7/3`)\n\t\t},\n\n\t\t'simple empty legacy indexed channel throws error'( $ ) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\ta!? null\n\t\t\t\t`)\n\t\t\t}, 'Required prop like some*? at `.view.tree#3:7/3`' )\n\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\tb! 1\n\t\t\t\t`)\n\t\t\t}, 'Required prop like some*? at `.view.tree#3:7/2`' )\n\t\t},\n\n\t\t'simple two classes'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_two_classes_foo\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_simple_two_classes_bar\n\t\t\tconst a = _foo.make( { $ })\n\t\t\tconst b = _bar.make( { $ })\n\n\t\t\t$mol_assert_ok(b instanceof _foo)\n\t\t\t$mol_assert_ok(b instanceof _bar)\n\n\t\t\t$mol_assert_equal( a.str(), 'some')\n\t\t\t$mol_assert_equal( b.str(), 'some2')\n\t\t},\n\n\t\t'simple commented node'( $ ) {\n\t\t\tconst { Foo } = $mol_view_tree2_to_js_test_run(`\n\t\t\t\t- Foo $mol_object\n\t\t\t\t\ta!? $mol_object\n\t\t\t\t\t\texpanded <=> cell_test_expanded!? null\n\t\t\t`)\n\t\t\t$mol_assert_ok(Foo === undefined)\n\t\t},\n\n\t\t'simple factory props'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_factory_props_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_ok(typeof foo.button().sub === 'function')\n\n\t\t\t$mol_assert_ok(typeof foo.button().some === 'function')\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.button().loc(),\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_simple_factory_props_foo_button_loc`\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.button().deep().loc,\n\t\t\t\t`$mol_view_tree2_to_js_test_ex_simple_factory_props_foo_button_deep_loc`\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.button().sub()[0],\n\t\t\t\t1\n\t\t\t)\n\t\t},\n\n\t\t'simple factory inheritance'( $ ) {\n\t\t\t\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_factory_inheritance_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.Having().config(),\n\t\t\t\t{ ips: [ '127.0.0.1', '0.0.0.0', '1.1.1.1' ] },\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'simple nan' ($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_nan_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype assert_a = $mol_type_assert<ReturnType<typeof foo['a']>, number>\n\t\t\ttype assert_d = $mol_type_assert<ReturnType<typeof foo['d']>, number>\n\t\t\ttype assert_f = $mol_type_assert<ReturnType<typeof foo['f']>, number>\n\t\t\t$mol_assert_equal(foo.a(), foo.b(), foo.c(), NaN)\n\t\t\t$mol_assert_equal(foo.d(), Infinity)\n\t\t\t$mol_assert_equal(foo.e(), -Infinity)\n\t\t\t$mol_assert_equal(foo.f(), Infinity)\n\t\t},\n\n\t\t'simple typed null'($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_simple_typed_null_foo\n\t\t\tconst foo = _foo.make({ $ })\n\t\t\ttype a1 = $mol_type_assert<ReturnType<typeof foo.a>, string | number | null>\n\n\t\t\t$mol_assert_equal(\n\t\t\t\tfoo.a(),\n\t\t\t\tnull\n\t\t\t)\n\t\t},\n\n\t\t'extra char' ($) {\n\t\t\t$mol_assert_fail(() => {\n\t\t\t\t$mol_view_tree2_to_js_test_run(`\n\t\t\t\t\tFoo $mol_object\n\t\t\t\t\t\titem_чount 50\n\t\t\t\t`)\n\t\t\t}, 'Required prop like some*? at `.view.tree#3:7/10`')\n\t\t},\n\t})\n\t\n}\n","namespace $ {\n\n\t$mol_test({\n\t\t\n\t\t'Structural channel'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_foo\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).bar(),\n\t\t\t\t{\n\t\t\t\t\talpha: 1,\n\t\t\t\t\tbeta: {},\n\t\t\t\t\txxx: 2,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Structural dict'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_dict_foo\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).bar(),\n\t\t\t\t{\n\t\t\t\t\talpha: 1,\n\t\t\t\t\tbeta: 'a',\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural channel with inheritance'( $ ) {\n\t\t\tconst _bar = $mol_view_tree2_to_js_test_ex_structural_with_inheritance_bar\n\t\t\t\n\t\t\t$mol_assert_like(\n\t\t\t\t_bar.make({ $ }).field(),\n\t\t\t\t{\n\t\t\t\t\tyyy: 234,\n\t\t\t\t\txxx: 123,\n\t\t\t\t\txxy: 'test',\n\t\t\t\t\tzzz: 345,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'Structural channel spread other'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_spread_other_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\ttype a1 = $mol_type_assert<\n\t\t\t\tReturnType<typeof foo.field>,\n\t\t\t\t{\n\t\t\t\t\taaa: number\n\t\t\t\t} & {\n\t\t\t\t\tbbb: number\n\t\t\t\t}\n\t\t\t>\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.field(),\n\t\t\t\t{\n\t\t\t\t\tbbb: 321,\n\t\t\t\t\taaa: 123,\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural channel localized prop value'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.bar(),\n\t\t\t\t{\n\t\t\t\t\t'loc': `$mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo_bar_loc`,\n\t\t\t\t\t'baz': { 'loc2': `$mol_view_tree2_to_js_test_ex_structural_localized_prop_value_foo_bar_baz_loc2` }\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural channel quoted props'( $ ) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_quoted_props_foo\n\n\t\t\t$mol_assert_like(\n\t\t\t\t_foo.make({ $ }).bar(),\n\t\t\t\t{\n\t\t\t\t\t'a$': 1,\n\t\t\t\t\t'b-t': {},\n\t\t\t\t},\n\t\t\t)\n\t\t\t\n\t\t},\n\n\t\t'Structural complex key'($) {\n\t\t\tconst _foo = $mol_view_tree2_to_js_test_ex_structural_complex_key_foo\n\t\t\tconst foo = _foo.make({ $ })\n\n\t\t\t$mol_assert_like(\n\t\t\t\tfoo.dictionary(),\n\t\t\t\t{\n\t\t\t\t\t'raw data key': '1',\n\t\t\t\t\t'key2': '2',\n\t\t\t\t\t'key3': '3'\n\t\t\t\t},\n\t\t\t)\n\t\t}\n\n\t})\n\t\n}\n"]}
|