mol_mutable 0.0.268 → 0.0.270

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.test.js CHANGED
@@ -217,9 +217,9 @@ var $node = new Proxy({ require }, {
217
217
  while (!fs.existsSync(path.join(dir, suffix))) {
218
218
  const parent = path.resolve(dir, '..');
219
219
  if (parent === dir) {
220
- $$.$mol_exec('.', 'npm', 'install', '--omit=dev', '--no-save', name);
220
+ $$.$mol_exec('.', 'npm', 'install', '--omit=dev', name);
221
221
  try {
222
- $$.$mol_exec('.', 'npm', 'install', '--omit=dev', '--no-save', '@types/' + name);
222
+ $$.$mol_exec('.', 'npm', 'install', '--omit=dev', '@types/' + name);
223
223
  }
224
224
  catch { }
225
225
  break;
package/node.test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../../mam.ts","../../../mam.jam.js","../../type/immutable/deep/deep/deep.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../mol/mutable/mutable.ts","../../type/error/error.ts","../../type/assert/assert.ts","../../type/assert/assert.test.ts","../../type/equals/equals.ts","../../type/equals/equals.test.ts","../../type/immutable/deep/deep/deep.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../promise/like/mol/promise/like/like.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../fail/mol/fail/fail.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../fail/hidden/mol/fail/hidden/hidden.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../test/mol/test/test.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../test/mol/test/test.node.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/context/mol/dom/context/context.ts","../../../node/node.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../../node/node/node.node.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../log3/mol/log3/log3.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../term/color/mol/term/color/color.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../log3/mol/log3/log3.node.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../log3/mol/log3/log3.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../env/mol/env/env.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../env/mol/env/env.node.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../exec/mol/exec/exec.node.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/context/mol/dom/context/context.node.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/render/children/mol/dom/render/children/children.ts","../../type/partial/deep/deep.ts","../../type/partial/deep/deep.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../jsx/mol/jsx/jsx.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../jsx/mol/jsx/jsx.test.tsx","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../compare/deep/mol/compare/deep/deep.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../compare/deep/mol/compare/deep/deep.test.tsx","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/serialize/mol/dom/serialize/serialize.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../assert/mol/assert/assert.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../assert/mol/assert/assert.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../ambient/mol/ambient/ambient.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../owning/mol/owning/owning.ts","../../type/writable/writable.ts","../../type/writable/writable.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../object2/mol/object2/object2.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../delegate/mol/delegate/delegate.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../delegate/mol/delegate/delegate.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../span/mol/span/span.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../span/mol/span/span.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/to/string/mol/tree2/to/string/string.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/mol/tree2/tree2.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/mol/tree2/tree2.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../error/syntax/mol/error/syntax/syntax.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/from/string/mol/tree2/from/string/string.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/from/string/mol/tree2/from/string/string.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/from/json/mol/tree2/from/json/json.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../tree2/from/json/mol/tree2/from/json/json.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../func/name/mol/func/name/name.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../func/name/mol/func/name/name.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../mol/mutable/mutable.test.ts"],"names":[],"sourceRoot":"/home/runner/work/mam_mol/mam_mol/mol/mutable/-/","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\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n",null,null,"namespace $ {\n\t\n\texport type $mol_mutable_wrapper< Value > = {\n\t\t(\n\t\t\tpatch?: ( next: $mol_type_immutable_deep< Value > )=> $mol_type_immutable_deep< Value >\n\t\t): $mol_type_immutable_deep< Value >\n\t} & {\n\t\t[ Field in keyof Value ]: $mol_mutable_wrapper< Value[ Field ] >\n\t}\n\t\n\t/** Mutable way for immutable patch */\n\texport function $mol_mutable< Value >(\n\t\tinput: Value,\n\t\tupdate: ( next: Value )=> Value = next => input = next,\n\t): $mol_mutable_wrapper< Value > {\n\t\t\n\t\tlet output = undefined as undefined | Value\n\t\t\n\t\tconst clone = Array.isArray( input )\n\t\t\t? ()=> [ ... input as any ] as Value\n\t\t\t: ()=> ({ ... input })\n\t\t\n\t\treturn new Proxy( $mol_mutable, {\n\t\t\t\n\t\t\tget: ( Mut, field )=> Mut(\n\t\t\t\tinput[ field as keyof Value ],\n\t\t\t\tnext => ( output ?? ( output = update( clone() ) ) )[ field as keyof Value ] = next,\n\t\t\t),\n\t\t\t\n\t\t\tset: ()=> false,\n\t\t\t\n\t\t\tapply: ( Mut, self, [ patch ] )=> {\n\t\t\t\tif( patch ) update( output = input = patch( input ) )\n\t\t\t\treturn output ?? input\n\t\t\t},\n\t\t\t\n\t\t} ) as any\n\t\t\n\t}\n\t\n}\n",null,null,null,null,null,null,"namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\treturn val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\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\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\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n",null,"interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '--no-save', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '--no-save', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\treturn target.require( name )\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\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\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\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) return $mol_fail( res.error || new Error( res.stderr.toString() ) )\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\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",null,null,"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 */\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'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\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && left.stack === (right as any).stack\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","/** @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$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\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} ,\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'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'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\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\t\n\t/**\n\t * Argument must be Truthy\n\t * @example\n\t * $mol_assert_ok( 1 ) // Passes\n\t * $mol_assert_ok( 0 ) // Fails because Falsy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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 * @example\n\t * $mol_assert_ok( 0 ) // Passes\n\t * $mol_assert_ok( 1 ) // Fails because Truthy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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( handler : ()=> any , ErrorRight? : any ) {\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\tif( !ErrorRight ) return error\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, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_ok( error instanceof ErrorRight )\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/**\n\t * All arguments must be equal.\n\t * @example\n\t * $mol_assert_equal( 1 , 1 , 1 ) // Passes\n\t * $mol_assert_equal( 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 = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) continue\n\t\t\t\tif( args[i] !== args[j] ) $mol_fail( new Error( `Not equal (${i+1}:${j+1})\\n${ args[i] }\\n${ args[j] }` ) )\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be not 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\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( args[i] === args[j] || ( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) ) {\n\t\t\t\t\t$mol_fail( new Error( `args[${ i }] = args[${ j }] = ${ args[i] }` ) )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be like each other (deep structural comparison).\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_like< Value >( head : Value, ... tail : Value[]) {\n\t\tfor( let [ index, value ] of Object.entries( tail ) ) {\n\n\t\t\tif( !$mol_compare_deep( value , head ) ) {\n\n\t\t\t\tconst print = ( val : any ) => {\n\t\t\t\t\t\n\t\t\t\t\tif( !val ) return val\n\t\t\t\t\tif( typeof val !== 'object' ) return val\n\t\t\t\t\tif( 'outerHTML' in val ) return val.outerHTML\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn JSON.stringify( val )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error( `Not like (1:${ + index + 2 })\\n${ print( head ) }\\n---\\n${ print( value ) }` ) )\n\n\t\t\t}\n\n\t\t}\n\t}\n\t\n\texport function $mol_assert_dom( left: Element, right: Element ) {\n\t\t$mol_assert_equal( $mol_dom_serialize( left ), $mol_dom_serialize( right ) )\n\t}\n\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( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n",null,null,"namespace $ {\n\n\texport class $mol_object2 {\n\t\t\n\t\tstatic $ = $ as $\n\t\t\n\t\t[Symbol.toStringTag]!: string\n\n\t\t[ $mol_ambient_ref ] = null as any as $\n\t\tget $() {\n\t\t\tif( this[ $mol_ambient_ref ] ) return this[ $mol_ambient_ref ]\n\t\t\tconst owner = $mol_owning_get( this ) as any\n\t\t\treturn this[ $mol_ambient_ref ] = owner?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\tif( Symbol.toStringTag in this ) return this[ Symbol.toStringTag ] as string\n\t\t\treturn this.name\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON(): any {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\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\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\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , length )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message}${this}` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail(`Begin value '${begin}' out of range ${this}`)\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail(`End value '${end}' out of range ${this}`)\n\t\t\tif (end < begin) this.$.$mol_fail(`End value '${end}' can't be less than begin value ${this}`)\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\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))\n\t\t\t$mol_assert_fail(() => span.slice(1, 6))\n\t\t\t$mol_assert_fail(() => span.slice(1, 10))\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\n\t\t\t$mol_assert_equal(error.message, 'Some error\\ntest.ts#1:3/4')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\n\t\t\tif( path.length === 0 ) return value!\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\t\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat( ... this.kids.map( child => {\n\n\t\t\t\tlet handle = belt[ child.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\t\tif( !handle || handle === Object.prototype[ child.type as keyof Object ] ) {\n\t\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\treturn handle( child , belt , context! )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\terror.message += `\\n${ child.clone([]) }${ child.span }`\n\t\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t}\n\n\t\t\t} ) )\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b c x\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n'\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'deleting'($) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( null , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( null , 0, 0, 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b\\n',\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( `foo bar xxx\\n` )\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.toString() , 'foo 777 xxx\\n' )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\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_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t$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\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\t$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 $ {\r\n\t$mol_test({\r\n\t\t\r\n\t\t'Wrap & unwrap'() {\r\n\t\t\t\r\n\t\t\tconst val = [1]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val, mut() )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep array'() {\r\n\t\t\t\r\n\t\t\tconst val = [ [1], [2], [3] ]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut[1][0]( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val[0], mut()[0] )\r\n\t\t\t$mol_assert_equal( val[2], mut()[2] )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val[1], mut()[1] )\r\n\t\t\t$mol_assert_like( mut()[1], [-2] )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Array insert'() {\r\n\t\t\t\r\n\t\t\tconst val = [[ 1, 2, 3, 4 ]]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut[0]( a => [ ... a.slice( 0, 2 ), 7, ... a.slice( 2 ) ] ),\r\n\t\t\t\t[ 1, 2, 7, 3, 4 ],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut(),\r\n\t\t\t\t[[ 1, 2, 7, 3, 4 ]],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep objects'() {\r\n\t\t\t\r\n\t\t\tconst val = { a: { x: 1 }, b: { y: 2 }, c: { z: 3 } }\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut.b.y( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val.a, mut().a )\r\n\t\t\t$mol_assert_equal( val.c, mut().c )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val.b, mut().b )\r\n\t\t\t$mol_assert_like( mut().b, { y: -2 } )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t})\r\n}"]}
1
+ {"version":3,"sources":["../../../mam.ts","../../../mol/mutable/mutable.ts","../../../mol/promise/like/like.ts","../../../mol/fail/fail.ts","../../../mol/fail/hidden/hidden.ts","../../../mol/test/test.test.ts","../../../mol/test/test.node.test.ts","../../../mol/dom/context/context.ts","../../../node/node.node.ts","../../../mol/log3/log3.ts","../../../mol/term/color/color.ts","../../../mol/log3/log3.node.ts","../../../mol/log3/log3.test.ts","../../../mol/env/env.ts","../../../mol/env/env.node.ts","../../../mol/exec/exec.node.ts","../../../mol/dom/context/context.node.ts","../../../mol/dom/render/children/children.ts","../../../mol/jsx/jsx.ts","../../../mol/jsx/jsx.test.tsx","../../../mol/compare/deep/deep.ts","../../../mol/compare/deep/deep.test.tsx","../../../mol/dom/serialize/serialize.ts","../../../mol/assert/assert.ts","../../../mol/assert/assert.test.ts","../../../mol/ambient/ambient.ts","../../../mol/owning/owning.ts","../../../mol/object2/object2.ts","../../../mol/delegate/delegate.ts","../../../mol/delegate/delegate.test.ts","../../../mol/span/span.ts","../../../mol/span/span.test.ts","../../../mol/tree2/to/string/string.ts","../../../mol/tree2/tree2.ts","../../../mol/tree2/tree2.test.ts","../../../mol/error/syntax/syntax.ts","../../../mol/tree2/from/string/string.ts","../../../mol/tree2/from/string/string.test.ts","../../../mol/tree2/from/json/json.ts","../../../mol/tree2/from/json/json.test.ts","../../../mol/func/name/name.ts","../../../mol/func/name/name.test.ts","../../../mol/mutable/mutable.test.ts"],"names":[],"sourceRoot":"../../../","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\tnamespace $$ {\n\t\texport type $$ = $\n\t}\n}\n\nmodule.exports = $\n","namespace $ {\n\t\n\texport type $mol_mutable_wrapper< Value > = {\n\t\t(\n\t\t\tpatch?: ( next: $mol_type_immutable_deep< Value > )=> $mol_type_immutable_deep< Value >\n\t\t): $mol_type_immutable_deep< Value >\n\t} & {\n\t\t[ Field in keyof Value ]: $mol_mutable_wrapper< Value[ Field ] >\n\t}\n\t\n\t/** Mutable way for immutable patch */\n\texport function $mol_mutable< Value >(\n\t\tinput: Value,\n\t\tupdate: ( next: Value )=> Value = next => input = next,\n\t): $mol_mutable_wrapper< Value > {\n\t\t\n\t\tlet output = undefined as undefined | Value\n\t\t\n\t\tconst clone = Array.isArray( input )\n\t\t\t? ()=> [ ... input as any ] as Value\n\t\t\t: ()=> ({ ... input })\n\t\t\n\t\treturn new Proxy( $mol_mutable, {\n\t\t\t\n\t\t\tget: ( Mut, field )=> Mut(\n\t\t\t\tinput[ field as keyof Value ],\n\t\t\t\tnext => ( output ?? ( output = update( clone() ) ) )[ field as keyof Value ] = next,\n\t\t\t),\n\t\t\t\n\t\t\tset: ()=> false,\n\t\t\t\n\t\t\tapply: ( Mut, self, [ patch ] )=> {\n\t\t\t\tif( patch ) update( output = input = patch( input ) )\n\t\t\t\treturn output ?? input\n\t\t\t},\n\t\t\t\n\t\t} ) as any\n\t\t\n\t}\n\t\n}\n","namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\treturn val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\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\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\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","interface $node {\n\t[key:string]: any\n}\n\nvar $node = new Proxy( { require } as any , {\n\t\n\tget( target , name : string , wrapper ) {\n\n\t\tif( target[ name ] ) return target[ name ]\n\n\t\tconst mod = target.require( 'module' ) as typeof import( 'module' )\n\t\t\n\t\tif( mod.builtinModules.indexOf( name ) >= 0 ) return target.require( name )\n\t\tif( name[0] === '.' ) return target.require( name )\n\t\t\n\t\tconst path = target.require( 'path' ) as typeof import( 'path' )\n\t\tconst fs = target.require( 'fs' ) as typeof import( 'fs' )\n\n\t\tlet dir = path.resolve( '.' )\n\t\tconst suffix = `./node_modules/${ name }`\n\n\t\tconst $$ = ( $ as any )\n\t\t\n\t\twhile( !fs.existsSync( path.join( dir , suffix ) ) ) {\n\n\t\t\tconst parent = path.resolve( dir , '..' )\n\n\t\t\tif( parent === dir ) {\n\n\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', name )\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\t$$.$mol_exec( '.' , 'npm' , 'install' , '--omit=dev', '@types/' + name )\n\t\t\t\t} catch {}\n\n\t\t\t\tbreak\n\n\t\t\t} else {\n\n\t\t\t\tdir = parent\n\n\t\t\t}\n\n\t\t}\n\t\t\n\t\treturn target.require( name )\n\n\t},\n\n\tset( target , name : string , value ) {\n\t\ttarget[ name ] = value\n\t\treturn true\n\t},\n\n} ) as $node\n\nrequire = ( req =>\n\tObject.assign( function require( name : string ) {\n\t\treturn $node[ name ]\n\t} , req )\n)( require )\n\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\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\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\texport function $mol_env() {\n\t\treturn {} as Record< string, string | undefined >\n\t}\n}\n","namespace $ {\n\t$.$mol_env = function $mol_env() {\n\t\treturn this.process.env\n\t}\n}\n","namespace $ {\n\texport function $mol_exec(\n\t\tthis : $ ,\n\t\tdir : string ,\n\t\tcommand : string ,\n\t\t...args : string[]\n\t) {\n\n\t\tlet [ app , ... args0 ] = command.split( ' ' )\n\t\targs = [ ... args0 , ... args ]\n\n\t\tthis.$mol_log3_come({\n\t\t\tplace: '$mol_exec' ,\n\t\t\tdir: $node.path.relative( '' , dir ) ,\n\t\t\tmessage: 'Run',\n\t\t\tcommand: `${app} ${ args.join(' ') }` ,\n\t\t})\n\n\t\tvar res = $node['child_process'].spawnSync(\n\t\t\tapp ,\n\t\t\targs,\n\t\t\t{\n\t\t\t\tcwd : $node.path.resolve( dir ) ,\n\t\t\t\tshell : true ,\n\t\t\t\tenv: this.$mol_env(),\n\t\t\t}\n\t\t)\n\t\t\n\t\tif( res.status || res.error ) return $mol_fail( res.error || new Error( res.stderr.toString() ) )\n\t\tif( !res.stdout ) res.stdout = Buffer.from([])\n\n\t\treturn res\n\t}\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = new $node.jsdom.JSDOM( '' , { url : 'https://localhost/' } ).window as any\n\t\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 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 */\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'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\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 && left.stack === (right as any).stack\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","/** @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$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\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} ,\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'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'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\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\t\n\t/**\n\t * Argument must be Truthy\n\t * @example\n\t * $mol_assert_ok( 1 ) // Passes\n\t * $mol_assert_ok( 0 ) // Fails because Falsy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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 * @example\n\t * $mol_assert_ok( 0 ) // Passes\n\t * $mol_assert_ok( 1 ) // Fails because Truthy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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( handler : ()=> any , ErrorRight? : any ) {\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\tif( !ErrorRight ) return error\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, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_ok( error instanceof ErrorRight )\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/**\n\t * All arguments must be equal.\n\t * @example\n\t * $mol_assert_equal( 1 , 1 , 1 ) // Passes\n\t * $mol_assert_equal( 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 = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) continue\n\t\t\t\tif( args[i] !== args[j] ) $mol_fail( new Error( `Not equal (${i+1}:${j+1})\\n${ args[i] }\\n${ args[j] }` ) )\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be not 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\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( args[i] === args[j] || ( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) ) {\n\t\t\t\t\t$mol_fail( new Error( `args[${ i }] = args[${ j }] = ${ args[i] }` ) )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be like each other (deep structural comparison).\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_like< Value >( head : Value, ... tail : Value[]) {\n\t\tfor( let [ index, value ] of Object.entries( tail ) ) {\n\n\t\t\tif( !$mol_compare_deep( value , head ) ) {\n\n\t\t\t\tconst print = ( val : any ) => {\n\t\t\t\t\t\n\t\t\t\t\tif( !val ) return val\n\t\t\t\t\tif( typeof val !== 'object' ) return val\n\t\t\t\t\tif( 'outerHTML' in val ) return val.outerHTML\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn JSON.stringify( val )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error( `Not like (1:${ + index + 2 })\\n${ print( head ) }\\n---\\n${ print( value ) }` ) )\n\n\t\t\t}\n\n\t\t}\n\t}\n\t\n\texport function $mol_assert_dom( left: Element, right: Element ) {\n\t\t$mol_assert_equal( $mol_dom_serialize( left ), $mol_dom_serialize( right ) )\n\t}\n\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( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\texport const $mol_ambient_ref : unique symbol = Symbol( '$mol_ambient_ref' )\n\n\t/** @deprecated use $ instead */\n\texport type $mol_ambient_context = $\n\n\texport function $mol_ambient( this : $ | void , overrides : Partial< $ > ) : $ {\n\t\treturn Object.setPrototypeOf( overrides , this || $ )\n\t}\n\n}\n","namespace $ {\n\n\texport const $mol_owning_map = new WeakMap< any , any >()\n\n\texport function $mol_owning_allow< Having >(\n\t\thaving : Having ,\n\t) : having is Having & {\n\t\tdestructor() : void\n\t} {\n\t\ttry {\n\t\t\tif( !having ) return false\n\t\t\tif( typeof having !== 'object' ) return false\n\t\t\tif( having instanceof $mol_delegate ) return false\n\t\t\tif( typeof (having as any)['destructor'] !== 'function' ) return false\n\t\t\treturn true\n\t\t} catch {\n\t\t\treturn false\n\t\t}\n\t}\n\n\texport function $mol_owning_get< Having , Owner extends object >( having : Having , Owner? : { new() : Owner } ) : Owner | null {\n\t\n\t\tif( !$mol_owning_allow( having ) ) return null\n\n\t\twhile( true ) {\n\n\t\t\tconst owner = $mol_owning_map.get( having )\n\t\t\tif( !owner ) return owner\n\t\t\tif( !Owner ) return owner\n\t\t\t\n\t\t\tif( owner instanceof Owner ) return owner\n\n\t\t\thaving = owner\n\t\t}\n\n\t}\n\t\n\texport function $mol_owning_check< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) : having is Having & { destructor() : void } {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) !== owner ) return false\n\t\treturn true\n\t}\n\t\n\texport function $mol_owning_catch< Owner , Having >(\n\t\towner : Owner ,\n\t\thaving : Having ,\n\t) {\n\t\tif( !$mol_owning_allow( having ) ) return false\n\t\tif( $mol_owning_map.get( having ) ) return false\n\n\t\t$mol_owning_map.set( having , owner )\n\t\treturn true\n\t}\n\n}\n","namespace $ {\n\n\texport 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?.$ || $mol_object2.$ as $\n\t\t}\n\t\tset $( next : $ ) {\n\t\t\tif( this[ $mol_ambient_ref ] ) $mol_fail_hidden( new Error( 'Context already defined' ) )\n\t\t\tthis[ $mol_ambient_ref ] = next\n\t\t}\n\n\t\tpublic static create< Instance >(\n\t\t\tthis : new( init? : ( instance : any )=> void )=> Instance ,\n\t\t\tinit? : ( instance : $mol_type_writable<Instance> )=> void\n\t\t) : Instance {\n\t\t\tconst obj = new this\n\t\t\tif( init ) init( obj )\n\t\t\treturn obj\n\t\t}\n\t\t\n\t\tstatic [ Symbol.toPrimitive ]() {\n\t\t\treturn this.toString()\n\t\t}\n\t\t\n\t\tstatic toString() {\n\t\t\tif( Symbol.toStringTag in this ) return ( this as any )[ Symbol.toStringTag ] as string\n\t\t\treturn this.name\n\t\t}\n\t\t\n\t\tdestructor() { }\n\t\t\n\t\t//[ Symbol.toPrimitive ]( hint: string ) {\n\t\t//\treturn hint === 'number' ? this.valueOf() : this.toString()\n\t\t//}\n\t\t\n\t\ttoString(): string {\n\t\t\treturn this[ Symbol.toStringTag ] || this.constructor.name + '()'\n\t\t}\n\t\t\n\t\ttoJSON(): any {\n\t\t\treturn this.toString()\n\t\t}\n\n\t}\n}\n","namespace $ {\n\n\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\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\n\t/** Position in any resource. */\n\texport class $mol_span extends $mol_object2 {\n\n\t\tconstructor(\n\t\t\treadonly uri: string ,\n\t\t\treadonly source: string ,\n\t\t\treadonly row: number ,\n\t\t\treadonly col: number ,\n\t\t\treadonly length: number ,\n\t\t) {\n\t\t\tsuper()\n\t\t\tthis[ Symbol.toStringTag ] = `${ this.uri }#${ this.row }:${ this.col }/${ this.length }`\n\t\t}\n\n\t\t/** Span for begin of unknown resource */\n\t\tstatic unknown = $mol_span.begin('?')\n\n\t\t/** Makes new span for begin of resource. */\n\t\tstatic begin( uri: string, source = '' ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , 0 )\n\t\t}\n\n\t\t/** Makes new span for end of resource. */\n\t\tstatic end( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , source.length + 1 , length )\n\t\t}\n\n\t\t/** Makes new span for entire resource. */\n\t\tstatic entire( uri: string , source: string ) {\n\t\t\treturn new $mol_span( uri , source, 1 , 1 , source.length )\n\t\t}\n\n\t\ttoString() {\n\t\t\treturn this[ Symbol.toStringTag ]\n\t\t}\n\n\t\ttoJSON() {\n\t\t\treturn {\n\t\t\t\turi: this.uri,\n\t\t\t\trow: this.row,\n\t\t\t\tcol: this.col,\n\t\t\t\tlength: this.length\n\t\t\t}\n\t\t}\n\n\t\t/** Makes new error for this span. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn new Class( `${message}${this}` )\n\t\t}\n\n\t\t/** Makes new span for same uri. */\n\t\tspan( row : number , col : number , length : number ) {\n\t\t\treturn new $mol_span( this.uri , this.source, row , col , length )\n\t\t}\n\n\t\t/** Makes new span after end of this. */\n\t\tafter( length = 0 ) {\n\t\t\treturn new $mol_span( this.uri , this.source, this.row , this.col + this.length , length )\n\t\t}\n\n\t\t/** Makes new span between begin and end. */\n\t\tslice( begin: number, end = -1 ) {\n\t\t\tlet len = this.length\n\t\t\t\n\t\t\tif( begin < 0 ) begin += len\n\t\t\tif( end < 0 ) end += len\n\n\t\t\tif (begin < 0 || begin > len) this.$.$mol_fail(`Begin value '${begin}' out of range ${this}`)\n\t\t\tif (end < 0 || end > len) this.$.$mol_fail(`End value '${end}' out of range ${this}`)\n\t\t\tif (end < begin) this.$.$mol_fail(`End value '${end}' can't be less than begin value ${this}`)\n\n\t\t\treturn this.span( this.row , this.col + begin , end - begin )\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\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))\n\t\t\t$mol_assert_fail(() => span.slice(1, 6))\n\t\t\t$mol_assert_fail(() => span.slice(1, 10))\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\n\t\t\t$mol_assert_equal(error.message, 'Some error\\ntest.ts#1:3/4')\n\t\t}\n\n\t} )\n}\n","namespace $ {\n\n\t/** Serializes tree to string in tree format. */\n\texport function $mol_tree2_to_string(\n\t\tthis: $,\n\t\ttree: $mol_tree2,\n\t) : string {\n\n\t\tlet output = [] as string[]\n\t\t\n\t\tfunction dump(\n\t\t\ttree: $mol_tree2,\n\t\t\tprefix = '',\n\t\t) {\n\n\t\t\tif( tree.type.length ) {\n\t\t\t\t\n\t\t\t\tif( !prefix.length ) {\n\t\t\t\t\tprefix = \"\\t\";\n\t\t\t\t}\n\n\t\t\t\toutput.push( tree.type )\n\n\t\t\t\tif( tree.kids.length == 1 ) {\n\t\t\t\t\toutput.push( ' ' )\n\t\t\t\t\tdump( tree.kids[ 0 ], prefix )\n\t\t\t\t\treturn\n\t\t\t\t}\n\n\t\t\t\toutput.push( \"\\n\" )\n\n\t\t\t} else if( tree.value.length || prefix.length ) {\n\n\t\t\t\toutput.push( \"\\\\\" + tree.value + \"\\n\" )\n\n\t\t\t}\n\n\t\t\tfor( const kid of tree.kids ) {\n\t\t\t\toutput.push( prefix )\n\t\t\t\tdump( kid, prefix + \"\\t\" )\n\t\t\t}\n\t\t\t\n\t\t}\n\n\t\tdump( tree )\n\n\t\treturn output.join('')\n\t}\n\t\t\n}\n","namespace $ {\n\n\t/** Path by types in tree. */\n\texport type $mol_tree2_path =\n\t\tArray< string | number | null >\n\t\n\t/** Hask tool for processing node. */\n\texport type $mol_tree2_hack< Context > =\n\t\t(\n\t\t\tinput : $mol_tree2 ,\n\t\t\tbelt : $mol_tree2_belt< Context > ,\n\t\t\tcontext : Context ,\n\t\t)=> readonly $mol_tree2[]\n\n\t/** Collection of hask tools for processing tree. */\n\texport type $mol_tree2_belt< Context > =\n\t\tRecord< string , $mol_tree2_hack< Context > >\n\n\t/**\n\t * Abstract Syntax Tree with human readable serialization.\n\t * Avoid direct instantiation. Use static factories instead.\n\t * @see https://github.com/nin-jin/tree.d\n\t */\n\texport class $mol_tree2 extends Object {\n\t\t\n\t\tconstructor(\n\n\t\t\t/** Type of structural node, `value` should be empty */\n\t\t\treadonly type : string,\n\t\t\t\n\t\t\t/** Content of data node, `type` should be empty */\n\t\t\treadonly value : string,\n\n\t\t\t/** Child nodes */\n\t\t\treadonly kids : readonly $mol_tree2[],\n\t\t\t\n\t\t\t/** Position in most far source resource */\n\t\t\treadonly span : $mol_span,\n\n\t\t) {\n\t\t\tsuper()\n\t\t\t;(this as any)[ Symbol.toStringTag ] = type || '\\\\' + value\n\t\t}\n\n\t\t/** Makes collection node. */\n\t\tstatic list(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\t\t\treturn new $mol_tree2( '' , '' , kids , span )\n\t\t}\n\t\t\n\t\t/** Makes new derived collection node. */\n\t\tlist(\n\t\t\tkids : readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.list( kids , this.span )\n\t\t}\n\n\t\t/** Makes data node for any string. */\n\t\tstatic data(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tconst chunks = value.split( '\\n' )\n\n\t\t\tif( chunks.length > 1 ) {\n\t\t\t\n\t\t\t\tlet kid_span = span.span( span.row , span.col , 0 )\n\n\t\t\t\tconst data = chunks.map( chunk => {\n\t\t\t\t\tkid_span = kid_span.after( chunk.length )\n\t\t\t\t\treturn new $mol_tree2( '' , chunk , [] , kid_span )\n\t\t\t\t} )\n\n\t\t\t\tkids = [ ... data , ... kids ]\n\n\t\t\t\tvalue = ''\n\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( '' , value , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived data node. */\n\t\tdata(\n\t\t\tvalue : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.data( value , kids , this.span )\n\t\t}\n\t\t\n\t\t/** Makes struct node. */\n\t\tstatic struct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t\tspan = $mol_span.unknown ,\n\t\t) {\n\n\t\t\tif( /[ \\n\\t\\\\]/.test( type ) ) {\n\t\t\t\t$$.$mol_fail( span.error( `Wrong type ${ JSON.stringify( type ) }` ) )\n\t\t\t}\n\n\t\t\treturn new $mol_tree2( type , '' , kids , span )\n\n\t\t}\n\t\t\n\t\t/** Makes new derived structural node. */\n\t\tstruct(\n\t\t\ttype : string ,\n\t\t\tkids = [] as readonly $mol_tree2[] ,\n\t\t) {\n\t\t\treturn $mol_tree2.struct( type , kids , this.span )\n\t\t}\n\n\t\t/** Makes new derived node with different kids id defined. */\n\t\tclone( kids : readonly $mol_tree2[], span = this.span ) {\n\t\t\treturn new $mol_tree2( this.type , this.value , kids , span )\n\t\t}\n\n\t\t/** Returns multiline text content. */\n\t\ttext() {\n\n\t\t\tvar values : string[] = []\n\t\t\t\n\t\t\tfor( var kid of this.kids ) {\n\t\t\t\tif( kid.type ) continue\n\t\t\t\tvalues.push( kid.value )\n\t\t\t}\n\t\t\t\n\t\t\treturn this.value + values.join( '\\n' )\n\n\t\t}\n\t\t\n\t\t/** Parses tree format. */\n\t\t/** @deprecated Use $mol_tree2_from_string */\n\t\tstatic fromString( str : string , uri = 'unknown' ) {\n\t\t\treturn $$.$mol_tree2_from_string( str, uri )\n\t\t}\n\n\t\t/** Serializes to tree format. */\n\t\ttoString() : string {\n\t\t\treturn $$.$mol_tree2_to_string( this )\n\t\t}\n\t\t\n\t\t/** Makes new tree with node overrided by path. */\n\t\tinsert( value : $mol_tree2 | null , ...path : $mol_tree2_path ) : $mol_tree2 {\n\n\t\t\tif( path.length === 0 ) return value!\n\t\t\t\n\t\t\tconst type = path[0]\n\t\t\tif( typeof type === 'string' ) {\n\n\t\t\t\tlet replaced = false\n\t\t\t\tconst sub = this.kids.map( ( item , index )=> {\n\t\t\t\t\tif( item.type !== type ) return item\n\t\t\t\t\treplaced = true\n\t\t\t\t\treturn item.insert( value , ... path.slice( 1 ) )\n\t\t\t\t} ).filter( Boolean )\n\t\t\t\t\n\t\t\t\tif( !replaced && value ) {\n\t\t\t\t\tsub.push( this.struct( type , [] ).insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn this.clone( sub )\n\n\t\t\t} else if( typeof type === 'number' ) {\n\t\t\t\t\n\t\t\t\tconst sub = this.kids.slice()\n\t\t\t\tsub[ type ] = ( sub[ type ] || this.list([]) )\n\t\t\t\t\t.insert( value , ... path.slice( 1 ) )\n\t\t\t\t\n\t\t\t\treturn this.clone( sub.filter( Boolean ) )\n\n\t\t\t} else {\n\t\t\t\t\n\t\t\t\tconst kids = ( ( this.kids.length === 0 ) ? [ this.list([]) ] : this.kids )\n\t\t\t\t.map( item => item.insert( value , ... path.slice( 1 ) ) )\n\t\t\t\t.filter( Boolean )\n\n\t\t\t\treturn this.clone( kids )\n\n\t\t\t}\n\n\t\t}\n\n\t\t/** Query nodes by path. */\n\t\tselect( ...path : $mol_tree2_path ) {\n\n\t\t\tlet next = [ this as $mol_tree2 ]\n\n\t\t\tfor( const type of path ) {\n\n\t\t\t\tif( !next.length ) break\n\t\t\t\t\n\t\t\t\tconst prev = next\n\t\t\t\tnext = []\n\n\t\t\t\tfor( var item of prev ) {\n\n\t\t\t\t\tswitch( typeof( type ) ) {\n\n\t\t\t\t\t\tcase 'string' :\n\n\t\t\t\t\t\t\tfor( var child of item.kids ) {\n\t\t\t\t\t\t\t\tif( child.type == type ) {\n\t\t\t\t\t\t\t\t\tnext.push( child )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\n\t\t\t\t\t\tcase 'number' :\n\n\t\t\t\t\t\t\tif( type < item.kids.length ) next.push( item.kids[ type ] )\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\n\t\t\t\t\t\tdefault : next.push( ... item.kids )\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn this.list( next )\n\t\t\t\n\t\t}\n\t\t\n\t\t/** Filter kids by path or value. */\n\t\tfilter( path : string[] , value? : string ) {\n\n\t\t\tconst sub = this.kids.filter( item => {\n\t\t\t\t\t\n\t\t\t\tvar found = item.select( ...path )\n\t\t\t\t\n\t\t\t\tif( value === undefined ) {\n\t\t\t\t\treturn Boolean( found.kids.length )\n\t\t\t\t} else {\n\t\t\t\t\treturn found.kids.some( child => child.value == value )\n\t\t\t\t}\n\t\t\t\n\t\t\t} )\n\t\t\t\n\t\t\treturn this.clone( sub )\n\n\t\t}\n\n\t\t/** Transform tree through context with transformers */\n\t\thack< Context extends { span?: $mol_span; [ key: string ]: unknown } = {} >(\n\t\t\tbelt: $mol_tree2_belt< Context >,\n\t\t\tcontext = {} as Context,\n\t\t) {\n\t\t\t\n\t\t\treturn ( [] as readonly $mol_tree2[] ).concat( ... this.kids.map( child => {\n\n\t\t\t\tlet handle = belt[ child.type ] || belt[ '' ]\n\t\t\t\t\n\t\t\t\tif( !handle || handle === Object.prototype[ child.type as keyof Object ] ) {\n\t\t\t\t\thandle = ( input, belt, context )=> [\n\t\t\t\t\t\tinput.clone( input.hack( belt, context ), context.span )\n\t\t\t\t\t]\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\ttry {\n\t\t\t\t\treturn handle( child , belt , context! )\n\t\t\t\t} catch( error: any ) {\n\t\t\t\t\terror.message += `\\n${ child.clone([]) }${ child.span }`\n\t\t\t\t\t$mol_fail_hidden( error )\n\t\t\t\t}\n\n\t\t\t} ) )\n\n\t\t}\n\n\t\t/** Makes Error with node coordinates. */\n\t\terror( message : string , Class = Error ) {\n\t\t\treturn this.span.error( `${ message }\\n${ this.clone([]) }` , Class )\n\t\t}\n\n\t}\n\n\texport class $mol_tree2_empty extends $mol_tree2 {\n\t\tconstructor() {\n\t\t\tsuper( '' , '' , [] , $mol_span.unknown )\n\t\t}\n\t}\n\t\n}\n","namespace $ {\n\t$mol_test( {\n\t\t\n\t\t'inserting'($) {\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 'a' , 'b' , 'c' , 'd' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b c x\\n',\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , 0 , 0 , 0 , 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n'\n\t\t\t)\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b x\\n',\n\t\t\t)\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b\\n' )\n\t\t\t\t\t.insert( $mol_tree2.struct('x') , null , null , null , null )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b \\\\\\n\\tx\\n',\n\t\t\t)\n\t\t\t\n\t\t},\n\t\t\n\t\t'deleting'($) {\n\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( null , 'a' , 'b' , 'c' )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b\\n',\n\t\t\t)\n\t\t\t\n\t\t\t$mol_assert_equal(\n\t\t\t\t$.$mol_tree2_from_string( 'a b c d\\n' )\n\t\t\t\t\t.insert( null , 0, 0, 0 )\n\t\t\t\t\t.toString(),\n\t\t\t\t'a b\\n',\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( `foo bar xxx\\n` )\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.toString() , 'foo 777 xxx\\n' )\n\n\t\t} ,\n\n\t} )\t\n}\n","namespace $ {\n\n\t/** Syntax error with cordinates and source line snippet. */\n\texport class $mol_error_syntax extends SyntaxError {\n\t\tconstructor (\n\t\t\tpublic reason: string,\n\t\t\tpublic line: string,\n\t\t\tpublic span: $mol_span,\n\t\t) {\n\t\t\tsuper(`${ reason }\\n${ span }\\n${ line.substring( 0 , span.col - 1 ).replace( /\\S/g, ' ' ) }${ ''.padEnd( span.length, '!' ) }\\n${ line }`)\n\t\t}\n\n\t}\n\n}\n","namespace $ {\n\n\t/** Parses tree format from string. */\n\texport function $mol_tree2_from_string(\n\t\tthis: $,\n\t\tstr: string,\n\t\turi = '?',\n\t) : $mol_tree2 {\n\n\t\tconst span = $mol_span.entire( uri, str )\n\n\t\tvar root = $mol_tree2.list( [], span )\n\t\tvar stack = [ root ]\n\n\t\tvar pos = 0, row = 0, min_indent = 0\n\t\t\n\t\twhile( str.length > pos ) {\n\n\t\t\tvar indent = 0\n\t\t\tvar line_start = pos\n\n\t\t\trow++\n\n\t\t\t// read indent\n\t\t\twhile( str.length > pos && str[ pos ] == '\\t' ) {\n\t\t\t\tindent++\n\t\t\t\tpos++\n\t\t\t}\n\n\t\t\tif( ! root.kids.length ) {\n\t\t\t\tmin_indent = indent\n\t\t\t}\n\n\t\t\tindent -= min_indent\n\n\t\t\t// invalid tab size\n\t\t\tif( indent < 0 || indent >= stack.length ) {\n\n\t\t\t\tconst sp = span.span( row, 1, pos - line_start )\n\n\t\t\t\t// skip error line\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( indent < 0 ) {\n\t\t\t\t\tif( str.length > pos ) {\n\t\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t\t`Too few tabs`,\n\t\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\t\tsp,\n\t\t\t\t\t\t) )\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Too many tabs`,\n\t\t\t\t\t\tstr.substring( line_start, pos ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t}\n\n\t\t\tstack.length = indent + 1\n\t\t\tvar parent = stack[ indent ]\n\n\t\t\t// parse types\n\t\t\twhile( str.length > pos && str[ pos ] != '\\\\' && str[ pos ] != '\\n' ) {\n\n\t\t\t\t// type can not contain space and tab\n\t\t\t\tvar error_start = pos\n\t\t\t\twhile( str.length > pos && ( str[ pos ] == ' ' || str[ pos ] == '\\t' ) ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\n\t\t\t\tif( pos > error_start ) {\n\t\t\t\t\tlet line_end = str.indexOf( '\\n' , pos )\n\t\t\t\t\tif( line_end === -1 ) line_end = str.length\n\t\t\t\t\tconst sp = span.span( row, error_start - line_start + 1, pos - error_start )\n\t\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t\t`Wrong nodes separator`,\n\t\t\t\t\t\tstr.substring( line_start, line_end ),\n\t\t\t\t\t\tsp,\n\t\t\t\t\t) )\n\t\t\t\t}\n\n\t\t\t\t// read type\n\t\t\t\tvar type_start = pos\n\t\t\t\twhile( \n\t\t\t\t\tstr.length > pos && \n\t\t\t\t\tstr[ pos ] != '\\\\' && \n\t\t\t\t\tstr[ pos ] != ' ' && \n\t\t\t\t\tstr[ pos ] != '\\t' && \n\t\t\t\t\tstr[ pos ] != '\\n'\n\t\t\t\t) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tif( pos > type_start ) {\n\t\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t\tstr.slice( type_start , pos ),\n\t\t\t\t\t\t'',\n\t\t\t\t\t\t[],\n\t\t\t\t\t\tspan.span( row, type_start - line_start + 1, pos - type_start ),\n\t\t\t\t\t)\n\t\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\t\tparent_kids.push( next )\n\t\t\t\t\tparent = next\n\t\t\t\t}\n\n\t\t\t\t// read one space if exists\n\t\t\t\tif( str.length > pos && str[ pos ] == ' ' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// read data\n\t\t\tif( str.length > pos && str[ pos ] == '\\\\' ) {\n\t\t\t\tvar data_start = pos\n\t\t\t\twhile( str.length > pos && str[ pos ] != '\\n' ) {\n\t\t\t\t\tpos++\n\t\t\t\t}\n\t\t\t\tlet next = new $mol_tree2(\n\t\t\t\t\t'',\n\t\t\t\t\tstr.slice( data_start + 1 , pos ),\n\t\t\t\t\t[],\n\t\t\t\t\tspan.span( row, data_start - line_start + 2, pos - data_start - 1 ),\n\t\t\t\t)\n\t\t\t\tconst parent_kids = parent.kids as $mol_tree2[]\n\t\t\t\tparent_kids.push( next )\n\t\t\t\tparent = next\n\t\t\t}\n\n\t\t\t// now must be end of text\n\t\t\tif( str.length === pos && stack.length > 0 ) {\n\t\t\t\tconst sp = span.span( row, pos - line_start + 1, 1 )\n\t\t\t\tthis.$mol_fail( new this.$mol_error_syntax(\n\t\t\t\t\t`Unexpected EOF, LF required`,\n\t\t\t\t\tstr.substring( line_start, str.length ),\n\t\t\t\t\tsp,\n\t\t\t\t) )\n\t\t\t}\n\n\t\t\tstack.push( parent )\n\t\t\tpos++\n\t\t}\n\n\t\treturn root\n\t}\n\n}\n","namespace $ {\n\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_tree2_from_json( json: any, span = $mol_span.unknown ): $mol_tree2 {\n\n\t\tif( typeof json === 'boolean' || typeof json === 'number' || json === null ) {\n\t\t\treturn new $mol_tree2( String( json ) , '' , [] , span )\n\t\t}\n\t\t\n\t\tif( typeof json === 'string' ) {\n\t\t\treturn $mol_tree2.data( json , [], span )\n\t\t}\n\n\t\tif( Array.isArray( json ) ) {\n\t\t\tconst sub = json.map( json => $mol_tree2_from_json( json , span ) )\n\t\t\treturn new $mol_tree2( '/' , '', sub, span )\n\t\t}\n\t\t\n\t\tif( ArrayBuffer.isView( json ) ) {\n\t\t\tconst buf = new Uint8Array( json.buffer, json.byteOffset, json.byteLength )\n\t\t\treturn $mol_tree2.data( String.fromCharCode( ... buf ) , [], span )\n\t\t}\n\t\t\t\n\t\tif( json instanceof Date ) {\n\t\t\treturn new $mol_tree2( '', json.toISOString() , [] , span )\n\t\t}\n\n\t\tif( typeof json.toJSON === 'function' ) {\n\t\t\treturn $mol_tree2_from_json( json.toJSON() )\n\t\t}\n\n\t\tif( json instanceof Error ) {\n\t\t\tconst { name , message , stack } = json\n\t\t\tjson = { ... json, name, message, stack }\n\t\t}\n\n\t\tconst sub = [] as $mol_tree2[]\n\t\t\n\t\tfor( var key in json ) {\n\n\t\t\tconst val = json[ key ]\n\n\t\t\tif( val === undefined ) continue\n\n\t\t\tconst subsub = $mol_tree2_from_json( val, span )\n\t\t\t\n\t\t\tif( /^[^\\n\\t\\\\ ]+$/.test( key ) ) {\n\t\t\t\tsub.push( new $mol_tree2( key, '', [ subsub ], span ) )\n\t\t\t} else {\n\t\t\t\tsub.push( $mol_tree2.data( key, [ subsub ], span ) )\n\t\t\t}\n\t\t\t\n\t\t}\n\t\t\n\t\treturn new $mol_tree2( '*' , '', sub , span )\n\t\t\t\n\t}\n\n}\n","namespace $ {\n\t$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\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\t$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 $ {\r\n\t$mol_test({\r\n\t\t\r\n\t\t'Wrap & unwrap'() {\r\n\t\t\t\r\n\t\t\tconst val = [1]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val, mut() )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep array'() {\r\n\t\t\t\r\n\t\t\tconst val = [ [1], [2], [3] ]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut[1][0]( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val[0], mut()[0] )\r\n\t\t\t$mol_assert_equal( val[2], mut()[2] )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val[1], mut()[1] )\r\n\t\t\t$mol_assert_like( mut()[1], [-2] )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Array insert'() {\r\n\t\t\t\r\n\t\t\tconst val = [[ 1, 2, 3, 4 ]]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut[0]( a => [ ... a.slice( 0, 2 ), 7, ... a.slice( 2 ) ] ),\r\n\t\t\t\t[ 1, 2, 7, 3, 4 ],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut(),\r\n\t\t\t\t[[ 1, 2, 7, 3, 4 ]],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep objects'() {\r\n\t\t\t\r\n\t\t\tconst val = { a: { x: 1 }, b: { y: 2 }, c: { z: 3 } }\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut.b.y( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val.a, mut().a )\r\n\t\t\t$mol_assert_equal( val.c, mut().c )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val.b, mut().b )\r\n\t\t\t$mol_assert_like( mut().b, { y: -2 } )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t})\r\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mol_mutable",
3
- "version": "0.0.268",
3
+ "version": "0.0.270",
4
4
  "exports": {
5
5
  "node": {
6
6
  "import": "./node.mjs",
package/web.test.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../../type/error/error.ts","../../type/assert/assert.ts","../../type/assert/assert.test.ts","../../type/equals/equals.ts","../../type/equals/equals.test.ts","../../type/immutable/deep/deep/deep.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../promise/like/mol/promise/like/like.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../fail/mol/fail/fail.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../fail/hidden/mol/fail/hidden/hidden.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../test/mol/test/test.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../test/mol/test/test.web.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/context/mol/dom/context/context.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/context/mol/dom/context/context.web.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/render/children/mol/dom/render/children/children.ts","../../type/partial/deep/deep.ts","../../type/partial/deep/deep.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../jsx/mol/jsx/jsx.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../jsx/mol/jsx/jsx.test.tsx","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../compare/deep/mol/compare/deep/deep.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../compare/deep/mol/compare/deep/deep.test.tsx","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../dom/serialize/mol/dom/serialize/serialize.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../assert/mol/assert/assert.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../assert/mol/assert/assert.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../log3/mol/log3/log3.ts","../../type/keys/extract/extract.ts","../../type/keys/extract/extract.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../log3/mol/log3/log3.web.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../log3/mol/log3/log3.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../func/name/mol/func/name/name.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../../func/name/mol/func/name/name.test.ts","/home/runner/work/mam_mol/mam_mol/mol/mutable/-/../mol/mutable/mutable.test.ts"],"names":[],"sourceRoot":"/home/runner/work/mam_mol/mam_mol/mol/mutable/-/","mappings":"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","sourcesContent":[null,null,null,null,null,null,"namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\treturn val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\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\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}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = self as any\n\t\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",null,null,"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 */\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'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\texport let $mol_compare_deep_cache = new WeakMap< any , WeakMap< any , boolean > >()\n\t\n\t/**\n\t * Deeply compares two values. Returns true if equal.\n\t * Define `Symbol.toPrimitive` to customize.\n\t */\n\texport function $mol_compare_deep< Value >( left: Value, right: Value ): boolean {\n\n\t\tif( Object.is( left , right ) ) return true\n\n\t\tif( left === null ) return false\n\t\tif( right === null ) return false\n\n\t\tif( typeof left !== 'object' ) return false\n\t\tif( typeof right !== 'object' ) return false\n\n\t\tconst left_proto = Reflect.getPrototypeOf( left as any )\n\t\tconst right_proto = Reflect.getPrototypeOf( right as any )\n\t\t\n\t\tif( left_proto !== right_proto ) return false\n\n\t\tif( left instanceof Boolean ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Number ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof String ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof Date ) return Object.is( left.valueOf(), right['valueOf']() )\n\t\tif( left instanceof RegExp ) return left.source === (right as any).source && left.flags === (right as any).flags\n\t\tif( left instanceof Error ) return left.message === (right as any).message && left.stack === (right as any).stack\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","/** @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$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\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} ,\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'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'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\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\t\n\t/**\n\t * Argument must be Truthy\n\t * @example\n\t * $mol_assert_ok( 1 ) // Passes\n\t * $mol_assert_ok( 0 ) // Fails because Falsy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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 * @example\n\t * $mol_assert_ok( 0 ) // Passes\n\t * $mol_assert_ok( 1 ) // Fails because Truthy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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( handler : ()=> any , ErrorRight? : any ) {\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\tif( !ErrorRight ) return error\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, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_ok( error instanceof ErrorRight )\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/**\n\t * All arguments must be equal.\n\t * @example\n\t * $mol_assert_equal( 1 , 1 , 1 ) // Passes\n\t * $mol_assert_equal( 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 = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) continue\n\t\t\t\tif( args[i] !== args[j] ) $mol_fail( new Error( `Not equal (${i+1}:${j+1})\\n${ args[i] }\\n${ args[j] }` ) )\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be not 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\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( args[i] === args[j] || ( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) ) {\n\t\t\t\t\t$mol_fail( new Error( `args[${ i }] = args[${ j }] = ${ args[i] }` ) )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be like each other (deep structural comparison).\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_like< Value >( head : Value, ... tail : Value[]) {\n\t\tfor( let [ index, value ] of Object.entries( tail ) ) {\n\n\t\t\tif( !$mol_compare_deep( value , head ) ) {\n\n\t\t\t\tconst print = ( val : any ) => {\n\t\t\t\t\t\n\t\t\t\t\tif( !val ) return val\n\t\t\t\t\tif( typeof val !== 'object' ) return val\n\t\t\t\t\tif( 'outerHTML' in val ) return val.outerHTML\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn JSON.stringify( val )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error( `Not like (1:${ + index + 2 })\\n${ print( head ) }\\n---\\n${ print( value ) }` ) )\n\n\t\t\t}\n\n\t\t}\n\t}\n\t\n\texport function $mol_assert_dom( left: Element, right: Element ) {\n\t\t$mol_assert_equal( $mol_dom_serialize( left ), $mol_dom_serialize( right ) )\n\t}\n\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( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\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",null,null,"namespace $ {\n\n\texport function $mol_log3_web_make(\n\t\tlevel : $mol_type_keys_extract< Console, Function >,\n\t\tcolor : 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\tconst pending = this.$mol_log3_stack.pop()\n\t\t\tif( pending ) pending()\n\n\t\t\tlet tpl = '%c'\n\t\t\tconst chunks = Object.values( event )\n\n\t\t\tfor( let i = 0 ; i < chunks.length ; ++i ) {\n\t\t\t\ttpl += ( typeof chunks[i] === 'string' ) ? ' ⦙ %s' : ' ⦙ %o'\n\t\t\t}\n\t\n\t\t\tconst style = `color:${color};font-weight:bolder`\n\n\t\t\t;( this.console[ level ] as any )( tpl , style , ... chunks )\n\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_web_make( 'info' , 'royalblue' )\n\t$.$mol_log3_done = $mol_log3_web_make( 'info' , 'forestgreen' )\n\t$.$mol_log3_fail = $mol_log3_web_make( 'error' , 'orangered' )\n\t$.$mol_log3_warn = $mol_log3_web_make( 'warn' , 'goldenrod' )\n\t$.$mol_log3_rise = $mol_log3_web_make( 'log' , 'magenta' )\n\t$.$mol_log3_area = $mol_log3_web_make( 'group' , 'cyan' )\n\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\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\t$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 $ {\r\n\t$mol_test({\r\n\t\t\r\n\t\t'Wrap & unwrap'() {\r\n\t\t\t\r\n\t\t\tconst val = [1]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val, mut() )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep array'() {\r\n\t\t\t\r\n\t\t\tconst val = [ [1], [2], [3] ]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut[1][0]( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val[0], mut()[0] )\r\n\t\t\t$mol_assert_equal( val[2], mut()[2] )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val[1], mut()[1] )\r\n\t\t\t$mol_assert_like( mut()[1], [-2] )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Array insert'() {\r\n\t\t\t\r\n\t\t\tconst val = [[ 1, 2, 3, 4 ]]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut[0]( a => [ ... a.slice( 0, 2 ), 7, ... a.slice( 2 ) ] ),\r\n\t\t\t\t[ 1, 2, 7, 3, 4 ],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut(),\r\n\t\t\t\t[[ 1, 2, 7, 3, 4 ]],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep objects'() {\r\n\t\t\t\r\n\t\t\tconst val = { a: { x: 1 }, b: { y: 2 }, c: { z: 3 } }\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut.b.y( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val.a, mut().a )\r\n\t\t\t$mol_assert_equal( val.c, mut().c )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val.b, mut().b )\r\n\t\t\t$mol_assert_like( mut().b, { y: -2 } )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t})\r\n}"]}
1
+ {"version":3,"sources":["../../../mol/promise/like/like.ts","../../../mol/fail/fail.ts","../../../mol/fail/hidden/hidden.ts","../../../mol/test/test.test.ts","../../../mol/test/test.web.test.ts","../../../mol/dom/context/context.ts","../../../mol/dom/context/context.web.ts","../../../mol/dom/render/children/children.ts","../../../mol/jsx/jsx.ts","../../../mol/jsx/jsx.test.tsx","../../../mol/compare/deep/deep.ts","../../../mol/compare/deep/deep.test.tsx","../../../mol/dom/serialize/serialize.ts","../../../mol/assert/assert.ts","../../../mol/assert/assert.test.ts","../../../mol/log3/log3.ts","../../../mol/log3/log3.web.ts","../../../mol/log3/log3.test.ts","../../../mol/func/name/name.ts","../../../mol/func/name/name.test.ts","../../../mol/mutable/mutable.test.ts"],"names":[],"sourceRoot":"../../../","mappings":"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","sourcesContent":["namespace $ {\n\t\n\texport function $mol_promise_like( val: any ): val is Promise<any> {\n\t\treturn val && typeof val.then === 'function'\n\t}\n\n}\n","namespace $ {\n\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\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}\n\t\n}\n","namespace $ {\n\t\n\texport var $mol_dom_context : typeof globalThis\n\t\n}\n","namespace $ {\n\t\n\t$.$mol_dom_context = self as any\n\t\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 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 */\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'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\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 && left.stack === (right as any).stack\n\n\t\tlet left_cache = $mol_compare_deep_cache.get( left )\n\t\tif( left_cache ) {\n\n\t\t\tconst right_cache = left_cache.get( right )\n\t\t\tif( typeof right_cache === 'boolean' ) return right_cache\n\n\t\t} else {\n\t\t\t\n\t\t\tleft_cache = new WeakMap< any , boolean >([[ right, true ]])\n\t\t\t$mol_compare_deep_cache.set( left , left_cache )\n\n\t\t}\n\n\t\tlet result!: boolean\n\n\t\ttry {\n\t\t\t\n\t\t\tif( !left_proto ) result = compare_pojo( left, right as any )\n\t\t\telse if( !Reflect.getPrototypeOf( left_proto ) ) result = compare_pojo( left, right as any )\n\t\t\telse if( Array.isArray( left ) ) result = compare_array( left, right as any )\n\t\t\telse if( left instanceof Set ) result = compare_set( left, right as any )\n\t\t\telse if( left instanceof Map ) result = compare_map( left, right as any )\n\t\t\telse if( ArrayBuffer.isView( left ) ) result = compare_buffer( left, right as any )\n\t\t\telse if( Symbol.iterator in left ) result = compare_iterator( ( left as any )[ Symbol.iterator ](), ( right as any )[ Symbol.iterator ]() )\n\t\t\telse if( Symbol.toPrimitive in left ) result = compare_primitive( left, right )\n\t\t\telse result = false\n\n\t\t} finally {\n\t\t\tleft_cache.set( right , result )\n\t\t}\n\t\t\n\t\treturn result\n\t}\n\n\tfunction compare_array< Value extends any[] >( left: Value, right: Value ): boolean {\n\t\t\n\t\tconst len = left.length\n\t\tif( len !== right.length ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( !$mol_compare_deep( left[i] , right[i] ) ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_buffer( left: ArrayBufferView, right: ArrayBufferView ): boolean {\n\t\t\n\t\tconst len = left.byteLength\n\t\tif( len !== right.byteLength ) return false\n\t\t\n\t\tfor( let i = 0; i < len; ++i ) {\n\t\t\tif( (left as any)[i] !== (right as any)[i] ) return false\n\t\t}\n\t\t\n\t\treturn true\n\t}\n\t\n\tfunction compare_iterator< Value extends IterableIterator<any> >(\n\t\tleft: Value,\n\t\tright: Value,\n\t): boolean {\n\t\t\n\t\twhile( true ) {\n\n\t\t\tconst left_next = left.next()\n\t\t\tconst right_next = right.next()\n\n\t\t\tif( left_next.done !== right_next.done ) return false\n\t\t\tif( left_next.done ) break\n\n\t\t\tif( !$mol_compare_deep( left_next.value , right_next.value ) ) return false\n\n\t\t}\n\n\t\treturn true\n\n\t}\n\t\n\tfunction compare_set< Value extends Set<any> >( left: Value, right: Value ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_map< Key, Value >( left: Map< Key, Value > , right: Map< Key, Value > ): boolean {\n\t\tif( left.size !== right.size ) return false\n\t\treturn compare_iterator( left.keys(), right.keys() )\n\t\t\t&& compare_iterator( left.values(), right.values() )\n\t}\n\t\n\tfunction compare_pojo( left: {}, right: {} ): boolean {\n\t\t\n\t\tconst left_keys = Object.getOwnPropertyNames( left )\n\t\tconst right_keys = Object.getOwnPropertyNames( right )\n\t\t\n\t\tif( !compare_array( left_keys, right_keys ) ) return false\n\n\t\tfor( let key of left_keys ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\tconst left_syms = Object.getOwnPropertySymbols( left )\n\t\tconst right_syms = Object.getOwnPropertySymbols( right )\n\t\t\n\t\tif( !compare_array( left_syms, right_syms ) ) return false\n\n\t\tfor( let key of left_syms ) {\n\t\t\tif( !$mol_compare_deep( ( left as any )[ key ], ( right as any )[ key ] ) ) return false\n\t\t}\n\n\t\treturn true\n\t}\n\t\n\tfunction compare_primitive( left: {}, right: {} ): boolean {\n\t\treturn Object.is(\n\t\t\t(left as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t\t(right as any)[ Symbol.toPrimitive ]( 'default' ),\n\t\t)\n\t}\n\t\n}\n","/** @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$mol_assert_ok( $mol_compare_deep( [] , [] ) )\n\t\t\t$mol_assert_ok( $mol_compare_deep( [ 1 , [2] ] , [ 1 , [2] ] ) )\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} ,\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'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'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\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\t\n\t/**\n\t * Argument must be Truthy\n\t * @example\n\t * $mol_assert_ok( 1 ) // Passes\n\t * $mol_assert_ok( 0 ) // Fails because Falsy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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 * @example\n\t * $mol_assert_ok( 0 ) // Passes\n\t * $mol_assert_ok( 1 ) // Fails because Truthy\n\t * @see https://mol.hyoo.ru/#!section=docs/=9q9dv3_fgxjsf\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( handler : ()=> any , ErrorRight? : any ) {\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\tif( !ErrorRight ) return error\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, ErrorRight )\n\t\t\t} else {\n\t\t\t\t$mol_assert_ok( error instanceof ErrorRight )\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/**\n\t * All arguments must be equal.\n\t * @example\n\t * $mol_assert_equal( 1 , 1 , 1 ) // Passes\n\t * $mol_assert_equal( 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 = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) continue\n\t\t\t\tif( args[i] !== args[j] ) $mol_fail( new Error( `Not equal (${i+1}:${j+1})\\n${ args[i] }\\n${ args[j] }` ) )\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be not 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\tfor( let i = 0 ; i < args.length ; ++i ) {\n\t\t\tfor( let j = 0 ; j < args.length ; ++j ) {\n\t\t\t\tif( i === j ) continue\n\t\t\t\tif( args[i] === args[j] || ( Number.isNaN( args[i] as any as number ) && Number.isNaN( args[j] as any as number ) ) ) {\n\t\t\t\t\t$mol_fail( new Error( `args[${ i }] = args[${ j }] = ${ args[i] }` ) )\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\t/**\n\t * All arguments must be like each other (deep structural comparison).\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_like< Value >( head : Value, ... tail : Value[]) {\n\t\tfor( let [ index, value ] of Object.entries( tail ) ) {\n\n\t\t\tif( !$mol_compare_deep( value , head ) ) {\n\n\t\t\t\tconst print = ( val : any ) => {\n\t\t\t\t\t\n\t\t\t\t\tif( !val ) return val\n\t\t\t\t\tif( typeof val !== 'object' ) return val\n\t\t\t\t\tif( 'outerHTML' in val ) return val.outerHTML\n\t\t\t\t\t\n\t\t\t\t\ttry {\n\t\t\t\t\t\treturn JSON.stringify( val )\n\t\t\t\t\t} catch( error: any ) {\n\t\t\t\t\t\tconsole.error( error )\n\t\t\t\t\t\treturn val\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\treturn $mol_fail( new Error( `Not like (1:${ + index + 2 })\\n${ print( head ) }\\n---\\n${ print( value ) }` ) )\n\n\t\t\t}\n\n\t\t}\n\t}\n\t\n\texport function $mol_assert_dom( left: Element, right: Element ) {\n\t\t$mol_assert_equal( $mol_dom_serialize( left ), $mol_dom_serialize( right ) )\n\t}\n\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( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be unique'() {\n\t\t\t$mol_assert_unique( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'two must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t\t'three must be alike'() {\n\t\t\t$mol_assert_like( [ 3 ] , [ 3 ] , [ 3 ] )\n\t\t} ,\n\t\t\n\t} )\n}\n","namespace $ {\n\n\t/** Logger event data */\n\texport type $mol_log3_event< Fields > = {\n\t\t[ key in string ] : unknown\n\t} & {\n\t\t\n\t\t/** Time of event creation */\n\t\ttime? : string\n\n\t\t/** Place of event creation */\n\t\tplace : unknown\n\n\t\t/** Short description of event */\n\t\tmessage : string\n\n\t} & Fields\n\n\t/** Logger function */\n\texport type $mol_log3_logger< Fields , Res = void > = (\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event< Fields > ,\n\t)=> Res\n\n\t/** Log begin of some task */\n\texport declare let $mol_log3_come : $mol_log3_logger<{}>\n\t\n\t/** Log end of some task */\n\texport declare let $mol_log3_done : $mol_log3_logger<{}>\n\t\n\t/** Log error */\n\texport declare let $mol_log3_fail : $mol_log3_logger<{}>\n\t\n\t/** Log warning message */\n\texport declare let $mol_log3_warn : $mol_log3_logger<{ hint : string }>\n\t\n\t/** Log some generic event */\n\texport declare let $mol_log3_rise : $mol_log3_logger<{}>\n\n\t/** Log begin of log group, returns func to close group */\n\texport declare let $mol_log3_area : $mol_log3_logger< {} , ()=> void >\n\n\t/** Log begin of collapsed group only when some logged inside, returns func to close group */\n\texport function $mol_log3_area_lazy(\n\t\tthis : $ ,\n\t\tevent : $mol_log3_event<{}> ,\n\t) {\n\n\t\tconst self = this\n\t\tconst stack = self.$mol_log3_stack\n\n\t\tconst deep = stack.length\n\t\tlet logged = false\n\n\t\tstack.push( ()=> {\n\t\t\tlogged = true\n\t\t\tself.$mol_log3_area.call( self , event )\n\t\t} )\n\n\t\treturn ()=> {\n\t\t\tif( logged ) self.console.groupEnd()\n\t\t\tif( stack.length > deep ) stack.length = deep\n\t\t}\n\n\t}\n\n\texport let $mol_log3_stack = [] as ( ()=> void )[]\n\n}\n","namespace $ {\n\n\texport function $mol_log3_web_make(\n\t\tlevel : $mol_type_keys_extract< Console, Function >,\n\t\tcolor : 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\tconst pending = this.$mol_log3_stack.pop()\n\t\t\tif( pending ) pending()\n\n\t\t\tlet tpl = '%c'\n\t\t\tconst chunks = Object.values( event )\n\n\t\t\tfor( let i = 0 ; i < chunks.length ; ++i ) {\n\t\t\t\ttpl += ( typeof chunks[i] === 'string' ) ? ' ⦙ %s' : ' ⦙ %o'\n\t\t\t}\n\t\n\t\t\tconst style = `color:${color};font-weight:bolder`\n\n\t\t\t;( this.console[ level ] as any )( tpl , style , ... chunks )\n\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_web_make( 'info' , 'royalblue' )\n\t$.$mol_log3_done = $mol_log3_web_make( 'info' , 'forestgreen' )\n\t$.$mol_log3_fail = $mol_log3_web_make( 'error' , 'orangered' )\n\t$.$mol_log3_warn = $mol_log3_web_make( 'warn' , 'goldenrod' )\n\t$.$mol_log3_rise = $mol_log3_web_make( 'log' , 'magenta' )\n\t$.$mol_log3_area = $mol_log3_web_make( 'group' , 'cyan' )\n\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\n\tconst named = new WeakSet< Function >()\n\t\n\texport function $mol_func_name( this : $ , func : Function ) : string {\n\t\t\n\t\tlet name = func.name\n\t\tif( name?.length > 1 ) return name\n\t\tif( named.has( func ) ) return name\n\n\t\tfor( let key in this ) {\n\t\t\ttry {\n\t\t\t\tif( (this as any)[ key ] !== func ) continue\n\t\t\t\tname = key\n\t\t\t\tObject.defineProperty( func , 'name' , { value : name } )\n\t\t\t\tbreak\n\t\t\t} catch {}\n\t\t}\n\n\t\tnamed.add( func )\n\t\treturn name\n\t\t\n\t}\n\n\texport function $mol_func_name_from< Target extends Function >( target : Target , source : Function ) {\n\t\tObject.defineProperty( target , 'name' , { value : source.name } )\n\t\treturn target\n\t}\n\n}\n","namespace $ {\n\n\t$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 $ {\r\n\t$mol_test({\r\n\t\t\r\n\t\t'Wrap & unwrap'() {\r\n\t\t\t\r\n\t\t\tconst val = [1]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val, mut() )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep array'() {\r\n\t\t\t\r\n\t\t\tconst val = [ [1], [2], [3] ]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut[1][0]( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val[0], mut()[0] )\r\n\t\t\t$mol_assert_equal( val[2], mut()[2] )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val[1], mut()[1] )\r\n\t\t\t$mol_assert_like( mut()[1], [-2] )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Array insert'() {\r\n\t\t\t\r\n\t\t\tconst val = [[ 1, 2, 3, 4 ]]\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut[0]( a => [ ... a.slice( 0, 2 ), 7, ... a.slice( 2 ) ] ),\r\n\t\t\t\t[ 1, 2, 7, 3, 4 ],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t\t$mol_assert_like(\r\n\t\t\t\tmut(),\r\n\t\t\t\t[[ 1, 2, 7, 3, 4 ]],\r\n\t\t\t)\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t\t'Deep objects'() {\r\n\t\t\t\r\n\t\t\tconst val = { a: { x: 1 }, b: { y: 2 }, c: { z: 3 } }\r\n\t\t\tconst mut = $mol_mutable( val )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( mut.b.y( v => -v ), -2 )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val, mut() )\r\n\t\t\t\r\n\t\t\t$mol_assert_equal( val.a, mut().a )\r\n\t\t\t$mol_assert_equal( val.c, mut().c )\r\n\t\t\t\r\n\t\t\t$mol_assert_unique( val.b, mut().b )\r\n\t\t\t$mol_assert_like( mut().b, { y: -2 } )\r\n\t\t\t\r\n\t\t},\r\n\t\t\r\n\t})\r\n}"]}