@quillmark/wasm 0.124.0 → 0.126.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 +396 -0
- package/LICENSE +198 -10
- package/NOTICE +8 -0
- package/README.md +42 -30
- package/THIRD_PARTY_LICENSES.md +10629 -0
- package/core/wasm.d.ts +43 -26
- package/core/wasm.js +34 -22
- package/core/wasm_bg.wasm +0 -0
- package/package.json +21 -3
- package/render/wasm.d.ts +80 -38
- package/render/wasm.js +66 -33
- package/render/wasm_bg.wasm +0 -0
- package/render/wasm_bg.wasm.d.ts +1 -0
- package/runtime/runtime.d.ts +53 -21
- package/runtime/runtime.js +80 -20
- package/sbom.cdx.json +12835 -0
package/render/wasm.d.ts
CHANGED
|
@@ -146,7 +146,8 @@ export interface TableCell {
|
|
|
146
146
|
|
|
147
147
|
/** `props` of a `type: "table"` island: a pipe table normalized to one column
|
|
148
148
|
* count that `header`, every row of `rows`, `aligns` and `widths` all share.
|
|
149
|
-
* A layout key at its default is absent
|
|
149
|
+
* A layout key at its default is absent; one holding a value outside its type
|
|
150
|
+
* stays as written and reads as absent. */
|
|
150
151
|
export interface TableProps {
|
|
151
152
|
header: TableCell[];
|
|
152
153
|
rows: TableCell[][];
|
|
@@ -154,7 +155,7 @@ export interface TableProps {
|
|
|
154
155
|
aligns: ("none" | "left" | "center" | "right")[];
|
|
155
156
|
/** Per-column relative weights; `null` is an auto-fit column. Absent when
|
|
156
157
|
* every column is auto-fit. A weight is an integer from 1 to
|
|
157
|
-
* `Number.MAX_SAFE_INTEGER
|
|
158
|
+
* `Number.MAX_SAFE_INTEGER`. */
|
|
158
159
|
widths?: (number | null)[];
|
|
159
160
|
/** The table's placement; absent is the quill's. */
|
|
160
161
|
align?: "left" | "center" | "right";
|
|
@@ -237,14 +238,14 @@ export interface Revised {
|
|
|
237
238
|
|
|
238
239
|
/**
|
|
239
240
|
* The receipt of `writer.reviseDocument`. `droppedAnchors` names every prose
|
|
240
|
-
* anchor the write did not carry, at its path in the stored document; a table
|
|
241
|
+
* anchor the write did not carry, at its path and line in the stored document; a table
|
|
241
242
|
* cell's anchors drop unnamed. `warnings` are the parse's, then each revised
|
|
242
243
|
* content field's `parse::dropped_construct`, then the writer's `conform::*`.
|
|
243
244
|
* A field that lands rather than revises, on an inserted card or over no stored
|
|
244
245
|
* content, reports no drop.
|
|
245
246
|
*/
|
|
246
247
|
export interface DocumentRevised {
|
|
247
|
-
droppedAnchors:
|
|
248
|
+
droppedAnchors: DocumentAnchor[];
|
|
248
249
|
warnings: Diagnostic[];
|
|
249
250
|
}
|
|
250
251
|
|
|
@@ -258,7 +259,13 @@ export interface DocumentRevised {
|
|
|
258
259
|
*/
|
|
259
260
|
export interface AnnotatedMarkdown {
|
|
260
261
|
markdown: string;
|
|
261
|
-
anchors:
|
|
262
|
+
anchors: DocumentAnchor[];
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
export interface DocumentAnchor {
|
|
266
|
+
id: string;
|
|
267
|
+
path: string;
|
|
268
|
+
line: string;
|
|
262
269
|
}
|
|
263
270
|
|
|
264
271
|
/**
|
|
@@ -450,9 +457,10 @@ export interface Resolved {
|
|
|
450
457
|
/** UI layout hints for a single field. Display order is not a hint: key order
|
|
451
458
|
* in the schema's `fields`/`properties` objects is the ordering contract. */
|
|
452
459
|
export interface QuillFieldUi {
|
|
460
|
+
/** The id of the card group holding the field, a key of the card's
|
|
461
|
+
* `ui.groups`. */
|
|
453
462
|
group?: string;
|
|
454
463
|
compact?: boolean;
|
|
455
|
-
multiline?: boolean;
|
|
456
464
|
/** Label for an `enum`'s blank option. Absent, the consumer supplies a
|
|
457
465
|
* conventional label of its own. */
|
|
458
466
|
blank_title?: string;
|
|
@@ -466,18 +474,18 @@ export interface QuillFieldUi {
|
|
|
466
474
|
layout?: "table" | "flat";
|
|
467
475
|
}
|
|
468
476
|
|
|
469
|
-
/** One
|
|
470
|
-
* group id (the map key). An empty object carries no override, and the
|
|
471
|
-
* derives the label from the id (`memo_for` → "Memo For"). */
|
|
477
|
+
/** One group in a card's `ui.groups`: a display-label override for the
|
|
478
|
+
* group id (the map key). An empty object carries no override, and the
|
|
479
|
+
* consumer derives the label from the id (`memo_for` → "Memo For"). */
|
|
472
480
|
export interface QuillGroupUi {
|
|
473
481
|
title?: string;
|
|
474
482
|
}
|
|
475
483
|
|
|
476
484
|
/** UI layout hints for a card (main or named card kind). */
|
|
477
485
|
export interface QuillCardUi {
|
|
478
|
-
/** The
|
|
479
|
-
* order is the display-order contract, as
|
|
480
|
-
* card declares no groups. */
|
|
486
|
+
/** The card's groups keyed by id, each holding at least one field, which
|
|
487
|
+
* names it in its `ui.group`. Key order is the display-order contract, as
|
|
488
|
+
* with `fields`. Absent when the card declares no groups. */
|
|
481
489
|
groups?: Record<string, QuillGroupUi>;
|
|
482
490
|
}
|
|
483
491
|
|
|
@@ -487,7 +495,7 @@ export interface QuillCardBody {
|
|
|
487
495
|
enabled?: boolean;
|
|
488
496
|
}
|
|
489
497
|
|
|
490
|
-
export type QuillFieldType = "
|
|
498
|
+
export type QuillFieldType = "number" | "integer" | "boolean" | "array" | "object" | "date" | "datetime" | "text" | "richtext" | "enum" | "matrix";
|
|
491
499
|
|
|
492
500
|
/** Schema entry for a single field declared in a quill's `Quill.yaml`.
|
|
493
501
|
*
|
|
@@ -532,9 +540,12 @@ export interface QuillFieldSchema {
|
|
|
532
540
|
* out on. Valid only on an `array`. Never gates render: a document over
|
|
533
541
|
* the cap warns `validation::cardinality` and renders. */
|
|
534
542
|
max?: number;
|
|
535
|
-
/**
|
|
536
|
-
*
|
|
537
|
-
|
|
543
|
+
/** The line shape of a `text` or `richtext` field, valid nowhere else.
|
|
544
|
+
* Absent or `false`, the field is one line (`text`) or one paragraph with
|
|
545
|
+
* no container or island (`richtext`); `true` admits line breaks
|
|
546
|
+
* (`text`) or block structure (`richtext`). A `richtext` always carries
|
|
547
|
+
* it. */
|
|
548
|
+
multiline?: boolean;
|
|
538
549
|
}
|
|
539
550
|
|
|
540
551
|
/** Schema entry for the main card or a named card kind. */
|
|
@@ -574,6 +585,10 @@ export interface QuillMetadata {
|
|
|
574
585
|
backend: string;
|
|
575
586
|
author: string;
|
|
576
587
|
description: string;
|
|
588
|
+
/** An SPDX license expression; absent when the quill declares none. */
|
|
589
|
+
license?: string;
|
|
590
|
+
/** An absolute `http(s)` URL; absent when the quill declares none. */
|
|
591
|
+
homepage?: string;
|
|
577
592
|
}
|
|
578
593
|
|
|
579
594
|
|
|
@@ -619,7 +634,8 @@ export interface FieldRegion {
|
|
|
619
634
|
rect: [number, number, number, number];
|
|
620
635
|
/**
|
|
621
636
|
* The slice this box covers: USV `[start, end)` into the field's `Content`
|
|
622
|
-
* for one content segment, `undefined` for a scalar
|
|
637
|
+
* for one content segment, `undefined` for a scalar's ink, a claim or a
|
|
638
|
+
* widget.
|
|
623
639
|
*/
|
|
624
640
|
span?: [number, number];
|
|
625
641
|
}
|
|
@@ -630,6 +646,23 @@ export interface FieldRegion {
|
|
|
630
646
|
*/
|
|
631
647
|
export type HitGranularity = "cluster" | "segment";
|
|
632
648
|
|
|
649
|
+
/**
|
|
650
|
+
* One address a compiled document fills and the region address a click
|
|
651
|
+
* reaches it through: the consumer's copy of this contract is
|
|
652
|
+
* `runtime/runtime.d.ts`.
|
|
653
|
+
*/
|
|
654
|
+
export interface FieldCoverage {
|
|
655
|
+
/**
|
|
656
|
+
* Canonical `DocPath` field address, as `FieldRegion.field` spells it.
|
|
657
|
+
*/
|
|
658
|
+
field: string;
|
|
659
|
+
/**
|
|
660
|
+
* The `DocPath` of the region reaching `field`: itself, or the nearest
|
|
661
|
+
* enclosing address a region carries. `undefined` where no click does.
|
|
662
|
+
*/
|
|
663
|
+
coveredBy?: string;
|
|
664
|
+
}
|
|
665
|
+
|
|
633
666
|
/**
|
|
634
667
|
* Output formats supported by backends. Gated behind the engine surface so
|
|
635
668
|
* tsify omits it from the core bundle, which has no rendering surface.
|
|
@@ -797,7 +830,7 @@ export class Document {
|
|
|
797
830
|
* `edit::index_out_of_range`.
|
|
798
831
|
*
|
|
799
832
|
* A content field at rest has one stored form per codec: a `richtext` field
|
|
800
|
-
* holds the canonical content object, a `
|
|
833
|
+
* holds the canonical content object, a `text` field its literal
|
|
801
834
|
* string. A document from the bound door (`quill.parse` / `quill.conform`)
|
|
802
835
|
* is at rest; one from the transport door may rest as authored until it is
|
|
803
836
|
* conformed, and this read reports what is there. For the `Content` either
|
|
@@ -810,8 +843,9 @@ export class Document {
|
|
|
810
843
|
/**
|
|
811
844
|
* Insert a card: `at` absent appends, a number inserts at that index (in
|
|
812
845
|
* `0..=cards.length`). Accepts any `CardInput`, including a card read back
|
|
813
|
-
* out of a document. Throws if `card.kind` is not a valid kind name,
|
|
814
|
-
* `at` is out of range
|
|
846
|
+
* out of a document. Throws if `card.kind` is not a valid kind name, if
|
|
847
|
+
* `at` is out of range, or `edit::too_many_cards` if the document holds
|
|
848
|
+
* 1,000 cards.
|
|
815
849
|
*/
|
|
816
850
|
insertCard(card: CardInput, at?: number): void;
|
|
817
851
|
/**
|
|
@@ -1010,6 +1044,13 @@ export class LiveSession {
|
|
|
1010
1044
|
private constructor();
|
|
1011
1045
|
free(): void;
|
|
1012
1046
|
[Symbol.dispose](): void;
|
|
1047
|
+
/**
|
|
1048
|
+
* Each address the current compile fills that a reader could want to
|
|
1049
|
+
* click, and the `DocPath` of the region reaching it: the address itself,
|
|
1050
|
+
* the nearest enclosing one a region carries (a row claim reaching its
|
|
1051
|
+
* cells), or `undefined` where no click does. Reflects the current compile.
|
|
1052
|
+
*/
|
|
1053
|
+
coverage(): FieldCoverage[];
|
|
1013
1054
|
/**
|
|
1014
1055
|
* The schema field whose content is under a point on `page`: the `DocPath`
|
|
1015
1056
|
* address to focus in the editor, or `undefined` off any field's ink.
|
|
@@ -1030,9 +1071,9 @@ export class LiveSession {
|
|
|
1030
1071
|
/**
|
|
1031
1072
|
* The whole-field highlight boxes for `field`: one union rect per page over
|
|
1032
1073
|
* the field's `span`-bearing content segments, the union `regions()` leaves
|
|
1033
|
-
* derived. **Content only**: a field placed solely as a scalar
|
|
1034
|
-
* a bound widget carries no `span` and returns `[]`, its box being
|
|
1035
|
-
* `regions()` rect. Reflects the current compile.
|
|
1074
|
+
* derived. **Content only**: a field placed solely as a scalar's ink, a
|
|
1075
|
+
* claim or a bound widget carries no `span` and returns `[]`, its box being
|
|
1076
|
+
* a single `regions()` rect. Reflects the current compile.
|
|
1036
1077
|
*/
|
|
1037
1078
|
fieldBoxes(field: string): FieldRegion[];
|
|
1038
1079
|
/**
|
|
@@ -1077,9 +1118,9 @@ export class LiveSession {
|
|
|
1077
1118
|
*/
|
|
1078
1119
|
positionAt(page: number, x: number, y: number, tol_pt?: number | null): ContentHit | undefined;
|
|
1079
1120
|
/**
|
|
1080
|
-
* Schema-field geometry for this compiled session: each
|
|
1081
|
-
* **first placement** (one region per page it touches) plus
|
|
1082
|
-
*
|
|
1121
|
+
* Schema-field geometry for this compiled session: each piece of generated
|
|
1122
|
+
* ink's **first placement** (one region per page it touches) plus claim and
|
|
1123
|
+
* widget regions, keyed on the canonical `DocPath` address. A
|
|
1083
1124
|
* field may appear more than once, so group by `field` (see `FieldRegion`).
|
|
1084
1125
|
* A session-level query: no render, no byte artifact. The click direction is
|
|
1085
1126
|
* `fieldAt`. Empty for backends that place no schema fields.
|
|
@@ -1138,7 +1179,7 @@ export class Quill {
|
|
|
1138
1179
|
* The quill's example document, `undefined` when the quill has no
|
|
1139
1180
|
* `example.md` at its root: a filled-in page whose values are made up to show the
|
|
1140
1181
|
* quill in use, never kept. It comes back pinned to this quill's
|
|
1141
|
-
* `name@
|
|
1182
|
+
* `name@MAJOR.MINOR` and conformed as `parse` conforms, its parse and
|
|
1142
1183
|
* `conform::*` warnings on `doc.warnings`. Throws when the file does not
|
|
1143
1184
|
* parse or its `$quill` is not this quill's bare name.
|
|
1144
1185
|
*/
|
|
@@ -1153,7 +1194,7 @@ export class Quill {
|
|
|
1153
1194
|
* Parse `markdown` and conform it against this quill: the primary ingestion
|
|
1154
1195
|
* path, and the bound twin of the schema-free `Document.fromMarkdown`. The
|
|
1155
1196
|
* returned document rests at its canonical form (a `richtext` field as a
|
|
1156
|
-
* content object, a `
|
|
1197
|
+
* content object, a `text` field as its literal string), so `getStored`
|
|
1157
1198
|
* answers by the field's declared codec, not by how the document was built.
|
|
1158
1199
|
*
|
|
1159
1200
|
* Parse warnings and the `conform::*` diagnostics both land on
|
|
@@ -1197,8 +1238,9 @@ export class Quill {
|
|
|
1197
1238
|
toTree(): Map<string, Uint8Array>;
|
|
1198
1239
|
/**
|
|
1199
1240
|
* Validate `doc` against this quill's schema, returning every diagnostic:
|
|
1200
|
-
* an error blocks a render, a warning does not. Forwards the
|
|
1201
|
-
* `validation
|
|
1241
|
+
* an error blocks a render, a warning does not. Forwards the engine's
|
|
1242
|
+
* `validation::*`, a markdown string's `parse::dropped_construct` and the
|
|
1243
|
+
* backend's `backend::declined_construct`.
|
|
1202
1244
|
*/
|
|
1203
1245
|
validate(doc: Document): Diagnostic[];
|
|
1204
1246
|
/**
|
|
@@ -1242,11 +1284,10 @@ export class Quillmark {
|
|
|
1242
1284
|
open(quill: Quill, doc: Document, today?: string | null): LiveSession;
|
|
1243
1285
|
/**
|
|
1244
1286
|
* Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
|
|
1245
|
-
* with every `quill.validate` warning
|
|
1246
|
-
*
|
|
1247
|
-
*
|
|
1248
|
-
* `
|
|
1249
|
-
* `today` reads as on `open`.
|
|
1287
|
+
* with every `quill.validate` warning in `warnings`, a decline among the
|
|
1288
|
+
* compile's and the rest ahead of them; the load's stay on `doc.warnings`.
|
|
1289
|
+
* An unset `output_format` falls back to the backend's first supported
|
|
1290
|
+
* format. `today` reads as on `open`.
|
|
1250
1291
|
*/
|
|
1251
1292
|
render(quill: Quill, doc: Document, opts?: RenderOptions | null, today?: string | null): RenderResult;
|
|
1252
1293
|
/**
|
|
@@ -1293,15 +1334,15 @@ export function formatDocPath(segs: DocPathSeg[]): string;
|
|
|
1293
1334
|
export function importMarkdown(markdown: string): Imported;
|
|
1294
1335
|
|
|
1295
1336
|
/**
|
|
1296
|
-
* Whether `content` satisfies the
|
|
1297
|
-
* `
|
|
1337
|
+
* Whether `content` satisfies the one-line constraint of `text` and
|
|
1338
|
+
* `richtext`: one `Para` line, in no container, with no islands. Judged on
|
|
1298
1339
|
* the normalized content, which is what a write stores. Throws if `content` is
|
|
1299
1340
|
* not canonical content.
|
|
1300
1341
|
*/
|
|
1301
1342
|
export function isInline(content: Content): boolean;
|
|
1302
1343
|
|
|
1303
1344
|
/**
|
|
1304
|
-
* Whether `content` satisfies the `
|
|
1345
|
+
* Whether `content` satisfies the `text` constraint: no marks, no
|
|
1305
1346
|
* islands, every line a `Para` in no container. Judged on the normalized
|
|
1306
1347
|
* content, which is what a write stores. Throws if `content` is not canonical
|
|
1307
1348
|
* content.
|
|
@@ -1422,6 +1463,7 @@ export interface InitOutput {
|
|
|
1422
1463
|
readonly isInline: (a: number, b: number) => void;
|
|
1423
1464
|
readonly isPlain: (a: number, b: number) => void;
|
|
1424
1465
|
readonly livesession_backendId: (a: number, b: number) => void;
|
|
1466
|
+
readonly livesession_coverage: (a: number, b: number) => void;
|
|
1425
1467
|
readonly livesession_fieldAt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
1426
1468
|
readonly livesession_fieldBoxes: (a: number, b: number, c: number, d: number) => void;
|
|
1427
1469
|
readonly livesession_locate: (a: number, b: number, c: number, d: number, e: number) => void;
|
package/render/wasm.js
CHANGED
|
@@ -26,8 +26,8 @@ export class Document {
|
|
|
26
26
|
* leaves the document untouched. Field errors throw the same per-field
|
|
27
27
|
* bundle as [`commitFields`](Self::commit_fields); an invalid kind or body,
|
|
28
28
|
* or a bad position, throws a single-entry bundle keyed `$kind` / `$body`.
|
|
29
|
-
* Returns the
|
|
30
|
-
*
|
|
29
|
+
* Returns the fields' `parse::dropped_construct` warnings, then the body
|
|
30
|
+
* import's, anchored under the placed card.
|
|
31
31
|
* @param {Quill} quill
|
|
32
32
|
* @param {string} kind
|
|
33
33
|
* @param {Record<string, unknown>} [fields]
|
|
@@ -58,7 +58,7 @@ export class Document {
|
|
|
58
58
|
/**
|
|
59
59
|
* Typed field write at `addr`, resolving the field's schema `type` from
|
|
60
60
|
* `quill`: the stable ABI under the runtime `writer.set`. One verb for every
|
|
61
|
-
* field type; the schema carries the
|
|
61
|
+
* field type; the schema carries the one-line constraint, so no type token
|
|
62
62
|
* is passed.
|
|
63
63
|
*
|
|
64
64
|
* A bare string is `Addr` shorthand for `{ field }`. A body address throws,
|
|
@@ -67,15 +67,19 @@ export class Document {
|
|
|
67
67
|
* `edit::unknown_field` rather than falling to the opaque store — use
|
|
68
68
|
* [`storeField`](Document::store_field) for that. Also throws
|
|
69
69
|
* `edit::field_coercion_failed` / `edit::field_decode` /
|
|
70
|
-
* `edit::
|
|
70
|
+
* `edit::field_not_single_line` on a typed mismatch,
|
|
71
71
|
* `edit::invalid_field_name` on a malformed name, and
|
|
72
72
|
* `edit::index_out_of_range` on an out-of-range card.
|
|
73
73
|
*
|
|
74
74
|
* The `quill` handle is passed per call because a `Document` carries only a
|
|
75
75
|
* `$quill` reference, not the resolved schema.
|
|
76
|
+
*
|
|
77
|
+
* Returns a `parse::dropped_construct` warning per construct a `richtext`
|
|
78
|
+
* markdown string in the value dropped, at the string's path.
|
|
76
79
|
* @param {Quill} quill
|
|
77
80
|
* @param {Addr | string} addr
|
|
78
81
|
* @param {any} value
|
|
82
|
+
* @returns {Diagnostic[]}
|
|
79
83
|
*/
|
|
80
84
|
_commitField(quill, addr, value) {
|
|
81
85
|
try {
|
|
@@ -84,9 +88,11 @@ export class Document {
|
|
|
84
88
|
wasm.document__commitField(retptr, this.__wbg_ptr, quill.__wbg_ptr, addHeapObject(addr), addHeapObject(value));
|
|
85
89
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
86
90
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
87
|
-
|
|
88
|
-
|
|
91
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
92
|
+
if (r2) {
|
|
93
|
+
throw takeObject(r1);
|
|
89
94
|
}
|
|
95
|
+
return takeObject(r0);
|
|
90
96
|
} finally {
|
|
91
97
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
92
98
|
}
|
|
@@ -98,10 +104,12 @@ export class Document {
|
|
|
98
104
|
* diagnostic contract as [`storeFields`](Document::store_fields) — nothing
|
|
99
105
|
* applied on error, one `diagnostics` entry per offending field, including
|
|
100
106
|
* `edit::unknown_field` for undeclared names. Throws on an out-of-range
|
|
101
|
-
* card.
|
|
107
|
+
* card. Returns [`commitField`](Document::commit_field)'s warnings for
|
|
108
|
+
* every field, in batch order.
|
|
102
109
|
* @param {Quill} quill
|
|
103
110
|
* @param {CardAddr} addr
|
|
104
111
|
* @param {Record<string, unknown>} fields
|
|
112
|
+
* @returns {Diagnostic[]}
|
|
105
113
|
*/
|
|
106
114
|
_commitFields(quill, addr, fields) {
|
|
107
115
|
try {
|
|
@@ -110,9 +118,11 @@ export class Document {
|
|
|
110
118
|
wasm.document__commitFields(retptr, this.__wbg_ptr, quill.__wbg_ptr, addHeapObject(addr), addHeapObject(fields));
|
|
111
119
|
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
112
120
|
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
113
|
-
|
|
114
|
-
|
|
121
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
122
|
+
if (r2) {
|
|
123
|
+
throw takeObject(r1);
|
|
115
124
|
}
|
|
125
|
+
return takeObject(r0);
|
|
116
126
|
} finally {
|
|
117
127
|
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
118
128
|
}
|
|
@@ -263,10 +273,10 @@ export class Document {
|
|
|
263
273
|
* Revise the content field at `addr` from authored text, typed *and*
|
|
264
274
|
* anchor-preserving: the ABI under `writer.reviseField`. Surviving anchors
|
|
265
275
|
* rebase as in [`revise`](Self::revise), then the diffed result is
|
|
266
|
-
* schema-conformed, so a `richtext
|
|
267
|
-
* result with `edit::
|
|
276
|
+
* schema-conformed, so a one-paragraph `richtext` field rejects a multi-block
|
|
277
|
+
* result with `edit::field_not_single_line`. Returns the `Revised` receipt, its
|
|
268
278
|
* warnings anchored at the field. The codec is the declared type's:
|
|
269
|
-
* `richtext` diffs markdown, `
|
|
279
|
+
* `richtext` diffs markdown, `text` literal text, which drops nothing.
|
|
270
280
|
*
|
|
271
281
|
* `addr` must name a field; a body address throws, since a body carries no
|
|
272
282
|
* field schema (use [`revise`](Self::revise)). An undeclared name throws
|
|
@@ -541,7 +551,7 @@ export class Document {
|
|
|
541
551
|
* `edit::index_out_of_range`.
|
|
542
552
|
*
|
|
543
553
|
* A content field at rest has one stored form per codec: a `richtext` field
|
|
544
|
-
* holds the canonical content object, a `
|
|
554
|
+
* holds the canonical content object, a `text` field its literal
|
|
545
555
|
* string. A document from the bound door (`quill.parse` / `quill.conform`)
|
|
546
556
|
* is at rest; one from the transport door may rest as authored until it is
|
|
547
557
|
* conformed, and this read reports what is there. For the `Content` either
|
|
@@ -570,8 +580,9 @@ export class Document {
|
|
|
570
580
|
/**
|
|
571
581
|
* Insert a card: `at` absent appends, a number inserts at that index (in
|
|
572
582
|
* `0..=cards.length`). Accepts any `CardInput`, including a card read back
|
|
573
|
-
* out of a document. Throws if `card.kind` is not a valid kind name,
|
|
574
|
-
* `at` is out of range
|
|
583
|
+
* out of a document. Throws if `card.kind` is not a valid kind name, if
|
|
584
|
+
* `at` is out of range, or `edit::too_many_cards` if the document holds
|
|
585
|
+
* 1,000 cards.
|
|
575
586
|
* @param {CardInput} card
|
|
576
587
|
* @param {number} [at]
|
|
577
588
|
*/
|
|
@@ -1224,6 +1235,28 @@ export class LiveSession {
|
|
|
1224
1235
|
wasm.__wbindgen_export4(deferred1_0, deferred1_1, 1);
|
|
1225
1236
|
}
|
|
1226
1237
|
}
|
|
1238
|
+
/**
|
|
1239
|
+
* Each address the current compile fills that a reader could want to
|
|
1240
|
+
* click, and the `DocPath` of the region reaching it: the address itself,
|
|
1241
|
+
* the nearest enclosing one a region carries (a row claim reaching its
|
|
1242
|
+
* cells), or `undefined` where no click does. Reflects the current compile.
|
|
1243
|
+
* @returns {FieldCoverage[]}
|
|
1244
|
+
*/
|
|
1245
|
+
coverage() {
|
|
1246
|
+
try {
|
|
1247
|
+
const retptr = wasm.__wbindgen_add_to_stack_pointer(-16);
|
|
1248
|
+
wasm.livesession_coverage(retptr, this.__wbg_ptr);
|
|
1249
|
+
var r0 = getDataViewMemory0().getInt32(retptr + 4 * 0, true);
|
|
1250
|
+
var r1 = getDataViewMemory0().getInt32(retptr + 4 * 1, true);
|
|
1251
|
+
var r2 = getDataViewMemory0().getInt32(retptr + 4 * 2, true);
|
|
1252
|
+
if (r2) {
|
|
1253
|
+
throw takeObject(r1);
|
|
1254
|
+
}
|
|
1255
|
+
return takeObject(r0);
|
|
1256
|
+
} finally {
|
|
1257
|
+
wasm.__wbindgen_add_to_stack_pointer(16);
|
|
1258
|
+
}
|
|
1259
|
+
}
|
|
1227
1260
|
/**
|
|
1228
1261
|
* The schema field whose content is under a point on `page`: the `DocPath`
|
|
1229
1262
|
* address to focus in the editor, or `undefined` off any field's ink.
|
|
@@ -1264,9 +1297,9 @@ export class LiveSession {
|
|
|
1264
1297
|
/**
|
|
1265
1298
|
* The whole-field highlight boxes for `field`: one union rect per page over
|
|
1266
1299
|
* the field's `span`-bearing content segments, the union `regions()` leaves
|
|
1267
|
-
* derived. **Content only**: a field placed solely as a scalar
|
|
1268
|
-
* a bound widget carries no `span` and returns `[]`, its box being
|
|
1269
|
-
* `regions()` rect. Reflects the current compile.
|
|
1300
|
+
* derived. **Content only**: a field placed solely as a scalar's ink, a
|
|
1301
|
+
* claim or a bound widget carries no `span` and returns `[]`, its box being
|
|
1302
|
+
* a single `regions()` rect. Reflects the current compile.
|
|
1270
1303
|
* @param {string} field
|
|
1271
1304
|
* @returns {FieldRegion[]}
|
|
1272
1305
|
*/
|
|
@@ -1405,9 +1438,9 @@ export class LiveSession {
|
|
|
1405
1438
|
}
|
|
1406
1439
|
}
|
|
1407
1440
|
/**
|
|
1408
|
-
* Schema-field geometry for this compiled session: each
|
|
1409
|
-
* **first placement** (one region per page it touches) plus
|
|
1410
|
-
*
|
|
1441
|
+
* Schema-field geometry for this compiled session: each piece of generated
|
|
1442
|
+
* ink's **first placement** (one region per page it touches) plus claim and
|
|
1443
|
+
* widget regions, keyed on the canonical `DocPath` address. A
|
|
1411
1444
|
* field may appear more than once, so group by `field` (see `FieldRegion`).
|
|
1412
1445
|
* A session-level query: no render, no byte artifact. The click direction is
|
|
1413
1446
|
* `fieldAt`. Empty for backends that place no schema fields.
|
|
@@ -1630,7 +1663,7 @@ export class Quill {
|
|
|
1630
1663
|
* The quill's example document, `undefined` when the quill has no
|
|
1631
1664
|
* `example.md` at its root: a filled-in page whose values are made up to show the
|
|
1632
1665
|
* quill in use, never kept. It comes back pinned to this quill's
|
|
1633
|
-
* `name@
|
|
1666
|
+
* `name@MAJOR.MINOR` and conformed as `parse` conforms, its parse and
|
|
1634
1667
|
* `conform::*` warnings on `doc.warnings`. Throws when the file does not
|
|
1635
1668
|
* parse or its `$quill` is not this quill's bare name.
|
|
1636
1669
|
* @returns {Document | undefined}
|
|
@@ -1697,7 +1730,7 @@ export class Quill {
|
|
|
1697
1730
|
* Parse `markdown` and conform it against this quill: the primary ingestion
|
|
1698
1731
|
* path, and the bound twin of the schema-free `Document.fromMarkdown`. The
|
|
1699
1732
|
* returned document rests at its canonical form (a `richtext` field as a
|
|
1700
|
-
* content object, a `
|
|
1733
|
+
* content object, a `text` field as its literal string), so `getStored`
|
|
1701
1734
|
* answers by the field's declared codec, not by how the document was built.
|
|
1702
1735
|
*
|
|
1703
1736
|
* Parse warnings and the `conform::*` diagnostics both land on
|
|
@@ -1822,8 +1855,9 @@ export class Quill {
|
|
|
1822
1855
|
}
|
|
1823
1856
|
/**
|
|
1824
1857
|
* Validate `doc` against this quill's schema, returning every diagnostic:
|
|
1825
|
-
* an error blocks a render, a warning does not. Forwards the
|
|
1826
|
-
* `validation
|
|
1858
|
+
* an error blocks a render, a warning does not. Forwards the engine's
|
|
1859
|
+
* `validation::*`, a markdown string's `parse::dropped_construct` and the
|
|
1860
|
+
* backend's `backend::declined_construct`.
|
|
1827
1861
|
* @param {Document} doc
|
|
1828
1862
|
* @returns {Diagnostic[]}
|
|
1829
1863
|
*/
|
|
@@ -1917,11 +1951,10 @@ export class Quillmark {
|
|
|
1917
1951
|
}
|
|
1918
1952
|
/**
|
|
1919
1953
|
* Render `doc` against `quill` in one shot: `open` + `LiveSession.render`,
|
|
1920
|
-
* with every `quill.validate` warning
|
|
1921
|
-
*
|
|
1922
|
-
*
|
|
1923
|
-
* `
|
|
1924
|
-
* `today` reads as on `open`.
|
|
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`.
|
|
1925
1958
|
* @param {Quill} quill
|
|
1926
1959
|
* @param {Document} doc
|
|
1927
1960
|
* @param {RenderOptions | null} [opts]
|
|
@@ -2102,8 +2135,8 @@ export function importMarkdown(markdown) {
|
|
|
2102
2135
|
}
|
|
2103
2136
|
|
|
2104
2137
|
/**
|
|
2105
|
-
* Whether `content` satisfies the
|
|
2106
|
-
* `
|
|
2138
|
+
* Whether `content` satisfies the one-line constraint of `text` and
|
|
2139
|
+
* `richtext`: one `Para` line, in no container, with no islands. Judged on
|
|
2107
2140
|
* the normalized content, which is what a write stores. Throws if `content` is
|
|
2108
2141
|
* not canonical content.
|
|
2109
2142
|
* @param {Content} content
|
|
@@ -2126,7 +2159,7 @@ export function isInline(content) {
|
|
|
2126
2159
|
}
|
|
2127
2160
|
|
|
2128
2161
|
/**
|
|
2129
|
-
* Whether `content` satisfies the `
|
|
2162
|
+
* Whether `content` satisfies the `text` constraint: no marks, no
|
|
2130
2163
|
* islands, every line a `Para` in no container. Judged on the normalized
|
|
2131
2164
|
* content, which is what a write stores. Throws if `content` is not canonical
|
|
2132
2165
|
* content.
|
package/render/wasm_bg.wasm
CHANGED
|
Binary file
|
package/render/wasm_bg.wasm.d.ts
CHANGED
|
@@ -59,6 +59,7 @@ export const importMarkdown: (a: number, b: number, c: number) => void;
|
|
|
59
59
|
export const isInline: (a: number, b: number) => void;
|
|
60
60
|
export const isPlain: (a: number, b: number) => void;
|
|
61
61
|
export const livesession_backendId: (a: number, b: number) => void;
|
|
62
|
+
export const livesession_coverage: (a: number, b: number) => void;
|
|
62
63
|
export const livesession_fieldAt: (a: number, b: number, c: number, d: number, e: number, f: number) => void;
|
|
63
64
|
export const livesession_fieldBoxes: (a: number, b: number, c: number, d: number) => void;
|
|
64
65
|
export const livesession_locate: (a: number, b: number, c: number, d: number, e: number) => void;
|