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-c1e98c62582936e40109",0]],"generated":(a=>{var 135b=a,c=a?.module?.export||a;return{"fragments":{"get_Array":a=>a.Array,"get_Number":a=>a.Number,"get_Promise":a=>a.Promise,"get_console":a=>a.console,"get_data":a=>a.data,"get_html":a=>a.html,"get_id":a=>a.id,"get_self":a=>a.self,"js_expr_12c48ca8":()=>a,"meth_call_1_error":(a,b)=>a.error(b),"meth_call_1_log":(a,b)=>a.log(b),"meth_call_1_postMessage":(a,b)=>a.postMessage(b),"meth_call_2_addEventListener":(a,b,c)=>a.addEventListener(b,c),"new_1":(a,b)=>new 136a(b),"obj_0":()=>({}),"obj_1":()=>({}),"obj_2":()=>({}),"obj_3":()=>({}),"set_attribute":(a,b)=>a.attribute=b,"set_column":(a,b)=>a.column=b,"set_elementName":(a,b)=>a.elementName=b,"set_errorCode":(a,b)=>a.errorCode=b,"set_errorCount":(a,b)=>a.errorCount=b,"set_fatalError":(a,b)=>a.fatalError=b,"set_hasErrors":(a,b)=>a.hasErrors=b,"set_htmlPreview":(a,b)=>a.htmlPreview=b,"set_id":(a,b)=>a.id=b,"set_infoCount":(a,b)=>a.infoCount=b,"set_line":(a,b)=>a.line=b,"set_message":(a,b)=>a.message=b,"set_parseError":(a,b)=>a.parseError=b,"set_severity":(a,b)=>a.severity=b,"set_treeStructure":(a,b)=>a.treeStructure=b,"set_warningCount":(a,b)=>a.warningCount=b,"set_warnings":(a,b)=>a.warnings=b}}})(globalThis),"src":"htmlrw_js_worker.bc.wasm.assets"});