@vedivad/typst-web-service 0.7.1 → 0.7.10

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/dist/index.js CHANGED
@@ -11,7 +11,7 @@ function createBlobWorker(code) {
11
11
  return worker;
12
12
  }
13
13
  function createWorker() {
14
- return createBlobWorker('"use strict";(()=>{var Nt=Object.defineProperty;var dt=(n,t)=>()=>(n&&(t=n(n=0)),t);var Jt=(n,t)=>{for(var e in t)Nt(n,e,{get:t[e],enumerable:!0})};function f(n){q===S.length&&S.push(S.length+1);let t=q;return q=S[t],S[t]=n,t}function ot(n,t){if(!(n instanceof t))throw new Error(`expected instance of ${t.name}`)}function it(n){let t=typeof n;if(t=="number"||t=="boolean"||n==null)return`${n}`;if(t=="string")return`"${n}"`;if(t=="symbol"){let o=n.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){let o=n.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(n)){let o=n.length,s="[";o>0&&(s+=it(n[0]));for(let _=1;_<o;_++)s+=", "+it(n[_]);return s+="]",s}let e=/\\[object ([^\\]]+)\\]/.exec(toString.call(n)),r;if(e&&e.length>1)r=e[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message}\n${n.stack}`:r}function Yt(n){n<132||(S[n]=q,q=n)}function Kt(n,t){n=n>>>0;let e=a(),r=[];for(let o=n;o<n+4*t;o+=4)r.push(d(e.getUint32(o,!0)));return r}function Zt(n,t){return n=n>>>0,te().subarray(n/4,n/4+t)}function st(n,t){return n=n>>>0,T().subarray(n/1,n/1+t)}function a(){return(R===null||R.buffer.detached===!0||R.buffer.detached===void 0&&R.buffer!==i.memory.buffer)&&(R=new DataView(i.memory.buffer)),R}function I(n,t){return n=n>>>0,re(n,t)}function te(){return(D===null||D.byteLength===0)&&(D=new Uint32Array(i.memory.buffer)),D}function T(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(i.memory.buffer)),z}function c(n){return S[n]}function M(n,t){try{return n.apply(this,t)}catch(e){i.__wbindgen_export3(f(e))}}function y(n){return n==null}function ee(n,t,e,r){let o={a:n,b:t,cnt:1,dtor:e},s=(..._)=>{o.cnt++;let u=o.a;o.a=0;try{return r(u,o.b,..._)}finally{o.a=u,s._wbg_cb_unref()}};return s._wbg_cb_unref=()=>{--o.cnt===0&&(o.dtor(o.a,o.b),o.a=0,bt.unregister(o))},bt.register(s,o,o),s}function kt(n,t){let e=t(n.length*1,1)>>>0;return T().set(n,e/1),l=n.length,e}function H(n,t){let e=t(n.length*4,4)>>>0,r=a();for(let o=0;o<n.length;o++)r.setUint32(e+4*o,f(n[o]),!0);return l=n.length,e}function b(n,t,e){if(e===void 0){let u=U.encode(n),g=t(u.length,1)>>>0;return T().subarray(g,g+u.length).set(u),l=u.length,g}let r=n.length,o=t(r,1)>>>0,s=T(),_=0;for(;_<r;_++){let u=n.charCodeAt(_);if(u>127)break;s[o+_]=u}if(_!==r){_!==0&&(n=n.slice(_)),o=e(o,r,r=_+n.length*3,1)>>>0;let u=T().subarray(o+_,o+r),g=U.encodeInto(n,u);_+=g.written,o=e(o,r,_,1)>>>0}return l=_,o}function d(n){let t=c(n);return Yt(n),t}function re(n,t){return nt+=t,nt>=ne&&(G=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),G.decode(),nt=t),G.decode(T().subarray(n,n+t))}function oe(n,t,e){i.__wasm_bindgen_func_elem_944(n,t,f(e))}function ie(n,t,e,r){i.__wasm_bindgen_func_elem_37348(n,t,f(e),f(r))}function se(n){let t=i.get_font_info(f(n));return d(t)}async function ae(n,t){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,t)}catch(r){if(n.ok&&_e.has(n.type)&&n.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",r);else throw r}let e=await n.arrayBuffer();return await WebAssembly.instantiate(e,t)}else{let e=await WebAssembly.instantiate(n,t);return e instanceof WebAssembly.Instance?{instance:e,module:n}:e}}function St(){let n={};return n.wbg={},n.wbg.__wbg_Error_52673b7de5a0ca89=function(t,e){let r=Error(I(t,e));return f(r)},n.wbg.__wbg_Number_2d1dcfcf4ec51736=function(t){return Number(c(t))},n.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(t,e){let r=c(e),o=typeof r=="bigint"?r:void 0;a().setBigInt64(t+8,y(o)?BigInt(0):o,!0),a().setInt32(t+0,!y(o),!0)},n.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(t){let e=c(t),r=typeof e=="boolean"?e:void 0;return y(r)?16777215:r?1:0},n.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(t,e){let r=it(c(e)),o=b(r,i.__wbindgen_export,i.__wbindgen_export2),s=l;a().setInt32(t+4,s,!0),a().setInt32(t+0,o,!0)},n.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(t,e){return c(t)in c(e)},n.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(t){return typeof c(t)=="bigint"},n.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(t){return typeof c(t)=="function"},n.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(t){let e=c(t);return typeof e=="object"&&e!==null},n.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(t){return typeof c(t)=="string"},n.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(t){return c(t)===void 0},n.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(t,e){return c(t)===c(e)},n.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(t,e){return c(t)==c(e)},n.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(t,e){let r=c(e),o=typeof r=="number"?r:void 0;a().setFloat64(t+8,y(o)?0:o,!0),a().setInt32(t+0,!y(o),!0)},n.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(t,e){let r=c(e),o=typeof r=="string"?r:void 0;var s=y(o)?0:b(o,i.__wbindgen_export,i.__wbindgen_export2),_=l;a().setInt32(t+4,_,!0),a().setInt32(t+0,s,!0)},n.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(t,e){throw new Error(I(t,e))},n.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7=function(t){c(t)._wbg_cb_unref()},n.wbg.__wbg_call_3020136f7a2d6e44=function(){return M(function(t,e,r){let o=c(t).call(c(e),c(r));return f(o)},arguments)},n.wbg.__wbg_call_78f94eb02ec7f9b2=function(){return M(function(t,e,r,o,s){let _=c(t).call(c(e),c(r),c(o),c(s));return f(_)},arguments)},n.wbg.__wbg_call_abb4ff46ce38be40=function(){return M(function(t,e){let r=c(t).call(c(e));return f(r)},arguments)},n.wbg.__wbg_done_62ea16af4ce34b24=function(t){return c(t).done},n.wbg.__wbg_entries_83c79938054e065f=function(t){let e=Object.entries(c(t));return f(e)},n.wbg.__wbg_error_7534b8e9a36f1ab4=function(t,e){let r,o;try{r=t,o=e,console.error(I(t,e))}finally{i.__wbindgen_export4(r,o,1)}},n.wbg.__wbg_error_85faeb8919b11cc6=function(t,e,r){console.error(c(t),c(e),c(r))},n.wbg.__wbg_getTimezoneOffset_45389e26d6f46823=function(t){return c(t).getTimezoneOffset()},n.wbg.__wbg_get_6b7bd52aca3f9671=function(t,e){let r=c(t)[e>>>0];return f(r)},n.wbg.__wbg_get_af9dab7e9603ea93=function(){return M(function(t,e){let r=Reflect.get(c(t),c(e));return f(r)},arguments)},n.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(t,e){let r=c(t)[c(e)];return f(r)},n.wbg.__wbg_info_ce6bcc489c22f6f0=function(t){console.info(c(t))},n.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(t){let e;try{e=c(t)instanceof ArrayBuffer}catch{e=!1}return e},n.wbg.__wbg_instanceof_Map_084be8da74364158=function(t){let e;try{e=c(t)instanceof Map}catch{e=!1}return e},n.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(t){let e;try{e=c(t)instanceof Uint8Array}catch{e=!1}return e},n.wbg.__wbg_isArray_51fd9e6422c0a395=function(t){return Array.isArray(c(t))},n.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(t){return Number.isSafeInteger(c(t))},n.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return f(Symbol.iterator)},n.wbg.__wbg_length_22ac23eaec9d8053=function(t){return c(t).length},n.wbg.__wbg_length_d45040a40c570362=function(t){return c(t).length},n.wbg.__wbg_new_1ba21ce319a06297=function(){let t=new Object;return f(t)},n.wbg.__wbg_new_25f239778d6112b9=function(){let t=new Array;return f(t)},n.wbg.__wbg_new_6421f6084cc5bc5a=function(t){let e=new Uint8Array(c(t));return f(e)},n.wbg.__wbg_new_8a6f238a6ece86ea=function(){let t=new Error;return f(t)},n.wbg.__wbg_new_b2db8aa2650f793a=function(t){let e=new Date(c(t));return f(e)},n.wbg.__wbg_new_df1173567d5ff028=function(t,e){let r=new Error(I(t,e));return f(r)},n.wbg.__wbg_new_ff12d2b041fb48f1=function(t,e){try{var r={a:t,b:e},o=(_,u)=>{let g=r.a;r.a=0;try{return ie(g,r.b,_,u)}finally{r.a=g}};let s=new Promise(o);return f(s)}finally{r.a=r.b=0}},n.wbg.__wbg_new_from_slice_db0691b69e9d3891=function(t,e){let r=new Uint32Array(Zt(t,e));return f(r)},n.wbg.__wbg_new_from_slice_f9c22b9153b26992=function(t,e){let r=new Uint8Array(st(t,e));return f(r)},n.wbg.__wbg_new_no_args_cb138f77cf6151ee=function(t,e){let r=new Function(I(t,e));return f(r)},n.wbg.__wbg_new_with_args_df9e7125ffe55248=function(t,e,r,o){let s=new Function(I(t,e),I(r,o));return f(s)},n.wbg.__wbg_next_138a17bbf04e926c=function(t){let e=c(t).next;return f(e)},n.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return M(function(t){let e=c(t).next();return f(e)},arguments)},n.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},n.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(t,e,r){Uint8Array.prototype.set.call(st(t,e),c(r))},n.wbg.__wbg_proxycontext_new=function(t){let e=O.__wrap(t);return f(e)},n.wbg.__wbg_push_7d9be8f38fc13975=function(t,e){return c(t).push(c(e))},n.wbg.__wbg_queueMicrotask_9b549dfce8865860=function(t){let e=c(t).queueMicrotask;return f(e)},n.wbg.__wbg_queueMicrotask_fca69f5bfad613a5=function(t){queueMicrotask(c(t))},n.wbg.__wbg_resolve_fd5bfbaa4ce36e1e=function(t){let e=Promise.resolve(c(t));return f(e)},n.wbg.__wbg_set_3f1d0b984ed272ed=function(t,e,r){c(t)[d(e)]=d(r)},n.wbg.__wbg_set_781438a03c0c3c81=function(){return M(function(t,e,r){return Reflect.set(c(t),c(e),c(r))},arguments)},n.wbg.__wbg_set_7df433eea03a5c14=function(t,e,r){c(t)[e>>>0]=d(r)},n.wbg.__wbg_stack_0ed75d68575b0f3c=function(t,e){let r=c(e).stack,o=b(r,i.__wbindgen_export,i.__wbindgen_export2),s=l;a().setInt32(t+4,s,!0),a().setInt32(t+0,o,!0)},n.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335=function(){let t=typeof global>"u"?null:global;return y(t)?0:f(t)},n.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1=function(){let t=typeof globalThis>"u"?null:globalThis;return y(t)?0:f(t)},n.wbg.__wbg_static_accessor_SELF_08f5a74c69739274=function(){let t=typeof self>"u"?null:self;return y(t)?0:f(t)},n.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024=function(){let t=typeof window>"u"?null:window;return y(t)?0:f(t)},n.wbg.__wbg_then_4f95312d68691235=function(t,e){let r=c(t).then(c(e));return f(r)},n.wbg.__wbg_typstcompiler_new=function(t){let e=B.__wrap(t);return f(e)},n.wbg.__wbg_typstfontresolver_new=function(t){let e=A.__wrap(t);return f(e)},n.wbg.__wbg_value_57b7b035e117f7ee=function(t){let e=c(t).value;return f(e)},n.wbg.__wbindgen_cast_2241b6af4c4b2941=function(t,e){let r=I(t,e);return f(r)},n.wbg.__wbindgen_cast_3334ea73b4b28ba3=function(t,e){let r=ee(t,e,i.__wasm_bindgen_func_elem_957,oe);return f(r)},n.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(t){let e=BigInt.asUintN(64,t);return f(e)},n.wbg.__wbindgen_cast_9ae0607507abb057=function(t){return f(t)},n.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(t){return f(t)},n.wbg.__wbindgen_object_clone_ref=function(t){let e=c(t);return f(e)},n.wbg.__wbindgen_object_drop_ref=function(t){d(t)},n}function Ft(n,t){return i=n.exports,Rt.__wbindgen_wasm_module=t,R=null,D=null,z=null,i}function ce(n){if(i!==void 0)return i;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=St();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));let e=new WebAssembly.Instance(n,t);return Ft(e,n)}async function Rt(n){if(i!==void 0)return i;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof n>"u"&&(n=Mt("typst_ts_web_compiler_bg.wasm",ue.url));let t=St();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));let{instance:e,module:r}=await ae(await n,t);return Ft(e,r)}function _t(n){Mt=n}var ue,i,bt,R,D,z,S,q,G,ne,nt,U,l,yt,rt,mt,ht,vt,xt,It,F,O,j,B,N,A,J,_e,At,Mt,Q=dt(()=>{ue={};bt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>n.dtor(n.a,n.b));R=null;D=null;z=null;S=new Array(128).fill(void 0);S.push(void 0,null,!0,!1);q=S.length;G=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});G.decode();ne=2146435072,nt=0;U=new TextEncoder;"encodeInto"in U||(U.encodeInto=function(n,t){let e=U.encode(n);return t.set(e),{read:n.length,written:e.length}});l=0;yt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_incrserver_free(n>>>0,1)),rt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_proxycontext_free(n>>>0,1)),mt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstcompileworld_free(n>>>0,1)),ht=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstcompiler_free(n>>>0,1)),vt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstcompilerbuilder_free(n>>>0,1)),xt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstfontresolver_free(n>>>0,1)),It=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstfontresolverbuilder_free(n>>>0,1)),F=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,yt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,yt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_incrserver_free(t,0)}set_attach_debug_info(t){i.incrserver_set_attach_debug_info(this.__wbg_ptr,t)}current(){try{let r=i.__wbindgen_add_to_stack_pointer(-16);i.incrserver_current(r,this.__wbg_ptr);var t=a().getInt32(r+0,!0),e=a().getInt32(r+4,!0);let o;return t!==0&&(o=st(t,e).slice(),i.__wbindgen_export4(t,e*1,1)),o}finally{i.__wbindgen_add_to_stack_pointer(16)}}reset(){i.incrserver_reset(this.__wbg_ptr)}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);O=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,rt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,rt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_proxycontext_free(t,0)}constructor(t){let e=i.proxycontext_new(f(t));return this.__wbg_ptr=e>>>0,rt.register(this,this.__wbg_ptr,this),this}get context(){let t=i.proxycontext_context(this.__wbg_ptr);return d(t)}untar(t,e){try{let s=i.__wbindgen_add_to_stack_pointer(-16),_=kt(t,i.__wbindgen_export),u=l;i.proxycontext_untar(s,this.__wbg_ptr,_,u,f(e));var r=a().getInt32(s+0,!0),o=a().getInt32(s+4,!0);if(o)throw d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(O.prototype[Symbol.dispose]=O.prototype.free);j=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,mt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,mt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompileworld_free(t,0)}compile(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_compile(_,this.__wbg_ptr,t,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}title(t){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_title(_,this.__wbg_ptr,t);var e=a().getInt32(_+0,!0),r=a().getInt32(_+4,!0),o=a().getInt32(_+8,!0),s=a().getInt32(_+12,!0);if(s)throw d(o);let u;return e!==0&&(u=I(e,r).slice(),i.__wbindgen_export4(e,r*1,1)),u}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_artifact(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_get_artifact(_,this.__wbg_ptr,t,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}query(t,e,r){let o,s;try{let k=i.__wbindgen_add_to_stack_pointer(-16),C=b(e,i.__wbindgen_export,i.__wbindgen_export2),W=l;var _=y(r)?0:b(r,i.__wbindgen_export,i.__wbindgen_export2),u=l;i.typstcompileworld_query(k,this.__wbg_ptr,t,C,W,_,u);var g=a().getInt32(k+0,!0),p=a().getInt32(k+4,!0),w=a().getInt32(k+8,!0),h=a().getInt32(k+12,!0),m=g,v=p;if(h)throw m=0,v=0,d(w);return o=m,s=v,I(m,v)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(o,s,1)}}incr_compile(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16);ot(t,F),i.typstcompileworld_incr_compile(_,this.__wbg_ptr,t.__wbg_ptr,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(j.prototype[Symbol.dispose]=j.prototype.free);B=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,ht.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,ht.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompiler_free(t,0)}reset(){try{let r=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_reset(r,this.__wbg_ptr);var t=a().getInt32(r+0,!0),e=a().getInt32(r+4,!0);if(e)throw d(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_fonts(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);ot(t,A),i.typstcompiler_set_fonts(o,this.__wbg_ptr,t.__wbg_ptr);var e=a().getInt32(o+0,!0),r=a().getInt32(o+4,!0);if(r)throw d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_inputs(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_set_inputs(o,this.__wbg_ptr,f(t));var e=a().getInt32(o+0,!0),r=a().getInt32(o+4,!0);if(r)throw d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_source(t,e){let r=b(t,i.__wbindgen_export,i.__wbindgen_export2),o=l,s=b(e,i.__wbindgen_export,i.__wbindgen_export2),_=l;return i.typstcompiler_add_source(this.__wbg_ptr,r,o,s,_)!==0}map_shadow(t,e){let r=b(t,i.__wbindgen_export,i.__wbindgen_export2),o=l,s=kt(e,i.__wbindgen_export),_=l;return i.typstcompiler_map_shadow(this.__wbg_ptr,r,o,s,_)!==0}unmap_shadow(t){let e=b(t,i.__wbindgen_export,i.__wbindgen_export2),r=l;return i.typstcompiler_unmap_shadow(this.__wbg_ptr,e,r)!==0}reset_shadow(){i.typstcompiler_reset_shadow(this.__wbg_ptr)}get_loaded_fonts(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_get_loaded_fonts(o,this.__wbg_ptr);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=Kt(t,e).slice();return i.__wbindgen_export4(t,e*4,4),r}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_ast(t){let e,r;try{let w=i.__wbindgen_add_to_stack_pointer(-16),h=b(t,i.__wbindgen_export,i.__wbindgen_export2),m=l;i.typstcompiler_get_ast(w,this.__wbg_ptr,h,m);var o=a().getInt32(w+0,!0),s=a().getInt32(w+4,!0),_=a().getInt32(w+8,!0),u=a().getInt32(w+12,!0),g=o,p=s;if(u)throw g=0,p=0,d(_);return e=g,r=p,I(g,p)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(e,r,1)}}get_semantic_token_legend(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_get_semantic_token_legend(o,this.__wbg_ptr);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return d(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_semantic_tokens(t,e,r){try{let h=i.__wbindgen_add_to_stack_pointer(-16),m=b(t,i.__wbindgen_export,i.__wbindgen_export2),v=l;var o=y(e)?0:b(e,i.__wbindgen_export,i.__wbindgen_export2),s=l,_=y(r)?0:b(r,i.__wbindgen_export,i.__wbindgen_export2),u=l;i.typstcompiler_get_semantic_tokens(h,this.__wbg_ptr,m,v,o,s,_,u);var g=a().getInt32(h+0,!0),p=a().getInt32(h+4,!0),w=a().getInt32(h+8,!0);if(w)throw d(p);return d(g)}finally{i.__wbindgen_add_to_stack_pointer(16)}}snapshot(t,e,r){try{let v=i.__wbindgen_add_to_stack_pointer(-16);var o=y(t)?0:b(t,i.__wbindgen_export,i.__wbindgen_export2),s=l,_=y(e)?0:b(e,i.__wbindgen_export,i.__wbindgen_export2),u=l,g=y(r)?0:H(r,i.__wbindgen_export),p=l;i.typstcompiler_snapshot(v,this.__wbg_ptr,o,s,_,u,g,p);var w=a().getInt32(v+0,!0),h=a().getInt32(v+4,!0),m=a().getInt32(v+8,!0);if(m)throw d(h);return j.__wrap(w)}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_artifact(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16),u=b(t,i.__wbindgen_export,i.__wbindgen_export2),g=l;i.typstcompiler_get_artifact(_,this.__wbg_ptr,u,g,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}compile(t,e,r,o){try{let m=i.__wbindgen_add_to_stack_pointer(-16);var s=y(t)?0:b(t,i.__wbindgen_export,i.__wbindgen_export2),_=l,u=y(e)?0:H(e,i.__wbindgen_export),g=l;let v=b(r,i.__wbindgen_export,i.__wbindgen_export2),k=l;i.typstcompiler_compile(m,this.__wbg_ptr,s,_,u,g,v,k,o);var p=a().getInt32(m+0,!0),w=a().getInt32(m+4,!0),h=a().getInt32(m+8,!0);if(h)throw d(w);return d(p)}finally{i.__wbindgen_add_to_stack_pointer(16)}}query(t,e,r,o){let s,_;try{let L=i.__wbindgen_add_to_stack_pointer(-16),Dt=b(t,i.__wbindgen_export,i.__wbindgen_export2),zt=l;var u=y(e)?0:H(e,i.__wbindgen_export),g=l;let qt=b(r,i.__wbindgen_export,i.__wbindgen_export2),Ut=l;var p=y(o)?0:b(o,i.__wbindgen_export,i.__wbindgen_export2),w=l;i.typstcompiler_query(L,this.__wbg_ptr,Dt,zt,u,g,qt,Ut,p,w);var h=a().getInt32(L+0,!0),m=a().getInt32(L+4,!0),v=a().getInt32(L+8,!0),k=a().getInt32(L+12,!0),C=h,W=m;if(k)throw C=0,W=0,d(v);return s=C,_=W,I(C,W)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(s,_,1)}}create_incr_server(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_create_incr_server(o,this.__wbg_ptr);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return F.__wrap(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}incr_compile(t,e,r,o){try{let w=i.__wbindgen_add_to_stack_pointer(-16),h=b(t,i.__wbindgen_export,i.__wbindgen_export2),m=l;var s=y(e)?0:H(e,i.__wbindgen_export),_=l;ot(r,F),i.typstcompiler_incr_compile(w,this.__wbg_ptr,h,m,s,_,r.__wbg_ptr,o);var u=a().getInt32(w+0,!0),g=a().getInt32(w+4,!0),p=a().getInt32(w+8,!0);if(p)throw d(g);return d(u)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(B.prototype[Symbol.dispose]=B.prototype.free);N=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,vt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompilerbuilder_free(t,0)}constructor(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompilerbuilder_new(o);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return this.__wbg_ptr=t>>>0,vt.register(this,this.__wbg_ptr,this),this}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_dummy_access_model(){try{let r=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompilerbuilder_set_dummy_access_model(r,this.__wbg_ptr);var t=a().getInt32(r+0,!0),e=a().getInt32(r+4,!0);if(e)throw d(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_access_model(t,e,r,o,s){let _=i.typstcompilerbuilder_set_access_model(this.__wbg_ptr,f(t),f(e),f(r),f(o),f(s));return d(_)}set_package_registry(t,e){let r=i.typstcompilerbuilder_set_package_registry(this.__wbg_ptr,f(t),f(e));return d(r)}add_raw_font(t){let e=i.typstcompilerbuilder_add_raw_font(this.__wbg_ptr,f(t));return d(e)}add_lazy_font(t,e){let r=i.typstcompilerbuilder_add_lazy_font(this.__wbg_ptr,f(t),f(e));return d(r)}build(){let t=this.__destroy_into_raw(),e=i.typstcompilerbuilder_build(t);return d(e)}};Symbol.dispose&&(N.prototype[Symbol.dispose]=N.prototype.free);A=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,xt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,xt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstfontresolver_free(t,0)}};Symbol.dispose&&(A.prototype[Symbol.dispose]=A.prototype.free);J=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,It.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstfontresolverbuilder_free(t,0)}constructor(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_new(o);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return this.__wbg_ptr=t>>>0,It.register(this,this.__wbg_ptr,this),this}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_font_info(t){try{let s=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_get_font_info(s,this.__wbg_ptr,f(t));var e=a().getInt32(s+0,!0),r=a().getInt32(s+4,!0),o=a().getInt32(s+8,!0);if(o)throw d(r);return d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_raw_font(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_add_raw_font(o,this.__wbg_ptr,f(t));var e=a().getInt32(o+0,!0),r=a().getInt32(o+4,!0);if(r)throw d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_lazy_font(t,e){try{let s=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_add_lazy_font(s,this.__wbg_ptr,f(t),f(e));var r=a().getInt32(s+0,!0),o=a().getInt32(s+4,!0);if(o)throw d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}build(){let t=this.__destroy_into_raw(),e=i.typstfontresolverbuilder_build(t);return d(e)}};Symbol.dispose&&(J.prototype[Symbol.dispose]=J.prototype.free);_e=new Set(["basic","cors","default"]);At=Rt,Mt=async function(n,t){throw new Error("Cannot import wasm module without importer: "+n+" "+t)}});var Tt={};Jt(Tt,{IncrServer:()=>F,ProxyContext:()=>O,TypstCompileWorld:()=>j,TypstCompiler:()=>B,TypstCompilerBuilder:()=>N,TypstFontResolver:()=>A,TypstFontResolverBuilder:()=>J,default:()=>fe,get_font_info:()=>se,initSync:()=>ce,setImportWasmModule:()=>_t});var fe,de,ge,Ot=dt(()=>{Q();Q();Q();fe=At,de=async function(n,t){let e=new Function("m","return import(m)"),{readFileSync:r}=await e("fs"),o=new URL(n,t);return await r(o).buffer},ge=typeof process<"u"&&process.versions!=null&&process.versions.node!=null;ge&&_t(de)});var et=class{loadedFonts=new Set;fetcher=fetch;setFetcher(t){this.fetcher=t}async loadFonts(t,e){let r=new Function("m","return import(m)"),o=this.fetcher||=await(async function(){let{fetchBuilder:u,FileSystemCache:g}=await r("node-fetch-cache"),p=new g({cacheDirectory:".cache/typst/fonts"}),w=u.withCache(p);return function(h,m){let v=setTimeout(()=>{console.warn("font fetching is stucking:",h)},15e3);return w(h,m).finally(()=>{clearTimeout(v)})}})(),s=e.filter(u=>u instanceof Uint8Array||typeof u=="object"&&"info"in u?!0:this.loadedFonts.has(u)?!1:(this.loadedFonts.add(u),!0)),_=await Promise.all(s.map(async u=>{if(u instanceof Uint8Array){await t.add_raw_font(u);return}if(typeof u=="object"&&"info"in u){await t.add_lazy_font(u,"blob"in u?u.blob:$t(u));return}return new Uint8Array(await(await o(u)).arrayBuffer())}));for(let u of _)u&&await t.add_raw_font(u)}async build(t,e,r){let o={ref:this,builder:e,hooks:r};for(let s of t?.beforeBuild??[])await s(void 0,o);return r.latelyBuild&&r.latelyBuild(o),await e.build()}};async function gt(n,t,e,r){return await t.init(n?.getModule?.()),await new et().build(n,new e,r)}function $t(n){return()=>{let t=new XMLHttpRequest;return t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",n.url,!1),t.send(null),t.status===200&&(t.response instanceof String||typeof t.response=="string")?Uint8Array.from(t.response,e=>e.charCodeAt(0)):new Uint8Array}}var x=Symbol.for("reflexo-obj");var lt;(function(n){n[n.PIXEL_PER_PT=3]="PIXEL_PER_PT"})(lt||(lt={}));var Vt=["DejaVuSansMono-Bold.ttf","DejaVuSansMono-BoldOblique.ttf","DejaVuSansMono-Oblique.ttf","DejaVuSansMono.ttf","LibertinusSerif-Bold.otf","LibertinusSerif-BoldItalic.otf","LibertinusSerif-Italic.otf","LibertinusSerif-Regular.otf","LibertinusSerif-Semibold.otf","LibertinusSerif-SemiboldItalic.otf","NewCM10-Bold.otf","NewCM10-BoldItalic.otf","NewCM10-Italic.otf","NewCM10-Regular.otf","NewCMMath-Bold.otf","NewCMMath-Book.otf","NewCMMath-Regular.otf"],Xt=["InriaSerif-Bold.ttf","InriaSerif-BoldItalic.ttf","InriaSerif-Italic.ttf","InriaSerif-Regular.ttf","Roboto-Regular.ttf","NotoSerifCJKsc-Regular.otf"],Ht=["TwitterColorEmoji.ttf","NotoColorEmoji-Regular-COLR.subset.ttf"];function Gt(n){let t=[];if(n&&n?.assets!==!1&&n?.assets?.length&&n?.assets?.length>0){let e={text:"https://cdn.jsdelivr.net/gh/typst/typst-assets@v0.13.1/files/fonts/",_:"https://cdn.jsdelivr.net/gh/typst/typst-dev-assets@v0.13.1/files/fonts/"},r=n.assetUrlPrefix??e;typeof r=="string"?r={_:r}:r={...e,...r};for(let s of Object.keys(r)){let _=r[s];_[_.length-1]!=="/"&&(r[s]=_+"/")}let o=(s,_)=>_.map(u=>(r[s]||r._)+u);for(let s of n.assets)switch(s){case"text":t.push(...o(s,Vt));break;case"cjk":t.push(...o(s,Xt));break;case"emoji":t.push(...o(s,Ht));break}}return t}function V(n,t){let e=Gt(t),r=async(o,{ref:s,builder:_})=>{t?.fetcher&&s.setFetcher(t.fetcher),await s.loadFonts(_,[...n,...e])};return r._preloadRemoteFontOptions=t,r._kind="fontLoader",r}function pt(n){return async(t,{builder:e})=>new Promise(r=>{e.set_package_registry(n,function(o){return n.resolve(o,this)}),r()})}function wt(n){return async(t,e)=>{if(e.alreadySetAccessModel)throw new Error(`already set some assess model before: ${e.alreadySetAccessModel.constructor?.name}(${e.alreadySetAccessModel})`);return e.alreadySetAccessModel=n,new Promise(r=>{e.builder.set_access_model(n,o=>{let s=n.getMTime(o);return s?s.getTime():0},o=>n.isFile(o)||!1,o=>n.getRealPath(o)||o,o=>n.readAll(o)),r()})}}var Qt=n=>{let t=!1,e;return()=>t?e:(t=!0,e=n())},X=class{wasmBin;initOnce;constructor(t){if(typeof t!="function")throw new Error("initFn is not a function");this.initOnce=Qt(async()=>{await t(this.wasmBin)})}async init(t){this.wasmBin=t,await this.initOnce()}};var $;(function(n){n[n.vector=0]="vector",n[n.pdf=1]="pdf",n[n._dummy=2]="_dummy"})($||($={}));var at=class{[x];constructor(t){this[x]=t}reset(){this[x].reset()}current(){return this[x].current()}setAttachDebugInfo(t){this[x].set_attach_debug_info(t)}},jt;jt||(jt={});var ct=class{[x];constructor(t){this[x]=t}compile(t){return this[x].compile(0,E(t?.diagnostics))}compileHtml(t){return this[x].compile(1,E(t?.diagnostics))}async query(t){return JSON.parse(this[x].query(0,t.selector,t.field))}title(){return this[x].title(0)}vector(t){return this[x].get_artifact(0,E(t?.diagnostics))||{}}pdf(t){return this[x].get_artifact(1,E(t?.diagnostics))||{}}},le=n=>new X(async t=>await n.default(t));function ut(){return new Y}var Y=class n{compiler;compilerJs;static defaultAssets=["text"];constructor(){}async init(t){this.compilerJs=await(t?.getWrapper?.()||Promise.resolve().then(()=>(Ot(),Tt)));let e=this.compilerJs.TypstCompilerBuilder,r={...t||{}},o=r.beforeBuild??=[],s=o.some(p=>p._preloadRemoteFontOptions!==void 0),_=o.some(p=>p._preloadRemoteFontOptions?.assets!==void 0),u=o.some(p=>p._preloadRemoteFontOptions?.assets===!1);if((!s||!_&&!u)&&o.push(V([],{assets:n.defaultAssets})),!o.some(p=>p._kind==="fontLoader"))throw new Error("TypstCompiler: no font loader found, please use font loaders, e.g. loadFonts or preloadSystemFonts");this.compiler=await gt(t,le(this.compilerJs),e,{})}setFonts(t){this.compiler.set_fonts(t)}compile(t){return new Promise(e=>{let r=this.compiler.snapshot(t.root,t.mainFilePath,Bt(t.inputs));if("incrementalServer"in t){e(r.incr_compile(t.incrementalServer[x],E(t.diagnostics)));return}e(r.get_artifact(t.format||$.vector,E(t.diagnostics)))})}async runWithWorld(t,e){let r=this.compiler.snapshot(t.root,t.mainFilePath,Bt(t.inputs)),o=await e(new ct(r));return r.free(),o}query(t){return this.runWithWorld(t,async e=>JSON.parse(await e.query(t)))}getSemanticTokenLegend(){return new Promise(t=>{t(this.compiler.get_semantic_token_legend())})}getSemanticTokens(t){return new Promise(e=>{this.compiler.reset(),e(this.compiler.get_semantic_tokens(t.offsetEncoding||"utf-16",t.mainFilePath,t.resultId))})}async withIncrementalServer(t){let e=new at(this.compiler.create_incr_server());try{return await t(e)}finally{e[x].free()}}async getAst(t){return this.compiler.get_ast(t)}async reset(){await new Promise(t=>{this.compiler.reset(),t(void 0)})}addSource(t,e){if(arguments.length>2)throw new Error("use of addSource(path, source, isMain) is deprecated, please use addSource(path, source) instead");this.compiler.add_source(t,e)}mapShadow(t,e){this.compiler.map_shadow(t,e)}unmapShadow(t){this.compiler.unmap_shadow(t)}resetShadow(){this.compiler.reset_shadow()}renderPageToCanvas(){throw new Error("Please use the api TypstRenderer.renderToCanvas in v0.4.0")}};ut._impl=Y;function Bt(n){return n?Object.entries(n):void 0}function E(n){switch(n){case"none":return 1;case"unix":return 2;default:return 3}}var K=class{mTimes=new Map;mData=new Map;constructor(){}reset(){this.mTimes.clear(),this.mData.clear()}insertFile(t,e,r){this.mTimes.set(t,r),this.mData.set(t,e)}removeFile(t){this.mTimes.delete(t),this.mData.delete(t)}getMTime(t){if(t.startsWith("/@memory/")&&this.mTimes.has(t))return this.mTimes.get(t)}isFile(){return!0}getRealPath(t){return t}readAll(t){if(t.startsWith("/@memory/")&&this.mData.has(t))return this.mData.get(t)}};var Z=class{am;cache=new Map;constructor(t){this.am=t}resolvePath(t){return`https://packages.typst.org/preview/${t.name}-${t.version}.tar.gz`}pullPackageData(t){let e=new XMLHttpRequest;if(e.overrideMimeType("text/plain; charset=x-user-defined"),e.open("GET",this.resolvePath(t),!1),e.send(null),e.status===200&&(e.response instanceof String||typeof e.response=="string"))return Uint8Array.from(e.response,r=>r.charCodeAt(0))}resolve(t,e){if(t.namespace!=="preview")return;let r=this.resolvePath(t);if(this.cache.has(r))return this.cache.get(r)();let o=this.pullPackageData(t);if(!o)return;let s=`/@memory/fetch/packages/${t.namespace}/${t.name}/${t.version}`,_=[];e.untar(o,(g,p,w)=>{_.push([s+"/"+g,p,new Date(w)])});let u=()=>{for(let[g,p,w]of _)this.am.insertFile(g,p,w);return s};return this.cache.set(r,u),u()}};var pe=()=>new Promise(n=>setTimeout(n,0));function ft(n,t){let e=null,r=!1;async function o(){for(r=!0;e;){let s=e;if(e=null,await pe(),e){t?.(s);continue}try{await n(s)}catch{}}r=!1}return s=>{e=s,r||o()}}function tt(n,t){let e=t instanceof Error?t.message:String(t);self.postMessage({type:"error",id:n,message:e})}var Et="/main.typ",Pt=new K,we=new Z(Pt),P=null;async function be(n,t,e){P=ut(),await P.init({getModule:()=>n,beforeBuild:[V(t),...e?[wt(Pt),pt(we)]:[]]})}function ye(n){let t=n.match(/(\\d+):(\\d+)-(\\d+):(\\d+)/);return t?{startLine:+t[1],startCol:+t[2],endLine:+t[3],endCol:+t[4]}:(console.warn(`[typst-web-service] Skipping diagnostic with unrecognized range format: ${JSON.stringify(n)}`),null)}function Ct(n){if(!P)throw new Error("Compiler not initialized");for(let[t,e]of Object.entries(n))P.addSource(t,e)}async function me(n){Ct(n);let t=await P.compile({mainFilePath:Et,diagnostics:"full"});return{diagnostics:(t.diagnostics??[]).flatMap(r=>{let o=ye(r.range);return o?[{...r,severity:r.severity,range:o}]:[]}),vector:t.result??void 0}}function Wt(n){return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}function Lt(n){self.postMessage({type:"cancelled",id:n.id})}var he=ft(async n=>{try{let{diagnostics:t,vector:e}=await me(n.files),r=e?Wt(e):void 0,o={type:"result",id:n.id,diagnostics:t,vector:r};self.postMessage(o,r?[r]:[])}catch(t){tt(n.id,t)}},Lt),ve=ft(async n=>{try{Ct(n.files);let t=await P.compile({mainFilePath:Et,format:$.pdf,diagnostics:"none"});if(!t.result)throw new Error("Compilation produced no output");let e=Wt(t.result);self.postMessage({type:"pdf",id:n.id,data:e},[e])}catch(t){tt(n.id,t)}},Lt);self.onmessage=async n=>{let t=n.data;if(t.type==="init"){try{await be(t.wasmUrl,t.fonts,t.packages),self.postMessage({type:"ready",id:t.id})}catch(e){tt(t.id,e)}return}if(t.type==="compile"){he(t);return}if(t.type==="render"){ve(t);return}t.type==="destroy"&&self.postMessage({type:"destroyed",id:t.id})};})();\n');
14
+ return createBlobWorker('"use strict";(()=>{var Nt=Object.defineProperty;var dt=(n,t)=>()=>(n&&(t=n(n=0)),t);var Jt=(n,t)=>{for(var e in t)Nt(n,e,{get:t[e],enumerable:!0})};function f(n){q===S.length&&S.push(S.length+1);let t=q;return q=S[t],S[t]=n,t}function ot(n,t){if(!(n instanceof t))throw new Error(`expected instance of ${t.name}`)}function it(n){let t=typeof n;if(t=="number"||t=="boolean"||n==null)return`${n}`;if(t=="string")return`"${n}"`;if(t=="symbol"){let o=n.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){let o=n.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(n)){let o=n.length,s="[";o>0&&(s+=it(n[0]));for(let _=1;_<o;_++)s+=", "+it(n[_]);return s+="]",s}let e=/\\[object ([^\\]]+)\\]/.exec(toString.call(n)),r;if(e&&e.length>1)r=e[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message}\n${n.stack}`:r}function Yt(n){n<132||(S[n]=q,q=n)}function Kt(n,t){n=n>>>0;let e=a(),r=[];for(let o=n;o<n+4*t;o+=4)r.push(d(e.getUint32(o,!0)));return r}function Zt(n,t){return n=n>>>0,te().subarray(n/4,n/4+t)}function st(n,t){return n=n>>>0,O().subarray(n/1,n/1+t)}function a(){return(R===null||R.buffer.detached===!0||R.buffer.detached===void 0&&R.buffer!==i.memory.buffer)&&(R=new DataView(i.memory.buffer)),R}function I(n,t){return n=n>>>0,re(n,t)}function te(){return(D===null||D.byteLength===0)&&(D=new Uint32Array(i.memory.buffer)),D}function O(){return(z===null||z.byteLength===0)&&(z=new Uint8Array(i.memory.buffer)),z}function c(n){return S[n]}function T(n,t){try{return n.apply(this,t)}catch(e){i.__wbindgen_export3(f(e))}}function y(n){return n==null}function ee(n,t,e,r){let o={a:n,b:t,cnt:1,dtor:e},s=(..._)=>{o.cnt++;let u=o.a;o.a=0;try{return r(u,o.b,..._)}finally{o.a=u,s._wbg_cb_unref()}};return s._wbg_cb_unref=()=>{--o.cnt===0&&(o.dtor(o.a,o.b),o.a=0,bt.unregister(o))},bt.register(s,o,o),s}function kt(n,t){let e=t(n.length*1,1)>>>0;return O().set(n,e/1),l=n.length,e}function H(n,t){let e=t(n.length*4,4)>>>0,r=a();for(let o=0;o<n.length;o++)r.setUint32(e+4*o,f(n[o]),!0);return l=n.length,e}function b(n,t,e){if(e===void 0){let u=U.encode(n),g=t(u.length,1)>>>0;return O().subarray(g,g+u.length).set(u),l=u.length,g}let r=n.length,o=t(r,1)>>>0,s=O(),_=0;for(;_<r;_++){let u=n.charCodeAt(_);if(u>127)break;s[o+_]=u}if(_!==r){_!==0&&(n=n.slice(_)),o=e(o,r,r=_+n.length*3,1)>>>0;let u=O().subarray(o+_,o+r),g=U.encodeInto(n,u);_+=g.written,o=e(o,r,_,1)>>>0}return l=_,o}function d(n){let t=c(n);return Yt(n),t}function re(n,t){return nt+=t,nt>=ne&&(G=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),G.decode(),nt=t),G.decode(O().subarray(n,n+t))}function oe(n,t,e){i.__wasm_bindgen_func_elem_944(n,t,f(e))}function ie(n,t,e,r){i.__wasm_bindgen_func_elem_37348(n,t,f(e),f(r))}function se(n){let t=i.get_font_info(f(n));return d(t)}async function ae(n,t){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,t)}catch(r){if(n.ok&&_e.has(n.type)&&n.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",r);else throw r}let e=await n.arrayBuffer();return await WebAssembly.instantiate(e,t)}else{let e=await WebAssembly.instantiate(n,t);return e instanceof WebAssembly.Instance?{instance:e,module:n}:e}}function St(){let n={};return n.wbg={},n.wbg.__wbg_Error_52673b7de5a0ca89=function(t,e){let r=Error(I(t,e));return f(r)},n.wbg.__wbg_Number_2d1dcfcf4ec51736=function(t){return Number(c(t))},n.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(t,e){let r=c(e),o=typeof r=="bigint"?r:void 0;a().setBigInt64(t+8,y(o)?BigInt(0):o,!0),a().setInt32(t+0,!y(o),!0)},n.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(t){let e=c(t),r=typeof e=="boolean"?e:void 0;return y(r)?16777215:r?1:0},n.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(t,e){let r=it(c(e)),o=b(r,i.__wbindgen_export,i.__wbindgen_export2),s=l;a().setInt32(t+4,s,!0),a().setInt32(t+0,o,!0)},n.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(t,e){return c(t)in c(e)},n.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(t){return typeof c(t)=="bigint"},n.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(t){return typeof c(t)=="function"},n.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(t){let e=c(t);return typeof e=="object"&&e!==null},n.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(t){return typeof c(t)=="string"},n.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(t){return c(t)===void 0},n.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(t,e){return c(t)===c(e)},n.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(t,e){return c(t)==c(e)},n.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(t,e){let r=c(e),o=typeof r=="number"?r:void 0;a().setFloat64(t+8,y(o)?0:o,!0),a().setInt32(t+0,!y(o),!0)},n.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(t,e){let r=c(e),o=typeof r=="string"?r:void 0;var s=y(o)?0:b(o,i.__wbindgen_export,i.__wbindgen_export2),_=l;a().setInt32(t+4,_,!0),a().setInt32(t+0,s,!0)},n.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(t,e){throw new Error(I(t,e))},n.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7=function(t){c(t)._wbg_cb_unref()},n.wbg.__wbg_call_3020136f7a2d6e44=function(){return T(function(t,e,r){let o=c(t).call(c(e),c(r));return f(o)},arguments)},n.wbg.__wbg_call_78f94eb02ec7f9b2=function(){return T(function(t,e,r,o,s){let _=c(t).call(c(e),c(r),c(o),c(s));return f(_)},arguments)},n.wbg.__wbg_call_abb4ff46ce38be40=function(){return T(function(t,e){let r=c(t).call(c(e));return f(r)},arguments)},n.wbg.__wbg_done_62ea16af4ce34b24=function(t){return c(t).done},n.wbg.__wbg_entries_83c79938054e065f=function(t){let e=Object.entries(c(t));return f(e)},n.wbg.__wbg_error_7534b8e9a36f1ab4=function(t,e){let r,o;try{r=t,o=e,console.error(I(t,e))}finally{i.__wbindgen_export4(r,o,1)}},n.wbg.__wbg_error_85faeb8919b11cc6=function(t,e,r){console.error(c(t),c(e),c(r))},n.wbg.__wbg_getTimezoneOffset_45389e26d6f46823=function(t){return c(t).getTimezoneOffset()},n.wbg.__wbg_get_6b7bd52aca3f9671=function(t,e){let r=c(t)[e>>>0];return f(r)},n.wbg.__wbg_get_af9dab7e9603ea93=function(){return T(function(t,e){let r=Reflect.get(c(t),c(e));return f(r)},arguments)},n.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(t,e){let r=c(t)[c(e)];return f(r)},n.wbg.__wbg_info_ce6bcc489c22f6f0=function(t){console.info(c(t))},n.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(t){let e;try{e=c(t)instanceof ArrayBuffer}catch{e=!1}return e},n.wbg.__wbg_instanceof_Map_084be8da74364158=function(t){let e;try{e=c(t)instanceof Map}catch{e=!1}return e},n.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(t){let e;try{e=c(t)instanceof Uint8Array}catch{e=!1}return e},n.wbg.__wbg_isArray_51fd9e6422c0a395=function(t){return Array.isArray(c(t))},n.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(t){return Number.isSafeInteger(c(t))},n.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return f(Symbol.iterator)},n.wbg.__wbg_length_22ac23eaec9d8053=function(t){return c(t).length},n.wbg.__wbg_length_d45040a40c570362=function(t){return c(t).length},n.wbg.__wbg_new_1ba21ce319a06297=function(){let t=new Object;return f(t)},n.wbg.__wbg_new_25f239778d6112b9=function(){let t=new Array;return f(t)},n.wbg.__wbg_new_6421f6084cc5bc5a=function(t){let e=new Uint8Array(c(t));return f(e)},n.wbg.__wbg_new_8a6f238a6ece86ea=function(){let t=new Error;return f(t)},n.wbg.__wbg_new_b2db8aa2650f793a=function(t){let e=new Date(c(t));return f(e)},n.wbg.__wbg_new_df1173567d5ff028=function(t,e){let r=new Error(I(t,e));return f(r)},n.wbg.__wbg_new_ff12d2b041fb48f1=function(t,e){try{var r={a:t,b:e},o=(_,u)=>{let g=r.a;r.a=0;try{return ie(g,r.b,_,u)}finally{r.a=g}};let s=new Promise(o);return f(s)}finally{r.a=r.b=0}},n.wbg.__wbg_new_from_slice_db0691b69e9d3891=function(t,e){let r=new Uint32Array(Zt(t,e));return f(r)},n.wbg.__wbg_new_from_slice_f9c22b9153b26992=function(t,e){let r=new Uint8Array(st(t,e));return f(r)},n.wbg.__wbg_new_no_args_cb138f77cf6151ee=function(t,e){let r=new Function(I(t,e));return f(r)},n.wbg.__wbg_new_with_args_df9e7125ffe55248=function(t,e,r,o){let s=new Function(I(t,e),I(r,o));return f(s)},n.wbg.__wbg_next_138a17bbf04e926c=function(t){let e=c(t).next;return f(e)},n.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return T(function(t){let e=c(t).next();return f(e)},arguments)},n.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},n.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(t,e,r){Uint8Array.prototype.set.call(st(t,e),c(r))},n.wbg.__wbg_proxycontext_new=function(t){let e=j.__wrap(t);return f(e)},n.wbg.__wbg_push_7d9be8f38fc13975=function(t,e){return c(t).push(c(e))},n.wbg.__wbg_queueMicrotask_9b549dfce8865860=function(t){let e=c(t).queueMicrotask;return f(e)},n.wbg.__wbg_queueMicrotask_fca69f5bfad613a5=function(t){queueMicrotask(c(t))},n.wbg.__wbg_resolve_fd5bfbaa4ce36e1e=function(t){let e=Promise.resolve(c(t));return f(e)},n.wbg.__wbg_set_3f1d0b984ed272ed=function(t,e,r){c(t)[d(e)]=d(r)},n.wbg.__wbg_set_781438a03c0c3c81=function(){return T(function(t,e,r){return Reflect.set(c(t),c(e),c(r))},arguments)},n.wbg.__wbg_set_7df433eea03a5c14=function(t,e,r){c(t)[e>>>0]=d(r)},n.wbg.__wbg_stack_0ed75d68575b0f3c=function(t,e){let r=c(e).stack,o=b(r,i.__wbindgen_export,i.__wbindgen_export2),s=l;a().setInt32(t+4,s,!0),a().setInt32(t+0,o,!0)},n.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335=function(){let t=typeof global>"u"?null:global;return y(t)?0:f(t)},n.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1=function(){let t=typeof globalThis>"u"?null:globalThis;return y(t)?0:f(t)},n.wbg.__wbg_static_accessor_SELF_08f5a74c69739274=function(){let t=typeof self>"u"?null:self;return y(t)?0:f(t)},n.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024=function(){let t=typeof window>"u"?null:window;return y(t)?0:f(t)},n.wbg.__wbg_then_4f95312d68691235=function(t,e){let r=c(t).then(c(e));return f(r)},n.wbg.__wbg_typstcompiler_new=function(t){let e=E.__wrap(t);return f(e)},n.wbg.__wbg_typstfontresolver_new=function(t){let e=A.__wrap(t);return f(e)},n.wbg.__wbg_value_57b7b035e117f7ee=function(t){let e=c(t).value;return f(e)},n.wbg.__wbindgen_cast_2241b6af4c4b2941=function(t,e){let r=I(t,e);return f(r)},n.wbg.__wbindgen_cast_3334ea73b4b28ba3=function(t,e){let r=ee(t,e,i.__wasm_bindgen_func_elem_957,oe);return f(r)},n.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(t){let e=BigInt.asUintN(64,t);return f(e)},n.wbg.__wbindgen_cast_9ae0607507abb057=function(t){return f(t)},n.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(t){return f(t)},n.wbg.__wbindgen_object_clone_ref=function(t){let e=c(t);return f(e)},n.wbg.__wbindgen_object_drop_ref=function(t){d(t)},n}function Ft(n,t){return i=n.exports,Rt.__wbindgen_wasm_module=t,R=null,D=null,z=null,i}function ce(n){if(i!==void 0)return i;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module:n}=n:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=St();n instanceof WebAssembly.Module||(n=new WebAssembly.Module(n));let e=new WebAssembly.Instance(n,t);return Ft(e,n)}async function Rt(n){if(i!==void 0)return i;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof n>"u"&&(n=Mt("typst_ts_web_compiler_bg.wasm",ue.url));let t=St();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));let{instance:e,module:r}=await ae(await n,t);return Ft(e,r)}function _t(n){Mt=n}var ue,i,bt,R,D,z,S,q,G,ne,nt,U,l,yt,rt,mt,ht,vt,xt,It,F,j,B,E,N,A,J,_e,At,Mt,Q=dt(()=>{ue={};bt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>n.dtor(n.a,n.b));R=null;D=null;z=null;S=new Array(128).fill(void 0);S.push(void 0,null,!0,!1);q=S.length;G=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});G.decode();ne=2146435072,nt=0;U=new TextEncoder;"encodeInto"in U||(U.encodeInto=function(n,t){let e=U.encode(n);return t.set(e),{read:n.length,written:e.length}});l=0;yt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_incrserver_free(n>>>0,1)),rt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_proxycontext_free(n>>>0,1)),mt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstcompileworld_free(n>>>0,1)),ht=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstcompiler_free(n>>>0,1)),vt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstcompilerbuilder_free(n>>>0,1)),xt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstfontresolver_free(n>>>0,1)),It=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_typstfontresolverbuilder_free(n>>>0,1)),F=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,yt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,yt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_incrserver_free(t,0)}set_attach_debug_info(t){i.incrserver_set_attach_debug_info(this.__wbg_ptr,t)}current(){try{let r=i.__wbindgen_add_to_stack_pointer(-16);i.incrserver_current(r,this.__wbg_ptr);var t=a().getInt32(r+0,!0),e=a().getInt32(r+4,!0);let o;return t!==0&&(o=st(t,e).slice(),i.__wbindgen_export4(t,e*1,1)),o}finally{i.__wbindgen_add_to_stack_pointer(16)}}reset(){i.incrserver_reset(this.__wbg_ptr)}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);j=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,rt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,rt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_proxycontext_free(t,0)}constructor(t){let e=i.proxycontext_new(f(t));return this.__wbg_ptr=e>>>0,rt.register(this,this.__wbg_ptr,this),this}get context(){let t=i.proxycontext_context(this.__wbg_ptr);return d(t)}untar(t,e){try{let s=i.__wbindgen_add_to_stack_pointer(-16),_=kt(t,i.__wbindgen_export),u=l;i.proxycontext_untar(s,this.__wbg_ptr,_,u,f(e));var r=a().getInt32(s+0,!0),o=a().getInt32(s+4,!0);if(o)throw d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(j.prototype[Symbol.dispose]=j.prototype.free);B=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,mt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,mt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompileworld_free(t,0)}compile(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_compile(_,this.__wbg_ptr,t,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}title(t){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_title(_,this.__wbg_ptr,t);var e=a().getInt32(_+0,!0),r=a().getInt32(_+4,!0),o=a().getInt32(_+8,!0),s=a().getInt32(_+12,!0);if(s)throw d(o);let u;return e!==0&&(u=I(e,r).slice(),i.__wbindgen_export4(e,r*1,1)),u}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_artifact(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_get_artifact(_,this.__wbg_ptr,t,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}query(t,e,r){let o,s;try{let k=i.__wbindgen_add_to_stack_pointer(-16),C=b(e,i.__wbindgen_export,i.__wbindgen_export2),W=l;var _=y(r)?0:b(r,i.__wbindgen_export,i.__wbindgen_export2),u=l;i.typstcompileworld_query(k,this.__wbg_ptr,t,C,W,_,u);var g=a().getInt32(k+0,!0),p=a().getInt32(k+4,!0),w=a().getInt32(k+8,!0),h=a().getInt32(k+12,!0),m=g,v=p;if(h)throw m=0,v=0,d(w);return o=m,s=v,I(m,v)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(o,s,1)}}incr_compile(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16);ot(t,F),i.typstcompileworld_incr_compile(_,this.__wbg_ptr,t.__wbg_ptr,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(B.prototype[Symbol.dispose]=B.prototype.free);E=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,ht.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,ht.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompiler_free(t,0)}reset(){try{let r=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_reset(r,this.__wbg_ptr);var t=a().getInt32(r+0,!0),e=a().getInt32(r+4,!0);if(e)throw d(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_fonts(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);ot(t,A),i.typstcompiler_set_fonts(o,this.__wbg_ptr,t.__wbg_ptr);var e=a().getInt32(o+0,!0),r=a().getInt32(o+4,!0);if(r)throw d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_inputs(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_set_inputs(o,this.__wbg_ptr,f(t));var e=a().getInt32(o+0,!0),r=a().getInt32(o+4,!0);if(r)throw d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_source(t,e){let r=b(t,i.__wbindgen_export,i.__wbindgen_export2),o=l,s=b(e,i.__wbindgen_export,i.__wbindgen_export2),_=l;return i.typstcompiler_add_source(this.__wbg_ptr,r,o,s,_)!==0}map_shadow(t,e){let r=b(t,i.__wbindgen_export,i.__wbindgen_export2),o=l,s=kt(e,i.__wbindgen_export),_=l;return i.typstcompiler_map_shadow(this.__wbg_ptr,r,o,s,_)!==0}unmap_shadow(t){let e=b(t,i.__wbindgen_export,i.__wbindgen_export2),r=l;return i.typstcompiler_unmap_shadow(this.__wbg_ptr,e,r)!==0}reset_shadow(){i.typstcompiler_reset_shadow(this.__wbg_ptr)}get_loaded_fonts(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_get_loaded_fonts(o,this.__wbg_ptr);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=Kt(t,e).slice();return i.__wbindgen_export4(t,e*4,4),r}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_ast(t){let e,r;try{let w=i.__wbindgen_add_to_stack_pointer(-16),h=b(t,i.__wbindgen_export,i.__wbindgen_export2),m=l;i.typstcompiler_get_ast(w,this.__wbg_ptr,h,m);var o=a().getInt32(w+0,!0),s=a().getInt32(w+4,!0),_=a().getInt32(w+8,!0),u=a().getInt32(w+12,!0),g=o,p=s;if(u)throw g=0,p=0,d(_);return e=g,r=p,I(g,p)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(e,r,1)}}get_semantic_token_legend(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_get_semantic_token_legend(o,this.__wbg_ptr);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return d(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_semantic_tokens(t,e,r){try{let h=i.__wbindgen_add_to_stack_pointer(-16),m=b(t,i.__wbindgen_export,i.__wbindgen_export2),v=l;var o=y(e)?0:b(e,i.__wbindgen_export,i.__wbindgen_export2),s=l,_=y(r)?0:b(r,i.__wbindgen_export,i.__wbindgen_export2),u=l;i.typstcompiler_get_semantic_tokens(h,this.__wbg_ptr,m,v,o,s,_,u);var g=a().getInt32(h+0,!0),p=a().getInt32(h+4,!0),w=a().getInt32(h+8,!0);if(w)throw d(p);return d(g)}finally{i.__wbindgen_add_to_stack_pointer(16)}}snapshot(t,e,r){try{let v=i.__wbindgen_add_to_stack_pointer(-16);var o=y(t)?0:b(t,i.__wbindgen_export,i.__wbindgen_export2),s=l,_=y(e)?0:b(e,i.__wbindgen_export,i.__wbindgen_export2),u=l,g=y(r)?0:H(r,i.__wbindgen_export),p=l;i.typstcompiler_snapshot(v,this.__wbg_ptr,o,s,_,u,g,p);var w=a().getInt32(v+0,!0),h=a().getInt32(v+4,!0),m=a().getInt32(v+8,!0);if(m)throw d(h);return B.__wrap(w)}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_artifact(t,e){try{let _=i.__wbindgen_add_to_stack_pointer(-16),u=b(t,i.__wbindgen_export,i.__wbindgen_export2),g=l;i.typstcompiler_get_artifact(_,this.__wbg_ptr,u,g,e);var r=a().getInt32(_+0,!0),o=a().getInt32(_+4,!0),s=a().getInt32(_+8,!0);if(s)throw d(o);return d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}compile(t,e,r,o){try{let m=i.__wbindgen_add_to_stack_pointer(-16);var s=y(t)?0:b(t,i.__wbindgen_export,i.__wbindgen_export2),_=l,u=y(e)?0:H(e,i.__wbindgen_export),g=l;let v=b(r,i.__wbindgen_export,i.__wbindgen_export2),k=l;i.typstcompiler_compile(m,this.__wbg_ptr,s,_,u,g,v,k,o);var p=a().getInt32(m+0,!0),w=a().getInt32(m+4,!0),h=a().getInt32(m+8,!0);if(h)throw d(w);return d(p)}finally{i.__wbindgen_add_to_stack_pointer(16)}}query(t,e,r,o){let s,_;try{let L=i.__wbindgen_add_to_stack_pointer(-16),Dt=b(t,i.__wbindgen_export,i.__wbindgen_export2),zt=l;var u=y(e)?0:H(e,i.__wbindgen_export),g=l;let qt=b(r,i.__wbindgen_export,i.__wbindgen_export2),Ut=l;var p=y(o)?0:b(o,i.__wbindgen_export,i.__wbindgen_export2),w=l;i.typstcompiler_query(L,this.__wbg_ptr,Dt,zt,u,g,qt,Ut,p,w);var h=a().getInt32(L+0,!0),m=a().getInt32(L+4,!0),v=a().getInt32(L+8,!0),k=a().getInt32(L+12,!0),C=h,W=m;if(k)throw C=0,W=0,d(v);return s=C,_=W,I(C,W)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(s,_,1)}}create_incr_server(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_create_incr_server(o,this.__wbg_ptr);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return F.__wrap(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}incr_compile(t,e,r,o){try{let w=i.__wbindgen_add_to_stack_pointer(-16),h=b(t,i.__wbindgen_export,i.__wbindgen_export2),m=l;var s=y(e)?0:H(e,i.__wbindgen_export),_=l;ot(r,F),i.typstcompiler_incr_compile(w,this.__wbg_ptr,h,m,s,_,r.__wbg_ptr,o);var u=a().getInt32(w+0,!0),g=a().getInt32(w+4,!0),p=a().getInt32(w+8,!0);if(p)throw d(g);return d(u)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(E.prototype[Symbol.dispose]=E.prototype.free);N=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,vt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompilerbuilder_free(t,0)}constructor(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompilerbuilder_new(o);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return this.__wbg_ptr=t>>>0,vt.register(this,this.__wbg_ptr,this),this}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_dummy_access_model(){try{let r=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompilerbuilder_set_dummy_access_model(r,this.__wbg_ptr);var t=a().getInt32(r+0,!0),e=a().getInt32(r+4,!0);if(e)throw d(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_access_model(t,e,r,o,s){let _=i.typstcompilerbuilder_set_access_model(this.__wbg_ptr,f(t),f(e),f(r),f(o),f(s));return d(_)}set_package_registry(t,e){let r=i.typstcompilerbuilder_set_package_registry(this.__wbg_ptr,f(t),f(e));return d(r)}add_raw_font(t){let e=i.typstcompilerbuilder_add_raw_font(this.__wbg_ptr,f(t));return d(e)}add_lazy_font(t,e){let r=i.typstcompilerbuilder_add_lazy_font(this.__wbg_ptr,f(t),f(e));return d(r)}build(){let t=this.__destroy_into_raw(),e=i.typstcompilerbuilder_build(t);return d(e)}};Symbol.dispose&&(N.prototype[Symbol.dispose]=N.prototype.free);A=class n{static __wrap(t){t=t>>>0;let e=Object.create(n.prototype);return e.__wbg_ptr=t,xt.register(e,e.__wbg_ptr,e),e}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,xt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstfontresolver_free(t,0)}};Symbol.dispose&&(A.prototype[Symbol.dispose]=A.prototype.free);J=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,It.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstfontresolverbuilder_free(t,0)}constructor(){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_new(o);var t=a().getInt32(o+0,!0),e=a().getInt32(o+4,!0),r=a().getInt32(o+8,!0);if(r)throw d(e);return this.__wbg_ptr=t>>>0,It.register(this,this.__wbg_ptr,this),this}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_font_info(t){try{let s=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_get_font_info(s,this.__wbg_ptr,f(t));var e=a().getInt32(s+0,!0),r=a().getInt32(s+4,!0),o=a().getInt32(s+8,!0);if(o)throw d(r);return d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_raw_font(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_add_raw_font(o,this.__wbg_ptr,f(t));var e=a().getInt32(o+0,!0),r=a().getInt32(o+4,!0);if(r)throw d(e)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_lazy_font(t,e){try{let s=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_add_lazy_font(s,this.__wbg_ptr,f(t),f(e));var r=a().getInt32(s+0,!0),o=a().getInt32(s+4,!0);if(o)throw d(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}build(){let t=this.__destroy_into_raw(),e=i.typstfontresolverbuilder_build(t);return d(e)}};Symbol.dispose&&(J.prototype[Symbol.dispose]=J.prototype.free);_e=new Set(["basic","cors","default"]);At=Rt,Mt=async function(n,t){throw new Error("Cannot import wasm module without importer: "+n+" "+t)}});var Tt={};Jt(Tt,{IncrServer:()=>F,ProxyContext:()=>j,TypstCompileWorld:()=>B,TypstCompiler:()=>E,TypstCompilerBuilder:()=>N,TypstFontResolver:()=>A,TypstFontResolverBuilder:()=>J,default:()=>fe,get_font_info:()=>se,initSync:()=>ce,setImportWasmModule:()=>_t});var fe,de,ge,Ot=dt(()=>{Q();Q();Q();fe=At,de=async function(n,t){let e=new Function("m","return import(m)"),{readFileSync:r}=await e("fs"),o=new URL(n,t);return await r(o).buffer},ge=typeof process<"u"&&process.versions!=null&&process.versions.node!=null;ge&&_t(de)});var et=class{loadedFonts=new Set;fetcher=fetch;setFetcher(t){this.fetcher=t}async loadFonts(t,e){let r=new Function("m","return import(m)"),o=this.fetcher||=await(async function(){let{fetchBuilder:u,FileSystemCache:g}=await r("node-fetch-cache"),p=new g({cacheDirectory:".cache/typst/fonts"}),w=u.withCache(p);return function(h,m){let v=setTimeout(()=>{console.warn("font fetching is stucking:",h)},15e3);return w(h,m).finally(()=>{clearTimeout(v)})}})(),s=e.filter(u=>u instanceof Uint8Array||typeof u=="object"&&"info"in u?!0:this.loadedFonts.has(u)?!1:(this.loadedFonts.add(u),!0)),_=await Promise.all(s.map(async u=>{if(u instanceof Uint8Array){await t.add_raw_font(u);return}if(typeof u=="object"&&"info"in u){await t.add_lazy_font(u,"blob"in u?u.blob:$t(u));return}return new Uint8Array(await(await o(u)).arrayBuffer())}));for(let u of _)u&&await t.add_raw_font(u)}async build(t,e,r){let o={ref:this,builder:e,hooks:r};for(let s of t?.beforeBuild??[])await s(void 0,o);return r.latelyBuild&&r.latelyBuild(o),await e.build()}};async function gt(n,t,e,r){return await t.init(n?.getModule?.()),await new et().build(n,new e,r)}function $t(n){return()=>{let t=new XMLHttpRequest;return t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",n.url,!1),t.send(null),t.status===200&&(t.response instanceof String||typeof t.response=="string")?Uint8Array.from(t.response,e=>e.charCodeAt(0)):new Uint8Array}}var x=Symbol.for("reflexo-obj");var lt;(function(n){n[n.PIXEL_PER_PT=3]="PIXEL_PER_PT"})(lt||(lt={}));var Vt=["DejaVuSansMono-Bold.ttf","DejaVuSansMono-BoldOblique.ttf","DejaVuSansMono-Oblique.ttf","DejaVuSansMono.ttf","LibertinusSerif-Bold.otf","LibertinusSerif-BoldItalic.otf","LibertinusSerif-Italic.otf","LibertinusSerif-Regular.otf","LibertinusSerif-Semibold.otf","LibertinusSerif-SemiboldItalic.otf","NewCM10-Bold.otf","NewCM10-BoldItalic.otf","NewCM10-Italic.otf","NewCM10-Regular.otf","NewCMMath-Bold.otf","NewCMMath-Book.otf","NewCMMath-Regular.otf"],Xt=["InriaSerif-Bold.ttf","InriaSerif-BoldItalic.ttf","InriaSerif-Italic.ttf","InriaSerif-Regular.ttf","Roboto-Regular.ttf","NotoSerifCJKsc-Regular.otf"],Ht=["TwitterColorEmoji.ttf","NotoColorEmoji-Regular-COLR.subset.ttf"];function Gt(n){let t=[];if(n&&n?.assets!==!1&&n?.assets?.length&&n?.assets?.length>0){let e={text:"https://cdn.jsdelivr.net/gh/typst/typst-assets@v0.13.1/files/fonts/",_:"https://cdn.jsdelivr.net/gh/typst/typst-dev-assets@v0.13.1/files/fonts/"},r=n.assetUrlPrefix??e;typeof r=="string"?r={_:r}:r={...e,...r};for(let s of Object.keys(r)){let _=r[s];_[_.length-1]!=="/"&&(r[s]=_+"/")}let o=(s,_)=>_.map(u=>(r[s]||r._)+u);for(let s of n.assets)switch(s){case"text":t.push(...o(s,Vt));break;case"cjk":t.push(...o(s,Xt));break;case"emoji":t.push(...o(s,Ht));break}}return t}function V(n,t){let e=Gt(t),r=async(o,{ref:s,builder:_})=>{t?.fetcher&&s.setFetcher(t.fetcher),await s.loadFonts(_,[...n,...e])};return r._preloadRemoteFontOptions=t,r._kind="fontLoader",r}function pt(n){return async(t,{builder:e})=>new Promise(r=>{e.set_package_registry(n,function(o){return n.resolve(o,this)}),r()})}function wt(n){return async(t,e)=>{if(e.alreadySetAccessModel)throw new Error(`already set some assess model before: ${e.alreadySetAccessModel.constructor?.name}(${e.alreadySetAccessModel})`);return e.alreadySetAccessModel=n,new Promise(r=>{e.builder.set_access_model(n,o=>{let s=n.getMTime(o);return s?s.getTime():0},o=>n.isFile(o)||!1,o=>n.getRealPath(o)||o,o=>n.readAll(o)),r()})}}var Qt=n=>{let t=!1,e;return()=>t?e:(t=!0,e=n())},X=class{wasmBin;initOnce;constructor(t){if(typeof t!="function")throw new Error("initFn is not a function");this.initOnce=Qt(async()=>{await t(this.wasmBin)})}async init(t){this.wasmBin=t,await this.initOnce()}};var $;(function(n){n[n.vector=0]="vector",n[n.pdf=1]="pdf",n[n._dummy=2]="_dummy"})($||($={}));var at=class{[x];constructor(t){this[x]=t}reset(){this[x].reset()}current(){return this[x].current()}setAttachDebugInfo(t){this[x].set_attach_debug_info(t)}},jt;jt||(jt={});var ct=class{[x];constructor(t){this[x]=t}compile(t){return this[x].compile(0,P(t?.diagnostics))}compileHtml(t){return this[x].compile(1,P(t?.diagnostics))}async query(t){return JSON.parse(this[x].query(0,t.selector,t.field))}title(){return this[x].title(0)}vector(t){return this[x].get_artifact(0,P(t?.diagnostics))||{}}pdf(t){return this[x].get_artifact(1,P(t?.diagnostics))||{}}},le=n=>new X(async t=>await n.default(t));function ut(){return new Y}var Y=class n{compiler;compilerJs;static defaultAssets=["text"];constructor(){}async init(t){this.compilerJs=await(t?.getWrapper?.()||Promise.resolve().then(()=>(Ot(),Tt)));let e=this.compilerJs.TypstCompilerBuilder,r={...t||{}},o=r.beforeBuild??=[],s=o.some(p=>p._preloadRemoteFontOptions!==void 0),_=o.some(p=>p._preloadRemoteFontOptions?.assets!==void 0),u=o.some(p=>p._preloadRemoteFontOptions?.assets===!1);if((!s||!_&&!u)&&o.push(V([],{assets:n.defaultAssets})),!o.some(p=>p._kind==="fontLoader"))throw new Error("TypstCompiler: no font loader found, please use font loaders, e.g. loadFonts or preloadSystemFonts");this.compiler=await gt(t,le(this.compilerJs),e,{})}setFonts(t){this.compiler.set_fonts(t)}compile(t){return new Promise(e=>{let r=this.compiler.snapshot(t.root,t.mainFilePath,Bt(t.inputs));if("incrementalServer"in t){e(r.incr_compile(t.incrementalServer[x],P(t.diagnostics)));return}e(r.get_artifact(t.format||$.vector,P(t.diagnostics)))})}async runWithWorld(t,e){let r=this.compiler.snapshot(t.root,t.mainFilePath,Bt(t.inputs)),o=await e(new ct(r));return r.free(),o}query(t){return this.runWithWorld(t,async e=>JSON.parse(await e.query(t)))}getSemanticTokenLegend(){return new Promise(t=>{t(this.compiler.get_semantic_token_legend())})}getSemanticTokens(t){return new Promise(e=>{this.compiler.reset(),e(this.compiler.get_semantic_tokens(t.offsetEncoding||"utf-16",t.mainFilePath,t.resultId))})}async withIncrementalServer(t){let e=new at(this.compiler.create_incr_server());try{return await t(e)}finally{e[x].free()}}async getAst(t){return this.compiler.get_ast(t)}async reset(){await new Promise(t=>{this.compiler.reset(),t(void 0)})}addSource(t,e){if(arguments.length>2)throw new Error("use of addSource(path, source, isMain) is deprecated, please use addSource(path, source) instead");this.compiler.add_source(t,e)}mapShadow(t,e){this.compiler.map_shadow(t,e)}unmapShadow(t){this.compiler.unmap_shadow(t)}resetShadow(){this.compiler.reset_shadow()}renderPageToCanvas(){throw new Error("Please use the api TypstRenderer.renderToCanvas in v0.4.0")}};ut._impl=Y;function Bt(n){return n?Object.entries(n):void 0}function P(n){switch(n){case"none":return 1;case"unix":return 2;default:return 3}}var K=class{mTimes=new Map;mData=new Map;constructor(){}reset(){this.mTimes.clear(),this.mData.clear()}insertFile(t,e,r){this.mTimes.set(t,r),this.mData.set(t,e)}removeFile(t){this.mTimes.delete(t),this.mData.delete(t)}getMTime(t){if(t.startsWith("/@memory/")&&this.mTimes.has(t))return this.mTimes.get(t)}isFile(){return!0}getRealPath(t){return t}readAll(t){if(t.startsWith("/@memory/")&&this.mData.has(t))return this.mData.get(t)}};var Z=class{am;cache=new Map;constructor(t){this.am=t}resolvePath(t){return`https://packages.typst.org/preview/${t.name}-${t.version}.tar.gz`}pullPackageData(t){let e=new XMLHttpRequest;if(e.overrideMimeType("text/plain; charset=x-user-defined"),e.open("GET",this.resolvePath(t),!1),e.send(null),e.status===200&&(e.response instanceof String||typeof e.response=="string"))return Uint8Array.from(e.response,r=>r.charCodeAt(0))}resolve(t,e){if(t.namespace!=="preview")return;let r=this.resolvePath(t);if(this.cache.has(r))return this.cache.get(r)();let o=this.pullPackageData(t);if(!o)return;let s=`/@memory/fetch/packages/${t.namespace}/${t.name}/${t.version}`,_=[];e.untar(o,(g,p,w)=>{_.push([s+"/"+g,p,new Date(w)])});let u=()=>{for(let[g,p,w]of _)this.am.insertFile(g,p,w);return s};return this.cache.set(r,u),u()}};var pe=()=>new Promise(n=>setTimeout(n,0));function ft(n,t){let e=null,r=!1;async function o(){for(r=!0;e;){let s=e;if(e=null,await pe(),e){t?.(s);continue}try{await n(s)}catch{}}r=!1}return s=>{e=s,r||o()}}function tt(n,t){let e=t instanceof Error?t.message:String(t);self.postMessage({type:"error",id:n,message:e})}var Et="/main.typ",Pt=new K,we=new Z(Pt),M=null;async function be(n,t,e){M=ut(),await M.init({getModule:()=>n,beforeBuild:[V(t),...e?[wt(Pt),pt(we)]:[]]})}function ye(n){let t=n.match(/(\\d+):(\\d+)-(\\d+):(\\d+)/);return t?{startLine:+t[1],startCol:+t[2],endLine:+t[3],endCol:+t[4]}:(console.warn(`[typst-web-service] Skipping diagnostic with unrecognized range format: ${JSON.stringify(n)}`),null)}function Ct(n){if(!M)throw new Error("Compiler not initialized");M.resetShadow();for(let[t,e]of Object.entries(n))M.addSource(t,e)}async function me(n){Ct(n);let t=await M.compile({mainFilePath:Et,diagnostics:"full"});return{diagnostics:(t.diagnostics??[]).flatMap(r=>{let o=ye(r.range);return o?[{...r,severity:r.severity,range:o}]:[]}),vector:t.result??void 0}}function Wt(n){return n.buffer.slice(n.byteOffset,n.byteOffset+n.byteLength)}function Lt(n){self.postMessage({type:"cancelled",id:n.id})}var he=ft(async n=>{try{let{diagnostics:t,vector:e}=await me(n.files),r=e?Wt(e):void 0,o={type:"result",id:n.id,diagnostics:t,vector:r};self.postMessage(o,r?[r]:[])}catch(t){tt(n.id,t)}},Lt),ve=ft(async n=>{try{Ct(n.files);let t=await M.compile({mainFilePath:Et,format:$.pdf,diagnostics:"none"});if(!t.result)throw new Error("Compilation produced no output");let e=Wt(t.result);self.postMessage({type:"pdf",id:n.id,data:e},[e])}catch(t){tt(n.id,t)}},Lt);self.onmessage=async n=>{let t=n.data;if(t.type==="init"){try{await be(t.wasmUrl,t.fonts,t.packages),self.postMessage({type:"ready",id:t.id})}catch(e){tt(t.id,e)}return}if(t.type==="compile"){he(t);return}if(t.type==="render"){ve(t);return}t.type==="destroy"&&self.postMessage({type:"destroyed",id:t.id})};})();\n');
15
15
  }
