@quillmark/wasm 0.20.2 → 0.21.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/bundler/wasm.d.ts CHANGED
@@ -6,14 +6,6 @@
6
6
  export function init(): void;
7
7
  export type OutputFormat = "pdf" | "svg" | "txt";
8
8
 
9
- export type Severity = "error" | "warning" | "note";
10
-
11
- export interface Location {
12
- file: string;
13
- line: number;
14
- column: number;
15
- }
16
-
17
9
  export interface Diagnostic {
18
10
  severity: Severity;
19
11
  code?: string;
@@ -23,17 +15,29 @@ export interface Diagnostic {
23
15
  sourceChain: string[];
24
16
  }
25
17
 
18
+ export interface RenderResult {
19
+ artifacts: Artifact[];
20
+ warnings: Diagnostic[];
21
+ outputFormat: OutputFormat;
22
+ renderTimeMs: number;
23
+ }
24
+
25
+ export interface Location {
26
+ file: string;
27
+ line: number;
28
+ column: number;
29
+ }
30
+
26
31
  export interface Artifact {
27
32
  format: OutputFormat;
28
33
  bytes: Uint8Array;
29
34
  mimeType: string;
30
35
  }
31
36
 
32
- export interface RenderResult {
33
- artifacts: Artifact[];
34
- warnings: Diagnostic[];
35
- outputFormat: OutputFormat;
36
- renderTimeMs: number;
37
+ export interface RenderOptions {
38
+ format?: OutputFormat;
39
+ assets?: Record<string, Uint8Array | number[]>;
40
+ quillName?: string;
37
41
  }
38
42
 
39
43
  export interface QuillInfo {
@@ -52,11 +56,7 @@ export interface ParsedDocument {
52
56
  quillTag: string;
53
57
  }
54
58
 
55
- export interface RenderOptions {
56
- format?: OutputFormat;
57
- assets?: Record<string, Uint8Array | number[]>;
58
- quillName?: string;
59
- }
59
+ export type Severity = "error" | "warning" | "note";
60
60
 
61
61
  /**
62
62
  * Quillmark WASM Engine
@@ -67,9 +67,22 @@ export class Quillmark {
67
67
  free(): void;
68
68
  [Symbol.dispose](): void;
69
69
  /**
70
- * JavaScript constructor: `new Quillmark()`
70
+ * List registered Quill names
71
71
  */
72
- constructor();
72
+ listQuills(): string[];
73
+ /**
74
+ * Process markdown through template engine (debugging)
75
+ *
76
+ * Returns template source code (Typst, LaTeX, etc.)
77
+ */
78
+ processPlate(quill_name: string, markdown: string): string;
79
+ /**
80
+ * Get shallow information about a registered Quill
81
+ *
82
+ * This returns metadata, backend info, field schemas, and supported formats
83
+ * that consumers need to configure render options for the next step.
84
+ */
85
+ getQuillInfo(name: string): QuillInfo;
73
86
  /**
74
87
  * Parse markdown into a ParsedDocument
75
88
  *
@@ -85,18 +98,20 @@ export class Quillmark {
85
98
  */
86
99
  registerQuill(quill_json: any): QuillInfo;
87
100
  /**
88
- * Get shallow information about a registered Quill
89
- *
90
- * This returns metadata, backend info, field schemas, and supported formats
91
- * that consumers need to configure render options for the next step.
101
+ * Unregister a Quill (free memory)
92
102
  */
93
- getQuillInfo(name: string): QuillInfo;
103
+ unregisterQuill(name: string): void;
94
104
  /**
95
- * Process markdown through template engine (debugging)
105
+ * JavaScript constructor: `new Quillmark()`
106
+ */
107
+ constructor();
108
+ /**
109
+ * Render a ParsedDocument to final artifacts (PDF, SVG, TXT)
96
110
  *
97
- * Returns template source code (Typst, LaTeX, etc.)
111
+ * Uses the Quill specified in options.quill_name if provided,
112
+ * otherwise infers it from the ParsedDocument's quill_tag field.
98
113
  */
99
- processPlate(quill_name: string, markdown: string): string;
114
+ render(parsed: ParsedDocument, opts: RenderOptions): RenderResult;
100
115
  /**
101
116
  * Perform a dry run validation without backend compilation.
102
117
  *
@@ -109,19 +124,4 @@ export class Quillmark {
109
124
  * This is useful for fast feedback loops in LLM-driven document generation.
110
125
  */
111
126
  dryRun(markdown: string): void;
112
- /**
113
- * Render a ParsedDocument to final artifacts (PDF, SVG, TXT)
114
- *
115
- * Uses the Quill specified in options.quill_name if provided,
116
- * otherwise infers it from the ParsedDocument's quill_tag field.
117
- */
118
- render(parsed: ParsedDocument, opts: RenderOptions): RenderResult;
119
- /**
120
- * List registered Quill names
121
- */
122
- listQuills(): string[];
123
- /**
124
- * Unregister a Quill (free memory)
125
- */
126
- unregisterQuill(name: string): void;
127
127
  }
@@ -207,6 +207,12 @@ function debugString(val) {
207
207
  // TODO we could test for more things here, like `Set`s and `Map`s.
208
208
  return className;
209
209
  }
210
+ /**
211
+ * Initialize the WASM module with panic hooks for better error messages
212
+ */
213
+ export function init() {
214
+ wasm.init();
215
+ }
210
216
 
211
217
  function getArrayJsValueFromWasm0(ptr, len) {
212
218
  ptr = ptr >>> 0;
@@ -217,12 +223,6 @@ function getArrayJsValueFromWasm0(ptr, len) {
217
223
  }
218
224
  return result;
219
225
  }
220
- /**
221
- * Initialize the WASM module with panic hooks for better error messages
222
- */
223
- export function init() {
224
- wasm.init();
225
- }
226
226
 
227
227
  const QuillmarkFinalization = (typeof FinalizationRegistry === 'undefined')
228
228
  ? { register: () => {}, unregister: () => {} }
@@ -246,60 +246,56 @@ export class Quillmark {
246
246
  wasm.__wbg_quillmark_free(ptr, 0);
247
247
  }
248
248
  /**
249
- * JavaScript constructor: `new Quillmark()`
250
- */
251
- constructor() {
252
- const ret = wasm.quillmark_new();
253
- this.__wbg_ptr = ret >>> 0;
254
- QuillmarkFinalization.register(this, this.__wbg_ptr, this);
255
- return this;
256
- }
257
- /**
258
- * Parse markdown into a ParsedDocument
259
- *
260
- * This is the first step in the workflow. The returned ParsedDocument contains
261
- * the parsed YAML frontmatter fields and the quill_tag (from QUILL field or "__default__").
262
- * @param {string} markdown
263
- * @returns {ParsedDocument}
249
+ * List registered Quill names
250
+ * @returns {string[]}
264
251
  */
265
- static parseMarkdown(markdown) {
252
+ listQuills() {
266
253
  try {
267
254
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
268
- const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
269
- const len0 = WASM_VECTOR_LEN;
270
- wasm.quillmark_parseMarkdown(retptr, ptr0, len0);
255
+ wasm.quillmark_listQuills(retptr, this.__wbg_ptr);
271
256
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
272
257
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
273
- var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
274
- if (r2) {
275
- throw takeObject(r1);
276
- }
277
- return takeObject(r0);
258
+ var v1 = getArrayJsValueFromWasm0(r0, r1).slice();
259
+ wasm.__wbindgen_export_3(r0, r1 * 4, 4);
260
+ return v1;
278
261
  } finally {
279
262
  wasm.__wbindgen_add_to_stack_pointer(16);
280
263
  }
281
264
  }
282
265
  /**
283
- * Register a Quill template bundle
266
+ * Process markdown through template engine (debugging)
284
267
  *
285
- * Accepts either a JSON string or a JsValue object representing the Quill file tree.
286
- * Validation happens automatically on registration.
287
- * @param {any} quill_json
288
- * @returns {QuillInfo}
268
+ * Returns template source code (Typst, LaTeX, etc.)
269
+ * @param {string} quill_name
270
+ * @param {string} markdown
271
+ * @returns {string}
289
272
  */
290
- registerQuill(quill_json) {
273
+ processPlate(quill_name, markdown) {
274
+ let deferred4_0;
275
+ let deferred4_1;
291
276
  try {
292
277
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
293
- wasm.quillmark_registerQuill(retptr, this.__wbg_ptr, addHeapObject(quill_json));
278
+ const ptr0 = passStringToWasm0(quill_name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
279
+ const len0 = WASM_VECTOR_LEN;
280
+ const ptr1 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
281
+ const len1 = WASM_VECTOR_LEN;
282
+ wasm.quillmark_processPlate(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
294
283
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
295
284
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
296
285
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
297
- if (r2) {
298
- throw takeObject(r1);
286
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
287
+ var ptr3 = r0;
288
+ var len3 = r1;
289
+ if (r3) {
290
+ ptr3 = 0; len3 = 0;
291
+ throw takeObject(r2);
299
292
  }
300
- return takeObject(r0);
293
+ deferred4_0 = ptr3;
294
+ deferred4_1 = len3;
295
+ return getStringFromWasm0(ptr3, len3);
301
296
  } finally {
302
297
  wasm.__wbindgen_add_to_stack_pointer(16);
298
+ wasm.__wbindgen_export_3(deferred4_0, deferred4_1, 1);
303
299
  }
304
300
  }
305
301
  /**
@@ -328,68 +324,71 @@ export class Quillmark {
328
324
  }
329
325
  }
330
326
  /**
331
- * Process markdown through template engine (debugging)
327
+ * Parse markdown into a ParsedDocument
332
328
  *
333
- * Returns template source code (Typst, LaTeX, etc.)
334
- * @param {string} quill_name
329
+ * This is the first step in the workflow. The returned ParsedDocument contains
330
+ * the parsed YAML frontmatter fields and the quill_tag (from QUILL field or "__default__").
335
331
  * @param {string} markdown
336
- * @returns {string}
332
+ * @returns {ParsedDocument}
337
333
  */
338
- processPlate(quill_name, markdown) {
339
- let deferred4_0;
340
- let deferred4_1;
334
+ static parseMarkdown(markdown) {
341
335
  try {
342
336
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
343
- const ptr0 = passStringToWasm0(quill_name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
337
+ const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
344
338
  const len0 = WASM_VECTOR_LEN;
345
- const ptr1 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
346
- const len1 = WASM_VECTOR_LEN;
347
- wasm.quillmark_processPlate(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
339
+ wasm.quillmark_parseMarkdown(retptr, ptr0, len0);
348
340
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
349
341
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
350
342
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
351
- var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
352
- var ptr3 = r0;
353
- var len3 = r1;
354
- if (r3) {
355
- ptr3 = 0; len3 = 0;
356
- throw takeObject(r2);
343
+ if (r2) {
344
+ throw takeObject(r1);
357
345
  }
358
- deferred4_0 = ptr3;
359
- deferred4_1 = len3;
360
- return getStringFromWasm0(ptr3, len3);
346
+ return takeObject(r0);
361
347
  } finally {
362
348
  wasm.__wbindgen_add_to_stack_pointer(16);
363
- wasm.__wbindgen_export_3(deferred4_0, deferred4_1, 1);
364
349
  }
365
350
  }
366
351
  /**
367
- * Perform a dry run validation without backend compilation.
368
- *
369
- * Executes parsing, schema validation, and template composition to
370
- * surface input errors quickly. Returns successfully on valid input,
371
- * or throws an error with diagnostic payload on failure.
372
- *
373
- * The quill name is inferred from the markdown's QUILL tag (or defaults to "__default__").
352
+ * Register a Quill template bundle
374
353
  *
375
- * This is useful for fast feedback loops in LLM-driven document generation.
376
- * @param {string} markdown
354
+ * Accepts either a JSON string or a JsValue object representing the Quill file tree.
355
+ * Validation happens automatically on registration.
356
+ * @param {any} quill_json
357
+ * @returns {QuillInfo}
377
358
  */
378
- dryRun(markdown) {
359
+ registerQuill(quill_json) {
379
360
  try {
380
361
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
381
- const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
382
- const len0 = WASM_VECTOR_LEN;
383
- wasm.quillmark_dryRun(retptr, this.__wbg_ptr, ptr0, len0);
362
+ wasm.quillmark_registerQuill(retptr, this.__wbg_ptr, addHeapObject(quill_json));
384
363
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
385
364
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
386
- if (r1) {
387
- throw takeObject(r0);
365
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
366
+ if (r2) {
367
+ throw takeObject(r1);
388
368
  }
369
+ return takeObject(r0);
389
370
  } finally {
390
371
  wasm.__wbindgen_add_to_stack_pointer(16);
391
372
  }
392
373
  }
374
+ /**
375
+ * Unregister a Quill (free memory)
376
+ * @param {string} name
377
+ */
378
+ unregisterQuill(name) {
379
+ const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
380
+ const len0 = WASM_VECTOR_LEN;
381
+ wasm.quillmark_unregisterQuill(this.__wbg_ptr, ptr0, len0);
382
+ }
383
+ /**
384
+ * JavaScript constructor: `new Quillmark()`
385
+ */
386
+ constructor() {
387
+ const ret = wasm.quillmark_new();
388
+ this.__wbg_ptr = ret >>> 0;
389
+ QuillmarkFinalization.register(this, this.__wbg_ptr, this);
390
+ return this;
391
+ }
393
392
  /**
394
393
  * Render a ParsedDocument to final artifacts (PDF, SVG, TXT)
395
394
  *
@@ -415,31 +414,32 @@ export class Quillmark {
415
414
  }
416
415
  }
417
416
  /**
418
- * List registered Quill names
419
- * @returns {string[]}
417
+ * Perform a dry run validation without backend compilation.
418
+ *
419
+ * Executes parsing, schema validation, and template composition to
420
+ * surface input errors quickly. Returns successfully on valid input,
421
+ * or throws an error with diagnostic payload on failure.
422
+ *
423
+ * The quill name is inferred from the markdown's QUILL tag (or defaults to "__default__").
424
+ *
425
+ * This is useful for fast feedback loops in LLM-driven document generation.
426
+ * @param {string} markdown
420
427
  */
421
- listQuills() {
428
+ dryRun(markdown) {
422
429
  try {
423
430
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
424
- wasm.quillmark_listQuills(retptr, this.__wbg_ptr);
431
+ const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
432
+ const len0 = WASM_VECTOR_LEN;
433
+ wasm.quillmark_dryRun(retptr, this.__wbg_ptr, ptr0, len0);
425
434
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
426
435
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
427
- var v1 = getArrayJsValueFromWasm0(r0, r1).slice();
428
- wasm.__wbindgen_export_3(r0, r1 * 4, 4);
429
- return v1;
436
+ if (r1) {
437
+ throw takeObject(r0);
438
+ }
430
439
  } finally {
431
440
  wasm.__wbindgen_add_to_stack_pointer(16);
432
441
  }
433
442
  }
434
- /**
435
- * Unregister a Quill (free memory)
436
- * @param {string} name
437
- */
438
- unregisterQuill(name) {
439
- const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
440
- const len0 = WASM_VECTOR_LEN;
441
- wasm.quillmark_unregisterQuill(this.__wbg_ptr, ptr0, len0);
442
- }
443
443
  }
444
444
  if (Symbol.dispose) Quillmark.prototype[Symbol.dispose] = Quillmark.prototype.free;
445
445
 
Binary file
@@ -2,29 +2,29 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_quillmark_free: (a: number, b: number) => void;
5
+ export const init: () => void;
6
+ export const quillmark_dryRun: (a: number, b: number, c: number, d: number) => void;
7
+ export const quillmark_getQuillInfo: (a: number, b: number, c: number, d: number) => void;
8
+ export const quillmark_listQuills: (a: number, b: number) => void;
5
9
  export const quillmark_new: () => number;
6
10
  export const quillmark_parseMarkdown: (a: number, b: number, c: number) => void;
7
- export const quillmark_registerQuill: (a: number, b: number, c: number) => void;
8
- export const quillmark_getQuillInfo: (a: number, b: number, c: number, d: number) => void;
9
11
  export const quillmark_processPlate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
10
- export const quillmark_dryRun: (a: number, b: number, c: number, d: number) => void;
12
+ export const quillmark_registerQuill: (a: number, b: number, c: number) => void;
11
13
  export const quillmark_render: (a: number, b: number, c: number, d: number) => void;
12
- export const quillmark_listQuills: (a: number, b: number) => void;
13
14
  export const quillmark_unregisterQuill: (a: number, b: number, c: number) => void;
14
- export const init: () => void;
15
- export const qcms_profile_is_bogus: (a: number) => number;
16
- export const qcms_white_point_sRGB: (a: number) => void;
15
+ export const lut_inverse_interp16: (a: number, b: number, c: number) => number;
17
16
  export const qcms_profile_precache_output_transform: (a: number) => void;
18
- export const qcms_transform_data_rgb_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
19
- export const qcms_transform_data_rgba_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
20
- export const qcms_transform_data_bgra_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
17
+ export const qcms_white_point_sRGB: (a: number) => void;
21
18
  export const qcms_transform_data_rgb_out_lut: (a: number, b: number, c: number, d: number) => void;
22
19
  export const qcms_transform_data_rgba_out_lut: (a: number, b: number, c: number, d: number) => void;
23
20
  export const qcms_transform_data_bgra_out_lut: (a: number, b: number, c: number, d: number) => void;
24
- export const qcms_transform_release: (a: number) => void;
25
- export const qcms_enable_iccv4: () => void;
21
+ export const qcms_transform_data_rgb_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
22
+ export const qcms_transform_data_rgba_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
23
+ export const qcms_transform_data_bgra_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
26
24
  export const lut_interp_linear16: (a: number, b: number, c: number) => number;
27
- export const lut_inverse_interp16: (a: number, b: number, c: number) => number;
25
+ export const qcms_enable_iccv4: () => void;
26
+ export const qcms_profile_is_bogus: (a: number) => number;
27
+ export const qcms_transform_release: (a: number) => void;
28
28
  export const __wbindgen_export_0: (a: number, b: number) => number;
29
29
  export const __wbindgen_export_1: (a: number, b: number, c: number, d: number) => number;
30
30
  export const __wbindgen_export_2: (a: number) => void;
@@ -6,14 +6,6 @@
6
6
  export function init(): void;
7
7
  export type OutputFormat = "pdf" | "svg" | "txt";
8
8
 
9
- export type Severity = "error" | "warning" | "note";
10
-
11
- export interface Location {
12
- file: string;
13
- line: number;
14
- column: number;
15
- }
16
-
17
9
  export interface Diagnostic {
18
10
  severity: Severity;
19
11
  code?: string;
@@ -23,17 +15,29 @@ export interface Diagnostic {
23
15
  sourceChain: string[];
24
16
  }
25
17
 
18
+ export interface RenderResult {
19
+ artifacts: Artifact[];
20
+ warnings: Diagnostic[];
21
+ outputFormat: OutputFormat;
22
+ renderTimeMs: number;
23
+ }
24
+
25
+ export interface Location {
26
+ file: string;
27
+ line: number;
28
+ column: number;
29
+ }
30
+
26
31
  export interface Artifact {
27
32
  format: OutputFormat;
28
33
  bytes: Uint8Array;
29
34
  mimeType: string;
30
35
  }
31
36
 
32
- export interface RenderResult {
33
- artifacts: Artifact[];
34
- warnings: Diagnostic[];
35
- outputFormat: OutputFormat;
36
- renderTimeMs: number;
37
+ export interface RenderOptions {
38
+ format?: OutputFormat;
39
+ assets?: Record<string, Uint8Array | number[]>;
40
+ quillName?: string;
37
41
  }
38
42
 
39
43
  export interface QuillInfo {
@@ -52,11 +56,7 @@ export interface ParsedDocument {
52
56
  quillTag: string;
53
57
  }
54
58
 
55
- export interface RenderOptions {
56
- format?: OutputFormat;
57
- assets?: Record<string, Uint8Array | number[]>;
58
- quillName?: string;
59
- }
59
+ export type Severity = "error" | "warning" | "note";
60
60
 
61
61
  /**
62
62
  * Quillmark WASM Engine
@@ -67,9 +67,22 @@ export class Quillmark {
67
67
  free(): void;
68
68
  [Symbol.dispose](): void;
69
69
  /**
70
- * JavaScript constructor: `new Quillmark()`
70
+ * List registered Quill names
71
71
  */
72
- constructor();
72
+ listQuills(): string[];
73
+ /**
74
+ * Process markdown through template engine (debugging)
75
+ *
76
+ * Returns template source code (Typst, LaTeX, etc.)
77
+ */
78
+ processPlate(quill_name: string, markdown: string): string;
79
+ /**
80
+ * Get shallow information about a registered Quill
81
+ *
82
+ * This returns metadata, backend info, field schemas, and supported formats
83
+ * that consumers need to configure render options for the next step.
84
+ */
85
+ getQuillInfo(name: string): QuillInfo;
73
86
  /**
74
87
  * Parse markdown into a ParsedDocument
75
88
  *
@@ -85,18 +98,20 @@ export class Quillmark {
85
98
  */
86
99
  registerQuill(quill_json: any): QuillInfo;
87
100
  /**
88
- * Get shallow information about a registered Quill
89
- *
90
- * This returns metadata, backend info, field schemas, and supported formats
91
- * that consumers need to configure render options for the next step.
101
+ * Unregister a Quill (free memory)
92
102
  */
93
- getQuillInfo(name: string): QuillInfo;
103
+ unregisterQuill(name: string): void;
94
104
  /**
95
- * Process markdown through template engine (debugging)
105
+ * JavaScript constructor: `new Quillmark()`
106
+ */
107
+ constructor();
108
+ /**
109
+ * Render a ParsedDocument to final artifacts (PDF, SVG, TXT)
96
110
  *
97
- * Returns template source code (Typst, LaTeX, etc.)
111
+ * Uses the Quill specified in options.quill_name if provided,
112
+ * otherwise infers it from the ParsedDocument's quill_tag field.
98
113
  */
99
- processPlate(quill_name: string, markdown: string): string;
114
+ render(parsed: ParsedDocument, opts: RenderOptions): RenderResult;
100
115
  /**
101
116
  * Perform a dry run validation without backend compilation.
102
117
  *
@@ -109,19 +124,4 @@ export class Quillmark {
109
124
  * This is useful for fast feedback loops in LLM-driven document generation.
110
125
  */
111
126
  dryRun(markdown: string): void;
112
- /**
113
- * Render a ParsedDocument to final artifacts (PDF, SVG, TXT)
114
- *
115
- * Uses the Quill specified in options.quill_name if provided,
116
- * otherwise infers it from the ParsedDocument's quill_tag field.
117
- */
118
- render(parsed: ParsedDocument, opts: RenderOptions): RenderResult;
119
- /**
120
- * List registered Quill names
121
- */
122
- listQuills(): string[];
123
- /**
124
- * Unregister a Quill (free memory)
125
- */
126
- unregisterQuill(name: string): void;
127
127
  }
@@ -201,6 +201,12 @@ function debugString(val) {
201
201
  // TODO we could test for more things here, like `Set`s and `Map`s.
202
202
  return className;
203
203
  }
204
+ /**
205
+ * Initialize the WASM module with panic hooks for better error messages
206
+ */
207
+ export function init() {
208
+ wasm.init();
209
+ }
204
210
 
205
211
  function getArrayJsValueFromWasm0(ptr, len) {
206
212
  ptr = ptr >>> 0;
@@ -211,12 +217,6 @@ function getArrayJsValueFromWasm0(ptr, len) {
211
217
  }
212
218
  return result;
213
219
  }
214
- /**
215
- * Initialize the WASM module with panic hooks for better error messages
216
- */
217
- export function init() {
218
- wasm.init();
219
- }
220
220
 
221
221
  const QuillmarkFinalization = (typeof FinalizationRegistry === 'undefined')
222
222
  ? { register: () => {}, unregister: () => {} }
@@ -240,60 +240,56 @@ export class Quillmark {
240
240
  wasm.__wbg_quillmark_free(ptr, 0);
241
241
  }
242
242
  /**
243
- * JavaScript constructor: `new Quillmark()`
244
- */
245
- constructor() {
246
- const ret = wasm.quillmark_new();
247
- this.__wbg_ptr = ret >>> 0;
248
- QuillmarkFinalization.register(this, this.__wbg_ptr, this);
249
- return this;
250
- }
251
- /**
252
- * Parse markdown into a ParsedDocument
253
- *
254
- * This is the first step in the workflow. The returned ParsedDocument contains
255
- * the parsed YAML frontmatter fields and the quill_tag (from QUILL field or "__default__").
256
- * @param {string} markdown
257
- * @returns {ParsedDocument}
243
+ * List registered Quill names
244
+ * @returns {string[]}
258
245
  */
259
- static parseMarkdown(markdown) {
246
+ listQuills() {
260
247
  try {
261
248
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
262
- const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
263
- const len0 = WASM_VECTOR_LEN;
264
- wasm.quillmark_parseMarkdown(retptr, ptr0, len0);
249
+ wasm.quillmark_listQuills(retptr, this.__wbg_ptr);
265
250
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
266
251
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
267
- var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
268
- if (r2) {
269
- throw takeObject(r1);
270
- }
271
- return takeObject(r0);
252
+ var v1 = getArrayJsValueFromWasm0(r0, r1).slice();
253
+ wasm.__wbindgen_export_3(r0, r1 * 4, 4);
254
+ return v1;
272
255
  } finally {
273
256
  wasm.__wbindgen_add_to_stack_pointer(16);
274
257
  }
275
258
  }
276
259
  /**
277
- * Register a Quill template bundle
260
+ * Process markdown through template engine (debugging)
278
261
  *
279
- * Accepts either a JSON string or a JsValue object representing the Quill file tree.
280
- * Validation happens automatically on registration.
281
- * @param {any} quill_json
282
- * @returns {QuillInfo}
262
+ * Returns template source code (Typst, LaTeX, etc.)
263
+ * @param {string} quill_name
264
+ * @param {string} markdown
265
+ * @returns {string}
283
266
  */
284
- registerQuill(quill_json) {
267
+ processPlate(quill_name, markdown) {
268
+ let deferred4_0;
269
+ let deferred4_1;
285
270
  try {
286
271
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
287
- wasm.quillmark_registerQuill(retptr, this.__wbg_ptr, addHeapObject(quill_json));
272
+ const ptr0 = passStringToWasm0(quill_name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
273
+ const len0 = WASM_VECTOR_LEN;
274
+ const ptr1 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
275
+ const len1 = WASM_VECTOR_LEN;
276
+ wasm.quillmark_processPlate(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
288
277
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
289
278
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
290
279
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
291
- if (r2) {
292
- throw takeObject(r1);
280
+ var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
281
+ var ptr3 = r0;
282
+ var len3 = r1;
283
+ if (r3) {
284
+ ptr3 = 0; len3 = 0;
285
+ throw takeObject(r2);
293
286
  }
294
- return takeObject(r0);
287
+ deferred4_0 = ptr3;
288
+ deferred4_1 = len3;
289
+ return getStringFromWasm0(ptr3, len3);
295
290
  } finally {
296
291
  wasm.__wbindgen_add_to_stack_pointer(16);
292
+ wasm.__wbindgen_export_3(deferred4_0, deferred4_1, 1);
297
293
  }
298
294
  }
299
295
  /**
@@ -322,68 +318,71 @@ export class Quillmark {
322
318
  }
323
319
  }
324
320
  /**
325
- * Process markdown through template engine (debugging)
321
+ * Parse markdown into a ParsedDocument
326
322
  *
327
- * Returns template source code (Typst, LaTeX, etc.)
328
- * @param {string} quill_name
323
+ * This is the first step in the workflow. The returned ParsedDocument contains
324
+ * the parsed YAML frontmatter fields and the quill_tag (from QUILL field or "__default__").
329
325
  * @param {string} markdown
330
- * @returns {string}
326
+ * @returns {ParsedDocument}
331
327
  */
332
- processPlate(quill_name, markdown) {
333
- let deferred4_0;
334
- let deferred4_1;
328
+ static parseMarkdown(markdown) {
335
329
  try {
336
330
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
337
- const ptr0 = passStringToWasm0(quill_name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
331
+ const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
338
332
  const len0 = WASM_VECTOR_LEN;
339
- const ptr1 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
340
- const len1 = WASM_VECTOR_LEN;
341
- wasm.quillmark_processPlate(retptr, this.__wbg_ptr, ptr0, len0, ptr1, len1);
333
+ wasm.quillmark_parseMarkdown(retptr, ptr0, len0);
342
334
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
343
335
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
344
336
  var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
345
- var r3 = getDataViewMemory0().getInt32(retptr + 4 * 3, true);
346
- var ptr3 = r0;
347
- var len3 = r1;
348
- if (r3) {
349
- ptr3 = 0; len3 = 0;
350
- throw takeObject(r2);
337
+ if (r2) {
338
+ throw takeObject(r1);
351
339
  }
352
- deferred4_0 = ptr3;
353
- deferred4_1 = len3;
354
- return getStringFromWasm0(ptr3, len3);
340
+ return takeObject(r0);
355
341
  } finally {
356
342
  wasm.__wbindgen_add_to_stack_pointer(16);
357
- wasm.__wbindgen_export_3(deferred4_0, deferred4_1, 1);
358
343
  }
359
344
  }
360
345
  /**
361
- * Perform a dry run validation without backend compilation.
362
- *
363
- * Executes parsing, schema validation, and template composition to
364
- * surface input errors quickly. Returns successfully on valid input,
365
- * or throws an error with diagnostic payload on failure.
366
- *
367
- * The quill name is inferred from the markdown's QUILL tag (or defaults to "__default__").
346
+ * Register a Quill template bundle
368
347
  *
369
- * This is useful for fast feedback loops in LLM-driven document generation.
370
- * @param {string} markdown
348
+ * Accepts either a JSON string or a JsValue object representing the Quill file tree.
349
+ * Validation happens automatically on registration.
350
+ * @param {any} quill_json
351
+ * @returns {QuillInfo}
371
352
  */
372
- dryRun(markdown) {
353
+ registerQuill(quill_json) {
373
354
  try {
374
355
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
375
- const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
376
- const len0 = WASM_VECTOR_LEN;
377
- wasm.quillmark_dryRun(retptr, this.__wbg_ptr, ptr0, len0);
356
+ wasm.quillmark_registerQuill(retptr, this.__wbg_ptr, addHeapObject(quill_json));
378
357
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
379
358
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
380
- if (r1) {
381
- throw takeObject(r0);
359
+ var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
360
+ if (r2) {
361
+ throw takeObject(r1);
382
362
  }
363
+ return takeObject(r0);
383
364
  } finally {
384
365
  wasm.__wbindgen_add_to_stack_pointer(16);
385
366
  }
386
367
  }
368
+ /**
369
+ * Unregister a Quill (free memory)
370
+ * @param {string} name
371
+ */
372
+ unregisterQuill(name) {
373
+ const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
374
+ const len0 = WASM_VECTOR_LEN;
375
+ wasm.quillmark_unregisterQuill(this.__wbg_ptr, ptr0, len0);
376
+ }
377
+ /**
378
+ * JavaScript constructor: `new Quillmark()`
379
+ */
380
+ constructor() {
381
+ const ret = wasm.quillmark_new();
382
+ this.__wbg_ptr = ret >>> 0;
383
+ QuillmarkFinalization.register(this, this.__wbg_ptr, this);
384
+ return this;
385
+ }
387
386
  /**
388
387
  * Render a ParsedDocument to final artifacts (PDF, SVG, TXT)
389
388
  *
@@ -409,31 +408,32 @@ export class Quillmark {
409
408
  }
410
409
  }
411
410
  /**
412
- * List registered Quill names
413
- * @returns {string[]}
411
+ * Perform a dry run validation without backend compilation.
412
+ *
413
+ * Executes parsing, schema validation, and template composition to
414
+ * surface input errors quickly. Returns successfully on valid input,
415
+ * or throws an error with diagnostic payload on failure.
416
+ *
417
+ * The quill name is inferred from the markdown's QUILL tag (or defaults to "__default__").
418
+ *
419
+ * This is useful for fast feedback loops in LLM-driven document generation.
420
+ * @param {string} markdown
414
421
  */
415
- listQuills() {
422
+ dryRun(markdown) {
416
423
  try {
417
424
  const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
418
- wasm.quillmark_listQuills(retptr, this.__wbg_ptr);
425
+ const ptr0 = passStringToWasm0(markdown, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
426
+ const len0 = WASM_VECTOR_LEN;
427
+ wasm.quillmark_dryRun(retptr, this.__wbg_ptr, ptr0, len0);
419
428
  var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
420
429
  var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
421
- var v1 = getArrayJsValueFromWasm0(r0, r1).slice();
422
- wasm.__wbindgen_export_3(r0, r1 * 4, 4);
423
- return v1;
430
+ if (r1) {
431
+ throw takeObject(r0);
432
+ }
424
433
  } finally {
425
434
  wasm.__wbindgen_add_to_stack_pointer(16);
426
435
  }
427
436
  }
428
- /**
429
- * Unregister a Quill (free memory)
430
- * @param {string} name
431
- */
432
- unregisterQuill(name) {
433
- const ptr0 = passStringToWasm0(name, wasm.__wbindgen_export_0, wasm.__wbindgen_export_1);
434
- const len0 = WASM_VECTOR_LEN;
435
- wasm.quillmark_unregisterQuill(this.__wbg_ptr, ptr0, len0);
436
- }
437
437
  }
438
438
  if (Symbol.dispose) Quillmark.prototype[Symbol.dispose] = Quillmark.prototype.free;
439
439
 
Binary file
@@ -2,29 +2,29 @@
2
2
  /* eslint-disable */
3
3
  export const memory: WebAssembly.Memory;
4
4
  export const __wbg_quillmark_free: (a: number, b: number) => void;
5
+ export const init: () => void;
6
+ export const quillmark_dryRun: (a: number, b: number, c: number, d: number) => void;
7
+ export const quillmark_getQuillInfo: (a: number, b: number, c: number, d: number) => void;
8
+ export const quillmark_listQuills: (a: number, b: number) => void;
5
9
  export const quillmark_new: () => number;
6
10
  export const quillmark_parseMarkdown: (a: number, b: number, c: number) => void;
7
- export const quillmark_registerQuill: (a: number, b: number, c: number) => void;
8
- export const quillmark_getQuillInfo: (a: number, b: number, c: number, d: number) => void;
9
11
  export const quillmark_processPlate: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
10
- export const quillmark_dryRun: (a: number, b: number, c: number, d: number) => void;
12
+ export const quillmark_registerQuill: (a: number, b: number, c: number) => void;
11
13
  export const quillmark_render: (a: number, b: number, c: number, d: number) => void;
12
- export const quillmark_listQuills: (a: number, b: number) => void;
13
14
  export const quillmark_unregisterQuill: (a: number, b: number, c: number) => void;
14
- export const init: () => void;
15
- export const qcms_profile_is_bogus: (a: number) => number;
16
- export const qcms_white_point_sRGB: (a: number) => void;
15
+ export const lut_inverse_interp16: (a: number, b: number, c: number) => number;
17
16
  export const qcms_profile_precache_output_transform: (a: number) => void;
18
- export const qcms_transform_data_rgb_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
19
- export const qcms_transform_data_rgba_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
20
- export const qcms_transform_data_bgra_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
17
+ export const qcms_white_point_sRGB: (a: number) => void;
21
18
  export const qcms_transform_data_rgb_out_lut: (a: number, b: number, c: number, d: number) => void;
22
19
  export const qcms_transform_data_rgba_out_lut: (a: number, b: number, c: number, d: number) => void;
23
20
  export const qcms_transform_data_bgra_out_lut: (a: number, b: number, c: number, d: number) => void;
24
- export const qcms_transform_release: (a: number) => void;
25
- export const qcms_enable_iccv4: () => void;
21
+ export const qcms_transform_data_rgb_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
22
+ export const qcms_transform_data_rgba_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
23
+ export const qcms_transform_data_bgra_out_lut_precache: (a: number, b: number, c: number, d: number) => void;
26
24
  export const lut_interp_linear16: (a: number, b: number, c: number) => number;
27
- export const lut_inverse_interp16: (a: number, b: number, c: number) => number;
25
+ export const qcms_enable_iccv4: () => void;
26
+ export const qcms_profile_is_bogus: (a: number) => number;
27
+ export const qcms_transform_release: (a: number) => void;
28
28
  export const __wbindgen_export_0: (a: number, b: number) => number;
29
29
  export const __wbindgen_export_1: (a: number, b: number, c: number, d: number) => number;
30
30
  export const __wbindgen_export_2: (a: number) => void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@quillmark/wasm",
3
- "version": "0.20.2",
3
+ "version": "0.21.0",
4
4
  "description": "WebAssembly bindings for quillmark",
5
5
  "type": "module",
6
6
  "license": "MIT OR Apache-2.0",