@vedivad/typst-web-service 0.7.11 → 0.8.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,3 +1,6 @@
1
+ // src/analyzer.ts
2
+ import * as Comlink from "comlink";
3
+
1
4
  // src/rpc.ts
2
5
  function createBlobWorker(code) {
3
6
  const blob = new Blob([code], { type: "application/javascript" });
@@ -11,115 +14,40 @@ function createBlobWorker(code) {
11
14
  return worker;
12
15
  }
13
16
  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');
17
+ return createBlobWorker('"use strict";(()=>{var re=Object.defineProperty;var vt=(e,t)=>()=>(e&&(t=e(e=0)),t);var ne=(e,t)=>{for(var r in t)re(e,r,{get:t[r],enumerable:!0})};function f(e){N===S.length&&S.push(S.length+1);let t=N;return N=S[t],S[t]=e,t}function lt(e,t){if(!(e instanceof t))throw new Error(`expected instance of ${t.name}`)}function gt(e){let t=typeof e;if(t=="number"||t=="boolean"||e==null)return`${e}`;if(t=="string")return`"${e}"`;if(t=="symbol"){let o=e.description;return o==null?"Symbol":`Symbol(${o})`}if(t=="function"){let o=e.name;return typeof o=="string"&&o.length>0?`Function(${o})`:"Function"}if(Array.isArray(e)){let o=e.length,s="[";o>0&&(s+=gt(e[0]));for(let _=1;_<o;_++)s+=", "+gt(e[_]);return s+="]",s}let r=/\\[object ([^\\]]+)\\]/.exec(toString.call(e)),n;if(r&&r.length>1)n=r[1];else return toString.call(e);if(n=="Object")try{return"Object("+JSON.stringify(e)+")"}catch{return"Object"}return e instanceof Error?`${e.name}: ${e.message}\n${e.stack}`:n}function Ie(e){e<132||(S[e]=N,N=e)}function ke(e,t){e=e>>>0;let r=c(),n=[];for(let o=e;o<e+4*t;o+=4)n.push(l(r.getUint32(o,!0)));return n}function Se(e,t){return e=e>>>0,Fe().subarray(e/4,e/4+t)}function wt(e,t){return e=e>>>0,T().subarray(e/1,e/1+t)}function c(){return(M===null||M.buffer.detached===!0||M.buffer.detached===void 0&&M.buffer!==i.memory.buffer)&&(M=new DataView(i.memory.buffer)),M}function I(e,t){return e=e>>>0,Ee(e,t)}function Fe(){return(U===null||U.byteLength===0)&&(U=new Uint32Array(i.memory.buffer)),U}function T(){return(W===null||W.byteLength===0)&&(W=new Uint8Array(i.memory.buffer)),W}function u(e){return S[e]}function O(e,t){try{return e.apply(this,t)}catch(r){i.__wbindgen_export3(f(r))}}function v(e){return e==null}function Ae(e,t,r,n){let o={a:e,b:t,cnt:1,dtor:r},s=(..._)=>{o.cnt++;let a=o.a;o.a=0;try{return n(a,o.b,..._)}finally{o.a=a,s._wbg_cb_unref()}};return s._wbg_cb_unref=()=>{--o.cnt===0&&(o.dtor(o.a,o.b),o.a=0,Ct.unregister(o))},Ct.register(s,o,o),s}function Ut(e,t){let r=t(e.length*1,1)>>>0;return T().set(e,r/1),b=e.length,r}function rt(e,t){let r=t(e.length*4,4)>>>0,n=c();for(let o=0;o<e.length;o++)n.setUint32(r+4*o,f(e[o]),!0);return b=e.length,r}function h(e,t,r){if(r===void 0){let a=q.encode(e),g=t(a.length,1)>>>0;return T().subarray(g,g+a.length).set(a),b=a.length,g}let n=e.length,o=t(n,1)>>>0,s=T(),_=0;for(;_<n;_++){let a=e.charCodeAt(_);if(a>127)break;s[o+_]=a}if(_!==n){_!==0&&(e=e.slice(_)),o=r(o,n,n=_+e.length*3,1)>>>0;let a=T().subarray(o+_,o+n),g=q.encodeInto(e,a);_+=g.written,o=r(o,n,_,1)>>>0}return b=_,o}function l(e){let t=u(e);return Ie(e),t}function Ee(e,t){return ft+=t,ft>=Me&&(nt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),nt.decode(),ft=t),nt.decode(T().subarray(e,e+t))}function Re(e,t,r){i.__wasm_bindgen_func_elem_944(e,t,f(r))}function Oe(e,t,r,n){i.__wasm_bindgen_func_elem_37348(e,t,f(r),f(n))}function Te(e){let t=i.get_font_info(f(e));return l(t)}async function Pe(e,t){if(typeof Response=="function"&&e instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(e,t)}catch(n){if(e.ok&&Ce.has(e.type)&&e.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",n);else throw n}let r=await e.arrayBuffer();return await WebAssembly.instantiate(r,t)}else{let r=await WebAssembly.instantiate(e,t);return r instanceof WebAssembly.Instance?{instance:r,module:e}:r}}function Wt(){let e={};return e.wbg={},e.wbg.__wbg_Error_52673b7de5a0ca89=function(t,r){let n=Error(I(t,r));return f(n)},e.wbg.__wbg_Number_2d1dcfcf4ec51736=function(t){return Number(u(t))},e.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(t,r){let n=u(r),o=typeof n=="bigint"?n:void 0;c().setBigInt64(t+8,v(o)?BigInt(0):o,!0),c().setInt32(t+0,!v(o),!0)},e.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(t){let r=u(t),n=typeof r=="boolean"?r:void 0;return v(n)?16777215:n?1:0},e.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(t,r){let n=gt(u(r)),o=h(n,i.__wbindgen_export,i.__wbindgen_export2),s=b;c().setInt32(t+4,s,!0),c().setInt32(t+0,o,!0)},e.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(t,r){return u(t)in u(r)},e.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(t){return typeof u(t)=="bigint"},e.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(t){return typeof u(t)=="function"},e.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(t){let r=u(t);return typeof r=="object"&&r!==null},e.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(t){return typeof u(t)=="string"},e.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(t){return u(t)===void 0},e.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(t,r){return u(t)===u(r)},e.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(t,r){return u(t)==u(r)},e.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(t,r){let n=u(r),o=typeof n=="number"?n:void 0;c().setFloat64(t+8,v(o)?0:o,!0),c().setInt32(t+0,!v(o),!0)},e.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(t,r){let n=u(r),o=typeof n=="string"?n:void 0;var s=v(o)?0:h(o,i.__wbindgen_export,i.__wbindgen_export2),_=b;c().setInt32(t+4,_,!0),c().setInt32(t+0,s,!0)},e.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(t,r){throw new Error(I(t,r))},e.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7=function(t){u(t)._wbg_cb_unref()},e.wbg.__wbg_call_3020136f7a2d6e44=function(){return O(function(t,r,n){let o=u(t).call(u(r),u(n));return f(o)},arguments)},e.wbg.__wbg_call_78f94eb02ec7f9b2=function(){return O(function(t,r,n,o,s){let _=u(t).call(u(r),u(n),u(o),u(s));return f(_)},arguments)},e.wbg.__wbg_call_abb4ff46ce38be40=function(){return O(function(t,r){let n=u(t).call(u(r));return f(n)},arguments)},e.wbg.__wbg_done_62ea16af4ce34b24=function(t){return u(t).done},e.wbg.__wbg_entries_83c79938054e065f=function(t){let r=Object.entries(u(t));return f(r)},e.wbg.__wbg_error_7534b8e9a36f1ab4=function(t,r){let n,o;try{n=t,o=r,console.error(I(t,r))}finally{i.__wbindgen_export4(n,o,1)}},e.wbg.__wbg_error_85faeb8919b11cc6=function(t,r,n){console.error(u(t),u(r),u(n))},e.wbg.__wbg_getTimezoneOffset_45389e26d6f46823=function(t){return u(t).getTimezoneOffset()},e.wbg.__wbg_get_6b7bd52aca3f9671=function(t,r){let n=u(t)[r>>>0];return f(n)},e.wbg.__wbg_get_af9dab7e9603ea93=function(){return O(function(t,r){let n=Reflect.get(u(t),u(r));return f(n)},arguments)},e.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(t,r){let n=u(t)[u(r)];return f(n)},e.wbg.__wbg_info_ce6bcc489c22f6f0=function(t){console.info(u(t))},e.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(t){let r;try{r=u(t)instanceof ArrayBuffer}catch{r=!1}return r},e.wbg.__wbg_instanceof_Map_084be8da74364158=function(t){let r;try{r=u(t)instanceof Map}catch{r=!1}return r},e.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(t){let r;try{r=u(t)instanceof Uint8Array}catch{r=!1}return r},e.wbg.__wbg_isArray_51fd9e6422c0a395=function(t){return Array.isArray(u(t))},e.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(t){return Number.isSafeInteger(u(t))},e.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return f(Symbol.iterator)},e.wbg.__wbg_length_22ac23eaec9d8053=function(t){return u(t).length},e.wbg.__wbg_length_d45040a40c570362=function(t){return u(t).length},e.wbg.__wbg_new_1ba21ce319a06297=function(){let t=new Object;return f(t)},e.wbg.__wbg_new_25f239778d6112b9=function(){let t=new Array;return f(t)},e.wbg.__wbg_new_6421f6084cc5bc5a=function(t){let r=new Uint8Array(u(t));return f(r)},e.wbg.__wbg_new_8a6f238a6ece86ea=function(){let t=new Error;return f(t)},e.wbg.__wbg_new_b2db8aa2650f793a=function(t){let r=new Date(u(t));return f(r)},e.wbg.__wbg_new_df1173567d5ff028=function(t,r){let n=new Error(I(t,r));return f(n)},e.wbg.__wbg_new_ff12d2b041fb48f1=function(t,r){try{var n={a:t,b:r},o=(_,a)=>{let g=n.a;n.a=0;try{return Oe(g,n.b,_,a)}finally{n.a=g}};let s=new Promise(o);return f(s)}finally{n.a=n.b=0}},e.wbg.__wbg_new_from_slice_db0691b69e9d3891=function(t,r){let n=new Uint32Array(Se(t,r));return f(n)},e.wbg.__wbg_new_from_slice_f9c22b9153b26992=function(t,r){let n=new Uint8Array(wt(t,r));return f(n)},e.wbg.__wbg_new_no_args_cb138f77cf6151ee=function(t,r){let n=new Function(I(t,r));return f(n)},e.wbg.__wbg_new_with_args_df9e7125ffe55248=function(t,r,n,o){let s=new Function(I(t,r),I(n,o));return f(s)},e.wbg.__wbg_next_138a17bbf04e926c=function(t){let r=u(t).next;return f(r)},e.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return O(function(t){let r=u(t).next();return f(r)},arguments)},e.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},e.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(t,r,n){Uint8Array.prototype.set.call(wt(t,r),u(n))},e.wbg.__wbg_proxycontext_new=function(t){let r=C.__wrap(t);return f(r)},e.wbg.__wbg_push_7d9be8f38fc13975=function(t,r){return u(t).push(u(r))},e.wbg.__wbg_queueMicrotask_9b549dfce8865860=function(t){let r=u(t).queueMicrotask;return f(r)},e.wbg.__wbg_queueMicrotask_fca69f5bfad613a5=function(t){queueMicrotask(u(t))},e.wbg.__wbg_resolve_fd5bfbaa4ce36e1e=function(t){let r=Promise.resolve(u(t));return f(r)},e.wbg.__wbg_set_3f1d0b984ed272ed=function(t,r,n){u(t)[l(r)]=l(n)},e.wbg.__wbg_set_781438a03c0c3c81=function(){return O(function(t,r,n){return Reflect.set(u(t),u(r),u(n))},arguments)},e.wbg.__wbg_set_7df433eea03a5c14=function(t,r,n){u(t)[r>>>0]=l(n)},e.wbg.__wbg_stack_0ed75d68575b0f3c=function(t,r){let n=u(r).stack,o=h(n,i.__wbindgen_export,i.__wbindgen_export2),s=b;c().setInt32(t+4,s,!0),c().setInt32(t+0,o,!0)},e.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335=function(){let t=typeof global>"u"?null:global;return v(t)?0:f(t)},e.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1=function(){let t=typeof globalThis>"u"?null:globalThis;return v(t)?0:f(t)},e.wbg.__wbg_static_accessor_SELF_08f5a74c69739274=function(){let t=typeof self>"u"?null:self;return v(t)?0:f(t)},e.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024=function(){let t=typeof window>"u"?null:window;return v(t)?0:f(t)},e.wbg.__wbg_then_4f95312d68691235=function(t,r){let n=u(t).then(u(r));return f(n)},e.wbg.__wbg_typstcompiler_new=function(t){let r=j.__wrap(t);return f(r)},e.wbg.__wbg_typstfontresolver_new=function(t){let r=E.__wrap(t);return f(r)},e.wbg.__wbg_value_57b7b035e117f7ee=function(t){let r=u(t).value;return f(r)},e.wbg.__wbindgen_cast_2241b6af4c4b2941=function(t,r){let n=I(t,r);return f(n)},e.wbg.__wbindgen_cast_3334ea73b4b28ba3=function(t,r){let n=Ae(t,r,i.__wasm_bindgen_func_elem_957,Re);return f(n)},e.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(t){let r=BigInt.asUintN(64,t);return f(r)},e.wbg.__wbindgen_cast_9ae0607507abb057=function(t){return f(t)},e.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(t){return f(t)},e.wbg.__wbindgen_object_clone_ref=function(t){let r=u(t);return f(r)},e.wbg.__wbindgen_object_drop_ref=function(t){l(t)},e}function Nt(e,t){return i=e.exports,qt.__wbindgen_wasm_module=t,M=null,U=null,W=null,i}function je(e){if(i!==void 0)return i;typeof e<"u"&&(Object.getPrototypeOf(e)===Object.prototype?{module:e}=e:console.warn("using deprecated parameters for `initSync()`; pass a single object instead"));let t=Wt();e instanceof WebAssembly.Module||(e=new WebAssembly.Module(e));let r=new WebAssembly.Instance(e,t);return Nt(r,e)}async function qt(e){if(i!==void 0)return i;typeof e<"u"&&(Object.getPrototypeOf(e)===Object.prototype?{module_or_path:e}=e:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof e>"u"&&(e=$t("typst_ts_web_compiler_bg.wasm",ze.url));let t=Wt();(typeof e=="string"||typeof Request=="function"&&e instanceof Request||typeof URL=="function"&&e instanceof URL)&&(e=fetch(e));let{instance:r,module:n}=await Pe(await e,t);return Nt(r,n)}function pt(e){$t=e}var ze,i,Ct,M,U,W,S,N,nt,Me,ft,q,b,Pt,dt,jt,zt,Bt,Lt,Dt,F,C,P,j,V,E,$,Ce,Vt,$t,ot=vt(()=>{ze={};Ct=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>e.dtor(e.a,e.b));M=null;U=null;W=null;S=new Array(128).fill(void 0);S.push(void 0,null,!0,!1);N=S.length;nt=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});nt.decode();Me=2146435072,ft=0;q=new TextEncoder;"encodeInto"in q||(q.encodeInto=function(e,t){let r=q.encode(e);return t.set(r),{read:e.length,written:r.length}});b=0;Pt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_incrserver_free(e>>>0,1)),dt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_proxycontext_free(e>>>0,1)),jt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_typstcompileworld_free(e>>>0,1)),zt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_typstcompiler_free(e>>>0,1)),Bt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_typstcompilerbuilder_free(e>>>0,1)),Lt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_typstfontresolver_free(e>>>0,1)),Dt=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(e=>i.__wbg_typstfontresolverbuilder_free(e>>>0,1)),F=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,Pt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,Pt.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 n=i.__wbindgen_add_to_stack_pointer(-16);i.incrserver_current(n,this.__wbg_ptr);var t=c().getInt32(n+0,!0),r=c().getInt32(n+4,!0);let o;return t!==0&&(o=wt(t,r).slice(),i.__wbindgen_export4(t,r*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);C=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,dt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,dt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_proxycontext_free(t,0)}constructor(t){let r=i.proxycontext_new(f(t));return this.__wbg_ptr=r>>>0,dt.register(this,this.__wbg_ptr,this),this}get context(){let t=i.proxycontext_context(this.__wbg_ptr);return l(t)}untar(t,r){try{let s=i.__wbindgen_add_to_stack_pointer(-16),_=Ut(t,i.__wbindgen_export),a=b;i.proxycontext_untar(s,this.__wbg_ptr,_,a,f(r));var n=c().getInt32(s+0,!0),o=c().getInt32(s+4,!0);if(o)throw l(n)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(C.prototype[Symbol.dispose]=C.prototype.free);P=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,jt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,jt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompileworld_free(t,0)}compile(t,r){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_compile(_,this.__wbg_ptr,t,r);var n=c().getInt32(_+0,!0),o=c().getInt32(_+4,!0),s=c().getInt32(_+8,!0);if(s)throw l(o);return l(n)}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 r=c().getInt32(_+0,!0),n=c().getInt32(_+4,!0),o=c().getInt32(_+8,!0),s=c().getInt32(_+12,!0);if(s)throw l(o);let a;return r!==0&&(a=I(r,n).slice(),i.__wbindgen_export4(r,n*1,1)),a}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_artifact(t,r){try{let _=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompileworld_get_artifact(_,this.__wbg_ptr,t,r);var n=c().getInt32(_+0,!0),o=c().getInt32(_+4,!0),s=c().getInt32(_+8,!0);if(s)throw l(o);return l(n)}finally{i.__wbindgen_add_to_stack_pointer(16)}}query(t,r,n){let o,s;try{let k=i.__wbindgen_add_to_stack_pointer(-16),B=h(r,i.__wbindgen_export,i.__wbindgen_export2),L=b;var _=v(n)?0:h(n,i.__wbindgen_export,i.__wbindgen_export2),a=b;i.typstcompileworld_query(k,this.__wbg_ptr,t,B,L,_,a);var g=c().getInt32(k+0,!0),d=c().getInt32(k+4,!0),w=c().getInt32(k+8,!0),y=c().getInt32(k+12,!0),p=g,m=d;if(y)throw p=0,m=0,l(w);return o=p,s=m,I(p,m)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(o,s,1)}}incr_compile(t,r){try{let _=i.__wbindgen_add_to_stack_pointer(-16);lt(t,F),i.typstcompileworld_incr_compile(_,this.__wbg_ptr,t.__wbg_ptr,r);var n=c().getInt32(_+0,!0),o=c().getInt32(_+4,!0),s=c().getInt32(_+8,!0);if(s)throw l(o);return l(n)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(P.prototype[Symbol.dispose]=P.prototype.free);j=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,zt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,zt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstcompiler_free(t,0)}reset(){try{let n=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompiler_reset(n,this.__wbg_ptr);var t=c().getInt32(n+0,!0),r=c().getInt32(n+4,!0);if(r)throw l(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_fonts(t){try{let o=i.__wbindgen_add_to_stack_pointer(-16);lt(t,E),i.typstcompiler_set_fonts(o,this.__wbg_ptr,t.__wbg_ptr);var r=c().getInt32(o+0,!0),n=c().getInt32(o+4,!0);if(n)throw l(r)}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 r=c().getInt32(o+0,!0),n=c().getInt32(o+4,!0);if(n)throw l(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_source(t,r){let n=h(t,i.__wbindgen_export,i.__wbindgen_export2),o=b,s=h(r,i.__wbindgen_export,i.__wbindgen_export2),_=b;return i.typstcompiler_add_source(this.__wbg_ptr,n,o,s,_)!==0}map_shadow(t,r){let n=h(t,i.__wbindgen_export,i.__wbindgen_export2),o=b,s=Ut(r,i.__wbindgen_export),_=b;return i.typstcompiler_map_shadow(this.__wbg_ptr,n,o,s,_)!==0}unmap_shadow(t){let r=h(t,i.__wbindgen_export,i.__wbindgen_export2),n=b;return i.typstcompiler_unmap_shadow(this.__wbg_ptr,r,n)!==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=c().getInt32(o+0,!0),r=c().getInt32(o+4,!0),n=ke(t,r).slice();return i.__wbindgen_export4(t,r*4,4),n}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_ast(t){let r,n;try{let w=i.__wbindgen_add_to_stack_pointer(-16),y=h(t,i.__wbindgen_export,i.__wbindgen_export2),p=b;i.typstcompiler_get_ast(w,this.__wbg_ptr,y,p);var o=c().getInt32(w+0,!0),s=c().getInt32(w+4,!0),_=c().getInt32(w+8,!0),a=c().getInt32(w+12,!0),g=o,d=s;if(a)throw g=0,d=0,l(_);return r=g,n=d,I(g,d)}finally{i.__wbindgen_add_to_stack_pointer(16),i.__wbindgen_export4(r,n,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=c().getInt32(o+0,!0),r=c().getInt32(o+4,!0),n=c().getInt32(o+8,!0);if(n)throw l(r);return l(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_semantic_tokens(t,r,n){try{let y=i.__wbindgen_add_to_stack_pointer(-16),p=h(t,i.__wbindgen_export,i.__wbindgen_export2),m=b;var o=v(r)?0:h(r,i.__wbindgen_export,i.__wbindgen_export2),s=b,_=v(n)?0:h(n,i.__wbindgen_export,i.__wbindgen_export2),a=b;i.typstcompiler_get_semantic_tokens(y,this.__wbg_ptr,p,m,o,s,_,a);var g=c().getInt32(y+0,!0),d=c().getInt32(y+4,!0),w=c().getInt32(y+8,!0);if(w)throw l(d);return l(g)}finally{i.__wbindgen_add_to_stack_pointer(16)}}snapshot(t,r,n){try{let m=i.__wbindgen_add_to_stack_pointer(-16);var o=v(t)?0:h(t,i.__wbindgen_export,i.__wbindgen_export2),s=b,_=v(r)?0:h(r,i.__wbindgen_export,i.__wbindgen_export2),a=b,g=v(n)?0:rt(n,i.__wbindgen_export),d=b;i.typstcompiler_snapshot(m,this.__wbg_ptr,o,s,_,a,g,d);var w=c().getInt32(m+0,!0),y=c().getInt32(m+4,!0),p=c().getInt32(m+8,!0);if(p)throw l(y);return P.__wrap(w)}finally{i.__wbindgen_add_to_stack_pointer(16)}}get_artifact(t,r){try{let _=i.__wbindgen_add_to_stack_pointer(-16),a=h(t,i.__wbindgen_export,i.__wbindgen_export2),g=b;i.typstcompiler_get_artifact(_,this.__wbg_ptr,a,g,r);var n=c().getInt32(_+0,!0),o=c().getInt32(_+4,!0),s=c().getInt32(_+8,!0);if(s)throw l(o);return l(n)}finally{i.__wbindgen_add_to_stack_pointer(16)}}compile(t,r,n,o){try{let p=i.__wbindgen_add_to_stack_pointer(-16);var s=v(t)?0:h(t,i.__wbindgen_export,i.__wbindgen_export2),_=b,a=v(r)?0:rt(r,i.__wbindgen_export),g=b;let m=h(n,i.__wbindgen_export,i.__wbindgen_export2),k=b;i.typstcompiler_compile(p,this.__wbg_ptr,s,_,a,g,m,k,o);var d=c().getInt32(p+0,!0),w=c().getInt32(p+4,!0),y=c().getInt32(p+8,!0);if(y)throw l(w);return l(d)}finally{i.__wbindgen_add_to_stack_pointer(16)}}query(t,r,n,o){let s,_;try{let D=i.__wbindgen_add_to_stack_pointer(-16),Qt=h(t,i.__wbindgen_export,i.__wbindgen_export2),Zt=b;var a=v(r)?0:rt(r,i.__wbindgen_export),g=b;let te=h(n,i.__wbindgen_export,i.__wbindgen_export2),ee=b;var d=v(o)?0:h(o,i.__wbindgen_export,i.__wbindgen_export2),w=b;i.typstcompiler_query(D,this.__wbg_ptr,Qt,Zt,a,g,te,ee,d,w);var y=c().getInt32(D+0,!0),p=c().getInt32(D+4,!0),m=c().getInt32(D+8,!0),k=c().getInt32(D+12,!0),B=y,L=p;if(k)throw B=0,L=0,l(m);return s=B,_=L,I(B,L)}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=c().getInt32(o+0,!0),r=c().getInt32(o+4,!0),n=c().getInt32(o+8,!0);if(n)throw l(r);return F.__wrap(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}incr_compile(t,r,n,o){try{let w=i.__wbindgen_add_to_stack_pointer(-16),y=h(t,i.__wbindgen_export,i.__wbindgen_export2),p=b;var s=v(r)?0:rt(r,i.__wbindgen_export),_=b;lt(n,F),i.typstcompiler_incr_compile(w,this.__wbg_ptr,y,p,s,_,n.__wbg_ptr,o);var a=c().getInt32(w+0,!0),g=c().getInt32(w+4,!0),d=c().getInt32(w+8,!0);if(d)throw l(g);return l(a)}finally{i.__wbindgen_add_to_stack_pointer(16)}}};Symbol.dispose&&(j.prototype[Symbol.dispose]=j.prototype.free);V=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,Bt.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=c().getInt32(o+0,!0),r=c().getInt32(o+4,!0),n=c().getInt32(o+8,!0);if(n)throw l(r);return this.__wbg_ptr=t>>>0,Bt.register(this,this.__wbg_ptr,this),this}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_dummy_access_model(){try{let n=i.__wbindgen_add_to_stack_pointer(-16);i.typstcompilerbuilder_set_dummy_access_model(n,this.__wbg_ptr);var t=c().getInt32(n+0,!0),r=c().getInt32(n+4,!0);if(r)throw l(t)}finally{i.__wbindgen_add_to_stack_pointer(16)}}set_access_model(t,r,n,o,s){let _=i.typstcompilerbuilder_set_access_model(this.__wbg_ptr,f(t),f(r),f(n),f(o),f(s));return l(_)}set_package_registry(t,r){let n=i.typstcompilerbuilder_set_package_registry(this.__wbg_ptr,f(t),f(r));return l(n)}add_raw_font(t){let r=i.typstcompilerbuilder_add_raw_font(this.__wbg_ptr,f(t));return l(r)}add_lazy_font(t,r){let n=i.typstcompilerbuilder_add_lazy_font(this.__wbg_ptr,f(t),f(r));return l(n)}build(){let t=this.__destroy_into_raw(),r=i.typstcompilerbuilder_build(t);return l(r)}};Symbol.dispose&&(V.prototype[Symbol.dispose]=V.prototype.free);E=class e{static __wrap(t){t=t>>>0;let r=Object.create(e.prototype);return r.__wbg_ptr=t,Lt.register(r,r.__wbg_ptr,r),r}__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,Lt.unregister(this),t}free(){let t=this.__destroy_into_raw();i.__wbg_typstfontresolver_free(t,0)}};Symbol.dispose&&(E.prototype[Symbol.dispose]=E.prototype.free);$=class{__destroy_into_raw(){let t=this.__wbg_ptr;return this.__wbg_ptr=0,Dt.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=c().getInt32(o+0,!0),r=c().getInt32(o+4,!0),n=c().getInt32(o+8,!0);if(n)throw l(r);return this.__wbg_ptr=t>>>0,Dt.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 r=c().getInt32(s+0,!0),n=c().getInt32(s+4,!0),o=c().getInt32(s+8,!0);if(o)throw l(n);return l(r)}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 r=c().getInt32(o+0,!0),n=c().getInt32(o+4,!0);if(n)throw l(r)}finally{i.__wbindgen_add_to_stack_pointer(16)}}add_lazy_font(t,r){try{let s=i.__wbindgen_add_to_stack_pointer(-16);i.typstfontresolverbuilder_add_lazy_font(s,this.__wbg_ptr,f(t),f(r));var n=c().getInt32(s+0,!0),o=c().getInt32(s+4,!0);if(o)throw l(n)}finally{i.__wbindgen_add_to_stack_pointer(16)}}build(){let t=this.__destroy_into_raw(),r=i.typstfontresolverbuilder_build(t);return l(r)}};Symbol.dispose&&($.prototype[Symbol.dispose]=$.prototype.free);Ce=new Set(["basic","cors","default"]);Vt=qt,$t=async function(e,t){throw new Error("Cannot import wasm module without importer: "+e+" "+t)}});var Jt={};ne(Jt,{IncrServer:()=>F,ProxyContext:()=>C,TypstCompileWorld:()=>P,TypstCompiler:()=>j,TypstCompilerBuilder:()=>V,TypstFontResolver:()=>E,TypstFontResolverBuilder:()=>$,default:()=>Be,get_font_info:()=>Te,initSync:()=>je,setImportWasmModule:()=>pt});var Be,Le,De,Ht=vt(()=>{ot();ot();ot();Be=Vt,Le=async function(e,t){let r=new Function("m","return import(m)"),{readFileSync:n}=await r("fs"),o=new URL(e,t);return await n(o).buffer},De=typeof process<"u"&&process.versions!=null&&process.versions.node!=null;De&&pt(Le)});var It=Symbol("Comlink.proxy"),oe=Symbol("Comlink.endpoint"),ie=Symbol("Comlink.releaseProxy"),at=Symbol("Comlink.finalizer"),G=Symbol("Comlink.thrown"),kt=e=>typeof e=="object"&&e!==null||typeof e=="function",se={canHandle:e=>kt(e)&&e[It],serialize(e){let{port1:t,port2:r}=new MessageChannel;return Q(e,t),[r,[r]]},deserialize(e){return e.start(),ue(e)}},_e={canHandle:e=>kt(e)&&G in e,serialize({value:e}){let t;return e instanceof Error?t={isError:!0,value:{message:e.message,name:e.name,stack:e.stack}}:t={isError:!1,value:e},[t,[]]},deserialize(e){throw e.isError?Object.assign(new Error(e.value.message),e.value):e.value}},St=new Map([["proxy",se],["throw",_e]]);function ae(e,t){for(let r of e)if(t===r||r==="*"||r instanceof RegExp&&r.test(t))return!0;return!1}function Q(e,t=globalThis,r=["*"]){t.addEventListener("message",function n(o){if(!o||!o.data)return;if(!ae(r,o.origin)){console.warn(`Invalid origin \'${o.origin}\' for comlink proxy`);return}let{id:s,type:_,path:a}=Object.assign({path:[]},o.data),g=(o.data.argumentList||[]).map(A),d;try{let w=a.slice(0,-1).reduce((p,m)=>p[m],e),y=a.reduce((p,m)=>p[m],e);switch(_){case"GET":d=y;break;case"SET":w[a.slice(-1)[0]]=A(o.data.value),d=!0;break;case"APPLY":d=y.apply(w,g);break;case"CONSTRUCT":{let p=new y(...g);d=ge(p)}break;case"ENDPOINT":{let{port1:p,port2:m}=new MessageChannel;Q(e,m),d=Z(p,[p])}break;case"RELEASE":d=void 0;break;default:return}}catch(w){d={value:w,[G]:0}}Promise.resolve(d).catch(w=>({value:w,[G]:0})).then(w=>{let[y,p]=K(w);t.postMessage(Object.assign(Object.assign({},y),{id:s}),p),_==="RELEASE"&&(t.removeEventListener("message",n),Ft(t),at in e&&typeof e[at]=="function"&&e[at]())}).catch(w=>{let[y,p]=K({value:new TypeError("Unserializable return value"),[G]:0});t.postMessage(Object.assign(Object.assign({},y),{id:s}),p)})}),t.start&&t.start()}function ce(e){return e.constructor.name==="MessagePort"}function Ft(e){ce(e)&&e.close()}function ue(e,t){let r=new Map;return e.addEventListener("message",function(o){let{data:s}=o;if(!s||!s.id)return;let _=r.get(s.id);if(_)try{_(s)}finally{r.delete(s.id)}}),ct(e,r,[],t)}function H(e){if(e)throw new Error("Proxy has been released and is not useable")}function At(e){return R(e,new Map,{type:"RELEASE"}).then(()=>{Ft(e)})}var X=new WeakMap,Y="FinalizationRegistry"in globalThis&&new FinalizationRegistry(e=>{let t=(X.get(e)||0)-1;X.set(e,t),t===0&&At(e)});function fe(e,t){let r=(X.get(t)||0)+1;X.set(t,r),Y&&Y.register(e,t,e)}function de(e){Y&&Y.unregister(e)}function ct(e,t,r=[],n=function(){}){let o=!1,s=new Proxy(n,{get(_,a){if(H(o),a===ie)return()=>{de(s),At(e),t.clear(),o=!0};if(a==="then"){if(r.length===0)return{then:()=>s};let g=R(e,t,{type:"GET",path:r.map(d=>d.toString())}).then(A);return g.then.bind(g)}return ct(e,t,[...r,a])},set(_,a,g){H(o);let[d,w]=K(g);return R(e,t,{type:"SET",path:[...r,a].map(y=>y.toString()),value:d},w).then(A)},apply(_,a,g){H(o);let d=r[r.length-1];if(d===oe)return R(e,t,{type:"ENDPOINT"}).then(A);if(d==="bind")return ct(e,t,r.slice(0,-1));let[w,y]=xt(g);return R(e,t,{type:"APPLY",path:r.map(p=>p.toString()),argumentList:w},y).then(A)},construct(_,a){H(o);let[g,d]=xt(a);return R(e,t,{type:"CONSTRUCT",path:r.map(w=>w.toString()),argumentList:g},d).then(A)}});return fe(s,e),s}function le(e){return Array.prototype.concat.apply([],e)}function xt(e){let t=e.map(K);return[t.map(r=>r[0]),le(t.map(r=>r[1]))]}var Mt=new WeakMap;function Z(e,t){return Mt.set(e,t),e}function ge(e){return Object.assign(e,{[It]:!0})}function K(e){for(let[t,r]of St)if(r.canHandle(e)){let[n,o]=r.serialize(e);return[{type:"HANDLER",name:t,value:n},o]}return[{type:"RAW",value:e},Mt.get(e)||[]]}function A(e){switch(e.type){case"HANDLER":return St.get(e.name).deserialize(e.value);case"RAW":return e.value}}function R(e,t,r,n){return new Promise(o=>{let s=we();t.set(s,o),e.start&&e.start(),e.postMessage(Object.assign({id:s},r),n)})}function we(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var ut=class{loadedFonts=new Set;fetcher=fetch;setFetcher(t){this.fetcher=t}async loadFonts(t,r){let n=new Function("m","return import(m)"),o=this.fetcher||=await(async function(){let{fetchBuilder:a,FileSystemCache:g}=await n("node-fetch-cache"),d=new g({cacheDirectory:".cache/typst/fonts"}),w=a.withCache(d);return function(y,p){let m=setTimeout(()=>{console.warn("font fetching is stucking:",y)},15e3);return w(y,p).finally(()=>{clearTimeout(m)})}})(),s=r.filter(a=>a instanceof Uint8Array||typeof a=="object"&&"info"in a?!0:this.loadedFonts.has(a)?!1:(this.loadedFonts.add(a),!0)),_=await Promise.all(s.map(async a=>{if(a instanceof Uint8Array){await t.add_raw_font(a);return}if(typeof a=="object"&&"info"in a){await t.add_lazy_font(a,"blob"in a?a.blob:be(a));return}return new Uint8Array(await(await o(a)).arrayBuffer())}));for(let a of _)a&&await t.add_raw_font(a)}async build(t,r,n){let o={ref:this,builder:r,hooks:n};for(let s of t?.beforeBuild??[])await s(void 0,o);return n.latelyBuild&&n.latelyBuild(o),await r.build()}};async function Et(e,t,r,n){return await t.init(e?.getModule?.()),await new ut().build(e,new r,n)}function be(e){return()=>{let t=new XMLHttpRequest;return t.overrideMimeType("text/plain; charset=x-user-defined"),t.open("GET",e.url,!1),t.send(null),t.status===200&&(t.response instanceof String||typeof t.response=="string")?Uint8Array.from(t.response,r=>r.charCodeAt(0)):new Uint8Array}}var x=Symbol.for("reflexo-obj");var Rt;(function(e){e[e.PIXEL_PER_PT=3]="PIXEL_PER_PT"})(Rt||(Rt={}));var ye=["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"],me=["InriaSerif-Bold.ttf","InriaSerif-BoldItalic.ttf","InriaSerif-Italic.ttf","InriaSerif-Regular.ttf","Roboto-Regular.ttf","NotoSerifCJKsc-Regular.otf"],he=["TwitterColorEmoji.ttf","NotoColorEmoji-Regular-COLR.subset.ttf"];function ve(e){let t=[];if(e&&e?.assets!==!1&&e?.assets?.length&&e?.assets?.length>0){let r={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/"},n=e.assetUrlPrefix??r;typeof n=="string"?n={_:n}:n={...r,...n};for(let s of Object.keys(n)){let _=n[s];_[_.length-1]!=="/"&&(n[s]=_+"/")}let o=(s,_)=>_.map(a=>(n[s]||n._)+a);for(let s of e.assets)switch(s){case"text":t.push(...o(s,ye));break;case"cjk":t.push(...o(s,me));break;case"emoji":t.push(...o(s,he));break}}return t}function tt(e,t){let r=ve(t),n=async(o,{ref:s,builder:_})=>{t?.fetcher&&s.setFetcher(t.fetcher),await s.loadFonts(_,[...e,...r])};return n._preloadRemoteFontOptions=t,n._kind="fontLoader",n}function Ot(e){return async(t,{builder:r})=>new Promise(n=>{r.set_package_registry(e,function(o){return e.resolve(o,this)}),n()})}function Tt(e){return async(t,r)=>{if(r.alreadySetAccessModel)throw new Error(`already set some assess model before: ${r.alreadySetAccessModel.constructor?.name}(${r.alreadySetAccessModel})`);return r.alreadySetAccessModel=e,new Promise(n=>{r.builder.set_access_model(e,o=>{let s=e.getMTime(o);return s?s.getTime():0},o=>e.isFile(o)||!1,o=>e.getRealPath(o)||o,o=>e.readAll(o)),n()})}}var xe=e=>{let t=!1,r;return()=>t?r:(t=!0,r=e())},et=class{wasmBin;initOnce;constructor(t){if(typeof t!="function")throw new Error("initFn is not a function");this.initOnce=xe(async()=>{await t(this.wasmBin)})}async init(t){this.wasmBin=t,await this.initOnce()}};var J;(function(e){e[e.vector=0]="vector",e[e.pdf=1]="pdf",e[e._dummy=2]="_dummy"})(J||(J={}));var bt=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)}},Gt;Gt||(Gt={});var yt=class{[x];constructor(t){this[x]=t}compile(t){return this[x].compile(0,z(t?.diagnostics))}compileHtml(t){return this[x].compile(1,z(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,z(t?.diagnostics))||{}}pdf(t){return this[x].get_artifact(1,z(t?.diagnostics))||{}}},Ue=e=>new et(async t=>await e.default(t));function mt(){return new it}var it=class e{compiler;compilerJs;static defaultAssets=["text"];constructor(){}async init(t){this.compilerJs=await(t?.getWrapper?.()||Promise.resolve().then(()=>(Ht(),Jt)));let r=this.compilerJs.TypstCompilerBuilder,n={...t||{}},o=n.beforeBuild??=[],s=o.some(d=>d._preloadRemoteFontOptions!==void 0),_=o.some(d=>d._preloadRemoteFontOptions?.assets!==void 0),a=o.some(d=>d._preloadRemoteFontOptions?.assets===!1);if((!s||!_&&!a)&&o.push(tt([],{assets:e.defaultAssets})),!o.some(d=>d._kind==="fontLoader"))throw new Error("TypstCompiler: no font loader found, please use font loaders, e.g. loadFonts or preloadSystemFonts");this.compiler=await Et(t,Ue(this.compilerJs),r,{})}setFonts(t){this.compiler.set_fonts(t)}compile(t){return new Promise(r=>{let n=this.compiler.snapshot(t.root,t.mainFilePath,Xt(t.inputs));if("incrementalServer"in t){r(n.incr_compile(t.incrementalServer[x],z(t.diagnostics)));return}r(n.get_artifact(t.format||J.vector,z(t.diagnostics)))})}async runWithWorld(t,r){let n=this.compiler.snapshot(t.root,t.mainFilePath,Xt(t.inputs)),o=await r(new yt(n));return n.free(),o}query(t){return this.runWithWorld(t,async r=>JSON.parse(await r.query(t)))}getSemanticTokenLegend(){return new Promise(t=>{t(this.compiler.get_semantic_token_legend())})}getSemanticTokens(t){return new Promise(r=>{this.compiler.reset(),r(this.compiler.get_semantic_tokens(t.offsetEncoding||"utf-16",t.mainFilePath,t.resultId))})}async withIncrementalServer(t){let r=new bt(this.compiler.create_incr_server());try{return await t(r)}finally{r[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,r){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,r)}mapShadow(t,r){this.compiler.map_shadow(t,r)}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")}};mt._impl=it;function Xt(e){return e?Object.entries(e):void 0}function z(e){switch(e){case"none":return 1;case"unix":return 2;default:return 3}}var st=class{mTimes=new Map;mData=new Map;constructor(){}reset(){this.mTimes.clear(),this.mData.clear()}insertFile(t,r,n){this.mTimes.set(t,n),this.mData.set(t,r)}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 _t=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 r=new XMLHttpRequest;if(r.overrideMimeType("text/plain; charset=x-user-defined"),r.open("GET",this.resolvePath(t),!1),r.send(null),r.status===200&&(r.response instanceof String||typeof r.response=="string"))return Uint8Array.from(r.response,n=>n.charCodeAt(0))}resolve(t,r){if(t.namespace!=="preview")return;let n=this.resolvePath(t);if(this.cache.has(n))return this.cache.get(n)();let o=this.pullPackageData(t);if(!o)return;let s=`/@memory/fetch/packages/${t.namespace}/${t.name}/${t.version}`,_=[];r.untar(o,(g,d,w)=>{_.push([s+"/"+g,d,new Date(w)])});let a=()=>{for(let[g,d,w]of _)this.am.insertFile(g,d,w);return s};return this.cache.set(n,a),a()}};function Yt(e){return[...e].sort((t,r)=>t.path.localeCompare(r.path)||t.range.startLine-r.range.startLine||t.range.startCol-r.range.startCol||t.range.endLine-r.range.endLine||t.range.endCol-r.range.endCol||t.message.localeCompare(r.message))}var Kt="/main.typ",ht=class{compiler=null;accessModel=new st;packageRegistry;constructor(){this.packageRegistry=new _t(this.accessModel)}async init(t,r,n){this.compiler=mt(),await this.compiler.init({getModule:()=>t,beforeBuild:[tt(r),...n?[Tt(this.accessModel),Ot(this.packageRegistry)]:[]]})}async compile(t,r){if(!this.compiler)throw new Error("Compiler not initialized");if(t)for(let[_,a]of Object.entries(t))this.compiler.addSource(_,a);let n=await this.compiler.compile({mainFilePath:r??Kt,diagnostics:"full"}),o=Yt((n.diagnostics??[]).flatMap(_=>{let a=_.range.match(/(\\d+):(\\d+)-(\\d+):(\\d+)/);return a?[{..._,severity:_.severity,range:{startLine:+a[1],startCol:+a[2],endLine:+a[3],endCol:+a[4]}}]:(console.warn(`[typst-web-service] Skipping diagnostic with unrecognized range format: ${JSON.stringify(_.range)}`),[])})),s=n.result??void 0;return s?Z({diagnostics:o,vector:s},[s.buffer]):{diagnostics:o}}async compilePdf(t,r){if(!this.compiler)throw new Error("Compiler not initialized");if(t)for(let[o,s]of Object.entries(t))this.compiler.addSource(o,s);let n=await this.compiler.compile({mainFilePath:r??Kt,format:J.pdf,diagnostics:"none"});if(!n.result)throw new Error("Compilation produced no output");return Z(n.result,[n.result.buffer])}mapShadow(t,r){if(!this.compiler)throw new Error("Compiler not initialized");this.compiler.mapShadow(t,r)}mapShadowMany(t){if(!this.compiler)throw new Error("Compiler not initialized");for(let[r,n]of Object.entries(t))this.compiler.mapShadow(r,n)}unmapShadow(t){if(!this.compiler)throw new Error("Compiler not initialized");this.compiler.unmapShadow(t)}resetShadow(){if(!this.compiler)throw new Error("Compiler not initialized");this.compiler.resetShadow()}destroy(){this.compiler=null}};Q(new ht);})();\n/*! Bundled license information:\n\ncomlink/dist/esm/comlink.mjs:\n (**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n *)\n*/\n');
15
18
  }
