@quillmark/wasm 0.98.0 → 0.99.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/core/wasm_bg.js CHANGED
@@ -21,7 +21,7 @@ export class Document {
21
21
  }
22
22
  /**
23
23
  * Build a composable card of `kind`, typed-commit `fields` onto it, set its
24
- * body from optional markdown, and place it the ABI under `writer.addCard`.
24
+ * body from optional markdown, and place it: the ABI under `writer.addCard`.
25
25
  * `at` picks the position: absent appends, a number inserts at that index
26
26
  * (`0..=cards.length`), so a positioned typed insert is one atomic call
27
27
  * rather than `addCard` + `moveCard`. Fuses `makeCard` + typed commit +
@@ -58,7 +58,7 @@ export class Document {
58
58
  }
59
59
  /**
60
60
  * Typed field write at `addr`, resolving the field's schema `type` from
61
- * `quill` the stable ABI under the runtime `writer.set` / `writer.card(i).set`.
61
+ * `quill`: the stable ABI under the runtime `writer.set` / `writer.card(i).set`.
62
62
  * The one write verb for **every** field type (richtext, scalar, array,
63
63
  * object); the schema carries the `inline` constraint, so no type token or
64
64
  * flag is passed. A richtext-typed field stores the canonical content, so
@@ -69,10 +69,10 @@ export class Document {
69
69
  *
70
70
  * A bare string is `Addr` shorthand for `{ field }`; `{ card, field }`
71
71
  * targets a composable card (its `$kind` resolves the schema). A body
72
- * address throws a body has no field schema; write it with `writer.setBody`
72
+ * address throws: a body has no field schema; write it with `writer.setBody`
73
73
  * / `revise`. A field declared in the schema is strict-committed (a mismatch
74
74
  * throws now, not at render); a name the schema does not declare throws
75
- * `edit::unknown_field` rather than falling to the opaque store on
75
+ * `edit::unknown_field` rather than falling to the opaque store: on
76
76
  * the typed path it is a typo. Use [`storeField`](Document::store_field) for
77
77
  * opaque storage. Also throws `edit::field_conform` /
78
78
  * `edit::field_richtext_decode` / `edit::field_richtext_not_inline`
@@ -105,7 +105,7 @@ export class Document {
105
105
  * field's schema `type` from `quill`. `addr` is a **card address**
106
106
  * (`{ card }`, absent = main; a present `field` throws). All-or-nothing with
107
107
  * the same per-field-diagnostic error contract as
108
- * [`storeFields`](Document::store_fields) nothing is applied on error and
108
+ * [`storeFields`](Document::store_fields): nothing is applied on error and
109
109
  * the thrown error's `diagnostics` carry one entry per offending field,
110
110
  * including an `edit::unknown_field` for any name the schema does not
111
111
  * declare, so a whole-form submit sees every typo in one pass. Throws on an
@@ -130,7 +130,7 @@ export class Document {
130
130
  }
131
131
  /**
132
132
  * Interpreted read at `addr`, resolving the field's declared `type` from
133
- * `quill` the stable ABI under the runtime `reader.get` / `reader.card(i).get`.
133
+ * `quill`: the stable ABI under the runtime `reader.get` / `reader.card(i).get`.
134
134
  * The schema-plane twin of the quill-free [`getStored`](Self::get_stored): a `richtext`
135
135
  * field returns its markdown projection, every other declared type its
136
136
  * canonical value verbatim, so a consumer holding the quill reads by field
@@ -139,10 +139,10 @@ export class Document {
139
139
  * A bare string is `Addr` shorthand for `{ field }`; `{ card, field }`
140
140
  * targets a composable card (its `$kind` resolves the schema). Returns
141
141
  * `undefined` for an **absent** field. An absent `addr.field` reads the body
142
- * markdown quill-free, mirroring [`getMarkdown`](Self::get_markdown), since
142
+ * markdown: quill-free, mirroring [`getMarkdown`](Self::get_markdown), since
143
143
  * a body's type is a format fact, not a schema fact. A name the schema does
144
144
  * not declare throws `edit::unknown_field` (the authority `getMarkdown`
145
- * lacks there an unknown name reads back `undefined`); a `richtext` field
145
+ * lacks: there an unknown name reads back `undefined`); a `richtext` field
146
146
  * holding a value that does not decode throws `edit::field_richtext_decode`;
147
147
  * an out-of-range `addr.card` throws.
148
148
  *
@@ -170,7 +170,7 @@ export class Document {
170
170
  }
171
171
  /**
172
172
  * Revise the richtext field at `addr` from markdown, typed *and*
173
- * anchor-preserving the ABI under `writer.reviseField`. Resolves the
173
+ * anchor-preserving: the ABI under `writer.reviseField`. Resolves the
174
174
  * field's schema from `quill` (main card, or the addressed card's `$kind`)
175
175
  * and defers to [`TypedWriter::revise_field`](quillmark_core::TypedWriter::revise_field):
176
176
  * surviving anchors rebase (as [`revise`](Self::revise)), then the diffed
@@ -179,7 +179,7 @@ export class Document {
179
179
  * text `Delta`.
180
180
  *
181
181
  * `addr` must name a field (a bare string is `{ field }`); a body address
182
- * throws (a body carries no field schema use [`revise`](Self::revise)). A
182
+ * throws (a body carries no field schema: use [`revise`](Self::revise)). A
183
183
  * name the schema does not declare throws `edit::unknown_field`. Throws
184
184
  * on an out-of-range card. Hidden from the `.d.ts`; the visible verb is
185
185
  * `writer.reviseField` in the runtime layer.
@@ -208,7 +208,7 @@ export class Document {
208
208
  }
209
209
  /**
210
210
  * **Apply** a committed content edit `bundle` (`{ delta?, lineOps?, markOps? }`)
211
- * at `addr` the editor splice: text delta first, then line ops, then mark
211
+ * at `addr`, the editor splice: text delta first, then line ops, then mark
212
212
  * ops (mark ranges in final-text coordinates), each all-or-nothing. An absent
213
213
  * `addr.field` targets the body, an absent `addr.card` the main card.
214
214
  *
@@ -258,7 +258,7 @@ export class Document {
258
258
  }
259
259
  }
260
260
  /**
261
- * A single composable card by index the whole `Card`, the card-indexed
261
+ * A single composable card by index: the whole `Card`, the card-indexed
262
262
  * twin of the [`main`](Self::main) getter, so reading one card need not
263
263
  * materialize every card via [`cards`](Self::cards). An out-of-range
264
264
  * `index` throws `edit::index_out_of_range`, matching the card write
@@ -459,7 +459,7 @@ export class Document {
459
459
  }
460
460
  /**
461
461
  * The whole `$ext` map at `addr` (a card address, absent `card` = main), or
462
- * `undefined` when the card carries none. The fine-grained `$ext` read
462
+ * `undefined` when the card carries none. The fine-grained `$ext` read:
463
463
  * your own state without serializing the whole card. Throws on a present
464
464
  * `field` (a card address takes only `card`) or an out-of-range card.
465
465
  * @param {CardAddr} [addr]
@@ -482,7 +482,7 @@ export class Document {
482
482
  }
483
483
  /**
484
484
  * The value stored under `$ext[ns]` at `addr` (a card address, absent `card`
485
- * = main), or `undefined`. The namespace-scoped `$ext` read your own slot
485
+ * = main), or `undefined`. The namespace-scoped `$ext` read: your own slot
486
486
  * without a whole-card serialize, and non-destructive (unlike
487
487
  * `removeExtNamespace`). Throws on a present `field` or an out-of-range card.
488
488
  * @param {CardAddr} addr
@@ -507,15 +507,15 @@ export class Document {
507
507
  }
508
508
  }
509
509
  /**
510
- * The **body** markdown projection the main body, or a composable card's
511
- * body (`{ card }`) the on-demand, lossy export (content-only marks do not
510
+ * The **body** markdown projection (the main body, or a composable card's
511
+ * body (`{ card }`)) the on-demand, lossy export (content-only marks do not
512
512
  * survive markdown). A body's type is a format fact, not a schema fact, so
513
513
  * this read stays quill-free; a body is never absent.
514
514
  *
515
515
  * `addr` is an optional **card address** (`{ card }`, absent = main). A
516
- * present `field` throws a field's markdown is read through the
516
+ * present `field` throws: a field's markdown is read through the
517
517
  * schema-plane `quill.reader(doc).get(field)`, which interprets by declared
518
- * type (#978). An out-of-range `addr.card` throws.
518
+ * type. An out-of-range `addr.card` throws.
519
519
  * @param {CardAddr} [addr]
520
520
  * @returns {string}
521
521
  */
