@gmb/bitmark-parser 6.6.0 → 6.7.0

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/README.md CHANGED
@@ -81,6 +81,15 @@ Options:
81
81
  bitmark, and each occurrence warns whether or not it is included.
82
82
  Also available on `bitmarkToObjects` and as the CLI's
83
83
  `--include-unknown-properties`
84
+ - `mappingReport` — replace the converted output with a human-readable
85
+ MAPPING REPORT of what each input construct mapped to, including the
86
+ inputs that are NOT mapped (default: `false`). The report lists every
87
+ input occurrence, grouped by bit (mapped → its output construct,
88
+ carried → what consumed it, or NOT MAPPED), a per-name summary table,
89
+ and a NOT-MAPPED inventory. Composite conversions (e.g. xml → json)
90
+ report every leg, one section after the other. Most useful on foreign
91
+ document import (`inputFormat: "xml-niso-iec"`), where NOT MAPPED means
92
+ recorded loss. Also the CLI's `--mapping-report`
84
93
 
85
94
  > **Performance:** `inputFormat: "auto"` detects the format by scanning the
86
95
  > input for a bitmark bit header — for non-bitmark input that is a full pass
@@ -1,5 +1,5 @@
1
- var kt=Object.defineProperty;var se=(e,t,r)=>t in e?kt(e,t,{enumerable:true,configurable:true,writable:true,value:r}):e[t]=r;var wt=(e,t)=>{for(var r in t)kt(e,r,{get:t[r],enumerable:true});};var T=(e,t,r)=>se(e,typeof t!="symbol"?t+"":t,r);var U={};wt(U,{breakscape_text:()=>ot,canonicalize:()=>pt,convert:()=>H,convert_text:()=>le,count_bits:()=>ut,default:()=>lt,info:()=>st,initSync:()=>Ft,is_bitmark:()=>pe,lex:()=>rt,prettify:()=>ce,split_bits:()=>ct,split_json_bits:()=>ue,transform:()=>at,unbreakscape_text:()=>it});var a,b=0,M=null;function D(){return (M===null||M.byteLength===0)&&(M=new Uint8Array(a.memory.buffer)),M}var $=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},ae=typeof $.encodeInto=="function"?function(e,t){return $.encodeInto(e,t)}:function(e,t){let r=$.encode(e);return t.set(r),{read:e.length,written:r.length}};function y(e,t,r){if(r===void 0){let p=$.encode(e),u=t(p.length,1)>>>0;return D().subarray(u,u+p.length).set(p),b=p.length,u}let n=e.length,o=t(n,1)>>>0,s=D(),i=0;for(;i<n;i++){let p=e.charCodeAt(i);if(p>127)break;s[o+i]=p;}if(i!==n){i!==0&&(e=e.slice(i)),o=r(o,n,n=i+e.length*3,1)>>>0;let p=D().subarray(o+i,o+n),u=ae(e,p);i+=u.written,o=r(o,n,i,1)>>>0;}return b=i,o}var J=null;function w(){return (J===null||J.buffer.detached===true||J.buffer.detached===void 0&&J.buffer!==a.memory.buffer)&&(J=new DataView(a.memory.buffer)),J}var ht=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:true,fatal:true}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&ht.decode();function S(e,t){return e=e>>>0,ht.decode(D().subarray(e,e+t))}function rt(e,t){let r,n;try{let i=a.__wbindgen_add_to_stack_pointer(-16),p=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),u=b,c=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),l=b;a.lex(i,p,u,c,l);var o=w().getInt32(i+0,!0),s=w().getInt32(i+4,!0);return r=o,n=s,S(o,s)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(r,n,1);}}function ot(e,t,r){let n,o;try{let p=a.__wbindgen_add_to_stack_pointer(-16),u=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),c=b,l=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),d=b,f=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),_=b;a.breakscape_text(p,u,c,l,d,f,_);var s=w().getInt32(p+0,!0),i=w().getInt32(p+4,!0);return n=s,o=i,S(s,i)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(n,o,1);}}function it(e,t,r){let n,o;try{let p=a.__wbindgen_add_to_stack_pointer(-16),u=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),c=b,l=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),d=b,f=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),_=b;a.unbreakscape_text(p,u,c,l,d,f,_);var s=w().getInt32(p+0,!0),i=w().getInt32(p+4,!0);return n=s,o=i,S(s,i)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(n,o,1);}}function st(e,t,r,n,o){let s,i;try{let c=a.__wbindgen_add_to_stack_pointer(-16),l=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),d=b,f=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),_=b,x=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),k=b;a.info(c,l,d,f,_,x,k,n,o);var p=w().getInt32(c+0,!0),u=w().getInt32(c+4,!0);return s=p,i=u,S(p,u)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(s,i,1);}}function at(e,t,r,n,o,s,i,p){let u,c;try{let f=a.__wbindgen_add_to_stack_pointer(-16),_=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b,g=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),E=b,j=y(n,a.__wbindgen_export_0,a.__wbindgen_export_1),A=b,oe=y(o,a.__wbindgen_export_0,a.__wbindgen_export_1),ie=b;a.transform(f,_,x,k,m,g,E,j,A,oe,ie,s,i,p);var l=w().getInt32(f+0,!0),d=w().getInt32(f+4,!0);return u=l,c=d,S(l,d)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(u,c,1);}}function H(e,t,r,n,o,s,i,p){let u,c;try{let f=a.__wbindgen_add_to_stack_pointer(-16),_=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b,g=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),E=b,j=y(n,a.__wbindgen_export_0,a.__wbindgen_export_1),A=b;a.convert(f,_,x,k,m,g,E,j,A,o,s,i,p);var l=w().getInt32(f+0,!0),d=w().getInt32(f+4,!0);return u=l,c=d,S(l,d)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(u,c,1);}}function pt(e,t,r,n,o,s){let i,p;try{let l=a.__wbindgen_add_to_stack_pointer(-16),d=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),f=b,_=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b;a.canonicalize(l,d,f,_,x,k,m,n,o,s);var u=w().getInt32(l+0,!0),c=w().getInt32(l+4,!0);return i=u,p=c,S(u,c)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(i,p,1);}}function ut(e){let t,r;try{let s=a.__wbindgen_add_to_stack_pointer(-16),i=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),p=b;a.count_bits(s,i,p);var n=w().getInt32(s+0,!0),o=w().getInt32(s+4,!0);return t=n,r=o,S(n,o)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(t,r,1);}}function ct(e){let t,r;try{let s=a.__wbindgen_add_to_stack_pointer(-16),i=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),p=b;a.split_bits(s,i,p);var n=w().getInt32(s+0,!0),o=w().getInt32(s+4,!0);return t=n,r=o,S(n,o)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(t,r,1);}}function pe(e){let t=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),r=b;return a.is_bitmark(t,r)!==0}function ue(e){let t,r;try{let s=a.__wbindgen_add_to_stack_pointer(-16),i=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),p=b;a.split_json_bits(s,i,p);var n=w().getInt32(s+0,!0),o=w().getInt32(s+4,!0);return t=n,r=o,S(n,o)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(t,r,1);}}function ce(e,t){let r,n;try{let i=a.__wbindgen_add_to_stack_pointer(-16),p=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),u=b;a.prettify(i,p,u,t);var o=w().getInt32(i+0,!0),s=w().getInt32(i+4,!0);return r=o,n=s,S(o,s)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(r,n,1);}}function le(e,t,r,n){let o,s;try{let u=a.__wbindgen_add_to_stack_pointer(-16),c=y(e,a.__wbindgen_export_0,a.__wbindgen_export_1),l=b,d=y(t,a.__wbindgen_export_0,a.__wbindgen_export_1),f=b,_=y(r,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=y(n,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b;a.convert_text(u,c,l,d,f,_,x,k,m);var i=w().getInt32(u+0,!0),p=w().getInt32(u+4,!0);return o=i,s=p,S(i,p)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(o,s,1);}}async function de(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(n){if(e.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n);else throw n}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else {let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function Ot(){let e={};return e.wbg={},e}function Tt(e,t){return a=e.exports,vt.__wbindgen_wasm_module=t,J=null,M=null,a}function Ft(e){if(a!==void 0)return a;typeof e<"u"&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=Ot();e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e));let r=new WebAssembly.Instance(e,t);return Tt(r,e)}async function vt(e){if(a!==void 0)return a;typeof e<"u"&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof e>"u"&&(e=new URL("bitmark_wasm_bg.wasm",import.meta.url));let t=Ot();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:n}=await de(await e,t);return Tt(r,n)}var lt=vt;var G={version:"6.6.0"};function N(e){return e.startsWith("error:")}function K(e){let t=e instanceof Error?e.message:String(e);return t.startsWith("error:")?t:`error: ${t}`}function me(e){let t=e.trim();return t.startsWith("[")&&t.endsWith("]")?t.slice(1,-1):e}function fe(e){if(e===void 0)return [];if(typeof e=="string"){let t=e.trim();return t===""?[]:JSON.parse(t)}return e}function ge(e,t,r){if(r){let s=e.split_bits(t);if(N(s))throw new Error(s);let i=JSON.parse(s);return i.map(p=>({view:{format:"bitmark",index:p.index,total:i.length,source:p.source},source:p.source}))}let n=e.split_json_bits(t);if(N(n))throw new Error(n);let o=JSON.parse(n);return o.map((s,i)=>({view:{format:"json",index:i,total:o.length,bit:s.bit??{}},source:JSON.stringify([s])}))}function dt(e,t,r){let n=r.mode??"optimized",o=r.outputFormat??"json",s=r.spacesAroundValues??1,i=r.indent??2,p=r.pretty??false,u=r.inputFormat??"auto",c=u==="bitmark"||u!=="json"&&e.is_bitmark(t),l=c?"bitmark":"json",d=fe(r.patch),f=ge(e,t,c),_=f.length,x=[],k=[];for(let m=0;m<_;m++){let{view:g,source:E}=f[m];g.index=m,g.total=_;let j=r.preHook?r.preHook(g)||{}:{};if(j.drop)continue;let A=j.patches?[...d,...j.patches]:d;x.push({index:m,source:E,inputFormat:l,outputFormat:j.outputFormat??o,mode:n,patchJson:JSON.stringify(A),spacesAroundValues:s}),k.push(g);}return {jobs:x,views:k,output:o,pretty:p,indent:i}}function be(e,t){let r=e.transform(t.source,t.inputFormat,t.outputFormat,t.mode,t.patchJson,false,2,t.spacesAroundValues);return N(r)?r:t.outputFormat==="json"?me(r):r}function mt(e,t,r,n,o){if(r==="bitmark"||r==="text")return t.join(`
2
- `);let s=`[${t.join(",")}]`;return n?e.prettify(s,o):s}function Rt(e,t,r){let n;try{n=dt(e,t,r);}catch(s){return K(s)}let o=[];for(let s=0;s<n.jobs.length;s++){let i=be(e,n.jobs[s]);if(N(i))return i;r.postHook?.(n.views[s],i),o.push(i);}return mt(e,o,n.output,n.pretty,n.indent)}async function Et(e,t,r,n){let o;try{o=dt(e,t,r);}catch(i){return K(i)}let s;try{s=await n(o.jobs,r.workers??4);}catch(i){return K(i)}for(let i=0;i<s.length;i++){if(N(s[i]))return s[i];r.postHook?.(o.views[i],s[i]);}return mt(e,s,o.output,o.pretty,o.indent)}function Pt(e,t){if(e.length===0)return Promise.resolve([]);let r=Math.max(1,Math.min(t,e.length)),n=new URL("./worker-entry.js",import.meta.url);return new Promise((o,s)=>{let i=new Array(e.length),p=0,u=0,c=false,l=[],d=()=>{for(let x of l)x.terminate();},f=x=>{c||(c=true,d(),s(x));},_=x=>{if(c||p>=e.length)return;let k=p++;x.postMessage({id:k,job:e[k]});};for(let x=0;x<r;x++){let k=new Worker(n,{type:"module"});l.push(k),k.onmessage=m=>{let g=m.data;if(!c){if(!g.ok){f(new Error(g.error??"worker job failed"));return}if(i[g.id]=g.element,u++,u===e.length){c=true,d(),o(i);return}_(k);}},k.onerror=m=>f(new Error(m.message||"worker error"));}for(let x of l)_(x);})}var ft;function Bt(e){ft=e;}function h(){if(!ft)throw new Error("legacy API not initialised: the WASM module has not been provided (browser consumers must call init() first)");return ft}var re={};wt(re,{Ast:()=>Ut,BitType:()=>Ct,BitmarkFileGenerator:()=>Dt,BitmarkGenerator:()=>Gt,BitmarkParser:()=>Qt,BitmarkParserGenerator:()=>et,BitmarkParserType:()=>Re,BitmarkStringGenerator:()=>zt,BitmarkVersion:()=>Fe,BodyTextFormat:()=>Be,BoundingBoxIndex:()=>Ht,Builder:()=>tt,CardSetVersion:()=>ve,FileWriter:()=>ee,HtmlTableGenerator:()=>Xt,HtmlTableParser:()=>qt,InfoFormat:()=>Pe,InfoType:()=>Ee,Input:()=>he,InputFormat:()=>Te,JsonFileGenerator:()=>Yt,JsonGenerator:()=>$t,JsonParser:()=>Zt,JsonStringGenerator:()=>Kt,LegacyUnsupportedError:()=>C,NodeType:()=>Mt,Output:()=>Oe,ResourceBuilder:()=>nt,StreamWriter:()=>ne,StringWriter:()=>te,TextLocation:()=>Se,TextMarkType:()=>Wt,TextNodeType:()=>Nt,bitmarkTextParse:()=>Lt,isPseudoAst:()=>It});var C=class extends Error{constructor(t){super(t),this.name="LegacyUnsupportedError";}};function L(e,t){throw new C(`'${e}' is not supported by the @gmb/bitmark-parser legacy API`+(t?`: ${t}`:""))}function I(e,t){throw new C(`Option '${e}' is not supported by the @gmb/bitmark-parser legacy API`+(t?`: ${t}`:""))}var gt="bitmark v2 output is not supported (this parser is bitmark v3 only)";function bt(e){e.bitmarkVersion===2&&I("bitmarkVersion: 2",gt);}function X(e){e.explicitTextFormat&&I("bitmarkOptions.explicitTextFormat"),e.cardSetVersion===1&&I("bitmarkOptions.cardSetVersion: 1",gt),e.debugGenerationInline&&I("bitmarkOptions.debugGenerationInline"),e.noBreakscaping&&I("bitmarkOptions.noBreakscaping");}function q(e){e.textAsPlainText&&I("jsonOptions.textAsPlainText",gt),e.debugGenerationInline&&I("jsonOptions.debugGenerationInline");}function W(e){return e===true?{pretty:true,indent:2}:typeof e=="number"&&e>0?{pretty:true,indent:e}:{pretty:false,indent:2}}function Q(e){return e===void 0||e===true?1:e===false?0:Math.max(0,Math.min(10,e))}function Z(e){switch(e){case "text":case "latex":case "json":case "xml":return "plainText";default:return "bitmark++"}}var St=Symbol.for("@gmb/bitmark-parser/legacy-pseudo-ast");function V(e){let t={bits:e};return Object.defineProperty(t,St,{value:true,enumerable:false}),t}function It(e){return e!==null&&typeof e=="object"&&(St in e||Array.isArray(e.bits))}var jt={"extractor-image":{key:"images",resourceType:"image"},"extractor-image-collapsible":{key:"images",resourceType:"image"},"images-logo-grave":{key:"logos",resourceType:"image"},"prototype-images":{key:"images",resourceType:"image"}};var yt=Symbol.for("@gmb/bitmark-parser/legacy-built-bit-parser"),_e={bitType:"type",textFormat:"format",flashcards:"cards",markConfig:"marks"},xe={"bitmark--":"bitmark++","bitmark+":"bitmark++"},ke={bitmark:"bitmark++",text:"text",json:"json",latex:"latex",xml:"xml"},we=["title","subtitle","item","lead","pageNumber","marginNumber","hint","instruction","caption"],tt=class{buildBitmark(t){let r=V(t.bits??[]);return t.errors!==void 0&&(r.errors=t.errors),r}buildBit(t,r){let n=h(),o={...t},s=o.bitType,i=this.getBitConfig(s),p={};p.type=s,o.isCommented&&(p.type="_comment",p.originalType=s),delete o.bitType,delete o.isCommented;let u=o.textFormat;u!==void 0?(p.format=xe[u]??u,delete o.textFormat):p.format=ke[i.bodyFormat??""]??"bitmark++",delete o.resourceType;let c=o.body;c!=null&&typeof c=="object"&&"body"in c&&(p.body=c.body,delete o.body),o.example!==void 0?(p.isExample=true,p.example=o.example,delete o.example,delete o.__isDefaultExample):o.__isDefaultExample&&(p.isExample=true,delete o.__isDefaultExample);let l=o.resources;if(l!==void 0&&s!==void 0){let m=Array.isArray(l)?l:[l],g=jt[s];g?p[g.key]=m.filter(E=>E!==null&&typeof E=="object"&&E.type===g.resourceType):m.length>=1&&(p.resource=m[0]),delete o.resources;}let d=o.parser;delete o.parser;let f=o.extraProperties;delete o.extraProperties;for(let[m,g]of Object.entries(o))g!==void 0&&(p[_e[m]??m]=g);if(f)for(let[m,g]of Object.entries(f))m in p||(p[m]=g);this.parseStringTexts(p);let _=n.convert(JSON.stringify([{bit:p}]),"json","json","optimized",false,2,1,false);if(_.startsWith("error:"))throw new Error(_.slice(6).trim());let k=JSON.parse(_)[0]?.bit??p;for(let[m,g]of Object.entries(p))m in k||g===false||g===""||g===null||Array.isArray(g)&&g.length===0||(k[m]=g);return d!==void 0&&Object.defineProperty(k,yt,{value:d,enumerable:false}),k}buildHighlight(t,r){if(!r)return;let n={...r},o=n.attrs;return o&&Object.assign(n,o),{type:"highlight",texts:Array.isArray(n.texts)?n.texts.filter(p=>p!=null).map(p=>({text:p.text??"",isCorrect:p.isCorrect??false,isHighlighted:p.isHighlighted??false,...At(p,["text","isCorrect","isHighlighted"])})):[],prefix:n.prefix??"",postfix:n.postfix??"",...At(n,["type","texts","prefix","postfix","attrs"]),attrs:{}}}parseStringTexts(t){let r=h(),n=(i,p)=>{if(i==="")return i;let u=r.convert_text(i,"textToAst","bitmark++",p);try{return JSON.parse(u)}catch{return i}},o=t.format,s=o===void 0||o==="bitmark++"||o==="bitmark+";if(typeof t.body=="string")if(o==="json")try{t.body=JSON.parse(t.body);}catch{t.body=null;}else s&&(t.body=n(t.body,"body"));for(let i of we){let p=t[i];typeof p=="string"&&(t[i]=n(p,"tag"));}}getBitConfig(t){let r=h();if(t!==void 0)try{let n=JSON.parse(r.info("bit","json",t,!1,2));if(n.error===void 0)return n}catch{}throw new Error(`No config found for bit: ${t}`)}};function At(e,t){let r={};for(let[n,o]of Object.entries(e))o!==void 0&&!t.includes(n)&&(r[n]=o);return r}var et=class{version(){return G.version}convert(t,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions),s=Object.assign({},n.bitmarkOptions);bt(n),X(s),q(o),this.checkBrowserFileWrite(n.outputFile);let i=h(),{source:p,isBitmark:u}=this.resolveInput(t,n.inputFormat),c=n.outputFormat??(u?"json":"bitmark"),l=c==="ast"?"json":c,{pretty:d,indent:f}=W(o.prettify),_=l==="bitmark"?W(s.prettifyJson):{pretty:d,indent:f},x=Q(s.spacesAroundValues),k=!o.excludeUnknownProperties,m=i.convert(p,u?"bitmark":"json",l,"optimized",_.pretty,_.indent,x,k);if(this.throwOnError(m),c==="bitmark"||c==="text")return this.deliver(m,n.outputFile,n.fileOptions);if(c==="json")return n.outputFile?this.deliver(m,n.outputFile,n.fileOptions):d||o.stringify?m:JSON.parse(m);let g=V(JSON.parse(m));return n.outputFile?this.deliver(JSON.stringify(g),n.outputFile,n.fileOptions):g}upgrade(t,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions),s=Object.assign({},n.bitmarkOptions);bt(n),X(s),q(o),this.checkBrowserFileWrite(n.outputFile);let i=h(),{source:p,isBitmark:u}=this.resolveInput(t,n.inputFormat),{pretty:c,indent:l}=W(u?s.prettifyJson:o.prettify),d=Q(s.spacesAroundValues),f=i.canonicalize(p,u?"bitmark":"json","optimized",c,l,d);return this.throwOnError(f),u?this.deliver(f,n.outputFile,n.fileOptions):n.outputFile?this.deliver(f,n.outputFile,n.fileOptions):c||o.stringify?f:JSON.parse(f)}info(t){let r=Object.assign({},t),n=h(),o=r.type??"list",s=r.outputFormat??"text",{pretty:i,indent:p}=W(r.prettify),u=s==="pojo"?"json":s,c=n.info(o,u,r.bit??"",i,p);return this.throwOnError(c),s==="pojo"?JSON.parse(c):c}generateConfig(t){L("BitmarkParserGenerator.generateConfig","bpg-internal development tool");}convertHtmlTable(t,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions),s=Object.assign({},n.bitmarkOptions);X(s),q(o),n.keepUnknownTags&&I("keepUnknownTags"),n.noBreakscaping&&I("noBreakscaping"),this.checkBrowserFileWrite(n.outputFile);let i=h(),p=typeof t=="string"?this.maybeReadFile(t,void 0):"";if(!(n.inputFormat==="html"||n.inputFormat===void 0&&typeof t=="string"&&/<table[\s>]/iu.test(p))){let{source:E,isBitmark:j}=this.resolveInput(t,void 0),A=i.convert(E,j?"bitmark":"json","html","optimized",false,2,1,false);return this.throwOnError(A),this.deliver(_t(A).join(`
3
- `),n.outputFile,n.fileOptions)}let c=n.tableFormat==="table"?"table":"table-extended",l=_t(p).map(E=>`<bitmark-bit data-type="${c}" data-format="bitmark++">${E}</bitmark-bit>`).join(""),d=n.outputFormat??"bitmark",{pretty:f,indent:_}=W(o.prettify),x=Q(s.spacesAroundValues);if(d==="html"){let E=i.convert(l,"html","html","optimized",false,2,1,false);return this.throwOnError(E),this.deliver(_t(E).join(`
4
- `),n.outputFile,n.fileOptions)}let k=d==="ast"?"json":d,m=i.convert(l,"html",k,"optimized",f,_,x,false);if(this.throwOnError(m),d==="bitmark"||d==="text")return this.deliver(m,n.outputFile,n.fileOptions);if(d==="json")return n.outputFile?this.deliver(m,n.outputFile,n.fileOptions):f||o.stringify?m:JSON.parse(m);let g=V(JSON.parse(m));return n.outputFile?this.deliver(JSON.stringify(g),n.outputFile,n.fileOptions):g}createAst(t,r){let n=Object.assign({},r),o=h(),{source:s,isBitmark:i}=this.resolveInput(t,n.inputFormat),p=o.convert(s,i?"bitmark":"json","json","optimized",false,2,1,true);return this.throwOnError(p),V(JSON.parse(p))}breakscapeText(t,r){if(!t)return t;let n=Object.assign({},r);this.checkBrowserFileWrite(n.outputFile);let o=h(),s=this.maybeReadFile(t,n.inputFormat),i=o.breakscape_text(s,Z(n.textFormat),n.textLocation??"body");return this.deliver(i,n.outputFile,n.fileOptions)}unbreakscapeText(t,r){if(!t)return t;let n=Object.assign({},r);this.checkBrowserFileWrite(n.outputFile);let o=h(),s=this.maybeReadFile(t,n.inputFormat),i=o.unbreakscape_text(s,Z(n.textFormat),n.textLocation??"body");return this.deliver(i,n.outputFile,n.fileOptions)}convertText(t,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions);this.checkBrowserFileWrite(n.outputFile);let s=h(),i=n.textFormat===void 0||Z(n.textFormat)==="bitmark++",p=n.textLocation??"body",u,c;if(typeof t=="string"?(u=this.maybeReadFile(t,n.inputFormat),c=this.parseTextAstString(u)):(u=JSON.stringify(t),c=Array.isArray(t)?t:void 0),c!==void 0){let x=i?s.convert_text(JSON.stringify(c),"astToText","bitmark++",p):s.convert_text(JSON.stringify(c),"astToPlainText","plainText",p);return this.throwOnError(x),this.deliver(x,n.outputFile,n.fileOptions)}let l=s.convert_text(u,"textToAst",i?"bitmark++":"plainText","body");this.throwOnError(l);let{pretty:d,indent:f}=W(o.prettify),_=d?s.prettify(l,f):l;return n.outputFile?this.deliver(_,n.outputFile,n.fileOptions):d?_:JSON.parse(l)}textAstToPlainText(t,r){let o=h().convert_text(typeof t=="string"?t:JSON.stringify(t),"astToPlainText","bitmark++","body");return this.throwOnError(o),o}extractPlainText(t,r){let n=r?.inputFormat,o=h();if(n==="plainText")return typeof t=="string"?String(t):"";if(n==="bitmarkText"){let u=o.convert_text(String(t),"textToAst","bitmark++","body"),c=o.convert_text(u,"astToPlainText","bitmark++","body");return this.throwOnError(c),c}if(typeof t=="string"&&this.parseTextAstString(t)===void 0&&!o.is_bitmark(t)&&!(()=>{try{return JSON.parse(t),!0}catch{return false}})())return this.extractPlainText(t,{inputFormat:"bitmarkText"});let{source:s,isBitmark:i}=this.resolveInput(t,void 0),p=o.convert(s,i?"bitmark":"json","text","optimized",false,2,1,false);return this.throwOnError(p),p}parseTextAstString(t){let r=t.trim();if(r.startsWith("["))try{let n=JSON.parse(r);if(Array.isArray(n)&&n.every(o=>o!==null&&typeof o=="object"&&"type"in o))return n}catch{}}resolveInput(t,r){if(typeof t!="string"){let s=this.jsonEntries(t);return {source:JSON.stringify(s?s.map(i=>this.toWrapperEntry(i)):t),isBitmark:false}}let n=this.maybeReadFile(t,r);if(h().is_bitmark(n))return {source:n,isBitmark:true};try{let s=JSON.parse(n),i=this.jsonEntries(s);if(i)return {source:JSON.stringify(i.map(p=>this.toWrapperEntry(p))),isBitmark:!1}}catch{return {source:n,isBitmark:true}}return {source:n,isBitmark:false}}jsonEntries(t){if(Array.isArray(t))return t;if(t!==null&&typeof t=="object"){let r=t;if(Array.isArray(r.bits))return r.bits;if("bit"in r)return [r];if(typeof r.type=="string")return [{bit:r}]}}toWrapperEntry(t){if(t!==null&&typeof t=="object"&&"bit"in t)return t;let r={bit:t},n=t?.[yt];return n!==void 0&&(r.parser=n),r}maybeReadFile(t,r){if(r==="string")return t;return t;}checkBrowserFileWrite(t){if(t&&true)throw new Error("Cannot write to file in browser environment")}deliver(t,r,n){if(!r)return t;throw new Error("Cannot write to file in browser environment");}throwOnError(t){if(t.startsWith("error:"))throw new Error(t.slice(6).trim())}};function _t(e){let t=[],r=e.toLowerCase(),n=0;for(;;){let o=r.indexOf("<table",n);if(o===-1)break;let s=0,i=o,p=-1;for(;i<e.length;){let u=r.indexOf("<table",i),c=r.indexOf("</table",i);if(c===-1)break;if(u!==-1&&u<c)s++,i=u+6;else {s--;let l=r.indexOf(">",c);if(i=l===-1?e.length:l+1,s===0){p=i;break}}}if(p===-1)break;t.push(e.slice(o,p)),n=p;}return t}function Lt(e){let t=h().convert_text(e,"textToAst","bitmark++","body");if(t.startsWith("error:"))throw new Error(t.slice(6).trim());return JSON.parse(t)}var R={imageResource:{type:"image",key:"image",valueField:"src"},imageLinkResource:{type:"image-link",key:"imageLink",valueField:"url"},audioResource:{type:"audio",key:"audio",valueField:"src"},audioEmbedResource:{type:"audio-embed",key:"audioEmbed",valueField:"src"},audioLinkResource:{type:"audio-link",key:"audioLink",valueField:"url"},videoResource:{type:"video",key:"video",valueField:"src"},videoEmbedResource:{type:"video-embed",key:"videoEmbed",valueField:"url"},videoLinkResource:{type:"video-link",key:"videoLink",valueField:"url"},stillImageFilmEmbedResource:{type:"still-image-film-embed",key:"stillImageFilmEmbed",valueField:"url"},stillImageFilmLinkResource:{type:"still-image-film-link",key:"stillImageFilmLink",valueField:"url"},articleResource:{type:"article",key:"article",valueField:"body"},documentResource:{type:"document",key:"document",valueField:"url"},documentEmbedResource:{type:"document-embed",key:"documentEmbed",valueField:"url"},documentLinkResource:{type:"document-link",key:"documentLink",valueField:"url"},documentDownloadResource:{type:"document-download",key:"documentDownload",valueField:"url"},appLinkResource:{type:"app-link",key:"appLink",valueField:"url"},websiteLinkResource:{type:"website-link",key:"websiteLink",valueField:"url"}};function O(e){return (t,r,n)=>{if(!r)return;let{value:o,...s}=r,i={[e.valueField]:o??""};for(let[p,u]of Object.entries(s))u!==void 0&&(i[p]=u);return {type:e.type,[e.key]:i}}}var Jt=Object.fromEntries(Object.values(R).map(e=>[e.type,e])),nt=class{constructor(){T(this,"imageResource",O(R.imageResource));T(this,"imageLinkResource",O(R.imageLinkResource));T(this,"audioResource",O(R.audioResource));T(this,"audioEmbedResource",O(R.audioEmbedResource));T(this,"audioLinkResource",O(R.audioLinkResource));T(this,"videoResource",O(R.videoResource));T(this,"videoEmbedResource",O(R.videoEmbedResource));T(this,"videoLinkResource",O(R.videoLinkResource));T(this,"stillImageFilmEmbedResource",O(R.stillImageFilmEmbedResource));T(this,"stillImageFilmLinkResource",O(R.stillImageFilmLinkResource));T(this,"articleResource",O(R.articleResource));T(this,"documentResource",O(R.documentResource));T(this,"documentEmbedResource",O(R.documentEmbedResource));T(this,"documentLinkResource",O(R.documentLinkResource));T(this,"documentDownloadResource",O(R.documentDownloadResource));T(this,"appLinkResource",O(R.appLinkResource));T(this,"websiteLinkResource",O(R.websiteLinkResource));}resourceFromResourceJson(t,r){if(!r)return;let n=!Array.isArray(r),o=n?[r]:r,s=[];for(let i of o){let p=Jt[i.type];if(!p)continue;let u=i[p.key]??{},{[p.valueField]:c,...l}=u,d=O(p)(void 0,{value:c,...l});d&&s.push(d);}if(s.length!==0)return n?s[0]:s}resourceFromResourceDataJson(t,r,n){if(!n)return;let o=Jt[r];if(!o)return;let s=typeof n=="string"?n:void 0,i=typeof n=="object"?n:{},{url:p,src:u,body:c,...l}=i,d=p??u??c??s;return O(o)(t,{value:d,...l})}};var he={string:"string",file:"file"},Oe={bitmark:"bitmark",json:"json",ast:"ast",text:"text"},Te={bitmark:"bitmark",bitmarkText:"bitmarkText",plainText:"plainText",html:"html"},Fe={v2:2,v3:3},ve={v1:1,v2:2},Re={peggy:"peggy"},Ee={list:"list",deprecated:"deprecated",all:"all",bit:"bit"},Pe={text:"text",json:"json",pojo:"pojo"},Be={plainText:"text",latex:"latex",json:"json",xml:"xml",bitmarkPlusPlus:"bitmark++"},Se={tag:"tag",body:"body"};var Wt={bold:"bold",light:"light",italic:"italic",highlight:"highlight",highlightOrange:"highlightOrange",highlightYellow:"highlightYellow",highlightGreen:"highlightGreen",highlightBlue:"highlightBlue",highlightPurple:"highlightPurple",highlightPink:"highlightPink",highlightBrown:"highlightBrown",highlightBlack:"highlightBlack",highlightWhite:"highlightWhite",highlightGray:"highlightGray",strike:"strike",subscript:"subscript",superscript:"superscript",ins:"ins",del:"del",underline:"underline",doubleUnderline:"doubleUnderline",circle:"circle",languageEmRed:"languageEmRed",languageEmOrange:"languageEmOrange",languageEmYellow:"languageEmYellow",languageEmGreen:"languageEmGreen",languageEmBlue:"languageEmBlue",languageEmPurple:"languageEmPurple",languageEmPink:"languageEmPink",languageEmBrown:"languageEmBrown",languageEmBlack:"languageEmBlack",languageEmWhite:"languageEmWhite",languageEmGray:"languageEmGray",languageEm:"languageEm",userUnderline:"userUnderline",userDoubleUnderline:"userDoubleUnderline",userStrike:"userStrike",userCircle:"userCircle",userHighlight:"userHighlight",notranslate:"notranslate",link:"link",ref:"ref",xref:"xref",extref:"extref",footnote:"footnote",footnoteStar:"footnote*",symbol:"symbol",var:"var",code:"code",timer:"timer",duration:"duration",color:"color",colorPicker:"colorPicker",comment:"comment"},Nt={text:"text",hardBreak:"hardBreak",paragraph:"paragraph",heading:"heading",section:"section",noBulletList:"noBulletList",bulletList:"bulletList",orderedList:"orderedList",orderedListRoman:"orderedListRoman",orderedListRomanLower:"orderedListRomanLower",letteredList:"letteredList",letteredListLower:"letteredListLower",taskList:"taskList",listItem:"listItem",taskItem:"taskItem",image:"image",imageInline:"imageInline",codeBlock:"codeBlock",latex:"latex",gap:"gap",select:"select",highlight:"highlight",mark:"mark"};function Ie(e){return e.replace(/-([a-z0-9])/gu,(t,r)=>r.toUpperCase())}var xt;function z(){if(!xt){let e=h(),t=JSON.parse(e.info("all","json","",false,2)),r={_standard:"_standard"};for(let{name:n}of t)r[Ie(n)]=n;xt=r;}return xt}var Ct=new Proxy({},{get:(e,t)=>typeof t=="string"?z()[t]:void 0,has:(e,t)=>typeof t=="string"&&t in z(),ownKeys:()=>Reflect.ownKeys(z()),getOwnPropertyDescriptor:(e,t)=>typeof t=="string"&&t in z()?{value:z()[t],enumerable:true,configurable:true,writable:false}:void 0});function Vt(e,t){return new Proxy({},{get:(r,n)=>n===Symbol.toPrimitive||n==="toString"||n===Symbol.toStringTag?()=>`[unsupported ${e}]`:L(e,t),has:()=>L(e,t),ownKeys:()=>L(e,t)})}var Mt=Vt("NodeType","it names bpg's internal AST nodes; the legacy AST is bit JSON (see createAst)"),Ht=Vt("BoundingBoxIndex","bpg-internal bounding-box utility");function P(e,t){return class{constructor(){L(e,t);}}}var je="the legacy AST is bit JSON, not bpg's internal node model; walking it with bpg NodeType names would silently misbehave",B="internal class of bpg's TS implementation",Ut=P("Ast",je),Gt=P("BitmarkGenerator",B),zt=P("BitmarkStringGenerator",B),Dt=P("BitmarkFileGenerator",B),$t=P("JsonGenerator",B),Kt=P("JsonStringGenerator",B),Yt=P("JsonFileGenerator",B),Xt=P("HtmlTableGenerator",B),qt=P("HtmlTableParser",B),Qt=P("BitmarkParser",B),Zt=P("JsonParser",B),te=P("StringWriter",B),ee=P("FileWriter",B),ne=P("StreamWriter",B);function Ae(e,t,r){return r===void 0?{path:e,op:t}:{path:e,op:t,value:r}}Bt(U);async function $n(e){return typeof e>"u"&&(e=new URL(`bitmark_wasm_bg.wasm?v=${G.version}`,import.meta.url)),lt(e)}function Kn(){return G.version}function Yn(e,t={}){return rt(e,t.stage??"lex")}function Xn(e,t={}){let r=H(e,"bitmark","json",t.mode??"optimized",false,2,1,t.includeUnknownProperties??false);if(r.startsWith("error:"))throw new Error(r.slice(6).trim());return JSON.parse(r)}function qn(e,t={}){let r=e.map(o=>o!==null&&typeof o=="object"&&"bit"in o&&typeof o.bit=="object"?o:{bit:o}),n=H(JSON.stringify(r),"json","bitmark",t.mode??"optimized",false,2,1,false);if(n.startsWith("error:"))throw new Error(n.slice(6).trim());return n}function Qn(e,t={}){return H(e,t.inputFormat??"auto",t.outputFormat??"auto",t.mode??"optimized",t.pretty??false,t.indent??2,t.spacesAroundValues??1,t.includeUnknownProperties??false)}function Zn(e,t={}){return pt(e,t.inputFormat??"auto",t.mode??"optimized",t.pretty??false,t.indent??2,t.spacesAroundValues??1)}function tr(e){let t=ut(e);if(t.startsWith("error:"))throw new Error(t);return Number.parseInt(t,10)}function er(e){return JSON.parse(ct(e))}function nr(e,t={}){if(t.preHook||t.postHook)return Rt(U,e,t);let r=t.patch===void 0?"":typeof t.patch=="string"?t.patch:JSON.stringify(t.patch);return at(e,t.inputFormat??"auto",t.outputFormat??"json",t.mode??"optimized",r,t.pretty??false,t.indent??2,t.spacesAroundValues??1)}function rr(e,t={}){return Et(U,e,t,Pt)}function or(e,t={}){let r=t.format??"bitmark++",n=t.location??"body";return ot(e,r,n)}function ir(e,t={}){let r=t.format??"bitmark++",n=t.location??"body";return it(e,r,n)}function sr(e={}){let t=e.infoType??"list",r=e.format??"text",n=e.bit??"",o=e.pretty??false,s=e.indent??2;return st(t,r,n,o,s)}export{Xn as bitmarkToObjects,or as breakscapeText,Zn as canonicalize,Qn as convert,tr as countBits,sr as info,$n as init,Ft as initSync,re as legacy,Yn as lex,qn as objectsToBitmark,Ae as patchEntry,er as splitBits,nr as transform,rr as transformParallel,ir as unbreakscapeText,Kn as version};//# sourceMappingURL=bitmark-parser.min.js.map
1
+ var we=Object.defineProperty;var st=(t,e,r)=>e in t?we(t,e,{enumerable:true,configurable:true,writable:true,value:r}):t[e]=r;var he=(t,e)=>{for(var r in e)we(t,r,{get:e[r],enumerable:true});};var T=(t,e,r)=>st(t,typeof e!="symbol"?e+"":e,r);var U={};he(U,{breakscape_text:()=>ie,canonicalize:()=>ue,convert:()=>H,convert_text:()=>lt,count_bits:()=>ce,default:()=>de,info:()=>ae,initSync:()=>ve,is_bitmark:()=>pt,lex:()=>oe,prettify:()=>ct,split_bits:()=>le,split_json_bits:()=>ut,transform:()=>pe,unbreakscape_text:()=>se});var a,b=0,M=null;function D(){return (M===null||M.byteLength===0)&&(M=new Uint8Array(a.memory.buffer)),M}var $=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},at=typeof $.encodeInto=="function"?function(t,e){return $.encodeInto(t,e)}:function(t,e){let r=$.encode(t);return e.set(r),{read:t.length,written:r.length}};function _(t,e,r){if(r===void 0){let p=$.encode(t),u=e(p.length,1)>>>0;return D().subarray(u,u+p.length).set(p),b=p.length,u}let n=t.length,o=e(n,1)>>>0,s=D(),i=0;for(;i<n;i++){let p=t.charCodeAt(i);if(p>127)break;s[o+i]=p;}if(i!==n){i!==0&&(t=t.slice(i)),o=r(o,n,n=i+t.length*3,1)>>>0;let p=D().subarray(o+i,o+n),u=at(t,p);i+=u.written,o=r(o,n,i,1)>>>0;}return b=i,o}var J=null;function w(){return (J===null||J.buffer.detached===true||J.buffer.detached===void 0&&J.buffer!==a.memory.buffer)&&(J=new DataView(a.memory.buffer)),J}var Oe=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:true,fatal:true}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&Oe.decode();function S(t,e){return t=t>>>0,Oe.decode(D().subarray(t,t+e))}function oe(t,e){let r,n;try{let i=a.__wbindgen_add_to_stack_pointer(-16),p=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),u=b,c=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),l=b;a.lex(i,p,u,c,l);var o=w().getInt32(i+0,!0),s=w().getInt32(i+4,!0);return r=o,n=s,S(o,s)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(r,n,1);}}function ie(t,e,r){let n,o;try{let p=a.__wbindgen_add_to_stack_pointer(-16),u=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),c=b,l=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),d=b,f=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),y=b;a.breakscape_text(p,u,c,l,d,f,y);var s=w().getInt32(p+0,!0),i=w().getInt32(p+4,!0);return n=s,o=i,S(s,i)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(n,o,1);}}function se(t,e,r){let n,o;try{let p=a.__wbindgen_add_to_stack_pointer(-16),u=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),c=b,l=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),d=b,f=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),y=b;a.unbreakscape_text(p,u,c,l,d,f,y);var s=w().getInt32(p+0,!0),i=w().getInt32(p+4,!0);return n=s,o=i,S(s,i)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(n,o,1);}}function ae(t,e,r,n,o){let s,i;try{let c=a.__wbindgen_add_to_stack_pointer(-16),l=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),d=b,f=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),y=b,x=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),k=b;a.info(c,l,d,f,y,x,k,n,o);var p=w().getInt32(c+0,!0),u=w().getInt32(c+4,!0);return s=p,i=u,S(p,u)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(s,i,1);}}function pe(t,e,r,n,o,s,i,p){let u,c;try{let f=a.__wbindgen_add_to_stack_pointer(-16),y=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b,g=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),E=b,j=_(n,a.__wbindgen_export_0,a.__wbindgen_export_1),A=b,re=_(o,a.__wbindgen_export_0,a.__wbindgen_export_1),it=b;a.transform(f,y,x,k,m,g,E,j,A,re,it,s,i,p);var l=w().getInt32(f+0,!0),d=w().getInt32(f+4,!0);return u=l,c=d,S(l,d)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(u,c,1);}}function H(t,e,r,n,o,s,i,p,u){let c,l;try{let y=a.__wbindgen_add_to_stack_pointer(-16),x=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),k=b,m=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),g=b,E=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),j=b,A=_(n,a.__wbindgen_export_0,a.__wbindgen_export_1),re=b;a.convert(y,x,k,m,g,E,j,A,re,o,s,i,p,u);var d=w().getInt32(y+0,!0),f=w().getInt32(y+4,!0);return c=d,l=f,S(d,f)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(c,l,1);}}function ue(t,e,r,n,o,s){let i,p;try{let l=a.__wbindgen_add_to_stack_pointer(-16),d=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),f=b,y=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b;a.canonicalize(l,d,f,y,x,k,m,n,o,s);var u=w().getInt32(l+0,!0),c=w().getInt32(l+4,!0);return i=u,p=c,S(u,c)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(i,p,1);}}function ce(t){let e,r;try{let s=a.__wbindgen_add_to_stack_pointer(-16),i=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),p=b;a.count_bits(s,i,p);var n=w().getInt32(s+0,!0),o=w().getInt32(s+4,!0);return e=n,r=o,S(n,o)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(e,r,1);}}function le(t){let e,r;try{let s=a.__wbindgen_add_to_stack_pointer(-16),i=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),p=b;a.split_bits(s,i,p);var n=w().getInt32(s+0,!0),o=w().getInt32(s+4,!0);return e=n,r=o,S(n,o)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(e,r,1);}}function pt(t){let e=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),r=b;return a.is_bitmark(e,r)!==0}function ut(t){let e,r;try{let s=a.__wbindgen_add_to_stack_pointer(-16),i=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),p=b;a.split_json_bits(s,i,p);var n=w().getInt32(s+0,!0),o=w().getInt32(s+4,!0);return e=n,r=o,S(n,o)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(e,r,1);}}function ct(t,e){let r,n;try{let i=a.__wbindgen_add_to_stack_pointer(-16),p=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),u=b;a.prettify(i,p,u,e);var o=w().getInt32(i+0,!0),s=w().getInt32(i+4,!0);return r=o,n=s,S(o,s)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(r,n,1);}}function lt(t,e,r,n){let o,s;try{let u=a.__wbindgen_add_to_stack_pointer(-16),c=_(t,a.__wbindgen_export_0,a.__wbindgen_export_1),l=b,d=_(e,a.__wbindgen_export_0,a.__wbindgen_export_1),f=b,y=_(r,a.__wbindgen_export_0,a.__wbindgen_export_1),x=b,k=_(n,a.__wbindgen_export_0,a.__wbindgen_export_1),m=b;a.convert_text(u,c,l,d,f,y,x,k,m);var i=w().getInt32(u+0,!0),p=w().getInt32(u+4,!0);return o=i,s=p,S(i,p)}finally{a.__wbindgen_add_to_stack_pointer(16),a.__wbindgen_export_2(o,s,1);}}async function dt(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(n){if(t.headers.get("Content-Type")!="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n",n);else throw n}let r=await t.arrayBuffer();return await WebAssembly.instantiate(r,e)}else {let r=await WebAssembly.instantiate(t,e);return r instanceof WebAssembly.Instance?{instance:r,module:t}:r}}function Te(){let t={};return t.wbg={},t}function Fe(t,e){return a=t.exports,Re.__wbindgen_wasm_module=e,J=null,M=null,a}function ve(t){if(a!==void 0)return a;typeof t<"u"&&(Object.getPrototypeOf(t)===Object.prototype?{module:t}=t:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let e=Te();t instanceof WebAssembly.Module||(t=new WebAssembly.Module(t));let r=new WebAssembly.Instance(t,e);return Fe(r,t)}async function Re(t){if(a!==void 0)return a;typeof t<"u"&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof t>"u"&&(t=new URL("bitmark_wasm_bg.wasm",import.meta.url));let e=Te();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));let{instance:r,module:n}=await dt(await t,e);return Fe(r,n)}var de=Re;var G={version:"6.7.0"};function N(t){return t.startsWith("error:")}function K(t){let e=t instanceof Error?t.message:String(t);return e.startsWith("error:")?e:`error: ${e}`}function mt(t){let e=t.trim();return e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):t}function ft(t){if(t===void 0)return [];if(typeof t=="string"){let e=t.trim();return e===""?[]:JSON.parse(e)}return t}function gt(t,e,r){if(r){let s=t.split_bits(e);if(N(s))throw new Error(s);let i=JSON.parse(s);return i.map(p=>({view:{format:"bitmark",index:p.index,total:i.length,source:p.source},source:p.source}))}let n=t.split_json_bits(e);if(N(n))throw new Error(n);let o=JSON.parse(n);return o.map((s,i)=>({view:{format:"json",index:i,total:o.length,bit:s.bit??{}},source:JSON.stringify([s])}))}function me(t,e,r){let n=r.mode??"optimized",o=r.outputFormat??"json",s=r.spacesAroundValues??1,i=r.indent??2,p=r.pretty??false,u=r.inputFormat??"auto",c=u==="bitmark"||u!=="json"&&t.is_bitmark(e),l=c?"bitmark":"json",d=ft(r.patch),f=gt(t,e,c),y=f.length,x=[],k=[];for(let m=0;m<y;m++){let{view:g,source:E}=f[m];g.index=m,g.total=y;let j=r.preHook?r.preHook(g)||{}:{};if(j.drop)continue;let A=j.patches?[...d,...j.patches]:d;x.push({index:m,source:E,inputFormat:l,outputFormat:j.outputFormat??o,mode:n,patchJson:JSON.stringify(A),spacesAroundValues:s}),k.push(g);}return {jobs:x,views:k,output:o,pretty:p,indent:i}}function bt(t,e){let r=t.transform(e.source,e.inputFormat,e.outputFormat,e.mode,e.patchJson,false,2,e.spacesAroundValues);return N(r)?r:e.outputFormat==="json"?mt(r):r}function fe(t,e,r,n,o){if(r==="bitmark"||r==="text")return e.join(`
2
+ `);let s=`[${e.join(",")}]`;return n?t.prettify(s,o):s}function Ee(t,e,r){let n;try{n=me(t,e,r);}catch(s){return K(s)}let o=[];for(let s=0;s<n.jobs.length;s++){let i=bt(t,n.jobs[s]);if(N(i))return i;r.postHook?.(n.views[s],i),o.push(i);}return fe(t,o,n.output,n.pretty,n.indent)}async function Pe(t,e,r,n){let o;try{o=me(t,e,r);}catch(i){return K(i)}let s;try{s=await n(o.jobs,r.workers??4);}catch(i){return K(i)}for(let i=0;i<s.length;i++){if(N(s[i]))return s[i];r.postHook?.(o.views[i],s[i]);}return fe(t,s,o.output,o.pretty,o.indent)}function Be(t,e){if(t.length===0)return Promise.resolve([]);let r=Math.max(1,Math.min(e,t.length)),n=new URL("./worker-entry.js",import.meta.url);return new Promise((o,s)=>{let i=new Array(t.length),p=0,u=0,c=false,l=[],d=()=>{for(let x of l)x.terminate();},f=x=>{c||(c=true,d(),s(x));},y=x=>{if(c||p>=t.length)return;let k=p++;x.postMessage({id:k,job:t[k]});};for(let x=0;x<r;x++){let k=new Worker(n,{type:"module"});l.push(k),k.onmessage=m=>{let g=m.data;if(!c){if(!g.ok){f(new Error(g.error??"worker job failed"));return}if(i[g.id]=g.element,u++,u===t.length){c=true,d(),o(i);return}y(k);}},k.onerror=m=>f(new Error(m.message||"worker error"));}for(let x of l)y(x);})}var ge;function Se(t){ge=t;}function h(){if(!ge)throw new Error("legacy API not initialised: the WASM module has not been provided (browser consumers must call init() first)");return ge}var ot={};he(ot,{Ast:()=>Ge,BitType:()=>Ve,BitmarkFileGenerator:()=>$e,BitmarkGenerator:()=>ze,BitmarkParser:()=>Ze,BitmarkParserGenerator:()=>te,BitmarkParserType:()=>Rt,BitmarkStringGenerator:()=>De,BitmarkVersion:()=>Ft,BodyTextFormat:()=>Bt,BoundingBoxIndex:()=>Ue,Builder:()=>ee,CardSetVersion:()=>vt,FileWriter:()=>nt,HtmlTableGenerator:()=>qe,HtmlTableParser:()=>Qe,InfoFormat:()=>Pt,InfoType:()=>Et,Input:()=>ht,InputFormat:()=>Tt,JsonFileGenerator:()=>Xe,JsonGenerator:()=>Ke,JsonParser:()=>et,JsonStringGenerator:()=>Ye,LegacyUnsupportedError:()=>C,NodeType:()=>He,Output:()=>Ot,ResourceBuilder:()=>ne,StreamWriter:()=>rt,StringWriter:()=>tt,TextLocation:()=>St,TextMarkType:()=>Ne,TextNodeType:()=>Ce,bitmarkTextParse:()=>Je,isPseudoAst:()=>je});var C=class extends Error{constructor(e){super(e),this.name="LegacyUnsupportedError";}};function L(t,e){throw new C(`'${t}' is not supported by the @gmb/bitmark-parser legacy API`+(e?`: ${e}`:""))}function I(t,e){throw new C(`Option '${t}' is not supported by the @gmb/bitmark-parser legacy API`+(e?`: ${e}`:""))}var be="bitmark v2 output is not supported (this parser is bitmark v3 only)";function ye(t){t.bitmarkVersion===2&&I("bitmarkVersion: 2",be);}function X(t){t.explicitTextFormat&&I("bitmarkOptions.explicitTextFormat"),t.cardSetVersion===1&&I("bitmarkOptions.cardSetVersion: 1",be),t.debugGenerationInline&&I("bitmarkOptions.debugGenerationInline"),t.noBreakscaping&&I("bitmarkOptions.noBreakscaping");}function q(t){t.textAsPlainText&&I("jsonOptions.textAsPlainText",be),t.debugGenerationInline&&I("jsonOptions.debugGenerationInline");}function W(t){return t===true?{pretty:true,indent:2}:typeof t=="number"&&t>0?{pretty:true,indent:t}:{pretty:false,indent:2}}function Q(t){return t===void 0||t===true?1:t===false?0:Math.max(0,Math.min(10,t))}function Z(t){switch(t){case "text":case "latex":case "json":case "xml":return "plainText";default:return "bitmark++"}}var Ie=Symbol.for("@gmb/bitmark-parser/legacy-pseudo-ast");function V(t){let e={bits:t};return Object.defineProperty(e,Ie,{value:true,enumerable:false}),e}function je(t){return t!==null&&typeof t=="object"&&(Ie in t||Array.isArray(t.bits))}var Ae={"extractor-image":{key:"images",resourceType:"image"},"extractor-image-collapsible":{key:"images",resourceType:"image"},"images-logo-grave":{key:"logos",resourceType:"image"},"prototype-images":{key:"images",resourceType:"image"}};var _e=Symbol.for("@gmb/bitmark-parser/legacy-built-bit-parser"),_t={bitType:"type",textFormat:"format",flashcards:"cards",markConfig:"marks"},xt={"bitmark--":"bitmark++","bitmark+":"bitmark++"},kt={bitmark:"bitmark++",text:"text",json:"json",latex:"latex",xml:"xml"},wt=["title","subtitle","item","lead","pageNumber","marginNumber","hint","instruction","caption"],ee=class{buildBitmark(e){let r=V(e.bits??[]);return e.errors!==void 0&&(r.errors=e.errors),r}buildBit(e,r){let n=h(),o={...e},s=o.bitType,i=this.getBitConfig(s),p={};p.type=s,o.isCommented&&(p.type="_comment",p.originalType=s),delete o.bitType,delete o.isCommented;let u=o.textFormat;u!==void 0?(p.format=xt[u]??u,delete o.textFormat):p.format=kt[i.bodyFormat??""]??"bitmark++",delete o.resourceType;let c=o.body;c!=null&&typeof c=="object"&&"body"in c&&(p.body=c.body,delete o.body),o.example!==void 0?(p.isExample=true,p.example=o.example,delete o.example,delete o.__isDefaultExample):o.__isDefaultExample&&(p.isExample=true,delete o.__isDefaultExample);let l=o.resources;if(l!==void 0&&s!==void 0){let m=Array.isArray(l)?l:[l],g=Ae[s];g?p[g.key]=m.filter(E=>E!==null&&typeof E=="object"&&E.type===g.resourceType):m.length>=1&&(p.resource=m[0]),delete o.resources;}let d=o.parser;delete o.parser;let f=o.extraProperties;delete o.extraProperties;for(let[m,g]of Object.entries(o))g!==void 0&&(p[_t[m]??m]=g);if(f)for(let[m,g]of Object.entries(f))m in p||(p[m]=g);this.parseStringTexts(p);let y=n.convert(JSON.stringify([{bit:p}]),"json","json","optimized",false,2,1,false,false);if(y.startsWith("error:"))throw new Error(y.slice(6).trim());let k=JSON.parse(y)[0]?.bit??p;for(let[m,g]of Object.entries(p))m in k||g===false||g===""||g===null||Array.isArray(g)&&g.length===0||(k[m]=g);return d!==void 0&&Object.defineProperty(k,_e,{value:d,enumerable:false}),k}buildHighlight(e,r){if(!r)return;let n={...r},o=n.attrs;return o&&Object.assign(n,o),{type:"highlight",texts:Array.isArray(n.texts)?n.texts.filter(p=>p!=null).map(p=>({text:p.text??"",isCorrect:p.isCorrect??false,isHighlighted:p.isHighlighted??false,...Le(p,["text","isCorrect","isHighlighted"])})):[],prefix:n.prefix??"",postfix:n.postfix??"",...Le(n,["type","texts","prefix","postfix","attrs"]),attrs:{}}}parseStringTexts(e){let r=h(),n=(i,p)=>{if(i==="")return i;let u=r.convert_text(i,"textToAst","bitmark++",p);try{return JSON.parse(u)}catch{return i}},o=e.format,s=o===void 0||o==="bitmark++"||o==="bitmark+";if(typeof e.body=="string")if(o==="json")try{e.body=JSON.parse(e.body);}catch{e.body=null;}else s&&(e.body=n(e.body,"body"));for(let i of wt){let p=e[i];typeof p=="string"&&(e[i]=n(p,"tag"));}}getBitConfig(e){let r=h();if(e!==void 0)try{let n=JSON.parse(r.info("bit","json",e,!1,2));if(n.error===void 0)return n}catch{}throw new Error(`No config found for bit: ${e}`)}};function Le(t,e){let r={};for(let[n,o]of Object.entries(t))o!==void 0&&!e.includes(n)&&(r[n]=o);return r}var te=class{version(){return G.version}convert(e,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions),s=Object.assign({},n.bitmarkOptions);ye(n),X(s),q(o),this.checkBrowserFileWrite(n.outputFile);let i=h(),{source:p,isBitmark:u}=this.resolveInput(e,n.inputFormat),c=n.outputFormat??(u?"json":"bitmark"),l=c==="ast"?"json":c,{pretty:d,indent:f}=W(o.prettify),y=l==="bitmark"?W(s.prettifyJson):{pretty:d,indent:f},x=Q(s.spacesAroundValues),k=!o.excludeUnknownProperties,m=i.convert(p,u?"bitmark":"json",l,"optimized",y.pretty,y.indent,x,k,false);if(this.throwOnError(m),c==="bitmark"||c==="text")return this.deliver(m,n.outputFile,n.fileOptions);if(c==="json")return n.outputFile?this.deliver(m,n.outputFile,n.fileOptions):d||o.stringify?m:JSON.parse(m);let g=V(JSON.parse(m));return n.outputFile?this.deliver(JSON.stringify(g),n.outputFile,n.fileOptions):g}upgrade(e,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions),s=Object.assign({},n.bitmarkOptions);ye(n),X(s),q(o),this.checkBrowserFileWrite(n.outputFile);let i=h(),{source:p,isBitmark:u}=this.resolveInput(e,n.inputFormat),{pretty:c,indent:l}=W(u?s.prettifyJson:o.prettify),d=Q(s.spacesAroundValues),f=i.canonicalize(p,u?"bitmark":"json","optimized",c,l,d);return this.throwOnError(f),u?this.deliver(f,n.outputFile,n.fileOptions):n.outputFile?this.deliver(f,n.outputFile,n.fileOptions):c||o.stringify?f:JSON.parse(f)}info(e){let r=Object.assign({},e),n=h(),o=r.type??"list",s=r.outputFormat??"text",{pretty:i,indent:p}=W(r.prettify),u=s==="pojo"?"json":s,c=n.info(o,u,r.bit??"",i,p);return this.throwOnError(c),s==="pojo"?JSON.parse(c):c}generateConfig(e){L("BitmarkParserGenerator.generateConfig","bpg-internal development tool");}convertHtmlTable(e,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions),s=Object.assign({},n.bitmarkOptions);X(s),q(o),n.keepUnknownTags&&I("keepUnknownTags"),n.noBreakscaping&&I("noBreakscaping"),this.checkBrowserFileWrite(n.outputFile);let i=h(),p=typeof e=="string"?this.maybeReadFile(e,void 0):"";if(!(n.inputFormat==="html"||n.inputFormat===void 0&&typeof e=="string"&&/<table[\s>]/iu.test(p))){let{source:E,isBitmark:j}=this.resolveInput(e,void 0),A=i.convert(E,j?"bitmark":"json","html","optimized",false,2,1,false,false);return this.throwOnError(A),this.deliver(xe(A).join(`
3
+ `),n.outputFile,n.fileOptions)}let c=n.tableFormat==="table"?"table":"table-extended",l=xe(p).map(E=>`<bitmark-bit data-type="${c}" data-format="bitmark++">${E}</bitmark-bit>`).join(""),d=n.outputFormat??"bitmark",{pretty:f,indent:y}=W(o.prettify),x=Q(s.spacesAroundValues);if(d==="html"){let E=i.convert(l,"html","html","optimized",false,2,1,false,false);return this.throwOnError(E),this.deliver(xe(E).join(`
4
+ `),n.outputFile,n.fileOptions)}let k=d==="ast"?"json":d,m=i.convert(l,"html",k,"optimized",f,y,x,false,false);if(this.throwOnError(m),d==="bitmark"||d==="text")return this.deliver(m,n.outputFile,n.fileOptions);if(d==="json")return n.outputFile?this.deliver(m,n.outputFile,n.fileOptions):f||o.stringify?m:JSON.parse(m);let g=V(JSON.parse(m));return n.outputFile?this.deliver(JSON.stringify(g),n.outputFile,n.fileOptions):g}createAst(e,r){let n=Object.assign({},r),o=h(),{source:s,isBitmark:i}=this.resolveInput(e,n.inputFormat),p=o.convert(s,i?"bitmark":"json","json","optimized",false,2,1,true,false);return this.throwOnError(p),V(JSON.parse(p))}breakscapeText(e,r){if(!e)return e;let n=Object.assign({},r);this.checkBrowserFileWrite(n.outputFile);let o=h(),s=this.maybeReadFile(e,n.inputFormat),i=o.breakscape_text(s,Z(n.textFormat),n.textLocation??"body");return this.deliver(i,n.outputFile,n.fileOptions)}unbreakscapeText(e,r){if(!e)return e;let n=Object.assign({},r);this.checkBrowserFileWrite(n.outputFile);let o=h(),s=this.maybeReadFile(e,n.inputFormat),i=o.unbreakscape_text(s,Z(n.textFormat),n.textLocation??"body");return this.deliver(i,n.outputFile,n.fileOptions)}convertText(e,r){let n=Object.assign({},r),o=Object.assign({},n.jsonOptions);this.checkBrowserFileWrite(n.outputFile);let s=h(),i=n.textFormat===void 0||Z(n.textFormat)==="bitmark++",p=n.textLocation??"body",u,c;if(typeof e=="string"?(u=this.maybeReadFile(e,n.inputFormat),c=this.parseTextAstString(u)):(u=JSON.stringify(e),c=Array.isArray(e)?e:void 0),c!==void 0){let x=i?s.convert_text(JSON.stringify(c),"astToText","bitmark++",p):s.convert_text(JSON.stringify(c),"astToPlainText","plainText",p);return this.throwOnError(x),this.deliver(x,n.outputFile,n.fileOptions)}let l=s.convert_text(u,"textToAst",i?"bitmark++":"plainText","body");this.throwOnError(l);let{pretty:d,indent:f}=W(o.prettify),y=d?s.prettify(l,f):l;return n.outputFile?this.deliver(y,n.outputFile,n.fileOptions):d?y:JSON.parse(l)}textAstToPlainText(e,r){let o=h().convert_text(typeof e=="string"?e:JSON.stringify(e),"astToPlainText","bitmark++","body");return this.throwOnError(o),o}extractPlainText(e,r){let n=r?.inputFormat,o=h();if(n==="plainText")return typeof e=="string"?String(e):"";if(n==="bitmarkText"){let u=o.convert_text(String(e),"textToAst","bitmark++","body"),c=o.convert_text(u,"astToPlainText","bitmark++","body");return this.throwOnError(c),c}if(typeof e=="string"&&this.parseTextAstString(e)===void 0&&!o.is_bitmark(e)&&!(()=>{try{return JSON.parse(e),!0}catch{return false}})())return this.extractPlainText(e,{inputFormat:"bitmarkText"});let{source:s,isBitmark:i}=this.resolveInput(e,void 0),p=o.convert(s,i?"bitmark":"json","text","optimized",false,2,1,false,false);return this.throwOnError(p),p}parseTextAstString(e){let r=e.trim();if(r.startsWith("["))try{let n=JSON.parse(r);if(Array.isArray(n)&&n.every(o=>o!==null&&typeof o=="object"&&"type"in o))return n}catch{}}resolveInput(e,r){if(typeof e!="string"){let s=this.jsonEntries(e);return {source:JSON.stringify(s?s.map(i=>this.toWrapperEntry(i)):e),isBitmark:false}}let n=this.maybeReadFile(e,r);if(h().is_bitmark(n))return {source:n,isBitmark:true};try{let s=JSON.parse(n),i=this.jsonEntries(s);if(i)return {source:JSON.stringify(i.map(p=>this.toWrapperEntry(p))),isBitmark:!1}}catch{return {source:n,isBitmark:true}}return {source:n,isBitmark:false}}jsonEntries(e){if(Array.isArray(e))return e;if(e!==null&&typeof e=="object"){let r=e;if(Array.isArray(r.bits))return r.bits;if("bit"in r)return [r];if(typeof r.type=="string")return [{bit:r}]}}toWrapperEntry(e){if(e!==null&&typeof e=="object"&&"bit"in e)return e;let r={bit:e},n=e?.[_e];return n!==void 0&&(r.parser=n),r}maybeReadFile(e,r){if(r==="string")return e;return e;}checkBrowserFileWrite(e){if(e&&true)throw new Error("Cannot write to file in browser environment")}deliver(e,r,n){if(!r)return e;throw new Error("Cannot write to file in browser environment");}throwOnError(e){if(e.startsWith("error:"))throw new Error(e.slice(6).trim())}};function xe(t){let e=[],r=t.toLowerCase(),n=0;for(;;){let o=r.indexOf("<table",n);if(o===-1)break;let s=0,i=o,p=-1;for(;i<t.length;){let u=r.indexOf("<table",i),c=r.indexOf("</table",i);if(c===-1)break;if(u!==-1&&u<c)s++,i=u+6;else {s--;let l=r.indexOf(">",c);if(i=l===-1?t.length:l+1,s===0){p=i;break}}}if(p===-1)break;e.push(t.slice(o,p)),n=p;}return e}function Je(t){let e=h().convert_text(t,"textToAst","bitmark++","body");if(e.startsWith("error:"))throw new Error(e.slice(6).trim());return JSON.parse(e)}var R={imageResource:{type:"image",key:"image",valueField:"src"},imageLinkResource:{type:"image-link",key:"imageLink",valueField:"url"},audioResource:{type:"audio",key:"audio",valueField:"src"},audioEmbedResource:{type:"audio-embed",key:"audioEmbed",valueField:"src"},audioLinkResource:{type:"audio-link",key:"audioLink",valueField:"url"},videoResource:{type:"video",key:"video",valueField:"src"},videoEmbedResource:{type:"video-embed",key:"videoEmbed",valueField:"url"},videoLinkResource:{type:"video-link",key:"videoLink",valueField:"url"},stillImageFilmEmbedResource:{type:"still-image-film-embed",key:"stillImageFilmEmbed",valueField:"url"},stillImageFilmLinkResource:{type:"still-image-film-link",key:"stillImageFilmLink",valueField:"url"},articleResource:{type:"article",key:"article",valueField:"body"},documentResource:{type:"document",key:"document",valueField:"url"},documentEmbedResource:{type:"document-embed",key:"documentEmbed",valueField:"url"},documentLinkResource:{type:"document-link",key:"documentLink",valueField:"url"},documentDownloadResource:{type:"document-download",key:"documentDownload",valueField:"url"},appLinkResource:{type:"app-link",key:"appLink",valueField:"url"},websiteLinkResource:{type:"website-link",key:"websiteLink",valueField:"url"}};function O(t){return (e,r,n)=>{if(!r)return;let{value:o,...s}=r,i={[t.valueField]:o??""};for(let[p,u]of Object.entries(s))u!==void 0&&(i[p]=u);return {type:t.type,[t.key]:i}}}var We=Object.fromEntries(Object.values(R).map(t=>[t.type,t])),ne=class{constructor(){T(this,"imageResource",O(R.imageResource));T(this,"imageLinkResource",O(R.imageLinkResource));T(this,"audioResource",O(R.audioResource));T(this,"audioEmbedResource",O(R.audioEmbedResource));T(this,"audioLinkResource",O(R.audioLinkResource));T(this,"videoResource",O(R.videoResource));T(this,"videoEmbedResource",O(R.videoEmbedResource));T(this,"videoLinkResource",O(R.videoLinkResource));T(this,"stillImageFilmEmbedResource",O(R.stillImageFilmEmbedResource));T(this,"stillImageFilmLinkResource",O(R.stillImageFilmLinkResource));T(this,"articleResource",O(R.articleResource));T(this,"documentResource",O(R.documentResource));T(this,"documentEmbedResource",O(R.documentEmbedResource));T(this,"documentLinkResource",O(R.documentLinkResource));T(this,"documentDownloadResource",O(R.documentDownloadResource));T(this,"appLinkResource",O(R.appLinkResource));T(this,"websiteLinkResource",O(R.websiteLinkResource));}resourceFromResourceJson(e,r){if(!r)return;let n=!Array.isArray(r),o=n?[r]:r,s=[];for(let i of o){let p=We[i.type];if(!p)continue;let u=i[p.key]??{},{[p.valueField]:c,...l}=u,d=O(p)(void 0,{value:c,...l});d&&s.push(d);}if(s.length!==0)return n?s[0]:s}resourceFromResourceDataJson(e,r,n){if(!n)return;let o=We[r];if(!o)return;let s=typeof n=="string"?n:void 0,i=typeof n=="object"?n:{},{url:p,src:u,body:c,...l}=i,d=p??u??c??s;return O(o)(e,{value:d,...l})}};var ht={string:"string",file:"file"},Ot={bitmark:"bitmark",json:"json",ast:"ast",text:"text"},Tt={bitmark:"bitmark",bitmarkText:"bitmarkText",plainText:"plainText",html:"html"},Ft={v2:2,v3:3},vt={v1:1,v2:2},Rt={peggy:"peggy"},Et={list:"list",deprecated:"deprecated",all:"all",bit:"bit"},Pt={text:"text",json:"json",pojo:"pojo"},Bt={plainText:"text",latex:"latex",json:"json",xml:"xml",bitmarkPlusPlus:"bitmark++"},St={tag:"tag",body:"body"};var Ne={bold:"bold",light:"light",italic:"italic",highlight:"highlight",highlightOrange:"highlightOrange",highlightYellow:"highlightYellow",highlightGreen:"highlightGreen",highlightBlue:"highlightBlue",highlightPurple:"highlightPurple",highlightPink:"highlightPink",highlightBrown:"highlightBrown",highlightBlack:"highlightBlack",highlightWhite:"highlightWhite",highlightGray:"highlightGray",strike:"strike",subscript:"subscript",superscript:"superscript",ins:"ins",del:"del",underline:"underline",doubleUnderline:"doubleUnderline",circle:"circle",languageEmRed:"languageEmRed",languageEmOrange:"languageEmOrange",languageEmYellow:"languageEmYellow",languageEmGreen:"languageEmGreen",languageEmBlue:"languageEmBlue",languageEmPurple:"languageEmPurple",languageEmPink:"languageEmPink",languageEmBrown:"languageEmBrown",languageEmBlack:"languageEmBlack",languageEmWhite:"languageEmWhite",languageEmGray:"languageEmGray",languageEm:"languageEm",userUnderline:"userUnderline",userDoubleUnderline:"userDoubleUnderline",userStrike:"userStrike",userCircle:"userCircle",userHighlight:"userHighlight",notranslate:"notranslate",link:"link",ref:"ref",xref:"xref",extref:"extref",footnote:"footnote",footnoteStar:"footnote*",symbol:"symbol",var:"var",code:"code",timer:"timer",duration:"duration",color:"color",colorPicker:"colorPicker",comment:"comment"},Ce={text:"text",hardBreak:"hardBreak",paragraph:"paragraph",heading:"heading",section:"section",noBulletList:"noBulletList",bulletList:"bulletList",orderedList:"orderedList",orderedListRoman:"orderedListRoman",orderedListRomanLower:"orderedListRomanLower",letteredList:"letteredList",letteredListLower:"letteredListLower",taskList:"taskList",listItem:"listItem",taskItem:"taskItem",image:"image",imageInline:"imageInline",codeBlock:"codeBlock",latex:"latex",gap:"gap",select:"select",highlight:"highlight",mark:"mark"};function It(t){return t.replace(/-([a-z0-9])/gu,(e,r)=>r.toUpperCase())}var ke;function z(){if(!ke){let t=h(),e=JSON.parse(t.info("all","json","",false,2)),r={_standard:"_standard"};for(let{name:n}of e)r[It(n)]=n;ke=r;}return ke}var Ve=new Proxy({},{get:(t,e)=>typeof e=="string"?z()[e]:void 0,has:(t,e)=>typeof e=="string"&&e in z(),ownKeys:()=>Reflect.ownKeys(z()),getOwnPropertyDescriptor:(t,e)=>typeof e=="string"&&e in z()?{value:z()[e],enumerable:true,configurable:true,writable:false}:void 0});function Me(t,e){return new Proxy({},{get:(r,n)=>n===Symbol.toPrimitive||n==="toString"||n===Symbol.toStringTag?()=>`[unsupported ${t}]`:L(t,e),has:()=>L(t,e),ownKeys:()=>L(t,e)})}var He=Me("NodeType","it names bpg's internal AST nodes; the legacy AST is bit JSON (see createAst)"),Ue=Me("BoundingBoxIndex","bpg-internal bounding-box utility");function P(t,e){return class{constructor(){L(t,e);}}}var jt="the legacy AST is bit JSON, not bpg's internal node model; walking it with bpg NodeType names would silently misbehave",B="internal class of bpg's TS implementation",Ge=P("Ast",jt),ze=P("BitmarkGenerator",B),De=P("BitmarkStringGenerator",B),$e=P("BitmarkFileGenerator",B),Ke=P("JsonGenerator",B),Ye=P("JsonStringGenerator",B),Xe=P("JsonFileGenerator",B),qe=P("HtmlTableGenerator",B),Qe=P("HtmlTableParser",B),Ze=P("BitmarkParser",B),et=P("JsonParser",B),tt=P("StringWriter",B),nt=P("FileWriter",B),rt=P("StreamWriter",B);function At(t,e,r){return r===void 0?{path:t,op:e}:{path:t,op:e,value:r}}Se(U);async function $n(t){return typeof t>"u"&&(t=new URL(`bitmark_wasm_bg.wasm?v=${G.version}`,import.meta.url)),de(t)}function Kn(){return G.version}function Yn(t,e={}){return oe(t,e.stage??"lex")}function Xn(t,e={}){let r=H(t,"bitmark","json",e.mode??"optimized",false,2,1,e.includeUnknownProperties??false,false);if(r.startsWith("error:"))throw new Error(r.slice(6).trim());return JSON.parse(r)}function qn(t,e={}){let r=t.map(o=>o!==null&&typeof o=="object"&&"bit"in o&&typeof o.bit=="object"?o:{bit:o}),n=H(JSON.stringify(r),"json","bitmark",e.mode??"optimized",false,2,1,false,false);if(n.startsWith("error:"))throw new Error(n.slice(6).trim());return n}function Qn(t,e={}){return H(t,e.inputFormat??"auto",e.outputFormat??"auto",e.mode??"optimized",e.pretty??false,e.indent??2,e.spacesAroundValues??1,e.includeUnknownProperties??false,e.mappingReport??false)}function Zn(t,e={}){return ue(t,e.inputFormat??"auto",e.mode??"optimized",e.pretty??false,e.indent??2,e.spacesAroundValues??1)}function er(t){let e=ce(t);if(e.startsWith("error:"))throw new Error(e);return Number.parseInt(e,10)}function tr(t){return JSON.parse(le(t))}function nr(t,e={}){if(e.preHook||e.postHook)return Ee(U,t,e);let r=e.patch===void 0?"":typeof e.patch=="string"?e.patch:JSON.stringify(e.patch);return pe(t,e.inputFormat??"auto",e.outputFormat??"json",e.mode??"optimized",r,e.pretty??false,e.indent??2,e.spacesAroundValues??1)}function rr(t,e={}){return Pe(U,t,e,Be)}function or(t,e={}){let r=e.format??"bitmark++",n=e.location??"body";return ie(t,r,n)}function ir(t,e={}){let r=e.format??"bitmark++",n=e.location??"body";return se(t,r,n)}function sr(t={}){let e=t.infoType??"list",r=t.format??"text",n=t.bit??"",o=t.pretty??false,s=t.indent??2;return ae(e,r,n,o,s)}export{Xn as bitmarkToObjects,or as breakscapeText,Zn as canonicalize,Qn as convert,er as countBits,sr as info,$n as init,ve as initSync,ot as legacy,Yn as lex,qn as objectsToBitmark,At as patchEntry,tr as splitBits,nr as transform,rr as transformParallel,ir as unbreakscapeText,Kn as version};//# sourceMappingURL=bitmark-parser.min.js.map
5
5
  //# sourceMappingURL=bitmark-parser.min.js.map