@quillmark/wasm 0.127.0 → 0.129.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/CHANGELOG.md +95 -0
- package/README.md +11 -8
- package/THIRD_PARTY_LICENSES.md +111 -12
- package/core/wasm.d.ts +23 -6
- package/core/wasm.js +5 -5
- package/core/wasm_bg.wasm +0 -0
- package/package.json +3 -2
- package/render/wasm.d.ts +57 -40
- package/render/wasm.js +113 -113
- package/render/wasm_bg.wasm +0 -0
- package/render/wasm_bg.wasm.d.ts +5 -5
- package/runtime/runtime.d.ts +9 -5
- package/runtime/runtime.js +5 -6
- package/sbom.cdx.json +53 -52
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,100 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## v0.129.0 - 2026-10-21
|
|
4
|
+
|
|
5
|
+
Upgrade path: [0.128 → 0.129](docs/migrations/0.128-to-0.129.md). Footnotes,
|
|
6
|
+
`$…$` math and definition lists render, where 0.128 imported each as text, so
|
|
7
|
+
markdown that spelled one changes what it renders and nothing reports it. A
|
|
8
|
+
save writes `quillmark/document@0.129.0`, which a 0.128 build refuses. A
|
|
9
|
+
one-line text value printed in a Typst plate carries no space at its edges,
|
|
10
|
+
and `ui.layout: flat` is deprecated.
|
|
11
|
+
|
|
12
|
+
### Content
|
|
13
|
+
|
|
14
|
+
- feat(content)!: **`text[^1]` with a `[^1]: note` definition renders a
|
|
15
|
+
footnote**, stored as a `footnote` island holding the note as one table
|
|
16
|
+
cell and drawn through Typst's `footnote`. A definition nothing references,
|
|
17
|
+
a second definition of one label, a reference in a table cell, an alt text
|
|
18
|
+
or a note, and a block inside a note warn `parse::dropped_construct`
|
|
19
|
+
(`footnote`, `footnote[<block>]`). Export numbers the references in reading
|
|
20
|
+
order and writes each note after the body. (#2258)
|
|
21
|
+
- feat(content)!: **`$tex$` and `$$tex$$` render equations**, stored as a
|
|
22
|
+
`math` island holding the TeX under `tex`, `display: true` on the second.
|
|
23
|
+
The Typst backend translates the TeX to Typst math, warns
|
|
24
|
+
`typst::unsupported_tex` for a command outside its vocabulary, and embeds
|
|
25
|
+
Noto Sans Math, which answers to `New Computer Modern Math` for a quill
|
|
26
|
+
shipping no font of that family. An equation in a table cell, an alt text
|
|
27
|
+
or a note, or one whose TeX is blank, keeps its source and warns `math`.
|
|
28
|
+
Export escapes a text `$` wherever another could pair with it. (#2258)
|
|
29
|
+
- feat(content)!: **a paragraph with a `: description` line under it is a
|
|
30
|
+
definition list**, stored as a `term` line and a `description` container
|
|
31
|
+
and drawn through Typst's `terms.item`. Export writes `\:` before a
|
|
32
|
+
paragraph line opening `:`. (#2258)
|
|
33
|
+
- feat(content)!: **a save writes `quillmark/document@0.129.0`**, the first
|
|
34
|
+
tag that holds a footnote, an equation or a definition; a row under an older
|
|
35
|
+
tag loads as before, and a 0.128 build refuses one under the new tag. An
|
|
36
|
+
acroform quill declines all three constructs under
|
|
37
|
+
`backend::declined_construct`. (#2258)
|
|
38
|
+
|
|
39
|
+
### Plates
|
|
40
|
+
|
|
41
|
+
- fix(typst)!: **a one-line text value printed in a Typst plate carries no
|
|
42
|
+
space at either edge**, so `Dear #qm.ink(qm.data, "name"),` renders "Dear
|
|
43
|
+
Mr. Babbage," where it rendered "Dear Mr. Babbage ,". A plate that trimmed
|
|
44
|
+
the spaces can drop the trim; one that leaned on them writes the space
|
|
45
|
+
itself. (#2262)
|
|
46
|
+
|
|
47
|
+
### Schemas
|
|
48
|
+
|
|
49
|
+
- feat(core)!: **`ui.layout: flat` is deprecated** and warns
|
|
50
|
+
`quill::deprecated_flat` per field, naming its path; it still loads, and
|
|
51
|
+
`schema()` still echoes it. `schema()` no longer writes it on an object
|
|
52
|
+
alone in its legacy `ui.group`. A card-level field outside every group,
|
|
53
|
+
declared after a top-level object or a grouped field, warns
|
|
54
|
+
`quill::field_after_object`. (#2261)
|
|
55
|
+
|
|
56
|
+
### Parsing
|
|
57
|
+
|
|
58
|
+
- fix(core): **a code fence inside a list item or block quote closes where
|
|
59
|
+
its container ends**, so it no longer shields a column-zero card below it,
|
|
60
|
+
and markers nested past the parser's depth limit read as text. (#2255)
|
|
61
|
+
|
|
62
|
+
### Docs
|
|
63
|
+
|
|
64
|
+
- docs: **Creating Quills opens with `quillkit init`** and walks the starter
|
|
65
|
+
letter in studio, a quillkit & studio page names the verbs, and a glossary
|
|
66
|
+
defines the author's terms. (#2259)
|
|
67
|
+
|
|
68
|
+
## v0.128.0 - 2026-10-21
|
|
69
|
+
|
|
70
|
+
Upgrade path: [0.127 → 0.128](docs/migrations/0.127-to-0.128.md). A quill
|
|
71
|
+
whose `requires` floor is above the running release fails to load as
|
|
72
|
+
`quill::requires_unmet`, where it failed as `quill::engine_too_old`, and a
|
|
73
|
+
host matching the old code stops matching. The Rust struct and the Python
|
|
74
|
+
class `Quillmark` are `Engine`, with no alias, so `use quillmark::Quillmark`
|
|
75
|
+
fails to compile and `from quillmark import Quillmark` fails to import. The
|
|
76
|
+
JavaScript `Engine` is unchanged.
|
|
77
|
+
|
|
78
|
+
### API
|
|
79
|
+
|
|
80
|
+
- refactor(core)!: **a quill whose `requires` floor is above the running
|
|
81
|
+
release fails to load as `quill::requires_unmet`**, where it failed as
|
|
82
|
+
`quill::engine_too_old`. It is still the load's only error, and its message
|
|
83
|
+
still names the release the quill requires; a host matching the old code
|
|
84
|
+
stops matching, and matches both while a 0.126 or 0.127 host can load its
|
|
85
|
+
quills. (#2252, #2254)
|
|
86
|
+
- refactor!: **the Rust struct and the Python class `Quillmark` are
|
|
87
|
+
`Engine`**, the name the JavaScript surface already carries, with no alias.
|
|
88
|
+
Rename at the import and the constructor: `Engine::new()` in Rust,
|
|
89
|
+
`Engine()` in Python. Every method keeps its name and signature. (#2252)
|
|
90
|
+
|
|
91
|
+
### Docs
|
|
92
|
+
|
|
93
|
+
- docs: **Quillmark is described as a schema-driven document framework**
|
|
94
|
+
across package descriptions, CLI help, crate docs, READMEs, user docs, and
|
|
95
|
+
canon, and copy says `Engine` or the render build where it said engine.
|
|
96
|
+
(#2250, #2252, #2253)
|
|
97
|
+
|
|
3
98
|
## v0.127.0 - 2026-10-20
|
|
4
99
|
|
|
5
100
|
Upgrade path: [0.126 → 0.127](docs/migrations/0.126-to-0.127.md). An acroform
|
package/README.md
CHANGED
|
@@ -18,8 +18,10 @@ handed out verbatim by `init`, so editor/validation code (`Quill.fromTree`,
|
|
|
18
18
|
loaded until you render. The `Engine` hides everything else: the render build,
|
|
19
19
|
carrying both backends (`typst`, `acroform`), is a private WASM binary with its
|
|
20
20
|
own linear memory, lazily loaded on the first render. The Engine clones a
|
|
21
|
-
`Quill` / `Document` into that memory as data
|
|
22
|
-
|
|
21
|
+
`Quill` / `Document` into that memory as data. It frees the `Document` clone
|
|
22
|
+
after each call and caches the `Quill` clone in a `WeakMap` keyed on that
|
|
23
|
+
`Quill`, so the clone lives as long as the `Quill` does. You never hold a backend
|
|
24
|
+
object or cross a memory boundary yourself.
|
|
23
25
|
|
|
24
26
|
## Installation
|
|
25
27
|
|
|
@@ -32,7 +34,7 @@ npm install @quillmark/wasm
|
|
|
32
34
|
```ts
|
|
33
35
|
import { init, Engine } from "@quillmark/wasm";
|
|
34
36
|
|
|
35
|
-
const { Quill
|
|
37
|
+
const { Quill } = await init(); // see Initialization
|
|
36
38
|
|
|
37
39
|
const quill = Quill.fromTree(tree); // no engine needed: build + validate
|
|
38
40
|
const engine = new Engine(); // loads a backend lazily on first render
|
|
@@ -45,8 +47,8 @@ title: My Document
|
|
|
45
47
|
|
|
46
48
|
# Hello`;
|
|
47
49
|
|
|
48
|
-
const
|
|
49
|
-
const result = await engine.render(quill,
|
|
50
|
+
const doc = quill.parse(markdown);
|
|
51
|
+
const result = await engine.render(quill, doc, { format: "pdf" });
|
|
50
52
|
```
|
|
51
53
|
|
|
52
54
|
## Initialization
|
|
@@ -102,8 +104,9 @@ A load failure surfaces as `runtime::init_failed`, whose hint names that line.
|
|
|
102
104
|
|
|
103
105
|
### `new Engine(options?)`
|
|
104
106
|
Create the render dispatcher. Routes each quill to its backend by
|
|
105
|
-
`quill.backendId`, lazily loads that backend binary, and renders
|
|
106
|
-
|
|
107
|
+
`quill.backendId`, lazily loads that backend binary, and renders against
|
|
108
|
+
clones in the backend's memory, freeing the document clone after each call and
|
|
109
|
+
caching the quill clone for as long as that `Quill` lives.
|
|
107
110
|
`render`, `open`, `load`, and `supportedFormats` are **async** (the first call
|
|
108
111
|
may load a backend). Pass `{ backends }` to register or override backend descriptors.
|
|
109
112
|
Each entry is a descriptor (`{ [backendId]: { load, formats } }`) where `load`
|
|
@@ -179,7 +182,7 @@ const doc = Document.storageVersionOf(content)
|
|
|
179
182
|
: Document.fromMarkdown(content);
|
|
180
183
|
```
|
|
181
184
|
|
|
182
|
-
The `schema` value (`quillmark/document@0.
|
|
185
|
+
The `schema` value (`quillmark/document@0.129.0`) is the **model version**,
|
|
183
186
|
not the running crate version. It is a hand-set constant, bumped only when
|
|
184
187
|
the `Document` model itself changes, so every `0.124.x` patch release reads
|
|
185
188
|
and writes that same value.
|
package/THIRD_PARTY_LICENSES.md
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
# Third-party licenses
|
|
2
2
|
|
|
3
3
|
The crates the workspace links, Quillmark's own included, grouped by license;
|
|
4
|
-
then the notices those crates carry and the
|
|
5
|
-
faces. Generated by `scripts/third-party-licenses.sh`; do
|
|
4
|
+
then the notices those crates carry and the licenses of the embedded Roboto
|
|
5
|
+
and Noto Sans Math faces. Generated by `scripts/third-party-licenses.sh`; do
|
|
6
|
+
not edit.
|
|
6
7
|
|
|
7
8
|
## BSD Zero Clause License
|
|
8
9
|
|
|
@@ -2152,14 +2153,14 @@ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH RE
|
|
|
2152
2153
|
|
|
2153
2154
|
## Apache License 2.0
|
|
2154
2155
|
|
|
2155
|
-
- quillmark-acroform 0.
|
|
2156
|
-
- quillmark-typst 0.
|
|
2157
|
-
- quillmark-cli 0.
|
|
2158
|
-
- quillmark-python 0.
|
|
2159
|
-
- quillmark-content 0.
|
|
2160
|
-
- quillmark-core 0.
|
|
2161
|
-
- quillmark 0.
|
|
2162
|
-
- quillmark-pdf 0.
|
|
2156
|
+
- quillmark-acroform 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2157
|
+
- quillmark-typst 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2158
|
+
- quillmark-cli 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2159
|
+
- quillmark-python 0.129.0
|
|
2160
|
+
- quillmark-content 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2161
|
+
- quillmark-core 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2162
|
+
- quillmark 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2163
|
+
- quillmark-pdf 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
2163
2164
|
- ciborium-io 0.2.2 (https://github.com/enarx/ciborium)
|
|
2164
2165
|
- ciborium-ll 0.2.2 (https://github.com/enarx/ciborium)
|
|
2165
2166
|
- ciborium 0.2.2 (https://github.com/enarx/ciborium)
|
|
@@ -6246,8 +6247,8 @@ limitations under the License.
|
|
|
6246
6247
|
|
|
6247
6248
|
## Apache License 2.0
|
|
6248
6249
|
|
|
6249
|
-
- quillmark-wasm 0.
|
|
6250
|
-
- quillmark-fixtures 0.
|
|
6250
|
+
- quillmark-wasm 0.129.0 (https://github.com/borb-sh/quillmark)
|
|
6251
|
+
- quillmark-fixtures 0.129.0
|
|
6251
6252
|
- arraydeque 0.5.1 (https://github.com/andylokandy/arraydeque)
|
|
6252
6253
|
- codex 0.3.0 (https://github.com/typst/codex)
|
|
6253
6254
|
- color 0.3.3 (https://github.com/linebender/color)
|
|
@@ -10540,6 +10541,104 @@ This license is copied below, and is also available with a FAQ at:
|
|
|
10540
10541
|
https://openfontlicense.org
|
|
10541
10542
|
|
|
10542
10543
|
|
|
10544
|
+
-----------------------------------------------------------
|
|
10545
|
+
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10546
|
+
-----------------------------------------------------------
|
|
10547
|
+
|
|
10548
|
+
PREAMBLE
|
|
10549
|
+
The goals of the Open Font License (OFL) are to stimulate worldwide
|
|
10550
|
+
development of collaborative font projects, to support the font creation
|
|
10551
|
+
efforts of academic and linguistic communities, and to provide a free and
|
|
10552
|
+
open framework in which fonts may be shared and improved in partnership
|
|
10553
|
+
with others.
|
|
10554
|
+
|
|
10555
|
+
The OFL allows the licensed fonts to be used, studied, modified and
|
|
10556
|
+
redistributed freely as long as they are not sold by themselves. The
|
|
10557
|
+
fonts, including any derivative works, can be bundled, embedded,
|
|
10558
|
+
redistributed and/or sold with any software provided that any reserved
|
|
10559
|
+
names are not used by derivative works. The fonts and derivatives,
|
|
10560
|
+
however, cannot be released under any other type of license. The
|
|
10561
|
+
requirement for fonts to remain under this license does not apply
|
|
10562
|
+
to any document created using the fonts or their derivatives.
|
|
10563
|
+
|
|
10564
|
+
DEFINITIONS
|
|
10565
|
+
"Font Software" refers to the set of files released by the Copyright
|
|
10566
|
+
Holder(s) under this license and clearly marked as such. This may
|
|
10567
|
+
include source files, build scripts and documentation.
|
|
10568
|
+
|
|
10569
|
+
"Reserved Font Name" refers to any names specified as such after the
|
|
10570
|
+
copyright statement(s).
|
|
10571
|
+
|
|
10572
|
+
"Original Version" refers to the collection of Font Software components as
|
|
10573
|
+
distributed by the Copyright Holder(s).
|
|
10574
|
+
|
|
10575
|
+
"Modified Version" refers to any derivative made by adding to, deleting,
|
|
10576
|
+
or substituting -- in part or in whole -- any of the components of the
|
|
10577
|
+
Original Version, by changing formats or by porting the Font Software to a
|
|
10578
|
+
new environment.
|
|
10579
|
+
|
|
10580
|
+
"Author" refers to any designer, engineer, programmer, technical
|
|
10581
|
+
writer or other person who contributed to the Font Software.
|
|
10582
|
+
|
|
10583
|
+
PERMISSION & CONDITIONS
|
|
10584
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
10585
|
+
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
|
10586
|
+
redistribute, and sell modified and unmodified copies of the Font
|
|
10587
|
+
Software, subject to the following conditions:
|
|
10588
|
+
|
|
10589
|
+
1) Neither the Font Software nor any of its individual components,
|
|
10590
|
+
in Original or Modified Versions, may be sold by itself.
|
|
10591
|
+
|
|
10592
|
+
2) Original or Modified Versions of the Font Software may be bundled,
|
|
10593
|
+
redistributed and/or sold with any software, provided that each copy
|
|
10594
|
+
contains the above copyright notice and this license. These can be
|
|
10595
|
+
included either as stand-alone text files, human-readable headers or
|
|
10596
|
+
in the appropriate machine-readable metadata fields within text or
|
|
10597
|
+
binary files as long as those fields can be easily viewed by the user.
|
|
10598
|
+
|
|
10599
|
+
3) No Modified Version of the Font Software may use the Reserved Font
|
|
10600
|
+
Name(s) unless explicit written permission is granted by the corresponding
|
|
10601
|
+
Copyright Holder. This restriction only applies to the primary font name as
|
|
10602
|
+
presented to the users.
|
|
10603
|
+
|
|
10604
|
+
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
|
10605
|
+
Software shall not be used to promote, endorse or advertise any
|
|
10606
|
+
Modified Version, except to acknowledge the contribution(s) of the
|
|
10607
|
+
Copyright Holder(s) and the Author(s) or with their explicit written
|
|
10608
|
+
permission.
|
|
10609
|
+
|
|
10610
|
+
5) The Font Software, modified or unmodified, in part or in whole,
|
|
10611
|
+
must be distributed entirely under this license, and must not be
|
|
10612
|
+
distributed under any other license. The requirement for fonts to
|
|
10613
|
+
remain under this license does not apply to any document created
|
|
10614
|
+
using the Font Software.
|
|
10615
|
+
|
|
10616
|
+
TERMINATION
|
|
10617
|
+
This license becomes null and void if any of the above conditions are
|
|
10618
|
+
not met.
|
|
10619
|
+
|
|
10620
|
+
DISCLAIMER
|
|
10621
|
+
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
|
10622
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
|
10623
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
|
10624
|
+
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
|
10625
|
+
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
|
10626
|
+
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
|
10627
|
+
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
|
10628
|
+
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
|
10629
|
+
OTHER DEALINGS IN THE FONT SOFTWARE.
|
|
10630
|
+
~~~~
|
|
10631
|
+
|
|
10632
|
+
## Noto Sans Math (embedded by quillmark-typst)
|
|
10633
|
+
|
|
10634
|
+
~~~~text
|
|
10635
|
+
Copyright 2022 The Noto Project Authors (https://github.com/notofonts/math)
|
|
10636
|
+
|
|
10637
|
+
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
|
10638
|
+
This license is copied below, and is also available with a FAQ at:
|
|
10639
|
+
https://openfontlicense.org
|
|
10640
|
+
|
|
10641
|
+
|
|
10543
10642
|
-----------------------------------------------------------
|
|
10544
10643
|
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
|
10545
10644
|
-----------------------------------------------------------
|
package/core/wasm.d.ts
CHANGED
|
@@ -80,7 +80,8 @@ export type ContentLineKind =
|
|
|
80
80
|
| { kind: "para" }
|
|
81
81
|
| { kind: "heading"; attrs: { level: number } }
|
|
82
82
|
| { kind: "code"; attrs?: { lang?: string } }
|
|
83
|
-
| { kind: "rule" }
|
|
83
|
+
| { kind: "rule" }
|
|
84
|
+
| { kind: "term" };
|
|
84
85
|
|
|
85
86
|
/** An ancestor block a line nests inside, outermost first. Closed like
|
|
86
87
|
* `ContentLine.kind`.
|
|
@@ -110,6 +111,7 @@ export type ContentContainer =
|
|
|
110
111
|
instance?: number;
|
|
111
112
|
}
|
|
112
113
|
| { container: "quote"; instance?: number }
|
|
114
|
+
| { container: "description"; instance?: number }
|
|
113
115
|
| { container: "element"; attrs: ElementAttrs; instance?: number };
|
|
114
116
|
|
|
115
117
|
/** A carrier element's name and attributes, one bag: `$name` is the part of
|
|
@@ -171,6 +173,19 @@ export interface ImageProps {
|
|
|
171
173
|
alt: string;
|
|
172
174
|
}
|
|
173
175
|
|
|
176
|
+
/** `props` of a `type: "footnote"` island: the note, shaped as one `TableCell`
|
|
177
|
+
* with no `\n` at either edge. The island's slot is the reference, inline in
|
|
178
|
+
* its paragraph. */
|
|
179
|
+
export type FootnoteProps = TableCell;
|
|
180
|
+
|
|
181
|
+
/** `props` of a `type: "math"` island: the equation's TeX, as written between
|
|
182
|
+
* its dollars, on one line with no edge whitespace. `display` is present and
|
|
183
|
+
* `true` on a `$$…$$` equation. */
|
|
184
|
+
export interface MathProps {
|
|
185
|
+
tex: string;
|
|
186
|
+
display?: true;
|
|
187
|
+
}
|
|
188
|
+
|
|
174
189
|
/** A structured object occupying one island slot in `Content.text`. `type` is a
|
|
175
190
|
* closed set, so `type === "table"` narrows `props` to `TableProps`. */
|
|
176
191
|
export type ContentIsland = {
|
|
@@ -178,6 +193,8 @@ export type ContentIsland = {
|
|
|
178
193
|
} & (
|
|
179
194
|
| { type: "table"; props: TableProps }
|
|
180
195
|
| { type: "image"; props: ImageProps }
|
|
196
|
+
| { type: "footnote"; props: FootnoteProps }
|
|
197
|
+
| { type: "math"; props: MathProps }
|
|
181
198
|
);
|
|
182
199
|
|
|
183
200
|
/**
|
|
@@ -568,7 +585,7 @@ export interface QuillSchema {
|
|
|
568
585
|
/**
|
|
569
586
|
* Identity snapshot mirroring the `quill:` section of `Quill.yaml`. The schema
|
|
570
587
|
* lives on `Quill.schema`; output formats are a resolved-backend capability read
|
|
571
|
-
* from `
|
|
588
|
+
* from `Engine.supportedFormats`, not part of this config snapshot.
|
|
572
589
|
*/
|
|
573
590
|
export interface QuillMetadata {
|
|
574
591
|
name: string;
|
|
@@ -981,7 +998,7 @@ export class Quill {
|
|
|
981
998
|
toTree(): Map<string, Uint8Array>;
|
|
982
999
|
/**
|
|
983
1000
|
* Validate `doc` against this quill's schema, returning every diagnostic:
|
|
984
|
-
* an error blocks a render, a warning does not.
|
|
1001
|
+
* an error blocks a render, a warning does not. Returns the schema's
|
|
985
1002
|
* `validation::*`, a markdown string's `parse::dropped_construct` and the
|
|
986
1003
|
* backend's `backend::declined_construct`.
|
|
987
1004
|
*/
|
|
@@ -995,7 +1012,7 @@ export class Quill {
|
|
|
995
1012
|
/**
|
|
996
1013
|
* Identity snapshot of the `quill:` section of `Quill.yaml`. Pure config:
|
|
997
1014
|
* output formats are a resolved-backend capability read from
|
|
998
|
-
* `
|
|
1015
|
+
* `Engine.supportedFormats`, not part of this.
|
|
999
1016
|
*/
|
|
1000
1017
|
readonly metadata: QuillMetadata;
|
|
1001
1018
|
/**
|
|
@@ -1021,8 +1038,8 @@ export function exportMarkdown(rt: Content): string;
|
|
|
1021
1038
|
/**
|
|
1022
1039
|
* Render a diagnostic as the CLI and Python's `str(diagnostic)` render it:
|
|
1023
1040
|
* the severity tag and the message, the code parenthesised after them, then
|
|
1024
|
-
* location, path and hint each on an indented line of its own.
|
|
1025
|
-
*
|
|
1041
|
+
* location, path and hint each on an indented line of its own. Core owns the
|
|
1042
|
+
* one printer, `fmt_pretty`, so a consumer surfacing diagnostics reads it here
|
|
1026
1043
|
* rather than keeping a copy of the layout that drifts from the CLI's.
|
|
1027
1044
|
*
|
|
1028
1045
|
* Takes the `Diagnostic` shape every read hands back. Throws on a value that
|
package/core/wasm.js
CHANGED
|
@@ -1211,7 +1211,7 @@ export class Quill {
|
|
|
1211
1211
|
* `FieldSource` rung it came from (`"authored" | "default" | "blank"`). The
|
|
1212
1212
|
* card body is a `body` sibling on its card, never a row in `fields`, and
|
|
1213
1213
|
* `null` when the kind enables no body. Value and provenance only;
|
|
1214
|
-
* diagnostics stay `validate`'s. `today` reads as on `
|
|
1214
|
+
* diagnostics stay `validate`'s. `today` reads as on `Engine.open`.
|
|
1215
1215
|
* @param {Document} doc
|
|
1216
1216
|
* @param {string | null} [today]
|
|
1217
1217
|
* @returns {Resolved}
|
|
@@ -1364,7 +1364,7 @@ export class Quill {
|
|
|
1364
1364
|
/**
|
|
1365
1365
|
* Identity snapshot of the `quill:` section of `Quill.yaml`. Pure config:
|
|
1366
1366
|
* output formats are a resolved-backend capability read from
|
|
1367
|
-
* `
|
|
1367
|
+
* `Engine.supportedFormats`, not part of this.
|
|
1368
1368
|
* @returns {QuillMetadata}
|
|
1369
1369
|
*/
|
|
1370
1370
|
get metadata() {
|
|
@@ -1511,7 +1511,7 @@ export class Quill {
|
|
|
1511
1511
|
}
|
|
1512
1512
|
/**
|
|
1513
1513
|
* Validate `doc` against this quill's schema, returning every diagnostic:
|
|
1514
|
-
* an error blocks a render, a warning does not.
|
|
1514
|
+
* an error blocks a render, a warning does not. Returns the schema's
|
|
1515
1515
|
* `validation::*`, a markdown string's `parse::dropped_construct` and the
|
|
1516
1516
|
* backend's `backend::declined_construct`.
|
|
1517
1517
|
* @param {Document} doc
|
|
@@ -1591,8 +1591,8 @@ export function exportMarkdown(rt) {
|
|
|
1591
1591
|
/**
|
|
1592
1592
|
* Render a diagnostic as the CLI and Python's `str(diagnostic)` render it:
|
|
1593
1593
|
* the severity tag and the message, the code parenthesised after them, then
|
|
1594
|
-
* location, path and hint each on an indented line of its own.
|
|
1595
|
-
*
|
|
1594
|
+
* location, path and hint each on an indented line of its own. Core owns the
|
|
1595
|
+
* one printer, `fmt_pretty`, so a consumer surfacing diagnostics reads it here
|
|
1596
1596
|
* rather than keeping a copy of the layout that drifts from the CLI's.
|
|
1597
1597
|
*
|
|
1598
1598
|
* Takes the `Diagnostic` shape every read hands back. Throws on a value that
|
package/core/wasm_bg.wasm
CHANGED
|
Binary file
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quillmark/wasm",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "WebAssembly bindings for Quillmark, a schema-driven document
|
|
3
|
+
"version": "0.129.0",
|
|
4
|
+
"description": "WebAssembly bindings for Quillmark, a schema-driven document framework",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"author": "Quillmark Contributors",
|
|
@@ -17,6 +17,7 @@
|
|
|
17
17
|
"template",
|
|
18
18
|
"schema",
|
|
19
19
|
"forms",
|
|
20
|
+
"framework",
|
|
20
21
|
"wasm"
|
|
21
22
|
],
|
|
22
23
|
"engines": {
|
package/render/wasm.d.ts
CHANGED
|
@@ -80,7 +80,8 @@ export type ContentLineKind =
|
|
|
80
80
|
| { kind: "para" }
|
|
81
81
|
| { kind: "heading"; attrs: { level: number } }
|
|
82
82
|
| { kind: "code"; attrs?: { lang?: string } }
|
|
83
|
-
| { kind: "rule" }
|
|
83
|
+
| { kind: "rule" }
|
|
84
|
+
| { kind: "term" };
|
|
84
85
|
|
|
85
86
|
/** An ancestor block a line nests inside, outermost first. Closed like
|
|
86
87
|
* `ContentLine.kind`.
|
|
@@ -110,6 +111,7 @@ export type ContentContainer =
|
|
|
110
111
|
instance?: number;
|
|
111
112
|
}
|
|
112
113
|
| { container: "quote"; instance?: number }
|
|
114
|
+
| { container: "description"; instance?: number }
|
|
113
115
|
| { container: "element"; attrs: ElementAttrs; instance?: number };
|
|
114
116
|
|
|
115
117
|
/** A carrier element's name and attributes, one bag: `$name` is the part of
|
|
@@ -171,6 +173,19 @@ export interface ImageProps {
|
|
|
171
173
|
alt: string;
|
|
172
174
|
}
|
|
173
175
|
|
|
176
|
+
/** `props` of a `type: "footnote"` island: the note, shaped as one `TableCell`
|
|
177
|
+
* with no `\n` at either edge. The island's slot is the reference, inline in
|
|
178
|
+
* its paragraph. */
|
|
179
|
+
export type FootnoteProps = TableCell;
|
|
180
|
+
|
|
181
|
+
/** `props` of a `type: "math"` island: the equation's TeX, as written between
|
|
182
|
+
* its dollars, on one line with no edge whitespace. `display` is present and
|
|
183
|
+
* `true` on a `$$…$$` equation. */
|
|
184
|
+
export interface MathProps {
|
|
185
|
+
tex: string;
|
|
186
|
+
display?: true;
|
|
187
|
+
}
|
|
188
|
+
|
|
174
189
|
/** A structured object occupying one island slot in `Content.text`. `type` is a
|
|
175
190
|
* closed set, so `type === "table"` narrows `props` to `TableProps`. */
|
|
176
191
|
export type ContentIsland = {
|
|
@@ -178,6 +193,8 @@ export type ContentIsland = {
|
|
|
178
193
|
} & (
|
|
179
194
|
| { type: "table"; props: TableProps }
|
|
180
195
|
| { type: "image"; props: ImageProps }
|
|
196
|
+
| { type: "footnote"; props: FootnoteProps }
|
|
197
|
+
| { type: "math"; props: MathProps }
|
|
181
198
|
);
|
|
182
199
|
|
|
183
200
|
/**
|
|
@@ -579,7 +596,7 @@ export interface QuillSchema {
|
|
|
579
596
|
/**
|
|
580
597
|
* Identity snapshot mirroring the `quill:` section of `Quill.yaml`. The schema
|
|
581
598
|
* lives on `Quill.schema`; output formats are a resolved-backend capability read
|
|
582
|
-
* from `
|
|
599
|
+
* from `Engine.supportedFormats`, not part of this config snapshot.
|
|
583
600
|
*/
|
|
584
601
|
export interface QuillMetadata {
|
|
585
602
|
name: string;
|
|
@@ -1032,6 +1049,35 @@ export class Document {
|
|
|
1032
1049
|
readonly warnings: Diagnostic[];
|
|
1033
1050
|
}
|
|
1034
1051
|
|
|
1052
|
+
/**
|
|
1053
|
+
* `Engine`: a backend registry and render dispatcher. Render build only:
|
|
1054
|
+
* the core build constructs and validates quills without it.
|
|
1055
|
+
*/
|
|
1056
|
+
export class Engine {
|
|
1057
|
+
free(): void;
|
|
1058
|
+
[Symbol.dispose](): void;
|
|
1059
|
+
constructor();
|
|
1060
|
+
/**
|
|
1061
|
+
* Open a live render session for `doc` against `quill`'s backend, on the
|
|
1062
|
+
* render date `today` (`YYYY-MM-DD`, default the local date).
|
|
1063
|
+
*/
|
|
1064
|
+
open(quill: Quill, doc: Document, today?: string | null): LiveSession;
|
|
1065
|
+
/**
|
|
1066
|
+
* Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
|
|
1067
|
+
* with every `quill.validate` warning in `warnings`, a decline among the
|
|
1068
|
+
* compile's and the rest ahead of them; the load's stay on `doc.warnings`.
|
|
1069
|
+
* An unset `output_format` falls back to the backend's first supported
|
|
1070
|
+
* format. `today` reads as on `open`.
|
|
1071
|
+
*/
|
|
1072
|
+
render(quill: Quill, doc: Document, opts?: RenderOptions | null, today?: string | null): RenderResult;
|
|
1073
|
+
/**
|
|
1074
|
+
* The output formats `quill`'s backend can emit; resolves the backend but
|
|
1075
|
+
* compiles nothing. Throws `engine::backend_not_found` when no registered
|
|
1076
|
+
* backend matches the quill's declared one.
|
|
1077
|
+
*/
|
|
1078
|
+
supportedFormats(quill: Quill): OutputFormat[];
|
|
1079
|
+
}
|
|
1080
|
+
|
|
1035
1081
|
/**
|
|
1036
1082
|
* Live render session: every read serves the current compile. `update(doc)`
|
|
1037
1083
|
* recompiles a whole document in place, transactionally — on throw the reads
|
|
@@ -1240,7 +1286,7 @@ export class Quill {
|
|
|
1240
1286
|
toTree(): Map<string, Uint8Array>;
|
|
1241
1287
|
/**
|
|
1242
1288
|
* Validate `doc` against this quill's schema, returning every diagnostic:
|
|
1243
|
-
* an error blocks a render, a warning does not.
|
|
1289
|
+
* an error blocks a render, a warning does not. Returns the schema's
|
|
1244
1290
|
* `validation::*`, a markdown string's `parse::dropped_construct` and the
|
|
1245
1291
|
* backend's `backend::declined_construct`.
|
|
1246
1292
|
*/
|
|
@@ -1254,7 +1300,7 @@ export class Quill {
|
|
|
1254
1300
|
/**
|
|
1255
1301
|
* Identity snapshot of the `quill:` section of `Quill.yaml`. Pure config:
|
|
1256
1302
|
* output formats are a resolved-backend capability read from
|
|
1257
|
-
* `
|
|
1303
|
+
* `Engine.supportedFormats`, not part of this.
|
|
1258
1304
|
*/
|
|
1259
1305
|
readonly metadata: QuillMetadata;
|
|
1260
1306
|
/**
|
|
@@ -1271,35 +1317,6 @@ export class Quill {
|
|
|
1271
1317
|
readonly warnings: Diagnostic[];
|
|
1272
1318
|
}
|
|
1273
1319
|
|
|
1274
|
-
/**
|
|
1275
|
-
* Render engine: a backend registry and render dispatcher. Render build only:
|
|
1276
|
-
* the core build constructs and validates quills without it.
|
|
1277
|
-
*/
|
|
1278
|
-
export class Quillmark {
|
|
1279
|
-
free(): void;
|
|
1280
|
-
[Symbol.dispose](): void;
|
|
1281
|
-
constructor();
|
|
1282
|
-
/**
|
|
1283
|
-
* Open a live render session for `doc` against `quill`'s backend, on the
|
|
1284
|
-
* render date `today` (`YYYY-MM-DD`, default the local date).
|
|
1285
|
-
*/
|
|
1286
|
-
open(quill: Quill, doc: Document, today?: string | null): LiveSession;
|
|
1287
|
-
/**
|
|
1288
|
-
* Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
|
|
1289
|
-
* with every `quill.validate` warning in `warnings`, a decline among the
|
|
1290
|
-
* compile's and the rest ahead of them; the load's stay on `doc.warnings`.
|
|
1291
|
-
* An unset `output_format` falls back to the backend's first supported
|
|
1292
|
-
* format. `today` reads as on `open`.
|
|
1293
|
-
*/
|
|
1294
|
-
render(quill: Quill, doc: Document, opts?: RenderOptions | null, today?: string | null): RenderResult;
|
|
1295
|
-
/**
|
|
1296
|
-
* The output formats `quill`'s backend can emit; resolves the backend but
|
|
1297
|
-
* compiles nothing. Throws `engine::backend_not_found` when no registered
|
|
1298
|
-
* backend matches the quill's declared one.
|
|
1299
|
-
*/
|
|
1300
|
-
supportedFormats(quill: Quill): OutputFormat[];
|
|
1301
|
-
}
|
|
1302
|
-
|
|
1303
1320
|
/**
|
|
1304
1321
|
* Export canonical `Content` to its markdown projection. Throws if `rt` is not
|
|
1305
1322
|
* canonical content.
|
|
@@ -1309,8 +1326,8 @@ export function exportMarkdown(rt: Content): string;
|
|
|
1309
1326
|
/**
|
|
1310
1327
|
* Render a diagnostic as the CLI and Python's `str(diagnostic)` render it:
|
|
1311
1328
|
* the severity tag and the message, the code parenthesised after them, then
|
|
1312
|
-
* location, path and hint each on an indented line of its own.
|
|
1313
|
-
*
|
|
1329
|
+
* location, path and hint each on an indented line of its own. Core owns the
|
|
1330
|
+
* one printer, `fmt_pretty`, so a consumer surfacing diagnostics reads it here
|
|
1314
1331
|
* rather than keeping a copy of the layout that drifts from the CLI's.
|
|
1315
1332
|
*
|
|
1316
1333
|
* Takes the `Diagnostic` shape every read hands back. Throws on a value that
|
|
@@ -1408,9 +1425,9 @@ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembl
|
|
|
1408
1425
|
export interface InitOutput {
|
|
1409
1426
|
readonly memory: WebAssembly.Memory;
|
|
1410
1427
|
readonly __wbg_document_free: (a: number, b: number) => void;
|
|
1428
|
+
readonly __wbg_engine_free: (a: number, b: number) => void;
|
|
1411
1429
|
readonly __wbg_livesession_free: (a: number, b: number) => void;
|
|
1412
1430
|
readonly __wbg_quill_free: (a: number, b: number) => void;
|
|
1413
|
-
readonly __wbg_quillmark_free: (a: number, b: number) => void;
|
|
1414
1431
|
readonly document__addCard: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
1415
1432
|
readonly document__commitField: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
1416
1433
|
readonly document__commitFields: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
@@ -1458,6 +1475,10 @@ export interface InitOutput {
|
|
|
1458
1475
|
readonly document_toMarkdown: (a: number, b: number) => void;
|
|
1459
1476
|
readonly document_toStored: (a: number, b: number) => void;
|
|
1460
1477
|
readonly document_warnings: (a: number, b: number) => void;
|
|
1478
|
+
readonly engine_new: () => number;
|
|
1479
|
+
readonly engine_open: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
1480
|
+
readonly engine_render: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
1481
|
+
readonly engine_supportedFormats: (a: number, b: number, c: number) => void;
|
|
1461
1482
|
readonly exportMarkdown: (a: number, b: number) => void;
|
|
1462
1483
|
readonly formatDiagnostic: (a: number, b: number) => void;
|
|
1463
1484
|
readonly formatDocPath: (a: number, b: number) => void;
|
|
@@ -1496,10 +1517,6 @@ export interface InitOutput {
|
|
|
1496
1517
|
readonly quill_toTree: (a: number) => number;
|
|
1497
1518
|
readonly quill_validate: (a: number, b: number, c: number) => void;
|
|
1498
1519
|
readonly quill_warnings: (a: number, b: number) => void;
|
|
1499
|
-
readonly quillmark_new: () => number;
|
|
1500
|
-
readonly quillmark_open: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
1501
|
-
readonly quillmark_render: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
1502
|
-
readonly quillmark_supportedFormats: (a: number, b: number, c: number) => void;
|
|
1503
1520
|
readonly rebase: (a: number, b: number, c: number, d: number) => void;
|
|
1504
1521
|
readonly start: () => void;
|
|
1505
1522
|
readonly __wbindgen_export: (a: number, b: number) => number;
|
package/render/wasm.js
CHANGED
|
@@ -1188,6 +1188,111 @@ export class Document {
|
|
|
1188
1188
|
}
|
|
1189
1189
|
if (Symbol.dispose) Document.prototype[Symbol.dispose] = Document.prototype.free;
|
|
1190
1190
|
|
|
1191
|
+
/**
|
|
1192
|
+
* `Engine`: a backend registry and render dispatcher. Render build only:
|
|
1193
|
+
* the core build constructs and validates quills without it.
|
|
1194
|
+
*/
|
|
1195
|
+
export class Engine {
|
|
1196
|
+
__destroy_into_raw() {
|
|
1197
|
+
const ptr = this.__wbg_ptr;
|
|
1198
|
+
this.__wbg_ptr = 0;
|
|
1199
|
+
EngineFinalization.unregister(this);
|
|
1200
|
+
return ptr;
|
|
1201
|
+
}
|
|
1202
|
+
free() {
|
|
1203
|
+
const ptr = this.__destroy_into_raw();
|
|
1204
|
+
wasm.__wbg_engine_free(ptr, 0);
|
|
1205
|
+
}
|
|
1206
|
+
constructor() {
|
|
1207
|
+
const ret = wasm.engine_new();
|
|
1208
|
+
this.__wbg_ptr = ret;
|
|
1209
|
+
EngineFinalization.register(this, this.__wbg_ptr, this);
|
|
1210
|
+
return this;
|
|
1211
|
+
}
|
|
1212
|
+
/**
|
|
1213
|
+
* Open a live render session for `doc` against `quill`'s backend, on the
|
|
1214
|
+
* render date `today` (`YYYY-MM-DD`, default the local date).
|
|
1215
|
+
* @param {Quill} quill
|
|
1216
|
+
* @param {Document} doc
|
|
1217
|
+
* @param {string | null} [today]
|
|
1218
|
+
* @returns {LiveSession}
|
|
1219
|
+
*/
|
|
1220
|
+
open(quill, doc, today) {
|
|
1221
|
+
try {
|
|
1222
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1223
|
+
_assertClass(quill, Quill);
|
|
1224
|
+
_assertClass(doc, Document);
|
|
1225
|
+
var ptr0 = isLikeNone(today) ? 0 : passStringToWasm0(today, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1226
|
+
var len0 = WASM_VECTOR_LEN;
|
|
1227
|
+
wasm.engine_open(retptr, this.__wbg_ptr, quill.__wbg_ptr, doc.__wbg_ptr, ptr0, len0);
|
|
1228
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1229
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1230
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1231
|
+
if (r2) {
|
|
1232
|
+
throw takeObject(r1);
|
|
1233
|
+
}
|
|
1234
|
+
return LiveSession.__wrap(r0);
|
|
1235
|
+
} finally {
|
|
1236
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
/**
|
|
1240
|
+
* Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
|
|
1241
|
+
* with every `quill.validate` warning in `warnings`, a decline among the
|
|
1242
|
+
* compile's and the rest ahead of them; the load's stay on `doc.warnings`.
|
|
1243
|
+
* An unset `output_format` falls back to the backend's first supported
|
|
1244
|
+
* format. `today` reads as on `open`.
|
|
1245
|
+
* @param {Quill} quill
|
|
1246
|
+
* @param {Document} doc
|
|
1247
|
+
* @param {RenderOptions | null} [opts]
|
|
1248
|
+
* @param {string | null} [today]
|
|
1249
|
+
* @returns {RenderResult}
|
|
1250
|
+
*/
|
|
1251
|
+
render(quill, doc, opts, today) {
|
|
1252
|
+
try {
|
|
1253
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1254
|
+
_assertClass(quill, Quill);
|
|
1255
|
+
_assertClass(doc, Document);
|
|
1256
|
+
var ptr0 = isLikeNone(today) ? 0 : passStringToWasm0(today, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1257
|
+
var len0 = WASM_VECTOR_LEN;
|
|
1258
|
+
wasm.engine_render(retptr, this.__wbg_ptr, quill.__wbg_ptr, doc.__wbg_ptr, isLikeNone(opts) ? 0 : addHeapObject(opts), ptr0, len0);
|
|
1259
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1260
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1261
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1262
|
+
if (r2) {
|
|
1263
|
+
throw takeObject(r1);
|
|
1264
|
+
}
|
|
1265
|
+
return takeObject(r0);
|
|
1266
|
+
} finally {
|
|
1267
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1268
|
+
}
|
|
1269
|
+
}
|
|
1270
|
+
/**
|
|
1271
|
+
* The output formats `quill`'s backend can emit; resolves the backend but
|
|
1272
|
+
* compiles nothing. Throws `engine::backend_not_found` when no registered
|
|
1273
|
+
* backend matches the quill's declared one.
|
|
1274
|
+
* @param {Quill} quill
|
|
1275
|
+
* @returns {OutputFormat[]}
|
|
1276
|
+
*/
|
|
1277
|
+
supportedFormats(quill) {
|
|
1278
|
+
try {
|
|
1279
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1280
|
+
_assertClass(quill, Quill);
|
|
1281
|
+
wasm.engine_supportedFormats(retptr, this.__wbg_ptr, quill.__wbg_ptr);
|
|
1282
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1283
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1284
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1285
|
+
if (r2) {
|
|
1286
|
+
throw takeObject(r1);
|
|
1287
|
+
}
|
|
1288
|
+
return takeObject(r0);
|
|
1289
|
+
} finally {
|
|
1290
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1291
|
+
}
|
|
1292
|
+
}
|
|
1293
|
+
}
|
|
1294
|
+
if (Symbol.dispose) Engine.prototype[Symbol.dispose] = Engine.prototype.free;
|
|
1295
|
+
|
|
1191
1296
|
/**
|
|
1192
1297
|
* Live render session: every read serves the current compile. `update(doc)`
|
|
1193
1298
|
* recompiles a whole document in place, transactionally — on throw the reads
|
|
@@ -1555,7 +1660,7 @@ export class Quill {
|
|
|
1555
1660
|
* `FieldSource` rung it came from (`"authored" | "default" | "blank"`). The
|
|
1556
1661
|
* card body is a `body` sibling on its card, never a row in `fields`, and
|
|
1557
1662
|
* `null` when the kind enables no body. Value and provenance only;
|
|
1558
|
-
* diagnostics stay `validate`'s. `today` reads as on `
|
|
1663
|
+
* diagnostics stay `validate`'s. `today` reads as on `Engine.open`.
|
|
1559
1664
|
* @param {Document} doc
|
|
1560
1665
|
* @param {string | null} [today]
|
|
1561
1666
|
* @returns {Resolved}
|
|
@@ -1708,7 +1813,7 @@ export class Quill {
|
|
|
1708
1813
|
/**
|
|
1709
1814
|
* Identity snapshot of the `quill:` section of `Quill.yaml`. Pure config:
|
|
1710
1815
|
* output formats are a resolved-backend capability read from
|
|
1711
|
-
* `
|
|
1816
|
+
* `Engine.supportedFormats`, not part of this.
|
|
1712
1817
|
* @returns {QuillMetadata}
|
|
1713
1818
|
*/
|
|
1714
1819
|
get metadata() {
|
|
@@ -1855,7 +1960,7 @@ export class Quill {
|
|
|
1855
1960
|
}
|
|
1856
1961
|
/**
|
|
1857
1962
|
* Validate `doc` against this quill's schema, returning every diagnostic:
|
|
1858
|
-
* an error blocks a render, a warning does not.
|
|
1963
|
+
* an error blocks a render, a warning does not. Returns the schema's
|
|
1859
1964
|
* `validation::*`, a markdown string's `parse::dropped_construct` and the
|
|
1860
1965
|
* backend's `backend::declined_construct`.
|
|
1861
1966
|
* @param {Document} doc
|
|
@@ -1901,111 +2006,6 @@ export class Quill {
|
|
|
1901
2006
|
}
|
|
1902
2007
|
if (Symbol.dispose) Quill.prototype[Symbol.dispose] = Quill.prototype.free;
|
|
1903
2008
|
|
|
1904
|
-
/**
|
|
1905
|
-
* Render engine: a backend registry and render dispatcher. Render build only:
|
|
1906
|
-
* the core build constructs and validates quills without it.
|
|
1907
|
-
*/
|
|
1908
|
-
export class Quillmark {
|
|
1909
|
-
__destroy_into_raw() {
|
|
1910
|
-
const ptr = this.__wbg_ptr;
|
|
1911
|
-
this.__wbg_ptr = 0;
|
|
1912
|
-
QuillmarkFinalization.unregister(this);
|
|
1913
|
-
return ptr;
|
|
1914
|
-
}
|
|
1915
|
-
free() {
|
|
1916
|
-
const ptr = this.__destroy_into_raw();
|
|
1917
|
-
wasm.__wbg_quillmark_free(ptr, 0);
|
|
1918
|
-
}
|
|
1919
|
-
constructor() {
|
|
1920
|
-
const ret = wasm.quillmark_new();
|
|
1921
|
-
this.__wbg_ptr = ret;
|
|
1922
|
-
QuillmarkFinalization.register(this, this.__wbg_ptr, this);
|
|
1923
|
-
return this;
|
|
1924
|
-
}
|
|
1925
|
-
/**
|
|
1926
|
-
* Open a live render session for `doc` against `quill`'s backend, on the
|
|
1927
|
-
* render date `today` (`YYYY-MM-DD`, default the local date).
|
|
1928
|
-
* @param {Quill} quill
|
|
1929
|
-
* @param {Document} doc
|
|
1930
|
-
* @param {string | null} [today]
|
|
1931
|
-
* @returns {LiveSession}
|
|
1932
|
-
*/
|
|
1933
|
-
open(quill, doc, today) {
|
|
1934
|
-
try {
|
|
1935
|
-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1936
|
-
_assertClass(quill, Quill);
|
|
1937
|
-
_assertClass(doc, Document);
|
|
1938
|
-
var ptr0 = isLikeNone(today) ? 0 : passStringToWasm0(today, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1939
|
-
var len0 = WASM_VECTOR_LEN;
|
|
1940
|
-
wasm.quillmark_open(retptr, this.__wbg_ptr, quill.__wbg_ptr, doc.__wbg_ptr, ptr0, len0);
|
|
1941
|
-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1942
|
-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1943
|
-
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1944
|
-
if (r2) {
|
|
1945
|
-
throw takeObject(r1);
|
|
1946
|
-
}
|
|
1947
|
-
return LiveSession.__wrap(r0);
|
|
1948
|
-
} finally {
|
|
1949
|
-
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1950
|
-
}
|
|
1951
|
-
}
|
|
1952
|
-
/**
|
|
1953
|
-
* Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
|
|
1954
|
-
* with every `quill.validate` warning in `warnings`, a decline among the
|
|
1955
|
-
* compile's and the rest ahead of them; the load's stay on `doc.warnings`.
|
|
1956
|
-
* An unset `output_format` falls back to the backend's first supported
|
|
1957
|
-
* format. `today` reads as on `open`.
|
|
1958
|
-
* @param {Quill} quill
|
|
1959
|
-
* @param {Document} doc
|
|
1960
|
-
* @param {RenderOptions | null} [opts]
|
|
1961
|
-
* @param {string | null} [today]
|
|
1962
|
-
* @returns {RenderResult}
|
|
1963
|
-
*/
|
|
1964
|
-
render(quill, doc, opts, today) {
|
|
1965
|
-
try {
|
|
1966
|
-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1967
|
-
_assertClass(quill, Quill);
|
|
1968
|
-
_assertClass(doc, Document);
|
|
1969
|
-
var ptr0 = isLikeNone(today) ? 0 : passStringToWasm0(today, wasm.__wbindgen_export, wasm.__wbindgen_export2);
|
|
1970
|
-
var len0 = WASM_VECTOR_LEN;
|
|
1971
|
-
wasm.quillmark_render(retptr, this.__wbg_ptr, quill.__wbg_ptr, doc.__wbg_ptr, isLikeNone(opts) ? 0 : addHeapObject(opts), ptr0, len0);
|
|
1972
|
-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1973
|
-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1974
|
-
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1975
|
-
if (r2) {
|
|
1976
|
-
throw takeObject(r1);
|
|
1977
|
-
}
|
|
1978
|
-
return takeObject(r0);
|
|
1979
|
-
} finally {
|
|
1980
|
-
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1981
|
-
}
|
|
1982
|
-
}
|
|
1983
|
-
/**
|
|
1984
|
-
* The output formats `quill`'s backend can emit; resolves the backend but
|
|
1985
|
-
* compiles nothing. Throws `engine::backend_not_found` when no registered
|
|
1986
|
-
* backend matches the quill's declared one.
|
|
1987
|
-
* @param {Quill} quill
|
|
1988
|
-
* @returns {OutputFormat[]}
|
|
1989
|
-
*/
|
|
1990
|
-
supportedFormats(quill) {
|
|
1991
|
-
try {
|
|
1992
|
-
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1993
|
-
_assertClass(quill, Quill);
|
|
1994
|
-
wasm.quillmark_supportedFormats(retptr, this.__wbg_ptr, quill.__wbg_ptr);
|
|
1995
|
-
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1996
|
-
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1997
|
-
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1998
|
-
if (r2) {
|
|
1999
|
-
throw takeObject(r1);
|
|
2000
|
-
}
|
|
2001
|
-
return takeObject(r0);
|
|
2002
|
-
} finally {
|
|
2003
|
-
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
2004
|
-
}
|
|
2005
|
-
}
|
|
2006
|
-
}
|
|
2007
|
-
if (Symbol.dispose) Quillmark.prototype[Symbol.dispose] = Quillmark.prototype.free;
|
|
2008
|
-
|
|
2009
2009
|
/**
|
|
2010
2010
|
* Export canonical `Content` to its markdown projection. Throws if `rt` is not
|
|
2011
2011
|
* canonical content.
|
|
@@ -2040,8 +2040,8 @@ export function exportMarkdown(rt) {
|
|
|
2040
2040
|
/**
|
|
2041
2041
|
* Render a diagnostic as the CLI and Python's `str(diagnostic)` render it:
|
|
2042
2042
|
* the severity tag and the message, the code parenthesised after them, then
|
|
2043
|
-
* location, path and hint each on an indented line of its own.
|
|
2044
|
-
*
|
|
2043
|
+
* location, path and hint each on an indented line of its own. Core owns the
|
|
2044
|
+
* one printer, `fmt_pretty`, so a consumer surfacing diagnostics reads it here
|
|
2045
2045
|
* rather than keeping a copy of the layout that drifts from the CLI's.
|
|
2046
2046
|
*
|
|
2047
2047
|
* Takes the `Diagnostic` shape every read hands back. Throws on a value that
|
|
@@ -2696,15 +2696,15 @@ function __wbg_get_imports() {
|
|
|
2696
2696
|
const DocumentFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
2697
2697
|
? { register: () => {}, unregister: () => {} }
|
|
2698
2698
|
: new FinalizationRegistry(ptr => wasm.__wbg_document_free(ptr, 1));
|
|
2699
|
+
const EngineFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
2700
|
+
? { register: () => {}, unregister: () => {} }
|
|
2701
|
+
: new FinalizationRegistry(ptr => wasm.__wbg_engine_free(ptr, 1));
|
|
2699
2702
|
const LiveSessionFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
2700
2703
|
? { register: () => {}, unregister: () => {} }
|
|
2701
2704
|
: new FinalizationRegistry(ptr => wasm.__wbg_livesession_free(ptr, 1));
|
|
2702
2705
|
const QuillFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
2703
2706
|
? { register: () => {}, unregister: () => {} }
|
|
2704
2707
|
: new FinalizationRegistry(ptr => wasm.__wbg_quill_free(ptr, 1));
|
|
2705
|
-
const QuillmarkFinalization = (typeof FinalizationRegistry === 'undefined')
|
|
2706
|
-
? { register: () => {}, unregister: () => {} }
|
|
2707
|
-
: new FinalizationRegistry(ptr => wasm.__wbg_quillmark_free(ptr, 1));
|
|
2708
2708
|
|
|
2709
2709
|
function addHeapObject(obj) {
|
|
2710
2710
|
if (heap_next === heap.length) heap.push(heap.length + 1);
|
package/render/wasm_bg.wasm
CHANGED
|
Binary file
|
package/render/wasm_bg.wasm.d.ts
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
/* eslint-disable */
|
|
3
3
|
export const memory: WebAssembly.Memory;
|
|
4
4
|
export const __wbg_document_free: (a: number, b: number) => void;
|
|
5
|
+
export const __wbg_engine_free: (a: number, b: number) => void;
|
|
5
6
|
export const __wbg_livesession_free: (a: number, b: number) => void;
|
|
6
7
|
export const __wbg_quill_free: (a: number, b: number) => void;
|
|
7
|
-
export const __wbg_quillmark_free: (a: number, b: number) => void;
|
|
8
8
|
export const document__addCard: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => void;
|
|
9
9
|
export const document__commitField: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
10
10
|
export const document__commitFields: (a: number, b: number, c: number, d: number, e: number) => void;
|
|
@@ -52,6 +52,10 @@ export const document_toAnnotatedMarkdown: (a: number, b: number) => void;
|
|
|
52
52
|
export const document_toMarkdown: (a: number, b: number) => void;
|
|
53
53
|
export const document_toStored: (a: number, b: number) => void;
|
|
54
54
|
export const document_warnings: (a: number, b: number) => void;
|
|
55
|
+
export const engine_new: () => number;
|
|
56
|
+
export const engine_open: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
57
|
+
export const engine_render: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
58
|
+
export const engine_supportedFormats: (a: number, b: number, c: number) => void;
|
|
55
59
|
export const exportMarkdown: (a: number, b: number) => void;
|
|
56
60
|
export const formatDiagnostic: (a: number, b: number) => void;
|
|
57
61
|
export const formatDocPath: (a: number, b: number) => void;
|
|
@@ -90,10 +94,6 @@ export const quill_seedMain: (a: number, b: number) => void;
|
|
|
90
94
|
export const quill_toTree: (a: number) => number;
|
|
91
95
|
export const quill_validate: (a: number, b: number, c: number) => void;
|
|
92
96
|
export const quill_warnings: (a: number, b: number) => void;
|
|
93
|
-
export const quillmark_new: () => number;
|
|
94
|
-
export const quillmark_open: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
95
|
-
export const quillmark_render: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => void;
|
|
96
|
-
export const quillmark_supportedFormats: (a: number, b: number, c: number) => void;
|
|
97
97
|
export const rebase: (a: number, b: number, c: number, d: number) => void;
|
|
98
98
|
export const start: () => void;
|
|
99
99
|
export const __wbindgen_export: (a: number, b: number) => number;
|
package/runtime/runtime.d.ts
CHANGED
|
@@ -133,6 +133,8 @@ export type {
|
|
|
133
133
|
ContentIsland,
|
|
134
134
|
TableProps,
|
|
135
135
|
ImageProps,
|
|
136
|
+
FootnoteProps,
|
|
137
|
+
MathProps,
|
|
136
138
|
TableCell,
|
|
137
139
|
CardInput,
|
|
138
140
|
PathStep,
|
|
@@ -390,10 +392,12 @@ export interface ChangeSet {
|
|
|
390
392
|
|
|
391
393
|
/**
|
|
392
394
|
* A backend registry entry. `load` is the lazy thunk returning the
|
|
393
|
-
* dynamically-imported backend build module
|
|
394
|
-
*
|
|
395
|
-
*
|
|
396
|
-
*
|
|
395
|
+
* dynamically-imported backend build module, which is this package's own render
|
|
396
|
+
* build: its exports are the package's, hence `unknown`. Overriding `load`
|
|
397
|
+
* changes where the build loads from, never what loads. `formats` is the
|
|
398
|
+
* required static capability manifest, which is what makes
|
|
399
|
+
* `Engine.supportedFormats` free: it answers from it without loading a backend
|
|
400
|
+
* binary or cloning a quill. A malformed descriptor throws at `new Engine(...)`.
|
|
397
401
|
*/
|
|
398
402
|
export interface BackendDescriptor {
|
|
399
403
|
load: () => Promise<unknown>;
|
|
@@ -445,7 +449,7 @@ export declare class Engine {
|
|
|
445
449
|
* `runtime::backend_trapped`, the `WebAssembly.RuntimeError` on `cause`, as
|
|
446
450
|
* does a trap in {@link LiveSession}'s `update` / `render` / `paint`, and a
|
|
447
451
|
* `RangeError` or Firefox's `InternalError` for stack or memory exhaustion,
|
|
448
|
-
* which engines raise for a stack overflow inside wasm. The build's state is then undefined: discard the
|
|
452
|
+
* which JavaScript engines raise for a stack overflow inside wasm. The build's state is then undefined: discard the
|
|
449
453
|
* realm.
|
|
450
454
|
*/
|
|
451
455
|
render(quill: Quill, doc: Document, options?: RenderOptions, today?: string): Promise<RenderResult>;
|
package/runtime/runtime.js
CHANGED
|
@@ -334,7 +334,7 @@ function requireLocalQuill(quill, method) {
|
|
|
334
334
|
// every container has an entry. An entry of `'*'` welds on the whole bag: an
|
|
335
335
|
// element's attributes are open, its name among them.
|
|
336
336
|
|
|
337
|
-
const WELD_KEYS = { list_item: ['ordered'], quote: [], element: '*' };
|
|
337
|
+
const WELD_KEYS = { list_item: ['ordered'], quote: [], description: [], element: '*' };
|
|
338
338
|
|
|
339
339
|
/**
|
|
340
340
|
* @param {import('../core/wasm.js').ContentContainer} a
|
|
@@ -556,7 +556,7 @@ export class Engine {
|
|
|
556
556
|
|
|
557
557
|
let engine = this.#engines.get(load);
|
|
558
558
|
if (!engine) {
|
|
559
|
-
engine = new mod.
|
|
559
|
+
engine = new mod.Engine();
|
|
560
560
|
this.#engines.set(load, engine);
|
|
561
561
|
}
|
|
562
562
|
return { mod, engine };
|
|
@@ -589,7 +589,7 @@ export class Engine {
|
|
|
589
589
|
|
|
590
590
|
/**
|
|
591
591
|
* Materialize the backend-memory clones for `quill` + `doc` in `backendId`'s
|
|
592
|
-
* memory and run `fn` against the backend
|
|
592
|
+
* memory and run `fn` against the backend. Only `render`/`open` call
|
|
593
593
|
* this, so `doc` is always present.
|
|
594
594
|
*
|
|
595
595
|
* OWNERSHIP WINDOW: both caller handles are snapshotted (`doc.toStored()`,
|
|
@@ -678,9 +678,8 @@ export class Engine {
|
|
|
678
678
|
}
|
|
679
679
|
|
|
680
680
|
/**
|
|
681
|
-
* Thin wrapper over a backend's live render session. The
|
|
682
|
-
*
|
|
683
|
-
* needs.
|
|
681
|
+
* Thin wrapper over a backend's live render session. The document clone it was
|
|
682
|
+
* opened from has already been freed: the session retains what `update` needs.
|
|
684
683
|
*/
|
|
685
684
|
export class LiveSession {
|
|
686
685
|
/**
|
package/sbom.cdx.json
CHANGED
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
"bomFormat": "CycloneDX",
|
|
3
3
|
"specVersion": "1.5",
|
|
4
4
|
"version": 1,
|
|
5
|
-
"serialNumber": "urn:uuid:
|
|
5
|
+
"serialNumber": "urn:uuid:b2190f90-f153-4583-a731-a32681d1de2e",
|
|
6
6
|
"metadata": {
|
|
7
|
-
"timestamp": "2026-10-
|
|
7
|
+
"timestamp": "2026-10-21T21:27:24.674790859Z",
|
|
8
8
|
"tools": [
|
|
9
9
|
{
|
|
10
10
|
"vendor": "CycloneDX",
|
|
@@ -14,17 +14,17 @@
|
|
|
14
14
|
],
|
|
15
15
|
"component": {
|
|
16
16
|
"type": "library",
|
|
17
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/bindings/wasm#quillmark-wasm@0.
|
|
17
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/bindings/wasm#quillmark-wasm@0.129.0",
|
|
18
18
|
"name": "quillmark-wasm",
|
|
19
|
-
"version": "0.
|
|
20
|
-
"description": "WebAssembly bindings for Quillmark, a schema-driven document
|
|
19
|
+
"version": "0.129.0",
|
|
20
|
+
"description": "WebAssembly bindings for Quillmark, a schema-driven document framework",
|
|
21
21
|
"scope": "required",
|
|
22
22
|
"licenses": [
|
|
23
23
|
{
|
|
24
24
|
"expression": "Apache-2.0"
|
|
25
25
|
}
|
|
26
26
|
],
|
|
27
|
-
"purl": "pkg:cargo/quillmark-wasm@0.
|
|
27
|
+
"purl": "pkg:cargo/quillmark-wasm@0.129.0?download_url=file://.",
|
|
28
28
|
"externalReferences": [
|
|
29
29
|
{
|
|
30
30
|
"type": "vcs",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"components": [
|
|
35
35
|
{
|
|
36
36
|
"type": "library",
|
|
37
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/bindings/wasm#quillmark-wasm@0.
|
|
37
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/bindings/wasm#quillmark-wasm@0.129.0 bin-target-0",
|
|
38
38
|
"name": "quillmark_wasm",
|
|
39
|
-
"version": "0.
|
|
40
|
-
"purl": "pkg:cargo/quillmark-wasm@0.
|
|
39
|
+
"version": "0.129.0",
|
|
40
|
+
"purl": "pkg:cargo/quillmark-wasm@0.129.0?download_url=file://.#src/lib.rs"
|
|
41
41
|
}
|
|
42
42
|
]
|
|
43
43
|
},
|
|
@@ -51,17 +51,17 @@
|
|
|
51
51
|
"components": [
|
|
52
52
|
{
|
|
53
53
|
"type": "library",
|
|
54
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/acroform#quillmark-acroform@0.
|
|
54
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/acroform#quillmark-acroform@0.129.0",
|
|
55
55
|
"name": "quillmark-acroform",
|
|
56
|
-
"version": "0.
|
|
57
|
-
"description": "Typst-free
|
|
56
|
+
"version": "0.129.0",
|
|
57
|
+
"description": "Typst-free acroform backend for Quillmark: fills existing PDF forms via the quillmark-pdf stamping spine",
|
|
58
58
|
"scope": "required",
|
|
59
59
|
"licenses": [
|
|
60
60
|
{
|
|
61
61
|
"expression": "Apache-2.0"
|
|
62
62
|
}
|
|
63
63
|
],
|
|
64
|
-
"purl": "pkg:cargo/quillmark-acroform@0.
|
|
64
|
+
"purl": "pkg:cargo/quillmark-acroform@0.129.0?download_url=file://../../backends/acroform",
|
|
65
65
|
"externalReferences": [
|
|
66
66
|
{
|
|
67
67
|
"type": "documentation",
|
|
@@ -79,9 +79,9 @@
|
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
"type": "library",
|
|
82
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/typst#quillmark-typst@0.
|
|
82
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/typst#quillmark-typst@0.129.0",
|
|
83
83
|
"name": "quillmark-typst",
|
|
84
|
-
"version": "0.
|
|
84
|
+
"version": "0.129.0",
|
|
85
85
|
"description": "Typst backend for Quillmark",
|
|
86
86
|
"scope": "required",
|
|
87
87
|
"licenses": [
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"expression": "Apache-2.0"
|
|
90
90
|
}
|
|
91
91
|
],
|
|
92
|
-
"purl": "pkg:cargo/quillmark-typst@0.
|
|
92
|
+
"purl": "pkg:cargo/quillmark-typst@0.129.0?download_url=file://../../backends/typst",
|
|
93
93
|
"externalReferences": [
|
|
94
94
|
{
|
|
95
95
|
"type": "documentation",
|
|
@@ -107,9 +107,9 @@
|
|
|
107
107
|
},
|
|
108
108
|
{
|
|
109
109
|
"type": "library",
|
|
110
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.
|
|
110
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.129.0",
|
|
111
111
|
"name": "quillmark-content",
|
|
112
|
-
"version": "0.
|
|
112
|
+
"version": "0.129.0",
|
|
113
113
|
"description": "Content model (splice-shaped USV text with line attributes, marks, and islands), canonical serialization, edit deltas, and richtext/plaintext codecs for Quillmark",
|
|
114
114
|
"scope": "required",
|
|
115
115
|
"licenses": [
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
"expression": "Apache-2.0"
|
|
118
118
|
}
|
|
119
119
|
],
|
|
120
|
-
"purl": "pkg:cargo/quillmark-content@0.
|
|
120
|
+
"purl": "pkg:cargo/quillmark-content@0.129.0?download_url=file://../../content",
|
|
121
121
|
"externalReferences": [
|
|
122
122
|
{
|
|
123
123
|
"type": "website",
|
|
@@ -131,17 +131,17 @@
|
|
|
131
131
|
},
|
|
132
132
|
{
|
|
133
133
|
"type": "library",
|
|
134
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
134
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
135
135
|
"name": "quillmark-core",
|
|
136
|
-
"version": "0.
|
|
137
|
-
"description": "Core types and functionality for the Quillmark schema-driven document
|
|
136
|
+
"version": "0.129.0",
|
|
137
|
+
"description": "Core types and functionality for the Quillmark schema-driven document framework",
|
|
138
138
|
"scope": "required",
|
|
139
139
|
"licenses": [
|
|
140
140
|
{
|
|
141
141
|
"expression": "Apache-2.0"
|
|
142
142
|
}
|
|
143
143
|
],
|
|
144
|
-
"purl": "pkg:cargo/quillmark-core@0.
|
|
144
|
+
"purl": "pkg:cargo/quillmark-core@0.129.0?download_url=file://../../core",
|
|
145
145
|
"externalReferences": [
|
|
146
146
|
{
|
|
147
147
|
"type": "documentation",
|
|
@@ -159,17 +159,17 @@
|
|
|
159
159
|
},
|
|
160
160
|
{
|
|
161
161
|
"type": "library",
|
|
162
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark#0.
|
|
162
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark#0.129.0",
|
|
163
163
|
"name": "quillmark",
|
|
164
|
-
"version": "0.
|
|
165
|
-
"description": "A schema-driven document
|
|
164
|
+
"version": "0.129.0",
|
|
165
|
+
"description": "A schema-driven document framework: turn Markdown into a fully typeset document with a quill",
|
|
166
166
|
"scope": "required",
|
|
167
167
|
"licenses": [
|
|
168
168
|
{
|
|
169
169
|
"expression": "Apache-2.0"
|
|
170
170
|
}
|
|
171
171
|
],
|
|
172
|
-
"purl": "pkg:cargo/quillmark@0.
|
|
172
|
+
"purl": "pkg:cargo/quillmark@0.129.0?download_url=file://../../quillmark",
|
|
173
173
|
"externalReferences": [
|
|
174
174
|
{
|
|
175
175
|
"type": "documentation",
|
|
@@ -187,9 +187,9 @@
|
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
"type": "library",
|
|
190
|
-
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.
|
|
190
|
+
"bom-ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.129.0",
|
|
191
191
|
"name": "quillmark-pdf",
|
|
192
|
-
"version": "0.
|
|
192
|
+
"version": "0.129.0",
|
|
193
193
|
"description": "Typst-free AcroForm stamping spine for Quillmark: (base_pdf, &[FieldSpec]) -> stamped PDF + regions",
|
|
194
194
|
"scope": "required",
|
|
195
195
|
"licenses": [
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
"expression": "Apache-2.0"
|
|
198
198
|
}
|
|
199
199
|
],
|
|
200
|
-
"purl": "pkg:cargo/quillmark-pdf@0.
|
|
200
|
+
"purl": "pkg:cargo/quillmark-pdf@0.129.0?download_url=file://../../quillmark-pdf",
|
|
201
201
|
"externalReferences": [
|
|
202
202
|
{
|
|
203
203
|
"type": "documentation",
|
|
@@ -10334,23 +10334,23 @@
|
|
|
10334
10334
|
],
|
|
10335
10335
|
"dependencies": [
|
|
10336
10336
|
{
|
|
10337
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/acroform#quillmark-acroform@0.
|
|
10337
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/acroform#quillmark-acroform@0.129.0",
|
|
10338
10338
|
"dependsOn": [
|
|
10339
10339
|
"registry+https://github.com/rust-lang/crates.io-index#hayro@0.8.0",
|
|
10340
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.
|
|
10341
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
10342
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.
|
|
10340
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.129.0",
|
|
10341
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
10342
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.129.0",
|
|
10343
10343
|
"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
10344
10344
|
"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151"
|
|
10345
10345
|
]
|
|
10346
10346
|
},
|
|
10347
10347
|
{
|
|
10348
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/typst#quillmark-typst@0.
|
|
10348
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/backends/typst#quillmark-typst@0.129.0",
|
|
10349
10349
|
"dependsOn": [
|
|
10350
10350
|
"registry+https://github.com/rust-lang/crates.io-index#comemo@0.5.1",
|
|
10351
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.
|
|
10352
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
10353
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.
|
|
10351
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.129.0",
|
|
10352
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
10353
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.129.0",
|
|
10354
10354
|
"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151",
|
|
10355
10355
|
"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.21",
|
|
10356
10356
|
"registry+https://github.com/rust-lang/crates.io-index#toml@1.1.6+spec-1.1.0",
|
|
@@ -10362,13 +10362,13 @@
|
|
|
10362
10362
|
]
|
|
10363
10363
|
},
|
|
10364
10364
|
{
|
|
10365
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/bindings/wasm#quillmark-wasm@0.
|
|
10365
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/bindings/wasm#quillmark-wasm@0.129.0",
|
|
10366
10366
|
"dependsOn": [
|
|
10367
10367
|
"registry+https://github.com/rust-lang/crates.io-index#console_error_panic_hook@0.1.7",
|
|
10368
10368
|
"registry+https://github.com/rust-lang/crates.io-index#js-sys@0.3.106",
|
|
10369
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/quillmark#0.
|
|
10370
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.
|
|
10371
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
10369
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/quillmark#0.129.0",
|
|
10370
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.129.0",
|
|
10371
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
10372
10372
|
"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
10373
10373
|
"registry+https://github.com/rust-lang/crates.io-index#serde-wasm-bindgen@0.6.5",
|
|
10374
10374
|
"registry+https://github.com/rust-lang/crates.io-index#serde_bytes@0.11.19",
|
|
@@ -10379,20 +10379,21 @@
|
|
|
10379
10379
|
]
|
|
10380
10380
|
},
|
|
10381
10381
|
{
|
|
10382
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.
|
|
10382
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.129.0",
|
|
10383
10383
|
"dependsOn": [
|
|
10384
10384
|
"registry+https://github.com/rust-lang/crates.io-index#pulldown-cmark@0.13.4",
|
|
10385
10385
|
"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
10386
10386
|
"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151",
|
|
10387
|
-
"registry+https://github.com/rust-lang/crates.io-index#similar@3.2.0"
|
|
10387
|
+
"registry+https://github.com/rust-lang/crates.io-index#similar@3.2.0",
|
|
10388
|
+
"registry+https://github.com/rust-lang/crates.io-index#unicase@2.9.0"
|
|
10388
10389
|
]
|
|
10389
10390
|
},
|
|
10390
10391
|
{
|
|
10391
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
10392
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
10392
10393
|
"dependsOn": [
|
|
10393
10394
|
"registry+https://github.com/rust-lang/crates.io-index#glob@0.3.4",
|
|
10394
10395
|
"registry+https://github.com/rust-lang/crates.io-index#indexmap@2.14.2",
|
|
10395
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.
|
|
10396
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/content#quillmark-content@0.129.0",
|
|
10396
10397
|
"registry+https://github.com/rust-lang/crates.io-index#serde@1.0.229",
|
|
10397
10398
|
"registry+https://github.com/rust-lang/crates.io-index#serde-saphyr@1.3.0",
|
|
10398
10399
|
"registry+https://github.com/rust-lang/crates.io-index#serde_json@1.0.151",
|
|
@@ -10403,18 +10404,18 @@
|
|
|
10403
10404
|
]
|
|
10404
10405
|
},
|
|
10405
10406
|
{
|
|
10406
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark#0.
|
|
10407
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark#0.129.0",
|
|
10407
10408
|
"dependsOn": [
|
|
10408
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/backends/acroform#quillmark-acroform@0.
|
|
10409
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
10410
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/backends/typst#quillmark-typst@0.
|
|
10409
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/backends/acroform#quillmark-acroform@0.129.0",
|
|
10410
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
10411
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/backends/typst#quillmark-typst@0.129.0"
|
|
10411
10412
|
]
|
|
10412
10413
|
},
|
|
10413
10414
|
{
|
|
10414
|
-
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.
|
|
10415
|
+
"ref": "path+file:///home/runner/work/quillmark/quillmark/crates/quillmark-pdf#0.129.0",
|
|
10415
10416
|
"dependsOn": [
|
|
10416
10417
|
"registry+https://github.com/rust-lang/crates.io-index#pdf-writer@0.15.0",
|
|
10417
|
-
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.
|
|
10418
|
+
"path+file:///home/runner/work/quillmark/quillmark/crates/core#quillmark-core@0.129.0",
|
|
10418
10419
|
"registry+https://github.com/rust-lang/crates.io-index#thiserror@2.0.21"
|
|
10419
10420
|
]
|
|
10420
10421
|
},
|