@@ -535,13 +535,13 @@ export class Document {
535
535
  }
536
536
  }
537
537
  /**
538
- * Read the **verbatim stored value** at `addr` the raw payload value of a
538
+ * Read the **verbatim stored value** at `addr`: the raw payload value of a
539
539
  * field (a content object for a richtext field, a scalar/array/object
540
540
  * otherwise), or the **body content** when `addr.field` is absent. A bare
541
541
  * string is `Addr` shorthand for `{ field }`. Reads are total over the field
542
542
  * axis: an absent field is `undefined`; only an out-of-range `addr.card`
543
543
  * throws `edit::index_out_of_range`. Needs no schema, so it lives on
544
- * `Document` the read echo of the verbatim `store*` write, distinct from
544
+ * `Document`: the read echo of the verbatim `store*` write, distinct from
545
545
  * the interpreted schema-plane [`reader.get`](Self::reader_get). For the
546
546
  * markdown projection use [`getMarkdown`](Self::get_markdown) (body) or
547
547
  * `reader.get` (a field's declared type).
@@ -564,9 +564,9 @@ export class Document {
564
564
  }
565
565
  }
566
566
  /**
567
- * Insert a card the single insertion verb: `at` absent appends, a number
567
+ * Insert a card, the single insertion verb: `at` absent appends, a number
568
568
  * inserts at that index (must be in `0..=cards.length`). Accepts a
569
- * `CardInput` a card read back (`cards` / `removeCard` / `quill.seedCard`),
569
+ * `CardInput`: a card read back (`cards` / `removeCard` / `quill.seedCard`),
570
570
  * a [`makeCard`](Document::make_card) result, or a bare `{ kind, body }`
571
571
  * (every returned `Card` is a valid `CardInput`). Throws if `card.kind` is
572
572
  * not a valid kind name, or if `at` is out of range.
@@ -587,7 +587,7 @@ export class Document {
587
587
  }
588
588
  }
589
589
  /**
590
- * **Install** a richtext value at `addr` **value semantics**, content only.
590
+ * **Install** a richtext value at `addr`: **value semantics**, content only.
591
591
  * Stores exactly `rt` (a canonical `Content` content object); the identity
592
592
  * anchors of any previous value are gone. An absent `addr.field` targets the
593
593
  * body, an absent `addr.card` the main card. For "here's new markdown," use
@@ -615,7 +615,7 @@ export class Document {
615
615
  }
616
616
  /**
617
617
  * Whether the field at `addr` is marked `!must_fill`. A bare string is `Addr`
618
- * shorthand for `{ field }`. `false` for an absent field (truthful it isn't
618
+ * shorthand for `{ field }`. `false` for an absent field (truthful: it isn't
619
619
  * marked) and for a body address (a body is never a fill). Only an
620
620
  * out-of-range `addr.card` throws.
621
621
  * @param {Addr | string} addr
@@ -638,13 +638,13 @@ export class Document {
638
638
  }
639
639
  /**
640
640
  * Replace this document's contents **in place** from a versioned storage
641
- * DTO string the mutating twin of the static
641
+ * DTO string: the mutating twin of the static
642
642
  * [`fromJson`](Document::from_json) constructor. Parse-time `warnings` are
643
643
  * cleared. Throws (leaving the document unchanged) on an invalid DTO.
644
644
  *
645
645
  * The cross-WASM-memory `Document` bridge: mutate a document on a
646
646
  * backend-memory clone, then write the mutated state back into the caller's
647
- * canonical document with this the one way to update a live handle across
647
+ * canonical document with this, the one way to update a live handle across
648
648
  * the linear-memory seam without the caller re-binding its variable.
649
649
  * @param {string} json
650
650
  */
