@typbase/engine 0.2.1

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/engine.js ADDED
@@ -0,0 +1,1387 @@
1
+ /* @ts-self-types="./engine.d.ts" */
2
+
3
+ export class FileId {
4
+ static __wrap(ptr) {
5
+ const obj = Object.create(FileId.prototype);
6
+ obj.__wbg_ptr = ptr;
7
+ FileIdFinalization.register(obj, obj.__wbg_ptr, obj);
8
+ return obj;
9
+ }
10
+ __destroy_into_raw() {
11
+ const ptr = this.__wbg_ptr;
12
+ this.__wbg_ptr = 0;
13
+ FileIdFinalization.unregister(this);
14
+ return ptr;
15
+ }
16
+ free() {
17
+ const ptr = this.__destroy_into_raw();
18
+ wasm.__wbg_fileid_free(ptr, 0);
19
+ }
20
+ }
21
+ if (Symbol.dispose) FileId.prototype[Symbol.dispose] = FileId.prototype.free;
22
+
23
+ export class Rgb {
24
+ __destroy_into_raw() {
25
+ const ptr = this.__wbg_ptr;
26
+ this.__wbg_ptr = 0;
27
+ RgbFinalization.unregister(this);
28
+ return ptr;
29
+ }
30
+ free() {
31
+ const ptr = this.__destroy_into_raw();
32
+ wasm.__wbg_rgb_free(ptr, 0);
33
+ }
34
+ /**
35
+ * @param {number} r
36
+ * @param {number} g
37
+ * @param {number} b
38
+ */
39
+ constructor(r, g, b) {
40
+ const ret = wasm.rgb_new(r, g, b);
41
+ this.__wbg_ptr = ret;
42
+ RgbFinalization.register(this, this.__wbg_ptr, this);
43
+ return this;
44
+ }
45
+ /**
46
+ * @returns {string}
47
+ */
48
+ toString() {
49
+ let deferred1_0;
50
+ let deferred1_1;
51
+ try {
52
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
53
+ wasm.rgb_toString(retptr, this.__wbg_ptr);
54
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
55
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
56
+ deferred1_0 = r0;
57
+ deferred1_1 = r1;
58
+ return getStringFromWasm0(r0, r1);
59
+ } finally {
60
+ wasm.__wbindgen_add_to_stack_pointer(16);
61
+ wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
62
+ }
63
+ }
64
+ }
65
+ if (Symbol.dispose) Rgb.prototype[Symbol.dispose] = Rgb.prototype.free;
66
+
67
+ /**
68
+ * Colors handed to Typst as the `theme` dictionary. The slots mirror the
69
+ * app's resolved `ThemePaletteTokens` one to one (plus derived `on-*` text
70
+ * colors), so a single token set styles both the chrome and rendered pages.
71
+ * The dict keys in [`fmt::Display`] are the kebab-case token names Typst
72
+ * code reads. `overlay` stays chrome-only: it carries alpha and Rgb cannot.
73
+ */
74
+ export class ThemeColors {
75
+ __destroy_into_raw() {
76
+ const ptr = this.__wbg_ptr;
77
+ this.__wbg_ptr = 0;
78
+ ThemeColorsFinalization.unregister(this);
79
+ return ptr;
80
+ }
81
+ free() {
82
+ const ptr = this.__destroy_into_raw();
83
+ wasm.__wbg_themecolors_free(ptr, 0);
84
+ }
85
+ /**
86
+ * @param {Rgb} surface
87
+ * @param {Rgb} surface2
88
+ * @param {Rgb} surface3
89
+ * @param {Rgb} border
90
+ * @param {Rgb} border_strong
91
+ * @param {Rgb} text
92
+ * @param {Rgb} text_secondary
93
+ * @param {Rgb} accent
94
+ * @param {Rgb} accent_soft
95
+ * @param {Rgb} on_accent
96
+ * @param {Rgb} ok
97
+ * @param {Rgb} ok_soft
98
+ * @param {Rgb} warning
99
+ * @param {Rgb} warning_soft
100
+ * @param {Rgb} danger
101
+ * @param {Rgb} danger_soft
102
+ * @param {Rgb} on_danger
103
+ * @param {Rgb} info
104
+ * @param {Rgb} info_soft
105
+ * @param {Rgb} red
106
+ * @param {Rgb} orange
107
+ * @param {Rgb} yellow
108
+ * @param {Rgb} green
109
+ * @param {Rgb} cyan
110
+ * @param {Rgb} blue
111
+ * @param {Rgb} violet
112
+ * @param {Rgb} code
113
+ */
114
+ constructor(surface, surface2, surface3, border, border_strong, text, text_secondary, accent, accent_soft, on_accent, ok, ok_soft, warning, warning_soft, danger, danger_soft, on_danger, info, info_soft, red, orange, yellow, green, cyan, blue, violet, code) {
115
+ _assertClass(surface, Rgb);
116
+ var ptr0 = surface.__destroy_into_raw();
117
+ _assertClass(surface2, Rgb);
118
+ var ptr1 = surface2.__destroy_into_raw();
119
+ _assertClass(surface3, Rgb);
120
+ var ptr2 = surface3.__destroy_into_raw();
121
+ _assertClass(border, Rgb);
122
+ var ptr3 = border.__destroy_into_raw();
123
+ _assertClass(border_strong, Rgb);
124
+ var ptr4 = border_strong.__destroy_into_raw();
125
+ _assertClass(text, Rgb);
126
+ var ptr5 = text.__destroy_into_raw();
127
+ _assertClass(text_secondary, Rgb);
128
+ var ptr6 = text_secondary.__destroy_into_raw();
129
+ _assertClass(accent, Rgb);
130
+ var ptr7 = accent.__destroy_into_raw();
131
+ _assertClass(accent_soft, Rgb);
132
+ var ptr8 = accent_soft.__destroy_into_raw();
133
+ _assertClass(on_accent, Rgb);
134
+ var ptr9 = on_accent.__destroy_into_raw();
135
+ _assertClass(ok, Rgb);
136
+ var ptr10 = ok.__destroy_into_raw();
137
+ _assertClass(ok_soft, Rgb);
138
+ var ptr11 = ok_soft.__destroy_into_raw();
139
+ _assertClass(warning, Rgb);
140
+ var ptr12 = warning.__destroy_into_raw();
141
+ _assertClass(warning_soft, Rgb);
142
+ var ptr13 = warning_soft.__destroy_into_raw();
143
+ _assertClass(danger, Rgb);
144
+ var ptr14 = danger.__destroy_into_raw();
145
+ _assertClass(danger_soft, Rgb);
146
+ var ptr15 = danger_soft.__destroy_into_raw();
147
+ _assertClass(on_danger, Rgb);
148
+ var ptr16 = on_danger.__destroy_into_raw();
149
+ _assertClass(info, Rgb);
150
+ var ptr17 = info.__destroy_into_raw();
151
+ _assertClass(info_soft, Rgb);
152
+ var ptr18 = info_soft.__destroy_into_raw();
153
+ _assertClass(red, Rgb);
154
+ var ptr19 = red.__destroy_into_raw();
155
+ _assertClass(orange, Rgb);
156
+ var ptr20 = orange.__destroy_into_raw();
157
+ _assertClass(yellow, Rgb);
158
+ var ptr21 = yellow.__destroy_into_raw();
159
+ _assertClass(green, Rgb);
160
+ var ptr22 = green.__destroy_into_raw();
161
+ _assertClass(cyan, Rgb);
162
+ var ptr23 = cyan.__destroy_into_raw();
163
+ _assertClass(blue, Rgb);
164
+ var ptr24 = blue.__destroy_into_raw();
165
+ _assertClass(violet, Rgb);
166
+ var ptr25 = violet.__destroy_into_raw();
167
+ _assertClass(code, Rgb);
168
+ var ptr26 = code.__destroy_into_raw();
169
+ const ret = wasm.themecolors_new(ptr0, ptr1, ptr2, ptr3, ptr4, ptr5, ptr6, ptr7, ptr8, ptr9, ptr10, ptr11, ptr12, ptr13, ptr14, ptr15, ptr16, ptr17, ptr18, ptr19, ptr20, ptr21, ptr22, ptr23, ptr24, ptr25, ptr26);
170
+ this.__wbg_ptr = ret;
171
+ ThemeColorsFinalization.register(this, this.__wbg_ptr, this);
172
+ return this;
173
+ }
174
+ /**
175
+ * Generated tmTheme text, for writing into exported project bundles.
176
+ * @returns {string}
177
+ */
178
+ tmTheme() {
179
+ let deferred1_0;
180
+ let deferred1_1;
181
+ try {
182
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
183
+ wasm.themecolors_tmTheme(retptr, this.__wbg_ptr);
184
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
185
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
186
+ deferred1_0 = r0;
187
+ deferred1_1 = r1;
188
+ return getStringFromWasm0(r0, r1);
189
+ } finally {
190
+ wasm.__wbindgen_add_to_stack_pointer(16);
191
+ wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
192
+ }
193
+ }
194
+ /**
195
+ * Virtual path of `tmTheme`, with no leading slash.
196
+ * @returns {string}
197
+ */
198
+ tmThemePath() {
199
+ let deferred1_0;
200
+ let deferred1_1;
201
+ try {
202
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
203
+ wasm.themecolors_tmThemePath(retptr, this.__wbg_ptr);
204
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
205
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
206
+ deferred1_0 = r0;
207
+ deferred1_1 = r1;
208
+ return getStringFromWasm0(r0, r1);
209
+ } finally {
210
+ wasm.__wbindgen_add_to_stack_pointer(16);
211
+ wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
212
+ }
213
+ }
214
+ }
215
+ if (Symbol.dispose) ThemeColors.prototype[Symbol.dispose] = ThemeColors.prototype.free;
216
+
217
+ /**
218
+ * Global state for Typst rendering and compilation in Typbase.
219
+ *
220
+ * Holds the world, all open source and space contexts, and manages the mapping
221
+ * between user/editor state and Typst's compilation model.
222
+ */
223
+ export class TypstState {
224
+ __destroy_into_raw() {
225
+ const ptr = this.__wbg_ptr;
226
+ this.__wbg_ptr = 0;
227
+ TypstStateFinalization.unregister(this);
228
+ return ptr;
229
+ }
230
+ free() {
231
+ const ptr = this.__destroy_into_raw();
232
+ wasm.__wbg_typststate_free(ptr, 0);
233
+ }
234
+ /**
235
+ * @param {FileId} id
236
+ * @param {number} raw_cursor_utf16
237
+ * @param {boolean} explicit
238
+ * @returns {Autocomplete | undefined}
239
+ */
240
+ autocomplete(id, raw_cursor_utf16, explicit) {
241
+ try {
242
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
243
+ _assertClass(id, FileId);
244
+ wasm.typststate_autocomplete(retptr, this.__wbg_ptr, id.__wbg_ptr, raw_cursor_utf16, explicit);
245
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
246
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
247
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
248
+ if (r2) {
249
+ throw takeObject(r1);
250
+ }
251
+ return takeObject(r0);
252
+ } finally {
253
+ wasm.__wbindgen_add_to_stack_pointer(16);
254
+ }
255
+ }
256
+ /**
257
+ * Diagnostics-only HTML pass: compile the pristine synth, no recovery.
258
+ * @param {FileId} id
259
+ * @param {string} text
260
+ * @param {string} prelude
261
+ * @returns {CheckResult}
262
+ */
263
+ checkHTML(id, text, prelude) {
264
+ try {
265
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
266
+ _assertClass(id, FileId);
267
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
268
+ const len0 = WASM_VECTOR_LEN;
269
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
270
+ const len1 = WASM_VECTOR_LEN;
271
+ wasm.typststate_checkHTML(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
272
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
273
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
274
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
275
+ if (r2) {
276
+ throw takeObject(r1);
277
+ }
278
+ return takeObject(r0);
279
+ } finally {
280
+ wasm.__wbindgen_add_to_stack_pointer(16);
281
+ }
282
+ }
283
+ /**
284
+ * Index mapping self-test for the debug lab. Builds the synth exactly
285
+ * like a compile would, then verifies map invariants: segments tile both
286
+ * spaces, both directions stay in bounds, and neither regresses.
287
+ * @param {FileId} id
288
+ * @param {string} text
289
+ * @param {string} prelude
290
+ * @returns {IndexCheckReport}
291
+ */
292
+ checkIndex(id, text, prelude) {
293
+ try {
294
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
295
+ _assertClass(id, FileId);
296
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
297
+ const len0 = WASM_VECTOR_LEN;
298
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
299
+ const len1 = WASM_VECTOR_LEN;
300
+ wasm.typststate_checkIndex(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
301
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
302
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
303
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
304
+ if (r2) {
305
+ throw takeObject(r1);
306
+ }
307
+ return takeObject(r0);
308
+ } finally {
309
+ wasm.__wbindgen_add_to_stack_pointer(16);
310
+ }
311
+ }
312
+ /**
313
+ * Diagnostics-only pass: compile the pristine synth, no recovery.
314
+ * @param {FileId} id
315
+ * @param {string} text
316
+ * @param {string} prelude
317
+ * @returns {CheckResult}
318
+ */
319
+ checkPaged(id, text, prelude) {
320
+ try {
321
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
322
+ _assertClass(id, FileId);
323
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
324
+ const len0 = WASM_VECTOR_LEN;
325
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
326
+ const len1 = WASM_VECTOR_LEN;
327
+ wasm.typststate_checkPaged(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
328
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
329
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
330
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
331
+ if (r2) {
332
+ throw takeObject(r1);
333
+ }
334
+ return takeObject(r0);
335
+ } finally {
336
+ wasm.__wbindgen_add_to_stack_pointer(16);
337
+ }
338
+ }
339
+ /**
340
+ * The editor's inline HTML render: one ranged frame for the whole note,
341
+ * with the frames renderer's block-blanking recovery. Publishing, export,
342
+ * and chat use `renderHtml` (see [`document`]) instead.
343
+ * @param {FileId} id
344
+ * @param {string} text
345
+ * @param {string} prelude
346
+ * @returns {CompileHTMLResult}
347
+ */
348
+ compileHTML(id, text, prelude) {
349
+ try {
350
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
351
+ _assertClass(id, FileId);
352
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
353
+ const len0 = WASM_VECTOR_LEN;
354
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
355
+ const len1 = WASM_VECTOR_LEN;
356
+ wasm.typststate_compileHTML(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
357
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
358
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
359
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
360
+ if (r2) {
361
+ throw takeObject(r1);
362
+ }
363
+ return takeObject(r0);
364
+ } finally {
365
+ wasm.__wbindgen_add_to_stack_pointer(16);
366
+ }
367
+ }
368
+ /**
369
+ * The editor's paged render: one SVG frame per source chunk, plus the
370
+ * tooltip frames and diagnostics the editor needs.
371
+ * @param {FileId} id
372
+ * @param {string} text
373
+ * @param {string} prelude
374
+ * @returns {CompilePagedResult}
375
+ */
376
+ compilePaged(id, text, prelude) {
377
+ try {
378
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
379
+ _assertClass(id, FileId);
380
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
381
+ const len0 = WASM_VECTOR_LEN;
382
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
383
+ const len1 = WASM_VECTOR_LEN;
384
+ wasm.typststate_compilePaged(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
385
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
386
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
387
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
388
+ if (r2) {
389
+ throw takeObject(r1);
390
+ }
391
+ return takeObject(r0);
392
+ } finally {
393
+ wasm.__wbindgen_add_to_stack_pointer(16);
394
+ }
395
+ }
396
+ /**
397
+ * @param {string} path
398
+ * @returns {FileId}
399
+ */
400
+ createFileId(path) {
401
+ const ptr0 = passStringToWasm0(path, wasm.__wbindgen_export, wasm.__wbindgen_export2);
402
+ const len0 = WASM_VECTOR_LEN;
403
+ const ret = wasm.typststate_createFileId(this.__wbg_ptr, ptr0, len0);
404
+ return FileId.__wrap(ret);
405
+ }
406
+ /**
407
+ * @param {string} path
408
+ * @param {string} space_id
409
+ * @returns {FileId}
410
+ */
411
+ createSourceId(path, space_id) {
412
+ const ptr0 = passStringToWasm0(path, wasm.__wbindgen_export, wasm.__wbindgen_export2);
413
+ const len0 = WASM_VECTOR_LEN;
414
+ const ptr1 = passStringToWasm0(space_id, wasm.__wbindgen_export, wasm.__wbindgen_export2);
415
+ const len1 = WASM_VECTOR_LEN;
416
+ const ret = wasm.typststate_createSourceId(this.__wbg_ptr, ptr0, len0, ptr1, len1);
417
+ return FileId.__wrap(ret);
418
+ }
419
+ /**
420
+ * Clears Typst's global memoization caches. They make repeated compiles
421
+ * cheap but grow for the lifetime of the instance, so call this when
422
+ * memory matters more than speed, such as on a workspace switch.
423
+ */
424
+ evictCaches() {
425
+ wasm.typststate_evictCaches(this.__wbg_ptr);
426
+ }
427
+ /**
428
+ * Evicts entries unused across two eviction rounds. The heap watchdog
429
+ * uses this while typing: per-keystroke entries age out, shared entries
430
+ * such as the library and fonts stay warm.
431
+ * @param {number} max_age
432
+ */
433
+ evictCachesAged(max_age) {
434
+ wasm.typststate_evictCachesAged(this.__wbg_ptr, max_age);
435
+ }
436
+ /**
437
+ * Extracts notebook cells (`// %%` markers) as UTF-16 spans, ready for
438
+ * CodeMirror positions. Pure syntax pass; no state needed.
439
+ * @param {string} text
440
+ * @returns {CellSpan[]}
441
+ */
442
+ extractCells(text) {
443
+ try {
444
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
445
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
446
+ const len0 = WASM_VECTOR_LEN;
447
+ wasm.typststate_extractCells(retptr, this.__wbg_ptr, ptr0, len0);
448
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
449
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
450
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
451
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
452
+ if (r3) {
453
+ throw takeObject(r2);
454
+ }
455
+ var v2 = getArrayJsValueFromWasm0(r0, r1);
456
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
457
+ return v2;
458
+ } finally {
459
+ wasm.__wbindgen_add_to_stack_pointer(16);
460
+ }
461
+ }
462
+ /**
463
+ * Extracts the app's link calls (`typbase.page-link`, `typbase.embed`,
464
+ * and `typbase://page/` URLs) with UTF-16 ranges. Pure syntax pass; no
465
+ * state needed.
466
+ * @param {string} text
467
+ * @returns {LinkSpan[]}
468
+ */
469
+ extractLinks(text) {
470
+ try {
471
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
472
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
473
+ const len0 = WASM_VECTOR_LEN;
474
+ wasm.typststate_extractLinks(retptr, this.__wbg_ptr, ptr0, len0);
475
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
476
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
477
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
478
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
479
+ if (r3) {
480
+ throw takeObject(r2);
481
+ }
482
+ var v2 = getArrayJsValueFromWasm0(r0, r1);
483
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
484
+ return v2;
485
+ } finally {
486
+ wasm.__wbindgen_add_to_stack_pointer(16);
487
+ }
488
+ }
489
+ /**
490
+ * Extracts `#typbase.section` spans for the page doc's sections list.
491
+ * @param {string} text
492
+ * @returns {SectionSpan[]}
493
+ */
494
+ extractSections(text) {
495
+ try {
496
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
497
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
498
+ const len0 = WASM_VECTOR_LEN;
499
+ wasm.typststate_extractSections(retptr, this.__wbg_ptr, ptr0, len0);
500
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
501
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
502
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
503
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
504
+ if (r3) {
505
+ throw takeObject(r2);
506
+ }
507
+ var v2 = getArrayJsValueFromWasm0(r0, r1);
508
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
509
+ return v2;
510
+ } finally {
511
+ wasm.__wbindgen_add_to_stack_pointer(16);
512
+ }
513
+ }
514
+ /**
515
+ * Plain-text flattening per block for the search index, plus the byte
516
+ * map back to raw source. Pure syntax pass; no state needed.
517
+ * @param {string} text
518
+ * @returns {FlattenedBlock[]}
519
+ */
520
+ flattenDocument(text) {
521
+ try {
522
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
523
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
524
+ const len0 = WASM_VECTOR_LEN;
525
+ wasm.typststate_flattenDocument(retptr, this.__wbg_ptr, ptr0, len0);
526
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
527
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
528
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
529
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
530
+ if (r3) {
531
+ throw takeObject(r2);
532
+ }
533
+ var v2 = getArrayJsValueFromWasm0(r0, r1);
534
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
535
+ return v2;
536
+ } finally {
537
+ wasm.__wbindgen_add_to_stack_pointer(16);
538
+ }
539
+ }
540
+ /**
541
+ * @param {FileId} id
542
+ * @param {string} text
543
+ * @returns {TypstHighlight[]}
544
+ */
545
+ highlight(id, text) {
546
+ try {
547
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
548
+ _assertClass(id, FileId);
549
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
550
+ const len0 = WASM_VECTOR_LEN;
551
+ wasm.typststate_highlight(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
552
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
553
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
554
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
555
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
556
+ if (r3) {
557
+ throw takeObject(r2);
558
+ }
559
+ var v2 = getArrayJsValueFromWasm0(r0, r1);
560
+ wasm.__wbindgen_export4(r0, r1 * 4, 4);
561
+ return v2;
562
+ } finally {
563
+ wasm.__wbindgen_add_to_stack_pointer(16);
564
+ }
565
+ }
566
+ /**
567
+ * @param {FileId} id
568
+ * @param {number} raw_cursor_utf16
569
+ * @param {number} side
570
+ * @returns {string | undefined}
571
+ */
572
+ hover(id, raw_cursor_utf16, side) {
573
+ try {
574
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
575
+ _assertClass(id, FileId);
576
+ wasm.typststate_hover(retptr, this.__wbg_ptr, id.__wbg_ptr, raw_cursor_utf16, side);
577
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
578
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
579
+ let v1;
580
+ if (r0 !== 0) {
581
+ v1 = getStringFromWasm0(r0, r1);
582
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
583
+ }
584
+ return v1;
585
+ } finally {
586
+ wasm.__wbindgen_add_to_stack_pointer(16);
587
+ }
588
+ }
589
+ /**
590
+ * @param {FileId} id
591
+ * @param {Uint8Array} bytes
592
+ */
593
+ insertFile(id, bytes) {
594
+ _assertClass(id, FileId);
595
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);
596
+ const len0 = WASM_VECTOR_LEN;
597
+ wasm.typststate_insertFile(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
598
+ }
599
+ /**
600
+ * @param {FileId} id
601
+ * @param {string} text
602
+ */
603
+ insertSource(id, text) {
604
+ _assertClass(id, FileId);
605
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
606
+ const len0 = WASM_VECTOR_LEN;
607
+ wasm.typststate_insertSource(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
608
+ }
609
+ /**
610
+ * @param {Uint8Array} bytes
611
+ */
612
+ installFont(bytes) {
613
+ const ptr0 = passArray8ToWasm0(bytes, wasm.__wbindgen_export);
614
+ const len0 = WASM_VECTOR_LEN;
615
+ wasm.typststate_installFont(this.__wbg_ptr, ptr0, len0);
616
+ }
617
+ /**
618
+ * @param {string} spec
619
+ * @param {Uint8Array} data
620
+ */
621
+ installPackage(spec, data) {
622
+ try {
623
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
624
+ const ptr0 = passStringToWasm0(spec, wasm.__wbindgen_export, wasm.__wbindgen_export2);
625
+ const len0 = WASM_VECTOR_LEN;
626
+ const ptr1 = passArray8ToWasm0(data, wasm.__wbindgen_export);
627
+ const len1 = WASM_VECTOR_LEN;
628
+ wasm.typststate_installPackage(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
629
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
630
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
631
+ if (r1) {
632
+ throw takeObject(r0);
633
+ }
634
+ } finally {
635
+ wasm.__wbindgen_add_to_stack_pointer(16);
636
+ }
637
+ }
638
+ /**
639
+ * @param {FileId} id
640
+ * @param {Uint32Array} element
641
+ * @returns {TypstJump | undefined}
642
+ */
643
+ jumpHTML(id, element) {
644
+ try {
645
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
646
+ _assertClass(id, FileId);
647
+ const ptr0 = passArray32ToWasm0(element, wasm.__wbindgen_export);
648
+ const len0 = WASM_VECTOR_LEN;
649
+ wasm.typststate_jumpHTML(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
650
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
651
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
652
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
653
+ if (r2) {
654
+ throw takeObject(r1);
655
+ }
656
+ return takeObject(r0);
657
+ } finally {
658
+ wasm.__wbindgen_add_to_stack_pointer(16);
659
+ }
660
+ }
661
+ /**
662
+ * @param {FileId} id
663
+ * @param {number} x
664
+ * @param {number} y
665
+ * @returns {TypstJump | undefined}
666
+ */
667
+ jumpPaged(id, x, y) {
668
+ try {
669
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
670
+ _assertClass(id, FileId);
671
+ wasm.typststate_jumpPaged(retptr, this.__wbg_ptr, id.__wbg_ptr, x, y);
672
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
673
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
674
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
675
+ if (r2) {
676
+ throw takeObject(r1);
677
+ }
678
+ return takeObject(r0);
679
+ } finally {
680
+ wasm.__wbindgen_add_to_stack_pointer(16);
681
+ }
682
+ }
683
+ /**
684
+ * Current WASM heap size in bytes. The lab watches this to catch leaks;
685
+ * the wasm allocator rarely returns memory to the browser, so growth
686
+ * here usually means a compile loop.
687
+ * @returns {number}
688
+ */
689
+ memoryBytes() {
690
+ const ret = wasm.typststate_memoryBytes(this.__wbg_ptr);
691
+ return ret >>> 0;
692
+ }
693
+ constructor() {
694
+ const ret = wasm.typststate_new();
695
+ this.__wbg_ptr = ret;
696
+ TypstStateFinalization.register(this, this.__wbg_ptr, this);
697
+ return this;
698
+ }
699
+ /**
700
+ * False when the shipped wasm build omits the pdf feature (the default).
701
+ * @returns {boolean}
702
+ */
703
+ pdfAvailable() {
704
+ const ret = wasm.typststate_pdfAvailable(this.__wbg_ptr);
705
+ return ret !== 0;
706
+ }
707
+ /**
708
+ * @param {FileId} id
709
+ */
710
+ removeFile(id) {
711
+ _assertClass(id, FileId);
712
+ wasm.typststate_removeFile(this.__wbg_ptr, id.__wbg_ptr);
713
+ }
714
+ /**
715
+ * @param {string} spec
716
+ */
717
+ removePackage(spec) {
718
+ try {
719
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
720
+ const ptr0 = passStringToWasm0(spec, wasm.__wbindgen_export, wasm.__wbindgen_export2);
721
+ const len0 = WASM_VECTOR_LEN;
722
+ wasm.typststate_removePackage(retptr, this.__wbg_ptr, ptr0, len0);
723
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
724
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
725
+ if (r1) {
726
+ throw takeObject(r0);
727
+ }
728
+ } finally {
729
+ wasm.__wbindgen_add_to_stack_pointer(16);
730
+ }
731
+ }
732
+ /**
733
+ * Renders the whole note to one HTML document, with recovery. Used by
734
+ * publish, export, and chat; the editor's inline frames use
735
+ * `compileHTML` instead.
736
+ * @param {FileId} id
737
+ * @param {string} text
738
+ * @param {string} prelude
739
+ * @returns {RenderHtmlResult}
740
+ */
741
+ renderHtml(id, text, prelude) {
742
+ try {
743
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
744
+ _assertClass(id, FileId);
745
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
746
+ const len0 = WASM_VECTOR_LEN;
747
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
748
+ const len1 = WASM_VECTOR_LEN;
749
+ wasm.typststate_renderHtml(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
750
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
751
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
752
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
753
+ if (r2) {
754
+ throw takeObject(r1);
755
+ }
756
+ return takeObject(r0);
757
+ } finally {
758
+ wasm.__wbindgen_add_to_stack_pointer(16);
759
+ }
760
+ }
761
+ /**
762
+ * PDF publishing, compiled only when the `pdf` cargo feature is on.
763
+ * Returns the PDF bytes plus diagnostics; the caller uploads the bytes
764
+ * as a blob on `at.typbase.post`.
765
+ * @param {FileId} id
766
+ * @param {string} text
767
+ * @param {string} prelude
768
+ * @returns {RenderPdfResult}
769
+ */
770
+ renderPdf(id, text, prelude) {
771
+ try {
772
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
773
+ _assertClass(id, FileId);
774
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
775
+ const len0 = WASM_VECTOR_LEN;
776
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
777
+ const len1 = WASM_VECTOR_LEN;
778
+ wasm.typststate_renderPdf(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1);
779
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
780
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
781
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
782
+ if (r2) {
783
+ throw takeObject(r1);
784
+ }
785
+ return takeObject(r0);
786
+ } finally {
787
+ wasm.__wbindgen_add_to_stack_pointer(16);
788
+ }
789
+ }
790
+ /**
791
+ * SVG export of the paged document: one entry per page, or a single
792
+ * merged document. Uses the PDF page geometry so the sheets match the
793
+ * PDF export; the caller sets the page width through `resize`.
794
+ * @param {FileId} id
795
+ * @param {string} text
796
+ * @param {string} prelude
797
+ * @param {boolean} merged
798
+ * @returns {RenderSvgResult}
799
+ */
800
+ renderSvg(id, text, prelude, merged) {
801
+ try {
802
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
803
+ _assertClass(id, FileId);
804
+ const ptr0 = passStringToWasm0(text, wasm.__wbindgen_export, wasm.__wbindgen_export2);
805
+ const len0 = WASM_VECTOR_LEN;
806
+ const ptr1 = passStringToWasm0(prelude, wasm.__wbindgen_export, wasm.__wbindgen_export2);
807
+ const len1 = WASM_VECTOR_LEN;
808
+ wasm.typststate_renderSvg(retptr, this.__wbg_ptr, id.__wbg_ptr, ptr0, len0, ptr1, len1, merged);
809
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
810
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
811
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
812
+ if (r2) {
813
+ throw takeObject(r1);
814
+ }
815
+ return takeObject(r0);
816
+ } finally {
817
+ wasm.__wbindgen_add_to_stack_pointer(16);
818
+ }
819
+ }
820
+ /**
821
+ * @param {FileId} id
822
+ * @param {number | null} [width]
823
+ * @param {number | null} [height]
824
+ * @returns {boolean}
825
+ */
826
+ resize(id, width, height) {
827
+ _assertClass(id, FileId);
828
+ const ret = wasm.typststate_resize(this.__wbg_ptr, id.__wbg_ptr, !isLikeNone(width), isLikeNone(width) ? 0 : width, !isLikeNone(height), isLikeNone(height) ? 0 : height);
829
+ return ret !== 0;
830
+ }
831
+ /**
832
+ * Monotonic counter bumped on font/theme/config changes. Re-render
833
+ * decisions key on this, not on the file path alone.
834
+ * @returns {number}
835
+ */
836
+ revision() {
837
+ const ret = wasm.typststate_revision(this.__wbg_ptr);
838
+ return ret >>> 0;
839
+ }
840
+ /**
841
+ * @param {FileId} id
842
+ * @param {string | null} [code_font]
843
+ */
844
+ setCodeFont(id, code_font) {
845
+ _assertClass(id, FileId);
846
+ var ptr0 = isLikeNone(code_font) ? 0 : passStringToWasm0(code_font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
847
+ var len0 = WASM_VECTOR_LEN;
848
+ wasm.typststate_setCodeFont(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
849
+ }
850
+ /**
851
+ * @param {FileId} id
852
+ * @param {string} font
853
+ */
854
+ setFont(id, font) {
855
+ _assertClass(id, FileId);
856
+ const ptr0 = passStringToWasm0(font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
857
+ const len0 = WASM_VECTOR_LEN;
858
+ wasm.typststate_setFont(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
859
+ }
860
+ /**
861
+ * The editor's line-height as a multiple of the text size. Frame crops
862
+ * move their top to the editor's line box so the rendered text sits on
863
+ * the same baseline as the source text.
864
+ * @param {FileId} id
865
+ * @param {number} ratio
866
+ */
867
+ setLineHeightRatio(id, ratio) {
868
+ _assertClass(id, FileId);
869
+ wasm.typststate_setLineHeightRatio(this.__wbg_ptr, id.__wbg_ptr, ratio);
870
+ }
871
+ /**
872
+ * @param {FileId} id
873
+ * @param {string} locale
874
+ */
875
+ setLocale(id, locale) {
876
+ _assertClass(id, FileId);
877
+ const ptr0 = passStringToWasm0(locale, wasm.__wbindgen_export, wasm.__wbindgen_export2);
878
+ const len0 = WASM_VECTOR_LEN;
879
+ wasm.typststate_setLocale(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
880
+ }
881
+ /**
882
+ * @param {FileId} id
883
+ * @param {string | null} [math_font]
884
+ */
885
+ setMathFont(id, math_font) {
886
+ _assertClass(id, FileId);
887
+ var ptr0 = isLikeNone(math_font) ? 0 : passStringToWasm0(math_font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
888
+ var len0 = WASM_VECTOR_LEN;
889
+ wasm.typststate_setMathFont(this.__wbg_ptr, id.__wbg_ptr, ptr0, len0);
890
+ }
891
+ /**
892
+ * @param {FileId} id
893
+ * @param {number} text_size
894
+ */
895
+ setTextSize(id, text_size) {
896
+ _assertClass(id, FileId);
897
+ wasm.typststate_setTextSize(this.__wbg_ptr, id.__wbg_ptr, text_size);
898
+ }
899
+ /**
900
+ * @param {FileId} id
901
+ * @param {ThemeColors} theme
902
+ */
903
+ setTheme(id, theme) {
904
+ _assertClass(id, FileId);
905
+ _assertClass(theme, ThemeColors);
906
+ var ptr0 = theme.__destroy_into_raw();
907
+ wasm.typststate_setTheme(this.__wbg_ptr, id.__wbg_ptr, ptr0);
908
+ }
909
+ /**
910
+ * The style block alone, for exports and the project mirror: the same
911
+ * text the engine prepends, minus the render-target page config.
912
+ * @param {ThemeColors} theme
913
+ * @param {number} text_size
914
+ * @param {string} font
915
+ * @param {string | null | undefined} math_font
916
+ * @param {string | null | undefined} code_font
917
+ * @param {string} locale
918
+ * @returns {string}
919
+ */
920
+ static stylePrelude(theme, text_size, font, math_font, code_font, locale) {
921
+ let deferred6_0;
922
+ let deferred6_1;
923
+ try {
924
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
925
+ _assertClass(theme, ThemeColors);
926
+ var ptr0 = theme.__destroy_into_raw();
927
+ const ptr1 = passStringToWasm0(font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
928
+ const len1 = WASM_VECTOR_LEN;
929
+ var ptr2 = isLikeNone(math_font) ? 0 : passStringToWasm0(math_font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
930
+ var len2 = WASM_VECTOR_LEN;
931
+ var ptr3 = isLikeNone(code_font) ? 0 : passStringToWasm0(code_font, wasm.__wbindgen_export, wasm.__wbindgen_export2);
932
+ var len3 = WASM_VECTOR_LEN;
933
+ const ptr4 = passStringToWasm0(locale, wasm.__wbindgen_export, wasm.__wbindgen_export2);
934
+ const len4 = WASM_VECTOR_LEN;
935
+ wasm.typststate_stylePrelude(retptr, ptr0, text_size, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
936
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
937
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
938
+ deferred6_0 = r0;
939
+ deferred6_1 = r1;
940
+ return getStringFromWasm0(r0, r1);
941
+ } finally {
942
+ wasm.__wbindgen_add_to_stack_pointer(16);
943
+ wasm.__wbindgen_export4(deferred6_0, deferred6_1, 1);
944
+ }
945
+ }
946
+ /**
947
+ * The stdlib source as shipped, for writing a compilable project to disk.
948
+ * @returns {string}
949
+ */
950
+ typbaseLib() {
951
+ let deferred1_0;
952
+ let deferred1_1;
953
+ try {
954
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
955
+ wasm.typststate_typbaseLib(retptr, this.__wbg_ptr);
956
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
957
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
958
+ deferred1_0 = r0;
959
+ deferred1_1 = r1;
960
+ return getStringFromWasm0(r0, r1);
961
+ } finally {
962
+ wasm.__wbindgen_add_to_stack_pointer(16);
963
+ wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
964
+ }
965
+ }
966
+ }
967
+ if (Symbol.dispose) TypstState.prototype[Symbol.dispose] = TypstState.prototype.free;
968
+
969
+ /**
970
+ * True when the module was built by the dev profile.
971
+ *
972
+ * The two wasm tasks write the same `pkg/` directory, so a stray
973
+ * `engine:build-dev` edge in a release graph silently swaps the optimized
974
+ * engine for the unoptimized one. Release tooling can read this before
975
+ * publishing; custom sections cannot key that kind of check because wasm-opt
976
+ * and wasm-bindgen rewrite them.
977
+ * @returns {boolean}
978
+ */
979
+ export function isDevelopmentBuild() {
980
+ const ret = wasm.isDevelopmentBuild();
981
+ return ret !== 0;
982
+ }
983
+
984
+ export function start() {
985
+ wasm.start();
986
+ }
987
+
988
+ /**
989
+ * Drains the allocation-failure flag without going through a `TypstState`
990
+ * handle.
991
+ *
992
+ * A trap inside a `&mut self` method leaves wasm-bindgen's borrow flag set
993
+ * (there is no unwinding and no `Drop`), so the method form of this call
994
+ * throws the aliasing error on the dead object exactly when the host needs
995
+ * the reason for the failure. This free function touches a static and a
996
+ * primitive only, so it works on a poisoned instance.
997
+ * @returns {boolean}
998
+ */
999
+ export function takeOomGlobal() {
1000
+ const ret = wasm.takeOomGlobal();
1001
+ return ret !== 0;
1002
+ }
1003
+
1004
+ /**
1005
+ * Drains the panic message without going through a `TypstState` handle.
1006
+ * See [`take_oom_global`] for why the method form is not usable here.
1007
+ * @returns {string | undefined}
1008
+ */
1009
+ export function takePanicGlobal() {
1010
+ try {
1011
+ const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
1012
+ wasm.takePanicGlobal(retptr);
1013
+ var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
1014
+ var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
1015
+ let v1;
1016
+ if (r0 !== 0) {
1017
+ v1 = getStringFromWasm0(r0, r1);
1018
+ wasm.__wbindgen_export4(r0, r1 * 1, 1);
1019
+ }
1020
+ return v1;
1021
+ } finally {
1022
+ wasm.__wbindgen_add_to_stack_pointer(16);
1023
+ }
1024
+ }
1025
+ function __wbg_get_imports() {
1026
+ const import0 = {
1027
+ __proto__: null,
1028
+ __wbg_Error_408e67f47ca7b58b: function(arg0, arg1) {
1029
+ const ret = Error(getStringFromWasm0(arg0, arg1));
1030
+ return addHeapObject(ret);
1031
+ },
1032
+ __wbg_String_8564e559799eccda: function(arg0, arg1) {
1033
+ const ret = String(getObject(arg1));
1034
+ const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1035
+ const len1 = WASM_VECTOR_LEN;
1036
+ getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1037
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1038
+ },
1039
+ __wbg___wbindgen_memory_5dc2a138835b0f8e: function() {
1040
+ const ret = wasm.memory;
1041
+ return addHeapObject(ret);
1042
+ },
1043
+ __wbg___wbindgen_number_get_136b9679cab35cfb: function(arg0, arg1) {
1044
+ const obj = getObject(arg1);
1045
+ const ret = typeof(obj) === 'number' ? obj : undefined;
1046
+ getDataViewMemory0().setFloat64(arg0 + 8 * 1, isLikeNone(ret) ? 0 : ret, true);
1047
+ getDataViewMemory0().setInt32(arg0 + 4 * 0, !isLikeNone(ret), true);
1048
+ },
1049
+ __wbg___wbindgen_throw_bb96b2010945f0bc: function(arg0, arg1) {
1050
+ throw new Error(getStringFromWasm0(arg0, arg1));
1051
+ },
1052
+ __wbg_debug_a8264dba1e9536d7: function(arg0, arg1) {
1053
+ console.debug(getStringFromWasm0(arg0, arg1));
1054
+ },
1055
+ __wbg_error_f65b42d3435ee2a6: function(arg0, arg1) {
1056
+ console.error(getStringFromWasm0(arg0, arg1));
1057
+ },
1058
+ __wbg_getTime_63fb0332e6c4ec17: function(arg0) {
1059
+ const ret = getObject(arg0).getTime();
1060
+ return ret;
1061
+ },
1062
+ __wbg_get_971a0c45d172643f: function() { return handleError(function (arg0, arg1) {
1063
+ const ret = Reflect.get(getObject(arg0), getObject(arg1));
1064
+ return addHeapObject(ret);
1065
+ }, arguments); },
1066
+ __wbg_new_0_f117d868b403dc07: function() {
1067
+ const ret = new Date();
1068
+ return addHeapObject(ret);
1069
+ },
1070
+ __wbg_new_116be93542d39019: function() {
1071
+ const ret = new Array();
1072
+ return addHeapObject(ret);
1073
+ },
1074
+ __wbg_new_ebe3e0f6837f0879: function() {
1075
+ const ret = new Object();
1076
+ return addHeapObject(ret);
1077
+ },
1078
+ __wbg_set_6be42768c690e380: function(arg0, arg1, arg2) {
1079
+ getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
1080
+ },
1081
+ __wbg_set_a80955eb93b145c6: function(arg0, arg1, arg2) {
1082
+ getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
1083
+ },
1084
+ __wbindgen_cast_0000000000000001: function(arg0) {
1085
+ // Cast intrinsic for `F64 -> Externref`.
1086
+ const ret = arg0;
1087
+ return addHeapObject(ret);
1088
+ },
1089
+ __wbindgen_cast_0000000000000002: function(arg0, arg1) {
1090
+ // Cast intrinsic for `Ref(String) -> Externref`.
1091
+ const ret = getStringFromWasm0(arg0, arg1);
1092
+ return addHeapObject(ret);
1093
+ },
1094
+ __wbindgen_cast_0000000000000003: function(arg0) {
1095
+ // Cast intrinsic for `U64 -> Externref`.
1096
+ const ret = BigInt.asUintN(64, arg0);
1097
+ return addHeapObject(ret);
1098
+ },
1099
+ __wbindgen_object_clone_ref: function(arg0) {
1100
+ const ret = getObject(arg0);
1101
+ return addHeapObject(ret);
1102
+ },
1103
+ __wbindgen_object_drop_ref: function(arg0) {
1104
+ takeObject(arg0);
1105
+ },
1106
+ };
1107
+ return {
1108
+ __proto__: null,
1109
+ "./engine_bg.js": import0,
1110
+ };
1111
+ }
1112
+
1113
+ const FileIdFinalization = (typeof FinalizationRegistry === 'undefined')
1114
+ ? { register: () => {}, unregister: () => {} }
1115
+ : new FinalizationRegistry(ptr => wasm.__wbg_fileid_free(ptr, 1));
1116
+ const RgbFinalization = (typeof FinalizationRegistry === 'undefined')
1117
+ ? { register: () => {}, unregister: () => {} }
1118
+ : new FinalizationRegistry(ptr => wasm.__wbg_rgb_free(ptr, 1));
1119
+ const ThemeColorsFinalization = (typeof FinalizationRegistry === 'undefined')
1120
+ ? { register: () => {}, unregister: () => {} }
1121
+ : new FinalizationRegistry(ptr => wasm.__wbg_themecolors_free(ptr, 1));
1122
+ const TypstStateFinalization = (typeof FinalizationRegistry === 'undefined')
1123
+ ? { register: () => {}, unregister: () => {} }
1124
+ : new FinalizationRegistry(ptr => wasm.__wbg_typststate_free(ptr, 1));
1125
+
1126
+ function addHeapObject(obj) {
1127
+ if (heap_next === heap.length) heap.push(heap.length + 1);
1128
+ const idx = heap_next;
1129
+ heap_next = heap[idx];
1130
+
1131
+ heap[idx] = obj;
1132
+ return idx;
1133
+ }
1134
+
1135
+ function _assertClass(instance, klass) {
1136
+ if (!(instance instanceof klass)) {
1137
+ throw new Error(`expected instance of ${klass.name}`);
1138
+ }
1139
+ }
1140
+
1141
+ function dropObject(idx) {
1142
+ if (idx < 1028) return;
1143
+ heap[idx] = heap_next;
1144
+ heap_next = idx;
1145
+ }
1146
+
1147
+ function getArrayJsValueFromWasm0(ptr, len) {
1148
+ ptr = ptr >>> 0;
1149
+ const mem = getDataViewMemory0();
1150
+ const result = [];
1151
+ for (let i = ptr; i < ptr + 4 * len; i += 4) {
1152
+ result.push(takeObject(mem.getUint32(i, true)));
1153
+ }
1154
+ return result;
1155
+ }
1156
+
1157
+ let cachedDataViewMemory0 = null;
1158
+ function getDataViewMemory0() {
1159
+ if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) {
1160
+ cachedDataViewMemory0 = new DataView(wasm.memory.buffer);
1161
+ }
1162
+ return cachedDataViewMemory0;
1163
+ }
1164
+
1165
+ function getStringFromWasm0(ptr, len) {
1166
+ return decodeText(ptr >>> 0, len);
1167
+ }
1168
+
1169
+ let cachedUint32ArrayMemory0 = null;
1170
+ function getUint32ArrayMemory0() {
1171
+ if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) {
1172
+ cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer);
1173
+ }
1174
+ return cachedUint32ArrayMemory0;
1175
+ }
1176
+
1177
+ let cachedUint8ArrayMemory0 = null;
1178
+ function getUint8ArrayMemory0() {
1179
+ if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) {
1180
+ cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer);
1181
+ }
1182
+ return cachedUint8ArrayMemory0;
1183
+ }
1184
+
1185
+ function getObject(idx) { return heap[idx]; }
1186
+
1187
+ function handleError(f, args) {
1188
+ try {
1189
+ return f.apply(this, args);
1190
+ } catch (e) {
1191
+ wasm.__wbindgen_export3(addHeapObject(e));
1192
+ }
1193
+ }
1194
+
1195
+ let heap = new Array(1024).fill(undefined);
1196
+ heap.push(undefined, null, true, false);
1197
+
1198
+ let heap_next = heap.length;
1199
+
1200
+ function isLikeNone(x) {
1201
+ return x === undefined || x === null;
1202
+ }
1203
+
1204
+ function passArray32ToWasm0(arg, malloc) {
1205
+ const ptr = malloc(arg.length * 4, 4) >>> 0;
1206
+ getUint32ArrayMemory0().set(arg, ptr / 4);
1207
+ WASM_VECTOR_LEN = arg.length;
1208
+ return ptr;
1209
+ }
1210
+
1211
+ function passArray8ToWasm0(arg, malloc) {
1212
+ const ptr = malloc(arg.length * 1, 1) >>> 0;
1213
+ getUint8ArrayMemory0().set(arg, ptr / 1);
1214
+ WASM_VECTOR_LEN = arg.length;
1215
+ return ptr;
1216
+ }
1217
+
1218
+ function passStringToWasm0(arg, malloc, realloc) {
1219
+ if (realloc === undefined) {
1220
+ const buf = cachedTextEncoder.encode(arg);
1221
+ const ptr = malloc(buf.length, 1) >>> 0;
1222
+ getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf);
1223
+ WASM_VECTOR_LEN = buf.length;
1224
+ return ptr;
1225
+ }
1226
+
1227
+ let len = arg.length;
1228
+ let ptr = malloc(len, 1) >>> 0;
1229
+
1230
+ const mem = getUint8ArrayMemory0();
1231
+
1232
+ let offset = 0;
1233
+
1234
+ for (; offset < len; offset++) {
1235
+ const code = arg.charCodeAt(offset);
1236
+ if (code > 0x7F) break;
1237
+ mem[ptr + offset] = code;
1238
+ }
1239
+ if (offset !== len) {
1240
+ if (offset !== 0) {
1241
+ arg = arg.slice(offset);
1242
+ }
1243
+ ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0;
1244
+ const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len);
1245
+ const ret = cachedTextEncoder.encodeInto(arg, view);
1246
+
1247
+ offset += ret.written;
1248
+ ptr = realloc(ptr, len, offset, 1) >>> 0;
1249
+ }
1250
+
1251
+ WASM_VECTOR_LEN = offset;
1252
+ return ptr;
1253
+ }
1254
+
1255
+ function takeObject(idx) {
1256
+ const ret = getObject(idx);
1257
+ dropObject(idx);
1258
+ return ret;
1259
+ }
1260
+
1261
+ let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
1262
+ cachedTextDecoder.decode();
1263
+ const MAX_SAFARI_DECODE_BYTES = 2146435072;
1264
+ let numBytesDecoded = 0;
1265
+ function decodeText(ptr, len) {
1266
+ numBytesDecoded += len;
1267
+ if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) {
1268
+ cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true });
1269
+ cachedTextDecoder.decode();
1270
+ numBytesDecoded = len;
1271
+ }
1272
+ return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len));
1273
+ }
1274
+
1275
+ const cachedTextEncoder = new TextEncoder();
1276
+
1277
+ if (!('encodeInto' in cachedTextEncoder)) {
1278
+ cachedTextEncoder.encodeInto = function (arg, view) {
1279
+ const buf = cachedTextEncoder.encode(arg);
1280
+ view.set(buf);
1281
+ return {
1282
+ read: arg.length,
1283
+ written: buf.length
1284
+ };
1285
+ };
1286
+ }
1287
+
1288
+ let WASM_VECTOR_LEN = 0;
1289
+
1290
+ let wasmModule, wasmInstance, wasm;
1291
+ function __wbg_finalize_init(instance, module) {
1292
+ wasmInstance = instance;
1293
+ wasm = instance.exports;
1294
+ wasmModule = module;
1295
+ cachedDataViewMemory0 = null;
1296
+ cachedUint32ArrayMemory0 = null;
1297
+ cachedUint8ArrayMemory0 = null;
1298
+ wasm.__wbindgen_start();
1299
+ return wasm;
1300
+ }
1301
+
1302
+ async function __wbg_load(module, imports) {
1303
+ if (typeof Response === 'function' && module instanceof Response) {
1304
+ if (!module.ok) {
1305
+ throw new Error(`failed to fetch Wasm: ${module.status} ${module.statusText} fetching '${module.url}'`);
1306
+ }
1307
+
1308
+ if (typeof WebAssembly.instantiateStreaming === 'function') {
1309
+ try {
1310
+ return await WebAssembly.instantiateStreaming(module, imports);
1311
+ } catch (e) {
1312
+ const validResponse = expectedResponseType(module.type);
1313
+
1314
+ if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') {
1315
+ 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);
1316
+
1317
+ } else { throw e; }
1318
+ }
1319
+ }
1320
+
1321
+ const bytes = await module.arrayBuffer();
1322
+ return await WebAssembly.instantiate(bytes, imports);
1323
+ } else {
1324
+ const instance = await WebAssembly.instantiate(module, imports);
1325
+
1326
+ if (instance instanceof WebAssembly.Instance) {
1327
+ return { instance, module };
1328
+ } else {
1329
+ return instance;
1330
+ }
1331
+ }
1332
+
1333
+ function expectedResponseType(type) {
1334
+ switch (type) {
1335
+ case 'basic': case 'cors': case 'default': return true;
1336
+ }
1337
+ return false;
1338
+ }
1339
+ }
1340
+
1341
+ function initSync(module) {
1342
+ if (wasm !== undefined) return wasm;
1343
+
1344
+
1345
+ if (module !== undefined) {
1346
+ if (Object.getPrototypeOf(module) === Object.prototype) {
1347
+ ({module} = module)
1348
+ } else {
1349
+ console.warn('using deprecated parameters for `initSync()`; pass a single object instead')
1350
+ }
1351
+ }
1352
+
1353
+ const imports = __wbg_get_imports();
1354
+ if (!(module instanceof WebAssembly.Module)) {
1355
+ module = new WebAssembly.Module(module);
1356
+ }
1357
+ const instance = new WebAssembly.Instance(module, imports);
1358
+ return __wbg_finalize_init(instance, module);
1359
+ }
1360
+
1361
+ async function __wbg_init(module_or_path) {
1362
+ if (wasm !== undefined) return wasm;
1363
+
1364
+
1365
+ if (module_or_path !== undefined) {
1366
+ if (Object.getPrototypeOf(module_or_path) === Object.prototype) {
1367
+ ({module_or_path} = module_or_path)
1368
+ } else {
1369
+ console.warn('using deprecated parameters for the initialization function; pass a single object instead')
1370
+ }
1371
+ }
1372
+
1373
+ if (module_or_path === undefined) {
1374
+ module_or_path = new URL('engine_bg.wasm', import.meta.url);
1375
+ }
1376
+ const imports = __wbg_get_imports();
1377
+
1378
+ if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) {
1379
+ module_or_path = fetch(module_or_path);
1380
+ }
1381
+
1382
+ const { instance, module } = await __wbg_load(await module_or_path, imports);
1383
+
1384
+ return __wbg_finalize_init(instance, module);
1385
+ }
1386
+
1387
+ export { initSync, __wbg_init as default };