@gmb/bitmark-parser 6.1.2 → 6.1.3
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 +17 -17
- package/bin/bitmark +55 -0
- package/bin/bitmark.cmd +16 -0
- package/dist/browser/bitmark-parser.min.js +2 -2
- package/dist/browser/bitmark-parser.min.js.map +1 -1
- package/dist/browser/bitmark_wasm_bg.wasm +0 -0
- package/dist/browser/cjs/bitmark_wasm_bg.wasm +0 -0
- package/dist/browser/cjs/index.cjs +32 -25
- package/dist/browser/cjs/index.cjs.map +1 -1
- package/dist/browser/cjs/index.d.cts +23 -8
- package/dist/browser/esm/bitmark_wasm_bg.wasm +0 -0
- package/dist/browser/esm/index.d.ts +23 -8
- package/dist/browser/esm/index.js +32 -25
- package/dist/browser/esm/index.js.map +1 -1
- package/dist/browser/esm/worker-entry.js.map +1 -1
- package/dist/index.cjs +4 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +22 -7
- package/dist/index.d.ts +22 -7
- package/dist/index.js +4 -3
- package/dist/index.js.map +1 -1
- package/package.json +8 -9
- package/wasm/bitmark_wasm.d.ts +12 -3
- package/wasm/bitmark_wasm.js +40 -22
- package/wasm/bitmark_wasm_bg.wasm +0 -0
- package/wasm/bitmark_wasm_bg.wasm.d.ts +3 -3
- package/wasm/package.json +1 -1
- package/bin/bitmark-parser.js +0 -25
- package/lib/binary.js +0 -61
package/README.md
CHANGED
|
@@ -104,42 +104,42 @@ Generate bitmark text from JSON. **Not yet implemented** — throws an error.
|
|
|
104
104
|
|
|
105
105
|
## CLI
|
|
106
106
|
|
|
107
|
-
The CLI binary is `bitmark
|
|
107
|
+
The CLI binary is `bitmark`.
|
|
108
108
|
|
|
109
109
|
```bash
|
|
110
110
|
# Convert bitmark to JSON (auto-detects format)
|
|
111
|
-
bitmark
|
|
112
|
-
bitmark
|
|
111
|
+
bitmark convert input.bitmark
|
|
112
|
+
bitmark convert input.bitmark -o output.json
|
|
113
113
|
|
|
114
114
|
# Convert JSON to bitmark
|
|
115
|
-
bitmark
|
|
115
|
+
bitmark convert input.json -o output.bitmark
|
|
116
116
|
|
|
117
117
|
# Convert with options
|
|
118
|
-
bitmark
|
|
118
|
+
bitmark convert input.bitmark --mode full --pretty --warnings
|
|
119
119
|
|
|
120
120
|
# Parse a bitmark file to JSON
|
|
121
|
-
bitmark
|
|
122
|
-
bitmark
|
|
123
|
-
bitmark
|
|
121
|
+
bitmark parse input.bitmark
|
|
122
|
+
bitmark parse input.bitmark -o output.json
|
|
123
|
+
bitmark parse input.bitmark --mode full
|
|
124
124
|
|
|
125
125
|
# Lex instead of parse
|
|
126
|
-
bitmark
|
|
126
|
+
bitmark parse --stage=lex input.bitmark
|
|
127
127
|
|
|
128
128
|
# Available stages: all (default), lex
|
|
129
|
-
bitmark
|
|
129
|
+
bitmark parse --stage=lex input.bitmark
|
|
130
130
|
|
|
131
131
|
# Breakscape / unbreakscape text
|
|
132
|
-
bitmark
|
|
133
|
-
bitmark
|
|
134
|
-
bitmark
|
|
132
|
+
bitmark breakscape input.txt
|
|
133
|
+
bitmark breakscape input.txt --format plainText --location tag
|
|
134
|
+
bitmark unbreakscape input.txt
|
|
135
135
|
|
|
136
136
|
# Query bit type information
|
|
137
|
-
bitmark
|
|
138
|
-
bitmark
|
|
139
|
-
bitmark
|
|
137
|
+
bitmark info
|
|
138
|
+
bitmark info all -f json --pretty
|
|
139
|
+
bitmark info bit --bit article
|
|
140
140
|
|
|
141
141
|
# Generate bitmark from JSON (not yet implemented)
|
|
142
|
-
bitmark
|
|
142
|
+
bitmark generate input.json output.bitmark
|
|
143
143
|
```
|
|
144
144
|
|
|
145
145
|
All commands support `-o, --output <file>` and `-a, --append` flags. Commands that accept input support file paths, literal strings, or stdin (when no arguments are given).
|
package/bin/bitmark
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# bitmark CLI launcher (POSIX). Resolves the prebuilt native `bitmark` binary
|
|
2
|
+
# for this platform from its @gmb/bitmark-parser-<os>-<arch> package and execs
|
|
3
|
+
# it, forwarding args, stdio and the exit code. PLAN-111.
|
|
4
|
+
#
|
|
5
|
+
# NO `#!` shebang ON PURPOSE: npm's Windows cmd-shim reads the shebang and, if
|
|
6
|
+
# present, routes the generated .cmd through that interpreter — which would
|
|
7
|
+
# bypass the sibling `bitmark.cmd`. With no shebang the shim does an
|
|
8
|
+
# extension-less call so Windows' PATHEXT resolves `bitmark.cmd`, while Unix
|
|
9
|
+
# runs this file via the shell. Keep it shebang-less.
|
|
10
|
+
set -e
|
|
11
|
+
|
|
12
|
+
# Resolve symlinks ($0 is npm's node_modules/.bin/bitmark symlink) to find the
|
|
13
|
+
# real location of this script inside the installed package.
|
|
14
|
+
self="$0"
|
|
15
|
+
while [ -h "$self" ]; do
|
|
16
|
+
link=$(readlink "$self")
|
|
17
|
+
case "$link" in
|
|
18
|
+
/*) self="$link" ;;
|
|
19
|
+
*) self="$(dirname -- "$self")/$link" ;;
|
|
20
|
+
esac
|
|
21
|
+
done
|
|
22
|
+
dir=$(CDPATH= cd -- "$(dirname -- "$self")" && pwd)
|
|
23
|
+
|
|
24
|
+
case "$(uname -s)" in
|
|
25
|
+
Linux) os=linux ;;
|
|
26
|
+
Darwin) os=darwin ;;
|
|
27
|
+
*) os=$(uname -s) ;;
|
|
28
|
+
esac
|
|
29
|
+
case "$(uname -m)" in
|
|
30
|
+
x86_64 | amd64) arch=x64 ;;
|
|
31
|
+
aarch64 | arm64) arch=arm64 ;;
|
|
32
|
+
*) arch=$(uname -m) ;;
|
|
33
|
+
esac
|
|
34
|
+
pkg="bitmark-parser-$os-$arch"
|
|
35
|
+
|
|
36
|
+
# Candidate locations for the platform package's binary: the hoisted sibling
|
|
37
|
+
# (normal install — global and local) first, then nested under this package
|
|
38
|
+
# (npm fallback / the e2e test's throwaway package).
|
|
39
|
+
binary=""
|
|
40
|
+
for candidate in \
|
|
41
|
+
"$dir/../../$pkg/bin/bitmark" \
|
|
42
|
+
"$dir/../node_modules/@gmb/$pkg/bin/bitmark"; do
|
|
43
|
+
if [ -x "$candidate" ]; then
|
|
44
|
+
binary="$candidate"
|
|
45
|
+
break
|
|
46
|
+
fi
|
|
47
|
+
done
|
|
48
|
+
|
|
49
|
+
if [ -z "$binary" ]; then
|
|
50
|
+
echo "bitmark: no prebuilt binary for $os-$arch (looked for @gmb/$pkg)." >&2
|
|
51
|
+
echo "Install from source instead: cargo install bitmark" >&2
|
|
52
|
+
exit 1
|
|
53
|
+
fi
|
|
54
|
+
|
|
55
|
+
exec "$binary" "$@"
|
package/bin/bitmark.cmd
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
@ECHO off
|
|
2
|
+
REM bitmark CLI launcher (Windows). Sibling of `bin/bitmark`; npm's cmd-shim
|
|
3
|
+
REM does an extension-less call to `...\bin\bitmark`, which PATHEXT resolves to
|
|
4
|
+
REM this .cmd. Resolves the prebuilt native bitmark.exe and runs it. PLAN-111.
|
|
5
|
+
SETLOCAL
|
|
6
|
+
SET "pkg=bitmark-parser-win32-x64"
|
|
7
|
+
SET "binary="
|
|
8
|
+
IF EXIST "%~dp0..\..\%pkg%\bin\bitmark.exe" SET "binary=%~dp0..\..\%pkg%\bin\bitmark.exe"
|
|
9
|
+
IF NOT DEFINED binary IF EXIST "%~dp0..\node_modules\@gmb\%pkg%\bin\bitmark.exe" SET "binary=%~dp0..\node_modules\@gmb\%pkg%\bin\bitmark.exe"
|
|
10
|
+
IF NOT DEFINED binary (
|
|
11
|
+
ECHO bitmark: no prebuilt binary for win32-x64 ^(looked for @gmb/%pkg%^).>&2
|
|
12
|
+
ECHO Install from source instead: cargo install bitmark>&2
|
|
13
|
+
EXIT /b 1
|
|
14
|
+
)
|
|
15
|
+
"%binary%" %*
|
|
16
|
+
EXIT /b %ERRORLEVEL%
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var _t=Object.defineProperty;var at=(t,e)=>{for(var r in e)_t(t,r,{get:e[r],enumerable:true});};var E={};at(E,{breakscape_text:()=>H,canonicalize:()=>C,convert:()=>R,count_bits:()=>D,default:()=>$,fullize:()=>U,info:()=>N,initSync:()=>tt,is_bitmark:()=>ut,lex:()=>z,optimize:()=>L,parse:()=>j,prettify:()=>dt,split_bits:()=>G,split_json_bits:()=>pt,transform:()=>M,unbreakscape_text:()=>V});var n,d=0,W=null;function F(){return (W===null||W.byteLength===0)&&(W=new Uint8Array(n.memory.buffer)),W}var B=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},ct=typeof B.encodeInto=="function"?function(t,e){return B.encodeInto(t,e)}:function(t,e){let r=B.encode(t);return e.set(r),{read:t.length,written:r.length}};function u(t,e,r){if(r===void 0){let a=B.encode(t),c=e(a.length,1)>>>0;return F().subarray(c,c+a.length).set(a),d=a.length,c}let i=t.length,_=e(i,1)>>>0,s=F(),o=0;for(;o<i;o++){let a=t.charCodeAt(o);if(a>127)break;s[_+o]=a;}if(o!==i){o!==0&&(t=t.slice(o)),_=r(_,i,i=o+t.length*3,1)>>>0;let a=F().subarray(_+o,_+i),c=ct(t,a);o+=c.written,_=r(_,i,o,1)>>>0;}return d=o,_}var v=null;function f(){return (v===null||v.buffer.detached===true||v.buffer.detached===void 0&&v.buffer!==n.memory.buffer)&&(v=new DataView(n.memory.buffer)),v}var X=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:true,fatal:true}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&X.decode();function y(t,e){return t=t>>>0,X.decode(F().subarray(t,t+e))}function z(t,e){let r,i;try{let o=n.__wbindgen_add_to_stack_pointer(-16),a=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),c=d,p=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),l=d;n.lex(o,a,c,p,l);var _=f().getInt32(o+0,!0),s=f().getInt32(o+4,!0);return r=_,i=s,y(_,s)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(r,i,1);}}function j(t,e){let r,i;try{let o=n.__wbindgen_add_to_stack_pointer(-16),a=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),c=d,p=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),l=d;n.parse(o,a,c,p,l);var _=f().getInt32(o+0,!0),s=f().getInt32(o+4,!0);return r=_,i=s,y(_,s)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(r,i,1);}}function H(t,e,r){let i,_;try{let a=n.__wbindgen_add_to_stack_pointer(-16),c=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),p=d,l=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),g=d,b=u(r,n.__wbindgen_export_0,n.__wbindgen_export_1),w=d;n.breakscape_text(a,c,p,l,g,b,w);var s=f().getInt32(a+0,!0),o=f().getInt32(a+4,!0);return i=s,_=o,y(s,o)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(i,_,1);}}function V(t,e,r){let i,_;try{let a=n.__wbindgen_add_to_stack_pointer(-16),c=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),p=d,l=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),g=d,b=u(r,n.__wbindgen_export_0,n.__wbindgen_export_1),w=d;n.unbreakscape_text(a,c,p,l,g,b,w);var s=f().getInt32(a+0,!0),o=f().getInt32(a+4,!0);return i=s,_=o,y(s,o)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(i,_,1);}}function pt(t){let e,r;try{let s=n.__wbindgen_add_to_stack_pointer(-16),o=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),a=d;n.split_json_bits(s,o,a);var i=f().getInt32(s+0,!0),_=f().getInt32(s+4,!0);return e=i,r=_,y(i,_)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(e,r,1);}}function dt(t,e){let r,i;try{let o=n.__wbindgen_add_to_stack_pointer(-16),a=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),c=d;n.prettify(o,a,c,e);var _=f().getInt32(o+0,!0),s=f().getInt32(o+4,!0);return r=_,i=s,y(_,s)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(r,i,1);}}function M(t,e,r,i,_,s,o,a){let c,p;try{let b=n.__wbindgen_add_to_stack_pointer(-16),w=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),m=d,x=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),k=d,h=u(r,n.__wbindgen_export_0,n.__wbindgen_export_1),T=d,O=u(i,n.__wbindgen_export_0,n.__wbindgen_export_1),J=d,it=u(_,n.__wbindgen_export_0,n.__wbindgen_export_1),st=d;n.transform(b,w,m,x,k,h,T,O,J,it,st,s,o,a);var l=f().getInt32(b+0,!0),g=f().getInt32(b+4,!0);return c=l,p=g,y(l,g)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(c,p,1);}}function N(t,e,r,i,_){let s,o;try{let p=n.__wbindgen_add_to_stack_pointer(-16),l=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),g=d,b=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),w=d,m=u(r,n.__wbindgen_export_0,n.__wbindgen_export_1),x=d;n.info(p,l,g,b,w,m,x,i,_);var a=f().getInt32(p+0,!0),c=f().getInt32(p+4,!0);return s=a,o=c,y(a,c)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(s,o,1);}}function R(t,e,r,i,_,s,o){let a,c;try{let g=n.__wbindgen_add_to_stack_pointer(-16),b=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),w=d,m=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),x=d,k=u(r,n.__wbindgen_export_0,n.__wbindgen_export_1),h=d,T=u(i,n.__wbindgen_export_0,n.__wbindgen_export_1),O=d;n.convert(g,b,w,m,x,k,h,T,O,_,s,o);var p=f().getInt32(g+0,!0),l=f().getInt32(g+4,!0);return a=p,c=l,y(p,l)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(a,c,1);}}function L(t,e,r){let i,_;try{let a=n.__wbindgen_add_to_stack_pointer(-16),c=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),p=d;n.optimize(a,c,p,e,r);var s=f().getInt32(a+0,!0),o=f().getInt32(a+4,!0);return i=s,_=o,y(s,o)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(i,_,1);}}function U(t,e,r){let i,_;try{let a=n.__wbindgen_add_to_stack_pointer(-16),c=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),p=d;n.fullize(a,c,p,e,r);var s=f().getInt32(a+0,!0),o=f().getInt32(a+4,!0);return i=s,_=o,y(s,o)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(i,_,1);}}function C(t,e,r,i,_){let s,o;try{let p=n.__wbindgen_add_to_stack_pointer(-16),l=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),g=d,b=u(e,n.__wbindgen_export_0,n.__wbindgen_export_1),w=d;n.canonicalize(p,l,g,b,w,r,i,_);var a=f().getInt32(p+0,!0),c=f().getInt32(p+4,!0);return s=a,o=c,y(a,c)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(s,o,1);}}function D(t){let e,r;try{let s=n.__wbindgen_add_to_stack_pointer(-16),o=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),a=d;n.count_bits(s,o,a);var i=f().getInt32(s+0,!0),_=f().getInt32(s+4,!0);return e=i,r=_,y(i,_)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(e,r,1);}}function G(t){let e,r;try{let s=n.__wbindgen_add_to_stack_pointer(-16),o=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),a=d;n.split_bits(s,o,a);var i=f().getInt32(s+0,!0),_=f().getInt32(s+4,!0);return e=i,r=_,y(i,_)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(e,r,1);}}function ut(t){let e=u(t,n.__wbindgen_export_0,n.__wbindgen_export_1),r=d;return n.is_bitmark(e,r)!==0}async function ft(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(i){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",i);else throw i}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 Y(){let t={};return t.wbg={},t}function Z(t,e){return n=t.exports,et.__wbindgen_wasm_module=e,v=null,W=null,n}function tt(t){if(n!==void 0)return n;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=Y();t instanceof WebAssembly.Module||(t=new WebAssembly.Module(t));let r=new WebAssembly.Instance(t,e);return Z(r,t)}async function et(t){if(n!==void 0)return n;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=Y();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));let{instance:r,module:i}=await ft(await t,e);return Z(r,i)}var $=et;var q={version:"6.1.2"};function I(t){return t.startsWith("error:")}function S(t){let e=t instanceof Error?t.message:String(t);return e.startsWith("error:")?e:`error: ${e}`}function lt(t){let e=t.trim();return e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):t}function gt(t){if(t===void 0)return [];if(typeof t=="string"){let e=t.trim();return e===""?[]:JSON.parse(e)}return t}function bt(t,e,r){if(r){let s=t.split_bits(e);if(I(s))throw new Error(s);let o=JSON.parse(s);return o.map(a=>({view:{format:"bitmark",index:a.index,total:o.length,source:a.source},source:a.source}))}let i=t.split_json_bits(e);if(I(i))throw new Error(i);let _=JSON.parse(i);return _.map((s,o)=>({view:{format:"json",index:o,total:_.length,bit:s.bit},source:JSON.stringify([s])}))}function K(t,e,r){let i=r.mode??"optimized",_=r.outputFormat??"json",s=r.spacesAroundValues??1,o=r.indent??2,a=r.pretty??false,c=r.inputFormat??"auto",p=c==="bitmark"||c!=="json"&&t.is_bitmark(e),l=p?"bitmark":"json",g=gt(r.patch),b=bt(t,e,p),w=b.length,m=[],x=[];for(let k=0;k<w;k++){let{view:h,source:T}=b[k];h.index=k,h.total=w;let O=r.preHook?r.preHook(h)||{}:{};if(O.drop)continue;let J=O.patches?[...g,...O.patches]:g;m.push({index:k,source:T,inputFormat:l,outputFormat:O.outputFormat??_,mode:i,patchJson:JSON.stringify(J),spacesAroundValues:s}),x.push(h);}return {jobs:m,views:x,output:_,pretty:a,indent:o}}function mt(t,e){let r=t.transform(e.source,e.inputFormat,e.outputFormat,e.mode,e.patchJson,false,2,e.spacesAroundValues);return I(r)?r:e.outputFormat==="json"?lt(r):r}function Q(t,e,r,i,_){if(r==="bitmark"||r==="text")return e.join(`
|
|
2
|
-
`);let s=`[${e.join(",")}]`;return i?t.prettify(s,_):s}function nt(t,e,r){let i;try{i=K(t,e,r);}catch(s){return S(s)}let _=[];for(let s=0;s<i.jobs.length;s++){let o=mt(t,i.jobs[s]);if(I(o))return o;r.postHook?.(i.views[s],o),_.push(o);}return Q(t,_,i.output,i.pretty,i.indent)}async function rt(t,e,r,i){let _;try{_=K(t,e,r);}catch(o){return S(o)}let s;try{s=await i(_.jobs,r.workers??4);}catch(o){return S(o)}for(let o=0;o<s.length;o++){if(I(s[o]))return s[o];r.postHook?.(_.views[o],s[o]);}return Q(t,s,_.output,_.pretty,_.indent)}function ot(t,e){if(t.length===0)return Promise.resolve([]);let r=Math.max(1,Math.min(e,t.length)),i=new URL("./worker-entry.js",import.meta.url);return new Promise((_,s)=>{let o=new Array(t.length),a=0,c=0,
|
|
1
|
+
var _t=Object.defineProperty;var at=(t,e)=>{for(var r in e)_t(t,r,{get:e[r],enumerable:true});};var E={};at(E,{breakscape_text:()=>H,canonicalize:()=>C,convert:()=>R,count_bits:()=>D,default:()=>$,fullize:()=>U,info:()=>N,initSync:()=>tt,is_bitmark:()=>ut,lex:()=>z,optimize:()=>L,parse:()=>j,prettify:()=>dt,split_bits:()=>G,split_json_bits:()=>pt,transform:()=>M,unbreakscape_text:()=>V});var n,p=0,W=null;function A(){return (W===null||W.byteLength===0)&&(W=new Uint8Array(n.memory.buffer)),W}var B=typeof TextEncoder<"u"?new TextEncoder("utf-8"):{encode:()=>{throw Error("TextEncoder not available")}},ct=typeof B.encodeInto=="function"?function(t,e){return B.encodeInto(t,e)}:function(t,e){let r=B.encode(t);return e.set(r),{read:t.length,written:r.length}};function d(t,e,r){if(r===void 0){let a=B.encode(t),c=e(a.length,1)>>>0;return A().subarray(c,c+a.length).set(a),p=a.length,c}let i=t.length,_=e(i,1)>>>0,s=A(),o=0;for(;o<i;o++){let a=t.charCodeAt(o);if(a>127)break;s[_+o]=a;}if(o!==i){o!==0&&(t=t.slice(o)),_=r(_,i,i=o+t.length*3,1)>>>0;let a=A().subarray(_+o,_+i),c=ct(t,a);o+=c.written,_=r(_,i,o,1)>>>0;}return p=o,_}var v=null;function l(){return (v===null||v.buffer.detached===true||v.buffer.detached===void 0&&v.buffer!==n.memory.buffer)&&(v=new DataView(n.memory.buffer)),v}var X=typeof TextDecoder<"u"?new TextDecoder("utf-8",{ignoreBOM:true,fatal:true}):{decode:()=>{throw Error("TextDecoder not available")}};typeof TextDecoder<"u"&&X.decode();function k(t,e){return t=t>>>0,X.decode(A().subarray(t,t+e))}function z(t,e){let r,i;try{let o=n.__wbindgen_add_to_stack_pointer(-16),a=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),c=p,u=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),f=p;n.lex(o,a,c,u,f);var _=l().getInt32(o+0,!0),s=l().getInt32(o+4,!0);return r=_,i=s,k(_,s)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(r,i,1);}}function j(t,e){let r,i;try{let o=n.__wbindgen_add_to_stack_pointer(-16),a=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),c=p,u=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),f=p;n.parse(o,a,c,u,f);var _=l().getInt32(o+0,!0),s=l().getInt32(o+4,!0);return r=_,i=s,k(_,s)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(r,i,1);}}function H(t,e,r){let i,_;try{let a=n.__wbindgen_add_to_stack_pointer(-16),c=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),u=p,f=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),g=p,b=d(r,n.__wbindgen_export_0,n.__wbindgen_export_1),x=p;n.breakscape_text(a,c,u,f,g,b,x);var s=l().getInt32(a+0,!0),o=l().getInt32(a+4,!0);return i=s,_=o,k(s,o)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(i,_,1);}}function V(t,e,r){let i,_;try{let a=n.__wbindgen_add_to_stack_pointer(-16),c=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),u=p,f=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),g=p,b=d(r,n.__wbindgen_export_0,n.__wbindgen_export_1),x=p;n.unbreakscape_text(a,c,u,f,g,b,x);var s=l().getInt32(a+0,!0),o=l().getInt32(a+4,!0);return i=s,_=o,k(s,o)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(i,_,1);}}function pt(t){let e,r;try{let s=n.__wbindgen_add_to_stack_pointer(-16),o=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),a=p;n.split_json_bits(s,o,a);var i=l().getInt32(s+0,!0),_=l().getInt32(s+4,!0);return e=i,r=_,k(i,_)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(e,r,1);}}function dt(t,e){let r,i;try{let o=n.__wbindgen_add_to_stack_pointer(-16),a=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),c=p;n.prettify(o,a,c,e);var _=l().getInt32(o+0,!0),s=l().getInt32(o+4,!0);return r=_,i=s,k(_,s)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(r,i,1);}}function M(t,e,r,i,_,s,o,a){let c,u;try{let b=n.__wbindgen_add_to_stack_pointer(-16),x=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),m=p,w=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),y=p,h=d(r,n.__wbindgen_export_0,n.__wbindgen_export_1),T=p,O=d(i,n.__wbindgen_export_0,n.__wbindgen_export_1),J=p,it=d(_,n.__wbindgen_export_0,n.__wbindgen_export_1),st=p;n.transform(b,x,m,w,y,h,T,O,J,it,st,s,o,a);var f=l().getInt32(b+0,!0),g=l().getInt32(b+4,!0);return c=f,u=g,k(f,g)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(c,u,1);}}function N(t,e,r,i,_){let s,o;try{let u=n.__wbindgen_add_to_stack_pointer(-16),f=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),g=p,b=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),x=p,m=d(r,n.__wbindgen_export_0,n.__wbindgen_export_1),w=p;n.info(u,f,g,b,x,m,w,i,_);var a=l().getInt32(u+0,!0),c=l().getInt32(u+4,!0);return s=a,o=c,k(a,c)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(s,o,1);}}function R(t,e,r,i,_,s,o){let a,c;try{let g=n.__wbindgen_add_to_stack_pointer(-16),b=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),x=p,m=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),w=p,y=d(r,n.__wbindgen_export_0,n.__wbindgen_export_1),h=p,T=d(i,n.__wbindgen_export_0,n.__wbindgen_export_1),O=p;n.convert(g,b,x,m,w,y,h,T,O,_,s,o);var u=l().getInt32(g+0,!0),f=l().getInt32(g+4,!0);return a=u,c=f,k(u,f)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(a,c,1);}}function L(t,e,r,i){let _,s;try{let c=n.__wbindgen_add_to_stack_pointer(-16),u=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),f=p,g=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),b=p;n.optimize(c,u,f,g,b,r,i);var o=l().getInt32(c+0,!0),a=l().getInt32(c+4,!0);return _=o,s=a,k(o,a)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(_,s,1);}}function U(t,e,r,i){let _,s;try{let c=n.__wbindgen_add_to_stack_pointer(-16),u=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),f=p,g=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),b=p;n.fullize(c,u,f,g,b,r,i);var o=l().getInt32(c+0,!0),a=l().getInt32(c+4,!0);return _=o,s=a,k(o,a)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(_,s,1);}}function C(t,e,r,i,_,s){let o,a;try{let f=n.__wbindgen_add_to_stack_pointer(-16),g=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),b=p,x=d(e,n.__wbindgen_export_0,n.__wbindgen_export_1),m=p,w=d(r,n.__wbindgen_export_0,n.__wbindgen_export_1),y=p;n.canonicalize(f,g,b,x,m,w,y,i,_,s);var c=l().getInt32(f+0,!0),u=l().getInt32(f+4,!0);return o=c,a=u,k(c,u)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(o,a,1);}}function D(t){let e,r;try{let s=n.__wbindgen_add_to_stack_pointer(-16),o=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),a=p;n.count_bits(s,o,a);var i=l().getInt32(s+0,!0),_=l().getInt32(s+4,!0);return e=i,r=_,k(i,_)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(e,r,1);}}function G(t){let e,r;try{let s=n.__wbindgen_add_to_stack_pointer(-16),o=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),a=p;n.split_bits(s,o,a);var i=l().getInt32(s+0,!0),_=l().getInt32(s+4,!0);return e=i,r=_,k(i,_)}finally{n.__wbindgen_add_to_stack_pointer(16),n.__wbindgen_export_2(e,r,1);}}function ut(t){let e=d(t,n.__wbindgen_export_0,n.__wbindgen_export_1),r=p;return n.is_bitmark(e,r)!==0}async function ft(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(i){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",i);else throw i}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 Y(){let t={};return t.wbg={},t}function Z(t,e){return n=t.exports,et.__wbindgen_wasm_module=e,v=null,W=null,n}function tt(t){if(n!==void 0)return n;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=Y();t instanceof WebAssembly.Module||(t=new WebAssembly.Module(t));let r=new WebAssembly.Instance(t,e);return Z(r,t)}async function et(t){if(n!==void 0)return n;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=Y();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));let{instance:r,module:i}=await ft(await t,e);return Z(r,i)}var $=et;var q={version:"6.1.3"};function I(t){return t.startsWith("error:")}function S(t){let e=t instanceof Error?t.message:String(t);return e.startsWith("error:")?e:`error: ${e}`}function lt(t){let e=t.trim();return e.startsWith("[")&&e.endsWith("]")?e.slice(1,-1):t}function gt(t){if(t===void 0)return [];if(typeof t=="string"){let e=t.trim();return e===""?[]:JSON.parse(e)}return t}function bt(t,e,r){if(r){let s=t.split_bits(e);if(I(s))throw new Error(s);let o=JSON.parse(s);return o.map(a=>({view:{format:"bitmark",index:a.index,total:o.length,source:a.source},source:a.source}))}let i=t.split_json_bits(e);if(I(i))throw new Error(i);let _=JSON.parse(i);return _.map((s,o)=>({view:{format:"json",index:o,total:_.length,bit:s.bit},source:JSON.stringify([s])}))}function K(t,e,r){let i=r.mode??"optimized",_=r.outputFormat??"json",s=r.spacesAroundValues??1,o=r.indent??2,a=r.pretty??false,c=r.inputFormat??"auto",u=c==="bitmark"||c!=="json"&&t.is_bitmark(e),f=u?"bitmark":"json",g=gt(r.patch),b=bt(t,e,u),x=b.length,m=[],w=[];for(let y=0;y<x;y++){let{view:h,source:T}=b[y];h.index=y,h.total=x;let O=r.preHook?r.preHook(h)||{}:{};if(O.drop)continue;let J=O.patches?[...g,...O.patches]:g;m.push({index:y,source:T,inputFormat:f,outputFormat:O.outputFormat??_,mode:i,patchJson:JSON.stringify(J),spacesAroundValues:s}),w.push(h);}return {jobs:m,views:w,output:_,pretty:a,indent:o}}function mt(t,e){let r=t.transform(e.source,e.inputFormat,e.outputFormat,e.mode,e.patchJson,false,2,e.spacesAroundValues);return I(r)?r:e.outputFormat==="json"?lt(r):r}function Q(t,e,r,i,_){if(r==="bitmark"||r==="text")return e.join(`
|
|
2
|
+
`);let s=`[${e.join(",")}]`;return i?t.prettify(s,_):s}function nt(t,e,r){let i;try{i=K(t,e,r);}catch(s){return S(s)}let _=[];for(let s=0;s<i.jobs.length;s++){let o=mt(t,i.jobs[s]);if(I(o))return o;r.postHook?.(i.views[s],o),_.push(o);}return Q(t,_,i.output,i.pretty,i.indent)}async function rt(t,e,r,i){let _;try{_=K(t,e,r);}catch(o){return S(o)}let s;try{s=await i(_.jobs,r.workers??4);}catch(o){return S(o)}for(let o=0;o<s.length;o++){if(I(s[o]))return s[o];r.postHook?.(_.views[o],s[o]);}return Q(t,s,_.output,_.pretty,_.indent)}function ot(t,e){if(t.length===0)return Promise.resolve([]);let r=Math.max(1,Math.min(e,t.length)),i=new URL("./worker-entry.js",import.meta.url);return new Promise((_,s)=>{let o=new Array(t.length),a=0,c=0,u=false,f=[],g=()=>{for(let m of f)m.terminate();},b=m=>{u||(u=true,g(),s(m));},x=m=>{if(u||a>=t.length)return;let w=a++;m.postMessage({id:w,job:t[w]});};for(let m=0;m<r;m++){let w=new Worker(i,{type:"module"});f.push(w),w.onmessage=y=>{let h=y.data;if(!u){if(!h.ok){b(new Error(h.error??"worker job failed"));return}if(o[h.id]=h.element,c++,c===t.length){u=true,g(),_(o);return}x(w);}},w.onerror=y=>b(new Error(y.message||"worker error"));}for(let m of f)x(m);})}async function zt(t){return typeof t>"u"&&(t=new URL(`bitmark_wasm_bg.wasm?v=${q.version}`,import.meta.url)),$(t)}function jt(){return q.version}function Ht(t,e={}){return z(t,e.stage??"lex")}function Vt(t,e={}){return j(t,e.mode??"optimized")}function Mt(t,e={}){return R(t,e.inputFormat??"auto",e.outputFormat??"auto",e.mode??"optimized",e.pretty??false,e.indent??2,e.spacesAroundValues??1)}function Nt(t,e={}){return L(t,e.inputFormat??"auto",e.pretty??false,e.indent??2)}function wt(t,e={}){return U(t,e.inputFormat??"auto",e.pretty??false,e.indent??2)}var Rt=wt;function Lt(t,e={}){return C(t,e.inputFormat??"auto",e.mode??"optimized",e.pretty??false,e.indent??2,e.spacesAroundValues??1)}function Ut(t){let e=D(t);if(e.startsWith("error:"))throw new Error(e);return Number.parseInt(e,10)}function Ct(t){return JSON.parse(G(t))}function Dt(t,e={}){if(e.preHook||e.postHook)return nt(E,t,e);let r=e.patch===void 0?"":typeof e.patch=="string"?e.patch:JSON.stringify(e.patch);return M(t,e.inputFormat??"auto",e.outputFormat??"json",e.mode??"optimized",r,e.pretty??false,e.indent??2,e.spacesAroundValues??1)}function Gt(t,e={}){return rt(E,t,e,ot)}function $t(t,e={}){let r=e.format??"bitmark++",i=e.location??"body";return H(t,r,i)}function qt(t,e={}){let r=e.format??"bitmark++",i=e.location??"body";return V(t,r,i)}function Kt(t={}){let e=t.infoType??"list",r=t.format??"text",i=t.bit??"",_=t.pretty??false,s=t.indent??2;return N(e,r,i,_,s)}export{$t as breakscapeText,Lt as canonicalize,Mt as convert,Ut as countBits,Rt as expand,wt as fullize,Kt as info,zt as init,tt as initSync,Ht as lex,Nt as optimize,Vt as parse,Ct as splitBits,Dt as transform,Gt as transformParallel,qt as unbreakscapeText,jt as version};//# sourceMappingURL=bitmark-parser.min.js.map
|
|
3
3
|
//# sourceMappingURL=bitmark-parser.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../wasm-web/bitmark_wasm.js","../../src/generated/package_info.ts","../../src/core/hooked-transform.ts","../../src/core/parallel.ts","../../src/browser/pool.ts","../../src/browser/index.ts"],"names":["bitmark_wasm_exports","__export","breakscape_text","canonicalize","convert","count_bits","bitmark_wasm_default","fullize","info","initSync","is_bitmark","lex","optimize","parse","prettify","split_bits","split_json_bits","transform","unbreakscape_text","wasm","WASM_VECTOR_LEN","cachedUint8ArrayMemory0","getUint8ArrayMemory0","cachedTextEncoder","encodeString","arg","view","buf","passStringToWasm0","malloc","realloc","ptr","len","mem","offset","code","ret","cachedDataViewMemory0","getDataViewMemory0","cachedTextDecoder","getStringFromWasm0","input","stage","deferred3_0","deferred3_1","retptr","ptr0","len0","ptr1","len1","r0","r1","mode","format","location","deferred4_0","deferred4_1","ptr2","len2","deferred2_0","deferred2_1","json","indent","input_format_sel","output_format_sel","patch_json","pretty","spaces_around_values","deferred6_0","deferred6_1","ptr3","len3","ptr4","len4","info_type","bit","deferred5_0","deferred5_1","__wbg_load","module","imports","e","bytes","instance","__wbg_get_imports","__wbg_finalize_init","__wbg_init","module_or_path","PACKAGE_INFO","isError","s","errorString","m","stripArray","doc","t","normalisePatch","patch","trimmed","buildUnits","inputIsBitmark","out","slices","envelopes","env","index","planTransform","options","output","spacesAroundValues","sel","inputFormat","staticPatch","units","total","jobs","views","source","result","patches","computeBit","job","recombine","elements","arr","runHookedTransform","plan","rendered","i","element","orchestrateParallel","runJobs","runJobsParallel","workers","poolSize","workerUrl","resolve","reject","results","next","settled","done","pool","shutdown","w","fail","err","dispatch","id","ev","res","init","version","expand","countBits","splitBits","patchJson","transformParallel","breakscapeText","unbreakscapeText","infoType"],"mappings":"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","file":"bitmark-parser.min.js","sourcesContent":["let wasm;\n\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n/**\n * Lex bitmark input text, returning one line per token in the same format as\n * the Rust CLI: `{kind:?} {span:?} \"{text}\"`.\n *\n * `stage` selects the lexer pipeline:\n * - `\"lex\"` — combined (default)\n * - `\"lex-json\"` — combined, JSON array output\n * @param {string} input\n * @param {string} stage\n * @returns {string}\n */\nexport function lex(input, stage) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(stage, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.lex(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Parse bitmark input text and return the reference JSON format.\n *\n * Uses the full pipeline: parse → validate → serialize.\n *\n * `mode`: `\"optimized\"` (default) or `\"full\"`\n * @param {string} input\n * @param {string} mode\n * @returns {string}\n */\nexport function parse(input, mode) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.parse(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Breakscape text (escape bitmark special characters).\n *\n * `format`: `\"bitmark++\"` (default) or `\"plainText\"`\n * `location`: `\"body\"` (default) or `\"tag\"`\n * @param {string} input\n * @param {string} format\n * @param {string} location\n * @returns {string}\n */\nexport function breakscape_text(input, format, location) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(location, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.breakscape_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Unbreakscape text (unescape bitmark special characters).\n *\n * `format`: `\"bitmark++\"` (default) or `\"plainText\"`\n * `location`: `\"body\"` (default) or `\"tag\"`\n * @param {string} input\n * @param {string} format\n * @param {string} location\n * @returns {string}\n */\nexport function unbreakscape_text(input, format, location) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(location, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.unbreakscape_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Split a JSON document (a top-level array of bit envelopes) into its per-bit\n * envelope objects, returned as a JSON array string. Lets a JS caller iterate\n * JSON-input bits for per-bit hooks (the JSON counterpart of [`split_bits`]).\n * Returns `error: …` if the input is not a JSON array of bits.\n * @param {string} input\n * @returns {string}\n */\nexport function split_json_bits(input) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.split_json_bits(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Pretty-print a compact JSON string with the given indent. Used to format a\n * document recombined on the JS side (the per-bit hook path) so its output\n * matches the in-Rust recombination byte-for-byte.\n * @param {string} json\n * @param {number} indent\n * @returns {string}\n */\nexport function prettify(json, indent) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.prettify(retptr, ptr0, len0, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Apply a patch (a JSON array of patch entries) to every bit and re-emit.\n *\n * `input_format_sel`: `\"auto\"` | `\"bitmark\"` | `\"json\"`.\n * `output_format_sel`: `\"bitmark\"` | `\"json\"` (default json).\n * `patch_json`: the patch entry array (empty string = no patches, i.e. a\n * canonicalizing pass). Parallelism is a JS-side concern (web workers); this\n * runs sequentially. Returns the document text/JSON, or `error: …`.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {string} output_format_sel\n * @param {string} mode\n * @param {string} patch_json\n * @param {boolean} pretty\n * @param {number} indent\n * @param {number} spaces_around_values\n * @returns {string}\n */\nexport function transform(input, input_format_sel, output_format_sel, mode, patch_json, pretty, indent, spaces_around_values) {\n let deferred6_0;\n let deferred6_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(output_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(patch_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len4 = WASM_VECTOR_LEN;\n wasm.transform(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, pretty, indent, spaces_around_values);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred6_0 = r0;\n deferred6_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);\n }\n}\n\n/**\n * Query information about supported bit types.\n *\n * `info_type`: `\"list\"`, `\"bit\"`, `\"all\"`, or `\"deprecated\"`\n * `format`: `\"text\"` or `\"json\"`\n * `bit`: bit name (required when `info_type` is `\"bit\"`)\n * `pretty`: whether to pretty-print JSON output\n * `indent`: indent size for pretty-printing (default: 2)\n * @param {string} info_type\n * @param {string} format\n * @param {string} bit\n * @param {boolean} pretty\n * @param {number} indent\n * @returns {string}\n */\nexport function info(info_type, format, bit, pretty, indent) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(info_type, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(bit, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.info(retptr, ptr0, len0, ptr1, len1, ptr2, len2, pretty, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Convert between bitmark and JSON with explicit input/output formats + mode.\n *\n * `input_format`: `\"auto\"` (default) | `\"bitmark\"` | `\"json\"`.\n * `output_format`: `\"auto\"` (opposite of input) | `\"bitmark\"` | `\"json\"`.\n * `mode`: `\"optimized\"` (default) | `\"full\"`.\n * Returns the converted text/JSON, or a string prefixed `error:` on failure.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {string} output_format_sel\n * @param {string} mode\n * @param {boolean} pretty\n * @param {number} indent\n * @param {number} spaces_around_values\n * @returns {string}\n */\nexport function convert(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values) {\n let deferred5_0;\n let deferred5_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(output_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len3 = WASM_VECTOR_LEN;\n wasm.convert(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, pretty, indent, spaces_around_values);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred5_0 = r0;\n deferred5_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * Re-emit input in its own format at optimized mode (omit natural defaults).\n * @param {string} input\n * @param {boolean} pretty\n * @param {number} indent\n * @returns {string}\n */\nexport function optimize(input, pretty, indent) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.optimize(retptr, ptr0, len0, pretty, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Re-emit input in its own format at full mode (all keys).\n * @param {string} input\n * @param {boolean} pretty\n * @param {number} indent\n * @returns {string}\n */\nexport function fullize(input, pretty, indent) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.fullize(retptr, ptr0, len0, pretty, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Re-emit input in its own format in canonical form at `mode`.\n * @param {string} input\n * @param {string} mode\n * @param {boolean} pretty\n * @param {number} indent\n * @param {number} spaces_around_values\n * @returns {string}\n */\nexport function canonicalize(input, mode, pretty, indent, spaces_around_values) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.canonicalize(retptr, ptr0, len0, ptr1, len1, pretty, indent, spaces_around_values);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Count the bits in `input` (auto-detecting bitmark vs JSON).\n * Returns the count as a decimal string, or `error: …`.\n * @param {string} input\n * @returns {string}\n */\nexport function count_bits(input) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.count_bits(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Split a bitmark document into per-bit source slices.\n *\n * Returns a JSON array of `{ index, byteStart, byteEnd, source }`. Lets a JS\n * caller chunk a document at bit boundaries (e.g. to feed a worker pool).\n * @param {string} input\n * @returns {string}\n */\nexport function split_bits(input) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.split_bits(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Whether `input` looks like bitmark (vs JSON). Mirrors the auto-detection\n * used across the API so a JS caller can resolve `\"auto\"` consistently.\n * @param {string} input\n * @returns {boolean}\n */\nexport function is_bitmark(input) {\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.is_bitmark(ptr0, len0);\n return ret !== 0;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n 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\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('bitmark_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","// This file is automatically generated. DO NOT EDIT.\n\n/* eslint-disable */\n\nexport const PACKAGE_INFO = {\n \"name\": \"@gmb/bitmark-parser\",\n \"version\": \"6.1.2\",\n \"author\": \"Get More Brain Ltd <info@getmorebrain.com>\",\n \"license\": \"ISC\",\n \"description\": \"A parser for bitmark text, powered by WebAssembly.\"\n};\n","// @zen-component: TS-HookedTransform\n\nimport type { BitView, OutputFormat, PatchEntry, TransformOptions } from \"../types.js\";\n\n/**\n * The minimal WASM surface the per-bit hook driver needs. Both the Node and\n * browser entry points satisfy this with their loaded module.\n */\nexport interface HookedWasm {\n is_bitmark(input: string): boolean;\n split_bits(input: string): string;\n split_json_bits(input: string): string;\n prettify(json: string, indent: number): string;\n transform(\n input: string,\n inputFormat: string,\n outputFormat: string,\n mode: string,\n patchJson: string,\n pretty: boolean,\n indent: number,\n spacesAroundValues: number,\n ): string;\n}\n\n/** A single bit's compute job: data only, safe to ship to a worker thread. */\nexport interface BitJob {\n index: number;\n source: string;\n inputFormat: \"bitmark\" | \"json\";\n outputFormat: OutputFormat;\n mode: string;\n patchJson: string;\n spacesAroundValues: number;\n}\n\n/**\n * The result of running `preHook` over a document's bits: the compute `jobs`\n * for the bits that survived (in document order) and the matching `views`\n * (so `postHook` can be called per surviving bit), plus the document-level\n * recombination settings.\n */\nexport interface TransformPlan {\n jobs: BitJob[];\n views: BitView[];\n output: OutputFormat;\n pretty: boolean;\n indent: number;\n}\n\nexport function isError(s: string): boolean {\n return s.startsWith(\"error:\");\n}\n\n/**\n * Normalise a thrown value to an `error:`-prefixed string, without\n * double-prefixing a message that already carries the prefix (split helpers\n * surface WASM `error:` strings as thrown `Error`s).\n */\nexport function errorString(e: unknown): string {\n const m = e instanceof Error ? e.message : String(e);\n return m.startsWith(\"error:\") ? m : `error: ${m}`;\n}\n\n/** Strip the outer `[ … ]` of a compact one-element JSON array. */\nexport function stripArray(doc: string): string {\n const t = doc.trim();\n return t.startsWith(\"[\") && t.endsWith(\"]\") ? t.slice(1, -1) : doc;\n}\n\nfunction normalisePatch(patch: TransformOptions[\"patch\"]): PatchEntry[] {\n if (patch === undefined) return [];\n if (typeof patch === \"string\") {\n const trimmed = patch.trim();\n return trimmed === \"\" ? [] : (JSON.parse(trimmed) as PatchEntry[]);\n }\n return patch;\n}\n\nfunction buildUnits(\n wasm: HookedWasm,\n input: string,\n inputIsBitmark: boolean,\n): { view: BitView; source: string }[] {\n if (inputIsBitmark) {\n const out = wasm.split_bits(input);\n if (isError(out)) throw new Error(out);\n const slices = JSON.parse(out) as { index: number; source: string }[];\n return slices.map((s) => ({\n view: { format: \"bitmark\", index: s.index, total: slices.length, source: s.source },\n source: s.source,\n }));\n }\n const out = wasm.split_json_bits(input);\n if (isError(out)) throw new Error(out);\n const envelopes = JSON.parse(out) as { bit?: unknown }[];\n return envelopes.map((env, index) => ({\n view: { format: \"json\", index, total: envelopes.length, bit: env.bit },\n // Per-bit transform consumes a one-bit JSON document.\n source: JSON.stringify([env]),\n }));\n}\n\n/**\n * Split the document and run `preHook` (on the calling thread) for each bit,\n * producing the surviving compute jobs + their views. This is the main-thread\n * half shared by the sync and worker-pool drivers — only the resulting\n * data-only {@link BitJob}s ever cross to a worker.\n */\nexport function planTransform(\n wasm: HookedWasm,\n input: string,\n options: TransformOptions,\n): TransformPlan {\n const mode = options.mode ?? \"optimized\";\n const output: OutputFormat = options.outputFormat ?? \"json\";\n const spacesAroundValues = options.spacesAroundValues ?? 1;\n const indent = options.indent ?? 2;\n const pretty = options.pretty ?? false;\n\n const sel = options.inputFormat ?? \"auto\";\n const inputIsBitmark = sel === \"bitmark\" || (sel !== \"json\" && wasm.is_bitmark(input));\n const inputFormat = inputIsBitmark ? \"bitmark\" : \"json\";\n\n const staticPatch = normalisePatch(options.patch);\n const units = buildUnits(wasm, input, inputIsBitmark);\n const total = units.length;\n\n const jobs: BitJob[] = [];\n const views: BitView[] = [];\n for (let index = 0; index < total; index++) {\n const { view, source } = units[index];\n view.index = index;\n view.total = total;\n\n const result = options.preHook ? options.preHook(view) || {} : {};\n if (result.drop) continue;\n\n const patches = result.patches ? [...staticPatch, ...result.patches] : staticPatch;\n jobs.push({\n index,\n source,\n inputFormat,\n outputFormat: result.outputFormat ?? output,\n mode,\n patchJson: JSON.stringify(patches),\n spacesAroundValues,\n });\n views.push(view);\n }\n return { jobs, views, output, pretty, indent };\n}\n\n/**\n * Compute one bit's rendered element synchronously via WASM. The per-bit\n * element is always compact JSON (the document is prettified once on\n * recombination). Returns an `error:`-prefixed string on failure.\n */\nexport function computeBit(wasm: HookedWasm, job: BitJob): string {\n const out = wasm.transform(\n job.source,\n job.inputFormat,\n job.outputFormat,\n job.mode,\n job.patchJson,\n false,\n 2,\n job.spacesAroundValues,\n );\n if (isError(out)) return out;\n return job.outputFormat === \"json\" ? stripArray(out) : out;\n}\n\n/** Recombine per-bit elements into the final document, in document order. */\nexport function recombine(\n wasm: HookedWasm,\n elements: string[],\n output: OutputFormat,\n pretty: boolean,\n indent: number,\n): string {\n // Bitmark and plain-text bits both join with newlines; only JSON wraps as an\n // array. (`text` is output-only, lossy plain-text extraction.)\n if (output === \"bitmark\" || output === \"text\") return elements.join(\"\\n\");\n const arr = `[${elements.join(\",\")}]`;\n return pretty ? wasm.prettify(arr, indent) : arr;\n}\n\n/**\n * Per-bit transform driver (synchronous, in-process): split the document, run\n * `preHook` for each bit on the calling thread, apply the static patch + any\n * hook patches, re-emit the bit, run `postHook`, then recombine in document\n * order.\n *\n * Hooks run synchronously on the calling thread; only data crosses into WASM.\n * Used when a `preHook`/`postHook` is supplied; the hookless path stays a\n * single `wasm.transform` call. Returns the document, or an `error:`-prefixed\n * string on failure.\n */\nexport function runHookedTransform(\n wasm: HookedWasm,\n input: string,\n options: TransformOptions,\n): string {\n let plan: TransformPlan;\n try {\n plan = planTransform(wasm, input, options);\n } catch (e) {\n return errorString(e);\n }\n\n const rendered: string[] = [];\n for (let i = 0; i < plan.jobs.length; i++) {\n const element = computeBit(wasm, plan.jobs[i]);\n if (isError(element)) return element;\n options.postHook?.(plan.views[i], element);\n rendered.push(element);\n }\n return recombine(wasm, rendered, plan.output, plan.pretty, plan.indent);\n}\n","// @zen-component: TS-ParallelOrchestrator\n\nimport type { TransformOptions } from \"../types.js\";\nimport { type BitJob, errorString, type HookedWasm, isError, planTransform, recombine } from \"./hooked-transform.js\";\n\n/**\n * A platform pool: compute `jobs` across up to `workers` workers, returning the\n * rendered element per job in submission order. Node and browser supply their\n * own (worker_threads / Worker); the orchestration around it is shared.\n */\nexport type RunJobs = (jobs: BitJob[], workers: number) => Promise<string[]>;\n\n/**\n * Shared parallel transform orchestration. The main-thread half — split +\n * `preHook` + recombine + `postHook` — is identical to the sync driver; only\n * the data-only per-bit jobs cross to `runJobs` (the platform pool). Closures\n * (`preHook`/`postHook`) never leave the calling thread.\n *\n * Returns the document, or an `error:`-prefixed string on failure.\n */\nexport async function orchestrateParallel(\n wasm: HookedWasm,\n input: string,\n options: TransformOptions,\n runJobs: RunJobs,\n): Promise<string> {\n let plan;\n try {\n plan = planTransform(wasm, input, options);\n } catch (e) {\n return errorString(e);\n }\n\n let elements: string[];\n try {\n elements = await runJobs(plan.jobs, options.workers ?? 4);\n } catch (e) {\n return errorString(e);\n }\n\n for (let i = 0; i < elements.length; i++) {\n if (isError(elements[i])) return elements[i];\n options.postHook?.(plan.views[i], elements[i]);\n }\n return recombine(wasm, elements, plan.output, plan.pretty, plan.indent);\n}\n","// @zen-component: TS-BrowserWorkerPool\n//\n// A fixed-size browser Worker pool that computes per-bit transform jobs in\n// parallel. Mirrors the Node worker_threads pool: dispatch-on-idle, results\n// matched by id and returned in submission order, workers terminated when all\n// jobs settle. Each module worker loads its own WASM instance.\n\nimport type { BitJob } from \"../core/hooked-transform.js\";\n\ninterface JobResult {\n id: number;\n ok: boolean;\n element?: string;\n error?: string;\n}\n\n/**\n * Run `jobs` across up to `workers` module Workers, returning the rendered\n * element per job in submission order. Rejects on the first worker/job error.\n */\nexport function runJobsParallel(jobs: BitJob[], workers: number): Promise<string[]> {\n if (jobs.length === 0) return Promise.resolve([]);\n const poolSize = Math.max(1, Math.min(workers, jobs.length));\n // worker-entry.js is emitted beside this bundle (see tsup config).\n const workerUrl = new URL(\"./worker-entry.js\", import.meta.url);\n\n return new Promise<string[]>((resolve, reject) => {\n const results = new Array<string>(jobs.length);\n let next = 0;\n let settled = 0;\n let done = false;\n const pool: Worker[] = [];\n\n const shutdown = () => {\n for (const w of pool) w.terminate();\n };\n const fail = (err: Error) => {\n if (done) return;\n done = true;\n shutdown();\n reject(err);\n };\n const dispatch = (w: Worker) => {\n if (done || next >= jobs.length) return;\n const id = next++;\n w.postMessage({ id, job: jobs[id] });\n };\n\n for (let i = 0; i < poolSize; i++) {\n const w = new Worker(workerUrl, { type: \"module\" });\n pool.push(w);\n w.onmessage = (ev: MessageEvent<JobResult>) => {\n const res = ev.data;\n if (done) return;\n if (!res.ok) {\n fail(new Error(res.error ?? \"worker job failed\"));\n return;\n }\n results[res.id] = res.element as string;\n settled++;\n if (settled === jobs.length) {\n done = true;\n shutdown();\n resolve(results);\n return;\n }\n dispatch(w);\n };\n w.onerror = (e: ErrorEvent) => fail(new Error(e.message || \"worker error\"));\n }\n\n for (const w of pool) dispatch(w);\n });\n}\n","// This is a browser entry point that wraps the wasm-web bindings.\n// It re-exports all WASM functions so browser consumers can use:\n// import { parse, convert, ... } from '@gmb/bitmark-parser/browser'\n\nimport wasmInit from \"../../wasm-web/bitmark_wasm.js\";\nimport * as wasm from \"../../wasm-web/bitmark_wasm.js\";\nimport { PACKAGE_INFO } from \"../generated/package_info.js\";\nimport { runHookedTransform, type HookedWasm } from \"../core/hooked-transform.js\";\nimport { orchestrateParallel } from \"../core/parallel.js\";\nimport { runJobsParallel } from \"./pool.js\";\n\nexport { initSync } from \"../../wasm-web/bitmark_wasm.js\";\n\n/**\n * Initialise the WASM module.\n *\n * When called without arguments, the default `.wasm` URL is decorated with a\n * cache-busting `?v=<version>` query parameter so that CDN caches are\n * invalidated when the package version changes.\n */\nexport async function init(module_or_path?: any): Promise<any> {\n if (typeof module_or_path === \"undefined\") {\n module_or_path = new URL(`bitmark_wasm_bg.wasm?v=${PACKAGE_INFO.version}`, import.meta.url);\n }\n return wasmInit(module_or_path);\n}\n\nexport type { LexOptions, LexStage, ParseOptions, ConvertOptions, OutputMode, BreakscapeOptions, TextFormat, TextLocation, InfoOptions, InfoType, InfoFormat, InputFormat, OutputFormat, NormalizeOptions, TransformOptions, PatchOp, PatchEntry, BitSlice, BitView, PreHook, PostHook, PreHookResult } from \"../types.js\";\nimport type { LexOptions, ParseOptions, ConvertOptions, BreakscapeOptions, InfoOptions, NormalizeOptions, TransformOptions, BitSlice } from \"../types.js\";\n\n/**\n * Get the version of the @gmb/bitmark-parser library.\n *\n * @returns Version string (e.g. \"3.0.0\").\n */\nexport function version(): string {\n return PACKAGE_INFO.version;\n}\n\n/**\n * Lex bitmark input text, returning one line per token.\n *\n * @param input - The bitmark source text.\n * @param options - Lex options (e.g. `{ stage: \"lex\" }`).\n * @returns Token dump string (one token per line).\n */\nexport function lex(input: string, options: LexOptions = {}): string {\n return wasm.lex(input, options.stage ?? \"lex\");\n}\n\n/**\n * Parse bitmark input text and return structured JSON entries.\n *\n * Each entry contains `bit`, `parser`, and `bitmark` fields.\n *\n * @param input - The bitmark source text.\n * @param options - Parse options (e.g. `{ mode: \"full\" }`).\n * @returns JSON string array of structured parsed entries.\n */\nexport function parse(input: string, options: ParseOptions = {}): string {\n return wasm.parse(input, options.mode ?? \"optimized\");\n}\n\n/**\n * Auto-detect input format and convert between bitmark and JSON.\n *\n * @param input - Bitmark or JSON input text.\n * @param options - Convert options (e.g. `{ mode: \"full\", warnings: true }`).\n * @returns Converted output string. For bitmark input, this is a JSON string\n * array of structured parsed entries (`bit`, `parser`, `bitmark`).\n */\nexport function convert(input: string, options: ConvertOptions = {}): string {\n return wasm.convert(\n input,\n options.inputFormat ?? \"auto\",\n options.outputFormat ?? \"auto\",\n options.mode ?? \"optimized\",\n options.pretty ?? false,\n options.indent ?? 2,\n options.spacesAroundValues ?? 1,\n );\n}\n\n/** Re-emit input in its own format at optimized mode. */\nexport function optimize(input: string, options: NormalizeOptions = {}): string {\n return wasm.optimize(input, options.pretty ?? false, options.indent ?? 2);\n}\n\n/** Re-emit input in its own format at full mode (all keys). Aliased `expand`. */\nexport function fullize(input: string, options: NormalizeOptions = {}): string {\n return wasm.fullize(input, options.pretty ?? false, options.indent ?? 2);\n}\n\n/** Alias of {@link fullize}. */\nexport const expand = fullize;\n\n/** Re-emit input in its own format in canonical form. */\nexport function canonicalize(input: string, options: NormalizeOptions = {}): string {\n return wasm.canonicalize(\n input,\n options.mode ?? \"optimized\",\n options.pretty ?? false,\n options.indent ?? 2,\n options.spacesAroundValues ?? 1,\n );\n}\n\n/** Count the bits in `input` (auto-detect). @throws on parse failure. */\nexport function countBits(input: string): number {\n const out = wasm.count_bits(input);\n if (out.startsWith(\"error:\")) throw new Error(out);\n return Number.parseInt(out, 10);\n}\n\n/** Split a bitmark document into per-bit source slices. */\nexport function splitBits(input: string): BitSlice[] {\n return JSON.parse(wasm.split_bits(input)) as BitSlice[];\n}\n\n/**\n * Transform a document bit-by-bit. With a `preHook`/`postHook` the bits are\n * driven one at a time on the calling thread (hooks see each bit, only data\n * crosses into WASM); otherwise the whole document is one WASM pass.\n */\nexport function transform(input: string, options: TransformOptions = {}): string {\n if (options.preHook || options.postHook) {\n return runHookedTransform(wasm as unknown as HookedWasm, input, options);\n }\n const patchJson =\n options.patch === undefined\n ? \"\"\n : typeof options.patch === \"string\"\n ? options.patch\n : JSON.stringify(options.patch);\n return wasm.transform(\n input,\n options.inputFormat ?? \"auto\",\n options.outputFormat ?? \"json\",\n options.mode ?? \"optimized\",\n patchJson,\n options.pretty ?? false,\n options.indent ?? 2,\n options.spacesAroundValues ?? 1,\n );\n}\n\n/**\n * Parallel counterpart of {@link transform} (browser). Fans the per-bit WASM\n * compute across a pool of module `Worker`s (`options.workers`, default `4`);\n * each worker loads its own WASM instance. `preHook`/`postHook` run on the\n * calling thread. Call {@link init} before use. Output is identical to\n * {@link transform}; this trades worker startup cost for throughput on large\n * documents.\n *\n * **Requires the ESM build** (`@gmb/bitmark-parser/browser`, i.e.\n * `dist/browser/esm`): the module-`Worker` entry (`worker-entry.js`) and its\n * `.wasm` are emitted only beside that bundle. Module workers are ESM by\n * nature; the CJS / single-file min bundles ship the sync {@link transform}\n * only, and calling this there resolves to an `error:` string (the worker\n * file is absent). For throughput in those targets, use {@link transform} or\n * chunk + your own workers.\n *\n * @returns A Promise of the transformed document, or an `error:`-prefixed\n * string on failure.\n */\nexport function transformParallel(input: string, options: TransformOptions = {}): Promise<string> {\n return orchestrateParallel(wasm as unknown as HookedWasm, input, options, runJobsParallel);\n}\n\n/**\n * Breakscape text (escape bitmark special characters).\n *\n * @param input - The text to breakscape.\n * @param options - Breakscape options (e.g. `{ format: \"plainText\", location: \"tag\" }`).\n * @returns Breakscaped text.\n */\nexport function breakscapeText(input: string, options: BreakscapeOptions = {}): string {\n const format = options.format ?? \"bitmark++\";\n const location = options.location ?? \"body\";\n return wasm.breakscape_text(input, format, location);\n}\n\n/**\n * Unbreakscape text (unescape bitmark special characters).\n *\n * @param input - The text to unbreakscape.\n * @param options - Unbreakscape options (e.g. `{ format: \"plainText\", location: \"tag\" }`).\n * @returns Unbreakscaped text.\n */\nexport function unbreakscapeText(input: string, options: BreakscapeOptions = {}): string {\n const format = options.format ?? \"bitmark++\";\n const location = options.location ?? \"body\";\n return wasm.unbreakscape_text(input, format, location);\n}\n\n/**\n * Query information about supported bit types.\n *\n * @param options - Info options (e.g. `{ infoType: \"bit\", format: \"json\", bit: \"cloze\" }`).\n * @returns Information string.\n */\nexport function info(options: InfoOptions = {}): string {\n const infoType = options.infoType ?? \"list\";\n const format = options.format ?? \"text\";\n const bit = options.bit ?? \"\";\n const pretty = options.pretty ?? false;\n const indent = options.indent ?? 2;\n return wasm.info(infoType, format, bit, pretty, indent);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../../wasm-web/bitmark_wasm.js","../../src/generated/package_info.ts","../../src/core/hooked-transform.ts","../../src/core/parallel.ts","../../src/browser/pool.ts","../../src/browser/index.ts"],"names":["bitmark_wasm_exports","__export","breakscape_text","canonicalize","convert","count_bits","bitmark_wasm_default","fullize","info","initSync","is_bitmark","lex","optimize","parse","prettify","split_bits","split_json_bits","transform","unbreakscape_text","wasm","WASM_VECTOR_LEN","cachedUint8ArrayMemory0","getUint8ArrayMemory0","cachedTextEncoder","encodeString","arg","view","buf","passStringToWasm0","malloc","realloc","ptr","len","mem","offset","code","ret","cachedDataViewMemory0","getDataViewMemory0","cachedTextDecoder","getStringFromWasm0","input","stage","deferred3_0","deferred3_1","retptr","ptr0","len0","ptr1","len1","r0","r1","mode","format","location","deferred4_0","deferred4_1","ptr2","len2","deferred2_0","deferred2_1","json","indent","input_format_sel","output_format_sel","patch_json","pretty","spaces_around_values","deferred6_0","deferred6_1","ptr3","len3","ptr4","len4","info_type","bit","deferred5_0","deferred5_1","__wbg_load","module","imports","e","bytes","instance","__wbg_get_imports","__wbg_finalize_init","__wbg_init","module_or_path","PACKAGE_INFO","isError","s","errorString","m","stripArray","doc","t","normalisePatch","patch","trimmed","buildUnits","inputIsBitmark","out","slices","envelopes","env","index","planTransform","options","output","spacesAroundValues","sel","inputFormat","staticPatch","units","total","jobs","views","source","result","patches","computeBit","job","recombine","elements","arr","runHookedTransform","plan","rendered","i","element","orchestrateParallel","runJobs","runJobsParallel","workers","poolSize","workerUrl","resolve","reject","results","next","settled","done","pool","shutdown","w","fail","err","dispatch","id","ev","res","init","version","expand","countBits","splitBits","patchJson","transformParallel","breakscapeText","unbreakscapeText","infoType"],"mappings":"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","file":"bitmark-parser.min.js","sourcesContent":["let wasm;\n\nlet WASM_VECTOR_LEN = 0;\n\nlet cachedUint8ArrayMemory0 = null;\n\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nconst cachedTextEncoder = (typeof TextEncoder !== 'undefined' ? new TextEncoder('utf-8') : { encode: () => { throw Error('TextEncoder not available') } } );\n\nconst encodeString = (typeof cachedTextEncoder.encodeInto === 'function'\n ? function (arg, view) {\n return cachedTextEncoder.encodeInto(arg, view);\n}\n : function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n});\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = encodeString(arg, view);\n\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nlet cachedDataViewMemory0 = null;\n\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nconst cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available') } } );\n\nif (typeof TextDecoder !== 'undefined') { cachedTextDecoder.decode(); };\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n/**\n * Lex bitmark input text, returning one line per token in the same format as\n * the Rust CLI: `{kind:?} {span:?} \"{text}\"`.\n *\n * `stage` selects the lexer pipeline:\n * - `\"lex\"` — combined (default)\n * - `\"lex-json\"` — combined, JSON array output\n * @param {string} input\n * @param {string} stage\n * @returns {string}\n */\nexport function lex(input, stage) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(stage, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.lex(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Parse bitmark input text and return the reference JSON format.\n *\n * Uses the full pipeline: parse → validate → serialize.\n *\n * `mode`: `\"optimized\"` (default) or `\"full\"`\n * @param {string} input\n * @param {string} mode\n * @returns {string}\n */\nexport function parse(input, mode) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.parse(retptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Breakscape text (escape bitmark special characters).\n *\n * `format`: `\"bitmark++\"` (default) or `\"plainText\"`\n * `location`: `\"body\"` (default) or `\"tag\"`\n * @param {string} input\n * @param {string} format\n * @param {string} location\n * @returns {string}\n */\nexport function breakscape_text(input, format, location) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(location, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.breakscape_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Unbreakscape text (unescape bitmark special characters).\n *\n * `format`: `\"bitmark++\"` (default) or `\"plainText\"`\n * `location`: `\"body\"` (default) or `\"tag\"`\n * @param {string} input\n * @param {string} format\n * @param {string} location\n * @returns {string}\n */\nexport function unbreakscape_text(input, format, location) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(location, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.unbreakscape_text(retptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Split a JSON document (a top-level array of bit envelopes) into its per-bit\n * envelope objects, returned as a JSON array string. Lets a JS caller iterate\n * JSON-input bits for per-bit hooks (the JSON counterpart of [`split_bits`]).\n * Returns `error: …` if the input is not a JSON array of bits.\n * @param {string} input\n * @returns {string}\n */\nexport function split_json_bits(input) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.split_json_bits(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Pretty-print a compact JSON string with the given indent. Used to format a\n * document recombined on the JS side (the per-bit hook path) so its output\n * matches the in-Rust recombination byte-for-byte.\n * @param {string} json\n * @param {number} indent\n * @returns {string}\n */\nexport function prettify(json, indent) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.prettify(retptr, ptr0, len0, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Apply a patch (a JSON array of patch entries) to every bit and re-emit.\n *\n * `input_format_sel`: `\"auto\"` | `\"bitmark\"` | `\"json\"`.\n * `output_format_sel`: `\"bitmark\"` | `\"json\"` (default json).\n * `patch_json`: the patch entry array (empty string = no patches, i.e. a\n * canonicalizing pass). Parallelism is a JS-side concern (web workers); this\n * runs sequentially. Returns the document text/JSON, or `error: …`.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {string} output_format_sel\n * @param {string} mode\n * @param {string} patch_json\n * @param {boolean} pretty\n * @param {number} indent\n * @param {number} spaces_around_values\n * @returns {string}\n */\nexport function transform(input, input_format_sel, output_format_sel, mode, patch_json, pretty, indent, spaces_around_values) {\n let deferred6_0;\n let deferred6_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(output_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len3 = WASM_VECTOR_LEN;\n const ptr4 = passStringToWasm0(patch_json, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len4 = WASM_VECTOR_LEN;\n wasm.transform(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4, pretty, indent, spaces_around_values);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred6_0 = r0;\n deferred6_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred6_0, deferred6_1, 1);\n }\n}\n\n/**\n * Query information about supported bit types.\n *\n * `info_type`: `\"list\"`, `\"bit\"`, `\"all\"`, or `\"deprecated\"`\n * `format`: `\"text\"` or `\"json\"`\n * `bit`: bit name (required when `info_type` is `\"bit\"`)\n * `pretty`: whether to pretty-print JSON output\n * `indent`: indent size for pretty-printing (default: 2)\n * @param {string} info_type\n * @param {string} format\n * @param {string} bit\n * @param {boolean} pretty\n * @param {number} indent\n * @returns {string}\n */\nexport function info(info_type, format, bit, pretty, indent) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(info_type, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(format, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(bit, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.info(retptr, ptr0, len0, ptr1, len1, ptr2, len2, pretty, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Convert between bitmark and JSON with explicit input/output formats + mode.\n *\n * `input_format`: `\"auto\"` (default) | `\"bitmark\"` | `\"json\"`.\n * `output_format`: `\"auto\"` (opposite of input) | `\"bitmark\"` | `\"json\"`.\n * `mode`: `\"optimized\"` (default) | `\"full\"`.\n * Returns the converted text/JSON, or a string prefixed `error:` on failure.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {string} output_format_sel\n * @param {string} mode\n * @param {boolean} pretty\n * @param {number} indent\n * @param {number} spaces_around_values\n * @returns {string}\n */\nexport function convert(input, input_format_sel, output_format_sel, mode, pretty, indent, spaces_around_values) {\n let deferred5_0;\n let deferred5_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(output_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n const ptr3 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len3 = WASM_VECTOR_LEN;\n wasm.convert(retptr, ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3, pretty, indent, spaces_around_values);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred5_0 = r0;\n deferred5_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred5_0, deferred5_1, 1);\n }\n}\n\n/**\n * Re-emit input in its own format at optimized mode (omit natural defaults).\n *\n * `input_format`: `\"auto\"` (default) | `\"bitmark\"` | `\"json\"` | any config\n * mapping id (`html`, `xml`, …). The output is re-emitted in this same format.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {boolean} pretty\n * @param {number} indent\n * @returns {string}\n */\nexport function optimize(input, input_format_sel, pretty, indent) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.optimize(retptr, ptr0, len0, ptr1, len1, pretty, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Re-emit input in its own format at full mode (all keys).\n *\n * `input_format`: `\"auto\"` (default) | `\"bitmark\"` | `\"json\"` | any config\n * mapping id (`html`, `xml`, …). The output is re-emitted in this same format.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {boolean} pretty\n * @param {number} indent\n * @returns {string}\n */\nexport function fullize(input, input_format_sel, pretty, indent) {\n let deferred3_0;\n let deferred3_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n wasm.fullize(retptr, ptr0, len0, ptr1, len1, pretty, indent);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred3_0 = r0;\n deferred3_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred3_0, deferred3_1, 1);\n }\n}\n\n/**\n * Re-emit input in its own format in canonical form at `mode`.\n *\n * `input_format`: `\"auto\"` (default) | `\"bitmark\"` | `\"json\"` | any config\n * mapping id (`html`, `xml`, …). The output is re-emitted in this same format.\n * @param {string} input\n * @param {string} input_format_sel\n * @param {string} mode\n * @param {boolean} pretty\n * @param {number} indent\n * @param {number} spaces_around_values\n * @returns {string}\n */\nexport function canonicalize(input, input_format_sel, mode, pretty, indent, spaces_around_values) {\n let deferred4_0;\n let deferred4_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(input_format_sel, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passStringToWasm0(mode, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len2 = WASM_VECTOR_LEN;\n wasm.canonicalize(retptr, ptr0, len0, ptr1, len1, ptr2, len2, pretty, indent, spaces_around_values);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred4_0 = r0;\n deferred4_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred4_0, deferred4_1, 1);\n }\n}\n\n/**\n * Count the bits in `input` (auto-detecting bitmark vs JSON).\n * Returns the count as a decimal string, or `error: …`.\n * @param {string} input\n * @returns {string}\n */\nexport function count_bits(input) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.count_bits(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Split a bitmark document into per-bit source slices.\n *\n * Returns a JSON array of `{ index, byteStart, byteEnd, source }`. Lets a JS\n * caller chunk a document at bit boundaries (e.g. to feed a worker pool).\n * @param {string} input\n * @returns {string}\n */\nexport function split_bits(input) {\n let deferred2_0;\n let deferred2_1;\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n wasm.split_bits(retptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred2_0 = r0;\n deferred2_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export_2(deferred2_0, deferred2_1, 1);\n }\n}\n\n/**\n * Whether `input` looks like bitmark (vs JSON). Mirrors the auto-detection\n * used across the API so a JS caller can resolve `\"auto\"` consistently.\n * @param {string} input\n * @returns {boolean}\n */\nexport function is_bitmark(input) {\n const ptr0 = passStringToWasm0(input, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);\n const len0 = WASM_VECTOR_LEN;\n const ret = wasm.is_bitmark(ptr0, len0);\n return ret !== 0;\n}\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n\n } catch (e) {\n if (module.headers.get('Content-Type') != 'application/wasm') {\n 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\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n\n return imports;\n}\n\nfunction __wbg_init_memory(imports, memory) {\n\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n\n __wbg_init_memory(imports);\n\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n\n const instance = new WebAssembly.Instance(module, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = new URL('bitmark_wasm_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n __wbg_init_memory(imports);\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n","// This file is automatically generated. DO NOT EDIT.\n\n/* eslint-disable */\n\nexport const PACKAGE_INFO = {\n \"name\": \"@gmb/bitmark-parser\",\n \"version\": \"6.1.3\",\n \"author\": \"Get More Brain Ltd <info@getmorebrain.com>\",\n \"license\": \"ISC\",\n \"description\": \"A parser for bitmark text, powered by WebAssembly.\"\n};\n","// @zen-component: TS-HookedTransform\n\nimport type { BitView, OutputFormat, PatchEntry, TransformOptions } from \"../types.js\";\n\n/**\n * The minimal WASM surface the per-bit hook driver needs. Both the Node and\n * browser entry points satisfy this with their loaded module.\n */\nexport interface HookedWasm {\n is_bitmark(input: string): boolean;\n split_bits(input: string): string;\n split_json_bits(input: string): string;\n prettify(json: string, indent: number): string;\n transform(\n input: string,\n inputFormat: string,\n outputFormat: string,\n mode: string,\n patchJson: string,\n pretty: boolean,\n indent: number,\n spacesAroundValues: number,\n ): string;\n}\n\n/** A single bit's compute job: data only, safe to ship to a worker thread. */\nexport interface BitJob {\n index: number;\n source: string;\n inputFormat: \"bitmark\" | \"json\";\n outputFormat: OutputFormat;\n mode: string;\n patchJson: string;\n spacesAroundValues: number;\n}\n\n/**\n * The result of running `preHook` over a document's bits: the compute `jobs`\n * for the bits that survived (in document order) and the matching `views`\n * (so `postHook` can be called per surviving bit), plus the document-level\n * recombination settings.\n */\nexport interface TransformPlan {\n jobs: BitJob[];\n views: BitView[];\n output: OutputFormat;\n pretty: boolean;\n indent: number;\n}\n\nexport function isError(s: string): boolean {\n return s.startsWith(\"error:\");\n}\n\n/**\n * Normalise a thrown value to an `error:`-prefixed string, without\n * double-prefixing a message that already carries the prefix (split helpers\n * surface WASM `error:` strings as thrown `Error`s).\n */\nexport function errorString(e: unknown): string {\n const m = e instanceof Error ? e.message : String(e);\n return m.startsWith(\"error:\") ? m : `error: ${m}`;\n}\n\n/** Strip the outer `[ … ]` of a compact one-element JSON array. */\nexport function stripArray(doc: string): string {\n const t = doc.trim();\n return t.startsWith(\"[\") && t.endsWith(\"]\") ? t.slice(1, -1) : doc;\n}\n\nfunction normalisePatch(patch: TransformOptions[\"patch\"]): PatchEntry[] {\n if (patch === undefined) return [];\n if (typeof patch === \"string\") {\n const trimmed = patch.trim();\n return trimmed === \"\" ? [] : (JSON.parse(trimmed) as PatchEntry[]);\n }\n return patch;\n}\n\nfunction buildUnits(\n wasm: HookedWasm,\n input: string,\n inputIsBitmark: boolean,\n): { view: BitView; source: string }[] {\n if (inputIsBitmark) {\n const out = wasm.split_bits(input);\n if (isError(out)) throw new Error(out);\n const slices = JSON.parse(out) as { index: number; source: string }[];\n return slices.map((s) => ({\n view: { format: \"bitmark\", index: s.index, total: slices.length, source: s.source },\n source: s.source,\n }));\n }\n const out = wasm.split_json_bits(input);\n if (isError(out)) throw new Error(out);\n const envelopes = JSON.parse(out) as { bit?: unknown }[];\n return envelopes.map((env, index) => ({\n view: { format: \"json\", index, total: envelopes.length, bit: env.bit },\n // Per-bit transform consumes a one-bit JSON document.\n source: JSON.stringify([env]),\n }));\n}\n\n/**\n * Split the document and run `preHook` (on the calling thread) for each bit,\n * producing the surviving compute jobs + their views. This is the main-thread\n * half shared by the sync and worker-pool drivers — only the resulting\n * data-only {@link BitJob}s ever cross to a worker.\n */\nexport function planTransform(\n wasm: HookedWasm,\n input: string,\n options: TransformOptions,\n): TransformPlan {\n const mode = options.mode ?? \"optimized\";\n const output: OutputFormat = options.outputFormat ?? \"json\";\n const spacesAroundValues = options.spacesAroundValues ?? 1;\n const indent = options.indent ?? 2;\n const pretty = options.pretty ?? false;\n\n const sel = options.inputFormat ?? \"auto\";\n const inputIsBitmark = sel === \"bitmark\" || (sel !== \"json\" && wasm.is_bitmark(input));\n const inputFormat = inputIsBitmark ? \"bitmark\" : \"json\";\n\n const staticPatch = normalisePatch(options.patch);\n const units = buildUnits(wasm, input, inputIsBitmark);\n const total = units.length;\n\n const jobs: BitJob[] = [];\n const views: BitView[] = [];\n for (let index = 0; index < total; index++) {\n const { view, source } = units[index];\n view.index = index;\n view.total = total;\n\n const result = options.preHook ? options.preHook(view) || {} : {};\n if (result.drop) continue;\n\n const patches = result.patches ? [...staticPatch, ...result.patches] : staticPatch;\n jobs.push({\n index,\n source,\n inputFormat,\n outputFormat: result.outputFormat ?? output,\n mode,\n patchJson: JSON.stringify(patches),\n spacesAroundValues,\n });\n views.push(view);\n }\n return { jobs, views, output, pretty, indent };\n}\n\n/**\n * Compute one bit's rendered element synchronously via WASM. The per-bit\n * element is always compact JSON (the document is prettified once on\n * recombination). Returns an `error:`-prefixed string on failure.\n */\nexport function computeBit(wasm: HookedWasm, job: BitJob): string {\n const out = wasm.transform(\n job.source,\n job.inputFormat,\n job.outputFormat,\n job.mode,\n job.patchJson,\n false,\n 2,\n job.spacesAroundValues,\n );\n if (isError(out)) return out;\n return job.outputFormat === \"json\" ? stripArray(out) : out;\n}\n\n/** Recombine per-bit elements into the final document, in document order. */\nexport function recombine(\n wasm: HookedWasm,\n elements: string[],\n output: OutputFormat,\n pretty: boolean,\n indent: number,\n): string {\n // Bitmark and plain-text bits both join with newlines; only JSON wraps as an\n // array. (`text` is output-only, lossy plain-text extraction.)\n if (output === \"bitmark\" || output === \"text\") return elements.join(\"\\n\");\n const arr = `[${elements.join(\",\")}]`;\n return pretty ? wasm.prettify(arr, indent) : arr;\n}\n\n/**\n * Per-bit transform driver (synchronous, in-process): split the document, run\n * `preHook` for each bit on the calling thread, apply the static patch + any\n * hook patches, re-emit the bit, run `postHook`, then recombine in document\n * order.\n *\n * Hooks run synchronously on the calling thread; only data crosses into WASM.\n * Used when a `preHook`/`postHook` is supplied; the hookless path stays a\n * single `wasm.transform` call. Returns the document, or an `error:`-prefixed\n * string on failure.\n */\nexport function runHookedTransform(\n wasm: HookedWasm,\n input: string,\n options: TransformOptions,\n): string {\n let plan: TransformPlan;\n try {\n plan = planTransform(wasm, input, options);\n } catch (e) {\n return errorString(e);\n }\n\n const rendered: string[] = [];\n for (let i = 0; i < plan.jobs.length; i++) {\n const element = computeBit(wasm, plan.jobs[i]);\n if (isError(element)) return element;\n options.postHook?.(plan.views[i], element);\n rendered.push(element);\n }\n return recombine(wasm, rendered, plan.output, plan.pretty, plan.indent);\n}\n","// @zen-component: TS-ParallelOrchestrator\n\nimport type { TransformOptions } from \"../types.js\";\nimport { type BitJob, errorString, type HookedWasm, isError, planTransform, recombine } from \"./hooked-transform.js\";\n\n/**\n * A platform pool: compute `jobs` across up to `workers` workers, returning the\n * rendered element per job in submission order. Node and browser supply their\n * own (worker_threads / Worker); the orchestration around it is shared.\n */\nexport type RunJobs = (jobs: BitJob[], workers: number) => Promise<string[]>;\n\n/**\n * Shared parallel transform orchestration. The main-thread half — split +\n * `preHook` + recombine + `postHook` — is identical to the sync driver; only\n * the data-only per-bit jobs cross to `runJobs` (the platform pool). Closures\n * (`preHook`/`postHook`) never leave the calling thread.\n *\n * Returns the document, or an `error:`-prefixed string on failure.\n */\nexport async function orchestrateParallel(\n wasm: HookedWasm,\n input: string,\n options: TransformOptions,\n runJobs: RunJobs,\n): Promise<string> {\n let plan;\n try {\n plan = planTransform(wasm, input, options);\n } catch (e) {\n return errorString(e);\n }\n\n let elements: string[];\n try {\n elements = await runJobs(plan.jobs, options.workers ?? 4);\n } catch (e) {\n return errorString(e);\n }\n\n for (let i = 0; i < elements.length; i++) {\n if (isError(elements[i])) return elements[i];\n options.postHook?.(plan.views[i], elements[i]);\n }\n return recombine(wasm, elements, plan.output, plan.pretty, plan.indent);\n}\n","// @zen-component: TS-BrowserWorkerPool\n//\n// A fixed-size browser Worker pool that computes per-bit transform jobs in\n// parallel. Mirrors the Node worker_threads pool: dispatch-on-idle, results\n// matched by id and returned in submission order, workers terminated when all\n// jobs settle. Each module worker loads its own WASM instance.\n\nimport type { BitJob } from \"../core/hooked-transform.js\";\n\ninterface JobResult {\n id: number;\n ok: boolean;\n element?: string;\n error?: string;\n}\n\n/**\n * Run `jobs` across up to `workers` module Workers, returning the rendered\n * element per job in submission order. Rejects on the first worker/job error.\n */\nexport function runJobsParallel(jobs: BitJob[], workers: number): Promise<string[]> {\n if (jobs.length === 0) return Promise.resolve([]);\n const poolSize = Math.max(1, Math.min(workers, jobs.length));\n // worker-entry.js is emitted beside this bundle (see tsup config).\n const workerUrl = new URL(\"./worker-entry.js\", import.meta.url);\n\n return new Promise<string[]>((resolve, reject) => {\n const results = new Array<string>(jobs.length);\n let next = 0;\n let settled = 0;\n let done = false;\n const pool: Worker[] = [];\n\n const shutdown = () => {\n for (const w of pool) w.terminate();\n };\n const fail = (err: Error) => {\n if (done) return;\n done = true;\n shutdown();\n reject(err);\n };\n const dispatch = (w: Worker) => {\n if (done || next >= jobs.length) return;\n const id = next++;\n w.postMessage({ id, job: jobs[id] });\n };\n\n for (let i = 0; i < poolSize; i++) {\n const w = new Worker(workerUrl, { type: \"module\" });\n pool.push(w);\n w.onmessage = (ev: MessageEvent<JobResult>) => {\n const res = ev.data;\n if (done) return;\n if (!res.ok) {\n fail(new Error(res.error ?? \"worker job failed\"));\n return;\n }\n results[res.id] = res.element as string;\n settled++;\n if (settled === jobs.length) {\n done = true;\n shutdown();\n resolve(results);\n return;\n }\n dispatch(w);\n };\n w.onerror = (e: ErrorEvent) => fail(new Error(e.message || \"worker error\"));\n }\n\n for (const w of pool) dispatch(w);\n });\n}\n","// This is a browser entry point that wraps the wasm-web bindings.\n// It re-exports all WASM functions so browser consumers can use:\n// import { parse, convert, ... } from '@gmb/bitmark-parser/browser'\n\nimport wasmInit from \"../../wasm-web/bitmark_wasm.js\";\nimport * as wasm from \"../../wasm-web/bitmark_wasm.js\";\nimport { PACKAGE_INFO } from \"../generated/package_info.js\";\nimport { runHookedTransform, type HookedWasm } from \"../core/hooked-transform.js\";\nimport { orchestrateParallel } from \"../core/parallel.js\";\nimport { runJobsParallel } from \"./pool.js\";\n\nexport { initSync } from \"../../wasm-web/bitmark_wasm.js\";\n\n/**\n * Initialise the WASM module.\n *\n * When called without arguments, the default `.wasm` URL is decorated with a\n * cache-busting `?v=<version>` query parameter so that CDN caches are\n * invalidated when the package version changes.\n */\nexport async function init(module_or_path?: any): Promise<any> {\n if (typeof module_or_path === \"undefined\") {\n module_or_path = new URL(`bitmark_wasm_bg.wasm?v=${PACKAGE_INFO.version}`, import.meta.url);\n }\n return wasmInit(module_or_path);\n}\n\nexport type { LexOptions, LexStage, ParseOptions, ConvertOptions, OutputMode, BreakscapeOptions, TextFormat, TextLocation, InfoOptions, InfoType, InfoFormat, InputFormat, OutputFormat, NormalizeOptions, TransformOptions, PatchOp, PatchEntry, BitSlice, BitView, PreHook, PostHook, PreHookResult } from \"../types.js\";\nimport type { LexOptions, ParseOptions, ConvertOptions, BreakscapeOptions, InfoOptions, NormalizeOptions, TransformOptions, BitSlice } from \"../types.js\";\n\n/**\n * Get the version of the @gmb/bitmark-parser library.\n *\n * @returns Version string (e.g. \"3.0.0\").\n */\nexport function version(): string {\n return PACKAGE_INFO.version;\n}\n\n/**\n * Lex bitmark input text, returning one line per token.\n *\n * @param input - The bitmark source text.\n * @param options - Lex options (e.g. `{ stage: \"lex\" }`).\n * @returns Token dump string (one token per line).\n */\nexport function lex(input: string, options: LexOptions = {}): string {\n return wasm.lex(input, options.stage ?? \"lex\");\n}\n\n/**\n * Parse bitmark input text and return structured JSON entries.\n *\n * Each entry contains `bit`, `parser`, and `bitmark` fields.\n *\n * @param input - The bitmark source text.\n * @param options - Parse options (e.g. `{ mode: \"full\" }`).\n * @returns JSON string array of structured parsed entries.\n */\nexport function parse(input: string, options: ParseOptions = {}): string {\n return wasm.parse(input, options.mode ?? \"optimized\");\n}\n\n/**\n * Auto-detect input format and convert between bitmark and JSON.\n *\n * @param input - Bitmark or JSON input text.\n * @param options - Convert options (e.g. `{ mode: \"full\", warnings: true }`).\n * @returns Converted output string. For bitmark input, this is a JSON string\n * array of structured parsed entries (`bit`, `parser`, `bitmark`).\n */\nexport function convert(input: string, options: ConvertOptions = {}): string {\n return wasm.convert(\n input,\n options.inputFormat ?? \"auto\",\n options.outputFormat ?? \"auto\",\n options.mode ?? \"optimized\",\n options.pretty ?? false,\n options.indent ?? 2,\n options.spacesAroundValues ?? 1,\n );\n}\n\n/** Re-emit input in its own format at optimized mode. `options.inputFormat`\n * selects the format (default: `\"auto\"`). */\nexport function optimize(input: string, options: NormalizeOptions = {}): string {\n return wasm.optimize(input, options.inputFormat ?? \"auto\", options.pretty ?? false, options.indent ?? 2);\n}\n\n/** Re-emit input in its own format at full mode (all keys). Aliased `expand`.\n * `options.inputFormat` selects the format (default: `\"auto\"`). */\nexport function fullize(input: string, options: NormalizeOptions = {}): string {\n return wasm.fullize(input, options.inputFormat ?? \"auto\", options.pretty ?? false, options.indent ?? 2);\n}\n\n/** Alias of {@link fullize}. */\nexport const expand = fullize;\n\n/** Re-emit input in its own format in canonical form. `options.inputFormat`\n * selects the format (default: `\"auto\"`). */\nexport function canonicalize(input: string, options: NormalizeOptions = {}): string {\n return wasm.canonicalize(\n input,\n options.inputFormat ?? \"auto\",\n options.mode ?? \"optimized\",\n options.pretty ?? false,\n options.indent ?? 2,\n options.spacesAroundValues ?? 1,\n );\n}\n\n/** Count the bits in `input` (auto-detect). @throws on parse failure. */\nexport function countBits(input: string): number {\n const out = wasm.count_bits(input);\n if (out.startsWith(\"error:\")) throw new Error(out);\n return Number.parseInt(out, 10);\n}\n\n/** Split a bitmark document into per-bit source slices. */\nexport function splitBits(input: string): BitSlice[] {\n return JSON.parse(wasm.split_bits(input)) as BitSlice[];\n}\n\n/**\n * Transform a document bit-by-bit. With a `preHook`/`postHook` the bits are\n * driven one at a time on the calling thread (hooks see each bit, only data\n * crosses into WASM); otherwise the whole document is one WASM pass.\n */\nexport function transform(input: string, options: TransformOptions = {}): string {\n if (options.preHook || options.postHook) {\n return runHookedTransform(wasm as unknown as HookedWasm, input, options);\n }\n const patchJson =\n options.patch === undefined\n ? \"\"\n : typeof options.patch === \"string\"\n ? options.patch\n : JSON.stringify(options.patch);\n return wasm.transform(\n input,\n options.inputFormat ?? \"auto\",\n options.outputFormat ?? \"json\",\n options.mode ?? \"optimized\",\n patchJson,\n options.pretty ?? false,\n options.indent ?? 2,\n options.spacesAroundValues ?? 1,\n );\n}\n\n/**\n * Parallel counterpart of {@link transform} (browser). Fans the per-bit WASM\n * compute across a pool of module `Worker`s (`options.workers`, default `4`);\n * each worker loads its own WASM instance. `preHook`/`postHook` run on the\n * calling thread. Call {@link init} before use. Output is identical to\n * {@link transform}; this trades worker startup cost for throughput on large\n * documents.\n *\n * **Requires the ESM build** (`@gmb/bitmark-parser/browser`, i.e.\n * `dist/browser/esm`): the module-`Worker` entry (`worker-entry.js`) and its\n * `.wasm` are emitted only beside that bundle. Module workers are ESM by\n * nature; the CJS / single-file min bundles ship the sync {@link transform}\n * only, and calling this there resolves to an `error:` string (the worker\n * file is absent). For throughput in those targets, use {@link transform} or\n * chunk + your own workers.\n *\n * @returns A Promise of the transformed document, or an `error:`-prefixed\n * string on failure.\n */\nexport function transformParallel(input: string, options: TransformOptions = {}): Promise<string> {\n return orchestrateParallel(wasm as unknown as HookedWasm, input, options, runJobsParallel);\n}\n\n/**\n * Breakscape text (escape bitmark special characters).\n *\n * @param input - The text to breakscape.\n * @param options - Breakscape options (e.g. `{ format: \"plainText\", location: \"tag\" }`).\n * @returns Breakscaped text.\n */\nexport function breakscapeText(input: string, options: BreakscapeOptions = {}): string {\n const format = options.format ?? \"bitmark++\";\n const location = options.location ?? \"body\";\n return wasm.breakscape_text(input, format, location);\n}\n\n/**\n * Unbreakscape text (unescape bitmark special characters).\n *\n * @param input - The text to unbreakscape.\n * @param options - Unbreakscape options (e.g. `{ format: \"plainText\", location: \"tag\" }`).\n * @returns Unbreakscaped text.\n */\nexport function unbreakscapeText(input: string, options: BreakscapeOptions = {}): string {\n const format = options.format ?? \"bitmark++\";\n const location = options.location ?? \"body\";\n return wasm.unbreakscape_text(input, format, location);\n}\n\n/**\n * Query information about supported bit types.\n *\n * @param options - Info options (e.g. `{ infoType: \"bit\", format: \"json\", bit: \"cloze\" }`).\n * @returns Information string.\n */\nexport function info(options: InfoOptions = {}): string {\n const infoType = options.infoType ?? \"list\";\n const format = options.format ?? \"text\";\n const bit = options.bit ?? \"\";\n const pretty = options.pretty ?? false;\n const indent = options.indent ?? 2;\n return wasm.info(infoType, format, bit, pretty, indent);\n}\n"]}
|
|
Binary file
|
|
Binary file
|