@@ -665,7 +665,7 @@ export class Document {
665
665
  }
666
666
  /**
667
667
  * The document's main (entry) card. Allocates and serializes on each
668
- * call cache locally if read in a hot loop.
668
+ * call: cache locally if read in a hot loop.
669
669
  * @returns {Card}
670
670
  */
671
671
  get main() {
@@ -684,7 +684,7 @@ export class Document {
684
684
  }
685
685
  }
686
686
  /**
687
- * Build a fresh `Card` from a kind and a flat field map the ergonomic
687
+ * Build a fresh `Card` from a kind and a flat field map: the ergonomic
688
688
  * constructor for `insertCard`. `fields` is an optional
689
689
  * `Record<string, unknown>` (each entry becomes a card field, in
690
690
  * insertion order); `body` defaults to `""`.
@@ -694,8 +694,8 @@ export class Document {
694
694
  * here.
695
695
  *
696
696
  * Checks only what a detached card can decide alone: field-name grammar
697
- * and value depth. Kind validity is positional `main` is right for the
698
- * root, reserved for a composable card so `insertCard` is its gate, and
697
+ * and value depth. Kind validity is positional (`main` is right for the
698
+ * root, reserved for a composable card) so `insertCard` is its gate, and
699
699
  * any kind string is accepted here.
700
700
  * @param {string} kind
701
701
  * @param {Record<string, unknown>} [fields]
@@ -740,7 +740,7 @@ export class Document {
740
740
  }
741
741
  }
742
742
  /**
743
- * `new Document(quillRef)` a blank document: a main card carrying only
743
+ * `new Document(quillRef)`, a blank document: a main card carrying only
744
744
  * `$quill`, an empty body, and no composable cards. The programmatic
745
745
  * blank canvas: absent fields resolve at render time (`default`, else
746
746
  * type-empty zero), so nothing the caller did not set reaches the
@@ -789,7 +789,7 @@ export class Document {
789
789
  /**
790
790
  * The canonical `$quill` reference grammar as author-facing text. Core is
791
791
  * the single source of truth: drive schema `describe` and validation
792
- * messages from this instead of re-stating the rule it matches the
792
+ * messages from this instead of re-stating the rule; it matches the
793
793
  * `hint` on `parse::invalid_quill_reference`. Cache it; the value never
794
794
  * changes.
795
795
  * @returns {string}
@@ -831,7 +831,7 @@ export class Document {
831
831
  }
832
832
  /**
833
833
  * Remove the `$ext` map on the card `addr` targets *entirely*, returning the
834
- * previous map or `undefined` a blunt escape hatch that discards every
834
+ * previous map or `undefined`: a blunt escape hatch that discards every
835
835
  * namespace at once (prefer `removeExtNamespace`). `addr` is a card address
836
836
  * (absent = main). Throws on a present `field` or an out-of-range card.
837
837
  * @param {CardAddr} [addr]
@@ -926,7 +926,7 @@ export class Document {
926
926
  }
927
927
  }
928
928
  /**
929
- * **Revise** the richtext value at `addr` from a markdown string **edit
929
+ * **Revise** the richtext value at `addr` from a markdown string: **edit
930
930
  * semantics**, the default write path, returning the text `Delta`. Imports
931
931
  * the markdown, diffs it against the current value, rebases surviving
932
932
  * identity anchors, and returns the change an editor bridge maps its own
@@ -958,7 +958,7 @@ export class Document {
958
958
  }
959
959
  /**
960
960
  * Read the `schema` version tag from a raw storage DTO string without a
961
- * full parse, or `undefined`. Returns unknown future versions as-is
961
+ * full parse, or `undefined`. Returns unknown future versions as-is:
962
962
  * useful to distinguish "build too old" from "payload corrupt" when
963
963
  * `fromJson` throws.
964
964
  * @param {string} json
@@ -986,7 +986,7 @@ export class Document {
986
986
  * The main card's `$seed` overlay object for `kind` (the `$seed[kind]`
987
987
  * entry), or `undefined` when absent. The cheap read that feeds
988
988
  * `quill.seedCard(kind, overlay)` without serializing the whole main card
989
- * via [`main`](Self::main) to fish out one key and it keeps `seedCard`
989
+ * via [`main`](Self::main) to fish out one key, and it keeps `seedCard`
990
990
  * pure: the quill still never reads the document.
991
991
  * @param {string} kind
992
992
  * @returns {Record<string, unknown> | undefined}
@@ -1053,7 +1053,7 @@ export class Document {
1053
1053
  * Replace the opaque `$ext` map on the card `addr` targets (a card address,
1054
1054
  * absent `card` = main). `value` must be a plain object. `$ext` carries
1055
1055
  * out-of-band consumer state and never reaches the rendered output; pass
1056
- * `{}` for an explicit empty `$ext`. Quill-free and verbatim an opaque
1056
+ * `{}` for an explicit empty `$ext`. Quill-free and verbatim: an opaque
1057
1057
  * `store` verb. Throws on a present `field` or an out-of-range card.
1058
1058
  * @param {CardAddr} addr
1059
1059
  * @param {any} value
@@ -1073,8 +1073,8 @@ export class Document {
1073
1073
  }
1074
1074
  /**
1075
1075
  * Merge `value` into `$ext[ns]` on the card `addr` targets, preserving
1076
- * sibling namespaces the recommended `$ext` write. `addr` is a card
1077
- * address (absent = main). Quill-free and verbatim an opaque `store` verb.
1076
+ * sibling namespaces: the recommended `$ext` write. `addr` is a card
1077
+ * address (absent = main). Quill-free and verbatim: an opaque `store` verb.
1078
1078
  * Throws on a present `field` or an out-of-range card.
1079
1079
  * @param {CardAddr} addr
1080
1080
  * @param {string} ns
@@ -1096,12 +1096,12 @@ export class Document {
1096
1096
  }
1097
1097
  }
1098
1098
  /**
1099
- * Store a field verbatim at `addr` the opaque store (**store** = verbatim,
1099
+ * Store a field verbatim at `addr`: the opaque store (**store** = verbatim,
1100
1100
  * coercion deferred to render; the typed write is
1101
1101
  * [`commitField`](Document::commit_field)). A bare string is `Addr`
1102
1102
  * shorthand for `{ field }`, so `doc.storeField("qty", 3)` reads as written;
1103
1103
  * `{ card: 2, field: "qty" }` targets a composable card. Clears any
1104
- * `!must_fill` marker. A body address (no `field`) throws a body is never
1104
+ * `!must_fill` marker. A body address (no `field`) throws: a body is never
1105
1105
  * opaque; write it with `revise` / `install` / `writer.setBody`. Throws on
1106
1106
  * an out-of-range card or a malformed name.
1107
1107
  * @param {Addr | string} addr
@@ -1121,12 +1121,12 @@ export class Document {
1121
1121
  }
1122
1122
  }
1123
1123
  /**
1124
- * Store several fields verbatim and atomically on the card `addr` targets
1124
+ * Store several fields verbatim and atomically on the card `addr` targets:
1125
1125
  * the opaque store's batch. `addr` is a **card address** (`{ card }`, absent
1126
1126
  * = main); a present `field` throws. The batch verb takes the address first
1127
1127
  * and is never shape-overloaded, because `card` is a legal field name:
1128
1128
  * `storeFields({}, fields)` is the main card, `storeFields({ card: 2 },
1129
- * fields)` a composable one never ambiguous with "set field `card`".
1129
+ * fields)` a composable one, never ambiguous with "set field `card`".
1130
1130
  * Nothing is applied on error; the thrown error's `diagnostics` carry one
1131
1131
  * entry per offending field. Throws on an out-of-range card.
1132
1132
  * @param {CardAddr} addr
@@ -1146,7 +1146,7 @@ export class Document {
1146
1146
  }
1147
1147
  }
1148
1148
  /**
1149
- * Store a field verbatim at `addr` and mark it `!must_fill` the opaque
1149
+ * Store a field verbatim at `addr` and mark it `!must_fill`: the opaque
1150
1150
  * store's fill variant, card-capable (a bare string or `{ field }` for main,
1151
1151
  * `{ card, field }` for a composable card). A body address throws. Same
1152
1152
  * validation as [`storeField`](Document::store_field).
@@ -1168,9 +1168,9 @@ export class Document {
1168
1168
  }
1169
1169
  /**
1170
1170
  * Merge a card-kind's seed `overlay` into the **main** card's `$seed` map
1171
- * under `cardKind`, preserving sibling kinds `$seed` lives on the main
1171
+ * under `cardKind`, preserving sibling kinds: `$seed` lives on the main
1172
1172
  * card by model, so this takes no address. Sets the starting values new
1173
- * cards of that kind spawn with. Quill-free and verbatim an opaque `store`
1173
+ * cards of that kind spawn with. Quill-free and verbatim: an opaque `store`
1174
1174
  * verb. Throws if `overlay` cannot be serialized or nests too deep.
1175
1175
  * @param {string} card_kind
1176
1176
  * @param {any} overlay
@@ -1194,7 +1194,7 @@ export class Document {
1194
1194
  * Serialize this document to a versioned storage DTO string.
1195
1195
  *
1196
1196
  * Prefer this over `toMarkdown` for persistence across restarts or crate
1197
- * upgrades the wire format is frozen per `schema` version. Parse-time
1197
+ * upgrades: the wire format is frozen per `schema` version. Parse-time
1198
1198
  * `warnings` are excluded from the DTO.
1199
1199
  *
1200
1200
  * Output is **byte-deterministic** within a `schema` version: equal
@@ -1240,7 +1240,7 @@ export class Document {
1240
1240
  }
1241
1241
  /**
1242
1242
  * Like [`fromJson`](Document::from_json) but returns `undefined` instead
1243
- * of throwing when `json` is not a valid storage DTO use to
1243
+ * of throwing when `json` is not a valid storage DTO: use to
1244
1244
  * discriminate format without exceptions as control flow.
1245
1245
  * `undefined` means "not a storage DTO"; `fromMarkdown` still throws on
1246
1246
  * genuinely malformed markdown.
@@ -1294,7 +1294,7 @@ export class Quill {
1294
1294
  }
1295
1295
  /**
1296
1296
  * The *declared* backend identifier (`config.backend`, e.g. `"typst"`).
1297
- * Intent, not a resolved capability capability (`supportedFormats` /
1297
+ * Intent, not a resolved capability: capability (`supportedFormats` /
1298
1298
  * `supportsCanvas`) is read from the engine.
1299
1299
  * @returns {string}
1300
1300
  */
