@vedivad/typst-web-service 0.14.4 → 0.15.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.d.ts +13 -51
- package/dist/index.js +27 -131
- package/dist/index.js.map +1 -1
- package/dist/renderer-worker.js +5197 -0
- package/dist/renderer-worker.js.map +1 -0
- package/package.json +4 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/options.init.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/internal.types.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/render/canvas/view.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/wasm.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/init.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/contrib/dom/typst-doc.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/contrib/dom/typst-cancel.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/dom.mts","../../../node_modules/.bun/@myriaddreamin+typst-ts-renderer@0.7.0-rc2/node_modules/@myriaddreamin/typst-ts-renderer/pkg/typst_ts_renderer.mjs","../../../node_modules/.bun/@myriaddreamin+typst-ts-renderer@0.7.0-rc2/node_modules/@myriaddreamin/typst-ts-renderer/pkg/wasm-pack-shim.mjs","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/renderer.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/compiler.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/contrib/global-compiler.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/contrib/global-renderer.mts","../src/renderer-worker.ts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/index.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/fs/memory.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/fs/package.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/contrib/snippet.mts","../../../node_modules/.bun/@myriaddreamin+typst.ts@0.7.0-rc2+5e675a3c06b42b50/node_modules/@myriaddreamin/typst.ts/src/utils.mts"],"sourcesContent":["// @ts-ignore\r\nimport type * as typstRenderer from '@myriaddreamin/typst-ts-renderer';\r\nimport type * as typstCompiler from '@myriaddreamin/typst-ts-web-compiler';\r\nimport type { FsAccessModel, PackageRegistry, PackageSpec } from './internal.types.mjs';\r\nimport type { WebAssemblyModuleRef } from './wasm.mjs';\r\n\r\n/**\r\n * staged options function\r\n * @template S - stage mark\r\n * @template T - context type\r\n */\r\nexport type StagedOptFn<S extends symbol, T = any> = (s: S, t: T) => Promise<void>;\r\n\r\n/**\r\n * this mark is used to identify the beforeBuild stage\r\n * @description will not be used in runtime code\r\n */\r\nconst BeforeBuildSymbol: unique symbol = Symbol('beforeBuild');\r\n\r\n/**\r\n * this mark is used to identify the beforeBuild stage\r\n * @description cannot be created by any runtime code\r\n */\r\nexport type BeforeBuildMark = typeof BeforeBuildSymbol;\r\n\r\n/**\r\n * before build stage\r\n * @description possible created by:\r\n * - loadFonts\r\n * - preloadSystemFonts\r\n * - withAccessModel\r\n * - withPackageRegistry\r\n */\r\nexport type BeforeBuildFn = StagedOptFn<BeforeBuildMark>;\r\n\r\n/**\r\n *\r\n * @property {BeforeBuildFn[]} beforeBuild - callbacks before build stage\r\n */\r\nexport interface InitOptions {\r\n /**\r\n * callbacks before build stage\r\n *\r\n * before build stage, the registered functions will be executed in order\r\n * possible options:\r\n * - loadFonts\r\n * - preloadSystemFonts\r\n * - withAccessModel\r\n */\r\n beforeBuild: BeforeBuildFn[];\r\n\r\n /**\r\n * callbacks to fetch the wasm module wrapper\r\n */\r\n getWrapper?(): Promise<any>;\r\n\r\n /**\r\n * callbacks to fetch the wasm module\r\n *\r\n * There are many ways to provide a wasm module, see\r\n * {@link WebAssemblyModuleRef} for more details. If you don't provide a wasm\r\n * module, the default module will be used.\r\n */\r\n getModule(): WebAssemblyModuleRef | Promise<WebAssemblyModuleRef>;\r\n}\r\n\r\nexport type LazyFont = {\r\n info: any;\r\n} & (\r\n | {\r\n blob: (index: number) => Uint8Array;\r\n }\r\n | {\r\n url: string;\r\n }\r\n );\r\n\r\n/** @internal */\r\nconst _textFonts: string[] = [\r\n 'DejaVuSansMono-Bold.ttf',\r\n 'DejaVuSansMono-BoldOblique.ttf',\r\n 'DejaVuSansMono-Oblique.ttf',\r\n 'DejaVuSansMono.ttf',\r\n 'LibertinusSerif-Bold.otf',\r\n 'LibertinusSerif-BoldItalic.otf',\r\n 'LibertinusSerif-Italic.otf',\r\n 'LibertinusSerif-Regular.otf',\r\n 'LibertinusSerif-Semibold.otf',\r\n 'LibertinusSerif-SemiboldItalic.otf',\r\n 'NewCM10-Bold.otf',\r\n 'NewCM10-BoldItalic.otf',\r\n 'NewCM10-Italic.otf',\r\n 'NewCM10-Regular.otf',\r\n 'NewCMMath-Bold.otf',\r\n 'NewCMMath-Book.otf',\r\n 'NewCMMath-Regular.otf',\r\n];\r\n/** @internal */\r\nconst _cjkFonts: string[] = [\r\n 'InriaSerif-Bold.ttf',\r\n 'InriaSerif-BoldItalic.ttf',\r\n 'InriaSerif-Italic.ttf',\r\n 'InriaSerif-Regular.ttf',\r\n 'Roboto-Regular.ttf',\r\n 'NotoSerifCJKsc-Regular.otf',\r\n];\r\n/** @internal */\r\nconst _emojiFonts: string[] = ['TwitterColorEmoji.ttf', 'NotoColorEmoji-Regular-COLR.subset.ttf'];\r\n\r\ntype AvailableFontAsset = 'text' | 'cjk' | 'emoji';\r\n\r\nexport interface LoadRemoteAssetsOptions {\r\n /**\r\n * preload font assets or don't preload any font assets\r\n * @default ['text']\r\n */\r\n assets?: AvailableFontAsset[] | false;\r\n\r\n /**\r\n * customize url prefix for default assets from remote\r\n *\r\n * The default assets are hosted on github, you can download them and host\r\n * them on your own server, which is more practical for production.\r\n *\r\n * Hosted at: https://github.com/Myriad-Dreamin/typst/tree/assets-fonts\r\n * List of assets:\r\n * See {@link _textFonts}, {@link _cjkFonts}, and {@link _emojiFonts}\r\n *\r\n * @default 'jsdelivr-url of typst-assets and typst-dev-assets'\r\n */\r\n assetUrlPrefix?: string | Record<string, string>;\r\n\r\n /**\r\n * custom fetcher\r\n * Note: the default fetcher for node.js does not cache any fonts\r\n * @default fetch\r\n */\r\n fetcher?: typeof fetch;\r\n}\r\n\r\nexport interface LoadRemoteFontsOptions extends LoadRemoteAssetsOptions { }\r\n\r\n/**\r\n * disable default font assets\r\n */\r\nexport function disableDefaultFontAssets(): BeforeBuildFn {\r\n return loadFonts([], { assets: false });\r\n}\r\n\r\n/**\r\n * preload font assets\r\n */\r\nexport function preloadFontAssets(options?: LoadRemoteAssetsOptions): BeforeBuildFn {\r\n return loadFonts([], options);\r\n}\r\n\r\nexport function _resolveAssets(options?: LoadRemoteFontsOptions) {\r\n const fonts = [];\r\n if (\r\n options &&\r\n options?.assets !== false &&\r\n options?.assets?.length &&\r\n options?.assets?.length > 0\r\n ) {\r\n let defaultPrefix: Record<string, string> = {\r\n text: 'https://cdn.jsdelivr.net/gh/typst/typst-assets@v0.13.1/files/fonts/',\r\n _: 'https://cdn.jsdelivr.net/gh/typst/typst-dev-assets@v0.13.1/files/fonts/',\r\n };\r\n let assetUrlPrefix = options.assetUrlPrefix ?? defaultPrefix;\r\n if (typeof assetUrlPrefix === 'string') {\r\n assetUrlPrefix = { _: assetUrlPrefix };\r\n } else {\r\n assetUrlPrefix = { ...defaultPrefix, ...assetUrlPrefix };\r\n }\r\n for (const key of Object.keys(assetUrlPrefix)) {\r\n const u = assetUrlPrefix[key];\r\n if (u[u.length - 1] !== '/') {\r\n assetUrlPrefix[key] = u + '/';\r\n }\r\n }\r\n\r\n const prefix = (asset: string, f: string[]) =>\r\n f.map(font => (assetUrlPrefix[asset] || assetUrlPrefix['_']) + font);\r\n for (const asset of options.assets) {\r\n switch (asset) {\r\n case 'text':\r\n fonts.push(...prefix(asset, _textFonts));\r\n break;\r\n case 'cjk':\r\n fonts.push(...prefix(asset, _cjkFonts));\r\n break;\r\n case 'emoji':\r\n fonts.push(...prefix(asset, _emojiFonts));\r\n break;\r\n }\r\n }\r\n }\r\n\r\n return fonts;\r\n}\r\n\r\n/**\r\n * @deprecated use {@link loadFonts} instead\r\n */\r\nexport function preloadRemoteFonts(\r\n userFonts: (string | Uint8Array)[],\r\n options?: LoadRemoteFontsOptions,\r\n): BeforeBuildFn {\r\n return loadFonts(userFonts, options);\r\n}\r\n\r\n/**\r\n * load fonts\r\n *\r\n * @param fonts - url path to font files\r\n * @returns {BeforeBuildFn}\r\n * @example\r\n * ```ts\r\n * // preLoad fonts from remote url (because finto info is not provided)\r\n * import { init, loadFonts } from 'typst';\r\n * init({\r\n * beforeBuild: [\r\n * loadFonts([\r\n * 'https://fonts.gstatic.com/s/roboto/v27/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2', // remote url\r\n * 'dist/fonts/Roboto-Regular.ttf', // relative to the root of the website\r\n * ]),\r\n * ],\r\n * });\r\n * ```\r\n * @example\r\n * ```ts\r\n * // lazily Load fonts from remote url. The font information is obtained by `getFontInfo`\r\n * import { init, loadFonts } from 'typst';\r\n * init({\r\n * beforeBuild: [\r\n * loadFonts([\r\n * {\r\n * info: [...]\r\n * url: 'https://fonts.gstatic.com/s/roboto/v27/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2';\r\n * }\r\n * ]),\r\n * ],\r\n * });\r\n * ```\r\n */\r\nexport function loadFonts(\r\n userFonts: (string | Uint8Array | LazyFont)[],\r\n options?: LoadRemoteFontsOptions,\r\n): BeforeBuildFn {\r\n const assetFonts = _resolveAssets(options);\r\n const loader = async (_: BeforeBuildMark, { ref, builder }: InitContext) => {\r\n if (options?.fetcher) {\r\n ref.setFetcher(options.fetcher);\r\n }\r\n await ref.loadFonts(builder, [...userFonts, ...assetFonts]);\r\n };\r\n loader._preloadRemoteFontOptions = options;\r\n loader._kind = 'fontLoader';\r\n return loader;\r\n}\r\n\r\n/**\r\n * preload system fonts\r\n * @param byFamily - filter system fonts to preload by family name\r\n * @returns {BeforeBuildFn}\r\n * @example\r\n * ```typescript\r\n * import { init, preloadSystemFonts } from 'typst';\r\n * init({\r\n * beforeBuild: [\r\n * preloadSystemFonts({\r\n * byFamily: ['Roboto'], // preload fonts by family name\r\n * }),\r\n * ],\r\n * });\r\n * ```\r\n */\r\nexport function preloadSystemFonts({ byFamily }: { byFamily?: string[] }): BeforeBuildFn {\r\n return async (_, { builder }: InitContext) => {\r\n const t = performance.now();\r\n\r\n if ('queryLocalFonts' in window) {\r\n const fonts: {\r\n family: string;\r\n blob(): Promise<Blob>;\r\n }[] = await (window as any).queryLocalFonts();\r\n\r\n byFamily = byFamily ?? [];\r\n\r\n for (const font of fonts) {\r\n if (!byFamily.includes(font.family)) {\r\n continue;\r\n }\r\n\r\n const data: ArrayBuffer = await (await font.blob()).arrayBuffer();\r\n await builder.add_raw_font(new Uint8Array(data));\r\n }\r\n }\r\n\r\n const t2 = performance.now();\r\n console.log('preload system font time used:', t2 - t);\r\n };\r\n}\r\n\r\n/**\r\n * (compile only) set pacoage registry\r\n *\r\n * @param accessModel: when compiling, the pacoage registry is used to access the\r\n * data of files\r\n * @returns {BeforeBuildFn}\r\n */\r\nexport function withPackageRegistry(packageRegistry: PackageRegistry): BeforeBuildFn {\r\n return async (_, { builder }: InitContext) => {\r\n return new Promise(resolve => {\r\n builder.set_package_registry(packageRegistry, function (spec: PackageSpec) {\r\n return packageRegistry.resolve(spec, this);\r\n });\r\n resolve();\r\n });\r\n };\r\n}\r\n\r\n/**\r\n * (compile only) set access model\r\n *\r\n * @param accessModel: when compiling, the access model is used to access the\r\n * data of files\r\n * @returns {BeforeBuildFn}\r\n */\r\nexport function withAccessModel(accessModel: FsAccessModel): BeforeBuildFn {\r\n return async (_, ctx: InitContext) => {\r\n if (ctx.alreadySetAccessModel) {\r\n throw new Error(\r\n `already set some assess model before: ${ctx.alreadySetAccessModel.constructor?.name}(${ctx.alreadySetAccessModel})`,\r\n );\r\n }\r\n ctx.alreadySetAccessModel = accessModel;\r\n return new Promise(resolve => {\r\n ctx.builder.set_access_model(\r\n accessModel,\r\n (path: string) => {\r\n const lastModified = accessModel.getMTime(path);\r\n if (lastModified) {\r\n return lastModified.getTime();\r\n }\r\n return 0;\r\n },\r\n (path: string) => {\r\n return accessModel.isFile(path) || false;\r\n },\r\n (path: string) => {\r\n return accessModel.getRealPath(path) || path;\r\n },\r\n (path: string) => {\r\n return accessModel.readAll(path);\r\n },\r\n );\r\n resolve();\r\n });\r\n };\r\n}\r\n\r\n/**\r\n * @internal builder\r\n */\r\ntype Builder = typstRenderer.TypstRendererBuilder & typstCompiler.TypstCompilerBuilder;\r\n\r\n/**\r\n * @internal build context\r\n */\r\ninterface InitContext {\r\n ref: {\r\n setFetcher(fetcher: typeof fetch): void;\r\n loadFonts(builder: Builder, fonts: (string | Uint8Array | LazyFont)[]): Promise<void>;\r\n };\r\n builder: Builder;\r\n alreadySetAccessModel: any;\r\n}\r\n\r\n// todo: search browser\r\n// searcher.search_browser().await?;\r\n","export const kObject = Symbol.for('reflexo-obj');\r\n\r\n/**\r\n * The page information of a Typst document.\r\n * @property {number} pageOffset - The offset of the page.\r\n * @property {number} width - The width of the page in pt.\r\n * @property {number} height - The height of the page in pt.\r\n */\r\nexport class PageInfo {\r\n pageOffset: number;\r\n width: number;\r\n height: number;\r\n}\r\n\r\nexport interface FsAccessModel {\r\n getMTime(path: string): Date | undefined;\r\n isFile(path: string): boolean | undefined;\r\n getRealPath(path: string): string | undefined;\r\n readAll(path: string): Uint8Array | undefined;\r\n}\r\n\r\nexport interface PackageSpec {\r\n namespace: string;\r\n name: string;\r\n version: string;\r\n}\r\n\r\nexport interface PackageResolveContext {\r\n untar(data: Uint8Array, cb: (path: string, data: Uint8Array, mtime: number) => void): void;\r\n}\r\n\r\nexport interface PackageRegistry {\r\n resolve(path: PackageSpec, context: PackageResolveContext): string | undefined;\r\n}\r\n\r\nexport interface Point {\r\n x: number;\r\n y: number;\r\n}\r\n\r\nexport interface Rect {\r\n lo: Point;\r\n hi: Point;\r\n}\r\n\r\nexport type TransformMatrix = [number, number, number, number, number, number];\r\n\r\n//#region Semantic tokens: https://github.com/microsoft/vscode/issues/86415\r\nexport interface SemanticTokensLegend {\r\n readonly tokenTypes: string[];\r\n readonly tokenModifiers: string[];\r\n}\r\n\r\nexport interface SemanticTokens {\r\n /**\r\n * The result id of the tokens.\r\n *\r\n * This is the id that will be passed to `DocumentSemanticTokensProvider.provideDocumentSemanticTokensEdits` (if implemented).\r\n */\r\n readonly resultId?: string;\r\n readonly data: Uint32Array;\r\n}\r\n//#endregion\r\n\r\n/**\r\n * The result of rendering a Typst document to a canvas.\r\n */\r\nexport interface RenderCanvasResult {\r\n cacheKey: string;\r\n htmlSemantics: string[];\r\n}\r\n\r\nexport const enum TypstDefaultParams {\r\n PIXEL_PER_PT = 3,\r\n}\r\n","import { PageInfo, TypstDefaultParams } from '../../internal.types.mjs';\r\nimport { RenderToCanvasOptions } from '../../options.render.mjs';\r\nimport { PageViewport } from './viewport.mjs';\r\n\r\n/** @internal */\r\nexport class RenderView {\r\n loadPageCount: number;\r\n imageScaleFactor: number;\r\n\r\n container: HTMLElement;\r\n canvasList: HTMLCanvasElement[];\r\n textLayerList: HTMLDivElement[];\r\n commonList: HTMLDivElement[];\r\n textLayerParentList: HTMLDivElement[];\r\n semanticLayerList: HTMLDivElement[];\r\n\r\n constructor(\r\n public pageInfos: PageInfo[],\r\n container: HTMLElement,\r\n options: RenderToCanvasOptions,\r\n ) {\r\n this.imageScaleFactor = options.pixelPerPt ?? TypstDefaultParams.PIXEL_PER_PT;\r\n\r\n container.innerHTML = '';\r\n container.style.width = '100%';\r\n\r\n // canvas[data-typst-session='{}']\r\n\r\n /// refer html elements\r\n this.container = container;\r\n this.canvasList = new Array(this.loadPageCount);\r\n this.textLayerList = new Array(this.loadPageCount);\r\n this.commonList = new Array(this.loadPageCount);\r\n this.textLayerParentList = new Array(this.loadPageCount);\r\n this.semanticLayerList = new Array(this.loadPageCount);\r\n\r\n const createOver = (i: number, pageAst: PageInfo, commonDiv: HTMLDivElement) => {\r\n const width = Math.ceil(pageAst.width) * this.imageScaleFactor;\r\n const height = Math.ceil(pageAst.height) * this.imageScaleFactor;\r\n\r\n const canvas = (this.canvasList[i] = document.createElement('canvas'));\r\n const semanticLayer = (this.semanticLayerList[i] = document.createElement('div'));\r\n const textLayer = (this.textLayerList[i] = document.createElement('div'));\r\n const textLayerParent = (this.textLayerParentList[i] = document.createElement('div'));\r\n\r\n const ctx = canvas.getContext('2d');\r\n if (ctx) {\r\n const canvasDiv = document.createElement('div');\r\n\r\n canvas.width = width;\r\n canvas.height = height;\r\n\r\n canvasDiv.appendChild(canvas);\r\n // canvasDiv.style.zIndex = '-1';\r\n // canvas.style.zIndex = '-1';\r\n commonDiv.appendChild(canvasDiv);\r\n canvasDiv.style.position = 'absolute';\r\n }\r\n\r\n {\r\n textLayerParent.appendChild(textLayer);\r\n\r\n textLayerParent.className = 'typst-html-semantics';\r\n\r\n /// on width change\r\n const containerWidth = container.offsetWidth;\r\n const originalScale = containerWidth / pageAst.width;\r\n textLayerParent.style.width = `${containerWidth}px`;\r\n textLayerParent.style.height = `${pageAst.height * originalScale}px`;\r\n // --data-text-width\r\n textLayerParent.style.setProperty('--data-text-width', `${originalScale}px`);\r\n textLayerParent.style.setProperty('--data-text-height', `${originalScale}px`);\r\n // textLayerParent.style.position = 'absolute';\r\n commonDiv.classList.add('typst-page');\r\n commonDiv.classList.add('canvas');\r\n commonDiv.style.width = `${containerWidth}px`;\r\n commonDiv.style.height = `${height * originalScale}px`;\r\n commonDiv.style.position = 'relative';\r\n\r\n // textLayerParent.style.zIndex = '1';\r\n semanticLayer.appendChild(textLayerParent);\r\n commonDiv.appendChild(semanticLayer);\r\n }\r\n };\r\n\r\n for (let i = 0; i < this.pageInfos.length; i++) {\r\n const pageAst = this.pageInfos[i];\r\n\r\n // const commonDiv = document.createElement('div');\r\n let commonDiv: HTMLDivElement | undefined = undefined;\r\n\r\n commonDiv = this.commonList[i] = document.createElement('div');\r\n container.appendChild(commonDiv);\r\n createOver(i, pageAst, commonDiv);\r\n }\r\n }\r\n\r\n resetLayout() {\r\n /// resize again to avoid bad width change after render\r\n for (let i = 0; i < this.pageInfos.length; i++) {\r\n const pageAst = this.pageInfos[i];\r\n const width = Math.ceil(pageAst.width) * this.imageScaleFactor;\r\n const height = Math.ceil(pageAst.height) * this.imageScaleFactor;\r\n\r\n const canvasDiv = this.canvasList[i].parentElement;\r\n if (!canvasDiv) {\r\n throw new Error(\r\n `canvasDiv is null for page ${i}, canvas list length ${this.canvasList.length}`,\r\n );\r\n }\r\n const commonDiv = this.commonList[i];\r\n const textLayerParent = this.textLayerParentList[i];\r\n\r\n /// on width change\r\n const containerWidth = this.container.offsetWidth;\r\n const originalScale = containerWidth / width;\r\n textLayerParent.style.width = `${containerWidth}px`;\r\n textLayerParent.style.height = `${height * originalScale}px`;\r\n commonDiv.style.width = `${containerWidth}px`;\r\n commonDiv.style.height = `${height * originalScale}px`;\r\n\r\n // compute scaling factor according to the paper size\r\n const currentScale = this.container.offsetWidth / width;\r\n canvasDiv.style.transformOrigin = '0px 0px';\r\n canvasDiv.style.transform = `scale(${currentScale})`;\r\n }\r\n }\r\n}\r\n","/**\r\n * The reference of a WebAssembly module which is copied from the wasm-bindgen\r\n * @see https://github.com/rustwasm/wasm-bindgen/blob/2c622715c9e6602f7bb377828c72f7953b178ed7/crates/cli-support/src/js/mod.rs#L656\r\n *\r\n * Your most common use case will be to pass a URL to a wasm file here.\r\n * + `WebAssembly.Module` - An instantiated wasm module.\r\n * + `URL` - Remote url to a wasm file\r\n * + `BufferSource` - An ArrayBufferView or an ArrayBuffer\r\n */\r\nexport type WebAssemblyModuleRef = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;\r\n\r\n/**\r\n * @internal\r\n */\r\nconst once = <T extends any>(fn: () => T) => {\r\n let called = false;\r\n let res: T;\r\n return () => {\r\n if (called) {\r\n return res;\r\n }\r\n called = true;\r\n return (res = fn());\r\n };\r\n};\r\n\r\n/** @internal copied from wasm-bindgen */\r\ntype WasmModuleInitParam = WebAssemblyModuleRef | Promise<WebAssemblyModuleRef> | undefined;\r\n\r\n/** @internal */\r\nexport class LazyWasmModule {\r\n private wasmBin: WasmModuleInitParam;\r\n private initOnce: () => Promise<void>;\r\n\r\n constructor(initFn: (param: WasmModuleInitParam) => Promise<unknown>) {\r\n if (typeof initFn !== 'function') {\r\n throw new Error('initFn is not a function');\r\n }\r\n\r\n this.initOnce = once(async () => {\r\n await initFn(this.wasmBin);\r\n });\r\n }\r\n\r\n async init(module?: WebAssemblyModuleRef | Promise<WebAssemblyModuleRef>) {\r\n this.wasmBin = module;\r\n await this.initOnce();\r\n }\r\n}\r\n","import { BeforeBuildMark, InitOptions, LazyFont } from './options.init.mjs';\r\nimport { LazyWasmModule } from './wasm.mjs';\r\n\r\n/** @internal */\r\nexport interface TypstCommonBuilder<T> {\r\n free(): void;\r\n\r\n add_raw_font(font_buffer: Uint8Array): Promise<void>;\r\n\r\n add_lazy_font<C extends LazyFont>(\r\n info: C,\r\n blob: (this: C, index: number) => Uint8Array,\r\n ): Promise<void>;\r\n\r\n build(): Promise<T>;\r\n}\r\n\r\n/** @internal */\r\nexport interface ComponentBuildHooks {\r\n latelyBuild?: (ctx: unknown) => void;\r\n}\r\n\r\ninterface InitContext<T> {\r\n ref: {\r\n loadFonts(builder: TypstCommonBuilder<T>, fonts: (string | Uint8Array)[]): Promise<void>;\r\n };\r\n builder: TypstCommonBuilder<T>;\r\n hooks: ComponentBuildHooks;\r\n}\r\n\r\nclass ComponentBuilder<T> {\r\n loadedFonts = new Set<string>();\r\n fetcher?: typeof fetch = fetch;\r\n\r\n setFetcher(fetcher: typeof fetch): void {\r\n this.fetcher = fetcher;\r\n }\r\n\r\n async loadFonts(\r\n builder: TypstCommonBuilder<T>,\r\n fonts: (string | Uint8Array | LazyFont)[],\r\n ): Promise<void> {\r\n const escapeImport = new Function('m', 'return import(m)');\r\n const fetcher = (this.fetcher ||= await (async function () {\r\n const { fetchBuilder, FileSystemCache } = await escapeImport('node-fetch-cache');\r\n const cache = new FileSystemCache({\r\n /// By default, we don't have a complicated cache policy.\r\n cacheDirectory: '.cache/typst/fonts',\r\n });\r\n\r\n const cachedFetcher = fetchBuilder.withCache(cache);\r\n\r\n return function (input: RequestInfo | URL, init?: RequestInit) {\r\n const timeout = setTimeout(() => {\r\n console.warn('font fetching is stucking:', input);\r\n }, 15000);\r\n return cachedFetcher(input, init).finally(() => {\r\n clearTimeout(timeout);\r\n });\r\n };\r\n })());\r\n\r\n const fontsToLoad = fonts.filter(font => {\r\n if (font instanceof Uint8Array || (typeof font === 'object' && 'info' in font)) {\r\n return true;\r\n }\r\n\r\n if (this.loadedFonts.has(font)) {\r\n return false;\r\n }\r\n\r\n this.loadedFonts.add(font);\r\n return true;\r\n });\r\n\r\n const fontLists = await Promise.all(\r\n fontsToLoad.map(async font => {\r\n if (font instanceof Uint8Array) {\r\n await builder.add_raw_font(font);\r\n return;\r\n }\r\n if (typeof font === 'object' && 'info' in font) {\r\n await builder.add_lazy_font(font, 'blob' in font ? font.blob : loadFontSync(font));\r\n return;\r\n }\r\n\r\n return new Uint8Array(await (await fetcher(font)).arrayBuffer());\r\n }),\r\n );\r\n\r\n for (const font of fontLists) {\r\n if (!font) {\r\n continue;\r\n }\r\n await builder.add_raw_font(font);\r\n }\r\n }\r\n\r\n async build(\r\n options: Partial<InitOptions> | undefined,\r\n builder: TypstCommonBuilder<T>,\r\n hooks: ComponentBuildHooks,\r\n ): Promise<T> {\r\n /// build typst component\r\n const buildCtx: InitContext<T> = { ref: this, builder, hooks };\r\n\r\n for (const fn of options?.beforeBuild ?? []) {\r\n await fn(undefined as unknown as BeforeBuildMark, buildCtx);\r\n }\r\n // await addPartialFonts(buildCtx);\r\n\r\n if (hooks.latelyBuild) {\r\n hooks.latelyBuild(buildCtx);\r\n }\r\n\r\n return await builder.build();\r\n }\r\n}\r\n\r\n/** @internal */\r\nexport async function buildComponent<T>(\r\n options: Partial<InitOptions> | undefined,\r\n gModule: LazyWasmModule,\r\n Builder: { new (): TypstCommonBuilder<T> },\r\n hooks: ComponentBuildHooks,\r\n): Promise<T> {\r\n /// init typst wasm module\r\n await gModule.init(options?.getModule?.());\r\n\r\n return await new ComponentBuilder<T>().build(options, new Builder(), hooks);\r\n}\r\n\r\n/**\r\n * Loads a font by a lazy font synchronously, which is required by the compiler.\r\n * @param font\r\n */\r\nexport function loadFontSync(font: LazyFont & { url: string }): (index: number) => Uint8Array {\r\n return () => {\r\n const xhr = new XMLHttpRequest();\r\n xhr.overrideMimeType('text/plain; charset=x-user-defined');\r\n xhr.open('GET', font.url, false);\r\n xhr.send(null);\r\n\r\n if (\r\n xhr.status === 200 &&\r\n (xhr.response instanceof String || typeof xhr.response === 'string')\r\n ) {\r\n return Uint8Array.from(xhr.response, (c: string) => c.charCodeAt(0));\r\n }\r\n return new Uint8Array();\r\n };\r\n}\r\n","import type { RenderSession } from '../../renderer.mjs';\r\nimport { TypstCancellationToken } from './typst-cancel.mjs';\r\n\r\nexport interface ContainerDOMState {\r\n /// cached `hookedElem.offsetWidth` or `hookedElem.innerWidth`\r\n width: number;\r\n /// cached `hookedElem.offsetHeight` or `hookedElem.innerHeight`\r\n height: number;\r\n window: {\r\n innerWidth: number;\r\n innerHeight: number;\r\n };\r\n /// cached `hookedElem.getBoundingClientRect()`\r\n /// We only use `left` and `top` here.\r\n boundingRect: {\r\n left: number;\r\n top: number;\r\n right: number;\r\n };\r\n}\r\n\r\nexport type RenderMode = 'svg' | 'canvas' | 'dom';\r\n\r\nexport enum PreviewMode {\r\n Doc,\r\n Slide,\r\n}\r\n\r\nexport interface Options {\r\n hookedElem: HTMLElement;\r\n kModule: RenderSession;\r\n renderMode?: RenderMode;\r\n previewMode?: PreviewMode;\r\n isContentPreview?: boolean;\r\n sourceMapping?: boolean;\r\n retrieveDOMState?: () => ContainerDOMState;\r\n}\r\n\r\nexport type GConstructor<T = {}> = new (...args: any[]) => T;\r\n\r\ninterface TypstDocumentFacade {\r\n rescale(): void;\r\n rerender(): Promise<void>;\r\n postRender(): void;\r\n}\r\n\r\nexport class TypstDocumentContext<O = any> {\r\n public hookedElem: HTMLElement;\r\n public kModule: RenderSession;\r\n public opts: O;\r\n modes: [string, TypstDocumentFacade][] = [];\r\n\r\n /// Configuration fields\r\n\r\n /// enable partial rendering\r\n partialRendering: boolean = true;\r\n /// underlying renderer\r\n renderMode: RenderMode = 'svg';\r\n r: TypstDocumentFacade = undefined!;\r\n /// preview mode\r\n previewMode: PreviewMode = PreviewMode.Doc;\r\n /// whether this is a content preview\r\n isContentPreview: boolean = false;\r\n /// whether this content preview will mix outline titles\r\n isMixinOutline: boolean = false;\r\n /// background color\r\n backgroundColor: string = 'black';\r\n /// default page color (empty string means transparent)\r\n pageColor: string = 'white';\r\n /// pixel per pt\r\n pixelPerPt: number = 3;\r\n /// customized way to retrieving dom state\r\n retrieveDOMState: () => ContainerDOMState;\r\n\r\n /// State fields\r\n\r\n /// whether svg is updating (in triggerSvgUpdate)\r\n isRendering: boolean = false;\r\n /// whether kModule is initialized\r\n moduleInitialized: boolean = false;\r\n /// patch queue for updating data.\r\n patchQueue: [string, string][] = [];\r\n /// resources to dispose\r\n disposeList: (() => void)[] = [];\r\n /// canvas render ctoken\r\n canvasRenderCToken?: TypstCancellationToken;\r\n\r\n /// There are two scales in this class: The real scale is to adjust the size\r\n /// of `hookedElem` to fit the svg. The virtual scale (scale ratio) is to let\r\n /// user zoom in/out the svg. For example:\r\n /// + the default value of virtual scale is 1, which means the svg is totally\r\n /// fit in `hookedElem`.\r\n /// + if user set virtual scale to 0.5, then the svg will be zoomed out to fit\r\n /// in half width of `hookedElem`. \"real\" current scale of `hookedElem`\r\n currentRealScale: number = 1;\r\n /// \"virtual\" current scale of `hookedElem`\r\n currentScaleRatio: number = 1;\r\n /// timeout for delayed viewport change\r\n vpTimeout: any = undefined;\r\n /// sampled by last render time.\r\n sampledRenderTime: number = 0;\r\n /// page to partial render\r\n partialRenderPage: number = 0;\r\n /// outline data\r\n outline: any = undefined;\r\n /// cursor position in form of [page, x, y]\r\n cursorPosition?: [number, number, number] = undefined;\r\n // id: number = rnd++;\r\n\r\n /// Cache fields\r\n\r\n /// cached state of container, default to retrieve state from `this.hookedElem`\r\n cachedDOMState: ContainerDOMState = {\r\n width: 0,\r\n height: 0,\r\n window: {\r\n innerWidth: 0,\r\n innerHeight: 0,\r\n },\r\n boundingRect: {\r\n left: 0,\r\n top: 0,\r\n right: 0,\r\n },\r\n };\r\n\r\n constructor(opts: Options & O) {\r\n this.hookedElem = opts.hookedElem;\r\n this.kModule = opts.kModule;\r\n this.opts = opts || {};\r\n\r\n /// Apply configuration\r\n {\r\n const { renderMode, previewMode, isContentPreview, retrieveDOMState } = opts || {};\r\n this.partialRendering = false;\r\n this.renderMode = renderMode ?? this.renderMode;\r\n this.previewMode = previewMode ?? this.previewMode;\r\n this.isContentPreview = isContentPreview || false;\r\n this.retrieveDOMState =\r\n retrieveDOMState ??\r\n (() => {\r\n return {\r\n width: this.hookedElem.offsetWidth,\r\n height: this.hookedElem.offsetHeight,\r\n window: {\r\n innerWidth: window.innerWidth,\r\n innerHeight: window.innerHeight,\r\n },\r\n boundingRect: this.hookedElem.getBoundingClientRect(),\r\n };\r\n });\r\n this.backgroundColor = getComputedStyle(document.documentElement).getPropertyValue(\r\n '--typst-preview-background-color',\r\n );\r\n }\r\n\r\n // if init scale == 1\r\n // hide scrollbar if scale == 1\r\n\r\n this.hookedElem.classList.add('hide-scrollbar-x');\r\n this.hookedElem.parentElement?.classList.add('hide-scrollbar-x');\r\n if (this.previewMode === PreviewMode.Slide) {\r\n this.hookedElem.classList.add('hide-scrollbar-y');\r\n this.hookedElem.parentElement?.classList.add('hide-scrollbar-y');\r\n }\r\n\r\n this.installCtrlWheelHandler();\r\n }\r\n\r\n reset() {\r\n this.kModule.reset();\r\n this.moduleInitialized = false;\r\n }\r\n\r\n dispose() {\r\n const disposeList = this.disposeList;\r\n this.disposeList = [];\r\n disposeList.forEach(x => x());\r\n }\r\n\r\n static derive(ctx: any, mode: string) {\r\n return ['rescale', 'rerender', 'postRender'].reduce((acc: any, x: string) => {\r\n acc[x] = ctx[`${x}$${mode}`].bind(ctx);\r\n console.assert(acc[x] !== undefined, `${x}$${mode} is undefined`);\r\n return acc;\r\n }, {} as TypstDocumentFacade);\r\n }\r\n\r\n registerMode(mode: any) {\r\n const facade = TypstDocumentContext.derive(this, mode);\r\n this.modes.push([mode, facade]);\r\n if (mode === this.renderMode) {\r\n this.r = facade;\r\n }\r\n }\r\n\r\n private installCtrlWheelHandler() {\r\n // Ctrl+scroll rescaling\r\n // will disable auto resizing\r\n // fixed factors, same as pdf.js\r\n const factors = [\r\n 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1, 1.1, 1.3, 1.5, 1.7, 1.9, 2.1, 2.4, 2.7, 3,\r\n 3.3, 3.7, 4.1, 4.6, 5.1, 5.7, 6.3, 7, 7.7, 8.5, 9.4, 10,\r\n ];\r\n const wheelEventHandler = (event: WheelEvent) => {\r\n if (event.ctrlKey) {\r\n event.preventDefault();\r\n // retrieve dom state before any operation\r\n this.cachedDOMState = this.retrieveDOMState();\r\n if (window.onresize !== null) {\r\n // is auto resizing\r\n window.onresize = null;\r\n }\r\n const prevScaleRatio = this.currentScaleRatio;\r\n // Get wheel scroll direction and calculate new scale\r\n if (event.deltaY < 0) {\r\n // enlarge\r\n if (this.currentScaleRatio >= factors.at(-1)!) {\r\n // already large than max factor\r\n return;\r\n } else {\r\n this.currentScaleRatio = factors.filter(x => x > this.currentScaleRatio).at(0)!;\r\n }\r\n } else if (event.deltaY > 0) {\r\n // reduce\r\n if (this.currentScaleRatio <= factors.at(0)!) {\r\n return;\r\n } else {\r\n this.currentScaleRatio = factors.filter(x => x < this.currentScaleRatio).at(-1)!;\r\n }\r\n } else {\r\n // no y-axis scroll\r\n return;\r\n }\r\n const scrollFactor = this.currentScaleRatio / prevScaleRatio;\r\n const scrollX = event.pageX * (scrollFactor - 1);\r\n const scrollY = event.pageY * (scrollFactor - 1);\r\n // hide scrollbar if scale == 1\r\n if (Math.abs(this.currentScaleRatio - 1) < 1e-5) {\r\n this.hookedElem.classList.add('hide-scrollbar-x');\r\n this.hookedElem.parentElement?.classList.add('hide-scrollbar-x');\r\n if (this.previewMode === PreviewMode.Slide) {\r\n this.hookedElem.classList.add('hide-scrollbar-y');\r\n this.hookedElem.parentElement?.classList.add('hide-scrollbar-y');\r\n }\r\n } else {\r\n this.hookedElem.classList.remove('hide-scrollbar-x');\r\n this.hookedElem.parentElement?.classList.remove('hide-scrollbar-x');\r\n if (this.previewMode === PreviewMode.Slide) {\r\n this.hookedElem.classList.remove('hide-scrollbar-y');\r\n this.hookedElem.parentElement?.classList.remove('hide-scrollbar-y');\r\n }\r\n }\r\n // reserve space to scroll down\r\n const svg = this.hookedElem.firstElementChild! as SVGElement;\r\n if (svg) {\r\n const scaleRatio = this.getSvgScaleRatio();\r\n const dataHeight = Number.parseFloat(svg.getAttribute('data-height')!);\r\n const scaledHeight = Math.ceil(dataHeight * scaleRatio);\r\n // we increase the height by 2 times.\r\n // The `2` is only a magic number that is large enough.\r\n this.hookedElem.style.height = `${scaledHeight * 2}px`;\r\n }\r\n // make sure the cursor is still on the same position\r\n window.scrollBy(scrollX, scrollY);\r\n // toggle scale change event\r\n this.addViewportChange();\r\n return false;\r\n }\r\n };\r\n\r\n if (this.renderMode !== 'dom') {\r\n const vscodeAPI = typeof acquireVsCodeApi !== 'undefined';\r\n if (vscodeAPI) {\r\n window.addEventListener('wheel', wheelEventHandler, {\r\n passive: false,\r\n });\r\n this.disposeList.push(() => {\r\n window.removeEventListener('wheel', wheelEventHandler);\r\n });\r\n } else {\r\n document.body.addEventListener('wheel', wheelEventHandler, {\r\n passive: false,\r\n });\r\n this.disposeList.push(() => {\r\n document.body.removeEventListener('wheel', wheelEventHandler);\r\n });\r\n }\r\n }\r\n }\r\n\r\n /// Get current scale from html to svg\r\n // Note: one should retrieve dom state before rescale\r\n getSvgScaleRatio() {\r\n const svg = this.hookedElem.firstElementChild as SVGElement;\r\n if (!svg) {\r\n return 0;\r\n }\r\n\r\n const container = this.cachedDOMState;\r\n\r\n const svgWidth = Number.parseFloat(\r\n svg.getAttribute('data-width') || svg.getAttribute('width') || '1',\r\n );\r\n const svgHeight = Number.parseFloat(\r\n svg.getAttribute('data-height') || svg.getAttribute('height') || '1',\r\n );\r\n this.currentRealScale =\r\n this.previewMode === PreviewMode.Slide\r\n ? Math.min(container.width / svgWidth, container.height / svgHeight)\r\n : container.width / svgWidth;\r\n\r\n return this.currentRealScale * this.currentScaleRatio;\r\n }\r\n\r\n private processQueue(svgUpdateEvent: [string, string]): boolean {\r\n const eventName = svgUpdateEvent[0];\r\n switch (eventName) {\r\n case 'new':\r\n case 'diff-v1': {\r\n if (eventName === 'new') {\r\n this.reset();\r\n }\r\n this.kModule.manipulateData({\r\n action: 'merge',\r\n data: svgUpdateEvent[1] as unknown as Uint8Array,\r\n });\r\n\r\n this.moduleInitialized = true;\r\n return true;\r\n }\r\n case 'viewport-change': {\r\n if (!this.moduleInitialized) {\r\n console.log('viewport-change before initialization');\r\n return false;\r\n }\r\n return true;\r\n }\r\n default:\r\n console.log('svgUpdateEvent', svgUpdateEvent);\r\n return false;\r\n }\r\n }\r\n\r\n private triggerUpdate() {\r\n if (this.isRendering) {\r\n return;\r\n }\r\n\r\n this.isRendering = true;\r\n const doUpdate = async () => {\r\n this.cachedDOMState = this.retrieveDOMState();\r\n\r\n if (this.patchQueue.length === 0) {\r\n this.isRendering = false;\r\n this.postprocessChanges();\r\n return;\r\n }\r\n\r\n try {\r\n let t0 = performance.now();\r\n\r\n const ctoken = this.canvasRenderCToken;\r\n if (ctoken) {\r\n await ctoken.cancel();\r\n await ctoken.wait();\r\n this.canvasRenderCToken = undefined;\r\n console.log('cancel canvas rendering');\r\n }\r\n\r\n let needRerender = false;\r\n // console.log('patchQueue', JSON.stringify(this.patchQueue.map(x => x[0])));\r\n while (this.patchQueue.length > 0) {\r\n needRerender = this.processQueue(this.patchQueue.shift()!) || needRerender;\r\n }\r\n\r\n // todo: trigger viewport change once\r\n let t1 = performance.now();\r\n if (needRerender) {\r\n this.r.rescale();\r\n await this.r.rerender();\r\n this.r.rescale();\r\n }\r\n let t2 = performance.now();\r\n\r\n /// perf event\r\n const d = (e: string, x: number, y: number) => `${e} ${(y - x).toFixed(2)} ms`;\r\n this.sampledRenderTime = t2 - t0;\r\n // todo: log in production\r\n // console.log([d('parse', t0, t1), d('rerender', t1, t2), d('total', t0, t2)].join(', '));\r\n\r\n requestAnimationFrame(doUpdate);\r\n } catch (e) {\r\n console.error(e);\r\n this.isRendering = false;\r\n this.postprocessChanges();\r\n }\r\n };\r\n requestAnimationFrame(doUpdate);\r\n }\r\n\r\n private postprocessChanges() {\r\n this.r.postRender();\r\n\r\n // todo: abstract this\r\n if (this.previewMode === PreviewMode.Slide) {\r\n document.querySelectorAll('.typst-page-number-indicator').forEach(x => {\r\n x.textContent = `${this.kModule.retrievePagesInfo().length}`;\r\n });\r\n }\r\n }\r\n\r\n addChangement(change: [string, string]) {\r\n if (change[0] === 'new') {\r\n this.patchQueue.splice(0, this.patchQueue.length);\r\n }\r\n\r\n const pushChange = () => {\r\n this.vpTimeout = undefined;\r\n this.patchQueue.push(change);\r\n this.triggerUpdate();\r\n };\r\n\r\n if (this.vpTimeout !== undefined) {\r\n clearTimeout(this.vpTimeout);\r\n }\r\n\r\n if (change[0] === 'viewport-change' && this.isRendering) {\r\n // delay viewport change a bit\r\n this.vpTimeout = setTimeout(pushChange, this.sampledRenderTime || 100);\r\n } else {\r\n pushChange();\r\n }\r\n }\r\n\r\n addViewportChange() {\r\n this.addChangement(['viewport-change', '']);\r\n }\r\n}\r\n\r\nexport interface TypstDocument<T> {\r\n impl: T;\r\n kModule: RenderSession;\r\n dispose(): void;\r\n reset(): void;\r\n addChangement(change: [string, string]): void;\r\n addViewportChange(): void;\r\n setPageColor(color: string): void;\r\n setPartialRendering(partialRendering: boolean): void;\r\n setCursor(page: number, x: number, y: number): void;\r\n setPartialPageNumber(page: number): boolean;\r\n getPartialPageNumber(): number;\r\n setOutineData(outline: any): void;\r\n}\r\n\r\nexport function provideDoc<T extends TypstDocumentContext>(\r\n Base: GConstructor<T>,\r\n): new (options: Options & T['opts']) => TypstDocument<T> {\r\n return class TypstDocument {\r\n public impl: T;\r\n public kModule: RenderSession;\r\n\r\n constructor(options: Options) {\r\n if (options.isContentPreview) {\r\n options.renderMode = 'canvas';\r\n }\r\n\r\n this.kModule = options.kModule;\r\n this.impl = new Base(options);\r\n if (!this.impl.r) {\r\n throw new Error(`mode is not supported, ${options?.renderMode}`);\r\n }\r\n\r\n if (options.isContentPreview) {\r\n // content preview has very bad performance without partial rendering\r\n this.impl.partialRendering = true;\r\n this.impl.pixelPerPt = 1;\r\n this.impl.isMixinOutline = true;\r\n }\r\n }\r\n\r\n dispose() {\r\n this.impl.dispose();\r\n }\r\n\r\n reset() {\r\n this.impl.reset();\r\n }\r\n\r\n addChangement(change: [string, string]) {\r\n this.impl.addChangement(change);\r\n }\r\n\r\n addViewportChange() {\r\n this.impl.addViewportChange();\r\n }\r\n\r\n setPageColor(color: string) {\r\n this.impl.pageColor = color;\r\n this.addViewportChange();\r\n }\r\n\r\n setPartialRendering(partialRendering: boolean) {\r\n this.impl.partialRendering = partialRendering;\r\n }\r\n\r\n setCursor(page: number, x: number, y: number) {\r\n this.impl.cursorPosition = [page, x, y];\r\n }\r\n\r\n setPartialPageNumber(page: number): boolean {\r\n if (page <= 0 || page > this.kModule.retrievePagesInfo().length) {\r\n return false;\r\n }\r\n this.impl.partialRenderPage = page - 1;\r\n this.addViewportChange();\r\n return true;\r\n }\r\n\r\n getPartialPageNumber(): number {\r\n return this.impl.partialRenderPage + 1;\r\n }\r\n\r\n setOutineData(outline: any) {\r\n this.impl.outline = outline;\r\n this.addViewportChange();\r\n }\r\n };\r\n}\r\n\r\nexport function composeDoc<TBase extends GConstructor, F1>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n): TBase & F1;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n): TBase & F1 & F2;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n): TBase & F1 & F2 & F3;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3, F4>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n f4: (base: F3) => F4,\r\n): TBase & F1 & F2 & F3 & F4;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3, F4, F5>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n f4: (base: F3) => F4,\r\n f5: (base: F4) => F5,\r\n): TBase & F1 & F2 & F3 & F4 & F5;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3, F4, F5, F6>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n f4: (base: F3) => F4,\r\n f5: (base: F4) => F5,\r\n f6: (base: F5) => F6,\r\n): TBase & F1 & F2 & F3 & F4 & F5 & F6;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3, F4, F5, F6, F7>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n f4: (base: F3) => F4,\r\n f5: (base: F4) => F5,\r\n f6: (base: F5) => F6,\r\n f7: (base: F6) => F7,\r\n): TBase & F1 & F2 & F3 & F4 & F5 & F6 & F7;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3, F4, F5, F6, F7, F8>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n f4: (base: F3) => F4,\r\n f5: (base: F4) => F5,\r\n f6: (base: F5) => F6,\r\n f7: (base: F6) => F7,\r\n f8: (base: F7) => F8,\r\n): TBase & F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8;\r\nexport function composeDoc<TBase extends GConstructor, F1, F2, F3, F4, F5, F6, F7, F8, F9>(\r\n Base: TBase,\r\n f1: (base: TBase) => F1,\r\n f2: (base: F1) => F2,\r\n f3: (base: F2) => F3,\r\n f4: (base: F3) => F4,\r\n f5: (base: F4) => F5,\r\n f6: (base: F5) => F6,\r\n f7: (base: F6) => F7,\r\n f8: (base: F7) => F8,\r\n f9: (base: F8) => F9,\r\n): TBase & F1 & F2 & F3 & F4 & F5 & F6 & F7 & F8 & F9;\r\nexport function composeDoc<TBase extends GConstructor>(Base: TBase, ...mixins: any[]): TBase {\r\n return mixins.reduce((acc, mixin) => mixin(acc), Base);\r\n}\r\n","export class TypstCancellationToken {\r\n isCancellationRequested: boolean = false;\r\n private _onCancelled: Promise<void>;\r\n private _onCancelledResolveResolved: Promise<() => void>;\r\n\r\n constructor() {\r\n let resolveT: () => void = undefined!;\r\n let resolveX: (_: () => void) => void = undefined!;\r\n this._onCancelled = new Promise(resolve => {\r\n resolveT = resolve;\r\n if (resolveX) {\r\n resolveX(resolve);\r\n }\r\n });\r\n this._onCancelledResolveResolved = new Promise(resolve => {\r\n resolveX = resolve;\r\n if (resolveT) {\r\n resolve(resolveT);\r\n }\r\n });\r\n }\r\n\r\n async cancel(): Promise<void> {\r\n await this._onCancelledResolveResolved;\r\n this.isCancellationRequested = true;\r\n }\r\n\r\n isCancelRequested(): boolean {\r\n return this.isCancellationRequested;\r\n }\r\n\r\n async consume(): Promise<void> {\r\n (await this._onCancelledResolveResolved)();\r\n }\r\n\r\n wait(): Promise<void> {\r\n return this._onCancelled;\r\n }\r\n}\r\n","import type { IncrDomDocClient } from '@myriaddreamin/typst-ts-renderer';\r\nimport { Rect, kObject } from './internal.types.mjs';\r\nimport { TypstRenderer, TypstRendererDriver } from './renderer.mjs';\r\nimport {\r\n GConstructor,\r\n TypstDocumentContext,\r\n composeDoc,\r\n provideDoc,\r\n} from './contrib/dom/typst-doc.mjs';\r\nimport { TypstCancellationToken } from './contrib/dom/typst-cancel.mjs';\r\n\r\nconst animationFrame = () => new Promise(resolve => requestAnimationFrame(resolve));\r\n\r\nclass DomPage {\r\n dispose() { }\r\n}\r\n\r\nconst enum TrackMode {\r\n Doc,\r\n Pages,\r\n}\r\n\r\nconst enum RepaintStage {\r\n Layout = 0,\r\n Svg = 1,\r\n Semantics = 2,\r\n PrepareCanvas = 3,\r\n Canvas = 4,\r\n}\r\n\r\nexport interface ITypstDomDocument {\r\n mountDom(pixelPerPt: number | undefined): Promise<void>;\r\n}\r\n\r\nexport interface InitDomDocArgs {\r\n renderer: TypstRenderer;\r\n domScale?: number;\r\n}\r\n\r\ninterface RenderTask {\r\n cancel(): Promise<void>;\r\n}\r\n\r\nexport function provideDomDoc<TBase extends GConstructor<TypstDocumentContext<InitDomDocArgs>>>(\r\n Base: TBase,\r\n): TBase & GConstructor<ITypstDomDocument> {\r\n return class DomDocument extends Base {\r\n /// The template element for creating DOM by string.\r\n tmpl = document.createElement('template');\r\n /// The stub element for replacing an invisible element.\r\n stub = this.createElement('<stub></stub>');\r\n /// Typescript side of lib.\r\n plugin: TypstRendererDriver;\r\n /// Rust side of kernel.\r\n docKernel: IncrDomDocClient;\r\n /// The element to track.\r\n resourceHeader: SVGElement = undefined!;\r\n /// Expected exact state of the current DOM.\r\n /// Initially it is empty meaning no any page is rendered.\r\n pages: DomPage[] = [];\r\n /// The virtual scale of the document.\r\n domScale = 1;\r\n /// Track mode.\r\n track_mode: TrackMode = TrackMode.Doc;\r\n /// Current executing task.\r\n current_task?: RenderTask = undefined;\r\n /// The currently maintained viewport.\r\n viewport: Rect;\r\n constructor(...args: any[]) {\r\n super(...args);\r\n this.registerMode('dom');\r\n this.disposeList.push(() => {\r\n this.dispose();\r\n });\r\n this.plugin = this.opts.renderer as any as TypstRendererDriver;\r\n if (this.opts.domScale !== undefined) {\r\n if (this.opts.domScale <= 0) {\r\n throw new Error('domScale must be positive');\r\n }\r\n this.domScale = this.opts.domScale;\r\n }\r\n }\r\n\r\n dispose() {\r\n for (const page of this.pages) {\r\n page.dispose();\r\n }\r\n\r\n if (this.docKernel) {\r\n this.docKernel.free();\r\n }\r\n }\r\n\r\n createElement(tmpl: string) {\r\n this.tmpl.innerHTML = tmpl;\r\n return this.tmpl.content.firstElementChild;\r\n }\r\n\r\n async mountDom(pixelPerPt: number | undefined) {\r\n // console.log('mountDom', pixelPerPt);\r\n\r\n if (this.docKernel) {\r\n throw new Error('already mounted');\r\n }\r\n\r\n // create typst-svg-resources by string\r\n this.hookedElem.innerHTML = `<svg class=\"typst-svg-resources\" viewBox=\"0 0 0 0\" width=\"0\" height=\"0\" style=\"opacity: 0; position: absolute;\"></svg>`;\r\n this.resourceHeader = this.hookedElem.querySelector('.typst-svg-resources')!;\r\n\r\n this.docKernel = await this.plugin.renderer.mount_dom(this.kModule[kObject], this.hookedElem);\r\n\r\n this.docKernel.bind_functions({\r\n populateGlyphs: (data: string) => {\r\n let svg = this.createElement(data)!;\r\n // console.log('populateGlyphs', svg);\r\n let content = svg.firstElementChild!;\r\n this.resourceHeader.append(content);\r\n },\r\n });\r\n }\r\n\r\n async cancelAnyway$dom() {\r\n // console.log('cancelAnyway$dom');\r\n if (this.current_task) {\r\n const task = this.current_task;\r\n this.current_task = undefined;\r\n await task.cancel();\r\n }\r\n }\r\n\r\n retrieveDOMPages() {\r\n return Array.from(this.hookedElem.querySelectorAll('.typst-dom-page'));\r\n }\r\n\r\n // doesn't need to postRender\r\n postRender$dom() { }\r\n\r\n // doesn't need to rescale\r\n rescale$dom() { }\r\n\r\n getDomViewport(\r\n cachedWindow: Pick<Window, 'innerHeight' | 'innerWidth'>,\r\n cachedBoundingRect: Pick<DOMRect, 'left' | 'top' | 'right'>,\r\n ) {\r\n const left = cachedBoundingRect.left;\r\n const top = -cachedBoundingRect.top;\r\n const right = cachedBoundingRect.right;\r\n const bottom = cachedWindow.innerHeight - cachedBoundingRect.top;\r\n const rect = {\r\n x: 0,\r\n y: top / this.domScale,\r\n width: Math.max(right - left, 0) / this.domScale,\r\n height: Math.max(bottom - top, 0) / this.domScale,\r\n };\r\n if (rect.width <= 0 || rect.height <= 0) {\r\n rect.x = rect.y = rect.width = rect.height = 0;\r\n }\r\n // console.log('ccc', basePos, appPos, rect);\r\n return rect;\r\n }\r\n\r\n // fast mode\r\n async rerender$dom() {\r\n const domState = this.retrieveDOMState();\r\n\r\n // const l = domState.boundingRect.left;\r\n const { x, y, width, height } = this.getDomViewport(domState.window, domState.boundingRect);\r\n\r\n let dirty = await this.docKernel.relayout(x, y, width, height);\r\n if (!dirty) {\r\n return;\r\n }\r\n\r\n const cancel = new TypstCancellationToken();\r\n this.doRender$dom(cancel);\r\n this.current_task = cancel;\r\n }\r\n\r\n async doRender$dom(ctx: TypstCancellationToken) {\r\n const condOrExit = <T,>(needFrame: boolean, cb: () => Promise<T>) => {\r\n if (needFrame && !ctx.isCancelRequested() && cb) {\r\n return cb();\r\n }\r\n };\r\n const pages = this.retrieveDOMPages().map(page => {\r\n const { innerWidth, innerHeight } = window;\r\n const browserBBox = page.getBoundingClientRect();\r\n // any part of the page is in the window\r\n return {\r\n inWindow: !(\r\n browserBBox.left > innerWidth ||\r\n browserBBox.right < 0 ||\r\n browserBBox.top > innerHeight ||\r\n browserBBox.bottom < 0\r\n ),\r\n page,\r\n };\r\n });\r\n const renderPage = async (i: number) => {\r\n await animationFrame();\r\n if (ctx.isCancelRequested()) {\r\n // console.log('cancel stage', RepaintStage.Layout, i);\r\n return undefined;\r\n }\r\n const page = pages[i].page;\r\n const browserBBox = page.getBoundingClientRect();\r\n const v = this.getDomViewport(window, browserBBox);\r\n\r\n const needCalc = (stage: RepaintStage) =>\r\n this.docKernel.need_repaint(i, v.x, v.y, v.width, v.height, stage);\r\n const repaint = (stage: RepaintStage) =>\r\n this.docKernel.repaint(i, v.x, v.y, v.width, v.height, stage);\r\n const calc = (stage: RepaintStage) => {\r\n if (ctx.isCancelRequested()) {\r\n return undefined;\r\n }\r\n return condOrExit(needCalc(stage), () => repaint(stage));\r\n };\r\n\r\n await calc(RepaintStage.Layout);\r\n\r\n const wScale =\r\n (browserBBox.width\r\n ? Number.parseFloat(page.getAttribute('data-width')!) / browserBBox.width\r\n : 1) * this.domScale;\r\n const hScale =\r\n (browserBBox.height\r\n ? Number.parseFloat(page.getAttribute('data-height')!) / browserBBox.height\r\n : 1) * this.domScale;\r\n v.x *= wScale;\r\n v.y *= hScale;\r\n v.y -= 100;\r\n v.width *= wScale;\r\n v.height *= hScale;\r\n v.height += 200;\r\n\r\n await calc(RepaintStage.Svg);\r\n await calc(RepaintStage.Semantics);\r\n if (ctx.isCancelRequested()) {\r\n // console.log('cancel stage', RepaintStage.Semantics, i);\r\n return undefined;\r\n }\r\n if (needCalc(RepaintStage.PrepareCanvas)) {\r\n const calcCanvasAfterPreparing = async () => {\r\n await repaint(RepaintStage.PrepareCanvas);\r\n if (ctx.isCancelRequested()) {\r\n return undefined;\r\n }\r\n return calc(RepaintStage.Canvas);\r\n };\r\n calcCanvasAfterPreparing();\r\n } else {\r\n await calc(RepaintStage.Canvas);\r\n }\r\n };\r\n const renderPages = async (inWindow: boolean) => {\r\n for (let idx = 0; idx < pages.length; ++idx) {\r\n if (ctx.isCancelRequested()) {\r\n // console.log('cancel page', RepaintStage.Layout, idx);\r\n return;\r\n }\r\n if (pages[idx].inWindow === inWindow) {\r\n await renderPage(idx);\r\n }\r\n }\r\n };\r\n\r\n this.cancelAnyway$dom();\r\n\r\n await renderPages(true);\r\n await renderPages(false);\r\n if (ctx.isCancelRequested()) {\r\n return;\r\n }\r\n // console.log('finished', RepaintStage.Layout);\r\n }\r\n };\r\n}\r\n\r\nexport class TypstDomDocument extends provideDoc(\r\n composeDoc(\r\n TypstDocumentContext as GConstructor<TypstDocumentContext<InitDomDocArgs>>,\r\n provideDomDoc,\r\n ),\r\n) { }\r\n","/// Processed by wasm-debundle.mjs\nlet wasm;\n\nfunction addHeapObject(obj) {\n if (heap_next === heap.length) heap.push(heap.length + 1);\n const idx = heap_next;\n heap_next = heap[idx];\n if (typeof(heap_next) !== 'number') throw new Error('corrupt heap');\n heap[idx] = obj;\n return idx;\n}\n\nfunction _assertBoolean(n) {\n if (typeof(n) !== 'boolean') {\n throw new Error(`expected a boolean argument, found ${typeof(n)}`);\n }\n}\n\nfunction _assertClass(instance, klass) {\n if (!(instance instanceof klass)) {\n throw new Error(`expected instance of ${klass.name}`);\n }\n}\n\nfunction _assertNum(n) {\n if (typeof(n) !== 'number') throw new Error(`expected a number argument, found ${typeof(n)}`);\n}\n\nconst CLOSURE_DTORS = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(state => state.dtor(state.a, state.b));\n\nfunction debugString(val) {\n // primitive types\n const type = typeof val;\n if (type == 'number' || type == 'boolean' || val == null) {\n return `${val}`;\n }\n if (type == 'string') {\n return `\"${val}\"`;\n }\n if (type == 'symbol') {\n const description = val.description;\n if (description == null) {\n return 'Symbol';\n } else {\n return `Symbol(${description})`;\n }\n }\n if (type == 'function') {\n const name = val.name;\n if (typeof name == 'string' && name.length > 0) {\n return `Function(${name})`;\n } else {\n return 'Function';\n }\n }\n // objects\n if (Array.isArray(val)) {\n const length = val.length;\n let debug = '[';\n if (length > 0) {\n debug += debugString(val[0]);\n }\n for(let i = 1; i < length; i++) {\n debug += ', ' + debugString(val[i]);\n }\n debug += ']';\n return debug;\n }\n // Test for built-in\n const builtInMatches = /\\[object ([^\\]]+)\\]/.exec(toString.call(val));\n let className;\n if (builtInMatches && builtInMatches.length > 1) {\n className = builtInMatches[1];\n } else {\n // Failed to match the standard '[object ClassName]'\n return toString.call(val);\n }\n if (className == 'Object') {\n // we're a user defined class or Object\n // JSON.stringify avoids problems with cycles, and is generally much\n // easier than looping through ownProperties of `val`.\n try {\n return 'Object(' + JSON.stringify(val) + ')';\n } catch (_) {\n return 'Object';\n }\n }\n // errors\n if (val instanceof Error) {\n return `${val.name}: ${val.message}\\n${val.stack}`;\n }\n // TODO we could test for more things here, like `Set`s and `Map`s.\n return className;\n}\n\nfunction dropObject(idx) {\n if (idx < 132) return;\n heap[idx] = heap_next;\n heap_next = idx;\n}\n\nfunction getArrayU8FromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len);\n}\n\nlet cachedDataViewMemory0 = null;\nfunction getDataViewMemory0() {\n if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {\n cachedDataViewMemory0 = new DataView(wasm.memory.buffer);\n }\n return cachedDataViewMemory0;\n}\n\nfunction getStringFromWasm0(ptr, len) {\n ptr = ptr >>> 0;\n return decodeText(ptr, len);\n}\n\nlet cachedUint32ArrayMemory0 = null;\nfunction getUint32ArrayMemory0() {\n if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {\n cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);\n }\n return cachedUint32ArrayMemory0;\n}\n\nlet cachedUint8ArrayMemory0 = null;\nfunction getUint8ArrayMemory0() {\n if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {\n cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);\n }\n return cachedUint8ArrayMemory0;\n}\n\nfunction getObject(idx) { return heap[idx]; }\n\nfunction handleError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n wasm.__wbindgen_export3(addHeapObject(e));\n }\n}\n\nlet heap = new Array(128).fill(undefined);\nheap.push(undefined, null, true, false);\n\nlet heap_next = heap.length;\n\nfunction isLikeNone(x) {\n return x === undefined || x === null;\n}\n\nfunction logError(f, args) {\n try {\n return f.apply(this, args);\n } catch (e) {\n let error = (function () {\n try {\n return e instanceof Error ? `${e.message}\\n\\nStack:\\n${e.stack}` : e.toString();\n } catch(_) {\n return \"<failed to stringify thrown value>\";\n }\n }());\n console.error(\"wasm-bindgen: imported JS function that was not marked as `catch` threw an error:\", error);\n throw e;\n }\n}\n\nfunction makeClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n try {\n return f(state.a, state.b, ...args);\n } finally {\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction makeMutClosure(arg0, arg1, dtor, f) {\n const state = { a: arg0, b: arg1, cnt: 1, dtor };\n const real = (...args) => {\n\n // First up with a closure we increment the internal reference\n // count. This ensures that the Rust closure environment won't\n // be deallocated while we're invoking it.\n state.cnt++;\n const a = state.a;\n state.a = 0;\n try {\n return f(a, state.b, ...args);\n } finally {\n state.a = a;\n real._wbg_cb_unref();\n }\n };\n real._wbg_cb_unref = () => {\n if (--state.cnt === 0) {\n state.dtor(state.a, state.b);\n state.a = 0;\n CLOSURE_DTORS.unregister(state);\n }\n };\n CLOSURE_DTORS.register(real, state, state);\n return real;\n}\n\nfunction passArray32ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 4, 4) >>> 0;\n getUint32ArrayMemory0().set(arg, ptr / 4);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArray8ToWasm0(arg, malloc) {\n const ptr = malloc(arg.length * 1, 1) >>> 0;\n getUint8ArrayMemory0().set(arg, ptr / 1);\n WASM_VECTOR_LEN = arg.length;\n return ptr;\n}\n\nfunction passArrayJsValueToWasm0(array, malloc) {\n const ptr = malloc(array.length * 4, 4) >>> 0;\n const mem = getDataViewMemory0();\n for (let i = 0; i < array.length; i++) {\n mem.setUint32(ptr + 4 * i, addHeapObject(array[i]), true);\n }\n WASM_VECTOR_LEN = array.length;\n return ptr;\n}\n\nfunction passStringToWasm0(arg, malloc, realloc) {\n if (typeof(arg) !== 'string') throw new Error(`expected a string argument, found ${typeof(arg)}`);\n if (realloc === undefined) {\n const buf = cachedTextEncoder.encode(arg);\n const ptr = malloc(buf.length, 1) >>> 0;\n getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);\n WASM_VECTOR_LEN = buf.length;\n return ptr;\n }\n\n let len = arg.length;\n let ptr = malloc(len, 1) >>> 0;\n\n const mem = getUint8ArrayMemory0();\n\n let offset = 0;\n\n for (; offset < len; offset++) {\n const code = arg.charCodeAt(offset);\n if (code > 0x7F) break;\n mem[ptr + offset] = code;\n }\n if (offset !== len) {\n if (offset !== 0) {\n arg = arg.slice(offset);\n }\n ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;\n const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);\n const ret = cachedTextEncoder.encodeInto(arg, view);\n if (ret.read !== arg.length) throw new Error('failed to pass whole string');\n offset += ret.written;\n ptr = realloc(ptr, len, offset, 1) >>> 0;\n }\n\n WASM_VECTOR_LEN = offset;\n return ptr;\n}\n\nfunction takeObject(idx) {\n const ret = getObject(idx);\n dropObject(idx);\n return ret;\n}\n\nlet cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\ncachedTextDecoder.decode();\nconst MAX_SAFARI_DECODE_BYTES = 2146435072;\nlet numBytesDecoded = 0;\nfunction decodeText(ptr, len) {\n numBytesDecoded += len;\n if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {\n cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });\n cachedTextDecoder.decode();\n numBytesDecoded = len;\n }\n return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));\n}\n\nconst cachedTextEncoder = new TextEncoder();\n\nif (!('encodeInto' in cachedTextEncoder)) {\n cachedTextEncoder.encodeInto = function (arg, view) {\n const buf = cachedTextEncoder.encode(arg);\n view.set(buf);\n return {\n read: arg.length,\n written: buf.length\n };\n }\n}\n\nlet WASM_VECTOR_LEN = 0;\n\nfunction __wasm_bindgen_func_elem_1034(arg0, arg1) {\n _assertNum(arg0);\n _assertNum(arg1);\n wasm.__wasm_bindgen_func_elem_1034(arg0, arg1);\n}\n\nfunction __wasm_bindgen_func_elem_1035(arg0, arg1, arg2) {\n _assertNum(arg0);\n _assertNum(arg1);\n wasm.__wasm_bindgen_func_elem_1035(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_1056(arg0, arg1, arg2) {\n _assertNum(arg0);\n _assertNum(arg1);\n wasm.__wasm_bindgen_func_elem_1056(arg0, arg1, addHeapObject(arg2));\n}\n\nfunction __wasm_bindgen_func_elem_3553(arg0, arg1, arg2, arg3) {\n _assertNum(arg0);\n _assertNum(arg1);\n wasm.__wasm_bindgen_func_elem_3553(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));\n}\n\nconst __wbindgen_enum_CanvasWindingRule = [\"nonzero\", \"evenodd\"];\n\nconst CreateSessionOptionsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_createsessionoptions_free(ptr >>> 0, 1));\n\nconst IncrDomDocClientFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_incrdomdocclient_free(ptr >>> 0, 1));\n\nconst PageInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pageinfo_free(ptr >>> 0, 1));\n\nconst PagesInfoFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_pagesinfo_free(ptr >>> 0, 1));\n\nconst RenderPageImageOptionsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_renderpageimageoptions_free(ptr >>> 0, 1));\n\nconst RenderSessionFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_rendersession_free(ptr >>> 0, 1));\n\nconst RenderSessionOptionsFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_rendersessionoptions_free(ptr >>> 0, 1));\n\nconst TypstRendererFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_typstrenderer_free(ptr >>> 0, 1));\n\nconst TypstRendererBuilderFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_typstrendererbuilder_free(ptr >>> 0, 1));\n\nconst TypstWorkerFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_typstworker_free(ptr >>> 0, 1));\n\nconst WorkerBridgeFinalization = (typeof FinalizationRegistry === 'undefined')\n ? { register: () => {}, unregister: () => {} }\n : new FinalizationRegistry(ptr => wasm.__wbg_workerbridge_free(ptr >>> 0, 1));\n\nexport class CreateSessionOptions {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n CreateSessionOptionsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_createsessionoptions_free(ptr, 0);\n }\n constructor() {\n const ret = wasm.createsessionoptions_new();\n this.__wbg_ptr = ret >>> 0;\n CreateSessionOptionsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * @param {string} format\n */\n set format(format) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ptr0 = passStringToWasm0(format, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.createsessionoptions_set_format(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @param {Uint8Array} artifact_content\n */\n set artifact_content(artifact_content) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ptr0 = passArray8ToWasm0(artifact_content, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n wasm.createsessionoptions_set_artifact_content(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) CreateSessionOptions.prototype[Symbol.dispose] = CreateSessionOptions.prototype.free;\n\n/**\n * maintains the state of the incremental rendering at client side\n */\nexport class IncrDomDocClient {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(IncrDomDocClient.prototype);\n obj.__wbg_ptr = ptr;\n IncrDomDocClientFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n IncrDomDocClientFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_incrdomdocclient_free(ptr, 0);\n }\n /**\n * @param {any} functions\n */\n bind_functions(functions) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n wasm.incrdomdocclient_bind_functions(this.__wbg_ptr, addHeapObject(functions));\n }\n /**\n * Relayout the document in the given window.\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @returns {Promise<boolean>}\n */\n relayout(x, y, w, h) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.incrdomdocclient_relayout(this.__wbg_ptr, x, y, w, h);\n return takeObject(ret);\n }\n /**\n * @param {number} page_num\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {number} stage\n * @returns {boolean}\n */\n need_repaint(page_num, x, y, w, h, stage) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertNum(page_num);\n _assertNum(stage);\n wasm.incrdomdocclient_need_repaint(retptr, this.__wbg_ptr, page_num, x, y, w, h, stage);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return r0 !== 0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {number} page_num\n * @param {number} x\n * @param {number} y\n * @param {number} w\n * @param {number} h\n * @param {number} stage\n * @returns {any}\n */\n repaint(page_num, x, y, w, h, stage) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertNum(page_num);\n _assertNum(stage);\n wasm.incrdomdocclient_repaint(retptr, this.__wbg_ptr, page_num, x, y, w, h, stage);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) IncrDomDocClient.prototype[Symbol.dispose] = IncrDomDocClient.prototype.free;\n\nexport class PageInfo {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PageInfo.prototype);\n obj.__wbg_ptr = ptr;\n PageInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PageInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pageinfo_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get page_off() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.pageinfo_page_off(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @returns {number}\n */\n get width_pt() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.pageinfo_width_pt(this.__wbg_ptr);\n return ret;\n }\n /**\n * @returns {number}\n */\n get height_pt() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.pageinfo_height_pt(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) PageInfo.prototype[Symbol.dispose] = PageInfo.prototype.free;\n\nexport class PagesInfo {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(PagesInfo.prototype);\n obj.__wbg_ptr = ptr;\n PagesInfoFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n PagesInfoFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_pagesinfo_free(ptr, 0);\n }\n /**\n * @returns {number}\n */\n get page_count() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.pagesinfo_page_count(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} num\n * @returns {PageInfo | undefined}\n */\n page_by_number(num) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertNum(num);\n const ret = wasm.pagesinfo_page_by_number(this.__wbg_ptr, num);\n return ret === 0 ? undefined : PageInfo.__wrap(ret);\n }\n /**\n * @param {number} i\n * @returns {PageInfo}\n */\n page(i) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertNum(i);\n const ret = wasm.pagesinfo_page(this.__wbg_ptr, i);\n return PageInfo.__wrap(ret);\n }\n /**\n * @returns {number}\n */\n width() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.pagesinfo_width(this.__wbg_ptr);\n return ret;\n }\n /**\n * @returns {number}\n */\n height() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.pagesinfo_height(this.__wbg_ptr);\n return ret;\n }\n}\nif (Symbol.dispose) PagesInfo.prototype[Symbol.dispose] = PagesInfo.prototype.free;\n\nexport class RenderPageImageOptions {\n static __unwrap(jsValue) {\n if (!(jsValue instanceof RenderPageImageOptions)) {\n return 0;\n }\n return jsValue.__destroy_into_raw();\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RenderPageImageOptionsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_renderpageimageoptions_free(ptr, 0);\n }\n constructor() {\n const ret = wasm.renderpageimageoptions_new();\n this.__wbg_ptr = ret >>> 0;\n RenderPageImageOptionsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * @returns {number | undefined}\n */\n get pixel_per_pt() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.renderpageimageoptions_pixel_per_pt(this.__wbg_ptr);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @param {number | null} [pixel_per_pt]\n */\n set pixel_per_pt(pixel_per_pt) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n if (!isLikeNone(pixel_per_pt)) {\n _assertNum(pixel_per_pt);\n }\n wasm.renderpageimageoptions_set_pixel_per_pt(this.__wbg_ptr, isLikeNone(pixel_per_pt) ? 0x100000001 : Math.fround(pixel_per_pt));\n }\n /**\n * @returns {string | undefined}\n */\n get background_color() {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.renderpageimageoptions_background_color(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [background_color]\n */\n set background_color(background_color) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n var ptr0 = isLikeNone(background_color) ? 0 : passStringToWasm0(background_color, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len0 = WASM_VECTOR_LEN;\n wasm.renderpageimageoptions_set_background_color(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @returns {number}\n */\n get page_off() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.renderpageimageoptions_page_off(this.__wbg_ptr);\n return ret >>> 0;\n }\n /**\n * @param {number} page_off\n */\n set page_off(page_off) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertNum(page_off);\n wasm.renderpageimageoptions_set_page_off(this.__wbg_ptr, page_off);\n }\n /**\n * @returns {string | undefined}\n */\n get cache_key() {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.renderpageimageoptions_cache_key(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [cache_key]\n */\n set cache_key(cache_key) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n var ptr0 = isLikeNone(cache_key) ? 0 : passStringToWasm0(cache_key, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len0 = WASM_VECTOR_LEN;\n wasm.renderpageimageoptions_set_cache_key(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @returns {number | undefined}\n */\n get data_selection() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.renderpageimageoptions_data_selection(this.__wbg_ptr);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @param {number | null} [data_selection]\n */\n set data_selection(data_selection) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n if (!isLikeNone(data_selection)) {\n _assertNum(data_selection);\n }\n wasm.renderpageimageoptions_set_data_selection(this.__wbg_ptr, isLikeNone(data_selection) ? 0x100000001 : (data_selection) >>> 0);\n }\n}\nif (Symbol.dispose) RenderPageImageOptions.prototype[Symbol.dispose] = RenderPageImageOptions.prototype.free;\n\nexport class RenderSession {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(RenderSession.prototype);\n obj.__wbg_ptr = ptr;\n RenderSessionFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RenderSessionFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_rendersession_free(ptr, 0);\n }\n /**\n * @param {number} rect_lo_x\n * @param {number} rect_lo_y\n * @param {number} rect_hi_x\n * @param {number} rect_hi_y\n * @returns {string}\n */\n render_in_window(rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y) {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.rendersession_render_in_window(retptr, this.__wbg_ptr, rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * @returns {number | undefined}\n */\n get pixel_per_pt() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.rendersession_pixel_per_pt(this.__wbg_ptr);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @param {number | null} [pixel_per_pt]\n */\n set pixel_per_pt(pixel_per_pt) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n if (!isLikeNone(pixel_per_pt)) {\n _assertNum(pixel_per_pt);\n }\n wasm.rendersession_set_pixel_per_pt(this.__wbg_ptr, isLikeNone(pixel_per_pt) ? 0x100000001 : Math.fround(pixel_per_pt));\n }\n /**\n * @returns {string | undefined}\n */\n get background_color() {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.rendersession_background_color(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [background_color]\n */\n set background_color(background_color) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n var ptr0 = isLikeNone(background_color) ? 0 : passStringToWasm0(background_color, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len0 = WASM_VECTOR_LEN;\n wasm.rendersession_set_background_color(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @returns {PagesInfo}\n */\n get pages_info() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.rendersession_pages_info(this.__wbg_ptr);\n return PagesInfo.__wrap(ret);\n }\n /**\n * @returns {number}\n */\n get doc_width() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.rendersession_doc_width(this.__wbg_ptr);\n return ret;\n }\n /**\n * @returns {number}\n */\n get doc_height() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.rendersession_doc_height(this.__wbg_ptr);\n return ret;\n }\n /**\n * @param {Uint32Array} path\n * @returns {string | undefined}\n */\n source_span(path) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n const ptr0 = passArray32ToWasm0(path, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n wasm.rendersession_source_span(retptr, this.__wbg_ptr, ptr0, len0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n if (r3) {\n throw takeObject(r2);\n }\n let v2;\n if (r0 !== 0) {\n v2 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n }\n return v2;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) RenderSession.prototype[Symbol.dispose] = RenderSession.prototype.free;\n\nexport class RenderSessionOptions {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n RenderSessionOptionsFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_rendersessionoptions_free(ptr, 0);\n }\n constructor() {\n const ret = wasm.rendersessionoptions_new();\n this.__wbg_ptr = ret >>> 0;\n RenderSessionOptionsFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * @returns {number | undefined}\n */\n get pixel_per_pt() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.rendersession_pixel_per_pt(this.__wbg_ptr);\n return ret === 0x100000001 ? undefined : ret;\n }\n /**\n * @param {number | null} [pixel_per_pt]\n */\n set pixel_per_pt(pixel_per_pt) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n if (!isLikeNone(pixel_per_pt)) {\n _assertNum(pixel_per_pt);\n }\n wasm.rendersession_set_pixel_per_pt(this.__wbg_ptr, isLikeNone(pixel_per_pt) ? 0x100000001 : Math.fround(pixel_per_pt));\n }\n /**\n * @returns {string | undefined}\n */\n get background_color() {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.rendersessionoptions_background_color(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [background_color]\n */\n set background_color(background_color) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n var ptr0 = isLikeNone(background_color) ? 0 : passStringToWasm0(background_color, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len0 = WASM_VECTOR_LEN;\n wasm.rendersessionoptions_set_background_color(this.__wbg_ptr, ptr0, len0);\n }\n /**\n * @returns {string | undefined}\n */\n get format() {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.rendersessionoptions_format(retptr, this.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n let v1;\n if (r0 !== 0) {\n v1 = getStringFromWasm0(r0, r1).slice();\n wasm.__wbindgen_export4(r0, r1 * 1, 1);\n }\n return v1;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {string | null} [format]\n */\n set format(format) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n var ptr0 = isLikeNone(format) ? 0 : passStringToWasm0(format, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len0 = WASM_VECTOR_LEN;\n wasm.rendersessionoptions_set_format(this.__wbg_ptr, ptr0, len0);\n }\n}\nif (Symbol.dispose) RenderSessionOptions.prototype[Symbol.dispose] = RenderSessionOptions.prototype.free;\n\nexport class TypstRenderer {\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(TypstRenderer.prototype);\n obj.__wbg_ptr = ptr;\n TypstRendererFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n TypstRendererFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_typstrenderer_free(ptr, 0);\n }\n constructor() {\n const ret = wasm.typstrenderer_new();\n this.__wbg_ptr = ret >>> 0;\n TypstRendererFinalization.register(this, this.__wbg_ptr, this);\n return this;\n }\n /**\n * @param {CreateSessionOptions | null} [options]\n * @returns {RenderSession}\n */\n create_session(options) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n let ptr0 = 0;\n if (!isLikeNone(options)) {\n _assertClass(options, CreateSessionOptions);\n if (options.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n ptr0 = options.__destroy_into_raw();\n }\n wasm.typstrenderer_create_session(retptr, this.__wbg_ptr, ptr0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return RenderSession.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {RenderSession} session\n */\n reset(session) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertClass(session, RenderSession);\n if (session.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n wasm.typstrenderer_reset(retptr, this.__wbg_ptr, session.__wbg_ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n if (r1) {\n throw takeObject(r0);\n }\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {RenderSession} session\n * @param {string} action\n * @param {Uint8Array} data\n */\n manipulate_data(session, action, data) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertClass(session, RenderSession);\n if (session.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n const ptr0 = passStringToWasm0(action, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArray8ToWasm0(data, wasm.__wbindgen_export);\n const len1 = WASM_VECTOR_LEN;\n wasm.typstrenderer_manipulate_data(retptr, this.__wbg_ptr, session.__wbg_ptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n if (r1) {\n throw takeObject(r0);\n }\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {Uint8Array} artifact_content\n * @param {string} decoder\n * @returns {RenderSession}\n */\n session_from_artifact(artifact_content, decoder) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n const ptr0 = passArray8ToWasm0(artifact_content, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passStringToWasm0(decoder, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n wasm.typstrenderer_session_from_artifact(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return RenderSession.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {any} _v\n */\n load_glyph_pack(_v) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n wasm.typstrenderer_load_glyph_pack(retptr, this.__wbg_ptr, addHeapObject(_v));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n if (r1) {\n throw takeObject(r0);\n }\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {RenderSession} session\n * @param {number} rect_lo_x\n * @param {number} rect_lo_y\n * @param {number} rect_hi_x\n * @param {number} rect_hi_y\n * @returns {string}\n */\n render_svg_diff(session, rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y) {\n let deferred1_0;\n let deferred1_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertClass(session, RenderSession);\n if (session.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n wasm.typstrenderer_render_svg_diff(retptr, this.__wbg_ptr, session.__wbg_ptr, rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n deferred1_0 = r0;\n deferred1_1 = r1;\n return getStringFromWasm0(r0, r1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);\n }\n }\n /**\n * @param {RenderSession} session\n * @param {number | null} [parts]\n * @returns {string}\n */\n svg_data(session, parts) {\n let deferred2_0;\n let deferred2_1;\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertClass(session, RenderSession);\n if (session.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n if (!isLikeNone(parts)) {\n _assertNum(parts);\n }\n wasm.typstrenderer_svg_data(retptr, this.__wbg_ptr, session.__wbg_ptr, isLikeNone(parts) ? 0x100000001 : (parts) >>> 0);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);\n var ptr1 = r0;\n var len1 = r1;\n if (r3) {\n ptr1 = 0; len1 = 0;\n throw takeObject(r2);\n }\n deferred2_0 = ptr1;\n deferred2_1 = len1;\n return getStringFromWasm0(ptr1, len1);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n wasm.__wbindgen_export4(deferred2_0, deferred2_1, 1);\n }\n }\n /**\n * @param {RenderSession} session\n * @returns {Array<any> | undefined}\n */\n get_customs(session) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertClass(session, RenderSession);\n if (session.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n const ret = wasm.typstrenderer_get_customs(this.__wbg_ptr, session.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @param {RenderSession} session\n * @param {HTMLElement} root\n * @returns {boolean}\n */\n render_svg(session, root) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n _assertClass(session, RenderSession);\n if (session.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n wasm.typstrenderer_render_svg(retptr, this.__wbg_ptr, session.__wbg_ptr, addHeapObject(root));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return r0 !== 0;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {any} _w\n * @returns {Promise<TypstWorker>}\n */\n create_worker(_w) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.typstrenderer_create_worker(this.__wbg_ptr, addHeapObject(_w));\n return takeObject(ret);\n }\n /**\n * @returns {WorkerBridge}\n */\n create_worker_bridge() {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const ptr = this.__destroy_into_raw();\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(ptr);\n wasm.typstrenderer_create_worker_bridge(retptr, ptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return WorkerBridge.__wrap(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @param {RenderSession} ses\n * @param {any} canvas\n * @param {RenderPageImageOptions | null} [options]\n * @returns {Promise<any>}\n */\n render_page_to_canvas(ses, canvas, options) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertClass(ses, RenderSession);\n if (ses.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n let ptr0 = 0;\n if (!isLikeNone(options)) {\n _assertClass(options, RenderPageImageOptions);\n if (options.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n ptr0 = options.__destroy_into_raw();\n }\n const ret = wasm.typstrenderer_render_page_to_canvas(this.__wbg_ptr, ses.__wbg_ptr, addHeapObject(canvas), ptr0);\n return takeObject(ret);\n }\n /**\n * @param {RenderSession} ses\n * @param {HTMLElement} elem\n * @returns {Promise<IncrDomDocClient>}\n */\n mount_dom(ses, elem) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n _assertClass(ses, RenderSession);\n if (ses.__wbg_ptr === 0) {\n throw new Error('Attempt to use a moved value');\n }\n const ret = wasm.typstrenderer_mount_dom(this.__wbg_ptr, ses.__wbg_ptr, addHeapObject(elem));\n return takeObject(ret);\n }\n}\nif (Symbol.dispose) TypstRenderer.prototype[Symbol.dispose] = TypstRenderer.prototype.free;\n\nexport class TypstRendererBuilder {\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n TypstRendererBuilderFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_typstrendererbuilder_free(ptr, 0);\n }\n constructor() {\n try {\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n wasm.typstrendererbuilder_new(retptr);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n this.__wbg_ptr = r0 >>> 0;\n TypstRendererBuilderFinalization.register(this, this.__wbg_ptr, this);\n return this;\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Promise<TypstRenderer>}\n */\n build() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const ptr = this.__destroy_into_raw();\n _assertNum(ptr);\n const ret = wasm.typstrendererbuilder_build(ptr);\n return takeObject(ret);\n }\n /**\n * @param {any} _pack\n * @returns {Promise<void>}\n */\n add_glyph_pack(_pack) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.typstrendererbuilder_add_glyph_pack(this.__wbg_ptr, addHeapObject(_pack));\n return takeObject(ret);\n }\n /**\n * @param {Uint8Array} _font_buffer\n * @returns {Promise<void>}\n */\n add_raw_font(_font_buffer) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.typstrendererbuilder_add_raw_font(this.__wbg_ptr, addHeapObject(_font_buffer));\n return takeObject(ret);\n }\n /**\n * @param {any} _font\n * @param {any} _blob\n * @returns {Promise<void>}\n */\n add_lazy_font(_font, _blob) {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.typstrendererbuilder_add_lazy_font(this.__wbg_ptr, addHeapObject(_font), addHeapObject(_blob));\n return takeObject(ret);\n }\n}\nif (Symbol.dispose) TypstRendererBuilder.prototype[Symbol.dispose] = TypstRendererBuilder.prototype.free;\n\nexport class TypstWorker {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n TypstWorkerFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_typstworker_free(ptr, 0);\n }\n /**\n * @param {string} _action\n * @param {Uint8Array} _data\n * @returns {Promise<any>}\n */\n manipulate_data(_action, _data) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n const ptr0 = passStringToWasm0(_action, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len0 = WASM_VECTOR_LEN;\n wasm.typstworker_manipulate_data(retptr, this.__wbg_ptr, ptr0, len0, addHeapObject(_data));\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n /**\n * @returns {Promise<any>}\n */\n get_pages_info() {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n _assertNum(this.__wbg_ptr);\n const ret = wasm.typstworker_get_pages_info(this.__wbg_ptr);\n return takeObject(ret);\n }\n /**\n * @param {Uint8Array} _actions\n * @param {HTMLCanvasElement[]} _canvas_list\n * @param {RenderPageImageOptions[]} _data\n * @returns {Promise<any>}\n */\n render_canvas(_actions, _canvas_list, _data) {\n try {\n if (this.__wbg_ptr == 0) throw new Error('Attempt to use a moved value');\n const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);\n _assertNum(this.__wbg_ptr);\n const ptr0 = passArray8ToWasm0(_actions, wasm.__wbindgen_export);\n const len0 = WASM_VECTOR_LEN;\n const ptr1 = passArrayJsValueToWasm0(_canvas_list, wasm.__wbindgen_export);\n const len1 = WASM_VECTOR_LEN;\n const ptr2 = passArrayJsValueToWasm0(_data, wasm.__wbindgen_export);\n const len2 = WASM_VECTOR_LEN;\n wasm.typstworker_render_canvas(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1, ptr2, len2);\n var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);\n var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);\n var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);\n if (r2) {\n throw takeObject(r1);\n }\n return takeObject(r0);\n } finally {\n wasm.__wbindgen_add_to_stack_pointer(16);\n }\n }\n}\nif (Symbol.dispose) TypstWorker.prototype[Symbol.dispose] = TypstWorker.prototype.free;\n\nexport class WorkerBridge {\n constructor() {\n throw new Error('cannot invoke `new` directly');\n }\n static __wrap(ptr) {\n ptr = ptr >>> 0;\n const obj = Object.create(WorkerBridge.prototype);\n obj.__wbg_ptr = ptr;\n WorkerBridgeFinalization.register(obj, obj.__wbg_ptr, obj);\n return obj;\n }\n __destroy_into_raw() {\n const ptr = this.__wbg_ptr;\n this.__wbg_ptr = 0;\n WorkerBridgeFinalization.unregister(this);\n return ptr;\n }\n free() {\n const ptr = this.__destroy_into_raw();\n wasm.__wbg_workerbridge_free(ptr, 0);\n }\n}\nif (Symbol.dispose) WorkerBridge.prototype[Symbol.dispose] = WorkerBridge.prototype.free;\n\n/**\n * Return an object containing build info\n * CodeSize: 4KB\n * @returns {any}\n */\nexport function renderer_build_info() {\n const ret = wasm.renderer_build_info();\n return takeObject(ret);\n}\n\nconst EXPECTED_RESPONSE_TYPES = new Set(['basic', 'cors', 'default']);\n\nasync function __wbg_load(module, imports) {\n if (typeof Response === 'function' && module instanceof Response) {\n if (typeof WebAssembly.instantiateStreaming === 'function') {\n try {\n return await WebAssembly.instantiateStreaming(module, imports);\n } catch (e) {\n const validResponse = module.ok && EXPECTED_RESPONSE_TYPES.has(module.type);\n\n if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {\n console.warn(\"`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\\n\", e);\n\n } else {\n throw e;\n }\n }\n }\n\n const bytes = await module.arrayBuffer();\n return await WebAssembly.instantiate(bytes, imports);\n } else {\n const instance = await WebAssembly.instantiate(module, imports);\n\n if (instance instanceof WebAssembly.Instance) {\n return { instance, module };\n } else {\n return instance;\n }\n }\n}\n\nfunction __wbg_get_imports() {\n const imports = {};\n imports.wbg = {};\n imports.wbg.__wbg___wbindgen_debug_string_adfb662ae34724b6 = function(arg0, arg1) {\n const ret = debugString(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_is_function_8d400b8b1af978cd = function(arg0) {\n const ret = typeof(getObject(arg0)) === 'function';\n _assertBoolean(ret);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_is_undefined_f6b95eab589e0269 = function(arg0) {\n const ret = getObject(arg0) === undefined;\n _assertBoolean(ret);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_jsval_eq_b6101cc9cef1fe36 = function(arg0, arg1) {\n const ret = getObject(arg0) === getObject(arg1);\n _assertBoolean(ret);\n return ret;\n };\n imports.wbg.__wbg___wbindgen_string_get_a2a31e16edf96e42 = function(arg0, arg1) {\n const obj = getObject(arg1);\n const ret = typeof(obj) === 'string' ? obj : undefined;\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n };\n imports.wbg.__wbg___wbindgen_throw_dd24417ed36fc46e = function(arg0, arg1) {\n throw new Error(getStringFromWasm0(arg0, arg1));\n };\n imports.wbg.__wbg__wbg_cb_unref_87dfb5aaa0cbcea7 = function() { return logError(function (arg0) {\n getObject(arg0)._wbg_cb_unref();\n }, arguments) };\n imports.wbg.__wbg_appendChild_7465eba84213c75f = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).appendChild(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_3020136f7a2d6e44 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_78f94eb02ec7f9b2 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3), getObject(arg4));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_abb4ff46ce38be40 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).call(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_call_c8baa5c5e72d274e = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = getObject(arg0).call(getObject(arg1), getObject(arg2), getObject(arg3));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_clearRect_c2909c2f38887f82 = function() { return logError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).clearRect(arg1, arg2, arg3, arg4);\n }, arguments) };\n imports.wbg.__wbg_clientWidth_dbc9540f4ebdce2a = function() { return logError(function (arg0) {\n const ret = getObject(arg0).clientWidth;\n _assertNum(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_clip_35de02bb25d222d9 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).clip(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_clip_afc9a92171eee96e = function() { return logError(function (arg0, arg1) {\n getObject(arg0).clip(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_cloneNode_c9c45b24b171a776 = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).cloneNode();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_content_ad90fa08b8c037c5 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).content;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_createElement_da4ed2b219560fc6 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).createElement(getStringFromWasm0(arg1, arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_createImageBitmap_15b94d7a7277d0be = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).createImageBitmap(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_createImageBitmap_4772db6cb0dff013 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg0).createImageBitmap(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_createObjectURL_7d9f7f8f41373850 = function() { return handleError(function (arg0, arg1) {\n const ret = URL.createObjectURL(getObject(arg1));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments) };\n imports.wbg.__wbg_document_5b745e82ba551ca5 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).document;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_drawImage_2859dfb229439d8c = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);\n }, arguments) };\n imports.wbg.__wbg_drawImage_6949f7679b2a9758 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);\n }, arguments) };\n imports.wbg.__wbg_drawImage_c2aacfe3133aedb7 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3);\n }, arguments) };\n imports.wbg.__wbg_drawImage_c40aff4a38206f4a = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);\n }, arguments) };\n imports.wbg.__wbg_drawImage_c4f2c6d2bcfa9463 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3);\n }, arguments) };\n imports.wbg.__wbg_drawImage_de5946f9cc23c2b9 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3);\n }, arguments) };\n imports.wbg.__wbg_drawImage_e2012c2a2d434ee2 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) {\n getObject(arg0).drawImage(getObject(arg1), arg2, arg3, arg4, arg5);\n }, arguments) };\n imports.wbg.__wbg_error_7534b8e9a36f1ab4 = function() { return logError(function (arg0, arg1) {\n let deferred0_0;\n let deferred0_1;\n try {\n deferred0_0 = arg0;\n deferred0_1 = arg1;\n console.error(getStringFromWasm0(arg0, arg1));\n } finally {\n wasm.__wbindgen_export4(deferred0_0, deferred0_1, 1);\n }\n }, arguments) };\n imports.wbg.__wbg_fillRect_84131220403e26a4 = function() { return logError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).fillRect(arg1, arg2, arg3, arg4);\n }, arguments) };\n imports.wbg.__wbg_fillRect_e0efe328740308e7 = function() { return logError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).fillRect(arg1, arg2, arg3, arg4);\n }, arguments) };\n imports.wbg.__wbg_fill_2f2cb4f3f75aadd4 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).fill(getObject(arg1), __wbindgen_enum_CanvasWindingRule[arg2]);\n }, arguments) };\n imports.wbg.__wbg_fill_38a7d7455451c001 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).fill(getObject(arg1), __wbindgen_enum_CanvasWindingRule[arg2]);\n }, arguments) };\n imports.wbg.__wbg_fill_3d82e52894462c95 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).fill(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_fill_f1043be5324533f3 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).fill(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_firstElementChild_54d515b19cee5ae7 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).firstElementChild;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_firstElementChild_e207b33aaa4a86df = function() { return logError(function (arg0) {\n const ret = getObject(arg0).firstElementChild;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_getAttribute_80900eec94cb3636 = function() { return logError(function (arg0, arg1, arg2, arg3) {\n const ret = getObject(arg1).getAttribute(getStringFromWasm0(arg2, arg3));\n var ptr1 = isLikeNone(ret) ? 0 : passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n var len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments) };\n imports.wbg.__wbg_getContext_01f42b234e833f0a = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).getContext(getStringFromWasm0(arg1, arg2));\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_getContext_2f210d0a58d43d95 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).getContext(getStringFromWasm0(arg1, arg2));\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_get_af9dab7e9603ea93 = function() { return handleError(function (arg0, arg1) {\n const ret = Reflect.get(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_globalCompositeOperation_03e6a5201c8ee369 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg1).globalCompositeOperation;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments) };\n imports.wbg.__wbg_globalCompositeOperation_d52c6e6666e4be00 = function() { return handleError(function (arg0, arg1) {\n const ret = getObject(arg1).globalCompositeOperation;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments) };\n imports.wbg.__wbg_height_3a0b31e52a5b7f17 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).height;\n _assertNum(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_incrdomdocclient_new = function() { return logError(function (arg0) {\n const ret = IncrDomDocClient.__wrap(arg0);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_instanceof_CanvasRenderingContext2d_d070139aaac1459f = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof CanvasRenderingContext2D;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_Element_6f7ba982258cfc0f = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Element;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_HtmlCanvasElement_c4251b1b6a15edcc = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof HTMLCanvasElement;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_HtmlDivElement_a55b9d453d2d8037 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof HTMLDivElement;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_HtmlElement_20a3acb594113d73 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof HTMLElement;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_HtmlTemplateElement_702a22ea7e74d089 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof HTMLTemplateElement;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_ImageBitmap_e44697c70dffc0fe = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof ImageBitmap;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_OffscreenCanvasRenderingContext2d_52996da29a2bf2f5 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof OffscreenCanvasRenderingContext2D;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_OffscreenCanvas_8fb961f5ea27473f = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof OffscreenCanvas;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_Promise_eca6c43a2610558d = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Promise;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_SvgGraphicsElement_16c442d1a36270b3 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof SVGGraphicsElement;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_SvgsvgElement_27a38efc9750b6fa = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof SVGSVGElement;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_Window_b5cf7783caa68180 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof Window;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_instanceof_WorkerGlobalScope_9a3411db21c65a54 = function() { return logError(function (arg0) {\n let result;\n try {\n result = getObject(arg0) instanceof WorkerGlobalScope;\n } catch (_) {\n result = false;\n }\n const ret = result;\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_lastElementChild_6b90fe10adf639a2 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).lastElementChild;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_length_22ac23eaec9d8053 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).length;\n _assertNum(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_log_1d990106d99dacb7 = function() { return logError(function (arg0) {\n console.log(getObject(arg0));\n }, arguments) };\n imports.wbg.__wbg_log_fd6486c6d5396ce5 = function() { return logError(function (arg0, arg1) {\n console.log(getObject(arg0), getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_measureText_a465ecc06491802d = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).measureText(getStringFromWasm0(arg1, arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_1ba21ce319a06297 = function() { return logError(function () {\n const ret = new Object();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_25f239778d6112b9 = function() { return logError(function () {\n const ret = new Array();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_2884ddbcda091bc1 = function() { return handleError(function () {\n const ret = new Image();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_8a6f238a6ece86ea = function() { return logError(function () {\n const ret = new Error();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_9468dd6e5df427f6 = function() { return handleError(function (arg0, arg1) {\n const ret = new OffscreenCanvas(arg0 >>> 0, arg1 >>> 0);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_df1173567d5ff028 = function() { return logError(function (arg0, arg1) {\n const ret = new Error(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_ff12d2b041fb48f1 = function() { return logError(function (arg0, arg1) {\n try {\n var state0 = {a: arg0, b: arg1};\n var cb0 = (arg0, arg1) => {\n const a = state0.a;\n state0.a = 0;\n try {\n return __wasm_bindgen_func_elem_3553(a, state0.b, arg0, arg1);\n } finally {\n state0.a = a;\n }\n };\n const ret = new Promise(cb0);\n return addHeapObject(ret);\n } finally {\n state0.a = state0.b = 0;\n }\n }, arguments) };\n imports.wbg.__wbg_new_from_slice_f9c22b9153b26992 = function() { return logError(function (arg0, arg1) {\n const ret = new Uint8Array(getArrayU8FromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_no_args_cb138f77cf6151ee = function() { return logError(function (arg0, arg1) {\n const ret = new Function(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_with_length_aa5eaf41d35235e5 = function() { return logError(function (arg0) {\n const ret = new Uint8Array(arg0 >>> 0);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_with_path_string_3aea637e78135c46 = function() { return handleError(function (arg0, arg1) {\n const ret = new Path2D(getStringFromWasm0(arg0, arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_new_with_u8_array_sequence_and_options_d4def9ec0588c7ec = function() { return handleError(function (arg0, arg1) {\n const ret = new Blob(getObject(arg0), getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_nextElementSibling_c745ee48314963c0 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).nextElementSibling;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_push_7d9be8f38fc13975 = function() { return logError(function (arg0, arg1) {\n const ret = getObject(arg0).push(getObject(arg1));\n _assertNum(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_putImageData_c280ca107c4b7828 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).putImageData(getObject(arg1), arg2, arg3);\n }, arguments) };\n imports.wbg.__wbg_putImageData_e96eabf0e9610ed3 = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n getObject(arg0).putImageData(getObject(arg1), arg2, arg3);\n }, arguments) };\n imports.wbg.__wbg_queueMicrotask_9b549dfce8865860 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).queueMicrotask;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_queueMicrotask_fca69f5bfad613a5 = function() { return logError(function (arg0) {\n queueMicrotask(getObject(arg0));\n }, arguments) };\n imports.wbg.__wbg_removeProperty_c2e16faee2834bef = function() { return handleError(function (arg0, arg1, arg2, arg3) {\n const ret = getObject(arg1).removeProperty(getStringFromWasm0(arg2, arg3));\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments) };\n imports.wbg.__wbg_remove_32f69ffabcbc4072 = function() { return logError(function (arg0) {\n getObject(arg0).remove();\n }, arguments) };\n imports.wbg.__wbg_renderpageimageoptions_unwrap = function() { return logError(function (arg0) {\n const ret = RenderPageImageOptions.__unwrap(getObject(arg0));\n _assertNum(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_replaceWith_923cfb1b2f584408 = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).replaceWith(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_resolve_fd5bfbaa4ce36e1e = function() { return logError(function (arg0) {\n const ret = Promise.resolve(getObject(arg0));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_restore_352c39c9bbeedc91 = function() { return logError(function (arg0) {\n getObject(arg0).restore();\n }, arguments) };\n imports.wbg.__wbg_restore_6486cb1a7aa3af7b = function() { return logError(function (arg0) {\n getObject(arg0).restore();\n }, arguments) };\n imports.wbg.__wbg_revokeObjectURL_88db3468842ff09e = function() { return handleError(function (arg0, arg1) {\n URL.revokeObjectURL(getStringFromWasm0(arg0, arg1));\n }, arguments) };\n imports.wbg.__wbg_save_131c8dc648f702b6 = function() { return logError(function (arg0) {\n getObject(arg0).save();\n }, arguments) };\n imports.wbg.__wbg_save_b8767cfd2ee7f600 = function() { return logError(function (arg0) {\n getObject(arg0).save();\n }, arguments) };\n imports.wbg.__wbg_setAttribute_34747dd193f45828 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).setAttribute(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n }, arguments) };\n imports.wbg.__wbg_setLineDash_7e3aad159aa2710c = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).setLineDash(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_setLineDash_cfbc3a6bfddeee62 = function() { return handleError(function (arg0, arg1) {\n getObject(arg0).setLineDash(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_setProperty_f27b2c05323daf8a = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) {\n getObject(arg0).setProperty(getStringFromWasm0(arg1, arg2), getStringFromWasm0(arg3, arg4));\n }, arguments) };\n imports.wbg.__wbg_setTransform_9de588d9f080f5bc = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {\n getObject(arg0).setTransform(arg1, arg2, arg3, arg4, arg5, arg6);\n }, arguments) };\n imports.wbg.__wbg_setTransform_c55eca1193bf5ea1 = function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) {\n getObject(arg0).setTransform(arg1, arg2, arg3, arg4, arg5, arg6);\n }, arguments) };\n imports.wbg.__wbg_set_169e13b608078b7b = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).set(getArrayU8FromWasm0(arg1, arg2));\n }, arguments) };\n imports.wbg.__wbg_set_781438a03c0c3c81 = function() { return handleError(function (arg0, arg1, arg2) {\n const ret = Reflect.set(getObject(arg0), getObject(arg1), getObject(arg2));\n _assertBoolean(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbg_set_7df433eea03a5c14 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0)[arg1 >>> 0] = takeObject(arg2);\n }, arguments) };\n imports.wbg.__wbg_set_fillStyle_b26e462a87b14315 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).fillStyle = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_fillStyle_c9a0550307cd4671 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).fillStyle = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_font_6d67b15564a1e344 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).font = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_globalCompositeOperation_418a0b97ba91a947 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).globalCompositeOperation = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_globalCompositeOperation_7e16c72877ba5f86 = function() { return handleError(function (arg0, arg1, arg2) {\n getObject(arg0).globalCompositeOperation = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_height_6f8f8ef4cb40e496 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).height = arg1 >>> 0;\n }, arguments) };\n imports.wbg.__wbg_set_innerHTML_f1d03f780518a596 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).innerHTML = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_lineCap_74b37c7ff968f854 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).lineCap = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_lineCap_791e7648138cc371 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).lineCap = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_lineDashOffset_85f21a63ddf34d2c = function() { return logError(function (arg0, arg1) {\n getObject(arg0).lineDashOffset = arg1;\n }, arguments) };\n imports.wbg.__wbg_set_lineDashOffset_f032b4e2a273a2f5 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).lineDashOffset = arg1;\n }, arguments) };\n imports.wbg.__wbg_set_lineJoin_196c6ac02fd494c3 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).lineJoin = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_lineJoin_a136f09dd803e0cc = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).lineJoin = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_lineWidth_ed39767bf75d602d = function() { return logError(function (arg0, arg1) {\n getObject(arg0).lineWidth = arg1;\n }, arguments) };\n imports.wbg.__wbg_set_lineWidth_feda4b79a15c660b = function() { return logError(function (arg0, arg1) {\n getObject(arg0).lineWidth = arg1;\n }, arguments) };\n imports.wbg.__wbg_set_miterLimit_b12c03757937d228 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).miterLimit = arg1;\n }, arguments) };\n imports.wbg.__wbg_set_miterLimit_d891f47e244a915c = function() { return logError(function (arg0, arg1) {\n getObject(arg0).miterLimit = arg1;\n }, arguments) };\n imports.wbg.__wbg_set_onerror_e7e40c62a55a0770 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).onerror = getObject(arg1);\n }, arguments) };\n imports.wbg.__wbg_set_onload_5e2862e3453854de = function() { return logError(function (arg0, arg1) {\n getObject(arg0).onload = getObject(arg1);\n }, arguments) };\n imports.wbg.__wbg_set_src_84f27c5105946dce = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).src = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_strokeStyle_25d5381be570e780 = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).strokeStyle = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_strokeStyle_697a576d2d3fbeaa = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).strokeStyle = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_type_7ce650670a34c68f = function() { return logError(function (arg0, arg1, arg2) {\n getObject(arg0).type = getStringFromWasm0(arg1, arg2);\n }, arguments) };\n imports.wbg.__wbg_set_width_7ff7a22c6e9f423e = function() { return logError(function (arg0, arg1) {\n getObject(arg0).width = arg1 >>> 0;\n }, arguments) };\n imports.wbg.__wbg_stack_0ed75d68575b0f3c = function() { return logError(function (arg0, arg1) {\n const ret = getObject(arg1).stack;\n const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);\n const len1 = WASM_VECTOR_LEN;\n getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);\n getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);\n }, arguments) };\n imports.wbg.__wbg_static_accessor_GLOBAL_769e6b65d6557335 = function() { return logError(function () {\n const ret = typeof global === 'undefined' ? null : global;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_static_accessor_GLOBAL_THIS_60cf02db4de8e1c1 = function() { return logError(function () {\n const ret = typeof globalThis === 'undefined' ? null : globalThis;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_static_accessor_SELF_08f5a74c69739274 = function() { return logError(function () {\n const ret = typeof self === 'undefined' ? null : self;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_static_accessor_WINDOW_a8924b26aa92d024 = function() { return logError(function () {\n const ret = typeof window === 'undefined' ? null : window;\n return isLikeNone(ret) ? 0 : addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_stringify_655a6390e1f5eb6b = function() { return handleError(function (arg0) {\n const ret = JSON.stringify(getObject(arg0));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_stroke_41b0736a6a0b61aa = function() { return logError(function (arg0, arg1) {\n getObject(arg0).stroke(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_stroke_7cfe6d60a6c48303 = function() { return logError(function (arg0, arg1) {\n getObject(arg0).stroke(getObject(arg1));\n }, arguments) };\n imports.wbg.__wbg_style_521a717da50e53c6 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).style;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_then_429f7caf1026411d = function() { return logError(function (arg0, arg1, arg2) {\n const ret = getObject(arg0).then(getObject(arg1), getObject(arg2));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_then_4f95312d68691235 = function() { return logError(function (arg0, arg1) {\n const ret = getObject(arg0).then(getObject(arg1));\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_transferToImageBitmap_7048556ff33da7ed = function() { return handleError(function (arg0) {\n const ret = getObject(arg0).transferToImageBitmap();\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_typstrenderer_new = function() { return logError(function (arg0) {\n const ret = TypstRenderer.__wrap(arg0);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbg_warn_6e567d0d926ff881 = function() { return logError(function (arg0) {\n console.warn(getObject(arg0));\n }, arguments) };\n imports.wbg.__wbg_width_c3f96f2ca7ab208d = function() { return logError(function (arg0) {\n const ret = getObject(arg0).width;\n return ret;\n }, arguments) };\n imports.wbg.__wbg_width_f13d2e86324fc226 = function() { return logError(function (arg0) {\n const ret = getObject(arg0).width;\n _assertNum(ret);\n return ret;\n }, arguments) };\n imports.wbg.__wbindgen_cast_034b33c9b274ad29 = function() { return logError(function (arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 368, function: Function { arguments: [], shim_idx: 371, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`.\n const ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1022, __wasm_bindgen_func_elem_1034);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_cast_2241b6af4c4b2941 = function() { return logError(function (arg0, arg1) {\n // Cast intrinsic for `Ref(String) -> Externref`.\n const ret = getStringFromWasm0(arg0, arg1);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_cast_aa4fe27cfdb2d557 = function() { return logError(function (arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 368, function: Function { arguments: [Externref], shim_idx: 369, ret: Unit, inner_ret: Some(Unit) }, mutable: false }) -> Externref`.\n const ret = makeClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1022, __wasm_bindgen_func_elem_1035);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_cast_b2e692da0ea8478a = function() { return logError(function (arg0, arg1) {\n // Cast intrinsic for `Closure(Closure { dtor_idx: 464, function: Function { arguments: [Externref], shim_idx: 465, ret: Unit, inner_ret: Some(Unit) }, mutable: true }) -> Externref`.\n const ret = makeMutClosure(arg0, arg1, wasm.__wasm_bindgen_func_elem_1077, __wasm_bindgen_func_elem_1056);\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_cast_d6cd19b81560fd6e = function() { return logError(function (arg0) {\n // Cast intrinsic for `F64 -> Externref`.\n const ret = arg0;\n return addHeapObject(ret);\n }, arguments) };\n imports.wbg.__wbindgen_object_clone_ref = function(arg0) {\n const ret = getObject(arg0);\n return addHeapObject(ret);\n };\n imports.wbg.__wbindgen_object_drop_ref = function(arg0) {\n takeObject(arg0);\n };\n\n return imports;\n}\n\nfunction __wbg_finalize_init(instance, module) {\n wasm = instance.exports;\n __wbg_init.__wbindgen_wasm_module = module;\n cachedDataViewMemory0 = null;\n cachedUint32ArrayMemory0 = null;\n cachedUint8ArrayMemory0 = null;\n\n\n\n return wasm;\n}\n\nfunction initSync(module) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module !== 'undefined') {\n if (Object.getPrototypeOf(module) === Object.prototype) {\n ({module} = module)\n } else {\n console.warn('using deprecated parameters for `initSync()`; pass a single object instead')\n }\n }\n\n const imports = __wbg_get_imports();\n if (!(module instanceof WebAssembly.Module)) {\n module = new WebAssembly.Module(module);\n }\n const instance = new WebAssembly.Instance(module, imports);\n return __wbg_finalize_init(instance, module);\n}\n\nasync function __wbg_init(module_or_path) {\n if (wasm !== undefined) return wasm;\n\n\n if (typeof module_or_path !== 'undefined') {\n if (Object.getPrototypeOf(module_or_path) === Object.prototype) {\n ({module_or_path} = module_or_path)\n } else {\n console.warn('using deprecated parameters for the initialization function; pass a single object instead')\n }\n }\n\n if (typeof module_or_path === 'undefined') {\n module_or_path = importWasmModule('typst_ts_renderer_bg.wasm', import.meta.url);\n }\n const imports = __wbg_get_imports();\n\n if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {\n module_or_path = fetch(module_or_path);\n }\n\n const { instance, module } = await __wbg_load(await module_or_path, imports);\n\n return __wbg_finalize_init(instance, module);\n}\n\nexport { initSync };\nexport default __wbg_init;\n\n\nlet importWasmModule = async function(wasm_name, url) {\n throw new Error('Cannot import wasm module without importer: ' + wasm_name + ' ' + url);\n};\nfunction setImportWasmModule(importer) {\n importWasmModule = importer;\n}\nexport {\n setImportWasmModule\n}\n","\nimport { setImportWasmModule } from './typst_ts_renderer.mjs';\nimport _default from './typst_ts_renderer.mjs';\nexport * from './typst_ts_renderer.mjs';\nexport default _default;\n\nlet nodeJsImportWasmModule = async function(wasm_name, url) {\n const escapeImport = new Function('m', 'return import(m)');\n const { readFileSync } = await escapeImport('fs');\n\n const wasmPath = new URL(wasm_name, url);\n return await readFileSync(wasmPath).buffer;\n};\n\n// nodejs\nconst isNode =\n typeof process !== \"undefined\" &&\n process.versions != null &&\n process.versions.node != null;\n\nif (isNode) {\n setImportWasmModule(nodeJsImportWasmModule);\n}\n\n","// @ts-ignore\r\nimport type * as typst from '@myriaddreamin/typst-ts-renderer';\r\n\r\nimport type { InitOptions } from './options.init.mjs';\r\nimport { PageInfo, RenderCanvasResult, TypstDefaultParams, kObject } from './internal.types.mjs';\r\nimport {\r\n CreateSessionOptions,\r\n RenderToCanvasOptions,\r\n RenderOptions,\r\n RenderCanvasOptions,\r\n RenderToSvgOptions,\r\n ManipulateDataOptions,\r\n RenderSvgOptions,\r\n RenderInSessionOptions,\r\n MountDomOptions,\r\n OffscreenRenderCanvasOptions,\r\n} from './options.render.mjs';\r\nimport { RenderView } from './render/canvas/view.mjs';\r\nimport { LazyWasmModule } from './wasm.mjs';\r\nimport { buildComponent } from './init.mjs';\r\nimport { TypstDomDocument } from './dom.mjs';\r\n\r\n/**\r\n * The result of rendering a Typst document.\r\n * @typedef {Object} RenderResult\r\n * @property {number} width - The width of the rendered Typst document (single page).\r\n * @property {number} height - The height of the rendered Typst document (single page).\r\n */\r\nexport interface RenderResult {\r\n width: number;\r\n height: number;\r\n}\r\n\r\ntype ContextedRenderOptions<T> = T | RenderOptions<T>;\r\n\r\n/**\r\n * The session of a Typst document.\r\n * @property {string} backgroundColor - The background color of the Typst\r\n * document.\r\n * @property {number} pixelPerPt - The pixel per point scale up the image.\r\n *\r\n */\r\nexport class RenderSession {\r\n /**\r\n * @internal\r\n */\r\n public [kObject]: typst.RenderSession;\r\n\r\n /**\r\n * @internal\r\n */\r\n constructor(\r\n /**\r\n * @internal\r\n */\r\n private plugin: TypstRenderer,\r\n o: typst.RenderSession,\r\n ) {\r\n this[kObject] = o;\r\n }\r\n\r\n /**\r\n * @deprecated set in {@link RenderToCanvasOptions} instead\r\n *\r\n * Set the background color of the Typst document.\r\n * @param {string} t - The background color in format of `^#?[0-9a-f]{6}$`\r\n *\r\n * Note: Default to `#ffffff`.\r\n *\r\n * Note: Only available in canvas rendering mode.\r\n */\r\n set backgroundColor(t: string | undefined) {\r\n if (t !== undefined) {\r\n this[kObject].background_color = t;\r\n }\r\n }\r\n\r\n /**\r\n * Get the background color of the Typst document.\r\n *\r\n * Note: Default to `#ffffff`.\r\n *\r\n * Note: Only available in canvas rendering mode.\r\n */\r\n get backgroundColor(): string | undefined {\r\n return this[kObject].background_color;\r\n }\r\n\r\n /**\r\n * Set the pixel per point scale up the canvas panel.\r\n *\r\n * Note: Default to `3`.\r\n *\r\n * Note: Only available in canvas rendering mode.\r\n */\r\n set pixelPerPt(t: number | undefined) {\r\n if (t !== undefined) {\r\n this[kObject].pixel_per_pt = t;\r\n }\r\n }\r\n\r\n /**\r\n * @deprecated set in {@link RenderToCanvasOptions} instead\r\n *\r\n * Get the pixel per point scale up the canvas panel.\r\n *\r\n * Note: Default to `3`.\r\n *\r\n * Note: Only available in canvas rendering mode.\r\n */\r\n get pixelPerPt(): number | undefined {\r\n return this[kObject].pixel_per_pt;\r\n }\r\n\r\n /**\r\n * Reset state\r\n */\r\n reset(): void {\r\n this.plugin.resetSession(this);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n * use {@link docWidth} instead\r\n */\r\n get doc_width(): number {\r\n return this[kObject].doc_width;\r\n }\r\n\r\n get docWidth(): number {\r\n return this[kObject].doc_width;\r\n }\r\n\r\n /**\r\n * @deprecated\r\n * use {@link docHeight} instead\r\n */\r\n get doc_height(): number {\r\n return this[kObject].doc_height;\r\n }\r\n\r\n get docHeight(): number {\r\n return this[kObject].doc_height;\r\n }\r\n\r\n retrievePagesInfo(): PageInfo[] {\r\n const pages_info = this[kObject].pages_info;\r\n const pageInfos: PageInfo[] = [];\r\n const pageCount = pages_info.page_count;\r\n for (let i = 0; i < pageCount; i++) {\r\n const pageAst = pages_info.page(i);\r\n pageInfos.push({\r\n pageOffset: pageAst.page_off,\r\n width: pageAst.width_pt,\r\n height: pageAst.height_pt,\r\n });\r\n }\r\n\r\n return pageInfos;\r\n }\r\n\r\n getSourceLoc(path: Uint32Array): string | undefined {\r\n return (this[kObject] as typst.RenderSession).source_span(path);\r\n }\r\n\r\n /**\r\n * See {@link TypstRenderer#renderSvg} for more details.\r\n */\r\n renderSvg(options: ContextedRenderOptions<RenderSvgOptions>): Promise<string> {\r\n return this.plugin.renderSvg({\r\n renderSession: this,\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * See {@link TypstRenderer#renderToSvg} for more details.\r\n */\r\n renderToSvg(options: ContextedRenderOptions<RenderToSvgOptions>): Promise<boolean> {\r\n return this.plugin.renderToSvg({\r\n renderSession: this,\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * See {@link TypstRenderer#renderCanvas} for more details.\r\n */\r\n renderCanvas(options: ContextedRenderOptions<RenderCanvasOptions>): Promise<RenderCanvasResult> {\r\n return this.plugin.renderCanvas({\r\n renderSession: this,\r\n ...options,\r\n });\r\n }\r\n\r\n /**\r\n * See {@link TypstRenderer#manipulateData} for more details.\r\n */\r\n manipulateData(opts: ManipulateDataOptions) {\r\n this.plugin.manipulateData({\r\n renderSession: this,\r\n ...opts,\r\n });\r\n }\r\n\r\n /**\r\n * See {@link TypstRenderer#renderSvgDiff} for more details.\r\n */\r\n renderSvgDiff(opts: RenderSvgOptions): string {\r\n return this.plugin.renderSvgDiff({\r\n renderSession: this,\r\n ...opts,\r\n });\r\n }\r\n\r\n /**\r\n * @deprecated\r\n * use {@link getSourceLoc} instead\r\n */\r\n get_source_loc(path: Uint32Array): string | undefined {\r\n return (this[kObject] as typst.RenderSession).source_span(path);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n * use {@link renderSvgDiff} instead\r\n */\r\n render_in_window(rect_lo_x: number, rect_lo_y: number, rect_hi_x: number, rect_hi_y: number) {\r\n return this[kObject].render_in_window(rect_lo_x, rect_lo_y, rect_hi_x, rect_hi_y);\r\n }\r\n\r\n /**\r\n * @deprecated\r\n * use {@link manipulateData} instead\r\n */\r\n merge_delta(data: Uint8Array) {\r\n this.plugin.manipulateData({\r\n renderSession: this,\r\n action: 'merge',\r\n data,\r\n });\r\n }\r\n}\r\n\r\n/**\r\n * @internal\r\n */\r\nconst enum ManageStatus {\r\n Delete,\r\n New,\r\n Update,\r\n}\r\n\r\nexport class TypstWorker {\r\n /**\r\n * @internal\r\n */\r\n public [kObject]: typst.TypstWorker;\r\n\r\n /**\r\n * @internal\r\n */\r\n constructor(\r\n /**\r\n * @internal\r\n */\r\n private plugin: TypstRendererDriver,\r\n o: typst.TypstWorker,\r\n ) {\r\n this[kObject] = o;\r\n }\r\n\r\n /**\r\n * See {@link TypstRenderer#manipulateData} for more details.\r\n */\r\n manipulateData(action: string, data: Uint8Array): Promise<void> {\r\n return this[kObject].manipulate_data(action, data);\r\n }\r\n\r\n /**\r\n * @internal\r\n */\r\n managedCanvasElemList = new Map<string, [ManageStatus, OffscreenRenderCanvasOptions]>();\r\n /**\r\n * @internal\r\n */\r\n canvasCounter = Math.random();\r\n /**\r\n * You must submit all canvas in pages to ensure synchronization with the background worker\r\n *\r\n * See {@link TypstRenderer#renderCanvas} for more details.\r\n */\r\n renderCanvas(canvasElemList: OffscreenRenderCanvasOptions[]): Promise<RenderCanvasResult[]> {\r\n const m = this.managedCanvasElemList;\r\n for (const [_, elem] of m) {\r\n elem[0] = ManageStatus.Delete;\r\n }\r\n\r\n for (const elem of canvasElemList) {\r\n const canvas = elem.canvas;\r\n let elemId = canvas.dataset.manageId;\r\n let action = ManageStatus.Update;\r\n if (!elemId) {\r\n elemId = this.canvasCounter.toFixed(5);\r\n this.canvasCounter += 1;\r\n canvas.dataset.manageId = elemId;\r\n action = ManageStatus.New;\r\n }\r\n\r\n let prev = m.get(elemId);\r\n if (prev && prev[0] !== ManageStatus.Delete) {\r\n throw new Error('cannot update a canvas for two times in batch');\r\n }\r\n\r\n m.set(elemId, [action, { ...elem }]);\r\n }\r\n\r\n const entries = Array.from(m.entries());\r\n const actions = new Uint8Array(entries.length);\r\n const elements = new Array(entries.length);\r\n const options = entries.map(([key, [action, elem]], index) => {\r\n if (!action) {\r\n m.delete(key);\r\n }\r\n\r\n actions[index] = action;\r\n elements[index] = elem.canvas;\r\n return this.plugin.canvasOptionsToRust(elem);\r\n });\r\n\r\n return this[kObject].render_canvas(actions, elements, options);\r\n }\r\n\r\n async retrievePagesInfo(): Promise<PageInfo[]> {\r\n const pages_info = await this[kObject].get_pages_info();\r\n console.log(pages_info);\r\n const pageInfos: PageInfo[] = [];\r\n const pageCount = pages_info.page_count;\r\n for (let i = 0; i < pageCount; i++) {\r\n const pageAst = pages_info.page(i);\r\n pageInfos.push({\r\n pageOffset: pageAst.page_off,\r\n width: pageAst.width_pt,\r\n height: pageAst.height_pt,\r\n });\r\n }\r\n\r\n return pageInfos;\r\n }\r\n}\r\n\r\n/**\r\n * @deprecated\r\n * use {@link TypstRenderer} instead\r\n */\r\nexport interface TypstSvgRenderer {\r\n /**\r\n * Render a Typst document to svg.\r\n * @param {RenderOptions<RenderToSvgOptions>} options - The options for\r\n * rendering a Typst document to specified container.\r\n * @returns {void} - The result of rendering a Typst document.\r\n * @example\r\n * ```typescript\r\n * let fetchDoc = (path) => fetch(path).then(\r\n * response => new Uint8Array(response.arrayBuffer()))\r\n * renderer.renderToSvg({\r\n * container: document.getElementById('container'),\r\n * artifactContent: await fetchDoc('typst-main.sir.in'),\r\n * });\r\n * ```\r\n */\r\n renderToSvg(options: RenderOptions<RenderToSvgOptions>): Promise<boolean>;\r\n}\r\n\r\n\r\n/**\r\n * The interface of Typst renderer.\r\n */\r\nexport interface TypstRenderer extends TypstSvgRenderer {\r\n /**\r\n * Initialize the typst renderer.\r\n * @param {Partial<InitOptions>} options - The options for initializing the\r\n * typst renderer.\r\n */\r\n init(options?: Partial<InitOptions>): Promise<void>;\r\n\r\n /**\r\n * Load a glyph pack for all of the Typst documents to render.\r\n * Note: this function is still under development.\r\n * @param pack\r\n */\r\n loadGlyphPack(pack: unknown): Promise<void>;\r\n\r\n /**\r\n * Reset state\r\n */\r\n resetSession(session: RenderSession): void;\r\n\r\n /**\r\n * Retrieve page information of current selected document\r\n */\r\n retrievePagesInfoFromSession(session: RenderSession): PageInfo[];\r\n\r\n /**\r\n * Render a Typst document to canvas.\r\n */\r\n renderCanvas(options: RenderOptions<RenderCanvasOptions>): Promise<RenderCanvasResult>;\r\n\r\n /**\r\n * Render a Typst document to canvas.\r\n * @param {RenderOptions<RenderToCanvasOptions>} options - The options for\r\n * rendering a Typst document to specified container.\r\n * @returns {void} - The result of rendering a Typst document.\r\n * @example\r\n * ```typescript\r\n * let fetchDoc = (path) => fetch(path).then(\r\n * response => new Uint8Array(response.arrayBuffer()))\r\n * renderer.renderToCanvas({\r\n * container: document.getElementById('container'),\r\n * pixelPerPt: 3,\r\n * backgroundColor: '#ffffff',\r\n * artifactContent: await fetchDoc('typst-main.sir.in'),\r\n * });\r\n * ```\r\n */\r\n renderToCanvas(options: RenderOptions<RenderToCanvasOptions>): Promise<void>;\r\n\r\n /**\r\n * Render a Typst document to (non-incremental) svg string.\r\n * @param {RenderOptions<RenderSvgOptions>} options - The options for\r\n * rendering a Typst document to specified container.\r\n * @returns {string} - The rendered content.\r\n * @example\r\n * ```typescript\r\n * let fetchDoc = (path) => fetch(path).then(\r\n * response => new Uint8Array(response.arrayBuffer()))\r\n * const svg = renderer.renderSvg({\r\n * artifactContent: await fetchDoc('typst-main.sir.in'),\r\n * });\r\n * ```\r\n */\r\n renderSvg(options: RenderOptions<RenderSvgOptions>): Promise<string>;\r\n\r\n /**\r\n * Render a Typst document to svg.\r\n * @param {RenderOptions<RenderToSvgOptions>} options - The options for\r\n * rendering a Typst document to specified container.\r\n * @example\r\n * ```typescript\r\n * let fetchDoc = (path) => fetch(path).then(\r\n * response => new Uint8Array(response.arrayBuffer()))\r\n * renderer.renderToSvg({\r\n * container: document.getElementById('container'),\r\n * artifactContent: await fetchDoc('typst-main.sir.in'),\r\n * });\r\n * ```\r\n */\r\n renderToSvg(options: RenderOptions<RenderToSvgOptions>): Promise<boolean>;\r\n\r\n /**\r\n * Return selected current svg\r\n */\r\n getCustomV1(options: RenderInSessionOptions<{}>): Promise<any>;\r\n\r\n /**\r\n * experimental\r\n */\r\n renderSvgDiff(options: RenderInSessionOptions<RenderSvgOptions>): string;\r\n\r\n /**\r\n * Manipulate the Typst document in the session.\r\n * See {@link ManipulateDataOptions} for more details.\r\n * @param {RenderSession} session - The Typst document session that has been\r\n * created by TypstRenderer.\r\n * @param {ManipulateDataOptions} opts - The options for manipulating the\r\n * Typst document in the session.\r\n *\r\n * @example\r\n * reset the data to the initial state.\r\n * ```typescript\r\n * const session = await renderer.createSession(...);\r\n * await renderer.manipulateData(session, {\r\n * action: 'reset',\r\n * data: new Uint8Array(...),\r\n * });\r\n * ```\r\n * @example\r\n * merge the data to the current state.\r\n * ```typescript\r\n * const session = await renderer.createSession(...);\r\n * /// reset the data to the initial state\r\n * await renderer.manipulateData(session, data('reset'));\r\n * /// merge the data to the current state\r\n * await renderer.manipulateData(session, data('merge'));\r\n * /// incrementally merge the data again\r\n * await renderer.manipulateData(session, data('merge'));\r\n * ```\r\n */\r\n manipulateData(opts: RenderInSessionOptions<ManipulateDataOptions>): void;\r\n\r\n /**\r\n * Run a function with a session, and the session is only available during\r\n * the function call.\r\n *\r\n * the lifetime of session is quite bug-prone, so we current does not make it\r\n * longer live than the function call.\r\n * @param {function} fn - The function to run with a session.\r\n * @returns {Promise<T>} - The result of the function.\r\n * @example\r\n * run a function with an session with empty state.\r\n *\r\n * ```typescript\r\n * const res = await renderer.runWithSession(async session => {\r\n * await renderer.manipulateData(session, data('reset'));\r\n * return await renderer.renderToCanvas({\r\n * renderSession: session,\r\n * container: document.getElementById('container'),\r\n * backgroundColor: '#ffffff',\r\n * });\r\n * });\r\n * ```\r\n *\r\n * @example\r\n * run a function with an session with initial state.\r\n *\r\n * ```typescript\r\n * const res = await renderer.runWithSession({\r\n * format: 'vector',\r\n * artifactContent: new Uint8Array(...),\r\n * }, workWithSession(session));\r\n * ```\r\n *\r\n * @example\r\n * leak the life span of session (need typescript >= v5.2)\r\n *\r\n * ```typescript\r\n * class StackedSession {\r\n * session: RenderSession;\r\n * private resolve: (session: RenderSession) => void;\r\n * [Symbol.dispose]() {\r\n * this.resolve();\r\n * }\r\n * static async create() {\r\n * return new Promise<StackedSession>(resolve => {\r\n * const session = await renderer.runWithSession(session => {\r\n * const stackedSession = new StackedSession();\r\n * stackedSession.session = session;\r\n * stackedSession.resolve = resolve;\r\n * return stackedSession;\r\n * });\r\n * }\r\n * }\r\n *\r\n * {\r\n * await using session = StackedSession.create();\r\n * /// do something with session\r\n * }\r\n * ```\r\n */\r\n runWithSession<T>(fn: (session: RenderSession) => Promise<T>): Promise<T>;\r\n runWithSession<T>(\r\n options: CreateSessionOptions,\r\n fn: (session: RenderSession) => Promise<T>,\r\n ): Promise<T>;\r\n\r\n createWorkerV0(worker: Worker): Promise<TypstWorker>;\r\n\r\n renderDom(options: RenderInSessionOptions<MountDomOptions>): Promise<TypstDomDocument>;\r\n\r\n /**\r\n * alias to {@link TypstRenderer#renderToCanvas}, will remove in v0.5.0\r\n * @deprecated\r\n * use {@link renderToCanvas} instead\r\n */\r\n render(options: RenderOptions<RenderToCanvasOptions>): Promise<void>;\r\n}\r\n\r\nconst gRendererModule = (module: typeof typst) =>\r\n new LazyWasmModule(async (bin?: any) => {\r\n return await module.default(bin);\r\n });\r\n\r\n/**\r\n * create a Typst renderer.\r\n * @returns {TypstRenderer} - The Typst renderer.\r\n * @example\r\n * ```typescript\r\n * import { createTypstRenderer } from 'typst';\r\n * const renderer = createTypstRenderer();\r\n * await renderer.init();\r\n * await renderer.render({\r\n * container: document.getElementById('container'),\r\n * artifactContent: '{ ... }',\r\n * });\r\n * ```\r\n */\r\nexport function createTypstRenderer(): TypstRenderer {\r\n return new TypstRendererDriver();\r\n}\r\n\r\nexport async function rendererBuildInfo(): Promise<any> {\r\n const renderModule = await import('@myriaddreamin/typst-ts-renderer');\r\n return renderModule.renderer_build_info();\r\n}\r\n\r\nlet warnOnceCanvasSet = true;\r\n\r\n/** @internal */\r\nexport class TypstRendererDriver {\r\n renderer: typst.TypstRenderer;\r\n rendererJs: typeof typst;\r\n\r\n constructor() { }\r\n\r\n async init(options?: Partial<InitOptions>): Promise<void> {\r\n this.rendererJs = await (options?.getWrapper?.() || import('@myriaddreamin/typst-ts-renderer'));\r\n const TypstRendererBuilder = this.rendererJs.TypstRendererBuilder;\r\n this.renderer = await buildComponent(\r\n options,\r\n gRendererModule(this.rendererJs),\r\n TypstRendererBuilder,\r\n {},\r\n );\r\n }\r\n\r\n loadGlyphPack(_pack: unknown): Promise<void> {\r\n // this.renderer.load_glyph_pack(pack);\r\n return Promise.resolve();\r\n }\r\n\r\n private createOptionsToRust(options: Partial<CreateSessionOptions>): typst.CreateSessionOptions {\r\n const rustOptions = new this.rendererJs.CreateSessionOptions();\r\n\r\n if (options.format !== undefined) {\r\n rustOptions.format = options.format;\r\n }\r\n\r\n if (options.artifactContent !== undefined) {\r\n rustOptions.artifact_content = options.artifactContent;\r\n }\r\n\r\n return rustOptions;\r\n }\r\n\r\n canvasOptionsToRust(options: RenderCanvasOptions): typst.RenderPageImageOptions {\r\n const rustOptions = new this.rendererJs.RenderPageImageOptions();\r\n if (options.pageOffset === undefined) {\r\n throw new Error('pageOffset is required in reflexo v0.5.0');\r\n } else {\r\n rustOptions.page_off = options.pageOffset;\r\n }\r\n if (options.cacheKey !== undefined) {\r\n rustOptions.cache_key = options.cacheKey;\r\n }\r\n if (options.backgroundColor !== undefined) {\r\n rustOptions.background_color = options.backgroundColor;\r\n }\r\n if (options.pixelPerPt !== undefined) {\r\n rustOptions.pixel_per_pt = options.pixelPerPt;\r\n }\r\n if (options.dataSelection !== undefined) {\r\n let encoded = 0;\r\n if (options.dataSelection.body) {\r\n encoded |= 1 << 0;\r\n } else if (options.canvas && warnOnceCanvasSet) {\r\n warnOnceCanvasSet = false;\r\n console.warn('dataSelection.body is not set but providing canvas for body');\r\n }\r\n if (options.dataSelection.text || options.dataSelection.annotation) {\r\n console.error('dataSelection.text and dataSelection.annotation are deprecated');\r\n }\r\n if (options.dataSelection.semantics) {\r\n encoded |= 1 << 3;\r\n }\r\n rustOptions.data_selection = encoded;\r\n }\r\n return rustOptions;\r\n }\r\n\r\n retrievePagesInfoFromSession(session: RenderSession): PageInfo[] {\r\n return session.retrievePagesInfo();\r\n }\r\n\r\n /**\r\n * Render a Typst document to canvas.\r\n */\r\n renderCanvas(options: RenderOptions<RenderCanvasOptions>): Promise<RenderCanvasResult> {\r\n return this.withinOptionSession(options, async sessionRef => {\r\n return this.renderer.render_page_to_canvas(\r\n sessionRef[kObject],\r\n options.canvas || undefined,\r\n this.canvasOptionsToRust(options),\r\n );\r\n });\r\n }\r\n\r\n // async renderPdf(artifactContent: string): Promise<Uint8Array> {\r\n // return this.renderer.render_to_pdf(artifactContent);\r\n // }\r\n\r\n private async inAnimationFrame<T>(fn: () => Promise<T>): Promise<T> {\r\n return new Promise((resolve, reject) => {\r\n requestAnimationFrame(() => {\r\n try {\r\n resolve(fn());\r\n } catch (e) {\r\n reject(e);\r\n }\r\n });\r\n });\r\n }\r\n\r\n private async renderDisplayLayer(\r\n session: RenderSession,\r\n canvasList: HTMLCanvasElement[],\r\n options: RenderToCanvasOptions,\r\n ): Promise<RenderCanvasResult[]> {\r\n const pages_info = session[kObject].pages_info;\r\n const page_count = pages_info.page_count;\r\n\r\n const doRender = async (i: number, page_off: number) => {\r\n const canvas = canvasList[i];\r\n const ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n throw new Error('canvas context is null');\r\n }\r\n return await this.renderCanvas({\r\n ...options,\r\n canvas: ctx,\r\n renderSession: session,\r\n pageOffset: page_off,\r\n });\r\n };\r\n\r\n const t = performance.now();\r\n const textContentList = await (async () => {\r\n const results: RenderCanvasResult[] = [];\r\n for (let i = 0; i < page_count; i++) {\r\n results.push(await this.inAnimationFrame(() => doRender(i, i)));\r\n }\r\n\r\n return results;\r\n })();\r\n const t2 = performance.now();\r\n\r\n console.log(`display layer used: render = ${(t2 - t).toFixed(1)}ms`);\r\n\r\n return textContentList;\r\n }\r\n\r\n private renderTextLayer(layerList: HTMLDivElement[], textSourceList: RenderCanvasResult[]) {\r\n const t2 = performance.now();\r\n layerList.forEach((layer, i) => {\r\n layer.innerHTML = textSourceList[i].htmlSemantics[0];\r\n });\r\n const t3 = performance.now();\r\n console.log(`text layer used: render = ${(t3 - t2).toFixed(1)}ms`);\r\n }\r\n\r\n async render(options: RenderOptions<RenderToCanvasOptions>): Promise<void> {\r\n if ('format' in options) {\r\n if (options.format !== 'vector') {\r\n const artifactFormats = ['serde_json', 'js', 'ir'] as const;\r\n if (artifactFormats.includes(options.format as any)) {\r\n // deprecated\r\n throw new Error(`deprecated format ${options.format}, please use vector format`);\r\n }\r\n }\r\n }\r\n\r\n return this.renderToCanvas(options);\r\n }\r\n\r\n async renderDom(options: RenderInSessionOptions<MountDomOptions>): Promise<TypstDomDocument> {\r\n if ('format' in options) {\r\n if (options.format !== 'vector') {\r\n const artifactFormats = ['serde_json', 'js', 'ir'] as const;\r\n if (artifactFormats.includes(options.format as any)) {\r\n // deprecated\r\n throw new Error(`deprecated format ${options.format}, please use vector format`);\r\n }\r\n }\r\n }\r\n\r\n return this.withinOptionSession(options, async sessionRef => {\r\n const t = new TypstDomDocument({\r\n ...options,\r\n renderMode: 'dom',\r\n hookedElem: options.container,\r\n kModule: sessionRef,\r\n renderer: this,\r\n });\r\n t;\r\n await t.impl.mountDom(options.pixelPerPt);\r\n return t;\r\n });\r\n }\r\n\r\n async renderToCanvas(options: RenderOptions<RenderToCanvasOptions>): Promise<void> {\r\n let session: RenderSession;\r\n let renderPageResults: RenderCanvasResult[];\r\n const mountContainer = options.container;\r\n mountContainer.style.visibility = 'hidden';\r\n\r\n const doRenderDisplayLayer = async (\r\n canvasList: HTMLCanvasElement[],\r\n resetLayout: () => void,\r\n ) => {\r\n try {\r\n renderPageResults = await this.renderDisplayLayer(session, canvasList, options);\r\n resetLayout();\r\n } finally {\r\n mountContainer.style.visibility = 'visible';\r\n }\r\n };\r\n\r\n return this.withinOptionSession(options, async sessionRef => {\r\n session = sessionRef;\r\n if (session[kObject].pages_info.page_count === 0) {\r\n throw new Error(`No page found in session`);\r\n }\r\n\r\n if (options.pixelPerPt !== undefined && options.pixelPerPt <= 0) {\r\n throw new Error(\r\n 'Invalid typst.RenderOptions.pixelPerPt, should be a positive number ' +\r\n options.pixelPerPt,\r\n );\r\n }\r\n\r\n let backgroundColor = options.backgroundColor;\r\n if (backgroundColor !== undefined) {\r\n if (!/^#[0-9a-f]{6}$/.test(backgroundColor)) {\r\n throw new Error(\r\n 'Invalid typst.backgroundColor color for matching ^#?[0-9a-f]{6}$ ' + backgroundColor,\r\n );\r\n }\r\n }\r\n\r\n session.pixelPerPt = options.pixelPerPt ?? TypstDefaultParams.PIXEL_PER_PT;\r\n session.backgroundColor = backgroundColor ?? '#ffffff';\r\n\r\n const t = performance.now();\r\n\r\n const pageView = new RenderView(\r\n this.retrievePagesInfoFromSession(session),\r\n mountContainer,\r\n options,\r\n );\r\n const t2 = performance.now();\r\n\r\n console.log(`layer used: retrieve = ${(t2 - t).toFixed(1)}ms`);\r\n\r\n await doRenderDisplayLayer(pageView.canvasList, () => pageView.resetLayout());\r\n this.renderTextLayer(pageView.textLayerList, renderPageResults);\r\n\r\n return;\r\n });\r\n }\r\n\r\n createModule(b?: Uint8Array): Promise<RenderSession> {\r\n return Promise.resolve(\r\n new RenderSession(\r\n this,\r\n this.renderer.create_session(\r\n b &&\r\n this.createOptionsToRust({\r\n format: 'vector',\r\n artifactContent: b,\r\n }),\r\n ),\r\n ),\r\n );\r\n }\r\n\r\n async createWorkerV0(worker: Worker) {\r\n return new TypstWorker(this, await this.renderer.create_worker(worker));\r\n }\r\n\r\n workerBridge() {\r\n return this.renderer.create_worker_bridge();\r\n }\r\n\r\n renderSvg(options: RenderOptions<RenderSvgOptions>, container?: any): Promise<string> {\r\n if (options instanceof RenderSession || container) {\r\n throw new Error('removed api, please use renderToSvg({ renderSession, container }) instead');\r\n }\r\n\r\n return this.withinOptionSession(options, async sessionRef => {\r\n let parts: number | undefined = undefined;\r\n if (options.data_selection) {\r\n parts = 0;\r\n if (options.data_selection.body) {\r\n parts |= 1 << 0;\r\n }\r\n if (options.data_selection.defs) {\r\n parts |= 1 << 1;\r\n }\r\n if (options.data_selection.css) {\r\n parts |= 1 << 2;\r\n }\r\n if (options.data_selection.js) {\r\n parts |= 1 << 3;\r\n }\r\n }\r\n\r\n return Promise.resolve(this.renderer.svg_data(sessionRef[kObject], parts));\r\n });\r\n }\r\n\r\n renderSvgDiff(options: RenderInSessionOptions<RenderSvgOptions>): string {\r\n if (!options.window) {\r\n return this.renderer.render_svg_diff(\r\n (options.renderSession as any)[kObject],\r\n 0,\r\n 0,\r\n 1e33,\r\n 1e33,\r\n );\r\n }\r\n\r\n return this.renderer.render_svg_diff(\r\n (options.renderSession as any)[kObject],\r\n options.window.lo.x,\r\n options.window.lo.y,\r\n options.window.hi.x,\r\n options.window.hi.y,\r\n );\r\n }\r\n\r\n renderToSvg(options: RenderOptions<RenderToSvgOptions>): Promise<boolean> {\r\n return this.withinOptionSession(options, async sessionRef => {\r\n return Promise.resolve(this.renderer.render_svg(sessionRef[kObject], options.container));\r\n });\r\n }\r\n\r\n getCustomV1(options: RenderInSessionOptions<{}>): Promise<any> {\r\n return Promise.resolve(this.renderer.get_customs(options.renderSession[kObject]));\r\n }\r\n\r\n resetSession(session: RenderSession): void {\r\n return this.renderer.reset(session[kObject]);\r\n }\r\n\r\n manipulateData(opts: RenderInSessionOptions<ManipulateDataOptions>): void {\r\n return this.renderer.manipulate_data(\r\n (opts.renderSession as any)[kObject] as typst.RenderSession,\r\n opts.action ?? 'reset',\r\n opts.data,\r\n );\r\n }\r\n\r\n private withinOptionSession<T>(\r\n options: RenderOptions<any>,\r\n fn: (session: RenderSession) => Promise<T>,\r\n ): Promise<T> {\r\n function isRenderByContentOption(options: RenderOptions<any>): options is CreateSessionOptions {\r\n return 'artifactContent' in options;\r\n }\r\n\r\n if ('renderSession' in options) {\r\n return fn(options.renderSession as RenderSession);\r\n }\r\n\r\n if (isRenderByContentOption(options)) {\r\n // todo: remove any\r\n return this.runWithSession(options as any, fn as any);\r\n }\r\n\r\n throw new Error(\r\n 'Invalid render options, should be one of RenderByContentOptions|RenderBySessionOptions',\r\n );\r\n }\r\n\r\n async runWithSession<T>(fn: (session: RenderSession) => Promise<T>): Promise<T>;\r\n runWithSession<T>(\r\n options: CreateSessionOptions,\r\n fn: (session: RenderSession) => Promise<T>,\r\n ): Promise<T>;\r\n async runWithSession<T>(arg1: any, arg2?: any): Promise<T> {\r\n let options: Partial<CreateSessionOptions> | undefined = arg1;\r\n let fn: (session: RenderSession) => Promise<T> = arg2;\r\n\r\n if (!arg2) {\r\n options = undefined;\r\n fn = arg1;\r\n }\r\n\r\n const session = this.renderer.create_session(\r\n /* moved */ options && this.createOptionsToRust(options),\r\n );\r\n try {\r\n const res = await fn(new RenderSession(this, session));\r\n session.free();\r\n return res;\r\n } catch (e) {\r\n session.free();\r\n throw e;\r\n }\r\n }\r\n}\r\n","// @ts-ignore\r\nimport type * as typst from '@myriaddreamin/typst-ts-web-compiler';\r\nimport { buildComponent } from './init.mjs';\r\nimport { SemanticTokens, SemanticTokensLegend, kObject } from './internal.types.mjs';\r\n\r\nimport { loadFonts, type InitOptions } from './options.init.mjs';\r\nimport { LazyWasmModule } from './wasm.mjs';\r\n\r\n/**\r\n * Available formats for compiling the document.\r\n */\r\nexport type CompileFormat = keyof typeof CompileFormatEnum;\r\n\r\n/**\r\n * Available formats for compiling the document.\r\n */\r\nexport enum CompileFormatEnum {\r\n vector = 0,\r\n pdf = 1,\r\n _dummy = 2,\r\n}\r\n\r\n\r\n/**\r\n * The diagnostic message partially following the LSP specification.\r\n */\r\ninterface DiagnosticMessage {\r\n // The package owning the path.\r\n // If the package is empty, the path is a relative path to the *workspace root*.\r\n package: string;\r\n // The path of the file.\r\n path: string;\r\n // Severity of the diagnostic message.\r\n severity: string;\r\n // Zero-based line number and one-based character offset.\r\n // The range of the diagnostic message.\r\n // If the diagnostic message is a range, the range is in the format of `startLine:startCharacter-endLine:endCharacter`.\r\n // If the diagnostic message is a point, the range is in the format of `line:character`.\r\n // Otherwise, the range is empty.\r\n range: string;\r\n // The message of the diagnostic message.\r\n message: string;\r\n}\r\n\r\n/**\r\n * Available formats for compiling the document.\r\n *\r\n * If set to unix, a diagnostics is in format of\r\n *\r\n * ```log\r\n * // with package\r\n * cetz:0.2.0@lib.typ:2:9-3:15: error: unexpected type in `+` application\r\n * // without package\r\n * main.typ:2:9-3:15: error: unexpected type in `+` application\r\n * ```\r\n *\r\n * If set to long, a diagnostics is in format of {@link DiagnosticMessage}.\r\n *\r\n * If set to full, a diagnostics is in format of {@link DiagnosticMessage}, but also with trace messages.\r\n */\r\nexport type DiagnosticsFormat = 'none' | 'unix' | 'full';\r\n\r\nexport type DiagnosticsData = {\r\n none: never;\r\n unix: string;\r\n full: DiagnosticMessage;\r\n};\r\n\r\ninterface DiagOpts<D extends DiagnosticsFormat = DiagnosticsFormat> {\r\n /**\r\n * Whether to include diagnostic information in the result.\r\n * Note: it will be set to 'full' by default in v0.6.0\r\n * @default 'full'\r\n */\r\n diagnostics?: D;\r\n}\r\n\r\ninterface SnapshotOptions {\r\n /**\r\n * The path of the main file.\r\n */\r\n mainFilePath: string;\r\n /**\r\n * The root of the main file.\r\n */\r\n root?: string;\r\n /**\r\n * Adds a string key-value pair visible through `sys.inputs`\r\n *\r\n * Note: pass `{}` to clear `sys.inputs`\r\n *\r\n * Note: When passing `undefined`, compiler will use last set `sys.inputs`.\r\n *\r\n * Note: This means you should always specify inputs when using compiler for concurrent tasks.\r\n */\r\n inputs?: Record<string, string>;\r\n}\r\n\r\ninterface TransientCompileOptions<\r\n F extends CompileFormatEnum = CompileFormatEnum,\r\n Diagnostics extends DiagnosticsFormat = DiagnosticsFormat,\r\n> extends SnapshotOptions,\r\n DiagOpts<Diagnostics> {\r\n /**\r\n * The format of the artifact.\r\n * - CompileFormatEnum.vector: can then load to the renderer to render the document.\r\n * - CompileFormatEnum.pdf: for finally exporting pdf to the user.\r\n * \r\n * Hint: you can convert the format from {@link CompileFormat} to\r\n * {@link CompileFormatEnum} by `CompileFormatEnum[Format]`.\r\n * @default CompileFormatEnum.vector\r\n */\r\n format?: F;\r\n}\r\n\r\ninterface IncrementalCompileOptions<Diagnostics extends DiagnosticsFormat = DiagnosticsFormat>\r\n extends SnapshotOptions,\r\n DiagOpts<Diagnostics> {\r\n /**\r\n * The format of the incrementally exported artifact.\r\n * @default 'vector'\r\n */\r\n format?: 'vector';\r\n /**\r\n * The incremental server for the document.\r\n */\r\n incrementalServer: IncrementalServer;\r\n}\r\n\r\nexport interface QueryOptions {\r\n /**\r\n * select part of document for query.\r\n */\r\n selector: string;\r\n /**\r\n * cast result by accessing single field.\r\n */\r\n field?: string;\r\n}\r\n\r\n/**\r\n * The options for compiling the document.\r\n */\r\nexport type CompileOptions<\r\n Format extends CompileFormatEnum = CompileFormatEnum,\r\n Diagnostics extends DiagnosticsFormat = DiagnosticsFormat,\r\n> = TransientCompileOptions<Format, Diagnostics> | IncrementalCompileOptions;\r\n\r\nexport class IncrementalServer {\r\n /**\r\n * @internal\r\n */\r\n [kObject]: typst.IncrServer;\r\n\r\n /**\r\n * @internal\r\n */\r\n constructor(s: typst.IncrServer) {\r\n this[kObject] = s;\r\n }\r\n\r\n /**\r\n * Reset the incremental server to the initial state.\r\n */\r\n reset(): void {\r\n this[kObject].reset();\r\n }\r\n\r\n /**\r\n * Return current result.\r\n */\r\n current(): Uint8Array | undefined {\r\n return this[kObject].current();\r\n }\r\n\r\n /**\r\n * Also attach the debug info to the result.\r\n */\r\n setAttachDebugInfo(enable: boolean): void {\r\n this[kObject].set_attach_debug_info(enable);\r\n }\r\n}\r\n\r\ninterface CompileResult<T, D extends DiagnosticsFormat> {\r\n result?: T;\r\n diagnostics?: DiagnosticsData[D][];\r\n}\r\n\r\nexport interface TypstFontInfo { }\r\n\r\nenum TypstFontResolverCons { }\r\nexport type TypstFontResolver = TypstFontResolverCons;\r\n\r\nexport interface TypstFontBuilder {\r\n /**\r\n * Initialize the font builder.\r\n * @param options - The options for initializing the font builder.\r\n */\r\n init(options?: Partial<InitOptions>): Promise<void>;\r\n /**\r\n * Get the font info.\r\n *\r\n * @param font_buffer - The font buffer to get the font info.\r\n * @returns {TypstFontInfo} - The font info.\r\n */\r\n getFontInfo(font_buffer: Uint8Array): Promise<TypstFontInfo>;\r\n /**\r\n * Add a raw font.\r\n *\r\n * @param font_buffer - The font buffer to add.\r\n */\r\n addFontData(font_buffer: Uint8Array): Promise<void>;\r\n /**\r\n * Add a lazy font.\r\n *\r\n * @param info - The font info, usually from {@link getFontInfo}.\r\n * @param blob - The blob function to get the font buffer.\r\n * @param context - The context.\r\n */\r\n addLazyFont(\r\n info: TypstFontInfo,\r\n blob: (idx: number) => Uint8Array,\r\n context?: object,\r\n ): Promise<void>;\r\n\r\n /**\r\n * Build the font resolver. The font resolver will be freed after the callback\r\n * is invoked and before returning the build function.\r\n *\r\n * @param cb - The function to use the font resolver.\r\n * @returns {Promise<T>} - The result of the function.\r\n */\r\n build<T>(cb: (resolver: TypstFontResolver) => Promise<T>): Promise<T>;\r\n}\r\n\r\n/**\r\n * create a Typst font builder.\r\n * @returns {TypstFontBuilder} - The Typst font builder.\r\n * @example\r\n * ```typescript\r\n * import { createTypstFontBuilder } from 'typst';\r\n * const fb = createTypstFontBuilder();\r\n * await fb.init();\r\n * await fb.addFontData(new Uint8Array(await fetch('font.ttf').then(r => r.arrayBuffer())));\r\n * await fb.build();\r\n * ```\r\n */\r\nexport function createTypstFontBuilder(): TypstFontBuilder {\r\n return new TypstFontBuilderDriver();\r\n}\r\n\r\nexport class TypstWorld {\r\n private [kObject]: typst.TypstCompileWorld;\r\n\r\n constructor(world: typst.TypstCompileWorld) {\r\n this[kObject] = world;\r\n }\r\n\r\n /**\r\n * Compile the paged document.\r\n *\r\n * @param {DiagnosticsFormat} format - The format of the diagnostics.\r\n * @returns {Promise<{ diagnostics?: DiagnosticsData[DiagnosticsFormat][] }>} - The result of the compilation.\r\n */\r\n compile<D extends DiagnosticsFormat = 'full'>(\r\n opts?: DiagOpts<D>,\r\n ): Promise<CompileResult<undefined, D> & { hasError: boolean }> {\r\n return this[kObject].compile(0, getDiagnosticsArg(opts?.diagnostics));\r\n }\r\n\r\n /**\r\n * Compile the paged document.\r\n *\r\n * @param {DiagnosticsFormat} format - The format of the diagnostics.\r\n * @returns {Promise<{ diagnostics?: DiagnosticsData[DiagnosticsFormat][] }>} - The result of the compilation.\r\n */\r\n compileHtml<D extends DiagnosticsFormat = 'full'>(\r\n opts?: DiagOpts<D>,\r\n ): Promise<CompileResult<undefined, D> & { hasError: boolean }> {\r\n return this[kObject].compile(1, getDiagnosticsArg(opts?.diagnostics));\r\n }\r\n\r\n /**\r\n * Runs query on the paged document.\r\n */\r\n async query<T = any>(options: QueryOptions): Promise<T> {\r\n return JSON.parse(this[kObject].query(0, options.selector, options.field));\r\n }\r\n\r\n /**\r\n * Get the title of the paged document.\r\n * Throw error if the world didn't compile the paged document.\r\n *\r\n * @returns {string | undefined} - The title of the paged document.\r\n */\r\n title(): string | undefined {\r\n return this[kObject].title(0);\r\n }\r\n\r\n /**\r\n * Export the paged document as vector format.\r\n *\r\n * @returns {Uint8Array | undefined} - The title of the paged document.\r\n */\r\n vector<D extends DiagnosticsFormat = 'full'>(\r\n opts?: DiagOpts<D>,\r\n ): Promise<CompileResult<Uint8Array, D>> {\r\n return this[kObject].get_artifact(0, getDiagnosticsArg(opts?.diagnostics)) || {};\r\n }\r\n\r\n /**\r\n * Export the paged document to PDF.\r\n *\r\n * @returns {Uint8Array | undefined} - The title of the paged document.\r\n */\r\n pdf<D extends DiagnosticsFormat = 'full'>(\r\n opts?: DiagOpts<D>,\r\n ): Promise<CompileResult<Uint8Array, D>> {\r\n return this[kObject].get_artifact(1, getDiagnosticsArg(opts?.diagnostics)) || {};\r\n }\r\n}\r\n\r\n/**\r\n * The interface of Typst compiler.\r\n */\r\nexport interface TypstCompiler {\r\n /**\r\n * Initialize the typst compiler.\r\n * @param {Partial<InitOptions>} options - The options for initializing the\r\n * typst compiler.\r\n */\r\n init(options?: Partial<InitOptions>): Promise<void>;\r\n\r\n /**\r\n * Reset the typst compiler to the initial state.\r\n * Note: without calling this function, the compiler will always keep caches\r\n * such as:\r\n * - loaded fonts\r\n * - source files corresponding to typst modules\r\n *\r\n * Note: this function is independent to the {@link resetShadow} function.\r\n * This is intended to optimize the performance of the compiler.\r\n */\r\n reset(): Promise<void>;\r\n\r\n /**\r\n * Compile an document with the maintained state.\r\n * @param {CompileOptions} options - The options for compiling the document.\r\n * @returns {Promise<Uint8Array>} - artifact in vector format.\r\n * You can then load the artifact to the renderer to render the document.\r\n */\r\n compile<D extends DiagnosticsFormat>(\r\n options: CompileOptions<CompileFormatEnum.vector, D>,\r\n ): Promise<CompileResult<Uint8Array, D>>;\r\n compile<D extends DiagnosticsFormat>(\r\n options: CompileOptions<CompileFormatEnum.pdf, D>,\r\n ): Promise<CompileResult<Uint8Array, D>>;\r\n compile<F extends CompileFormatEnum, D extends DiagnosticsFormat>(\r\n options: CompileOptions<F, D>,\r\n ): Promise<CompileResult<Uint8Array, D>>;\r\n\r\n runWithWorld<T>(options: SnapshotOptions, cb: (world: TypstWorld) => Promise<T>): Promise<T>;\r\n\r\n /**\r\n * Set the fonts to the compiler. Note: multiple compilers can share the same fonts.\r\n *\r\n * @param {TypstFontResolver} fonts - The fonts to set.\r\n */\r\n setFonts(fonts: TypstFontResolver): void;\r\n\r\n /**\r\n * experimental\r\n * Query the result with document\r\n */\r\n query<T>(options: QueryOptions & SnapshotOptions): Promise<T>;\r\n\r\n /**\r\n * Print the AST of the main file.\r\n * @param {string} mainFilePath - The path of the main file.\r\n * @returns {Promise<string>} - an string representation of the AST.\r\n */\r\n getAst(mainFilePath: string): Promise<string>;\r\n\r\n /**\r\n * Add a source file to the compiler.\r\n * @param {string} path - The path of the source file.\r\n * @param {string} source - The source code of the source file.\r\n *\r\n */\r\n addSource(path: string, source: string): void;\r\n\r\n /**\r\n * Add a shadow file to the compiler.\r\n * @param {string} path - The path to the shadow file.\r\n * @param {Uint8Array} content - The content of the shadow file.\r\n *\r\n */\r\n mapShadow(path: string, content: Uint8Array): void;\r\n\r\n /**\r\n * Remove a shadow file from the compiler.\r\n * @param {string} path - The path to the shadow file.\r\n */\r\n unmapShadow(path: string): void;\r\n\r\n /**\r\n * Reset the shadow files.\r\n * Note: this function is independent to the {@link reset} function.\r\n */\r\n resetShadow(): void;\r\n\r\n /**\r\n * experimental\r\n * See Semantic tokens: https://github.com/microsoft/vscode/issues/86415\r\n */\r\n getSemanticTokenLegend(): Promise<SemanticTokensLegend>;\r\n\r\n /**\r\n * experimental\r\n * See Semantic tokens: https://github.com/microsoft/vscode/issues/86415\r\n *\r\n * @param {string} opts.mainFilePath - The path of the main file.\r\n * @param {string} opts.resultId - The id of the result.\r\n * @param {string} opts.offsetEncoding - The encoding of the offset.\r\n * - 'utf-16': the offset is encoded in utf-16.\r\n * - 'utf-8': the offset is encoded in utf-8.\r\n * @default 'utf-16'\r\n * @returns {Promise<SemanticTokens>} - The semantic tokens.\r\n */\r\n getSemanticTokens(opts: {\r\n mainFilePath: string;\r\n resultId?: string;\r\n offsetEncoding?: string;\r\n }): Promise<SemanticTokens>;\r\n\r\n /**\r\n * experimental\r\n * Run with an incremental server which holds the state of the document in wasm.\r\n *\r\n * @param {function(IncrementalServer): Promise<T>} f - The function to run with the incremental server.\r\n * @returns {Promise<T>} - The result of the function.\r\n *\r\n * Note: the incremental server will be freed after the function is finished.\r\n */\r\n withIncrementalServer<T>(f: (s: IncrementalServer) => Promise<T>): Promise<T>;\r\n}\r\n\r\nconst gCompilerModule = (module: typeof typst) =>\r\n new LazyWasmModule(async (bin?: any) => {\r\n return await module.default(bin);\r\n });\r\n\r\n/**\r\n * create a Typst compiler.\r\n * @returns {TypstCompiler} - The Typst compiler.\r\n * @example\r\n * ```typescript\r\n * import { createTypstCompiler } from 'typst';\r\n * const compiler = createTypstCompiler();\r\n * await compiler.init();\r\n * compiler.addSource('/main.typ', 'Hello, typst!');\r\n * await compiler.compile({ mainFilePath: '/main.typ' });\r\n * ```\r\n */\r\nexport function createTypstCompiler(): TypstCompiler {\r\n return new TypstCompilerDriver();\r\n}\r\n\r\nexport class TypstFontBuilderDriver implements TypstFontBuilder {\r\n private fontBuilderJs: typeof typst;\r\n private fontBuilder: typst.TypstFontResolverBuilder;\r\n\r\n async init(options?: Partial<InitOptions>): Promise<void> {\r\n this.fontBuilderJs = await (options?.getWrapper?.() || import('@myriaddreamin/typst-ts-web-compiler'));\r\n /// init typst wasm module\r\n await gCompilerModule(this.fontBuilderJs).init(options?.getModule?.());\r\n\r\n this.fontBuilder = new this.fontBuilderJs.TypstFontResolverBuilder();\r\n }\r\n\r\n async getFontInfo(font_buffer: Uint8Array): Promise<TypstFontInfo> {\r\n return this.fontBuilder.get_font_info(font_buffer) as TypstFontInfo;\r\n }\r\n\r\n async addFontData(font_buffer: Uint8Array): Promise<void> {\r\n this.fontBuilder.add_raw_font(font_buffer);\r\n }\r\n async addLazyFont<C extends TypstFontInfo>(\r\n info: TypstFontInfo,\r\n blob: (this: C, idx: number) => Uint8Array,\r\n ): Promise<void> {\r\n return this.fontBuilder.add_lazy_font(info, blob);\r\n }\r\n async build<T>(cb: (resolver: TypstFontResolver) => Promise<T>): Promise<T> {\r\n const fonts = await this.fontBuilder.build();\r\n const result = await cb(fonts as any as TypstFontResolver);\r\n fonts.free();\r\n return result;\r\n }\r\n}\r\n\r\nclass TypstCompilerDriver implements TypstCompiler {\r\n compiler: typst.TypstCompiler;\r\n compilerJs: typeof typst;\r\n\r\n static defaultAssets = ['text' as const];\r\n\r\n constructor() { }\r\n\r\n async init(options?: Partial<InitOptions>): Promise<void> {\r\n this.compilerJs = await (options?.getWrapper?.() || import('@myriaddreamin/typst-ts-web-compiler'));\r\n const TypstCompilerBuilder = this.compilerJs.TypstCompilerBuilder;\r\n\r\n const compilerOptions = { ...(options || {}) };\r\n const beforeBuild = (compilerOptions.beforeBuild ??= []);\r\n const hasPreloadRemoteFonts = beforeBuild.some(\r\n (fn: any) => fn._preloadRemoteFontOptions !== undefined,\r\n );\r\n const hasSpecifiedAssets = beforeBuild.some(\r\n (fn: any) => fn._preloadRemoteFontOptions?.assets !== undefined,\r\n );\r\n const hasDisableAssets = beforeBuild.some(\r\n (fn: any) => fn._preloadRemoteFontOptions?.assets === false,\r\n );\r\n\r\n if (!hasPreloadRemoteFonts || (!hasSpecifiedAssets && !hasDisableAssets)) {\r\n beforeBuild.push(loadFonts([], { assets: TypstCompilerDriver.defaultAssets }));\r\n }\r\n\r\n const hasFontLoader = beforeBuild.some((fn: any) => fn._kind === 'fontLoader');\r\n if (!hasFontLoader) {\r\n throw new Error(\r\n 'TypstCompiler: no font loader found, please use font loaders, e.g. loadFonts or preloadSystemFonts',\r\n );\r\n }\r\n this.compiler = await buildComponent(options, gCompilerModule(this.compilerJs), TypstCompilerBuilder, {});\r\n }\r\n\r\n setFonts(fonts: TypstFontResolver): void {\r\n this.compiler.set_fonts(fonts as any as typst.TypstFontResolver);\r\n }\r\n\r\n compile(options: CompileOptions): Promise<any> {\r\n return new Promise(resolve => {\r\n const world = this.compiler.snapshot(\r\n options.root,\r\n options.mainFilePath,\r\n convertInputs(options.inputs),\r\n );\r\n if ('incrementalServer' in options) {\r\n resolve(\r\n world.incr_compile(\r\n options.incrementalServer[kObject],\r\n getDiagnosticsArg(options.diagnostics),\r\n ),\r\n );\r\n return;\r\n }\r\n resolve(\r\n world.get_artifact(options.format || CompileFormatEnum.vector, getDiagnosticsArg(options.diagnostics)),\r\n );\r\n });\r\n }\r\n\r\n async runWithWorld<T>(\r\n options: SnapshotOptions,\r\n cb: (world: TypstWorld) => Promise<T>,\r\n ): Promise<T> {\r\n const world = this.compiler.snapshot(\r\n options.root,\r\n options.mainFilePath,\r\n convertInputs(options.inputs),\r\n );\r\n let result = await cb(new TypstWorld(world));\r\n world.free();\r\n return result;\r\n }\r\n\r\n query(options: QueryOptions & SnapshotOptions): Promise<any> {\r\n return this.runWithWorld(options, async world => {\r\n return JSON.parse(await world.query(options));\r\n });\r\n }\r\n\r\n getSemanticTokenLegend(): Promise<SemanticTokensLegend> {\r\n return new Promise<SemanticTokensLegend>(resolve => {\r\n resolve(this.compiler.get_semantic_token_legend());\r\n });\r\n }\r\n\r\n getSemanticTokens(opts: {\r\n mainFilePath: string;\r\n resultId?: string;\r\n offsetEncoding?: string;\r\n }): Promise<SemanticTokens> {\r\n return new Promise<SemanticTokens>(resolve => {\r\n this.compiler.reset();\r\n resolve(\r\n this.compiler.get_semantic_tokens(\r\n opts.offsetEncoding || 'utf-16',\r\n opts.mainFilePath,\r\n opts.resultId,\r\n ) as any,\r\n );\r\n });\r\n }\r\n\r\n async withIncrementalServer<T>(f: (s: IncrementalServer) => Promise<T>): Promise<T> {\r\n const srv = new IncrementalServer(this.compiler.create_incr_server());\r\n try {\r\n return await f(srv);\r\n } finally {\r\n srv[kObject].free();\r\n }\r\n }\r\n\r\n async getAst(mainFilePath: string): Promise<string> {\r\n return this.compiler.get_ast(mainFilePath);\r\n }\r\n\r\n async reset(): Promise<void> {\r\n await new Promise<void>(resolve => {\r\n this.compiler.reset();\r\n resolve(undefined);\r\n });\r\n }\r\n\r\n addSource(path: string, source: string): void {\r\n if (arguments.length > 2) {\r\n throw new Error(\r\n 'use of addSource(path, source, isMain) is deprecated, please use addSource(path, source) instead',\r\n );\r\n }\r\n\r\n this.compiler.add_source(path, source);\r\n }\r\n\r\n mapShadow(path: string, content: Uint8Array): void {\r\n this.compiler.map_shadow(path, content);\r\n }\r\n\r\n unmapShadow(path: string): void {\r\n this.compiler.unmap_shadow(path);\r\n }\r\n\r\n resetShadow(): void {\r\n this.compiler.reset_shadow();\r\n }\r\n\r\n renderPageToCanvas(): Promise<any> {\r\n throw new Error('Please use the api TypstRenderer.renderToCanvas in v0.4.0');\r\n }\r\n}\r\ncreateTypstCompiler._impl = TypstCompilerDriver;\r\n\r\n// todo: caching inputs\r\nfunction convertInputs(inputs?: Record<string, string>): [string, string][] | undefined {\r\n return inputs ? Object.entries(inputs) : undefined;\r\n}\r\n\r\nfunction getDiagnosticsArg(diagnostics: string | undefined): number {\r\n switch (diagnostics) {\r\n case 'none':\r\n return 1;\r\n case 'unix':\r\n return 2;\r\n case 'full':\r\n default:\r\n return 3;\r\n }\r\n}\r\n","import type { InitOptions } from '../options.init.mjs';\r\nimport type { TypstCompiler } from '../compiler.mjs';\r\n\r\nlet globalCompiler: TypstCompiler | undefined = undefined;\r\nlet globalCompilerInitReady: Promise<TypstCompiler>;\r\nlet isReady = false;\r\n\r\nexport function getGlobalCompiler(): TypstCompiler | undefined {\r\n return isReady ? globalCompiler : undefined;\r\n}\r\n\r\nexport function createGlobalCompiler(\r\n creator: () => TypstCompiler,\r\n initOptions?: Partial<InitOptions>,\r\n): Promise<TypstCompiler> {\r\n // todo: determine compiler thread-safety\r\n // todo: check inconsistent initOptions\r\n const compiler = globalCompiler || creator();\r\n\r\n if (globalCompilerInitReady !== undefined) {\r\n return globalCompilerInitReady;\r\n }\r\n\r\n return (globalCompilerInitReady = (async () => {\r\n isReady = true;\r\n await compiler.init(initOptions);\r\n return (globalCompiler = compiler);\r\n })());\r\n}\r\n\r\nexport function withGlobalCompiler(\r\n creator: () => TypstCompiler,\r\n initOptions: Partial<InitOptions> | undefined,\r\n resolve: (compiler: TypstCompiler) => void,\r\n reject?: (err: any) => void,\r\n) {\r\n const compiler = getGlobalCompiler();\r\n if (compiler) {\r\n resolve(compiler);\r\n return;\r\n }\r\n\r\n createGlobalCompiler(creator, initOptions).then(resolve).catch(reject);\r\n}\r\n","import type { InitOptions } from '../options.init.mjs';\r\nimport type { TypstRenderer } from '../renderer.mjs';\r\n\r\nlet globalRenderer: TypstRenderer | undefined = undefined;\r\nlet globalRendererInitReady: Promise<TypstRenderer>;\r\nlet isReady = false;\r\n\r\nexport function getGlobalRenderer(): TypstRenderer | undefined {\r\n return isReady ? globalRenderer : undefined;\r\n}\r\n\r\nexport function createGlobalRenderer(\r\n creator: () => TypstRenderer,\r\n initOptions?: Partial<InitOptions>,\r\n): Promise<TypstRenderer> {\r\n // todo: determine renderer thread-safety\r\n // todo: check inconsistent initOptions\r\n const renderer = globalRenderer || creator();\r\n\r\n if (globalRendererInitReady !== undefined) {\r\n return globalRendererInitReady;\r\n }\r\n\r\n return (globalRendererInitReady = (async () => {\r\n isReady = true;\r\n await renderer.init(initOptions);\r\n return (globalRenderer = renderer);\r\n })());\r\n}\r\n\r\nexport function withGlobalRenderer(\r\n creator: () => TypstRenderer,\r\n initOptions: Partial<InitOptions> | undefined,\r\n resolve: (renderer: TypstRenderer) => void,\r\n reject?: (err: any) => void,\r\n) {\r\n const renderer = getGlobalRenderer();\r\n if (renderer) {\r\n resolve(renderer);\r\n return;\r\n }\r\n\r\n createGlobalRenderer(creator, initOptions).then(resolve).catch(reject);\r\n}\r\n","import * as Comlink from \"comlink\";\nimport {\n createTypstRenderer,\n type TypstRenderer as InnerTypstRenderer,\n} from \"@myriaddreamin/typst.ts\";\n// Static import so esbuild bundles the wasm-bindgen JS shim into the worker.\n// Provided to typst.ts via `getWrapper` so it doesn't fall back to its\n// `await import(\"@myriaddreamin/typst-ts-renderer\")`.\nimport * as typstTsRenderer from \"@myriaddreamin/typst-ts-renderer\";\n\nexport class RendererWorker {\n #inner: InnerTypstRenderer | null = null;\n\n #ensureInner(): InnerTypstRenderer {\n if (!this.#inner) throw new Error(\"Renderer not initialized\");\n return this.#inner;\n }\n\n async init(wasmUrl: string): Promise<void> {\n this.#inner = createTypstRenderer();\n await this.#inner.init({\n getModule: () => wasmUrl,\n getWrapper: () => Promise.resolve(typstTsRenderer),\n });\n }\n\n /**\n * Vector → merged SVG string. typst.ts's `renderSvg` produces the whole\n * document as one SVG with `<g class=\"typst-page\">` children. The main-side\n * `TypstRenderer.renderSvgPages` splits it; doing the split here would\n * require DOMParser, which Web Workers don't have.\n */\n async renderSvg(vector: Uint8Array): Promise<string> {\n return this.#ensureInner().renderSvg({\n format: \"vector\",\n artifactContent: vector,\n });\n }\n\n destroy(): void {\n this.#inner = null;\n }\n}\n\nComlink.expose(new RendererWorker());\n","export type { InitOptions, BeforeBuildFn } from './options.init.mjs';\r\nexport * as initOptions from './options.init.mjs';\r\nexport type {\r\n RenderByContentOptions,\r\n RenderInSessionOptions,\r\n RenderCanvasOptions as RenderPageOptions,\r\n RenderOptions,\r\n} from './options.render.mjs';\r\nexport { loadFonts, preloadRemoteFonts, preloadSystemFonts } from './options.init.mjs';\r\nexport type { RenderSession, TypstRenderer } from './renderer.mjs';\r\nexport { rendererBuildInfo, createTypstRenderer } from './renderer.mjs';\r\nexport { FetchAccessModel, MemoryAccessModel } from './fs/index.mjs';\r\nexport { FetchPackageRegistry } from './fs/package.mjs';\r\nexport type { FetchAccessOptions } from './fs/index.mjs';\r\nexport type { TypstCompiler, TypstFontBuilder } from './compiler.mjs';\r\nexport { createTypstCompiler, createTypstFontBuilder } from './compiler.mjs';\r\nexport { $typst } from './contrib/snippet.mjs';\r\n// export { RenderView } from './render/canvas/view.mjs';\r\n","import { FsAccessModel } from '../internal.types.mjs';\r\nimport { WritableAccessModel } from './index.mjs';\r\n\r\nexport class MemoryAccessModel implements FsAccessModel, WritableAccessModel {\r\n mTimes: Map<string, Date | undefined> = new Map();\r\n mData: Map<string, Uint8Array | undefined> = new Map();\r\n constructor() {}\r\n\r\n reset() {\r\n this.mTimes.clear();\r\n this.mData.clear();\r\n }\r\n\r\n insertFile(path: string, data: Uint8Array, mtime: Date) {\r\n this.mTimes.set(path, mtime);\r\n this.mData.set(path, data);\r\n }\r\n\r\n removeFile(path: string) {\r\n this.mTimes.delete(path);\r\n this.mData.delete(path);\r\n }\r\n\r\n getMTime(path: string): Date | undefined {\r\n if (!path.startsWith('/@memory/')) {\r\n return undefined;\r\n }\r\n\r\n if (this.mTimes.has(path)) {\r\n return this.mTimes.get(path);\r\n }\r\n return undefined;\r\n }\r\n\r\n isFile(): boolean | undefined {\r\n return true;\r\n }\r\n\r\n getRealPath(path: string): string | undefined {\r\n return path;\r\n }\r\n\r\n readAll(path: string): Uint8Array | undefined {\r\n if (!path.startsWith('/@memory/')) {\r\n return undefined;\r\n }\r\n\r\n if (this.mData.has(path)) {\r\n return this.mData.get(path);\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n","import { PackageRegistry, PackageResolveContext, PackageSpec } from '../internal.types.mjs';\r\nimport { WritableAccessModel } from './index.mjs';\r\n\r\nexport class FetchPackageRegistry implements PackageRegistry {\r\n cache: Map<string, () => string | undefined> = new Map();\r\n constructor(\r\n /** \r\n * @internal \r\n * Access model for internal use only\r\n */\r\n protected am: WritableAccessModel\r\n ) {}\r\n\r\n resolvePath(path: PackageSpec): string {\r\n return `https://packages.typst.org/preview/${path.name}-${path.version}.tar.gz`;\r\n }\r\n\r\n pullPackageData(path: PackageSpec): Uint8Array | undefined {\r\n const request = new XMLHttpRequest();\r\n request.overrideMimeType('text/plain; charset=x-user-defined');\r\n request.open('GET', this.resolvePath(path), false);\r\n request.send(null);\r\n\r\n if (\r\n request.status === 200 &&\r\n (request.response instanceof String || typeof request.response === 'string')\r\n ) {\r\n return Uint8Array.from(request.response, (c: string) => c.charCodeAt(0));\r\n }\r\n return undefined;\r\n }\r\n\r\n resolve(spec: PackageSpec, context: PackageResolveContext): string | undefined {\r\n if (spec.namespace !== 'preview') {\r\n return undefined;\r\n }\r\n\r\n /// Check cache\r\n const path = this.resolvePath(spec);\r\n if (this.cache.has(path)) {\r\n return this.cache.get(path)!();\r\n }\r\n\r\n /// Fetch data\r\n const data = this.pullPackageData(spec);\r\n if (!data) {\r\n return undefined;\r\n }\r\n\r\n /// Extract package bundle to the underlying access model `this.am`\r\n const previewDir = `/@memory/fetch/packages/${spec.namespace}/${spec.name}/${spec.version}`;\r\n const entries: [string, Uint8Array, Date][] = [];\r\n context.untar(data, (path: string, data: Uint8Array, mtime: number) => {\r\n entries.push([previewDir + '/' + path, data, new Date(mtime)]);\r\n });\r\n const cacheClosure = () => {\r\n for (const [path, data, mtime] of entries) {\r\n this.am.insertFile(path, data, mtime);\r\n }\r\n\r\n /// Return the resolved directory to the package\r\n /// It is then used to access the package data by the access model `this.am`\r\n return previewDir;\r\n };\r\n this.cache.set(path, cacheClosure);\r\n\r\n /// Trigger write out\r\n return cacheClosure();\r\n }\r\n}\r\n","import type { CompileOptions, TypstCompiler, TypstFontBuilder } from '../compiler.mjs';\r\nimport {\r\n withPackageRegistry,\r\n withAccessModel,\r\n type BeforeBuildFn,\r\n type InitOptions,\r\n preloadFontAssets,\r\n disableDefaultFontAssets,\r\n loadFonts,\r\n LoadRemoteAssetsOptions,\r\n} from '../options.init.mjs';\r\nimport { loadFontSync } from '../init.mjs';\r\nimport type { TypstRenderer, RenderSession } from '../renderer.mjs';\r\nimport type { RenderToCanvasOptions, RenderSvgOptions } from '../options.render.mjs';\r\nimport { MemoryAccessModel, type WritableAccessModel } from '../fs/index.mjs';\r\nimport { FetchPackageRegistry } from '../fs/package.mjs';\r\nimport {\r\n PackageRegistry,\r\n PackageSpec,\r\n SemanticTokens,\r\n SemanticTokensLegend,\r\n} from '../internal.types.mjs';\r\nimport { randstr } from '../utils.mjs';\r\nimport { CompileFormatEnum } from '../compiler.mjs';\r\n\r\n/**\r\n * Some function that returns a promise of value or just that value.\r\n */\r\ntype PromiseJust<T> = (() => Promise<T>) | T;\r\n\r\ninterface CompileOptionsCommon {\r\n /**\r\n * The root of the main file.\r\n */\r\n root?: string;\r\n /**\r\n * Adds a string key-value pair visible through `sys.inputs`\r\n *\r\n * Note: pass `{}` to clear `sys.inputs`\r\n *\r\n * Note: When passing `undefined`, compiler will use last set `sys.inputs`.\r\n *\r\n * Note: This means you should always specify inputs when using compiler for concurrent tasks.\r\n */\r\n inputs?: Record<string, string>;\r\n}\r\n\r\n/**\r\n * The sweet options for compiling and rendering the document.\r\n */\r\nexport type SweetCompileOptions = (\r\n | {\r\n /**\r\n * The path of the main file.\r\n */\r\n mainFilePath: string;\r\n }\r\n | {\r\n /**\r\n * The source content of the main file.\r\n */\r\n mainContent: string;\r\n }\r\n) &\r\n CompileOptionsCommon;\r\n\r\n/**\r\n * The sweet options for compiling and rendering the document.\r\n */\r\nexport type SweetRenderOptions =\r\n | SweetCompileOptions\r\n | {\r\n /**\r\n * The artifact data in vector format.\r\n */\r\n vectorData: Uint8Array;\r\n };\r\n\r\nexport type SweetLazyFont = {\r\n info: any;\r\n} & (\r\n | {\r\n blob: (index: number) => Uint8Array;\r\n }\r\n | {\r\n url: string;\r\n }\r\n );\r\n\r\ntype Role = 'compiler' | 'renderer';\r\n\r\n/**\r\n * The sweet snippet provider for bullding the compiler or renderer component.\r\n * See {@link TypstSnippet#use} for more details.\r\n */\r\nexport interface TypstSnippetProvider {\r\n key: string;\r\n forRoles: Role[];\r\n provides: BeforeBuildFn[];\r\n}\r\n\r\nconst isNode =\r\n // @ts-ignore\r\n typeof process !== 'undefined' && process.versions != null && process.versions.node != null;\r\n\r\n/**\r\n * Convenient util class for compiling documents, which is a wrapper of the\r\n * {@link TypstCompiler} and {@link TypstRenderer}.\r\n *\r\n * Note: the interface of this class is less stable than {@link TypstCompiler}\r\n * and {@link TypstRenderer}.\r\n *\r\n * @example\r\n * Use the *global shared* compiler instance:\r\n *\r\n * ```typescript\r\n * import { $typst } from '@myriaddreamin/typst.ts';\r\n * ```\r\n *\r\n * Note: if you want to compile multiple documents, you should create a new\r\n * instance for each compilation work or maintain the shared state on the\r\n * utility instance `$typst` carefully, because the compilation process will\r\n * change the state of that.\r\n *\r\n * @example\r\n * Create an instance of utility:\r\n *\r\n * ```typescript\r\n * const $typst = new TypstSnippet({\r\n * // optional renderer instance\r\n * renderer: enableRendering ?? (() => {\r\n * return createGlobalRenderer(createTypstRenderer,\r\n * undefined, initOptions);\r\n * }),\r\n * compiler() => {\r\n * return createGlobalCompiler(createTypstCompiler,\r\n * initOptions);\r\n * }\r\n * });\r\n * ```\r\n */\r\nexport class TypstSnippet {\r\n /** @internal */\r\n private mainFilePath: string;\r\n /** @internal */\r\n private cc?: PromiseJust<TypstCompiler>;\r\n /** @internal */\r\n private fr?: PromiseJust<TypstFontBuilder>;\r\n /** @internal */\r\n private ex?: PromiseJust<TypstRenderer>;\r\n\r\n /**\r\n * Create a new instance of {@link TypstSnippet}.\r\n * @param cc the compiler instance, see {@link PromiseJust} and {@link TypstCompiler}.\r\n * @param ex the renderer instance, see {@link PromiseJust} and {@link TypstRenderer}.\r\n *\r\n * @example\r\n *\r\n * Passes a global shared compiler instance that get initialized lazily:\r\n * ```typescript\r\n * const $typst = new TypstSnippet(() => {\r\n * return createGlobalCompiler(createTypstCompiler, initOptions);\r\n * });\r\n *\r\n */\r\n constructor(options?: {\r\n compiler?: PromiseJust<TypstCompiler>;\r\n fontResolver?: PromiseJust<TypstFontBuilder>;\r\n renderer?: PromiseJust<TypstRenderer>;\r\n }) {\r\n this.cc = options?.compiler || TypstSnippet.buildLocalCompiler;\r\n this.fr = options?.fontResolver || TypstSnippet.buildLocalFontResolver;\r\n this.ex = options?.renderer || TypstSnippet.buildLocalRenderer;\r\n this.mainFilePath = '/main.typ';\r\n this.providers = [];\r\n }\r\n\r\n /**\r\n * Set lazy initialized compiler instance for the utility instance.\r\n * @param cc the compiler instance, see {@link PromiseJust} and {@link TypstCompiler}.\r\n */\r\n setCompiler(cc: PromiseJust<TypstCompiler>) {\r\n this.cc = cc;\r\n }\r\n\r\n async getFontResolver() {\r\n return (typeof this.fr === 'function' ? (this.fr = await this.fr()) : this.fr)!;\r\n }\r\n\r\n /**\r\n * Get an initialized compiler instance from the utility instance.\r\n */\r\n async getCompiler() {\r\n return (typeof this.cc === 'function' ? (this.cc = await this.cc()) : this.cc)!;\r\n }\r\n\r\n private async getCompilerReset() {\r\n const compiler = await this.getCompiler();\r\n await compiler.reset();\r\n return compiler;\r\n }\r\n\r\n /**\r\n * Set lazy initialized renderer instance for the utility instance.\r\n * @param ex the renderer instance, see {@link PromiseJust} and {@link TypstRenderer}.\r\n */\r\n setRenderer(ex: PromiseJust<TypstRenderer>) {\r\n this.ex = ex;\r\n }\r\n\r\n /**\r\n * Get an initialized renderer instance from the utility instance.\r\n */\r\n async getRenderer(): Promise<TypstRenderer> {\r\n return typeof this.ex === 'function' ? (this.ex = await this.ex()) : this.ex!;\r\n }\r\n\r\n private providers?: PromiseJust<TypstSnippetProvider>[];\r\n /**\r\n * add providers for bullding the compiler or renderer component.\r\n */\r\n use(...providers: PromiseJust<TypstSnippetProvider>[]) {\r\n if (!this.providers) {\r\n throw new Error('already prepare uses for instances');\r\n }\r\n this.providers.push(...providers);\r\n }\r\n\r\n /**\r\n * todo: add docs\r\n */\r\n static preloadFontFromUrl(fontUrl: string): TypstSnippetProvider {\r\n return TypstSnippet.preloadFonts([fontUrl]);\r\n }\r\n\r\n /**\r\n * todo: add docs\r\n */\r\n static preloadFontData(fontData: Uint8Array): TypstSnippetProvider {\r\n return TypstSnippet.preloadFonts([fontData]);\r\n }\r\n\r\n /**\r\n * todo: add docs\r\n */\r\n static preloadFonts(userFonts: (string | Uint8Array)[]): TypstSnippetProvider {\r\n return {\r\n key: 'access-model',\r\n forRoles: ['compiler'],\r\n provides: [loadFonts(userFonts)],\r\n };\r\n }\r\n\r\n /**\r\n * don't load any default font assets.\r\n * todo: add docs\r\n */\r\n static disableDefaultFontAssets(): TypstSnippetProvider {\r\n return {\r\n key: 'access-model',\r\n forRoles: ['compiler'],\r\n provides: [disableDefaultFontAssets()],\r\n };\r\n }\r\n\r\n /**\r\n * todo: add docs\r\n */\r\n static preloadFontAssets(options?: LoadRemoteAssetsOptions): TypstSnippetProvider {\r\n return {\r\n key: 'access-model',\r\n forRoles: ['compiler'],\r\n provides: [preloadFontAssets(options)],\r\n };\r\n }\r\n\r\n /**\r\n * Set accessl model for the compiler instance\r\n * @example\r\n *\r\n * use memory access model\r\n *\r\n * ```typescript\r\n * const m = new MemoryAccessModel();\r\n * $typst.use(TypstSnippet.withAccessModel(m));\r\n * ```\r\n */\r\n static withAccessModel(accessModel: WritableAccessModel): TypstSnippetProvider {\r\n return {\r\n key: 'access-model',\r\n forRoles: ['compiler'],\r\n provides: [withAccessModel(accessModel)],\r\n };\r\n }\r\n\r\n /**\r\n * Set package registry for the compiler instance\r\n * @example\r\n *\r\n * use a customized package registry\r\n *\r\n * ```typescript\r\n * const n = new NodeFetchPackageRegistry();\r\n * $typst.use(TypstSnippet.withPackageRegistry(n));\r\n * ```\r\n */\r\n static withPackageRegistry(registry: PackageRegistry): TypstSnippetProvider {\r\n return {\r\n key: 'package-registry',\r\n forRoles: ['compiler'],\r\n provides: [withPackageRegistry(registry)],\r\n };\r\n }\r\n\r\n /**\r\n * Retrieve an access model to store the data of fetched files.\r\n * Provide a PackageRegistry instance for the compiler instance.\r\n *\r\n * @example\r\n *\r\n * use default (memory) access model\r\n *\r\n * ```typescript\r\n * $typst.use(await TypstSnippet.fetchPackageRegistry());\r\n * ```\r\n *\r\n * @example\r\n *\r\n * use external access model\r\n *\r\n * ```typescript\r\n * const m = new MemoryAccessModel();\r\n * $typst.use(TypstSnippet.withAccessModel(m), await TypstSnippet.fetchPackageRegistry(m));\r\n * ```\r\n */\r\n static fetchPackageRegistry(accessModel?: WritableAccessModel): TypstSnippetProvider {\r\n const m = accessModel || new MemoryAccessModel();\r\n const provides = [\r\n ...(accessModel ? [] : [withAccessModel(m)]),\r\n withPackageRegistry(new FetchPackageRegistry(m)),\r\n ];\r\n return {\r\n key: 'package-registry$fetch',\r\n forRoles: ['compiler'],\r\n provides,\r\n };\r\n }\r\n\r\n /**\r\n * Retrieve a fetcher for fetching package data.\r\n * Provide a PackageRegistry instance for the compiler instance.\r\n * @example\r\n *\r\n * use a customized fetcher\r\n *\r\n * ```typescript\r\n * import request from 'sync-request-curl';\r\n * const m = new MemoryAccessModel();\r\n * $typst.use(TypstSnippet.withAccessModel(m), await TypstSnippet.fetchPackageBy(m, (_, httpUrl) => {\r\n * const response = request('GET', this.resolvePath(path), {\r\n * insecure: true,\r\n * });\r\n *\r\n * if (response.statusCode === 200) {\r\n * return response.getBody(undefined);\r\n * }\r\n * return undefined;\r\n * }));\r\n * ```\r\n */\r\n static fetchPackageBy(\r\n accessModel: WritableAccessModel,\r\n fetcher: (path: PackageSpec, defaultHttpUrl: string) => Uint8Array | undefined,\r\n ): TypstSnippetProvider {\r\n class HttpPackageRegistry extends FetchPackageRegistry {\r\n pullPackageData(path: PackageSpec): Uint8Array | undefined {\r\n return fetcher(path, this.resolvePath(path));\r\n }\r\n }\r\n return {\r\n key: 'package-registry$lambda',\r\n forRoles: ['compiler'],\r\n provides: [withPackageRegistry(new HttpPackageRegistry(accessModel))],\r\n };\r\n }\r\n\r\n /** @internal */\r\n ccOptions: Partial<InitOptions>;\r\n /**\r\n * Set compiler init options for initializing global instance {@link $typst}.\r\n * See {@link InitOptions}.\r\n */\r\n setCompilerInitOptions(options: Partial<InitOptions>) {\r\n this.requireIsUninitialized('compiler', this.cc);\r\n this.ccOptions = options;\r\n }\r\n\r\n /** @internal */\r\n exOptions: Partial<InitOptions>;\r\n /**\r\n * Set renderer init options for initializing global instance {@link $typst}.\r\n * See {@link InitOptions}.\r\n */\r\n setRendererInitOptions(options: Partial<InitOptions>) {\r\n this.requireIsUninitialized('renderer', this.ex);\r\n this.exOptions = options;\r\n }\r\n\r\n /**\r\n * Set shared main file path.\r\n */\r\n setMainFilePath(path: string) {\r\n this.mainFilePath = path;\r\n }\r\n\r\n /**\r\n * Get shared main file path.\r\n */\r\n getMainFilePath() {\r\n return this.mainFilePath;\r\n }\r\n\r\n removeTmp(opts: CompileOptions): Promise<void> {\r\n if (opts.mainFilePath.startsWith('/tmp/')) {\r\n return this.unmapShadow(opts.mainFilePath);\r\n }\r\n\r\n return Promise.resolve();\r\n }\r\n\r\n /**\r\n * Adds a font to the compiler.\r\n *\r\n * @example\r\n *\r\n * ```typescript\r\n * const fonts = await fetch('fontInfo.json').then(res => res.json());\r\n * $typst.addFonts(fonts.map(font => $typst.loadFont(font.url)));\r\n * ```\r\n *\r\n * @param fontInfos the font infos to add.\r\n */\r\n async setFonts(fontInfos: SweetLazyFont[]) {\r\n const fb = await this.getFontResolver();\r\n for (const font of fontInfos) {\r\n await fb.addLazyFont(font, 'blob' in font ? font.blob : loadFontSync(font), font);\r\n }\r\n const compiler = await this.getCompiler();\r\n await fb.build(async fonts => compiler.setFonts(fonts));\r\n }\r\n\r\n /**\r\n * Add a source file to the compiler.\r\n * See {@link TypstCompiler#addSource}.\r\n */\r\n async addSource(path: string, content: string) {\r\n (await this.getCompiler()).addSource(path, content);\r\n }\r\n\r\n /**\r\n * Reset the shadow files.\r\n * Note: this function is independent to the {@link reset} function.\r\n * See {@link TypstCompiler#resetShadow}.\r\n */\r\n async resetShadow() {\r\n (await this.getCompiler()).resetShadow();\r\n }\r\n\r\n /**\r\n * Add a shadow file to the compiler.\r\n * See {@link TypstCompiler#mapShadow}.\r\n */\r\n async mapShadow(path: string, content: Uint8Array) {\r\n (await this.getCompiler()).mapShadow(path, content);\r\n }\r\n\r\n /**\r\n * Remove a shadow file from the compiler.\r\n * See {@link TypstCompiler#unmapShadow}.\r\n */\r\n async unmapShadow(path: string) {\r\n (await this.getCompiler()).unmapShadow(path);\r\n }\r\n\r\n /**\r\n * Compile the document to vector (IR) format.\r\n * See {@link SweetCompileOptions}.\r\n */\r\n async vector(o?: SweetCompileOptions) {\r\n const opts = await this.getCompileOptions(o);\r\n const compiler = await this.getCompilerReset();\r\n return compiler\r\n .compile(opts)\r\n .then(res => res.result)\r\n .finally(() => this.removeTmp(opts));\r\n }\r\n\r\n /**\r\n * Compile the document to PDF format.\r\n * See {@link SweetCompileOptions}.\r\n */\r\n async pdf(o?: SweetCompileOptions) {\r\n const opts = await this.getCompileOptions(o);\r\n opts.format = CompileFormatEnum.pdf;\r\n const compiler = await this.getCompilerReset();\r\n return compiler\r\n .compile(opts)\r\n .then(res => res.result)\r\n .finally(() => this.removeTmp(opts));\r\n }\r\n\r\n /**\r\n * Compile the document to SVG format.\r\n * See {@link SweetRenderOptions} and {@link RenderSvgOptions}.\r\n */\r\n async svg(o?: SweetRenderOptions & RenderSvgOptions) {\r\n return this.transientRender(o, (renderer, renderSession) =>\r\n renderer.renderSvg({\r\n ...o,\r\n renderSession,\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Compile the document to canvas operations.\r\n * See {@link SweetRenderOptions} and {@link RenderToCanvasOptions}.\r\n */\r\n async canvas(\r\n container: HTMLElement,\r\n o?: SweetRenderOptions & Omit<RenderToCanvasOptions, 'container'>,\r\n ) {\r\n return this.transientRender(o, (renderer, renderSession) =>\r\n renderer.renderToCanvas({\r\n container,\r\n ...o,\r\n renderSession,\r\n }),\r\n );\r\n }\r\n\r\n /**\r\n * Get semantic tokens for the document.\r\n */\r\n async query<T>(o: SweetCompileOptions & { selector: string; field?: string }): Promise<T> {\r\n const opts = await this.getCompileOptions(o);\r\n const compiler = await this.getCompilerReset();\r\n return compiler\r\n .query<T>({\r\n ...o,\r\n ...opts,\r\n })\r\n .finally(() => this.removeTmp(opts));\r\n }\r\n\r\n /**\r\n * Get token legend for semantic tokens.\r\n */\r\n async getSemanticTokenLegend(): Promise<SemanticTokensLegend> {\r\n const compiler = await this.getCompilerReset();\r\n return compiler.getSemanticTokenLegend();\r\n }\r\n\r\n /**\r\n * Get semantic tokens for the document.\r\n * See {@link SweetCompileOptions}.\r\n * See {@link TypstCompiler#getSemanticTokens}.\r\n */\r\n async getSemanticTokens(o: SweetCompileOptions & { resultId?: string }): Promise<SemanticTokens> {\r\n const opts = await this.getCompileOptions(o);\r\n const compiler = await this.getCompilerReset();\r\n return compiler\r\n .getSemanticTokens({\r\n mainFilePath: opts.mainFilePath,\r\n resultId: o.resultId,\r\n })\r\n .finally(() => this.removeTmp(opts));\r\n }\r\n\r\n private async getCompileOptions(\r\n opts?: SweetCompileOptions,\r\n ): Promise<CompileOptions<CompileFormatEnum, 'none'>> {\r\n if (opts === undefined) {\r\n return { mainFilePath: this.mainFilePath, diagnostics: 'none' };\r\n } else if (typeof opts === 'string') {\r\n throw new Error(`please specify opts as {mainContent: '...'} or {mainFilePath: '...'}`);\r\n } else if ('mainFilePath' in opts) {\r\n return { ...opts, diagnostics: 'none' };\r\n } else {\r\n const destFile = `/tmp/${randstr()}.typ`;\r\n await this.addSource(destFile, opts.mainContent);\r\n return { mainFilePath: destFile, inputs: opts.inputs, diagnostics: 'none' };\r\n }\r\n }\r\n\r\n private async getVector(o?: SweetRenderOptions): Promise<Uint8Array> {\r\n if (o && 'vectorData' in o) {\r\n return o.vectorData;\r\n }\r\n\r\n const opts = await this.getCompileOptions(o);\r\n return (await this.getCompiler())\r\n .compile(opts)\r\n .then(res => res.result!)\r\n .finally(() => this.removeTmp(opts));\r\n }\r\n\r\n private async transientRender<T>(\r\n opts: SweetRenderOptions | undefined,\r\n f: (rr: TypstRenderer, session: RenderSession) => T,\r\n ): Promise<T> {\r\n const rr = await this.getRenderer();\r\n if (!rr) {\r\n throw new Error('does not provide renderer instance');\r\n }\r\n const data = await this.getVector(opts);\r\n return await rr.runWithSession(async session => {\r\n rr.manipulateData({\r\n renderSession: session,\r\n action: 'reset',\r\n data,\r\n });\r\n return f(rr, session);\r\n });\r\n }\r\n\r\n prepareUseOnce: Promise<void> | undefined = undefined;\r\n private async prepareUse() {\r\n if (this.prepareUseOnce) {\r\n return this.prepareUseOnce;\r\n }\r\n return (this.prepareUseOnce = this.doPrepareUse());\r\n }\r\n\r\n private async doPrepareUse() {\r\n if (!this.providers) {\r\n return;\r\n }\r\n\r\n const providers = await Promise.all(\r\n this.providers.map(p => (typeof p === 'function' ? p() : p)),\r\n );\r\n this.providers = [];\r\n\r\n if (\r\n $typst == this &&\r\n !providers.some(p => p.key.includes('package-registry') || p.key.includes('access-model'))\r\n ) {\r\n // Note: the default fetch backend always adds a withAccessModel(mem)\r\n if (isNode) {\r\n const escapeImport = new Function('m', 'return import(m)');\r\n try {\r\n const m = new MemoryAccessModel();\r\n const { default: request } = await escapeImport('sync-request');\r\n\r\n $typst.use(\r\n TypstSnippet.withAccessModel(m),\r\n TypstSnippet.fetchPackageBy(m, (_: unknown, path: string) => {\r\n const response = request('GET', path);\r\n\r\n if (response.statusCode === 200) {\r\n return response.getBody(undefined);\r\n }\r\n return undefined;\r\n }),\r\n );\r\n } catch (e) { }\r\n } else {\r\n $typst.use(TypstSnippet.fetchPackageRegistry());\r\n }\r\n }\r\n\r\n const providers2 = await Promise.all(\r\n this.providers.map(p => (typeof p === 'function' ? p() : p)),\r\n );\r\n\r\n const ccOptions = (this.ccOptions ||= {});\r\n const ccBeforeBuild = (ccOptions.beforeBuild ||= []);\r\n\r\n const exOptions = (this.exOptions ||= {});\r\n const exBeforeBuild = (exOptions.beforeBuild ||= []);\r\n\r\n for (const provider of [...providers, ...providers2]) {\r\n if (provider.forRoles.includes('compiler')) {\r\n this.requireIsUninitialized('compiler', this.cc);\r\n ccBeforeBuild.push(...provider.provides);\r\n }\r\n if (provider.forRoles.includes('renderer')) {\r\n this.requireIsUninitialized('renderer', this.ex);\r\n exBeforeBuild.push(...provider.provides);\r\n }\r\n }\r\n this.providers = undefined;\r\n }\r\n\r\n private requireIsUninitialized<T>(role: string, c: PromiseJust<T>, e?: PromiseJust<T>) {\r\n if (c && typeof c !== 'function') {\r\n throw new Error(`${role} has been initialized: ${c}`);\r\n }\r\n }\r\n\r\n /** @internal */\r\n static async buildLocalCompiler(this: TypstSnippet) {\r\n const { createTypstCompiler } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/compiler'\r\n )) as any as typeof import('../compiler.mjs');\r\n\r\n await this.prepareUse();\r\n const compiler = createTypstCompiler();\r\n await compiler.init(this.ccOptions);\r\n return compiler;\r\n }\r\n\r\n /** @internal */\r\n static async buildLocalFontResolver(this: TypstSnippet) {\r\n const { createTypstFontBuilder } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/compiler'\r\n )) as any as typeof import('../compiler.mjs');\r\n\r\n await this.prepareUse();\r\n const fonts = createTypstFontBuilder();\r\n await fonts.init(this.ccOptions);\r\n return fonts;\r\n }\r\n\r\n /** @internal */\r\n static async buildGlobalCompiler(this: TypstSnippet) {\r\n // lazy import compile module\r\n const { createGlobalCompiler } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/contrib/global-compiler'\r\n )) as any as typeof import('./global-compiler.mjs');\r\n const { createTypstCompiler } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/compiler'\r\n )) as any as typeof import('../compiler.mjs');\r\n\r\n await this.prepareUse();\r\n return createGlobalCompiler(createTypstCompiler, this.ccOptions);\r\n }\r\n\r\n /** @internal */\r\n static async buildLocalRenderer(this: TypstSnippet) {\r\n const { createTypstRenderer } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/renderer'\r\n )) as any as typeof import('../renderer.mjs');\r\n\r\n await this.prepareUse();\r\n const renderer = createTypstRenderer();\r\n await renderer.init(this.exOptions);\r\n return renderer;\r\n }\r\n\r\n /** @internal */\r\n static async buildGlobalRenderer(this: TypstSnippet) {\r\n // lazy import renderer module\r\n const { createGlobalRenderer } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/contrib/global-renderer'\r\n )) as any as typeof import('./global-renderer.mjs');\r\n const { createTypstRenderer } = (await import(\r\n // @ts-ignore\r\n '@myriaddreamin/typst.ts/renderer'\r\n )) as any as typeof import('../renderer.mjs');\r\n\r\n await this.prepareUse();\r\n return createGlobalRenderer(createTypstRenderer, this.exOptions);\r\n }\r\n}\r\n\r\n/**\r\n * The lazy initialized global shared instance of {@link TypstSnippet}. See\r\n * {@link TypstSnippet} for more details.\r\n */\r\nexport const $typst = new TypstSnippet({\r\n compiler: TypstSnippet.buildGlobalCompiler,\r\n renderer: TypstSnippet.buildGlobalRenderer,\r\n});\r\n","/** @internal */\r\nexport function randstr(prefix?: string): string {\r\n return Math.random()\r\n .toString(36)\r\n .replace('0.', prefix || '');\r\n}\r\n"],"mappings":"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","names":["TypstDefaultParams","PreviewMode","TrackMode","RepaintStage","ptr","arg0","arg1","RenderSession","TypstWorker","ManageStatus","TypstRendererBuilder","options","CompileFormatEnum","TypstFontResolverCons","isReady","path","data","isNode","createTypstCompiler","createTypstFontBuilder","createGlobalCompiler","createTypstRenderer","createGlobalRenderer"]}
|