OCaml HTML5 parser/serialiser based on Python's JustHTML
1(function(a){typeof
2globalThis!=="object"&&(this?b():(a.defineProperty(a.prototype,"_T_",{configurable:true,get:b}),_T_));function
3b(){var
4b=this||self;b.globalThis=b;delete
5a.prototype._T_}}(Object));($=>async a=>{"use strict";const{link:k,src:Y,generated:M,disable_effects:J}=a,h=globalThis.process?.versions?.node,U={cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,cosh:Math.cosh,sinh:Math.sinh,tanh:Math.tanh,acosh:Math.acosh,asinh:Math.asinh,atanh:Math.atanh,cbrt:Math.cbrt,exp:Math.exp,expm1:Math.expm1,log:Math.log,log1p:Math.log1p,log2:Math.log2,log10:Math.log10,atan2:Math.atan2,hypot:Math.hypot,pow:Math.pow,fmod:(a,b)=>a%b},z=[Float32Array,Float64Array,Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Int32Array,Int32Array,Int32Array,Float32Array,Float64Array,Uint8Array,Uint16Array,Uint8ClampedArray],f=h&&require("node:fs"),b=f?.constants,A=f?[b.R_OK,b.W_OK,b.X_OK,b.F_OK]:[],V=f?[b.O_RDONLY,b.O_WRONLY,b.O_RDWR,b.O_APPEND,b.O_CREAT,b.O_TRUNC,b.O_EXCL,b.O_NONBLOCK,b.O_NOCTTY,b.O_DSYNC,b.O_SYNC]:[];var
6e={map:new
7WeakMap(),set:new
8Set(),finalization:new
9FinalizationRegistry(a=>e.set.delete(a))};function
10X(a){const
11b=new
12WeakRef(a);e.map.set(a,b);e.set.add(b);e.finalization.register(a,b,a)}function
13Z(a){const
14b=e.map.get(a);if(b){e.map.delete(a);e.set.delete(b);e.finalization.unregister(a)}}function
15I(){return[...e.set].map(a=>a.deref()).filter(a=>a)}var
16y;function
17T(a){return WebAssembly?.Suspending?new
18WebAssembly.Suspending(a):a}function
19v(a){return!J&&WebAssembly?.promising&&a?WebAssembly.promising(a):a}const
20o=new
21TextDecoder("utf-8",{ignoreBOM:1}),K=new
22TextEncoder();function
23N(a,b){b=Math.imul(b,0xcc9e2d51|0);b=b<<15|b>>>17;b=Math.imul(b,0x1b873593);a^=b;a=a<<13|a>>>19;return(a+(a<<2)|0)+(0xe6546b64|0)|0}function
24O(a,b){for(var
25c=0;c<b.length;c++)a=N(a,b.charCodeAt(c));return a^b.length}function
26u(a){if(h&&globalThis.process.env[a]!==undefined)return globalThis.process.env[a];return globalThis.jsoo_env?.[a]}let
27l=0;for(const
28a
29of
30u("OCAMLRUNPARAM")?.split(",")||[]){if(a==="b")l=1;if(a.startsWith("b="))l=+a.slice(2)?1:0}function
31n(a,b){var
32c;if(a.isFile())c=0;else if(a.isDirectory())c=1;else if(a.isCharacterDevice())c=2;else if(a.isBlockDevice())c=3;else if(a.isSymbolicLink())c=4;else if(a.isFIFO())c=5;else if(a.isSocket())c=6;return E(b,a.dev,a.ino|0,c,a.mode,a.nlink,a.uid,a.gid,a.rdev,BigInt(a.size),a.atimeMs/1000,a.mtimeMs/1000,a.ctimeMs/1000)}const
33w=h&&globalThis.process.platform==="win32",d=Function.prototype.call,c=DataView.prototype,B={jstag:WebAssembly.JSTag||new
34WebAssembly.Tag({parameters:["externref"],results:[]}),identity:a=>a,from_bool:a=>!!a,get:(a,b)=>a[b],set:(a,b,c)=>a[b]=c,delete:(a,b)=>delete
35a[b],instanceof:(a,b)=>a
36instanceof
37b,typeof:a=>typeof
38a,equals:(a,b)=>a==b,strict_equals:(a,b)=>a===b,fun_call:(a,b,c)=>a.apply(b,c),meth_call:(a,b,c)=>a[b].apply(a,c),new_array:a=>new
39Array(a),new_obj:()=>({}),new:(a,b)=>new
40a(...b),global_this:globalThis,iter_props:(a,b)=>{for(var
41c
42in
43a)if(Object.hasOwn(a,c))b(c)},array_length:a=>a.length,array_get:(a,b)=>a[b],array_set:(a,b,c)=>a[b]=c,read_string:a=>o.decode(new
44Uint8Array(j,0,a)),read_string_stream:(a,b)=>o.decode(new
45Uint8Array(j,0,a),{stream:b}),append_string:(a,b)=>a+b,write_string:a=>{var
46c=0,b=a.length;for(;;){const{read:d,written:e}=K.encodeInto(a.slice(c),W);b-=d;if(!b)return e;G(e);c+=d}},ta_create:(a,b)=>new
47z[a](b),ta_normalize:a=>a
48instanceof
49Uint32Array?new
50Int32Array(a.buffer,a.byteOffset,a.length):a,ta_kind:b=>z.findIndex(a=>b
51instanceof
52a),ta_length:a=>a.length,ta_get_i32:(a,b)=>a[b],ta_fill:(a,b)=>a.fill(b),ta_blit:(a,b)=>b.set(a),ta_subarray:(a,b,c)=>a.subarray(b,c),ta_set:(a,b,c)=>a.set(b,c),ta_new:a=>new
53Uint8Array(a),ta_copy:(a,b,c,d)=>a.copyWithin(b,c,d),ta_bytes:a=>new
54Uint8Array(a.buffer,a.byteOffset,a.length*a.BYTES_PER_ELEMENT),ta_blit_from_bytes:(a,b,c,d,e)=>{for(let
55f=0;f<e;f++)c[d+f]=C(a,b+f)},ta_blit_to_bytes:(a,b,c,d,e)=>{for(let
56f=0;f<e;f++)D(c,d+f,a[b+f])},dv_make:a=>new
57DataView(a.buffer,a.byteOffset,a.byteLength),dv_get_f64:d.bind(c.getFloat64),dv_get_f32:d.bind(c.getFloat32),dv_get_i64:d.bind(c.getBigInt64),dv_get_i32:d.bind(c.getInt32),dv_get_i16:d.bind(c.getInt16),dv_get_ui16:d.bind(c.getUint16),dv_get_i8:d.bind(c.getInt8),dv_get_ui8:d.bind(c.getUint8),dv_set_f64:d.bind(c.setFloat64),dv_set_f32:d.bind(c.setFloat32),dv_set_i64:d.bind(c.setBigInt64),dv_set_i32:d.bind(c.setInt32),dv_set_i16:d.bind(c.setInt16),dv_set_i8:d.bind(c.setInt8),littleEndian:new
58Uint8Array(new
59Uint32Array([1]).buffer)[0],wrap_callback:b=>function(...a){if(a.length===0)a=[undefined];return g(b,a.length,a,1)},wrap_callback_args:b=>function(...a){return g(b,1,[a],0)},wrap_callback_strict:(c,b)=>function(...a){a.length=c;return g(b,c,a,0)},wrap_callback_unsafe:b=>function(...a){return g(b,a.length,a,2)},wrap_meth_callback:b=>function(...a){a.unshift(this);return g(b,a.length,a,1)},wrap_meth_callback_args:b=>function(...a){return g(b,2,[this,a],0)},wrap_meth_callback_strict:(c,b)=>function(...a){a.length=c;a.unshift(this);return g(b,a.length,a,0)},wrap_meth_callback_unsafe:b=>function(...a){a.unshift(this);return g(b,a.length,a,2)},wrap_fun_arguments:b=>function(...a){return b(a)},format_float:(a,b,c,d)=>{function
60j(a,b){if(Math.abs(a)<1.0)return a.toFixed(b);else{var
61c=Number.parseInt(a.toString().split("+")[1]);if(c>20){c-=20;a/=Math.pow(10,c);a+=new
62Array(c+1).join("0");if(b>0)a=a+"."+new
63Array(b+1).join("0");return a}else
64return a.toFixed(b)}}switch(b){case
650:var
66e=d.toExponential(a),f=e.length;if(e.charAt(f-3)==="e")e=e.slice(0,f-1)+"0"+e.slice(f-1);break;case
671:e=j(d,a);break;case
682:a=a?a:1;e=d.toExponential(a-1);var
69i=e.indexOf("e"),h=+e.slice(i+1);if(h<-4||d>=1e21||d.toFixed(0).length>a){var
70f=i-1;while(e.charAt(f)==="0")f--;if(e.charAt(f)===".")f--;e=e.slice(0,f+1)+e.slice(i);f=e.length;if(e.charAt(f-3)==="e")e=e.slice(0,f-1)+"0"+e.slice(f-1);break}else{var
71g=a;if(h<0){g-=h+1;e=d.toFixed(g)}else
72while(e=d.toFixed(g),e.length>a+1)g--;if(g){var
73f=e.length-1;while(e.charAt(f)==="0")f--;if(e.charAt(f)===".")f--;e=e.slice(0,f+1)}}break}return c?" "+e:e},gettimeofday:()=>new
74Date().getTime()/1000,times:()=>{if(globalThis.process?.cpuUsage){var
75a=globalThis.process.cpuUsage();return q(a.user/1e6,a.system/1e6)}else{var
76a=performance.now()/1000;return q(a,a)}},gmtime:a=>{var
77b=new
78Date(a*1000),c=b.getTime(),e=new
79Date(Date.UTC(b.getUTCFullYear(),0,1)).getTime(),d=Math.floor((c-e)/86400000);return r(b.getUTCSeconds(),b.getUTCMinutes(),b.getUTCHours(),b.getUTCDate(),b.getUTCMonth(),b.getUTCFullYear()-1900,b.getUTCDay(),d,false)},localtime:a=>{var
80b=new
81Date(a*1000),c=b.getTime(),f=new
82Date(b.getFullYear(),0,1).getTime(),d=Math.floor((c-f)/86400000),e=new
83Date(b.getFullYear(),0,1),g=new
84Date(b.getFullYear(),6,1),h=Math.max(e.getTimezoneOffset(),g.getTimezoneOffset());return r(b.getSeconds(),b.getMinutes(),b.getHours(),b.getDate(),b.getMonth(),b.getFullYear()-1900,b.getDay(),d,b.getTimezoneOffset()<h)},mktime:(a,b,c,d,e,f)=>new
85Date(a,b,c,d,e,f).getTime(),random_seed:()=>crypto.getRandomValues(new
86Int32Array(12)),access:(a,d)=>f.accessSync(a,A.reduce((a,b,c)=>d&1<<c?a|b:a,0)),open:(a,d,c)=>f.openSync(a,V.reduce((a,b,c)=>d&1<<c?a|b:a,0),c),close:a=>f.closeSync(a),write:(a,b,c,d,e)=>f?f.writeSync(a,b,c,d,e===null?e:Number(e)):(console[a===2?"error":"log"](typeof
87b==="string"?b:o.decode(b.slice(c,c+d))),d),read:(a,b,c,d,e)=>f.readSync(a,b,c,d,e),fsync:a=>f.fsyncSync(a),file_size:a=>f.fstatSync(a,{bigint:true}).size,register_channel:X,unregister_channel:Z,channel_list:I,exit:a=>h&&globalThis.process.exit(a),argv:()=>h?globalThis.process.argv.slice(1):["a.out"],on_windows:+w,getenv:u,backtrace_status:()=>l,record_backtrace:a=>l=a,system:a=>{var
88b=require("node:child_process").spawnSync(a,{shell:true,stdio:"inherit"});if(b.error)throw b.error;return b.signal?255:b.status},isatty:a=>+require("node:tty").isatty(a),time:()=>performance.now(),getcwd:()=>h?globalThis.process.cwd():"/static",chdir:a=>globalThis.process.chdir(a),mkdir:(a,b)=>f.mkdirSync(a,b),rmdir:a=>f.rmdirSync(a),link:(a,b)=>f.linkSync(a,b),symlink:(a,b,c)=>f.symlinkSync(a,b,[null,"file","dir"][c]),readlink:a=>f.readlinkSync(a),unlink:a=>f.unlinkSync(a),read_dir:a=>f.readdirSync(a),opendir:a=>f.opendirSync(a),readdir:a=>{var
89b=a.readSync()?.name;return b===undefined?null:b},closedir:a=>a.closeSync(),stat:(a,b)=>n(f.statSync(a),b),lstat:(a,b)=>n(f.lstatSync(a),b),fstat:(a,b)=>n(f.fstatSync(a),b),chmod:(a,b)=>f.chmodSync(a,b),fchmod:(a,b)=>f.fchmodSync(a,b),file_exists:a=>+f.existsSync(a),is_directory:a=>+f.lstatSync(a).isDirectory(),is_file:a=>+f.lstatSync(a).isFile(),utimes:(a,b,c)=>f.utimesSync(a,b,c),truncate:(a,b)=>f.truncateSync(a,b),ftruncate:(a,b)=>f.ftruncateSync(a,b),rename:(a,b)=>{var
90c;if(w&&(c=f.statSync(b,{throwIfNoEntry:false}))&&f.statSync(a,{throwIfNoEntry:false})?.isDirectory())if(c.isDirectory()){if(!b.startsWith(a))try{f.rmdirSync(b)}catch{}}else{var
91d=new
92Error(`ENOTDIR: not a directory, rename '${a}' -> '${b}'`);throw Object.assign(d,{errno:-20,code:"ENOTDIR",syscall:"rename",path:b})}f.renameSync(a,b)},tmpdir:()=>require("node:os").tmpdir(),start_fiber:a=>y(a),suspend_fiber:T((c,b)=>new
93Promise(a=>c(a,b))),resume_fiber:(a,b)=>a(b),weak_new:a=>new
94WeakRef(a),weak_deref:a=>{var
95b=a.deref();return b===undefined?null:b},weak_map_new:()=>new
96WeakMap(),map_new:()=>new
97Map(),map_get:(a,b)=>{var
98c=a.get(b);return c===undefined?null:c},map_set:(a,b,c)=>a.set(b,c),map_delete:(a,b)=>a.delete(b),hash_string:O,log:a=>console.log(a)},p={test:a=>+(typeof
99a==="string"),compare:(a,b)=>a<b?-1:+(a>b),decodeStringFromUTF8Array:()=>"",encodeStringToUTF8Array:()=>0,fromCharCodeArray:()=>""},i=Object.assign({Math:U,bindings:B,js:$,"wasm:js-string":p,"wasm:text-decoder":p,"wasm:text-encoder":p,str:new
100globalThis.Proxy({},{get(a,b){return b}}),env:{}},M),x={builtins:["js-string","text-decoder","text-encoder"],importedStringConstants:"str"};function
101S(a){const
102b=require("node:path"),c=b.join(b.dirname(require.main.filename),a);return require("node:fs/promises").readFile(c)}const
103t=globalThis?.document?.currentScript?.src;function
104L(a){const
105b=t?new
106URL(a,t):a;return fetch(b)}const
107R=h?S:L;async function
108Q(a){return h?WebAssembly.instantiate(await
109a,i,x):WebAssembly.instantiateStreaming(a,i,x)}async function
110P(){i.OCaml={};const
111c=[];async function
112b(a,b){const
113f=a[1].constructor!==Array;async function
114e(){const
115d=R(Y+"/"+a[0]+".wasm");await
116Promise.all(f?c:a[1].map(a=>c[a]));const
117e=await
118Q(d);Object.assign(b?i.env:i.OCaml,e.instance.exports)}const
119d=e();c.push(d);return d}async function
120a(a){for(const
121c
122of
123a)await
124b(c)}await
125b(k[0],1);if(k.length>1){await
126b(k[1]);const
127c=new
128Array(20).fill(k.slice(2).values()).map(a);await
129Promise.all(c)}return{instance:{exports:Object.assign(i.env,i.OCaml)}}}const
130_=await
131P();var{caml_callback:g,caml_alloc_times:q,caml_alloc_tm:r,caml_alloc_stat:E,caml_start_fiber:H,caml_handle_uncaught_exception:s,caml_buffer:F,caml_extract_bytes:G,bytes_get:C,bytes_set:D,_initialize:m}=_.instance.exports,j=F?.buffer,W=j&&new
132Uint8Array(j,0,j.length);y=v(H);var
133m=v(m);if(globalThis.process?.on)globalThis.process.on("uncaughtException",(a,b)=>s(a));else if(globalThis.addEventListener)globalThis.addEventListener("error",a=>a.error&&s(a.error));await
134m()})(function(a){"use strict";return{}}(globalThis))({"link":[["code-e7e41522f404e3a879d6",0]],"generated":(a=>{var
135b=a,c=a?.module?.export||a;return{"fragments":{"fun_call_1":(a,b)=>a(b),"get_Array":a=>a.Array,"get_ArrayBuffer":a=>a.ArrayBuffer,"get_Blob":a=>a.Blob,"get_CustomEvent":a=>a.CustomEvent,"get_DataView":a=>a.DataView,"get_Error":a=>a.Error,"get_Event":a=>a.Event,"get_File":a=>a.File,"get_JSON":a=>a.JSON,"get_Number":a=>a.Number,"get_Promise":a=>a.Promise,"get_Range":a=>a.Range,"get_RegExp":a=>a.RegExp,"get_URL":a=>a.URL,"get_URLSearchParams":a=>a.URLSearchParams,"get_Worker":a=>a.Worker,"get_addClasses":a=>a.addClasses,"get_addDataAttrs":a=>a.addDataAttrs,"get_annotation":a=>a.annotation,"get_attribute":a=>a.attribute,"get_body":a=>a.body,"get_childNodes":a=>a.childNodes,"get_children":a=>a.children,"get_classList":a=>a.classList,"get_clickToHighlight":a=>a.clickToHighlight,"get_collapsible":a=>a.collapsible,"get_column":a=>a.column,"get_console":a=>a.console,"get_data":a=>a.data,"get_decodeURI":a=>a.decodeURI,"get_decodeURIComponent":a=>a.decodeURIComponent,"get_document":a=>a.document,"get_documentElement":a=>a.documentElement,"get_draggable":a=>a.draggable,"get_element":a=>a.element,"get_elementName":a=>a.elementName,"get_encodeURI":a=>a.encodeURI,"get_encodeURIComponent":a=>a.encodeURIComponent,"get_errorCount":a=>a.errorCount,"get_filename":a=>a.filename,"get_firstChild":a=>a.firstChild,"get_groupBySeverity":a=>a.groupBySeverity,"get_head":a=>a.head,"get_highlightOnHover":a=>a.highlightOnHover,"get_id":a=>a.id,"get_initialPosition":a=>a.initialPosition,"get_isSecureContext":a=>a.isSecureContext,"get_length":a=>a.length,"get_line":a=>a.line,"get_lineno":a=>a.lineno,"get_maxHeight":a=>a.maxHeight,"get_message":a=>a.message,"get_navigator":a=>a.navigator,"get_nodeName":a=>a.nodeName,"get_nodeType":a=>a.nodeType,"get_outerHTML":a=>a.outerHTML,"get_ownerDocument":a=>a.ownerDocument,"get_panel":a=>a.panel,"get_parentNode":a=>a.parentNode,"get_performance":a=>a.performance,"get_readyState":a=>a.readyState,"get_relatedTarget":a=>a.relatedTarget,"get_requestIdleCallback":a=>a.requestIdleCallback,"get_resizable":a=>a.resizable,"get_selector":a=>a.selector,"get_severity":a=>a.severity,"get_showSelectorPath":a=>a.showSelectorPath,"get_showTooltips":a=>a.showTooltips,"get_startCollapsed":a=>a.startCollapsed,"get_style":a=>a.style,"get_theme":a=>a.theme,"get_warningCount":a=>a.warningCount,"get_warnings":a=>a.warnings,"get_window":a=>a.window,"js_expr_12c48ca8":()=>a,"js_expr_26f07992":()=>null,"js_expr_2d7ff750":()=>function(a){throw a},"js_expr_ba692c1":()=>undefined,"meth_call_0_getBoundingClientRect":a=>a.getBoundingClientRect(),"meth_call_0_stopPropagation":a=>a.stopPropagation(),"meth_call_0_toLowerCase":a=>a.toLowerCase(),"meth_call_1_add":(a,b)=>a.add(b),"meth_call_1_appendChild":(a,b)=>a.appendChild(b),"meth_call_1_contains":(a,b)=>a.contains(b),"meth_call_1_createElement":(a,b)=>a.createElement(b),"meth_call_1_createTextNode":(a,b)=>a.createTextNode(b),"meth_call_1_dispatchEvent":(a,b)=>a.dispatchEvent(b),"meth_call_1_join":(a,b)=>a.join(b),"meth_call_1_log":(a,b)=>a.log(b),"meth_call_1_postMessage":(a,b)=>a.postMessage(b),"meth_call_1_querySelector":(a,b)=>a.querySelector(b),"meth_call_1_querySelectorAll":(a,b)=>a.querySelectorAll(b),"meth_call_1_remove":(a,b)=>a.remove(b),"meth_call_1_removeAttribute":(a,b)=>a.removeAttribute(b),"meth_call_1_removeChild":(a,b)=>a.removeChild(b),"meth_call_1_scrollIntoView":(a,b)=>a.scrollIntoView(b),"meth_call_2_addEventListener":(a,b,c)=>a.addEventListener(b,c),"meth_call_2_requestIdleCallback":(a,b,c)=>a.requestIdleCallback(b,c),"meth_call_2_setAttribute":(a,b,c)=>a.setAttribute(b,c),"meth_call_2_setTimeout":(a,b,c)=>a.setTimeout(b,c),"meth_call_3_addEventListener":(a,b,c,d)=>a.addEventListener(b,c,d),"meth_call_3_setProperty":(a,b,c,d)=>a.setProperty(b,c,d),"new_1":(a,b)=>new
136a(b),"obj_0":()=>({}),"obj_1":()=>({}),"obj_2":()=>({}),"obj_3":(a,b)=>({behavior:a,block:b}),"obj_4":(a,b)=>({id:a,html:b}),"obj_5":a=>({timeout:a}),"obj_6":()=>({}),"set_attribute":(a,b)=>a.attribute=b,"set_clearAnnotations":(a,b)=>a.clearAnnotations=b,"set_column":(a,b)=>a.column=b,"set_element":(a,b)=>a.element=b,"set_elementName":(a,b)=>a.elementName=b,"set_errorCode":(a,b)=>a.errorCode=b,"set_errorCount":(a,b)=>a.errorCount=b,"set_hasErrors":(a,b)=>a.hasErrors=b,"set_hidePanel":(a,b)=>a.hidePanel=b,"set_html5rw":(a,b)=>a.html5rw=b,"set_infoCount":(a,b)=>a.infoCount=b,"set_initWorker":(a,b)=>a.initWorker=b,"set_line":(a,b)=>a.line=b,"set_message":(a,b)=>a.message=b,"set_selector":(a,b)=>a.selector=b,"set_severity":(a,b)=>a.severity=b,"set_showPanel":(a,b)=>a.showPanel=b,"set_showPanelFromWorkerResult":(a,b)=>a.showPanelFromWorkerResult=b,"set_sourceElement":(a,b)=>a.sourceElement=b,"set_validateAfterLoad":(a,b)=>a.validateAfterLoad=b,"set_validateAndAnnotate":(a,b)=>a.validateAndAnnotate=b,"set_validateAndShowPanel":(a,b)=>a.validateAndShowPanel=b,"set_validateAndShowPanelAsync":(a,b)=>a.validateAndShowPanelAsync=b,"set_validateElement":(a,b)=>a.validateElement=b,"set_validateElementAsync":(a,b)=>a.validateElementAsync=b,"set_validateOnIdle":(a,b)=>a.validateOnIdle=b,"set_validateString":(a,b)=>a.validateString=b,"set_validateStringAsync":(a,b)=>a.validateStringAsync=b,"set_warningCount":(a,b)=>a.warningCount=b,"set_warnings":(a,b)=>a.warnings=b}}})(globalThis),"src":"htmlrw_js_main.bc.wasm.assets"});