@@ -1334,7 +1334,7 @@ export class Quill {
1334
1334
  }
1335
1335
  }
1336
1336
  /**
1337
- * Build a quill from a file tree. Pure no backend, no engine; the
1337
+ * Build a quill from a file tree. Pure: no backend, no engine; the
1338
1338
  * declared backend is resolved later, at render time.
1339
1339
  *
1340
1340
  * Accepts either a `Map<string, Uint8Array>` or a plain object
@@ -1361,7 +1361,7 @@ export class Quill {
1361
1361
  }
1362
1362
  /**
1363
1363
  * Identity snapshot of the `quill:` section of `Quill.yaml` plus any extra
1364
- * `quill:` keys. Pure config the backend's output formats are a
1364
+ * `quill:` keys. Pure config: the backend's output formats are a
1365
1365
  * resolved-backend capability read from the engine
1366
1366
  * (`Quillmark.supportedFormats`), not part of this snapshot.
1367
1367
  * @returns {QuillMetadata}
@@ -1382,11 +1382,11 @@ export class Quill {
1382
1382
  }
1383
1383
  }
1384
1384
  /**
1385
- * The resolved-value view of `doc` against this quill's schema for every
1385
+ * The resolved-value view of `doc` against this quill's schema: for every
1386
1386
  * declared field the value the render projection would use and the
1387
1387
  * `FieldSource` rung it came from (`"authored" | "default" | "zero"`), in
1388
1388
  * one call. The card body is a `body` sibling on its card (row `name`
1389
- * `"body"`), never a row in `fields` `null` when the kind enables no body.
1389
+ * `"body"`), never a row in `fields`: `null` when the kind enables no body.
1390
1390
  *
1391
1391
  * Value and provenance only: completeness and errors stay `validate`'s
1392
1392
  * (a consumer merges it with its own diagnostic producers regardless), and
@@ -1413,8 +1413,8 @@ export class Quill {
1413
1413
  /**
1414
1414
  * Document schema for the quill: the user-fillable fields plus their
1415
1415
  * `ui` hints (title / group / compact / multiline). The single
1416
- * field-metadata surface drives form editors and LLM/MCP consumers
1417
- * alike. Key order in `fields`/`properties` is declaration order the
1416
+ * field-metadata surface: drives form editors and LLM/MCP consumers
1417
+ * alike. Key order in `fields`/`properties` is declaration order: the
1418
1418
  * ordering contract. Returns the `QuillSchema` shape.
1419
1419
  * @returns {QuillSchema}
1420
1420
  */