16
19
  function createAnalyzerWorker() {
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');
18
- }
19
- function workerRpc(worker, request, timeoutMs = 3e4, transfer) {
20
- return new Promise((resolve, reject) => {
21
- const handler = (e) => {
22
- if (e.data.id !== request.id) return;
23
- clearTimeout(timer);
24
- worker.removeEventListener("message", handler);
25
- resolve(e.data);
26
- };
27
- const timer = setTimeout(() => {
28
- worker.removeEventListener("message", handler);
29
- reject(new Error(`worker timed out after ${timeoutMs}ms`));
30
- }, timeoutMs);
31
- worker.addEventListener("message", handler);
32
- worker.postMessage(request, transfer ?? []);
33
- });
34
- }
35
- function destroyWorker(worker, request, timeoutMs, label) {
36
- workerRpc(worker, request, timeoutMs).catch((err) => console.error(`${label} destroy failed:`, err)).finally(() => worker.terminate());
37
- }
38
-
39
- // src/uri.ts
40
- function normalizeUntitledUri(uri) {
41
- if (!uri.startsWith("untitled:")) return uri;
42
- return `untitled:${uri.slice("untitled:".length).replace(/^\/+/, "")}`;
43
- }
44
- function normalizePath(path) {
45
- return path.startsWith("/") ? path : `/${path}`;
46
- }
47
- function normalizeRoot(rootPath) {
48
- const root = normalizePath(rootPath);
49
- return root === "/" ? "" : root.replace(/\/+$/, "");
20
+ return createBlobWorker('"use strict";(()=>{var $=Symbol("Comlink.proxy"),se=Symbol("Comlink.endpoint"),_e=Symbol("Comlink.releaseProxy"),W=Symbol("Comlink.finalizer"),F=Symbol("Comlink.thrown"),G=t=>typeof t=="object"&&t!==null||typeof t=="function",ce={canHandle:t=>G(t)&&t[$],serialize(t){let{port1:e,port2:n}=new MessageChannel;return j(t,e),[n,[n]]},deserialize(t){return t.start(),ge(t)}},ae={canHandle:t=>G(t)&&F in t,serialize({value:t}){let e;return t instanceof Error?e={isError:!0,value:{message:t.message,name:t.name,stack:t.stack}}:e={isError:!1,value:t},[e,[]]},deserialize(t){throw t.isError?Object.assign(new Error(t.value.message),t.value):t.value}},Y=new Map([["proxy",ce],["throw",ae]]);function ue(t,e){for(let n of t)if(e===n||n==="*"||n instanceof RegExp&&n.test(e))return!0;return!1}function j(t,e=globalThis,n=["*"]){e.addEventListener("message",function r(i){if(!i||!i.data)return;if(!ue(n,i.origin)){console.warn(`Invalid origin \'${i.origin}\' for comlink proxy`);return}let{id:s,type:_,path:c}=Object.assign({path:[]},i.data),a=(i.data.argumentList||[]).map(p),u;try{let f=c.slice(0,-1).reduce((g,A)=>g[A],t),d=c.reduce((g,A)=>g[A],t);switch(_){case"GET":u=d;break;case"SET":f[c.slice(-1)[0]]=p(i.data.value),u=!0;break;case"APPLY":u=d.apply(f,a);break;case"CONSTRUCT":{let g=new d(...a);u=ye(g)}break;case"ENDPOINT":{let{port1:g,port2:A}=new MessageChannel;j(t,A),u=we(g,[g])}break;case"RELEASE":u=void 0;break;default:return}}catch(f){u={value:f,[F]:0}}Promise.resolve(u).catch(f=>({value:f,[F]:0})).then(f=>{let[d,g]=I(f);e.postMessage(Object.assign(Object.assign({},d),{id:s}),g),_==="RELEASE"&&(e.removeEventListener("message",r),X(e),W in t&&typeof t[W]=="function"&&t[W]())}).catch(f=>{let[d,g]=I({value:new TypeError("Unserializable return value"),[F]:0});e.postMessage(Object.assign(Object.assign({},d),{id:s}),g)})}),e.start&&e.start()}function fe(t){return t.constructor.name==="MessagePort"}function X(t){fe(t)&&t.close()}function ge(t,e){let n=new Map;return t.addEventListener("message",function(i){let{data:s}=i;if(!s||!s.id)return;let _=n.get(s.id);if(_)try{_(s)}finally{n.delete(s.id)}}),N(t,n,[],e)}function D(t){if(t)throw new Error("Proxy has been released and is not useable")}function J(t){return m(t,new Map,{type:"RELEASE"}).then(()=>{X(t)})}var C=new WeakMap,P="FinalizationRegistry"in globalThis&&new FinalizationRegistry(t=>{let e=(C.get(t)||0)-1;C.set(t,e),e===0&&J(t)});function be(t,e){let n=(C.get(e)||0)+1;C.set(e,n),P&&P.register(t,e,t)}function le(t){P&&P.unregister(t)}function N(t,e,n=[],r=function(){}){let i=!1,s=new Proxy(r,{get(_,c){if(D(i),c===_e)return()=>{le(s),J(t),e.clear(),i=!0};if(c==="then"){if(n.length===0)return{then:()=>s};let a=m(t,e,{type:"GET",path:n.map(u=>u.toString())}).then(p);return a.then.bind(a)}return N(t,e,[...n,c])},set(_,c,a){D(i);let[u,f]=I(a);return m(t,e,{type:"SET",path:[...n,c].map(d=>d.toString()),value:u},f).then(p)},apply(_,c,a){D(i);let u=n[n.length-1];if(u===se)return m(t,e,{type:"ENDPOINT"}).then(p);if(u==="bind")return N(t,e,n.slice(0,-1));let[f,d]=H(a);return m(t,e,{type:"APPLY",path:n.map(g=>g.toString()),argumentList:f},d).then(p)},construct(_,c){D(i);let[a,u]=H(c);return m(t,e,{type:"CONSTRUCT",path:n.map(f=>f.toString()),argumentList:a},u).then(p)}});return be(s,t),s}function de(t){return Array.prototype.concat.apply([],t)}function H(t){let e=t.map(I);return[e.map(n=>n[0]),de(e.map(n=>n[1]))]}var K=new WeakMap;function we(t,e){return K.set(t,e),t}function ye(t){return Object.assign(t,{[$]:!0})}function I(t){for(let[e,n]of Y)if(n.canHandle(t)){let[r,i]=n.serialize(t);return[{type:"HANDLER",name:e,value:r},i]}return[{type:"RAW",value:t},K.get(t)||[]]}function p(t){switch(t.type){case"HANDLER":return Y.get(t.name).deserialize(t.value);case"RAW":return t.value}}function m(t,e,n,r){return new Promise(i=>{let s=pe();e.set(s,i),t.start&&t.start(),t.postMessage(Object.assign({id:s},n),r)})}function pe(){return new Array(4).fill(0).map(()=>Math.floor(Math.random()*Number.MAX_SAFE_INTEGER).toString(16)).join("-")}var Te={},o;function O(t){let e=o.__externref_table_alloc();return o.__wbindgen_externrefs.set(e,t),e}var Q=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>t.dtor(t.a,t.b));function B(t){let e=typeof t;if(e=="number"||e=="boolean"||t==null)return`${t}`;if(e=="string")return`"${t}"`;if(e=="symbol"){let i=t.description;return i==null?"Symbol":`Symbol(${i})`}if(e=="function"){let i=t.name;return typeof i=="string"&&i.length>0?`Function(${i})`:"Function"}if(Array.isArray(t)){let i=t.length,s="[";i>0&&(s+=B(t[0]));for(let _=1;_<i;_++)s+=", "+B(t[_]);return s+="]",s}let n=/\\[object ([^\\]]+)\\]/.exec(toString.call(t)),r;if(n&&n.length>1)r=n[1];else return toString.call(t);if(r=="Object")try{return"Object("+JSON.stringify(t)+")"}catch{return"Object"}return t instanceof Error?`${t.name}: ${t.message}\n${t.stack}`:r}function Z(t,e){return t=t>>>0,E().subarray(t/1,t/1+e)}var h=null;function l(){return(h===null||h.buffer.detached===!0||h.buffer.detached===void 0&&h.buffer!==o.memory.buffer)&&(h=new DataView(o.memory.buffer)),h}function b(t,e){return t=t>>>0,Ee(t,e)}var M=null;function E(){return(M===null||M.byteLength===0)&&(M=new Uint8Array(o.memory.buffer)),M}function v(t,e){try{return t.apply(this,e)}catch(n){let r=O(n);o.__wbindgen_exn_store(r)}}function w(t){return t==null}function me(t,e,n,r){let i={a:t,b:e,cnt:1,dtor:n},s=(..._)=>{i.cnt++;let c=i.a;i.a=0;try{return r(c,i.b,..._)}finally{i.a=c,s._wbg_cb_unref()}};return s._wbg_cb_unref=()=>{--i.cnt===0&&(i.dtor(i.a,i.b),i.a=0,Q.unregister(i))},Q.register(s,i,i),s}function ve(t,e){let n=e(t.length*1,1)>>>0;return E().set(t,n/1),y=t.length,n}function x(t,e,n){if(n===void 0){let c=R.encode(t),a=e(c.length,1)>>>0;return E().subarray(a,a+c.length).set(c),y=c.length,a}let r=t.length,i=e(r,1)>>>0,s=E(),_=0;for(;_<r;_++){let c=t.charCodeAt(_);if(c>127)break;s[i+_]=c}if(_!==r){_!==0&&(t=t.slice(_)),i=n(i,r,r=_+t.length*3,1)>>>0;let c=E().subarray(i+_,i+r),a=R.encodeInto(t,c);_+=a.written,i=n(i,r,_,1)>>>0}return y=_,i}function re(t){let e=o.__wbindgen_externrefs.get(t);return o.__externref_table_dealloc(t),e}var z=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0});z.decode();var xe=2146435072,U=0;function Ee(t,e){return U+=e,U>=xe&&(z=new TextDecoder("utf-8",{ignoreBOM:!0,fatal:!0}),z.decode(),U=e),z.decode(E().subarray(t,t+e))}var R=new TextEncoder;"encodeInto"in R||(R.encodeInto=function(t,e){let n=R.encode(t);return e.set(n),{read:t.length,written:n.length}});var y=0;function Se(t,e,n){o.wasm_bindgen__convert__closures_____invoke__h4b569589ab16bc8b(t,e,n)}function Ae(t,e,n,r){o.wasm_bindgen__convert__closures_____invoke__h298f91ca76697d7d(t,e,n,r)}var ee=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>o.__wbg_individuallanguages_free(t>>>0,1)),te=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>o.__wbg_languagecode_free(t>>>0,1)),q=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>o.__wbg_proxycontext_free(t>>>0,1)),ne=typeof FinalizationRegistry>"u"?{register:()=>{},unregister:()=>{}}:new FinalizationRegistry(t=>o.__wbg_tinymistlanguageserver_free(t>>>0,1)),k=class t{static __wrap(e){e=e>>>0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,ee.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ee.unregister(this),e}free(){let e=this.__destroy_into_raw();o.__wbg_individuallanguages_free(e,0)}get name(){let e,n;try{let r=o.individuallanguages_name(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}get code(){let e,n;try{let r=o.individuallanguages_code(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}};Symbol.dispose&&(k.prototype[Symbol.dispose]=k.prototype.free);var L=class t{static __wrap(e){e=e>>>0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,te.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,te.unregister(this),e}free(){let e=this.__destroy_into_raw();o.__wbg_languagecode_free(e,0)}get name(){let e,n;try{let r=o.languagecode_name(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}get code(){let e,n;try{let r=o.languagecode_code(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}get code_2t(){let e,n;try{let r=o.languagecode_code_2t(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}get code_2b(){let e,n;try{let r=o.languagecode_code_2b(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}get code_3(){let e,n;try{let r=o.languagecode_code_3(this.__wbg_ptr);return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}get individual_languages(){return o.languagecode_individual_languages(this.__wbg_ptr)}};Symbol.dispose&&(L.prototype[Symbol.dispose]=L.prototype.free);var T=class t{static __wrap(e){e=e>>>0;let n=Object.create(t.prototype);return n.__wbg_ptr=e,q.register(n,n.__wbg_ptr,n),n}__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,q.unregister(this),e}free(){let e=this.__destroy_into_raw();o.__wbg_proxycontext_free(e,0)}constructor(e){let n=o.proxycontext_new(e);return this.__wbg_ptr=n>>>0,q.register(this,this.__wbg_ptr,this),this}get context(){return o.proxycontext_context(this.__wbg_ptr)}untar(e,n){let r=ve(e,o.__wbindgen_malloc),i=y,s=o.proxycontext_untar(this.__wbg_ptr,r,i,n);if(s[1])throw re(s[0])}};Symbol.dispose&&(T.prototype[Symbol.dispose]=T.prototype.free);var S=class{__destroy_into_raw(){let e=this.__wbg_ptr;return this.__wbg_ptr=0,ne.unregister(this),e}free(){let e=this.__destroy_into_raw();o.__wbg_tinymistlanguageserver_free(e,0)}constructor(e){let n=o.tinymistlanguageserver_new(e);if(n[2])throw re(n[1]);return this.__wbg_ptr=n[0]>>>0,ne.register(this,this.__wbg_ptr,this),this}on_event(e){o.tinymistlanguageserver_on_event(this.__wbg_ptr,e)}on_request(e,n){let r=x(e,o.__wbindgen_malloc,o.__wbindgen_realloc),i=y;return o.tinymistlanguageserver_on_request(this.__wbg_ptr,r,i,n)}on_notification(e,n){let r=x(e,o.__wbindgen_malloc,o.__wbindgen_realloc),i=y;o.tinymistlanguageserver_on_notification(this.__wbg_ptr,r,i,n)}on_response(e){o.tinymistlanguageserver_on_response(this.__wbg_ptr,e)}static version(){let e,n;try{let r=o.tinymistlanguageserver_version();return e=r[0],n=r[1],b(r[0],r[1])}finally{o.__wbindgen_free(e,n,1)}}};Symbol.dispose&&(S.prototype[Symbol.dispose]=S.prototype.free);var Oe=new Set(["basic","cors","default"]);async function Me(t,e){if(typeof Response=="function"&&t instanceof Response){if(typeof WebAssembly.instantiateStreaming=="function")try{return await WebAssembly.instantiateStreaming(t,e)}catch(r){if(t.ok&&Oe.has(t.type)&&t.headers.get("Content-Type")!=="application/wasm")console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n",r);else throw r}let n=await t.arrayBuffer();return await WebAssembly.instantiate(n,e)}else{let n=await WebAssembly.instantiate(t,e);return n instanceof WebAssembly.Instance?{instance:n,module:t}:n}}function Re(){let t={};return t.wbg={},t.wbg.__wbg_Error_52673b7de5a0ca89=function(e,n){return Error(b(e,n))},t.wbg.__wbg_Number_2d1dcfcf4ec51736=function(e){return Number(e)},t.wbg.__wbg_String_8f0eb39a4a4c2f66=function(e,n){let r=String(n),i=x(r,o.__wbindgen_malloc,o.__wbindgen_realloc),s=y;l().setInt32(e+4,s,!0),l().setInt32(e+0,i,!0)},t.wbg.__wbg___wbindgen_bigint_get_as_i64_6e32f5e6aff02e1d=function(e,n){let r=n,i=typeof r=="bigint"?r:void 0;l().setBigInt64(e+8,w(i)?BigInt(0):i,!0),l().setInt32(e+0,!w(i),!0)},t.wbg.__wbg___wbindgen_boolean_get_dea25b33882b895b=function(e){let n=e,r=typeof n=="boolean"?n:void 0;return w(r)?16777215:r?1:0},t.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6=function(e,n){let r=B(n),i=x(r,o.__wbindgen_malloc,o.__wbindgen_realloc),s=y;l().setInt32(e+4,s,!0),l().setInt32(e+0,i,!0)},t.wbg.__wbg___wbindgen_in_0d3e1e8f0c669317=function(e,n){return e in n},t.wbg.__wbg___wbindgen_is_bigint_0e1a2e3f55cfae27=function(e){return typeof e=="bigint"},t.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd=function(e){return typeof e=="function"},t.wbg.__wbg___wbindgen_is_object_ce774f3490692386=function(e){let n=e;return typeof n=="object"&&n!==null},t.wbg.__wbg___wbindgen_is_string_704ef9c8fc131030=function(e){return typeof e=="string"},t.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269=function(e){return e===void 0},t.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36=function(e,n){return e===n},t.wbg.__wbg___wbindgen_jsval_loose_eq_766057600fdd1b0d=function(e,n){return e==n},t.wbg.__wbg___wbindgen_number_get_9619185a74197f95=function(e,n){let r=n,i=typeof r=="number"?r:void 0;l().setFloat64(e+8,w(i)?0:i,!0),l().setInt32(e+0,!w(i),!0)},t.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42=function(e,n){let r=n,i=typeof r=="string"?r:void 0;var s=w(i)?0:x(i,o.__wbindgen_malloc,o.__wbindgen_realloc),_=y;l().setInt32(e+4,_,!0),l().setInt32(e+0,s,!0)},t.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e=function(e,n){throw new Error(b(e,n))},t.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7=function(e){e._wbg_cb_unref()},t.wbg.__wbg_call_3020136f7a2d6e44=function(){return v(function(e,n,r){return e.call(n,r)},arguments)},t.wbg.__wbg_call_78f94eb02ec7f9b2=function(){return v(function(e,n,r,i,s){return e.call(n,r,i,s)},arguments)},t.wbg.__wbg_call_abb4ff46ce38be40=function(){return v(function(e,n){return e.call(n)},arguments)},t.wbg.__wbg_done_62ea16af4ce34b24=function(e){return e.done},t.wbg.__wbg_entries_83c79938054e065f=function(e){return Object.entries(e)},t.wbg.__wbg_error_7534b8e9a36f1ab4=function(e,n){let r,i;try{r=e,i=n,console.error(b(e,n))}finally{o.__wbindgen_free(r,i,1)}},t.wbg.__wbg_getTimezoneOffset_45389e26d6f46823=function(e){return e.getTimezoneOffset()},t.wbg.__wbg_get_6b7bd52aca3f9671=function(e,n){return e[n>>>0]},t.wbg.__wbg_get_af9dab7e9603ea93=function(){return v(function(e,n){return Reflect.get(e,n)},arguments)},t.wbg.__wbg_get_with_ref_key_1dc361bd10053bfe=function(e,n){return e[n]},t.wbg.__wbg_individuallanguages_new=function(e){return k.__wrap(e)},t.wbg.__wbg_instanceof_ArrayBuffer_f3320d2419cd0355=function(e){let n;try{n=e instanceof ArrayBuffer}catch{n=!1}return n},t.wbg.__wbg_instanceof_Map_084be8da74364158=function(e){let n;try{n=e instanceof Map}catch{n=!1}return n},t.wbg.__wbg_instanceof_Uint8Array_da54ccc9d3e09434=function(e){let n;try{n=e instanceof Uint8Array}catch{n=!1}return n},t.wbg.__wbg_isArray_51fd9e6422c0a395=function(e){return Array.isArray(e)},t.wbg.__wbg_isSafeInteger_ae7d3f054d55fa16=function(e){return Number.isSafeInteger(e)},t.wbg.__wbg_iterator_27b7c8b35ab3e86b=function(){return Symbol.iterator},t.wbg.__wbg_length_22ac23eaec9d8053=function(e){return e.length},t.wbg.__wbg_length_d45040a40c570362=function(e){return e.length},t.wbg.__wbg_new_1ba21ce319a06297=function(){return new Object},t.wbg.__wbg_new_25f239778d6112b9=function(){return new Array},t.wbg.__wbg_new_6421f6084cc5bc5a=function(e){return new Uint8Array(e)},t.wbg.__wbg_new_8a6f238a6ece86ea=function(){return new Error},t.wbg.__wbg_new_b2db8aa2650f793a=function(e){return new Date(e)},t.wbg.__wbg_new_b546ae120718850e=function(){return new Map},t.wbg.__wbg_new_ff12d2b041fb48f1=function(e,n){try{var r={a:e,b:n},i=(_,c)=>{let a=r.a;r.a=0;try{return Ae(a,r.b,_,c)}finally{r.a=a}};return new Promise(i)}finally{r.a=r.b=0}},t.wbg.__wbg_new_from_slice_f9c22b9153b26992=function(e,n){return new Uint8Array(Z(e,n))},t.wbg.__wbg_new_no_args_cb138f77cf6151ee=function(e,n){return new Function(b(e,n))},t.wbg.__wbg_next_138a17bbf04e926c=function(e){return e.next},t.wbg.__wbg_next_3cfe5c0fe2a4cc53=function(){return v(function(e){return e.next()},arguments)},t.wbg.__wbg_now_2c95c9de01293173=function(e){return e.now()},t.wbg.__wbg_now_69d776cd24f5215b=function(){return Date.now()},t.wbg.__wbg_performance_7a3ffd0b17f663ad=function(e){return e.performance},t.wbg.__wbg_prototypesetcall_dfe9b766cdc1f1fd=function(e,n,r){Uint8Array.prototype.set.call(Z(e,n),r)},t.wbg.__wbg_proxycontext_new=function(e){return T.__wrap(e)},t.wbg.__wbg_push_7d9be8f38fc13975=function(e,n){return e.push(n)},t.wbg.__wbg_queueMicrotask_9b549dfce8865860=function(e){return e.queueMicrotask},t.wbg.__wbg_queueMicrotask_fca69f5bfad613a5=function(e){queueMicrotask(e)},t.wbg.__wbg_resolve_fd5bfbaa4ce36e1e=function(e){return Promise.resolve(e)},t.wbg.__wbg_set_3f1d0b984ed272ed=function(e,n,r){e[n]=r},t.wbg.__wbg_set_781438a03c0c3c81=function(){return v(function(e,n,r){return Reflect.set(e,n,r)},arguments)},t.wbg.__wbg_set_7df433eea03a5c14=function(e,n,r){e[n>>>0]=r},t.wbg.__wbg_set_efaaf145b9377369=function(e,n,r){return e.set(n,r)},t.wbg.__wbg_stack_0ed75d68575b0f3c=function(e,n){let r=n.stack,i=x(r,o.__wbindgen_malloc,o.__wbindgen_realloc),s=y;l().setInt32(e+4,s,!0),l().setInt32(e+0,i,!0)},t.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335=function(){let e=typeof global>"u"?null:global;return w(e)?0:O(e)},t.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1=function(){let e=typeof globalThis>"u"?null:globalThis;return w(e)?0:O(e)},t.wbg.__wbg_static_accessor_SELF_08f5a74c69739274=function(){let e=typeof self>"u"?null:self;return w(e)?0:O(e)},t.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024=function(){let e=typeof window>"u"?null:window;return w(e)?0:O(e)},t.wbg.__wbg_then_4f95312d68691235=function(e,n){return e.then(n)},t.wbg.__wbg_value_57b7b035e117f7ee=function(e){return e.value},t.wbg.__wbindgen_cast_2241b6af4c4b2941=function(e,n){return b(e,n)},t.wbg.__wbindgen_cast_4625c577ab2ec9ee=function(e){return BigInt.asUintN(64,e)},t.wbg.__wbindgen_cast_9ae0607507abb057=function(e){return e},t.wbg.__wbindgen_cast_b5bc9a99b1b9b782=function(e,n){return me(e,n,o.wasm_bindgen__closure__destroy__h21ca932816a58917,Se)},t.wbg.__wbindgen_cast_d6cd19b81560fd6e=function(e){return e},t.wbg.__wbindgen_init_externref_table=function(){let e=o.__wbindgen_externrefs,n=e.grow(4);e.set(0,void 0),e.set(n+0,void 0),e.set(n+1,null),e.set(n+2,!0),e.set(n+3,!1)},t}function ke(t,e){return o=t.exports,ie.__wbindgen_wasm_module=e,h=null,M=null,o.__wbindgen_start(),o}async function ie(t){if(o!==void 0)return o;typeof t<"u"&&(Object.getPrototypeOf(t)===Object.prototype?{module_or_path:t}=t:console.warn("using deprecated parameters for the initialization function; pass a single object instead")),typeof t>"u"&&(t=new URL("tinymist_bg.wasm",Te.url));let e=Re();(typeof t=="string"||typeof Request=="function"&&t instanceof Request||typeof URL=="function"&&t instanceof URL)&&(t=fetch(t));let{instance:n,module:r}=await Me(await t,e);return ke(n,r)}var oe=ie;var V=class{server=null;events=[];ensureServer(){if(!this.server)throw new Error("Analyzer not initialized");return this.server}notifyDidOpen(e,n){this.ensureServer().on_notification("textDocument/didOpen",{textDocument:{uri:e,languageId:"typst",version:1,text:n}})}notifyDidClose(e){this.ensureServer().on_notification("textDocument/didClose",{textDocument:{uri:e}})}notifyDidChange(e,n,r){this.ensureServer().on_notification("textDocument/didChange",{textDocument:{uri:e,version:n},contentChanges:[{text:r}]})}flushEvents(){if(this.server)for(;this.events.length>0;)for(let e of this.events.splice(0))this.server.on_event(e)}async init(e){await oe({module_or_path:e}),this.server=new S({sendEvent:r=>{this.events.push(r)},sendRequest:({id:r})=>{this.server.on_response({id:r,result:null})},sendNotification:()=>{},resolveFn:()=>{}});let n=this.server.on_request("initialize",{capabilities:{textDocument:{completion:{completionItem:{snippetSupport:!0}},hover:{contentFormat:["markdown","plaintext"]}}},rootUri:"file:///"});n&&typeof n=="object"&&"then"in n&&await n,this.flushEvents(),this.server.on_notification("initialized",{}),this.flushEvents()}async didOpen(e,n){this.notifyDidOpen(e,n),this.flushEvents()}async didClose(e){this.notifyDidClose(e),this.flushEvents()}async didChange(e,n,r){this.notifyDidChange(e,n,r),this.flushEvents()}async didChangeMany(e,n){this.ensureServer();for(let{uri:r,content:i}of e)this.notifyDidOpen(r,i);for(let{uri:r,version:i,content:s}of n)this.notifyDidChange(r,i,s);this.flushEvents()}async didCloseMany(e){this.ensureServer();for(let n of e)this.notifyDidClose(n);this.flushEvents()}async completion(e,n,r){let i=this.ensureServer().on_request("textDocument/completion",{textDocument:{uri:e},position:{line:n,character:r}}),s=i&&typeof i=="object"&&"then"in i?await i:i;return this.flushEvents(),s??null}async hover(e,n,r){let i=this.ensureServer().on_request("textDocument/hover",{textDocument:{uri:e},position:{line:n,character:r}}),s=i&&typeof i=="object"&&"then"in i?await i:i;return this.flushEvents(),s??null}destroy(){this.server?.free(),this.server=null}};j(new V);})();\n/*! Bundled license information:\n\ncomlink/dist/esm/comlink.mjs:\n (**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n *)\n*/\n');
50
21
  }