16
16
  function createAnalyzerWorker() {
17
17
  return createBlobWorker('"use strict";(()=>{var K={},i;function v(n){let e=i.__externref_table_alloc();return i.__wbindgen_externrefs.set(e,n),e}var I=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>n.dtor(n.a,n.b));function O(n){let e=typeof n;if(e=="number"||e=="boolean"||n==null)return`${n}`;if(e=="string")return`"${n}"`;if(e=="symbol"){let _=n.description;return _==null?"Symbol":`Symbol(${_})`}if(e=="function"){let _=n.name;return typeof _=="string"&&_.length>0?`Function(${_})`:"Function"}if(Array.isArray(n)){let _=n.length,o="[";_>0&&(o+=O(n[0]));for(let s=1;s<_;s++)o+=", "+O(n[s]);return o+="]",o}let t=/\\[object ([^\\]]+)\\]/.exec(toString.call(n)),r;if(t&&t.length>1)r=t[1];else return toString.call(n);if(r=="Object")try{return"Object("+JSON.stringify(n)+")"}catch{return"Object"}return n instanceof Error?`${n.name}: ${n.message}\n${n.stack}`:r}function k(n,e){return n=n>>>0,h().subarray(n/1,n/1+e)}var w=null;function u(){return(w===null||w.buffer.detached===!0||w.buffer.detached===void 0&&w.buffer!==i.memory.buffer)&&(w=new DataView(i.memory.buffer)),w}function f(n,e){return n=n>>>0,$(n,e)}var A=null;function h(){return(A===null||A.byteLength===0)&&(A=new Uint8Array(i.memory.buffer)),A}function y(n,e){try{return n.apply(this,e)}catch(t){let r=v(t);i.__wbindgen_exn_store(r)}}function b(n){return n==null}function C(n,e,t,r){let _={a:n,b:e,cnt:1,dtor:t},o=(...s)=>{_.cnt++;let c=_.a;_.a=0;try{return r(c,_.b,...s)}finally{_.a=c,o._wbg_cb_unref()}};return o._wbg_cb_unref=()=>{--_.cnt===0&&(_.dtor(_.a,_.b),_.a=0,I.unregister(_))},I.register(o,_,_),o}function N(n,e){let t=e(n.length*1,1)>>>0;return h().set(n,t/1),g=n.length,t}function m(n,e,t){if(t===void 0){let c=S.encode(n),d=e(c.length,1)>>>0;return h().subarray(d,d+c.length).set(c),g=c.length,d}let r=n.length,_=e(r,1)>>>0,o=h(),s=0;for(;s<r;s++){let c=n.charCodeAt(s);if(c>127)break;o[_+s]=c}if(s!==r){s!==0&&(n=n.slice(s)),_=t(_,r,r=s+n.length*3,1)>>>0;let c=h().subarray(_+s,_+r),d=S.encodeInto(n,c);s+=d.written,_=t(_,r,s,1)>>>0}return g=s,_}function U(n){let e=i.__wbindgen_externrefs.get(n);return i.__externref_table_dealloc(n),e}var E=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});E.decode();var P=2146435072,D=0;function $(n,e){return D+=e,D>=P&&(E=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),E.decode(),D=e),E.decode(h().subarray(n,n+e))}var S=new TextEncoder;"encodeInto"in S||(S.encodeInto=function(n,e){let t=S.encode(n);return e.set(t),{read:n.length,written:t.length}});var g=0;function V(n,e,t){i.wasm_bindgen__convert__closures_____invoke__h4b569589ab16bc8b(n,e,t)}function G(n,e,t,r){i.wasm_bindgen__convert__closures_____invoke__h298f91ca76697d7d(n,e,t,r)}var T=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_individuallanguages_free(n>>>0,1)),W=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_languagecode_free(n>>>0,1)),M=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_proxycontext_free(n>>>0,1)),q=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(n=>i.__wbg_tinymistlanguageserver_free(n>>>0,1)),R=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,T.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,T.unregister(this),e}free(){let e=this.__destroy_into_raw();i.__wbg_individuallanguages_free(e,0)}get name(){let e,t;try{let r=i.individuallanguages_name(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}get code(){let e,t;try{let r=i.individuallanguages_code(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(R.prototype[Symbol.dispose]=R.prototype.free);var F=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,W.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,W.unregister(this),e}free(){let e=this.__destroy_into_raw();i.__wbg_languagecode_free(e,0)}get name(){let e,t;try{let r=i.languagecode_name(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}get code(){let e,t;try{let r=i.languagecode_code(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}get code_2t(){let e,t;try{let r=i.languagecode_code_2t(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}get code_2b(){let e,t;try{let r=i.languagecode_code_2b(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}get code_3(){let e,t;try{let r=i.languagecode_code_3(this.__wbg_ptr);return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}get individual_languages(){return i.languagecode_individual_languages(this.__wbg_ptr)}};Symbol.dispose&&(F.prototype[Symbol.dispose]=F.prototype.free);var z=class n{static __wrap(e){e=e>>>0;let t=Object.create(n.prototype);return t.__wbg_ptr=e,M.register(t,t.__wbg_ptr,t),t}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,M.unregister(this),e}free(){let e=this.__destroy_into_raw();i.__wbg_proxycontext_free(e,0)}constructor(e){let t=i.proxycontext_new(e);return this.__wbg_ptr=t>>>0,M.register(this,this.__wbg_ptr,this),this}get context(){return i.proxycontext_context(this.__wbg_ptr)}untar(e,t){let r=N(e,i.__wbindgen_malloc),_=g,o=i.proxycontext_untar(this.__wbg_ptr,r,_,t);if(o[1])throw U(o[0])}};Symbol.dispose&&(z.prototype[Symbol.dispose]=z.prototype.free);var x=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,q.unregister(this),e}free(){let e=this.__destroy_into_raw();i.__wbg_tinymistlanguageserver_free(e,0)}constructor(e){let t=i.tinymistlanguageserver_new(e);if(t[2])throw U(t[1]);return this.__wbg_ptr=t[0]>>>0,q.register(this,this.__wbg_ptr,this),this}on_event(e){i.tinymistlanguageserver_on_event(this.__wbg_ptr,e)}on_request(e,t){let r=m(e,i.__wbindgen_malloc,i.__wbindgen_realloc),_=g;return i.tinymistlanguageserver_on_request(this.__wbg_ptr,r,_,t)}on_notification(e,t){let r=m(e,i.__wbindgen_malloc,i.__wbindgen_realloc),_=g;i.tinymistlanguageserver_on_notification(this.__wbg_ptr,r,_,t)}on_response(e){i.tinymistlanguageserver_on_response(this.__wbg_ptr,e)}static version(){let e,t;try{let r=i.tinymistlanguageserver_version();return e=r[0],t=r[1],f(r[0],r[1])}finally{i.__wbindgen_free(e,t,1)}}};Symbol.dispose&&(x.prototype[Symbol.dispose]=x.prototype.free);var X=new Set(["basic","cors","default"]);async function Y(n,e){if(typeof Response=="function"&&n instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(n,e)}catch(r){if(n.ok&&X.has(n.type)&&n.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",r);else throw r}let t=await n.arrayBuffer();return await WebAssembly.instantiate(t,e)}else{let t=await WebAssembly.instantiate(n,e);return t instanceof WebAssembly.Instance?{instance:t,module:n}:t}}function H(){let n={};return n.wbg={},n.wbg.__wbg_Error_52673b7de5a0ca89=function(e,t){return Error(f(e,t))},n.wbg.__wbg_Number_2d1dcfcf4ec51736=function(e){return Number(e)},n.wbg.__wbg_String_8f0eb39a4a4c2f66=function(e,t){let r=String(t),_=m(r,i.__wbindgen_malloc,i.__wbindgen_realloc),o=g;u().setInt32(e+4,o,!0),u().setInt32(e+0,_,!0)},n.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(e,t){let r=t,_=typeof r=="bigint"?r:void 0;u().setBigInt64(e+8,b(_)?BigInt(0):_,!0),u().setInt32(e+0,!b(_),!0)},n.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(e){let t=e,r=typeof t=="boolean"?t:void 0;return b(r)?16777215:r?1:0},n.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(e,t){let r=O(t),_=m(r,i.__wbindgen_malloc,i.__wbindgen_realloc),o=g;u().setInt32(e+4,o,!0),u().setInt32(e+0,_,!0)},n.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(e,t){return e in t},n.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(e){return typeof e=="bigint"},n.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(e){return typeof e=="function"},n.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(e){let t=e;return typeof t=="object"&&t!==null},n.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(e){return typeof e=="string"},n.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(e){return e===void 0},n.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(e,t){return e===t},n.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(e,t){return e==t},n.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(e,t){let r=t,_=typeof r=="number"?r:void 0;u().setFloat64(e+8,b(_)?0:_,!0),u().setInt32(e+0,!b(_),!0)},n.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(e,t){let r=t,_=typeof r=="string"?r:void 0;var o=b(_)?0:m(_,i.__wbindgen_malloc,i.__wbindgen_realloc),s=g;u().setInt32(e+4,s,!0),u().setInt32(e+0,o,!0)},n.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,t){throw new Error(f(e,t))},n.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7=function(e){e._wbg_cb_unref()},n.wbg.__wbg_call_3020136f7a2d6e44=function(){return y(function(e,t,r){return e.call(t,r)},arguments)},n.wbg.__wbg_call_78f94eb02ec7f9b2=function(){return y(function(e,t,r,_,o){return e.call(t,r,_,o)},arguments)},n.wbg.__wbg_call_abb4ff46ce38be40=function(){return y(function(e,t){return e.call(t)},arguments)},n.wbg.__wbg_done_62ea16af4ce34b24=function(e){return e.done},n.wbg.__wbg_entries_83c79938054e065f=function(e){return Object.entries(e)},n.wbg.__wbg_error_7534b8e9a36f1ab4=function(e,t){let r,_;try{r=e,_=t,console.error(f(e,t))}finally{i.__wbindgen_free(r,_,1)}},n.wbg.__wbg_getTimezoneOffset_45389e26d6f46823=function(e){return e.getTimezoneOffset()},n.wbg.__wbg_get_6b7bd52aca3f9671=function(e,t){return e[t>>>0]},n.wbg.__wbg_get_af9dab7e9603ea93=function(){return y(function(e,t){return Reflect.get(e,t)},arguments)},n.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(e,t){return e[t]},n.wbg.__wbg_individuallanguages_new=function(e){return R.__wrap(e)},n.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(e){let t;try{t=e instanceof ArrayBuffer}catch{t=!1}return t},n.wbg.__wbg_instanceof_Map_084be8da74364158=function(e){let t;try{t=e instanceof Map}catch{t=!1}return t},n.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(e){let t;try{t=e instanceof Uint8Array}catch{t=!1}return t},n.wbg.__wbg_isArray_51fd9e6422c0a395=function(e){return Array.isArray(e)},n.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(e){return Number.isSafeInteger(e)},n.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return Symbol.iterator},n.wbg.__wbg_length_22ac23eaec9d8053=function(e){return e.length},n.wbg.__wbg_length_d45040a40c570362=function(e){return e.length},n.wbg.__wbg_new_1ba21ce319a06297=function(){return new Object},n.wbg.__wbg_new_25f239778d6112b9=function(){return new Array},n.wbg.__wbg_new_6421f6084cc5bc5a=function(e){return new Uint8Array(e)},n.wbg.__wbg_new_8a6f238a6ece86ea=function(){return new Error},n.wbg.__wbg_new_b2db8aa2650f793a=function(e){return new Date(e)},n.wbg.__wbg_new_b546ae120718850e=function(){return new Map},n.wbg.__wbg_new_ff12d2b041fb48f1=function(e,t){try{var r={a:e,b:t},_=(s,c)=>{let d=r.a;r.a=0;try{return G(d,r.b,s,c)}finally{r.a=d}};return new Promise(_)}finally{r.a=r.b=0}},n.wbg.__wbg_new_from_slice_f9c22b9153b26992=function(e,t){return new Uint8Array(k(e,t))},n.wbg.__wbg_new_no_args_cb138f77cf6151ee=function(e,t){return new Function(f(e,t))},n.wbg.__wbg_next_138a17bbf04e926c=function(e){return e.next},n.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return y(function(e){return e.next()},arguments)},n.wbg.__wbg_now_2c95c9de01293173=function(e){return e.now()},n.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},n.wbg.__wbg_performance_7a3ffd0b17f663ad=function(e){return e.performance},n.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(e,t,r){Uint8Array.prototype.set.call(k(e,t),r)},n.wbg.__wbg_proxycontext_new=function(e){return z.__wrap(e)},n.wbg.__wbg_push_7d9be8f38fc13975=function(e,t){return e.push(t)},n.wbg.__wbg_queueMicrotask_9b549dfce8865860=function(e){return e.queueMicrotask},n.wbg.__wbg_queueMicrotask_fca69f5bfad613a5=function(e){queueMicrotask(e)},n.wbg.__wbg_resolve_fd5bfbaa4ce36e1e=function(e){return Promise.resolve(e)},n.wbg.__wbg_set_3f1d0b984ed272ed=function(e,t,r){e[t]=r},n.wbg.__wbg_set_781438a03c0c3c81=function(){return y(function(e,t,r){return Reflect.set(e,t,r)},arguments)},n.wbg.__wbg_set_7df433eea03a5c14=function(e,t,r){e[t>>>0]=r},n.wbg.__wbg_set_efaaf145b9377369=function(e,t,r){return e.set(t,r)},n.wbg.__wbg_stack_0ed75d68575b0f3c=function(e,t){let r=t.stack,_=m(r,i.__wbindgen_malloc,i.__wbindgen_realloc),o=g;u().setInt32(e+4,o,!0),u().setInt32(e+0,_,!0)},n.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335=function(){let e=typeof global>"u"?null:global;return b(e)?0:v(e)},n.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1=function(){let e=typeof globalThis>"u"?null:globalThis;return b(e)?0:v(e)},n.wbg.__wbg_static_accessor_SELF_08f5a74c69739274=function(){let e=typeof self>"u"?null:self;return b(e)?0:v(e)},n.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024=function(){let e=typeof window>"u"?null:window;return b(e)?0:v(e)},n.wbg.__wbg_then_4f95312d68691235=function(e,t){return e.then(t)},n.wbg.__wbg_value_57b7b035e117f7ee=function(e){return e.value},n.wbg.__wbindgen_cast_2241b6af4c4b2941=function(e,t){return f(e,t)},n.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(e){return BigInt.asUintN(64,e)},n.wbg.__wbindgen_cast_9ae0607507abb057=function(e){return e},n.wbg.__wbindgen_cast_b5bc9a99b1b9b782=function(e,t){return C(e,t,i.wasm_bindgen__closure__destroy__h21ca932816a58917,V)},n.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(e){return e},n.wbg.__wbindgen_init_externref_table=function(){let e=i.__wbindgen_externrefs,t=e.grow(4);e.set(0,void 0),e.set(t+0,void 0),e.set(t+1,null),e.set(t+2,!0),e.set(t+3,!1)},n}function J(n,e){return i=n.exports,L.__wbindgen_wasm_module=e,w=null,A=null,i.__wbindgen_start(),i}async function L(n){if(i!==void 0)return i;typeof n<"u"&&(Object.getPrototypeOf(n)===Object.prototype?{module_or_path:n}=n:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof n>"u"&&(n=new URL("tinymist_bg.wasm",K.url));let e=H();(typeof n=="string"||typeof Request=="function"&&n instanceof Request||typeof URL=="function"&&n instanceof URL)&&(n=fetch(n));let{instance:t,module:r}=await Y(await n,e);return J(t,r)}var B=L;function l(n,e){let t=e instanceof Error?e.message:String(e);self.postMessage({type:"error",id:n,message:t})}var a=null,j=[];function Q(n){return n.startsWith("untitled:/")?`untitled:${n.slice(10)}`:n}function p(){if(a)for(;j.length>0;)for(let n of j.splice(0))a.on_event(n)}async function Z(n){await B(n),a=new x({sendEvent:t=>{j.push(t)},sendRequest({id:t}){a.on_response({id:t,result:null})},sendNotification:({method:t,params:r})=>{if(t==="textDocument/publishDiagnostics"){let{uri:_,diagnostics:o}=r;self.postMessage({type:"diagnostics",uri:Q(_),diagnostics:o})}},resolveFn:()=>{}});let e=a.on_request("initialize",{capabilities:{textDocument:{publishDiagnostics:{relatedInformation:!0},completion:{completionItem:{snippetSupport:!0}},hover:{contentFormat:["markdown","plaintext"]}}},rootUri:"file:///"});e&&typeof e=="object"&&"then"in e&&await e,p(),a.on_notification("initialized",{}),p()}self.onmessage=async n=>{let e=n.data;if(e.type==="init"){try{await Z(e.wasmUrl),self.postMessage({type:"ready",id:e.id})}catch(t){l(e.id,t)}return}if(!a){l(e.id,new Error("Analyzer not initialized"));return}if(e.type==="didOpen"){try{a.on_notification("textDocument/didOpen",{textDocument:{uri:e.uri,languageId:"typst",version:1,text:e.content}}),p(),self.postMessage({type:"ack",id:e.id})}catch(t){l(e.id,t)}return}if(e.type==="didClose"){try{a.on_notification("textDocument/didClose",{textDocument:{uri:e.uri}}),p(),self.postMessage({type:"ack",id:e.id})}catch(t){l(e.id,t)}return}if(e.type==="didChange"){try{a.on_notification("textDocument/didChange",{textDocument:{uri:e.uri,version:e.version},contentChanges:[{text:e.content}]}),p(),self.postMessage({type:"ack",id:e.id})}catch(t){l(e.id,t)}return}if(e.type==="completion"){try{let t=a.on_request("textDocument/completion",{textDocument:{uri:e.uri},position:{line:e.line,character:e.character}}),r=t&&typeof t=="object"&&"then"in t?await t:t;p(),self.postMessage({type:"completionResult",id:e.id,result:r??null})}catch(t){l(e.id,t)}return}if(e.type==="hover"){try{let t=a.on_request("textDocument/hover",{textDocument:{uri:e.uri},position:{line:e.line,character:e.character}}),r=t&&typeof t=="object"&&"then"in t?await t:t;p(),self.postMessage({type:"hoverResult",id:e.id,result:r??null})}catch(t){l(e.id,t)}return}e.type==="destroy"&&(a.free(),a=null,self.postMessage({type:"destroyed",id:e.id}))};})();\n');
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/rpc.ts","../src/uri.ts","../src/analyzer.ts","../src/analyzer-session.ts","../src/compiler.ts","../src/formatter.ts","../src/renderer.ts"],"sourcesContent":["// Injected at build time by tsup (see tsup.config.ts)\ndeclare const __WORKER_CODE__: string;\ndeclare const __ANALYZER_WORKER_CODE__: string;\n\n/** Create a Worker from an inlined code string, auto-revoking the blob URL on terminate. */\nexport function createBlobWorker(code: string): Worker {\n const blob = new Blob([code], { type: \"application/javascript\" });\n const url = URL.createObjectURL(blob);\n const worker = new Worker(url);\n const origTerminate = worker.terminate.bind(worker);\n worker.terminate = () => {\n origTerminate();\n URL.revokeObjectURL(url);\n };\n return worker;\n}\n\n/** Create a blob Worker from the inlined compiler worker code. */\nexport function createWorker(): Worker {\n return createBlobWorker(__WORKER_CODE__);\n}\n\n/** Create a blob Worker from the inlined analyzer worker code. */\nexport function createAnalyzerWorker(): Worker {\n return createBlobWorker(__ANALYZER_WORKER_CODE__);\n}\n\n/** Generic RPC helper: post a message to a worker and await a response matched by id. */\nexport function workerRpc<\n TReq extends { id: number },\n TRes extends { id: number },\n>(\n worker: Worker,\n request: TReq,\n timeoutMs: number = 30_000,\n transfer?: Transferable[],\n): Promise<TRes> {\n return new Promise((resolve, reject) => {\n const handler = (e: MessageEvent<TRes>) => {\n if (e.data.id !== request.id) return;\n clearTimeout(timer);\n worker.removeEventListener(\"message\", handler);\n resolve(e.data);\n };\n const timer = setTimeout(() => {\n worker.removeEventListener(\"message\", handler);\n reject(new Error(`worker timed out after ${timeoutMs}ms`));\n }, timeoutMs);\n worker.addEventListener(\"message\", handler);\n worker.postMessage(request, transfer ?? []);\n });\n}\n\n/** Convenience: send a destroy RPC and terminate the worker. */\nexport function destroyWorker<TReq extends { id: number }>(\n worker: Worker,\n request: TReq,\n timeoutMs: number,\n label: string,\n): void {\n workerRpc(worker, request, timeoutMs)\n .catch((err) => console.error(`${label} destroy failed:`, err))\n .finally(() => worker.terminate());\n}\n","export function normalizeUntitledUri(uri: string): string {\n if (!uri.startsWith(\"untitled:\")) return uri;\n return `untitled:${uri.slice(\"untitled:\".length).replace(/^\\/+/, \"\")}`;\n}\n\nexport function normalizePath(path: string): string {\n return path.startsWith(\"/\") ? path : `/${path}`;\n}\n\nexport function normalizeRoot(rootPath: string): string {\n const root = normalizePath(rootPath);\n return root === \"/\" ? \"\" : root.replace(/\\/+$/, \"\");\n}\n","import type {\n AnalyzerDiagnosticEvent,\n AnalyzerMessage,\n AnalyzerRequest,\n AnalyzerResponse,\n LspDiagnostic,\n} from \"./analyzer-types.js\";\nimport { createAnalyzerWorker, destroyWorker, workerRpc } from \"./rpc.js\";\nimport { normalizeUntitledUri } from \"./uri.js\";\n\nexport type { LspDiagnostic };\n\nexport type DiagnosticsListener = (\n uri: string,\n diagnostics: LspDiagnostic[],\n) => void;\n\nexport interface TypstAnalyzerOptions {\n /**\n * Explicit Worker instance. When omitted, an inlined blob worker is created automatically.\n * Use this for Vite apps:\n * `await TypstAnalyzer.create({ worker: new Worker(new URL('typst-web-service/analyzer-worker', import.meta.url), { type: 'module' }) })`\n */\n worker?: Worker;\n /**\n * URL to the tinymist WASM binary.\n * Required — there is no default CDN URL for tinymist-web.\n */\n wasmUrl: string;\n}\n\nconst TIMEOUT = { INIT: 120_000, REQUEST: 30_000, DESTROY: 5_000 } as const;\n\n/**\n * Manages a tinymist language server in a Web Worker. Provides LSP-based\n * diagnostics, completion, and hover for Typst documents.\n *\n * Diagnostics are push-based: call `didChange()` to notify the analyzer of\n * content changes, and receive diagnostics via `onDiagnostics()` listeners\n * whenever tinymist publishes them.\n *\n * const analyzer = await TypstAnalyzer.create({ wasmUrl: '...' });\n * analyzer.onDiagnostics((uri, diags) => { ... });\n */\nexport class TypstAnalyzer {\n private idCounter: number;\n private versionCounter = 0;\n private worker: Worker;\n private openedUris = new Set<string>();\n private diagnosticsListeners = new Set<DiagnosticsListener>();\n\n private constructor(worker: Worker, idCounter: number) {\n this.worker = worker;\n this.idCounter = idCounter;\n\n // Listen for unsolicited diagnostic push notifications from the worker.\n this.worker.addEventListener(\n \"message\",\n (e: MessageEvent<AnalyzerMessage>) => {\n if (e.data.type === \"diagnostics\" && !(\"id\" in e.data)) {\n const event = e.data as AnalyzerDiagnosticEvent;\n const normalizedUri = normalizeUntitledUri(event.uri);\n for (const listener of this.diagnosticsListeners) {\n listener(normalizedUri, event.diagnostics);\n }\n }\n },\n );\n }\n\n static async create(options: TypstAnalyzerOptions): Promise<TypstAnalyzer> {\n const worker = options.worker ?? createAnalyzerWorker();\n let idCounter = 0;\n const absoluteWasmUrl = new URL(options.wasmUrl, globalThis.location?.href)\n .href;\n\n const res = await workerRpc<AnalyzerRequest, AnalyzerResponse>(\n worker,\n { type: \"init\", id: ++idCounter, wasmUrl: absoluteWasmUrl },\n TIMEOUT.INIT,\n );\n if (res.type === \"error\")\n throw new Error(`TypstAnalyzer init failed: ${res.message}`);\n\n return new TypstAnalyzer(worker, idCounter);\n }\n\n /**\n * Register a listener for push-based diagnostics.\n * Returns an unsubscribe function.\n */\n onDiagnostics(listener: DiagnosticsListener): () => void {\n this.diagnosticsListeners.add(listener);\n return () => this.diagnosticsListeners.delete(listener);\n }\n\n private rpc(\n request: AnalyzerRequest,\n timeoutMs: number = TIMEOUT.REQUEST,\n ): Promise<AnalyzerResponse> {\n return workerRpc(this.worker, request, timeoutMs);\n }\n\n async didOpen(uri: string, content: string): Promise<void> {\n const res = await this.rpc({\n type: \"didOpen\",\n id: ++this.idCounter,\n uri,\n content,\n });\n if (res.type === \"error\") throw new Error(res.message);\n this.openedUris.add(uri);\n }\n\n async didClose(uri: string): Promise<void> {\n if (!this.openedUris.has(uri)) return;\n const res = await this.rpc({\n type: \"didClose\",\n id: ++this.idCounter,\n uri,\n });\n if (res.type === \"error\") throw new Error(res.message);\n this.openedUris.delete(uri);\n }\n\n /**\n * Notify the analyzer that a document has changed.\n * Diagnostics will arrive asynchronously via `onDiagnostics()` listeners.\n */\n async didChange(uri: string, content: string): Promise<void> {\n if (!this.openedUris.has(uri)) {\n await this.didOpen(uri, content);\n return;\n }\n\n const version = ++this.versionCounter;\n const res = await this.rpc({\n type: \"didChange\",\n id: ++this.idCounter,\n uri,\n version,\n content,\n });\n if (res.type === \"error\") throw new Error(res.message);\n }\n\n async completion(\n uri: string,\n line: number,\n character: number,\n ): Promise<unknown> {\n const res = await this.rpc({\n type: \"completion\",\n id: ++this.idCounter,\n uri,\n line,\n character,\n });\n if (res.type === \"error\") throw new Error(res.message);\n if (res.type === \"completionResult\") return res.result;\n return null;\n }\n\n async hover(uri: string, line: number, character: number): Promise<unknown> {\n const res = await this.rpc({\n type: \"hover\",\n id: ++this.idCounter,\n uri,\n line,\n character,\n });\n if (res.type === \"error\") throw new Error(res.message);\n if (res.type === \"hoverResult\") return res.result;\n return null;\n }\n\n destroy(): void {\n this.diagnosticsListeners.clear();\n destroyWorker(\n this.worker,\n { type: \"destroy\" as const, id: ++this.idCounter },\n TIMEOUT.DESTROY,\n \"TypstAnalyzer\",\n );\n }\n}\n","import type { LspDiagnostic } from \"./analyzer-types.js\";\nimport type { TypstAnalyzer } from \"./analyzer.js\";\nimport { normalizePath, normalizeRoot } from \"./uri.js\";\n\nexport type DiagnosticsSubscriber = (diagnostics: LspDiagnostic[]) => void;\n\nexport interface AnalyzerSessionOptions {\n analyzer: Pick<\n TypstAnalyzer,\n \"didOpen\" | \"didChange\" | \"completion\" | \"hover\" | \"onDiagnostics\"\n >;\n /** Project root used to build stable in-memory analyzer URIs. Default: \"/project\". */\n rootPath?: string;\n /** Entry file path within the project. Synced last to ensure dependencies load first. Default: \"/main.typ\". */\n entryPath?: string;\n}\n\n/**\n * Synchronizes an in-memory Typst project with a TypstAnalyzer.\n * Handles multi-file ordering, request queueing, and diagnostic subscriptions.\n *\n * Diagnostics arrive via the analyzer's push mechanism and are forwarded\n * to subscribers registered with `subscribe()`.\n *\n * const session = new AnalyzerSession({ analyzer });\n * session.subscribe(\"/main.typ\", (diags) => { ... });\n * await session.sync(\"/main.typ\", files);\n */\nexport class AnalyzerSession {\n private readonly analyzer: AnalyzerSessionOptions[\"analyzer\"];\n private readonly rootPath: string;\n private readonly entryPath: string;\n private readonly syncedFiles = new Map<string, string>();\n private queue: Promise<void> = Promise.resolve();\n\n // Diagnostic subscription state\n private readonly listenersByUri = new Map<\n string,\n Set<DiagnosticsSubscriber>\n >();\n /** Last push received per URI. Replayed on subscribe() so tab-back shows correct diagnostics instantly. */\n private readonly diagnosticsCache = new Map<string, LspDiagnostic[]>();\n private readonly unsubscribeAnalyzer: () => void;\n\n constructor(options: AnalyzerSessionOptions) {\n this.analyzer = options.analyzer;\n this.rootPath = normalizeRoot(options.rootPath ?? \"/project\");\n this.entryPath = normalizePath(options.entryPath ?? \"/main.typ\");\n\n this.unsubscribeAnalyzer = this.analyzer.onDiagnostics(\n (uri, diagnostics) => {\n this.diagnosticsCache.set(uri, diagnostics);\n const listeners = this.listenersByUri.get(uri);\n if (!listeners) return;\n for (const listener of listeners) listener(diagnostics);\n },\n );\n }\n\n /** Build a tinymist URI from a project-relative path. */\n toUri(path: string): string {\n const root = this.rootPath.replace(/^\\//, \"\");\n return `untitled:${root}${normalizePath(path)}`;\n }\n\n /**\n * Subscribe to push-based diagnostics for a file path.\n * Returns an unsubscribe function.\n */\n subscribe(path: string, listener: DiagnosticsSubscriber): () => void {\n const uri = this.toUri(path);\n\n let listeners = this.listenersByUri.get(uri);\n if (!listeners) {\n listeners = new Set();\n this.listenersByUri.set(uri, listeners);\n }\n listeners.add(listener);\n\n // Replay the last known diagnostics immediately so the UI reflects the\n // correct state without waiting for the next tinymist push.\n const cached = this.diagnosticsCache.get(uri);\n if (cached) listener(cached);\n\n return () => {\n const current = this.listenersByUri.get(uri);\n if (!current) return;\n current.delete(listener);\n if (current.size === 0) this.listenersByUri.delete(uri);\n };\n }\n\n /**\n * Sync all project files with the analyzer.\n * `files` must include the active file's current content under `path`.\n *\n * If the active file's content hasn't changed since the last sync, a\n * lightweight hover is triggered to ensure the analyzer re-analyzes with\n * the current project state and publishes fresh diagnostics.\n */\n async sync(path: string, files: Record<string, string>): Promise<void> {\n await this.enqueue(async () => {\n const changed = await this.syncFiles(path, files);\n\n // When the active file's content is unchanged, the analyzer won't\n // publish fresh diagnostics on its own. A hover request forces it\n // to re-evaluate with the (possibly updated) project context.\n if (!changed) {\n try {\n await this.analyzer.hover(this.toUri(normalizePath(path)), 0, 0);\n } catch {\n /* best-effort — the hover result is unused */\n }\n }\n\n // Clean up files that were removed from the project.\n for (const filePath of this.syncedFiles.keys()) {\n if (!Object.hasOwn(files, filePath)) {\n this.syncedFiles.delete(filePath);\n }\n }\n });\n }\n\n /**\n * Sync files and request completions at the given position.\n * Returns the raw LSP CompletionList/CompletionItem[] from tinymist.\n */\n async completion(\n path: string,\n files: Record<string, string>,\n line: number,\n character: number,\n ): Promise<unknown> {\n return this.enqueue(async () => {\n await this.syncFiles(path, files);\n return this.analyzer.completion(\n this.toUri(normalizePath(path)),\n line,\n character,\n );\n });\n }\n\n /**\n * Sync files and request hover info at the given position.\n * Returns the raw LSP Hover result from tinymist.\n */\n async hover(\n path: string,\n files: Record<string, string>,\n line: number,\n character: number,\n ): Promise<unknown> {\n return this.enqueue(async () => {\n await this.syncFiles(path, files);\n return this.analyzer.hover(\n this.toUri(normalizePath(path)),\n line,\n character,\n );\n });\n }\n\n destroy(): void {\n this.unsubscribeAnalyzer();\n this.listenersByUri.clear();\n this.diagnosticsCache.clear();\n }\n\n /**\n * Sync all project files: dependencies first, active file last.\n * Returns whether the active file's content was actually sent to the analyzer.\n */\n private async syncFiles(\n path: string,\n files: Record<string, string>,\n ): Promise<boolean> {\n const activePath = normalizePath(path);\n for (const filePath of this.orderedPaths(files)) {\n if (filePath === activePath) continue;\n await this.syncFile(filePath, files[filePath]);\n }\n return this.syncFile(activePath, files[activePath]);\n }\n\n /** Sync a single file. Returns true if content was sent to the analyzer. */\n private async syncFile(path: string, content: string): Promise<boolean> {\n const prev = this.syncedFiles.get(path);\n if (prev == null) {\n await this.analyzer.didOpen(this.toUri(path), content);\n } else if (prev !== content) {\n await this.analyzer.didChange(this.toUri(path), content);\n } else {\n return false;\n }\n this.syncedFiles.set(path, content);\n return true;\n }\n\n private orderedPaths(files: Record<string, string>): string[] {\n return Object.keys(files)\n .map((p) => normalizePath(p))\n .sort((a, b) => {\n if (a === this.entryPath) return 1;\n if (b === this.entryPath) return -1;\n return a.localeCompare(b);\n });\n }\n\n private enqueue<T>(task: () => Promise<T>): Promise<T> {\n const run = this.queue.then(task, task);\n this.queue = run.then(\n () => undefined,\n () => undefined,\n );\n return run;\n }\n}\n","import { createWorker, destroyWorker, workerRpc } from \"./rpc.js\";\nimport type {\n DiagnosticMessage,\n WorkerRequest,\n WorkerResponse,\n} from \"./types.js\";\n\nexport interface CompileResult {\n diagnostics: DiagnosticMessage[];\n /** Vector artifact bytes from the compiler, usable with TypstRenderer for SVG rendering. */\n vector?: Uint8Array;\n}\n\nexport interface TypstCompilerOptions {\n /**\n * Explicit Worker instance. When omitted, an inlined blob worker is created automatically.\n * Use this for Vite apps to get proper source maps:\n * `await TypstCompiler.create({ worker: new Worker(new URL('typst-web-service/worker', import.meta.url)) })`\n */\n worker?: Worker;\n /**\n * URL to the typst-ts-web-compiler WASM binary.\n * Defaults to the matching version on jsDelivr CDN.\n * Override with a local asset URL for offline support or faster load:\n * `new URL('@myriaddreamin/typst-ts-web-compiler/pkg/typst_ts_web_compiler_bg.wasm', import.meta.url).href`\n */\n wasmUrl?: string;\n /** Font URLs to load into the Typst compiler. Defaults to Roboto from jsDelivr. */\n fonts?: string[];\n /**\n * Enable fetching @preview/ packages from packages.typst.org on demand.\n * Default: true.\n */\n packages?: boolean;\n}\n\nconst DEFAULT_FONTS = [\n \"https://cdn.jsdelivr.net/npm/roboto-font@0.1.0/fonts/Roboto/roboto-regular-webfont.ttf\",\n];\n\nconst DEFAULT_WASM_URL =\n \"https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-web-compiler@0.7.0-rc2/pkg/typst_ts_web_compiler_bg.wasm\";\n\nconst TIMEOUT = { INIT: 60_000, RENDER: 60_000, DESTROY: 5_000 } as const;\n\nfunction toFiles(\n source: string | Record<string, string>,\n): Record<string, string> {\n return typeof source === \"string\" ? { \"/main.typ\": source } : source;\n}\n\n/**\n * Manages a Typst compiler worker. Create one instance and share it across\n * all extensions (linter, autocomplete, preview, etc.).\n *\n * await TypstCompiler.create() // blob worker, defaults\n * await TypstCompiler.create({ wasmUrl: '...' }) // blob worker, custom WASM\n * await TypstCompiler.create({ worker: myWorker }) // explicit Worker (Vite)\n * await TypstCompiler.create({ worker: myWorker, fonts: [...] }) // explicit Worker + options\n */\nexport class TypstCompiler {\n private idCounter: number;\n private worker: Worker;\n\n /** The most recent vector artifact from a compile, if any. */\n lastVector?: Uint8Array;\n\n private constructor(worker: Worker, idCounter: number) {\n this.worker = worker;\n this.idCounter = idCounter;\n }\n\n static async create(\n options: TypstCompilerOptions = {},\n ): Promise<TypstCompiler> {\n const worker = options.worker ?? createWorker();\n let idCounter = 0;\n\n const res = await workerRpc<WorkerRequest, WorkerResponse>(\n worker,\n {\n type: \"init\",\n id: ++idCounter,\n wasmUrl: options.wasmUrl ?? DEFAULT_WASM_URL,\n fonts: options.fonts ?? DEFAULT_FONTS,\n packages: options.packages ?? true,\n },\n TIMEOUT.INIT,\n );\n if (res.type === \"error\")\n throw new Error(`TypstCompiler init failed: ${res.message}`);\n\n return new TypstCompiler(worker, idCounter);\n }\n\n /** Compile a single source string (treated as /main.typ) or a map of files. */\n async compile(\n source: string | Record<string, string>,\n ): Promise<CompileResult> {\n const id = ++this.idCounter;\n const files = toFiles(source);\n const response = await workerRpc<WorkerRequest, WorkerResponse>(\n this.worker,\n {\n type: \"compile\",\n id,\n files,\n },\n );\n if (response.type === \"cancelled\") return { diagnostics: [] };\n if (response.type === \"result\") {\n const vector = response.vector\n ? new Uint8Array(response.vector)\n : undefined;\n if (vector) this.lastVector = vector;\n return { diagnostics: response.diagnostics, vector };\n }\n if (response.type === \"error\") throw new Error(response.message);\n return { diagnostics: [] };\n }\n\n /** Compile to PDF from a single source string (treated as /main.typ) or a map of files. */\n async compilePdf(\n source: string | Record<string, string>,\n ): Promise<Uint8Array> {\n const id = ++this.idCounter;\n const files = toFiles(source);\n const response = await workerRpc<WorkerRequest, WorkerResponse>(\n this.worker,\n { type: \"render\", id, files },\n TIMEOUT.RENDER,\n );\n if (response.type === \"cancelled\") throw new Error(\"Render cancelled\");\n if (response.type === \"pdf\") return new Uint8Array(response.data);\n if (response.type === \"error\") throw new Error(response.message);\n throw new Error(\"Unexpected response type\");\n }\n\n destroy(): void {\n const id = ++this.idCounter;\n destroyWorker(\n this.worker,\n { type: \"destroy\" as const, id },\n TIMEOUT.DESTROY,\n \"TypstCompiler\",\n );\n }\n}\n","export interface FormatConfig {\n /** Number of spaces per indentation level. Default: 2 */\n tab_spaces?: number;\n /** Maximum line width. Default: 80 */\n max_width?: number;\n /** Maximum consecutive blank lines allowed. */\n blank_lines_upper_bound?: number;\n /** Collapse consecutive whitespace in markup to a single space. */\n collapse_markup_spaces?: boolean;\n /** Sort import items alphabetically. */\n reorder_import_items?: boolean;\n /** Wrap text in markup to fit within max_width. Implies collapse_markup_spaces. */\n wrap_text?: boolean;\n}\n\nexport interface FormatRangeResult {\n /** Start index (UTF-16) of the actual formatted range. */\n start: number;\n /** End index (UTF-16) of the actual formatted range. */\n end: number;\n /** The formatted text for the range. */\n text: string;\n}\n\ntype TypstyleModule = typeof import(\"@typstyle/typstyle-wasm-bundler\");\n\nlet typstylePromise: Promise<TypstyleModule> | null = null;\n\nfunction getTypstyle(): Promise<TypstyleModule> {\n if (!typstylePromise) {\n typstylePromise = import(\"@typstyle/typstyle-wasm-bundler\").catch((err) => {\n typstylePromise = null;\n throw err;\n });\n }\n return typstylePromise;\n}\n\n/**\n * Typst code formatter powered by typstyle.\n *\n * Runs on the main thread — typstyle is lightweight and fast.\n * The WASM module is loaded lazily on first format call.\n * Requires a bundler that supports WASM imports (e.g. Vite, webpack).\n *\n * const formatter = TypstFormatter.create({ tab_spaces: 2, max_width: 80 });\n * const formatted = await formatter.format(source);\n */\nexport class TypstFormatter {\n private config: FormatConfig;\n\n private constructor(config: FormatConfig = {}) {\n this.config = config;\n // Eagerly start loading WASM so it's ready by first use.\n // Swallow preload errors — they'll surface on first format() call.\n getTypstyle().catch(() => {});\n }\n\n static create(config: FormatConfig = {}): TypstFormatter {\n return new TypstFormatter(config);\n }\n\n /** Format an entire Typst source string. */\n async format(source: string): Promise<string> {\n const typstyle = await getTypstyle();\n return typstyle.format(source, this.config);\n }\n\n /** Format a range within a Typst source string. Indices are UTF-16 code units. */\n async formatRange(\n source: string,\n start: number,\n end: number,\n ): Promise<FormatRangeResult> {\n const typstyle = await getTypstyle();\n const result = typstyle.format_range(source, start, end, this.config);\n return { start: result.start, end: result.end, text: result.text };\n }\n}\n","/** Minimal interface for the built TypstRenderer instance. */\nexport interface RendererInstance {\n free(): void;\n create_session(): RendererSession;\n manipulate_data(\n session: RendererSession,\n action: string,\n data: Uint8Array,\n ): void;\n svg_data(session: RendererSession): string;\n}\n\n/** Minimal interface for a TypstRenderer session. */\nexport interface RendererSession {\n free(): void;\n}\n\ntype RendererWasmModule = typeof import(\"@myriaddreamin/typst-ts-renderer\");\n\nconst DEFAULT_RENDERER_WASM_URL =\n \"https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-renderer@0.7.0-rc2/pkg/typst_ts_renderer_bg.wasm\";\n\nlet rendererModulePromise: Promise<RendererWasmModule> | null = null;\n\nfunction getRendererModule(): Promise<RendererWasmModule> {\n if (!rendererModulePromise) {\n rendererModulePromise = import(\"@myriaddreamin/typst-ts-renderer\").catch(\n (err) => {\n rendererModulePromise = null;\n throw err;\n },\n );\n }\n return rendererModulePromise;\n}\n\nexport interface TypstRendererOptions {\n /** URL to the typst-ts-renderer WASM binary. Defaults to jsDelivr CDN. */\n wasmUrl?: string;\n}\n\n/**\n * Converts Typst vector artifacts to SVG strings.\n *\n * The renderer WASM module is loaded lazily on first use.\n *\n * const renderer = TypstRenderer.create();\n * const svg = await renderer.renderSvg(vector);\n */\nexport class TypstRenderer {\n private wasmUrl: string;\n private instance: Promise<RendererInstance> | null = null;\n\n private constructor(options: TypstRendererOptions = {}) {\n this.wasmUrl = options.wasmUrl ?? DEFAULT_RENDERER_WASM_URL;\n // Eagerly start loading the WASM module so it's ready by first use.\n getRendererModule().catch(() => {});\n }\n\n static create(options: TypstRendererOptions = {}): TypstRenderer {\n return new TypstRenderer(options);\n }\n\n private getInstance(): Promise<RendererInstance> {\n if (!this.instance) {\n this.instance = this.#init().catch((err) => {\n this.instance = null;\n throw err;\n });\n }\n return this.instance;\n }\n\n async #init(): Promise<RendererInstance> {\n const mod = await getRendererModule();\n await mod.default(this.wasmUrl);\n return new mod.TypstRendererBuilder().build();\n }\n\n /** Free the underlying WASM renderer instance. */\n async destroy(): Promise<void> {\n const instance = this.instance;\n this.instance = null;\n if (instance) {\n (await instance).free();\n }\n }\n\n /** Render a Typst vector artifact to an SVG string. */\n async renderSvg(vector: Uint8Array): Promise<string> {\n const renderer = await this.getInstance();\n const session = renderer.create_session();\n try {\n renderer.manipulate_data(session, \"reset\", vector);\n return renderer.svg_data(session);\n } finally {\n session.free();\n }\n }\n}\n"],"mappings":";AAKO,SAAS,iBAAiB,MAAsB;AACrD,QAAM,OAAO,IAAI,KAAK,CAAC,IAAI,GAAG,EAAE,MAAM,yBAAyB,CAAC;AAChE,QAAM,MAAM,IAAI,gBAAgB,IAAI;AACpC,QAAM,SAAS,IAAI,OAAO,GAAG;AAC7B,QAAM,gBAAgB,OAAO,UAAU,KAAK,MAAM;AAClD,SAAO,YAAY,MAAM;AACvB,kBAAc;AACd,QAAI,gBAAgB,GAAG;AAAA,EACzB;AACA,SAAO;AACT;AAGO,SAAS,eAAuB;AACrC,SAAO,iBAAiB,smmCAAe;AACzC;AAGO,SAAS,uBAA+B;AAC7C,SAAO,iBAAiB,svhBAAwB;AAClD;AAGO,SAAS,UAId,QACA,SACA,YAAoB,KACpB,UACe;AACf,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACtC,UAAM,UAAU,CAAC,MAA0B;AACzC,UAAI,EAAE,KAAK,OAAO,QAAQ,GAAI;AAC9B,mBAAa,KAAK;AAClB,aAAO,oBAAoB,WAAW,OAAO;AAC7C,cAAQ,EAAE,IAAI;AAAA,IAChB;AACA,UAAM,QAAQ,WAAW,MAAM;AAC7B,aAAO,oBAAoB,WAAW,OAAO;AAC7C,aAAO,IAAI,MAAM,0BAA0B,SAAS,IAAI,CAAC;AAAA,IAC3D,GAAG,SAAS;AACZ,WAAO,iBAAiB,WAAW,OAAO;AAC1C,WAAO,YAAY,SAAS,YAAY,CAAC,CAAC;AAAA,EAC5C,CAAC;AACH;AAGO,SAAS,cACd,QACA,SACA,WACA,OACM;AACN,YAAU,QAAQ,SAAS,SAAS,EACjC,MAAM,CAAC,QAAQ,QAAQ,MAAM,GAAG,KAAK,oBAAoB,GAAG,CAAC,EAC7D,QAAQ,MAAM,OAAO,UAAU,CAAC;AACrC;;;AC/DO,SAAS,qBAAqB,KAAqB;AACxD,MAAI,CAAC,IAAI,WAAW,WAAW,EAAG,QAAO;AACzC,SAAO,YAAY,IAAI,MAAM,YAAY,MAAM,EAAE,QAAQ,QAAQ,EAAE,CAAC;AACtE;AAEO,SAAS,cAAc,MAAsB;AAClD,SAAO,KAAK,WAAW,GAAG,IAAI,OAAO,IAAI,IAAI;AAC/C;AAEO,SAAS,cAAc,UAA0B;AACtD,QAAM,OAAO,cAAc,QAAQ;AACnC,SAAO,SAAS,MAAM,KAAK,KAAK,QAAQ,QAAQ,EAAE;AACpD;;;ACmBA,IAAM,UAAU,EAAE,MAAM,MAAS,SAAS,KAAQ,SAAS,IAAM;AAa1D,IAAM,gBAAN,MAAM,eAAc;AAAA,EACjB;AAAA,EACA,iBAAiB;AAAA,EACjB;AAAA,EACA,aAAa,oBAAI,IAAY;AAAA,EAC7B,uBAAuB,oBAAI,IAAyB;AAAA,EAEpD,YAAY,QAAgB,WAAmB;AACrD,SAAK,SAAS;AACd,SAAK,YAAY;AAGjB,SAAK,OAAO;AAAA,MACV;AAAA,MACA,CAAC,MAAqC;AACpC,YAAI,EAAE,KAAK,SAAS,iBAAiB,EAAE,QAAQ,EAAE,OAAO;AACtD,gBAAM,QAAQ,EAAE;AAChB,gBAAM,gBAAgB,qBAAqB,MAAM,GAAG;AACpD,qBAAW,YAAY,KAAK,sBAAsB;AAChD,qBAAS,eAAe,MAAM,WAAW;AAAA,UAC3C;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AAAA,EAEA,aAAa,OAAO,SAAuD;AACzE,UAAM,SAAS,QAAQ,UAAU,qBAAqB;AACtD,QAAI,YAAY;AAChB,UAAM,kBAAkB,IAAI,IAAI,QAAQ,SAAS,WAAW,UAAU,IAAI,EACvE;AAEH,UAAM,MAAM,MAAM;AAAA,MAChB;AAAA,MACA,EAAE,MAAM,QAAQ,IAAI,EAAE,WAAW,SAAS,gBAAgB;AAAA,MAC1D,QAAQ;AAAA,IACV;AACA,QAAI,IAAI,SAAS;AACf,YAAM,IAAI,MAAM,8BAA8B,IAAI,OAAO,EAAE;AAE7D,WAAO,IAAI,eAAc,QAAQ,SAAS;AAAA,EAC5C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,cAAc,UAA2C;AACvD,SAAK,qBAAqB,IAAI,QAAQ;AACtC,WAAO,MAAM,KAAK,qBAAqB,OAAO,QAAQ;AAAA,EACxD;AAAA,EAEQ,IACN,SACA,YAAoB,QAAQ,SACD;AAC3B,WAAO,UAAU,KAAK,QAAQ,SAAS,SAAS;AAAA,EAClD;AAAA,EAEA,MAAM,QAAQ,KAAa,SAAgC;AACzD,UAAM,MAAM,MAAM,KAAK,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,IAAI,EAAE,KAAK;AAAA,MACX;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,IAAI,SAAS,QAAS,OAAM,IAAI,MAAM,IAAI,OAAO;AACrD,SAAK,WAAW,IAAI,GAAG;AAAA,EACzB;AAAA,EAEA,MAAM,SAAS,KAA4B;AACzC,QAAI,CAAC,KAAK,WAAW,IAAI,GAAG,EAAG;AAC/B,UAAM,MAAM,MAAM,KAAK,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,IAAI,EAAE,KAAK;AAAA,MACX;AAAA,IACF,CAAC;AACD,QAAI,IAAI,SAAS,QAAS,OAAM,IAAI,MAAM,IAAI,OAAO;AACrD,SAAK,WAAW,OAAO,GAAG;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,UAAU,KAAa,SAAgC;AAC3D,QAAI,CAAC,KAAK,WAAW,IAAI,GAAG,GAAG;AAC7B,YAAM,KAAK,QAAQ,KAAK,OAAO;AAC/B;AAAA,IACF;AAEA,UAAM,UAAU,EAAE,KAAK;AACvB,UAAM,MAAM,MAAM,KAAK,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,IAAI,EAAE,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,IAAI,SAAS,QAAS,OAAM,IAAI,MAAM,IAAI,OAAO;AAAA,EACvD;AAAA,EAEA,MAAM,WACJ,KACA,MACA,WACkB;AAClB,UAAM,MAAM,MAAM,KAAK,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,IAAI,EAAE,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,IAAI,SAAS,QAAS,OAAM,IAAI,MAAM,IAAI,OAAO;AACrD,QAAI,IAAI,SAAS,mBAAoB,QAAO,IAAI;AAChD,WAAO;AAAA,EACT;AAAA,EAEA,MAAM,MAAM,KAAa,MAAc,WAAqC;AAC1E,UAAM,MAAM,MAAM,KAAK,IAAI;AAAA,MACzB,MAAM;AAAA,MACN,IAAI,EAAE,KAAK;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,IACF,CAAC;AACD,QAAI,IAAI,SAAS,QAAS,OAAM,IAAI,MAAM,IAAI,OAAO;AACrD,QAAI,IAAI,SAAS,cAAe,QAAO,IAAI;AAC3C,WAAO;AAAA,EACT;AAAA,EAEA,UAAgB;AACd,SAAK,qBAAqB,MAAM;AAChC;AAAA,MACE,KAAK;AAAA,MACL,EAAE,MAAM,WAAoB,IAAI,EAAE,KAAK,UAAU;AAAA,MACjD,QAAQ;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;AC7JO,IAAM,kBAAN,MAAsB;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA,cAAc,oBAAI,IAAoB;AAAA,EAC/C,QAAuB,QAAQ,QAAQ;AAAA;AAAA,EAG9B,iBAAiB,oBAAI,IAGpC;AAAA;AAAA,EAEe,mBAAmB,oBAAI,IAA6B;AAAA,EACpD;AAAA,EAEjB,YAAY,SAAiC;AAC3C,SAAK,WAAW,QAAQ;AACxB,SAAK,WAAW,cAAc,QAAQ,YAAY,UAAU;AAC5D,SAAK,YAAY,cAAc,QAAQ,aAAa,WAAW;AAE/D,SAAK,sBAAsB,KAAK,SAAS;AAAA,MACvC,CAAC,KAAK,gBAAgB;AACpB,aAAK,iBAAiB,IAAI,KAAK,WAAW;AAC1C,cAAM,YAAY,KAAK,eAAe,IAAI,GAAG;AAC7C,YAAI,CAAC,UAAW;AAChB,mBAAW,YAAY,UAAW,UAAS,WAAW;AAAA,MACxD;AAAA,IACF;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,MAAsB;AAC1B,UAAM,OAAO,KAAK,SAAS,QAAQ,OAAO,EAAE;AAC5C,WAAO,YAAY,IAAI,GAAG,cAAc,IAAI,CAAC;AAAA,EAC/C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,UAAU,MAAc,UAA6C;AACnE,UAAM,MAAM,KAAK,MAAM,IAAI;AAE3B,QAAI,YAAY,KAAK,eAAe,IAAI,GAAG;AAC3C,QAAI,CAAC,WAAW;AACd,kBAAY,oBAAI,IAAI;AACpB,WAAK,eAAe,IAAI,KAAK,SAAS;AAAA,IACxC;AACA,cAAU,IAAI,QAAQ;AAItB,UAAM,SAAS,KAAK,iBAAiB,IAAI,GAAG;AAC5C,QAAI,OAAQ,UAAS,MAAM;AAE3B,WAAO,MAAM;AACX,YAAM,UAAU,KAAK,eAAe,IAAI,GAAG;AAC3C,UAAI,CAAC,QAAS;AACd,cAAQ,OAAO,QAAQ;AACvB,UAAI,QAAQ,SAAS,EAAG,MAAK,eAAe,OAAO,GAAG;AAAA,IACxD;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAUA,MAAM,KAAK,MAAc,OAA8C;AACrE,UAAM,KAAK,QAAQ,YAAY;AAC7B,YAAM,UAAU,MAAM,KAAK,UAAU,MAAM,KAAK;AAKhD,UAAI,CAAC,SAAS;AACZ,YAAI;AACF,gBAAM,KAAK,SAAS,MAAM,KAAK,MAAM,cAAc,IAAI,CAAC,GAAG,GAAG,CAAC;AAAA,QACjE,QAAQ;AAAA,QAER;AAAA,MACF;AAGA,iBAAW,YAAY,KAAK,YAAY,KAAK,GAAG;AAC9C,YAAI,CAAC,OAAO,OAAO,OAAO,QAAQ,GAAG;AACnC,eAAK,YAAY,OAAO,QAAQ;AAAA,QAClC;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,WACJ,MACA,OACA,MACA,WACkB;AAClB,WAAO,KAAK,QAAQ,YAAY;AAC9B,YAAM,KAAK,UAAU,MAAM,KAAK;AAChC,aAAO,KAAK,SAAS;AAAA,QACnB,KAAK,MAAM,cAAc,IAAI,CAAC;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAM,MACJ,MACA,OACA,MACA,WACkB;AAClB,WAAO,KAAK,QAAQ,YAAY;AAC9B,YAAM,KAAK,UAAU,MAAM,KAAK;AAChC,aAAO,KAAK,SAAS;AAAA,QACnB,KAAK,MAAM,cAAc,IAAI,CAAC;AAAA,QAC9B;AAAA,QACA;AAAA,MACF;AAAA,IACF,CAAC;AAAA,EACH;AAAA,EAEA,UAAgB;AACd,SAAK,oBAAoB;AACzB,SAAK,eAAe,MAAM;AAC1B,SAAK,iBAAiB,MAAM;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,MAAc,UACZ,MACA,OACkB;AAClB,UAAM,aAAa,cAAc,IAAI;AACrC,eAAW,YAAY,KAAK,aAAa,KAAK,GAAG;AAC/C,UAAI,aAAa,WAAY;AAC7B,YAAM,KAAK,SAAS,UAAU,MAAM,QAAQ,CAAC;AAAA,IAC/C;AACA,WAAO,KAAK,SAAS,YAAY,MAAM,UAAU,CAAC;AAAA,EACpD;AAAA;AAAA,EAGA,MAAc,SAAS,MAAc,SAAmC;AACtE,UAAM,OAAO,KAAK,YAAY,IAAI,IAAI;AACtC,QAAI,QAAQ,MAAM;AAChB,YAAM,KAAK,SAAS,QAAQ,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,IACvD,WAAW,SAAS,SAAS;AAC3B,YAAM,KAAK,SAAS,UAAU,KAAK,MAAM,IAAI,GAAG,OAAO;AAAA,IACzD,OAAO;AACL,aAAO;AAAA,IACT;AACA,SAAK,YAAY,IAAI,MAAM,OAAO;AAClC,WAAO;AAAA,EACT;AAAA,EAEQ,aAAa,OAAyC;AAC5D,WAAO,OAAO,KAAK,KAAK,EACrB,IAAI,CAAC,MAAM,cAAc,CAAC,CAAC,EAC3B,KAAK,CAAC,GAAG,MAAM;AACd,UAAI,MAAM,KAAK,UAAW,QAAO;AACjC,UAAI,MAAM,KAAK,UAAW,QAAO;AACjC,aAAO,EAAE,cAAc,CAAC;AAAA,IAC1B,CAAC;AAAA,EACL;AAAA,EAEQ,QAAW,MAAoC;AACrD,UAAM,MAAM,KAAK,MAAM,KAAK,MAAM,IAAI;AACtC,SAAK,QAAQ,IAAI;AAAA,MACf,MAAM;AAAA,MACN,MAAM;AAAA,IACR;AACA,WAAO;AAAA,EACT;AACF;;;ACtLA,IAAM,gBAAgB;AAAA,EACpB;AACF;AAEA,IAAM,mBACJ;AAEF,IAAMA,WAAU,EAAE,MAAM,KAAQ,QAAQ,KAAQ,SAAS,IAAM;AAE/D,SAAS,QACP,QACwB;AACxB,SAAO,OAAO,WAAW,WAAW,EAAE,aAAa,OAAO,IAAI;AAChE;AAWO,IAAM,gBAAN,MAAM,eAAc;AAAA,EACjB;AAAA,EACA;AAAA;AAAA,EAGR;AAAA,EAEQ,YAAY,QAAgB,WAAmB;AACrD,SAAK,SAAS;AACd,SAAK,YAAY;AAAA,EACnB;AAAA,EAEA,aAAa,OACX,UAAgC,CAAC,GACT;AACxB,UAAM,SAAS,QAAQ,UAAU,aAAa;AAC9C,QAAI,YAAY;AAEhB,UAAM,MAAM,MAAM;AAAA,MAChB;AAAA,MACA;AAAA,QACE,MAAM;AAAA,QACN,IAAI,EAAE;AAAA,QACN,SAAS,QAAQ,WAAW;AAAA,QAC5B,OAAO,QAAQ,SAAS;AAAA,QACxB,UAAU,QAAQ,YAAY;AAAA,MAChC;AAAA,MACAA,SAAQ;AAAA,IACV;AACA,QAAI,IAAI,SAAS;AACf,YAAM,IAAI,MAAM,8BAA8B,IAAI,OAAO,EAAE;AAE7D,WAAO,IAAI,eAAc,QAAQ,SAAS;AAAA,EAC5C;AAAA;AAAA,EAGA,MAAM,QACJ,QACwB;AACxB,UAAM,KAAK,EAAE,KAAK;AAClB,UAAM,QAAQ,QAAQ,MAAM;AAC5B,UAAM,WAAW,MAAM;AAAA,MACrB,KAAK;AAAA,MACL;AAAA,QACE,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAAA,IACF;AACA,QAAI,SAAS,SAAS,YAAa,QAAO,EAAE,aAAa,CAAC,EAAE;AAC5D,QAAI,SAAS,SAAS,UAAU;AAC9B,YAAM,SAAS,SAAS,SACpB,IAAI,WAAW,SAAS,MAAM,IAC9B;AACJ,UAAI,OAAQ,MAAK,aAAa;AAC9B,aAAO,EAAE,aAAa,SAAS,aAAa,OAAO;AAAA,IACrD;AACA,QAAI,SAAS,SAAS,QAAS,OAAM,IAAI,MAAM,SAAS,OAAO;AAC/D,WAAO,EAAE,aAAa,CAAC,EAAE;AAAA,EAC3B;AAAA;AAAA,EAGA,MAAM,WACJ,QACqB;AACrB,UAAM,KAAK,EAAE,KAAK;AAClB,UAAM,QAAQ,QAAQ,MAAM;AAC5B,UAAM,WAAW,MAAM;AAAA,MACrB,KAAK;AAAA,MACL,EAAE,MAAM,UAAU,IAAI,MAAM;AAAA,MAC5BA,SAAQ;AAAA,IACV;AACA,QAAI,SAAS,SAAS,YAAa,OAAM,IAAI,MAAM,kBAAkB;AACrE,QAAI,SAAS,SAAS,MAAO,QAAO,IAAI,WAAW,SAAS,IAAI;AAChE,QAAI,SAAS,SAAS,QAAS,OAAM,IAAI,MAAM,SAAS,OAAO;AAC/D,UAAM,IAAI,MAAM,0BAA0B;AAAA,EAC5C;AAAA,EAEA,UAAgB;AACd,UAAM,KAAK,EAAE,KAAK;AAClB;AAAA,MACE,KAAK;AAAA,MACL,EAAE,MAAM,WAAoB,GAAG;AAAA,MAC/BA,SAAQ;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACF;;;ACzHA,IAAI,kBAAkD;AAEtD,SAAS,cAAuC;AAC9C,MAAI,CAAC,iBAAiB;AACpB,sBAAkB,OAAO,iCAAiC,EAAE,MAAM,CAAC,QAAQ;AACzE,wBAAkB;AAClB,YAAM;AAAA,IACR,CAAC;AAAA,EACH;AACA,SAAO;AACT;AAYO,IAAM,iBAAN,MAAM,gBAAe;AAAA,EAClB;AAAA,EAEA,YAAY,SAAuB,CAAC,GAAG;AAC7C,SAAK,SAAS;AAGd,gBAAY,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EAC9B;AAAA,EAEA,OAAO,OAAO,SAAuB,CAAC,GAAmB;AACvD,WAAO,IAAI,gBAAe,MAAM;AAAA,EAClC;AAAA;AAAA,EAGA,MAAM,OAAO,QAAiC;AAC5C,UAAM,WAAW,MAAM,YAAY;AACnC,WAAO,SAAS,OAAO,QAAQ,KAAK,MAAM;AAAA,EAC5C;AAAA;AAAA,EAGA,MAAM,YACJ,QACA,OACA,KAC4B;AAC5B,UAAM,WAAW,MAAM,YAAY;AACnC,UAAM,SAAS,SAAS,aAAa,QAAQ,OAAO,KAAK,KAAK,MAAM;AACpE,WAAO,EAAE,OAAO,OAAO,OAAO,KAAK,OAAO,KAAK,MAAM,OAAO,KAAK;AAAA,EACnE;AACF;;;AC3DA,IAAM,4BACJ;AAEF,IAAI,wBAA4D;AAEhE,SAAS,oBAAiD;AACxD,MAAI,CAAC,uBAAuB;AAC1B,4BAAwB,OAAO,kCAAkC,EAAE;AAAA,MACjE,CAAC,QAAQ;AACP,gCAAwB;AACxB,cAAM;AAAA,MACR;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;AAeO,IAAM,gBAAN,MAAM,eAAc;AAAA,EACjB;AAAA,EACA,WAA6C;AAAA,EAE7C,YAAY,UAAgC,CAAC,GAAG;AACtD,SAAK,UAAU,QAAQ,WAAW;AAElC,sBAAkB,EAAE,MAAM,MAAM;AAAA,IAAC,CAAC;AAAA,EACpC;AAAA,EAEA,OAAO,OAAO,UAAgC,CAAC,GAAkB;AAC/D,WAAO,IAAI,eAAc,OAAO;AAAA,EAClC;AAAA,EAEQ,cAAyC;AAC/C,QAAI,CAAC,KAAK,UAAU;AAClB,WAAK,WAAW,KAAK,MAAM,EAAE,MAAM,CAAC,QAAQ;AAC1C,aAAK,WAAW;AAChB,cAAM;AAAA,MACR,CAAC;AAAA,IACH;AACA,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,QAAmC;AACvC,UAAM,MAAM,MAAM,kBAAkB;AACpC,UAAM,IAAI,QAAQ,KAAK,OAAO;AAC9B,WAAO,IAAI,IAAI,qBAAqB,EAAE,MAAM;AAAA,EAC9C;AAAA;AAAA,EAGA,MAAM,UAAyB;AAC7B,UAAM,WAAW,KAAK;AACtB,SAAK,WAAW;AAChB,QAAI,UAAU;AACZ,OAAC,MAAM,UAAU,KAAK;AAAA,IACxB;AAAA,EACF;AAAA;AAAA,EAGA,MAAM,UAAU,QAAqC;AACnD,UAAM,WAAW,MAAM,KAAK,YAAY;AACxC,UAAM,UAAU,SAAS,eAAe;AACxC,QAAI;AACF,eAAS,gBAAgB,SAAS,SAAS,MAAM;AACjD,aAAO,SAAS,SAAS,OAAO;AAAA,IAClC,UAAE;AACA,cAAQ,KAAK;AAAA,IACf;AAAA,EACF;AACF;","names":["TIMEOUT"]}
1
+ {"version":3,"sources":["../src/rpc.ts","../src/uri.ts","../src/analyzer.ts","../src/analyzer-session.ts","../src/compiler.ts","../src/formatter.ts","../src/renderer.ts"],"sourcesContent":["// Injected at build time by tsup (see tsup.config.ts)\ndeclare const __WORKER_CODE__: string;\ndeclare const __ANALYZER_WORKER_CODE__: string;\n\n/** Create a Worker from an inlined code string, auto-revoking the blob URL on terminate. */\nexport function createBlobWorker(code: string): Worker {\n const blob = new Blob([code], { type: \"application/javascript\" });\n const url = URL.createObjectURL(blob);\n const worker = new Worker(url);\n const origTerminate = worker.terminate.bind(worker);\n worker.terminate = () => {\n origTerminate();\n URL.revokeObjectURL(url);\n };\n return worker;\n}\n\n/** Create a blob Worker from the inlined compiler worker code. */\nexport function createWorker(): Worker {\n return createBlobWorker(__WORKER_CODE__);\n}\n\n/** Create a blob Worker from the inlined analyzer worker code. */\nexport function createAnalyzerWorker(): Worker {\n return createBlobWorker(__ANALYZER_WORKER_CODE__);\n}\n\n/** Generic RPC helper: post a message to a worker and await a response matched by id. */\nexport function workerRpc<\n TReq extends { id: number },\n TRes extends { id: number },\n>(\n worker: Worker,\n request: TReq,\n timeoutMs: number = 30_000,\n transfer?: Transferable[],\n): Promise<TRes> {\n return new Promise((resolve, reject) => {\n const handler = (e: MessageEvent<TRes>) => {\n if (e.data.id !== request.id) return;\n clearTimeout(timer);\n worker.removeEventListener(\"message\", handler);\n resolve(e.data);\n };\n const timer = setTimeout(() => {\n worker.removeEventListener(\"message\", handler);\n reject(new Error(`worker timed out after ${timeoutMs}ms`));\n }, timeoutMs);\n worker.addEventListener(\"message\", handler);\n worker.postMessage(request, transfer ?? []);\n });\n}\n\n/** Convenience: send a destroy RPC and terminate the worker. */\nexport function destroyWorker<TReq extends { id: number }>(\n worker: Worker,\n request: TReq,\n timeoutMs: number,\n label: string,\n): void {\n workerRpc(worker, request, timeoutMs)\n .catch((err) => console.error(`${label} destroy failed:`, err))\n .finally(() => worker.terminate());\n}\n","export function normalizeUntitledUri(uri: string): string {\n if (!uri.startsWith(\"untitled:\")) return uri;\n return `untitled:${uri.slice(\"untitled:\".length).replace(/^\\/+/, \"\")}`;\n}\n\nexport function normalizePath(path: string): string {\n return path.startsWith(\"/\") ? path : `/${path}`;\n}\n\nexport function normalizeRoot(rootPath: string): string {\n const root = normalizePath(rootPath);\n return root === \"/\" ? \"\" : root.replace(/\\/+$/, \"\");\n}\n","import type {\n AnalyzerDiagnosticEvent,\n AnalyzerMessage,\n AnalyzerRequest,\n AnalyzerResponse,\n LspDiagnostic,\n} from \"./analyzer-types.js\";\nimport { createAnalyzerWorker, destroyWorker, workerRpc } from \"./rpc.js\";\nimport { normalizeUntitledUri } from \"./uri.js\";\n\nexport type { LspDiagnostic };\n\nexport type DiagnosticsListener = (\n uri: string,\n diagnostics: LspDiagnostic[],\n) => void;\n\nexport interface TypstAnalyzerOptions {\n /**\n * Explicit Worker instance. When omitted, an inlined blob worker is created automatically.\n * Use this for Vite apps:\n * `await TypstAnalyzer.create({ worker: new Worker(new URL('typst-web-service/analyzer-worker', import.meta.url), { type: 'module' }) })`\n */\n worker?: Worker;\n /**\n * URL to the tinymist WASM binary.\n * Required — there is no default CDN URL for tinymist-web.\n */\n wasmUrl: string;\n}\n\nconst TIMEOUT = { INIT: 120_000, REQUEST: 30_000, DESTROY: 5_000 } as const;\n\n/**\n * Manages a tinymist language server in a Web Worker. Provides LSP-based\n * diagnostics, completion, and hover for Typst documents.\n *\n * Diagnostics are push-based: call `didChange()` to notify the analyzer of\n * content changes, and receive diagnostics via `onDiagnostics()` listeners\n * whenever tinymist publishes them.\n *\n * const analyzer = await TypstAnalyzer.create({ wasmUrl: '...' });\n * analyzer.onDiagnostics((uri, diags) => { ... });\n */\nexport class TypstAnalyzer {\n private idCounter: number;\n private versionCounter = 0;\n private worker: Worker;\n private openedUris = new Set<string>();\n private diagnosticsListeners = new Set<DiagnosticsListener>();\n\n private constructor(worker: Worker, idCounter: number) {\n this.worker = worker;\n this.idCounter = idCounter;\n\n // Listen for unsolicited diagnostic push notifications from the worker.\n this.worker.addEventListener(\n \"message\",\n (e: MessageEvent<AnalyzerMessage>) => {\n if (e.data.type === \"diagnostics\" && !(\"id\" in e.data)) {\n const event = e.data as AnalyzerDiagnosticEvent;\n const normalizedUri = normalizeUntitledUri(event.uri);\n for (const listener of this.diagnosticsListeners) {\n listener(normalizedUri, event.diagnostics);\n }\n }\n },\n );\n }\n\n static async create(options: TypstAnalyzerOptions): Promise<TypstAnalyzer> {\n const worker = options.worker ?? createAnalyzerWorker();\n let idCounter = 0;\n const absoluteWasmUrl = new URL(options.wasmUrl, globalThis.location?.href)\n .href;\n\n const res = await workerRpc<AnalyzerRequest, AnalyzerResponse>(\n worker,\n { type: \"init\", id: ++idCounter, wasmUrl: absoluteWasmUrl },\n TIMEOUT.INIT,\n );\n if (res.type === \"error\")\n throw new Error(`TypstAnalyzer init failed: ${res.message}`);\n\n return new TypstAnalyzer(worker, idCounter);\n }\n\n /**\n * Register a listener for push-based diagnostics.\n * Returns an unsubscribe function.\n */\n onDiagnostics(listener: DiagnosticsListener): () => void {\n this.diagnosticsListeners.add(listener);\n return () => this.diagnosticsListeners.delete(listener);\n }\n\n private rpc(\n request: AnalyzerRequest,\n timeoutMs: number = TIMEOUT.REQUEST,\n ): Promise<AnalyzerResponse> {\n return workerRpc(this.worker, request, timeoutMs);\n }\n\n async didOpen(uri: string, content: string): Promise<void> {\n const res = await this.rpc({\n type: \"didOpen\",\n id: ++this.idCounter,\n uri,\n content,\n });\n if (res.type === \"error\") throw new Error(res.message);\n this.openedUris.add(uri);\n }\n\n async didClose(uri: string): Promise<void> {\n if (!this.openedUris.has(uri)) return;\n const res = await this.rpc({\n type: \"didClose\",\n id: ++this.idCounter,\n uri,\n });\n if (res.type === \"error\") throw new Error(res.message);\n this.openedUris.delete(uri);\n }\n\n /**\n * Notify the analyzer that a document has changed.\n * Diagnostics will arrive asynchronously via `onDiagnostics()` listeners.\n */\n async didChange(uri: string, content: string): Promise<void> {\n if (!this.openedUris.has(uri)) {\n await this.didOpen(uri, content);\n return;\n }\n\n const version = ++this.versionCounter;\n const res = await this.rpc({\n type: \"didChange\",\n id: ++this.idCounter,\n uri,\n version,\n content,\n });\n if (res.type === \"error\") throw new Error(res.message);\n }\n\n async completion(\n uri: string,\n line: number,\n character: number,\n ): Promise<unknown> {\n const res = await this.rpc({\n type: \"completion\",\n id: ++this.idCounter,\n uri,\n line,\n character,\n });\n if (res.type === \"error\") throw new Error(res.message);\n if (res.type === \"completionResult\") return res.result;\n return null;\n }\n\n async hover(uri: string, line: number, character: number): Promise<unknown> {\n const res = await this.rpc({\n type: \"hover\",\n id: ++this.idCounter,\n uri,\n line,\n character,\n });\n if (res.type === \"error\") throw new Error(res.message);\n if (res.type === \"hoverResult\") return res.result;\n return null;\n }\n\n destroy(): void {\n this.diagnosticsListeners.clear();\n destroyWorker(\n this.worker,\n { type: \"destroy\" as const, id: ++this.idCounter },\n TIMEOUT.DESTROY,\n \"TypstAnalyzer\",\n );\n }\n}\n","import type { LspDiagnostic } from \"./analyzer-types.js\";\nimport type { TypstAnalyzer } from \"./analyzer.js\";\nimport { normalizePath, normalizeRoot } from \"./uri.js\";\n\nexport type DiagnosticsSubscriber = (diagnostics: LspDiagnostic[]) => void;\n\nexport interface AnalyzerSessionOptions {\n analyzer: Pick<\n TypstAnalyzer,\n \"didOpen\" | \"didChange\" | \"completion\" | \"hover\" | \"onDiagnostics\"\n >;\n /** Project root used to build stable in-memory analyzer URIs. Default: \"/project\". */\n rootPath?: string;\n /** Entry file path within the project. Synced last to ensure dependencies load first. Default: \"/main.typ\". */\n entryPath?: string;\n}\n\n/**\n * Synchronizes an in-memory Typst project with a TypstAnalyzer.\n * Handles multi-file ordering, request queueing, and diagnostic subscriptions.\n *\n * Diagnostics arrive via the analyzer's push mechanism and are forwarded\n * to subscribers registered with `subscribe()`.\n *\n * const session = new AnalyzerSession({ analyzer });\n * session.subscribe(\"/main.typ\", (diags) => { ... });\n * await session.sync(\"/main.typ\", files);\n */\nexport class AnalyzerSession {\n private readonly analyzer: AnalyzerSessionOptions[\"analyzer\"];\n private readonly rootPath: string;\n private readonly entryPath: string;\n private readonly syncedFiles = new Map<string, string>();\n private queue: Promise<void> = Promise.resolve();\n\n // Diagnostic subscription state\n private readonly listenersByUri = new Map<\n string,\n Set<DiagnosticsSubscriber>\n >();\n /** Last push received per URI. Replayed on subscribe() so tab-back shows correct diagnostics instantly. */\n private readonly diagnosticsCache = new Map<string, LspDiagnostic[]>();\n private readonly unsubscribeAnalyzer: () => void;\n\n constructor(options: AnalyzerSessionOptions) {\n this.analyzer = options.analyzer;\n this.rootPath = normalizeRoot(options.rootPath ?? \"/project\");\n this.entryPath = normalizePath(options.entryPath ?? \"/main.typ\");\n\n this.unsubscribeAnalyzer = this.analyzer.onDiagnostics(\n (uri, diagnostics) => {\n this.diagnosticsCache.set(uri, diagnostics);\n const listeners = this.listenersByUri.get(uri);\n if (!listeners) return;\n for (const listener of listeners) listener(diagnostics);\n },\n );\n }\n\n /** Build a tinymist URI from a project-relative path. */\n toUri(path: string): string {\n const root = this.rootPath.replace(/^\\//, \"\");\n return `untitled:${root}${normalizePath(path)}`;\n }\n\n /**\n * Subscribe to push-based diagnostics for a file path.\n * Returns an unsubscribe function.\n */\n subscribe(path: string, listener: DiagnosticsSubscriber): () => void {\n const uri = this.toUri(path);\n\n let listeners = this.listenersByUri.get(uri);\n if (!listeners) {\n listeners = new Set();\n this.listenersByUri.set(uri, listeners);\n }\n listeners.add(listener);\n\n // Replay the last known diagnostics immediately so the UI reflects the\n // correct state without waiting for the next tinymist push.\n const cached = this.diagnosticsCache.get(uri);\n if (cached) listener(cached);\n\n return () => {\n const current = this.listenersByUri.get(uri);\n if (!current) return;\n current.delete(listener);\n if (current.size === 0) this.listenersByUri.delete(uri);\n };\n }\n\n /**\n * Sync all project files with the analyzer.\n * `files` must include the active file's current content under `path`.\n *\n * If the active file's content hasn't changed since the last sync, a\n * lightweight hover is triggered to ensure the analyzer re-analyzes with\n * the current project state and publishes fresh diagnostics.\n */\n async sync(path: string, files: Record<string, string>): Promise<void> {\n await this.enqueue(async () => {\n const changed = await this.syncFiles(path, files);\n\n // When the active file's content is unchanged, the analyzer won't\n // publish fresh diagnostics on its own. A hover request forces it\n // to re-evaluate with the (possibly updated) project context.\n if (!changed) {\n try {\n await this.analyzer.hover(this.toUri(normalizePath(path)), 0, 0);\n } catch {\n /* best-effort — the hover result is unused */\n }\n }\n\n // Clean up files that were removed from the project.\n for (const filePath of this.syncedFiles.keys()) {\n if (!Object.hasOwn(files, filePath)) {\n this.syncedFiles.delete(filePath);\n }\n }\n });\n }\n\n /**\n * Sync files and request completions at the given position.\n * Returns the raw LSP CompletionList/CompletionItem[] from tinymist.\n */\n async completion(\n path: string,\n files: Record<string, string>,\n line: number,\n character: number,\n ): Promise<unknown> {\n return this.enqueue(async () => {\n await this.syncFiles(path, files);\n return this.analyzer.completion(\n this.toUri(normalizePath(path)),\n line,\n character,\n );\n });\n }\n\n /**\n * Sync files and request hover info at the given position.\n * Returns the raw LSP Hover result from tinymist.\n */\n async hover(\n path: string,\n files: Record<string, string>,\n line: number,\n character: number,\n ): Promise<unknown> {\n return this.enqueue(async () => {\n await this.syncFiles(path, files);\n return this.analyzer.hover(\n this.toUri(normalizePath(path)),\n line,\n character,\n );\n });\n }\n\n destroy(): void {\n this.unsubscribeAnalyzer();\n this.listenersByUri.clear();\n this.diagnosticsCache.clear();\n }\n\n /**\n * Sync all project files: dependencies first, active file last.\n * Returns whether the active file's content was actually sent to the analyzer.\n */\n private async syncFiles(\n path: string,\n files: Record<string, string>,\n ): Promise<boolean> {\n const activePath = normalizePath(path);\n for (const filePath of this.orderedPaths(files)) {\n if (filePath === activePath) continue;\n await this.syncFile(filePath, files[filePath]);\n }\n return this.syncFile(activePath, files[activePath]);\n }\n\n /** Sync a single file. Returns true if content was sent to the analyzer. */\n private async syncFile(path: string, content: string): Promise<boolean> {\n const prev = this.syncedFiles.get(path);\n if (prev == null) {\n await this.analyzer.didOpen(this.toUri(path), content);\n } else if (prev !== content) {\n await this.analyzer.didChange(this.toUri(path), content);\n } else {\n return false;\n }\n this.syncedFiles.set(path, content);\n return true;\n }\n\n private orderedPaths(files: Record<string, string>): string[] {\n return Object.keys(files)\n .map((p) => normalizePath(p))\n .sort((a, b) => {\n if (a === this.entryPath) return 1;\n if (b === this.entryPath) return -1;\n return a.localeCompare(b);\n });\n }\n\n private enqueue<T>(task: () => Promise<T>): Promise<T> {\n const run = this.queue.then(task, task);\n this.queue = run.then(\n () => undefined,\n () => undefined,\n );\n return run;\n }\n}\n","import { createWorker, destroyWorker, workerRpc } from \"./rpc.js\";\nimport type {\n DiagnosticMessage,\n WorkerRequest,\n WorkerResponse,\n} from \"./types.js\";\n\nexport interface CompileResult {\n diagnostics: DiagnosticMessage[];\n /** Vector artifact bytes from the compiler, usable with TypstRenderer for SVG rendering. */\n vector?: Uint8Array;\n}\n\nexport interface TypstCompilerOptions {\n /**\n * Explicit Worker instance. When omitted, an inlined blob worker is created automatically.\n * Use this for Vite apps to get proper source maps:\n * `await TypstCompiler.create({ worker: new Worker(new URL('typst-web-service/worker', import.meta.url)) })`\n */\n worker?: Worker;\n /**\n * URL to the typst-ts-web-compiler WASM binary.\n * Defaults to the matching version on jsDelivr CDN.\n * Override with a local asset URL for offline support or faster load:\n * `new URL('@myriaddreamin/typst-ts-web-compiler/pkg/typst_ts_web_compiler_bg.wasm', import.meta.url).href`\n */\n wasmUrl?: string;\n /** Font URLs to load into the Typst compiler. Defaults to Roboto from jsDelivr. */\n fonts?: string[];\n /**\n * Enable fetching @preview/ packages from packages.typst.org on demand.\n * Default: true.\n */\n packages?: boolean;\n}\n\nconst DEFAULT_FONTS = [\n \"https://cdn.jsdelivr.net/npm/roboto-font@0.1.0/fonts/Roboto/roboto-regular-webfont.ttf\",\n];\n\nconst DEFAULT_WASM_URL =\n \"https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-web-compiler@0.7.0-rc2/pkg/typst_ts_web_compiler_bg.wasm\";\n\nconst TIMEOUT = { INIT: 60_000, RENDER: 60_000, DESTROY: 5_000 } as const;\n\nfunction toFiles(\n source: string | Record<string, string>,\n): Record<string, string> {\n return typeof source === \"string\" ? { \"/main.typ\": source } : source;\n}\n\n/**\n * Manages a Typst compiler worker. Create one instance and share it across\n * all extensions (linter, autocomplete, preview, etc.).\n *\n * await TypstCompiler.create() // blob worker, defaults\n * await TypstCompiler.create({ wasmUrl: '...' }) // blob worker, custom WASM\n * await TypstCompiler.create({ worker: myWorker }) // explicit Worker (Vite)\n * await TypstCompiler.create({ worker: myWorker, fonts: [...] }) // explicit Worker + options\n */\nexport class TypstCompiler {\n private idCounter: number;\n private worker: Worker;\n\n /** The most recent vector artifact from a compile, if any. */\n lastVector?: Uint8Array;\n\n private constructor(worker: Worker, idCounter: number) {\n this.worker = worker;\n this.idCounter = idCounter;\n }\n\n static async create(\n options: TypstCompilerOptions = {},\n ): Promise<TypstCompiler> {\n const worker = options.worker ?? createWorker();\n let idCounter = 0;\n\n const res = await workerRpc<WorkerRequest, WorkerResponse>(\n worker,\n {\n type: \"init\",\n id: ++idCounter,\n wasmUrl: options.wasmUrl ?? DEFAULT_WASM_URL,\n fonts: options.fonts ?? DEFAULT_FONTS,\n packages: options.packages ?? true,\n },\n TIMEOUT.INIT,\n );\n if (res.type === \"error\")\n throw new Error(`TypstCompiler init failed: ${res.message}`);\n\n return new TypstCompiler(worker, idCounter);\n }\n\n /** Compile a single source string (treated as /main.typ) or a map of files. */\n async compile(\n source: string | Record<string, string>,\n ): Promise<CompileResult> {\n const id = ++this.idCounter;\n const files = toFiles(source);\n const response = await workerRpc<WorkerRequest, WorkerResponse>(\n this.worker,\n {\n type: \"compile\",\n id,\n files,\n },\n );\n if (response.type === \"cancelled\") return { diagnostics: [] };\n if (response.type === \"result\") {\n const vector = response.vector\n ? new Uint8Array(response.vector)\n : undefined;\n if (vector) this.lastVector = vector;\n return { diagnostics: response.diagnostics, vector };\n }\n if (response.type === \"error\") throw new Error(response.message);\n return { diagnostics: [] };\n }\n\n /** Compile to PDF from a single source string (treated as /main.typ) or a map of files. */\n async compilePdf(\n source: string | Record<string, string>,\n ): Promise<Uint8Array> {\n const id = ++this.idCounter;\n const files = toFiles(source);\n const response = await workerRpc<WorkerRequest, WorkerResponse>(\n this.worker,\n { type: \"render\", id, files },\n TIMEOUT.RENDER,\n );\n if (response.type === \"cancelled\") throw new Error(\"Render cancelled\");\n if (response.type === \"pdf\") return new Uint8Array(response.data);\n if (response.type === \"error\") throw new Error(response.message);\n throw new Error(\"Unexpected response type\");\n }\n\n destroy(): void {\n const id = ++this.idCounter;\n destroyWorker(\n this.worker,\n { type: \"destroy\" as const, id },\n TIMEOUT.DESTROY,\n \"TypstCompiler\",\n );\n }\n}\n","export interface FormatConfig {\n /** Number of spaces per indentation level. Default: 2 */\n tab_spaces?: number;\n /** Maximum line width. Default: 80 */\n max_width?: number;\n /** Maximum consecutive blank lines allowed. */\n blank_lines_upper_bound?: number;\n /** Collapse consecutive whitespace in markup to a single space. */\n collapse_markup_spaces?: boolean;\n /** Sort import items alphabetically. */\n reorder_import_items?: boolean;\n /** Wrap text in markup to fit within max_width. Implies collapse_markup_spaces. */\n wrap_text?: boolean;\n}\n\nexport interface FormatRangeResult {\n /** Start index (UTF-16) of the actual formatted range. */\n start: number;\n /** End index (UTF-16) of the actual formatted range. */\n end: number;\n /** The formatted text for the range. */\n text: string;\n}\n\ntype TypstyleModule = typeof import(\"@typstyle/typstyle-wasm-bundler\");\n\nlet typstylePromise: Promise<TypstyleModule> | null = null;\n\nfunction getTypstyle(): Promise<TypstyleModule> {\n if (!typstylePromise) {\n typstylePromise = import(\"@typstyle/typstyle-wasm-bundler\").catch((err) => {\n typstylePromise = null;\n throw err;\n });\n }\n return typstylePromise;\n}\n\n/**\n * Typst code formatter powered by typstyle.\n *\n * Runs on the main thread — typstyle is lightweight and fast.\n * The WASM module is loaded lazily on first format call.\n * Requires a bundler that supports WASM imports (e.g. Vite, webpack).\n *\n * const formatter = TypstFormatter.create({ tab_spaces: 2, max_width: 80 });\n * const formatted = await formatter.format(source);\n */\nexport class TypstFormatter {\n private config: FormatConfig;\n\n private constructor(config: FormatConfig = {}) {\n this.config = config;\n // Eagerly start loading WASM so it's ready by first use.\n // Swallow preload errors — they'll surface on first format() call.\n getTypstyle().catch(() => {});\n }\n\n static create(config: FormatConfig = {}): TypstFormatter {\n return new TypstFormatter(config);\n }\n\n /** Format an entire Typst source string. */\n async format(source: string): Promise<string> {\n const typstyle = await getTypstyle();\n return typstyle.format(source, this.config);\n }\n\n /** Format a range within a Typst source string. Indices are UTF-16 code units. */\n async formatRange(\n source: string,\n start: number,\n end: number,\n ): Promise<FormatRangeResult> {\n const typstyle = await getTypstyle();\n const result = typstyle.format_range(source, start, end, this.config);\n return { start: result.start, end: result.end, text: result.text };\n }\n}\n","/** Minimal interface for the built TypstRenderer instance. */\nexport interface RendererInstance {\n free(): void;\n create_session(): RendererSession;\n manipulate_data(\n session: RendererSession,\n action: string,\n data: Uint8Array,\n ): void;\n svg_data(session: RendererSession): string;\n}\n\n/** Minimal interface for a TypstRenderer session. */\nexport interface RendererSession {\n free(): void;\n}\n\ntype RendererWasmModule = typeof import(\"@myriaddreamin/typst-ts-renderer\");\n\nconst DEFAULT_RENDERER_WASM_URL =\n \"https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-renderer@0.7.0-rc2/pkg/typst_ts_renderer_bg.wasm\";\n\nlet rendererModulePromise: Promise<RendererWasmModule> | null = null;\n\nfunction getRendererModule(): Promise<RendererWasmModule> {\n if (!rendererModulePromise) {\n rendererModulePromise = import(\"@myriaddreamin/typst-ts-renderer\").catch(\n (err) => {\n rendererModulePromise = null;\n throw err;\n },\n );\n }\n return rendererModulePromise;\n}\n\nexport interface TypstRendererOptions {\n /** URL to the typst-ts-renderer WASM binary. Defaults to jsDelivr CDN. */\n wasmUrl?: string;\n}\n\n/**\n * Converts Typst vector artifacts to SVG strings.\n *\n * The renderer WASM module is loaded lazily on first use.\n *\n * const renderer = TypstRenderer.create();\n * const svg = await renderer.renderSvg(vector);\n */\nexport class TypstRenderer {\n private wasmUrl: string;\n private instance: Promise<RendererInstance> | null = null;\n\n private constructor(options: TypstRendererOptions = {}) {\n this.wasmUrl = options.wasmUrl ?? DEFAULT_RENDERER_WASM_URL;\n // Eagerly start loading the WASM module so it's ready by first use.\n getRendererModule().catch(() => {});\n }\n\n static create(options: TypstRendererOptions = {}): TypstRenderer {\n return new TypstRenderer(options);\n }\n\n private getInstance(): Promise<RendererInstance> {\n if (!this.instance) {\n this.instance = this.#init().catch((err) => {\n this.instance = null;\n throw err;\n });\n }\n return this.instance;\n }\n\n async #init(): Promise<RendererInstance> {\n const mod = await getRendererModule();\n await mod.default(this.wasmUrl);\n return new mod.TypstRendererBuilder().build();\n }\n\n /** Free the underlying WASM renderer instance. */\n async destroy(): Promise<void> {\n const instance = this.instance;\n this.instance = null;\n if (instance) {\n (await instance).free();\n }\n }\n\n /** Render a Typst vector artifact to an SVG string. */\n async renderSvg(vector: Uint8Array): Promise<string> {\n const renderer = await this.getInstance();\n const session = renderer.create_session();\n try {\n renderer.manipulate_data(session, \"reset\", vector);\n return renderer.svg_data(session);\n } finally {\n session.free();\n }\n }\n}\n"],"mappings":"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","names":["TIMEOUT"]}
package/dist/worker.js CHANGED
@@ -2160,6 +2160,7 @@ function parseRange(range) {
2160
2160
  }
2161
2161
  function addSources(files) {
2162
2162
  if (!compiler) throw new Error("Compiler not initialized");
2163
+ compiler.resetShadow();
2163
2164
  for (const [path, source] of Object.entries(files)) {
2164
2165
  compiler.addSource(path, source);
2165
2166
  }