@@ -1443,7 +1443,7 @@ export class Quill {
1443
1443
  * Pass `document.seedOverlay(cardKind)` as `overlay` so a card added to a
1444
1444
  * template-derived document inherits its curated starting values; omit it
1445
1445
  * (or pass `undefined` / `null`) for the bare schema seed. `overlay` is a
1446
- * plain object this reads the document, it does not mutate it.
1446
+ * plain object: this reads the document, it does not mutate it.
1447
1447
  * @param {string} card_kind
1448
1448
  * @param {Record<string, unknown> | undefined} overlay
1449
1449
  * @returns {Card | undefined}
@@ -1466,7 +1466,7 @@ export class Quill {
1466
1466
  }
1467
1467
  }
1468
1468
  /**
1469
- * Seed a starter `Document` from the schema the main card plus one
1469
+ * Seed a starter `Document` from the schema, the main card plus one
1470
1470
  * instance of each composable card kind, each committing its fields'
1471
1471
  * `example:` values and leaving every other field absent (interpolated at
1472
1472
  * render: `default:`, else type-empty zero). Illustration-first: a field
@@ -1479,7 +1479,7 @@ export class Quill {
1479
1479
  return Document.__wrap(ret);
1480
1480
  }
1481
1481
  /**
1482
- * Seed a starter main `Card` (carries `$quill`) from the schema the
1482
+ * Seed a starter main `Card` (carries `$quill`) from the schema: the
1483
1483
  * `$kind: main` card of [`seedDocument`](Self::seed_document) in
1484
1484
  * isolation, committing each field's `example:` value. Returns the same
1485
1485
  * `Card` shape as the `Document.main` getter.
@@ -1501,7 +1501,7 @@ export class Quill {
1501
1501
  }
1502
1502
  }
1503
1503
  /**
1504
- * Flatten this quill back into its canonical file tree the inverse of
1504
+ * Flatten this quill back into its canonical file tree: the inverse of
1505
1505
  * [`fromTree`](Self::from_tree). Round-trips: `Quill.fromTree(q.toTree())`
1506
1506
  * reproduces an equivalent quill.
1507
1507
  *
@@ -1521,8 +1521,8 @@ export class Quill {
1521
1521
  * Validate `doc` against this quill's schema, returning every diagnostic
1522
1522
  * (an empty array when the document is valid).
1523
1523
  *
1524
- * Forwards the canonical `validation::*` diagnostics same `code`,
1525
- * `path`, and `hint` the engine emits including the non-fatal
1524
+ * Forwards the canonical `validation::*` diagnostics (same `code`,
1525
+ * `path`, and `hint` the engine emits) including the non-fatal
1526
1526
  * `validation::must_fill` warning for each `!must_fill` marker left in
1527
1527
  * the document. Field values, defaults, and order are not part of this
1528
1528
  * surface: read them from the `Document` payload and `Quill.schema`
@@ -1550,7 +1550,7 @@ export class Quill {
1550
1550
  if (Symbol.dispose) Quill.prototype[Symbol.dispose] = Quill.prototype.free;
1551
1551
 
1552
1552
  /**
1553
- * Export a canonical `Content` content to its markdown projection the pure
1553
+ * Export a canonical `Content` content to its markdown projection: the pure
1554
1554
  * on-demand codec behind `exportMarkdown(card.body)`. Throws if `rt` is not a
1555
1555
  * canonical content.
1556
1556
  * @param {Content} rt
@@ -1583,7 +1583,7 @@ export function exportMarkdown(rt) {
1583
1583
 
1584
1584
  /**
1585
1585
  * Serialize structured [`DocPathSeg`] segments back to the canonical path
1586
- * string the inverse of `parseDocPath`, for a consumer that builds a path
1586
+ * string: the inverse of `parseDocPath`, for a consumer that builds a path
1587
1587
  * rather than reads one. Throws on a segment array the deserializer rejects,
1588
1588
  * and on an empty segment array (symmetric with `parseDocPath("")`, which
1589
1589
  * throws "empty path").
@@ -1616,7 +1616,7 @@ export function formatDocPath(segs) {
1616
1616
  }
1617
1617
 
1618
1618
  /**
1619
- * Import a markdown string to a canonical `Content` content the pure,
1619
+ * Import a markdown string to a canonical `Content` content: the pure,
1620
1620
  * document-free codec. Pair with `install(addr, importMarkdown(md))` to spell
1621
1621
  * the cold (anchor-losing) write at the call site; prefer `revise` for edit
1622
1622
  * semantics. Throws on an over-nested input.
@@ -1649,8 +1649,8 @@ export function init() {
1649
1649
  }
1650
1650
 
1651
1651
  /**
1652
- * Map a base content position a USV index into `Content.text`, not a UTF-16
1653
- * offset through a `delta` to its new USV position: the pure position-mapping
1652
+ * Map a base content position (a USV index into `Content.text`, not a UTF-16
1653
+ * offset) through a `delta` to its new USV position: the pure position-mapping
1654
1654
  * codec an editor bridge composes to hold a caret stable across a `revise`.
1655
1655
  * `assoc` decides the side of a same-position insertion (`"after"` moves past
1656
1656
  * it). Throws on a malformed `delta`.
@@ -1678,7 +1678,7 @@ export function mapPos(delta, pos, assoc) {
1678
1678
  /**
1679
1679
  * Parse a canonical document-model `Diagnostic.path`
1680
1680
  * (`cards.<kind>[<i>].<field>`, `main.body`, `recipients[0].name`) into its
1681
- * structured [`DocPathSeg`] segments the exported inverse of the engine's
1681
+ * structured [`DocPathSeg`] segments: the exported inverse of the engine's
1682
1682
  * one path serializer, so a consumer routes on segments instead of regexing
1683
1683
  * the string. Throws on a malformed path.
1684
1684
  * @param {string} path
@@ -1703,7 +1703,7 @@ export function parseDocPath(path) {
1703
1703
  }
1704
1704
 
1705
1705
  /**
1706
- * Rebase `markdown` onto a `base` content the pure, document-free twin of
1706
+ * Rebase `markdown` onto a `base` content, the pure, document-free twin of
1707
1707
  * `revise`: cold-import + `diff_import`, returning the new `content` and the
1708
1708
  * text `delta` (its offsets USV indices into `Content.text`, surviving anchors
1709
1709
  * rebased). Use it to compute a revise without a document in hand; `revise(addr,
@@ -1745,13 +1745,6 @@ export function __wbg_String_8564e559799eccda(arg0, arg1) {
1745
1745
  getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1746
1746
  getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1747
1747
  }
1748
- export function __wbg_String_b51de6b05a10845b(arg0, arg1) {
1749
- const ret = String(getObject(arg1));
1750
- const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_export, wasm.__wbindgen_export2);
1751
- const len1 = WASM_VECTOR_LEN;
1752
- getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true);
1753
- getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true);
1754
- }
1755
1748
  export function __wbg___wbindgen_bigint_get_as_i64_3d3aba5d616c6a51(arg0, arg1) {
1756
1749
  const v = getObject(arg1);
1757
1750
  const ret = typeof(v) === 'bigint' ? v : undefined;
@@ -1855,9 +1848,6 @@ export function __wbg_from_0dbf29f09e7fb200(arg0) {
1855
1848
  const ret = Array.from(getObject(arg0));
1856
1849
  return addHeapObject(ret);
1857
1850
  }
1858
- export function __wbg_getRandomValues_3f44b700395062e5() { return handleError(function (arg0, arg1) {
1859
- globalThis.crypto.getRandomValues(getArrayU8FromWasm0(arg0, arg1));
1860
- }, arguments); }
1861
1851
  export function __wbg_get_1affdbdd5573b16a() { return handleError(function (arg0, arg1) {
1862
1852
  const ret = Reflect.get(getObject(arg0), getObject(arg1));
1863
1853
  return addHeapObject(ret);
@@ -1874,10 +1864,6 @@ export function __wbg_get_with_ref_key_6412cf3094599694(arg0, arg1) {
1874
1864
  const ret = getObject(arg0)[getObject(arg1)];
1875
1865
  return addHeapObject(ret);
1876
1866
  }
1877
- export function __wbg_get_with_ref_key_f64427178466f623(arg0, arg1) {
1878
- const ret = getObject(arg0)[getObject(arg1)];
1879
- return addHeapObject(ret);
1880
- }
1881
1867
  export function __wbg_instanceof_ArrayBuffer_7c8433c6ed14ffe3(arg0) {
1882
1868
  let result;
1883
1869
  try {
@@ -2006,6 +1992,14 @@ export function __wbg_value_ee3a06f4579184fa(arg0) {
2006
1992
  const ret = getObject(arg0).value;
2007
1993
  return addHeapObject(ret);
2008
1994
  }
1995
+ export function __wbg_values_1e6d547ce555ce44(arg0) {
1996
+ const ret = getObject(arg0).values();
1997
+ return addHeapObject(ret);
1998
+ }
1999
+ export function __wbg_values_301a77363cf6c773(arg0) {
2000
+ const ret = Object.values(getObject(arg0));
2001
+ return addHeapObject(ret);
2002
+ }
2009
2003
  export function __wbindgen_cast_0000000000000001(arg0) {
2010
2004
  // Cast intrinsic for `F64 -> Externref`.
2011
2005
  const ret = arg0;
package/core/wasm_bg.wasm CHANGED
Binary file
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "@quillmark/wasm",
3
- "version": "0.98.0",
3
+ "version": "0.99.0",
4
4
  "description": "WebAssembly bindings for Quillmark, a schema-driven document engine",
5
5
  "type": "module",
6
- "license": "MIT OR Apache-2.0",
6
+ "license": "Apache-2.0",
7
7
  "engines": {
8
8
  "node": ">=22"
9
9
  },