51
22
 
52
23
  // src/analyzer.ts
53
- var TIMEOUT = { INIT: 12e4, REQUEST: 3e4, DESTROY: 5e3 };
54
24
  var TypstAnalyzer = class _TypstAnalyzer {
55
- idCounter;
56
- versionCounter = 0;
25
+ proxy;
57
26
  worker;
27
+ versionCounter = 0;
58
28
  openedUris = /* @__PURE__ */ new Set();
59
- diagnosticsListeners = /* @__PURE__ */ new Set();
60
- constructor(worker, idCounter) {
29
+ constructor(worker, proxy) {
61
30
  this.worker = worker;
62
- this.idCounter = idCounter;
63
- this.worker.addEventListener(
64
- "message",
65
- (e) => {
66
- if (e.data.type === "diagnostics" && !("id" in e.data)) {
67
- const event = e.data;
68
- const normalizedUri = normalizeUntitledUri(event.uri);
69
- for (const listener of this.diagnosticsListeners) {
70
- listener(normalizedUri, event.diagnostics);
71
- }
72
- }
73
- }
74
- );
31
+ this.proxy = proxy;
75
32
  }
76
33
  static async create(options) {
77
34
  const worker = options.worker ?? createAnalyzerWorker();
78
- let idCounter = 0;
35
+ const proxy = Comlink.wrap(worker);
79
36
  const absoluteWasmUrl = new URL(options.wasmUrl, globalThis.location?.href).href;
80
- const res = await workerRpc(
81
- worker,
82
- { type: "init", id: ++idCounter, wasmUrl: absoluteWasmUrl },
83
- TIMEOUT.INIT
84
- );
85
- if (res.type === "error")
86
- throw new Error(`TypstAnalyzer init failed: ${res.message}`);
87
- return new _TypstAnalyzer(worker, idCounter);
88
- }
89
- /**
90
- * Register a listener for push-based diagnostics.
91
- * Returns an unsubscribe function.
92
- */
93
- onDiagnostics(listener) {
94
- this.diagnosticsListeners.add(listener);
95
- return () => this.diagnosticsListeners.delete(listener);
96
- }
97
- rpc(request, timeoutMs = TIMEOUT.REQUEST) {
98
- return workerRpc(this.worker, request, timeoutMs);
37
+ const analyzer = new _TypstAnalyzer(worker, proxy);
38
+ await proxy.init(absoluteWasmUrl);
39
+ return analyzer;
99
40
  }
100
41
  async didOpen(uri, content) {
101
- const res = await this.rpc({
102
- type: "didOpen",
103
- id: ++this.idCounter,
104
- uri,
105
- content
106
- });
107
- if (res.type === "error") throw new Error(res.message);
108
42
  this.openedUris.add(uri);
43
+ await this.proxy.didOpen(uri, content);
109
44
  }
110
45
  async didClose(uri) {
111
- if (!this.openedUris.has(uri)) return;
112
- const res = await this.rpc({
113
- type: "didClose",
114
- id: ++this.idCounter,
115
- uri
116
- });
117
- if (res.type === "error") throw new Error(res.message);
118
- this.openedUris.delete(uri);
46
+ if (!this.openedUris.delete(uri)) return;
47
+ await this.proxy.didClose(uri);
119
48
  }
120
49
  /**
121
50
  * Notify the analyzer that a document has changed.
122
- * Diagnostics will arrive asynchronously via `onDiagnostics()` listeners.
123
51
  */
124
52
  async didChange(uri, content) {
125
53
  if (!this.openedUris.has(uri)) {
@@ -127,279 +55,154 @@ var TypstAnalyzer = class _TypstAnalyzer {
127
55
  return;
128
56
  }
129
57
  const version = ++this.versionCounter;
130
- const res = await this.rpc({
131
- type: "didChange",
132
- id: ++this.idCounter,
133
- uri,
134
- version,
135
- content
136
- });
137
- if (res.type === "error") throw new Error(res.message);
138
- }
139
- async completion(uri, line, character) {
140
- const res = await this.rpc({
141
- type: "completion",
142
- id: ++this.idCounter,
143
- uri,
144
- line,
145
- character
146
- });
147
- if (res.type === "error") throw new Error(res.message);
148
- if (res.type === "completionResult") return res.result;
149
- return null;
150
- }
151
- async hover(uri, line, character) {
152
- const res = await this.rpc({
153
- type: "hover",
154
- id: ++this.idCounter,
155
- uri,
156
- line,
157
- character
158
- });
159
- if (res.type === "error") throw new Error(res.message);
160
- if (res.type === "hoverResult") return res.result;
161
- return null;
162
- }
163
- destroy() {
164
- this.diagnosticsListeners.clear();
165
- destroyWorker(
166
- this.worker,
167
- { type: "destroy", id: ++this.idCounter },
168
- TIMEOUT.DESTROY,
169
- "TypstAnalyzer"
170
- );
171
- }
172
- };
173
-
174
- // src/analyzer-session.ts
175
- var AnalyzerSession = class {
176
- analyzer;
177
- rootPath;
178
- entryPath;
179
- syncedFiles = /* @__PURE__ */ new Map();
180
- queue = Promise.resolve();
181
- // Diagnostic subscription state
182
- listenersByUri = /* @__PURE__ */ new Map();
183
- /** Last push received per URI. Replayed on subscribe() so tab-back shows correct diagnostics instantly. */
184
- diagnosticsCache = /* @__PURE__ */ new Map();
185
- unsubscribeAnalyzer;
186
- constructor(options) {
187
- this.analyzer = options.analyzer;
188
- this.rootPath = normalizeRoot(options.rootPath ?? "/project");
189
- this.entryPath = normalizePath(options.entryPath ?? "/main.typ");
190
- this.unsubscribeAnalyzer = this.analyzer.onDiagnostics(
191
- (uri, diagnostics) => {
192
- this.diagnosticsCache.set(uri, diagnostics);
193
- const listeners = this.listenersByUri.get(uri);
194
- if (!listeners) return;
195
- for (const listener of listeners) listener(diagnostics);
196
- }
197
- );
198
- }
199
- /** Build a tinymist URI from a project-relative path. */
200
- toUri(path) {
201
- const root = this.rootPath.replace(/^\//, "");
202
- return `untitled:${root}${normalizePath(path)}`;
58
+ await this.proxy.didChange(uri, version, content);
203
59
  }
204
60
  /**
205
- * Subscribe to push-based diagnostics for a file path.
206
- * Returns an unsubscribe function.
61
+ * Batch document changes. Splits inputs into opens (first-time URIs) and
62
+ * changes (already-open URIs) and sends them in a single worker roundtrip.
207
63
  */
208
- subscribe(path, listener) {
209
- const uri = this.toUri(path);
210
- let listeners = this.listenersByUri.get(uri);
211
- if (!listeners) {
212
- listeners = /* @__PURE__ */ new Set();
213
- this.listenersByUri.set(uri, listeners);
64
+ async didChangeMany(docs) {
65
+ const opens = [];
66
+ const changes = [];
67
+ for (const [uri, content] of Object.entries(docs)) {
68
+ if (this.openedUris.has(uri)) {
69
+ changes.push({ uri, version: ++this.versionCounter, content });
70
+ } else {
71
+ opens.push({ uri, content });
72
+ this.openedUris.add(uri);
73
+ }
214
74
  }
215
- listeners.add(listener);
216
- const cached = this.diagnosticsCache.get(uri);
217
- if (cached) listener(cached);
218
- return () => {
219
- const current = this.listenersByUri.get(uri);
220
- if (!current) return;
221
- current.delete(listener);
222
- if (current.size === 0) this.listenersByUri.delete(uri);
223
- };
75
+ if (opens.length === 0 && changes.length === 0) return;
76
+ await this.proxy.didChangeMany(opens, changes);
224
77
  }
225
78
  /**
226
- * Sync all project files with the analyzer.
227
- * `files` must include the active file's current content under `path`.
228
- *
229
- * If the active file's content hasn't changed since the last sync, a
230
- * lightweight hover is triggered to ensure the analyzer re-analyzes with
231
- * the current project state and publishes fresh diagnostics.
79
+ * Batch document closes. Filters to currently-open URIs and sends the set
80
+ * in a single worker roundtrip.
232
81
  */
233
- async sync(path, files) {
234
- await this.enqueue(async () => {
235
- const changed = await this.syncFiles(path, files);
236
- if (!changed) {
237
- try {
238
- await this.analyzer.hover(this.toUri(normalizePath(path)), 0, 0);
239
- } catch {
240
- }
241
- }
242
- for (const filePath of this.syncedFiles.keys()) {
243
- if (!Object.hasOwn(files, filePath)) {
244
- this.syncedFiles.delete(filePath);
245
- }
246
- }
247
- });
82
+ async didCloseMany(uris) {
83
+ const toClose = [];
84
+ for (const uri of uris) {
85
+ if (this.openedUris.delete(uri)) toClose.push(uri);
86
+ }
87
+ if (toClose.length === 0) return;
88
+ await this.proxy.didCloseMany(toClose);
248
89
  }
249
- /**
250
- * Sync files and request completions at the given position.
251
- * Returns the raw LSP CompletionList/CompletionItem[] from tinymist.
252
- */
253
- async completion(path, files, line, character) {
254
- return this.enqueue(async () => {
255
- await this.syncFiles(path, files);
256
- return this.analyzer.completion(
257
- this.toUri(normalizePath(path)),
258
- line,
259
- character
260
- );
261
- });
90
+ async completion(uri, line, character) {
91
+ return this.proxy.completion(uri, line, character);
262
92
  }
263
- /**
264
- * Sync files and request hover info at the given position.
265
- * Returns the raw LSP Hover result from tinymist.
266
- */
267
- async hover(path, files, line, character) {
268
- return this.enqueue(async () => {
269
- await this.syncFiles(path, files);
270
- return this.analyzer.hover(
271
- this.toUri(normalizePath(path)),
272
- line,
273
- character
274
- );
275
- });
93
+ async hover(uri, line, character) {
94
+ return this.proxy.hover(uri, line, character);
276
95
  }
277
96
  destroy() {
278
- this.unsubscribeAnalyzer();
279
- this.listenersByUri.clear();
280
- this.diagnosticsCache.clear();
281
- }
282
- /**
283
- * Sync all project files: dependencies first, active file last.
284
- * Returns whether the active file's content was actually sent to the analyzer.
285
- */
286
- async syncFiles(path, files) {
287
- const activePath = normalizePath(path);
288
- for (const filePath of this.orderedPaths(files)) {
289
- if (filePath === activePath) continue;
290
- await this.syncFile(filePath, files[filePath]);
291
- }
292
- return this.syncFile(activePath, files[activePath]);
293
- }
294
- /** Sync a single file. Returns true if content was sent to the analyzer. */
295
- async syncFile(path, content) {
296
- const prev = this.syncedFiles.get(path);
297
- if (prev == null) {
298
- await this.analyzer.didOpen(this.toUri(path), content);
299
- } else if (prev !== content) {
300
- await this.analyzer.didChange(this.toUri(path), content);
301
- } else {
302
- return false;
303
- }
304
- this.syncedFiles.set(path, content);
305
- return true;
306
- }
307
- orderedPaths(files) {
308
- return Object.keys(files).map((p) => normalizePath(p)).sort((a, b) => {
309
- if (a === this.entryPath) return 1;
310
- if (b === this.entryPath) return -1;
311
- return a.localeCompare(b);
312
- });
313
- }
314
- enqueue(task) {
315
- const run = this.queue.then(task, task);
316
- this.queue = run.then(
317
- () => void 0,
318
- () => void 0
319
- );
320
- return run;
97
+ this.proxy[Comlink.releaseProxy]();
98
+ this.worker.terminate();
321
99
  }
322
100
  };
323
101
 
102
+ // src/uri.ts
103
+ function normalizeUntitledUri(uri) {
104
+ if (!uri.startsWith("untitled:")) return uri;
105
+ return `untitled:${uri.slice("untitled:".length).replace(/^\/+/, "")}`;
106
+ }
107
+ function normalizePath(path) {
108
+ return path.startsWith("/") ? path : `/${path}`;
109
+ }
110
+ function normalizeRoot(rootPath) {
111
+ const root = normalizePath(rootPath);
112
+ return root === "/" ? "" : root.replace(/\/+$/, "");
113
+ }
114
+
324
115
  // src/compiler.ts
116
+ import * as Comlink2 from "comlink";
325
117
  var DEFAULT_FONTS = [
326
118
  "https://cdn.jsdelivr.net/npm/roboto-font@0.1.0/fonts/Roboto/roboto-regular-webfont.ttf"
327
119
  ];
328
120
  var DEFAULT_WASM_URL = "https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-web-compiler@0.7.0-rc2/pkg/typst_ts_web_compiler_bg.wasm";
329
- var TIMEOUT2 = { INIT: 6e4, RENDER: 6e4, DESTROY: 5e3 };
330
- function toFiles(source) {
331
- return typeof source === "string" ? { "/main.typ": source } : source;
121
+ var DEFAULT_ENTRY = "/main.typ";
122
+ function toFiles(source, entry) {
123
+ if (source === void 0) return void 0;
124
+ return typeof source === "string" ? { [entry ?? DEFAULT_ENTRY]: source } : source;
332
125
  }
333
126
  var TypstCompiler = class _TypstCompiler {
334
- idCounter;
127
+ proxy;
335
128
  worker;
129
+ encoder = new TextEncoder();
336
130
  /** The most recent vector artifact from a compile, if any. */
337
131
  lastVector;
338
- constructor(worker, idCounter) {
132
+ constructor(worker, proxy) {
339
133
  this.worker = worker;
340
- this.idCounter = idCounter;
134
+ this.proxy = proxy;
341
135
  }
342
136
  static async create(options = {}) {
343
137
  const worker = options.worker ?? createWorker();
344
- let idCounter = 0;
345
- const res = await workerRpc(
346
- worker,
347
- {
348
- type: "init",
349
- id: ++idCounter,
350
- wasmUrl: options.wasmUrl ?? DEFAULT_WASM_URL,
351
- fonts: options.fonts ?? DEFAULT_FONTS,
352
- packages: options.packages ?? true
353
- },
354
- TIMEOUT2.INIT
355
- );
356
- if (res.type === "error")
357
- throw new Error(`TypstCompiler init failed: ${res.message}`);
358
- return new _TypstCompiler(worker, idCounter);
359
- }
360
- /** Compile a single source string (treated as /main.typ) or a map of files. */
361
- async compile(source) {
362
- const id = ++this.idCounter;
363
- const files = toFiles(source);
364
- const response = await workerRpc(
365
- this.worker,
366
- {
367
- type: "compile",
368
- id,
369
- files
370
- }
138
+ const proxy = Comlink2.wrap(worker);
139
+ await proxy.init(
140
+ options.wasmUrl ?? DEFAULT_WASM_URL,
141
+ options.fonts ?? DEFAULT_FONTS,
142
+ options.packages ?? true
371
143
  );
372
- if (response.type === "cancelled") return { diagnostics: [] };
373
- if (response.type === "result") {
374
- const vector = response.vector ? new Uint8Array(response.vector) : void 0;
375
- if (vector) this.lastVector = vector;
376
- return { diagnostics: response.diagnostics, vector };
144
+ return new _TypstCompiler(worker, proxy);
145
+ }
146
+ /**
147
+ * Compile. Pass a source string (written to the entry path) or a map of
148
+ * files to register before compiling; omit to compile whatever is currently
149
+ * in the VFS (populated via setText/setBinary/setJson/setMany).
150
+ * Defaults to compiling "/main.typ"; override with `entry`.
151
+ */
152
+ async compile(source, entry) {
153
+ const result = await this.proxy.compile(toFiles(source, entry), entry);
154
+ if (result.vector) this.lastVector = result.vector;
155
+ return result;
156
+ }
157
+ /**
158
+ * Compile to PDF. Pass a source string (written to the entry path) or a map
159
+ * of files to register before compiling; omit to compile whatever is
160
+ * currently in the VFS (populated via setText/setBinary/setJson/setMany).
161
+ * Defaults to compiling "/main.typ"; override with `entry`.
162
+ */
163
+ compilePdf(source, entry) {
164
+ return this.proxy.compilePdf(toFiles(source, entry), entry);
165
+ }
166
+ /** Add or overwrite a text file in the virtual compiler filesystem. */
167
+ setText(path, source) {
168
+ return this.proxy.mapShadow(path, this.encoder.encode(source));
169
+ }
170
+ /** Add or overwrite a JSON file in the virtual compiler filesystem. */
171
+ setJson(path, value, replacer, space) {
172
+ return this.setText(path, JSON.stringify(value, replacer, space));
173
+ }
174
+ /**
175
+ * Add or overwrite multiple files in the virtual compiler filesystem in a
176
+ * single worker roundtrip. Strings are UTF-8 encoded; Uint8Arrays are passed
177
+ * through.
178
+ */
179
+ setMany(files) {
180
+ const encoded = {};
181
+ for (const [path, content] of Object.entries(files)) {
182
+ encoded[path] = typeof content === "string" ? this.encoder.encode(content) : content;
377
183
  }
378
- if (response.type === "error") throw new Error(response.message);
379
- return { diagnostics: [] };
380
- }
381
- /** Compile to PDF from a single source string (treated as /main.typ) or a map of files. */
382
- async compilePdf(source) {
383
- const id = ++this.idCounter;
384
- const files = toFiles(source);
385
- const response = await workerRpc(
386
- this.worker,
387
- { type: "render", id, files },
388
- TIMEOUT2.RENDER
184
+ return this.proxy.mapShadowMany(encoded);
185
+ }
186
+ /** Add or overwrite a binary file in the virtual compiler filesystem. */
187
+ setBinary(path, content) {
188
+ const bytes = content instanceof ArrayBuffer ? new Uint8Array(content) : new Uint8Array(
189
+ content.buffer,
190
+ content.byteOffset,
191
+ content.byteLength
389
192
  );
390
- if (response.type === "cancelled") throw new Error("Render cancelled");
391
- if (response.type === "pdf") return new Uint8Array(response.data);
392
- if (response.type === "error") throw new Error(response.message);
393
- throw new Error("Unexpected response type");
193
+ return this.proxy.mapShadow(path, bytes);
194
+ }
195
+ /** Remove a file from the virtual compiler filesystem. */
196
+ remove(path) {
197
+ return this.proxy.unmapShadow(path);
198
+ }
199
+ /** Clear all virtual files from the compiler filesystem. */
200
+ clear() {
201
+ return this.proxy.resetShadow();
394
202
  }
395
203
  destroy() {
396
- const id = ++this.idCounter;
397
- destroyWorker(
398
- this.worker,
399
- { type: "destroy", id },
400
- TIMEOUT2.DESTROY,
401
- "TypstCompiler"
402
- );
204
+ this.proxy[Comlink2.releaseProxy]();
205
+ this.worker.terminate();
403
206
  }
404
207
  };
405
208
 
@@ -437,6 +240,147 @@ var TypstFormatter = class _TypstFormatter {
437
240
  }
438
241
  };
439
242
 
243
+ // src/project.ts
244
+ var DEFAULT_ENTRY2 = "/main.typ";
245
+ var DEFAULT_ROOT = "/project";
246
+ var TypstProject = class {
247
+ compiler;
248
+ analyzer;
249
+ rootPath;
250
+ trackedTextPaths = /* @__PURE__ */ new Set();
251
+ /** Last content written via setText/setMany, per path. Used to skip redundant writes to compiler + analyzer. */
252
+ lastSyncedContent = /* @__PURE__ */ new Map();
253
+ _entry;
254
+ constructor(options) {
255
+ this.compiler = options.compiler;
256
+ this.analyzer = options.analyzer;
257
+ this.rootPath = normalizeRoot(options.rootPath ?? DEFAULT_ROOT);
258
+ this._entry = normalizePath(options.entry ?? DEFAULT_ENTRY2);
259
+ }
260
+ /** Current entry file path. */
261
+ get entry() {
262
+ return this._entry;
263
+ }
264
+ /** Whether an analyzer is attached. */
265
+ get hasAnalyzer() {
266
+ return this.analyzer !== void 0;
267
+ }
268
+ /** Change the sticky entry file used by subsequent compile() calls. */
269
+ setEntry(path) {
270
+ this._entry = normalizePath(path);
271
+ }
272
+ /**
273
+ * Add or overwrite a text file. Goes to the compiler's VFS and, when an
274
+ * analyzer is attached, to the analyzer as a document change. Redundant
275
+ * calls with unchanged content are skipped.
276
+ */
277
+ async setText(path, content) {
278
+ const p = normalizePath(path);
279
+ this.trackedTextPaths.add(p);
280
+ if (this.lastSyncedContent.get(p) === content) return;
281
+ this.lastSyncedContent.set(p, content);
282
+ const ops = [this.compiler.setText(p, content)];
283
+ if (this.analyzer) {
284
+ ops.push(this.analyzer.didChange(this.toUri(p), content));
285
+ }
286
+ await Promise.all(ops);
287
+ }
288
+ /**
289
+ * Add or overwrite a JSON file. Compiler-only — the analyzer does not track
290
+ * data files.
291
+ */
292
+ setJson(path, value) {
293
+ return this.compiler.setJson(normalizePath(path), value);
294
+ }
295
+ /** Add or overwrite a binary file. Compiler-only. */
296
+ setBinary(path, content) {
297
+ return this.compiler.setBinary(normalizePath(path), content);
298
+ }
299
+ /**
300
+ * Batch set multiple files. Strings route to both compiler and analyzer;
301
+ * Uint8Array entries go to the compiler only.
302
+ */
303
+ async setMany(files) {
304
+ const normalized = {};
305
+ for (const [path, content] of Object.entries(files)) {
306
+ normalized[normalizePath(path)] = content;
307
+ }
308
+ const compilerOp = this.compiler.setMany(normalized);
309
+ const analyzerOp = (async () => {
310
+ if (!this.analyzer) return;
311
+ const docs = {};
312
+ for (const [path, content] of Object.entries(normalized)) {
313
+ if (typeof content !== "string") continue;
314
+ this.trackedTextPaths.add(path);
315
+ if (this.lastSyncedContent.get(path) === content) continue;
316
+ this.lastSyncedContent.set(path, content);
317
+ docs[this.toUri(path)] = content;
318
+ }
319
+ if (Object.keys(docs).length > 0) {
320
+ await this.analyzer.didChangeMany(docs);
321
+ }
322
+ })();
323
+ await Promise.all([compilerOp, analyzerOp]);
324
+ }
325
+ /**
326
+ * Remove a file. Always removed from the compiler's VFS; also closed on the
327
+ * analyzer when it was previously tracked as text.
328
+ */
329
+ async remove(path) {
330
+ const p = normalizePath(path);
331
+ const wasText = this.trackedTextPaths.delete(p);
332
+ this.lastSyncedContent.delete(p);
333
+ const ops = [this.compiler.remove(p)];
334
+ if (this.analyzer && wasText) {
335
+ ops.push(this.analyzer.didClose(this.toUri(p)));
336
+ }
337
+ await Promise.all(ops);
338
+ }
339
+ /** Clear all files from both compiler VFS and analyzer document set. */
340
+ async clear() {
341
+ const uris = Array.from(this.trackedTextPaths, (p) => this.toUri(p));
342
+ this.trackedTextPaths.clear();
343
+ this.lastSyncedContent.clear();
344
+ const compilerOp = this.compiler.clear();
345
+ const analyzerOp = this.analyzer && uris.length > 0 ? this.analyzer.didCloseMany(uris) : Promise.resolve();
346
+ await Promise.all([compilerOp, analyzerOp]);
347
+ }
348
+ /** Compile the current VFS state using the sticky entry. */
349
+ compile() {
350
+ return this.compiler.compile(void 0, this._entry);
351
+ }
352
+ /** Compile the current VFS state to PDF using the sticky entry. */
353
+ compilePdf() {
354
+ return this.compiler.compilePdf(void 0, this._entry);
355
+ }
356
+ requireAnalyzer(operation) {
357
+ if (!this.analyzer) {
358
+ throw new Error(`TypstProject: ${operation} requires an analyzer`);
359
+ }
360
+ return this.analyzer;
361
+ }
362
+ /** Request completions at the given position. Throws when no analyzer is attached. */
363
+ completion(path, line, character) {
364
+ return this.requireAnalyzer("completion").completion(
365
+ this.toUri(normalizePath(path)),
366
+ line,
367
+ character
368
+ );
369
+ }
370
+ /** Request hover info at the given position. Throws when no analyzer is attached. */
371
+ hover(path, line, character) {
372
+ return this.requireAnalyzer("hover").hover(
373
+ this.toUri(normalizePath(path)),
374
+ line,
375
+ character
376
+ );
377
+ }
378
+ toUri(path) {
379
+ const root = this.rootPath.replace(/^\//, "");
380
+ return `untitled:${root}${normalizePath(path)}`;
381
+ }
382
+ };
383
+
440
384
  // src/renderer.ts
441
385
  var DEFAULT_RENDERER_WASM_URL = "https://cdn.jsdelivr.net/npm/@myriaddreamin/typst-ts-renderer@0.7.0-rc2/pkg/typst_ts_renderer_bg.wasm";
442
386
  var rendererModulePromise = null;
@@ -473,7 +417,7 @@ var TypstRenderer = class _TypstRenderer {
473
417
  }
474
418
  async #init() {
475
419
  const mod = await getRendererModule();
476
- await mod.default(this.wasmUrl);
420
+ await mod.default({ module_or_path: this.wasmUrl });
477
421
  return new mod.TypstRendererBuilder().build();
478
422
  }
479
423
  /** Free the underlying WASM renderer instance. */
@@ -497,10 +441,10 @@ var TypstRenderer = class _TypstRenderer {
497
441
  }
498
442
  };
499
443
  export {
500
- AnalyzerSession,
501
444
  TypstAnalyzer,
502
445
  TypstCompiler,
503
446
  TypstFormatter,
447
+ TypstProject,
504
448
  TypstRenderer,
505
449
  normalizePath,
506
450
  normalizeRoot,