punctilio 5.1.4 → 5.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/quote-classifier.d.ts.map +1 -1
- package/dist/quote-classifier.js +52 -0
- package/dist/quote-classifier.js.map +1 -1
- package/dist/rehype.d.ts +31 -9
- package/dist/rehype.d.ts.map +1 -1
- package/dist/rehype.js +132 -30
- package/dist/rehype.js.map +1 -1
- package/package.json +1 -1
- package/src/quote-classifier.ts +50 -0
- package/src/rehype.ts +413 -205
package/dist/rehype.js
CHANGED
|
@@ -1,10 +1,21 @@
|
|
|
1
1
|
import { SKIP, visitParents } from "unist-util-visit-parents";
|
|
2
2
|
import { transformView } from "./index.js";
|
|
3
|
-
import { TRANSFORM_OPTION_KEYS } from "./transform-options.js";
|
|
3
|
+
import { TRANSFORM_OPTION_KEYS, } from "./transform-options.js";
|
|
4
4
|
import { MAX_RECURSION_DEPTH } from "./constants.js";
|
|
5
5
|
import { assertKnownOptionKeys, formatErrorString } from "./utils.js";
|
|
6
|
-
import { buildProseView, splitAtIndices } from "./prose-view.js";
|
|
7
|
-
const DEFAULT_SKIP_TAGS = [
|
|
6
|
+
import { buildProseView, splitAtIndices, } from "./prose-view.js";
|
|
7
|
+
const DEFAULT_SKIP_TAGS = [
|
|
8
|
+
"code",
|
|
9
|
+
"pre",
|
|
10
|
+
"script",
|
|
11
|
+
"style",
|
|
12
|
+
"kbd",
|
|
13
|
+
"var",
|
|
14
|
+
"samp",
|
|
15
|
+
"template",
|
|
16
|
+
"math",
|
|
17
|
+
"svg",
|
|
18
|
+
];
|
|
8
19
|
// Form elements whose text content is a literal control value, not prose.
|
|
9
20
|
// Hard-skipped (whole subtree) under `transformAllElements`, on top of the
|
|
10
21
|
// user skip-list, so their values are protected even when nested inside a
|
|
@@ -17,15 +28,33 @@ const FORM_VALUE_TAGS = ["textarea", "input"];
|
|
|
17
28
|
// the allowlist.
|
|
18
29
|
const NON_PROSE_CONTAINER_TAGS = new Set(["select"]);
|
|
19
30
|
/** Option keys handled by `rehypePunctilio` itself rather than `transform()`. */
|
|
20
|
-
export const REHYPE_ONLY_OPTION_KEYS = [
|
|
31
|
+
export const REHYPE_ONLY_OPTION_KEYS = [
|
|
32
|
+
"skipTags",
|
|
33
|
+
"skipClasses",
|
|
34
|
+
"shouldSkipText",
|
|
35
|
+
"transformAllElements",
|
|
36
|
+
];
|
|
21
37
|
/** Runtime list of valid `rehypePunctilio` option keys. */
|
|
22
|
-
export const REHYPE_OPTION_KEYS = [
|
|
38
|
+
export const REHYPE_OPTION_KEYS = [
|
|
39
|
+
...TRANSFORM_OPTION_KEYS,
|
|
40
|
+
...REHYPE_ONLY_OPTION_KEYS,
|
|
41
|
+
];
|
|
23
42
|
// Void/replaced inline elements that render atomic content (or a hard break)
|
|
24
43
|
// and carry no transformable text. When one sits between two text nodes it is a
|
|
25
44
|
// real visual separator, so the flattener records an opaque gap there.
|
|
26
45
|
const OPAQUE_VOID_TAGS = new Set([
|
|
27
|
-
"img",
|
|
28
|
-
"
|
|
46
|
+
"img",
|
|
47
|
+
"br",
|
|
48
|
+
"wbr",
|
|
49
|
+
"input",
|
|
50
|
+
"hr",
|
|
51
|
+
"embed",
|
|
52
|
+
"area",
|
|
53
|
+
"source",
|
|
54
|
+
"track",
|
|
55
|
+
"col",
|
|
56
|
+
"param",
|
|
57
|
+
"keygen",
|
|
29
58
|
]);
|
|
30
59
|
function collectProse(node, depth, c) {
|
|
31
60
|
if (depth > MAX_RECURSION_DEPTH) {
|
|
@@ -55,7 +84,9 @@ function collectProse(node, depth, c) {
|
|
|
55
84
|
// Snapshot ancestors at the callback boundary — the walker mutates the
|
|
56
85
|
// shared array as it recurses, so handing it out directly would let a
|
|
57
86
|
// caller observe a stale view if they captured the reference.
|
|
58
|
-
if (c.shouldSkipText &&
|
|
87
|
+
if (c.shouldSkipText &&
|
|
88
|
+
c.ancestors &&
|
|
89
|
+
c.shouldSkipText(node, c.ancestors.slice())) {
|
|
59
90
|
// Preserved-but-untransformed text is a separator between its neighbors.
|
|
60
91
|
c.pendingOpaque = true;
|
|
61
92
|
return;
|
|
@@ -121,7 +152,8 @@ export function assertSmartQuotesMatch(input) {
|
|
|
121
152
|
stack.push(char);
|
|
122
153
|
}
|
|
123
154
|
else if (char in CLOSER_TO_OPENER) {
|
|
124
|
-
if (stack.length > 0 &&
|
|
155
|
+
if (stack.length > 0 &&
|
|
156
|
+
stack[stack.length - 1] === CLOSER_TO_OPENER[char]) {
|
|
125
157
|
stack.pop();
|
|
126
158
|
}
|
|
127
159
|
else {
|
|
@@ -189,15 +221,28 @@ function mergePredicates(base, extra) {
|
|
|
189
221
|
* fresh view (built after the previous pass committed) over the text nodes
|
|
190
222
|
* that survive both the base `options` predicates and its own.
|
|
191
223
|
*
|
|
192
|
-
* The view is a single
|
|
193
|
-
* boundary recorded at every opaque gap (removed
|
|
194
|
-
* Caller passes stay boundary-aware via
|
|
195
|
-
* decides for itself whether to act across a
|
|
196
|
-
* skipped `<code>` runs, gluing a dash after a
|
|
197
|
-
* being blocked wholesale. Passes that must not
|
|
198
|
-
* boundary marks; use {@link proseViewsOf} directly
|
|
224
|
+
* The view is a single spanning view (over the whole element, or a run's loose
|
|
225
|
+
* inline children), with a boundary recorded at every opaque gap (removed
|
|
226
|
+
* skipped element, image, …). Caller passes stay boundary-aware via
|
|
227
|
+
* `view.hasBoundary`, so each pass decides for itself whether to act across a
|
|
228
|
+
* gap — spacing a slash between two skipped `<code>` runs, gluing a dash after a
|
|
229
|
+
* skipped element — rather than being blocked wholesale. Passes that must not
|
|
230
|
+
* cross a gap consult the same boundary marks; use {@link proseViewsOf} directly
|
|
231
|
+
* for hard per-segment views.
|
|
232
|
+
*
|
|
233
|
+
* Accepts a bare element (formatted whole) or a {@link ProseUnit} from
|
|
234
|
+
* {@link collectProseUnits}; a "run" unit formats a container's loose inline
|
|
235
|
+
* text without pulling in its block children.
|
|
199
236
|
*/
|
|
200
|
-
export function applyPasses(
|
|
237
|
+
export function applyPasses(target, passes, options = {}) {
|
|
238
|
+
const makeView = (viewOptions) => {
|
|
239
|
+
if ("kind" in target) {
|
|
240
|
+
return target.kind === "element"
|
|
241
|
+
? proseViewOf(target.element, viewOptions)
|
|
242
|
+
: runViewOf(target.container, target.children, viewOptions);
|
|
243
|
+
}
|
|
244
|
+
return proseViewOf(target, viewOptions);
|
|
245
|
+
};
|
|
201
246
|
let currentView = null;
|
|
202
247
|
let currentPredicates = null;
|
|
203
248
|
for (const entry of passes) {
|
|
@@ -206,7 +251,7 @@ export function applyPasses(element, passes, options = {}) {
|
|
|
206
251
|
currentPredicates.shouldSkip === shouldSkip &&
|
|
207
252
|
currentPredicates.shouldSkipText === shouldSkipText;
|
|
208
253
|
if (!samePredicates) {
|
|
209
|
-
currentView =
|
|
254
|
+
currentView = makeView({
|
|
210
255
|
shouldSkip: mergePredicates(options.shouldSkip, shouldSkip),
|
|
211
256
|
shouldSkipText: mergePredicates(options.shouldSkipText, shouldSkipText),
|
|
212
257
|
});
|
|
@@ -223,11 +268,39 @@ export function applyPasses(element, passes, options = {}) {
|
|
|
223
268
|
// Block children cause per-block processing to avoid merging text across
|
|
224
269
|
// semantically independent blocks (e.g., separate <p>s inside a <div>).
|
|
225
270
|
const BLOCK_ELEMENTS = new Set([
|
|
226
|
-
"address",
|
|
227
|
-
"
|
|
228
|
-
"
|
|
229
|
-
"
|
|
230
|
-
"
|
|
271
|
+
"address",
|
|
272
|
+
"article",
|
|
273
|
+
"aside",
|
|
274
|
+
"blockquote",
|
|
275
|
+
"details",
|
|
276
|
+
"dialog",
|
|
277
|
+
"dd",
|
|
278
|
+
"div",
|
|
279
|
+
"dl",
|
|
280
|
+
"dt",
|
|
281
|
+
"fieldset",
|
|
282
|
+
"figcaption",
|
|
283
|
+
"figure",
|
|
284
|
+
"footer",
|
|
285
|
+
"form",
|
|
286
|
+
"h1",
|
|
287
|
+
"h2",
|
|
288
|
+
"h3",
|
|
289
|
+
"h4",
|
|
290
|
+
"h5",
|
|
291
|
+
"h6",
|
|
292
|
+
"header",
|
|
293
|
+
"hgroup",
|
|
294
|
+
"hr",
|
|
295
|
+
"li",
|
|
296
|
+
"main",
|
|
297
|
+
"nav",
|
|
298
|
+
"ol",
|
|
299
|
+
"p",
|
|
300
|
+
"pre",
|
|
301
|
+
"section",
|
|
302
|
+
"table",
|
|
303
|
+
"ul",
|
|
231
304
|
]);
|
|
232
305
|
const TRANSFORMABLE_ELEMENTS = new Set([
|
|
233
306
|
"p",
|
|
@@ -310,7 +383,7 @@ function hasTextDescendant(node, shouldSkip, depth = 0) {
|
|
|
310
383
|
return false;
|
|
311
384
|
}
|
|
312
385
|
function resolveCollectOptions(options) {
|
|
313
|
-
const { skipTags = DEFAULT_SKIP_TAGS, skipClasses = [], shouldSkip, transformAllElements = false } = options;
|
|
386
|
+
const { skipTags = DEFAULT_SKIP_TAGS, skipClasses = [], shouldSkip, transformAllElements = false, } = options;
|
|
314
387
|
// In inverted mode, form-value elements join the skip-list so their literal
|
|
315
388
|
// values are neither transformed nor flattened into a transformable ancestor.
|
|
316
389
|
const skipTagSet = new Set(transformAllElements ? [...skipTags, ...FORM_VALUE_TAGS] : skipTags);
|
|
@@ -321,11 +394,15 @@ function resolveCollectOptions(options) {
|
|
|
321
394
|
const classNames = node.properties?.className;
|
|
322
395
|
const classes = Array.isArray(classNames)
|
|
323
396
|
? classNames.filter((c) => typeof c === "string")
|
|
324
|
-
: typeof classNames === "string"
|
|
397
|
+
: typeof classNames === "string"
|
|
398
|
+
? classNames.split(/\s+/)
|
|
399
|
+
: [];
|
|
325
400
|
return classes.some((cls) => skipClassSet.has(cls));
|
|
326
401
|
};
|
|
327
402
|
return {
|
|
328
|
-
shouldSkip: (node) => skipTagSet.has(node.tagName) ||
|
|
403
|
+
shouldSkip: (node) => skipTagSet.has(node.tagName) ||
|
|
404
|
+
hasSkipClass(node) ||
|
|
405
|
+
(shouldSkip?.(node) ?? false),
|
|
329
406
|
// Inverted mode transforms every non-skipped element except non-prose
|
|
330
407
|
// containers; the default keeps the `TRANSFORMABLE_ELEMENTS` allowlist
|
|
331
408
|
// (plus custom elements).
|
|
@@ -339,12 +416,23 @@ function resolveCollectOptions(options) {
|
|
|
339
416
|
* transformed as one prose block: transformable elements with direct text or
|
|
340
417
|
* inline-only text descendants. Elements with block-level children recurse so
|
|
341
418
|
* each block transforms independently. Loose inline text mixed among block
|
|
342
|
-
* children is
|
|
419
|
+
* children is NOT represented here — use {@link collectProseUnits} to reach it.
|
|
343
420
|
*/
|
|
344
421
|
export function collectProseBlocks(root, options = {}) {
|
|
345
422
|
const { shouldSkip, isTransformable } = resolveCollectOptions(options);
|
|
346
|
-
return collectProseUnitsImpl(root, shouldSkip, 0, undefined, isTransformable)
|
|
347
|
-
|
|
423
|
+
return collectProseUnitsImpl(root, shouldSkip, 0, undefined, isTransformable).flatMap((unit) => (unit.kind === "element" ? [unit.element] : []));
|
|
424
|
+
}
|
|
425
|
+
/**
|
|
426
|
+
* Like {@link collectProseBlocks}, but also returns "run" units — maximal groups
|
|
427
|
+
* of loose inline siblings sitting beside block children (e.g. the bare text in
|
|
428
|
+
* `<blockquote><p>…</p>loose text</blockquote>`). A consumer that walks elements
|
|
429
|
+
* cannot otherwise reach that text (it belongs to no element of its own); pass
|
|
430
|
+
* each unit to {@link applyPasses}, which formats a run without merging its
|
|
431
|
+
* container's block children.
|
|
432
|
+
*/
|
|
433
|
+
export function collectProseUnits(root, options = {}) {
|
|
434
|
+
const { shouldSkip, isTransformable } = resolveCollectOptions(options);
|
|
435
|
+
return collectProseUnitsImpl(root, shouldSkip, 0, undefined, isTransformable);
|
|
348
436
|
}
|
|
349
437
|
function runHasProse(children, shouldSkip) {
|
|
350
438
|
return children.some((child) => (child.type === "text" && child.value.trim() !== "") ||
|
|
@@ -418,6 +506,16 @@ function flattenRunProse(container, children, shouldSkip, options) {
|
|
|
418
506
|
collectProse(child, 1, c);
|
|
419
507
|
return { nodes: c.nodes, opaqueBefore: c.opaqueBefore };
|
|
420
508
|
}
|
|
509
|
+
/**
|
|
510
|
+
* A single spanning ProseView over a run's loose inline children, with a
|
|
511
|
+
* boundary at every opaque gap — the run analogue of {@link proseViewOf}. Null
|
|
512
|
+
* when the run holds no transformable text.
|
|
513
|
+
*/
|
|
514
|
+
function runViewOf(container, children, options) {
|
|
515
|
+
const shouldSkip = options.shouldSkip ?? (() => false);
|
|
516
|
+
const { nodes } = flattenRunProse(container, children, shouldSkip, options);
|
|
517
|
+
return nodes.length === 0 ? null : buildProseView(nodes);
|
|
518
|
+
}
|
|
421
519
|
function markDescendants(node, set, depth = 0) {
|
|
422
520
|
/* istanbul ignore if -- defensive: prevents stack overflow from malicious HTML */
|
|
423
521
|
if (depth > MAX_RECURSION_DEPTH) {
|
|
@@ -433,7 +531,11 @@ function markDescendants(node, set, depth = 0) {
|
|
|
433
531
|
export function rehypePunctilio(options = {}) {
|
|
434
532
|
assertKnownOptionKeys(options, REHYPE_OPTION_KEYS, "rehypePunctilio");
|
|
435
533
|
const { skipTags, skipClasses, shouldSkipText, transformAllElements, ...transformOptions } = options;
|
|
436
|
-
const { shouldSkip, isTransformable } = resolveCollectOptions({
|
|
534
|
+
const { shouldSkip, isTransformable } = resolveCollectOptions({
|
|
535
|
+
skipTags,
|
|
536
|
+
skipClasses,
|
|
537
|
+
transformAllElements,
|
|
538
|
+
});
|
|
437
539
|
// Allocate the per-element options object once; it's read-only inside
|
|
438
540
|
// proseViewOf, so sharing across calls is safe and avoids a fresh
|
|
439
541
|
// allocation per transformable element.
|
package/dist/rehype.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rehype.js","sourceRoot":"","sources":["../src/rehype.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE7D,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAyB,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAA;AACpD,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACrE,OAAO,EAAE,cAAc,EAAkC,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAoDhG,MAAM,iBAAiB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;AAE7G,0EAA0E;AAC1E,2EAA2E;AAC3E,0EAA0E;AAC1E,yBAAyB;AACzB,MAAM,eAAe,GAAG,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;AAE7C,2EAA2E;AAC3E,4EAA4E;AAC5E,0EAA0E;AAC1E,8EAA8E;AAC9E,iBAAiB;AACjB,MAAM,wBAAwB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AAEpD,iFAAiF;AACjF,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,EAAE,sBAAsB,CAAC,CAAA;AAE/H,2DAA2D;AAC3D,MAAM,CAAC,MAAM,kBAAkB,GAAsB,CAAC,GAAG,qBAAqB,EAAE,GAAG,uBAAuB,CAAC,CAAA;AAE3G,6EAA6E;AAC7E,gFAAgF;AAChF,uEAAuE;AACvE,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO;IAC1C,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ;CACpD,CAAC,CAAA;AAoBF,SAAS,YAAY,CAAC,IAA8B,EAAE,KAAa,EAAE,CAAiB;IACpF,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAChC,OAAM;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,qEAAqE;YACrE,+DAA+D;YAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC;gBAAE,CAAC,CAAC,aAAa,GAAG,IAAI,CAAA;YACpD,OAAM;QACR,CAAC;QACD,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;YACvC,CAAC,CAAC,aAAa,GAAG,IAAI,CAAA;YACtB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,SAAS;YAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACvC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ;YAAE,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;QACpE,IAAI,CAAC,CAAC,SAAS;YAAE,CAAC,CAAC,SAAS,CAAC,GAAG,EAAE,CAAA;QAClC,OAAM;IACR,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,uEAAuE;QACvE,sEAAsE;QACtE,8DAA8D;QAC9D,IAAI,CAAC,CAAC,cAAc,IAAI,CAAC,CAAC,SAAS,IAAI,CAAC,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC;YACnF,yEAAyE;YACzE,CAAC,CAAC,aAAa,GAAG,IAAI,CAAA;YACtB,OAAM;QACR,CAAC;QACD,IAAI,CAAC,CAAC,aAAa,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;YAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;QAC7E,CAAC,CAAC,aAAa,GAAG,KAAK,CAAA;QACvB,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpB,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,UAA4B,EAAE,OAAiC;IACnF,MAAM,cAAc,GAAG,OAAO,EAAE,cAAc,CAAA;IAC9C,OAAO;QACL,KAAK,EAAE,EAAE;QACT,YAAY,EAAE,IAAI,GAAG,EAAE;QACvB,UAAU;QACV,cAAc;QACd,oEAAoE;QACpE,sEAAsE;QACtE,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI;QACrC,aAAa,EAAE,KAAK;KACrB,CAAA;AACH,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,YAAY,CAC1B,IAA8B,EAC9B,UAA4B,EAC5B,OAAiC;IAEjC,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC3C,YAAY,CAAC,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACxB,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;AACzD,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAA8B,EAC9B,UAA4B,EAC5B,OAAiC;IAEjC,OAAO,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,KAAK,CAAA;AACtD,CAAC;AAED,MAAM,UAAU,cAAc,CAC5B,IAAa,EACb,aAA+B,GAAG,EAAE,CAAC,KAAK;IAE1C,OAAO,gBAAgB,CAAC,IAAI,EAAE,UAAU,CAAC;SACtC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC;SACnB,IAAI,CAAC,EAAE,CAAC,CAAA;AACb,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,IAA0B,EAC1B,QAAgB,CAAC;IAEjB,IAAI,CAAC,IAAI,IAAI,KAAK,GAAG,mBAAmB;QAAE,OAAO,IAAI,CAAA;IAErD,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,IAAY,CAAA;IACrB,CAAC;IAED,IAAI,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,KAAe,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;YAC7D,IAAI,QAAQ;gBAAE,OAAO,QAAQ,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC;AAED,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAA;AACzC,MAAM,gBAAgB,GAA2B,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAA;AAEvE,sEAAsE;AACtE,uEAAuE;AACvE,MAAM,UAAU,sBAAsB,CAAC,KAAa;IAClD,IAAI,CAAC,KAAK;QAAE,OAAM;IAElB,MAAM,KAAK,GAAa,EAAE,CAAA;IAE1B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAClB,CAAC;aAAM,IAAI,IAAI,IAAI,gBAAgB,EAAE,CAAC;YACpC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,IAAI,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC3E,KAAK,CAAC,GAAG,EAAE,CAAA;YACb,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,wBAAwB,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;YAC9E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,KAAK,CAAC,wBAAwB,iBAAiB,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC,CAAA;IAC9E,CAAC;AACH,CAAC;AAOD;;;;;;GAMG;AACH,MAAM,UAAU,WAAW,CAAC,OAAgB,EAAE,UAA8B,EAAE;IAC5E,iFAAiF;IACjF,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAChE,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,cAAc,CAAC,SAAS,CAAC,CAAA;AAClC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,YAAY,CAAC,OAAgB,EAAE,UAA8B,EAAE;IAC7E,iFAAiF;IACjF,IAAI,CAAC,OAAO,EAAE,QAAQ,EAAE,CAAC;QACvB,OAAO,EAAE,CAAA;IACX,CAAC;IACD,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAA;IACtD,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,OAAO,CAAC,CAAA;IAC1E,OAAO,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC,CAAA;AAClF,CAAC;AAiBD,SAAS,gBAAgB,CAAC,KAAgB;IACxC,OAAO,OAAO,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,KAAK,CAAA;AAC9D,CAAC;AAED,+EAA+E;AAC/E,SAAS,eAAe,CACtB,IAA8C,EAC9C,KAA+C;IAE/C,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAA;IACvB,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAA;IACvB,OAAO,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,KAAK,CAAC,GAAG,IAAI,CAAC,CAAA;AACrD,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CACzB,OAAgB,EAChB,MAA4B,EAC5B,UAA8B,EAAE;IAEhC,IAAI,WAAW,GAAqB,IAAI,CAAA;IACxC,IAAI,iBAAiB,GAAoE,IAAI,CAAA;IAE7F,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,cAAc,EAAE,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAEpE,MAAM,cAAc,GAClB,iBAAiB,KAAK,IAAI;YAC1B,iBAAiB,CAAC,UAAU,KAAK,UAAU;YAC3C,iBAAiB,CAAC,cAAc,KAAK,cAAc,CAAA;QACrD,IAAI,CAAC,cAAc,EAAE,CAAC;YACpB,WAAW,GAAG,WAAW,CAAC,OAAO,EAAE;gBACjC,UAAU,EAAE,eAAe,CAAC,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC;gBAC3D,cAAc,EAAE,eAAe,CAAC,OAAO,CAAC,cAAc,EAAE,cAAc,CAAC;aACxE,CAAC,CAAA;YACF,iBAAiB,GAAG,EAAE,UAAU,EAAE,cAAc,EAAE,CAAA;QACpD,CAAC;QAED,yEAAyE;QACzE,wDAAwD;QACxD,IAAI,WAAW,KAAK,IAAI,EAAE,CAAC;YACzB,SAAQ;QACV,CAAC;QACD,IAAI,CAAC,WAAW,CAAC,CAAA;IACnB,CAAC;AACH,CAAC;AAED,yEAAyE;AACzE,wEAAwE;AACxE,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC;IAC7B,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,QAAQ;IAChE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ;IAC3D,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;IACpD,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI;IACnD,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI;CACrC,CAAC,CAAA;AAEF,MAAM,sBAAsB,GAAG,IAAI,GAAG,CAAC;IACrC,GAAG;IACH,IAAI;IACJ,QAAQ;IACR,GAAG;IACH,GAAG;IACH,GAAG;IACH,GAAG;IACH,KAAK;IACL,KAAK;IACL,OAAO;IACP,KAAK;IACL,KAAK;IACL,MAAM;IACN,MAAM;IACN,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,YAAY;IACZ,YAAY;IACZ,SAAS;IACT,QAAQ;IACR,MAAM;IACN,GAAG;IACH,GAAG;IACH,OAAO;IACP,QAAQ;IACR,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;IACT,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,MAAM;IACN,KAAK;IACL,SAAS;IACT,MAAM;IACN,MAAM;IACN,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT,CAAC,CAAA;AAEF,4EAA4E;AAC5E,6EAA6E;AAC7E,SAAS,sBAAsB,CAAC,OAAe;IAC7C,OAAO,sBAAsB,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;AACrE,CAAC;AAED,SAAS,iBAAiB,CACxB,IAA8B,EAC9B,UAA4B,EAC5B,QAAgB,CAAC;IAEjB,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAChC,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,OAAO,KAAK,CAAA;IACd,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;IACvF,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAsBD,SAAS,qBAAqB,CAAC,OAAkC;IAC/D,MAAM,EAAE,QAAQ,GAAG,iBAAiB,EAAE,WAAW,GAAG,EAAE,EAAE,UAAU,EAAE,oBAAoB,GAAG,KAAK,EAAE,GAAG,OAAO,CAAA;IAE5G,4EAA4E;IAC5E,8EAA8E;IAC9E,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;IAC/F,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,WAAW,CAAC,CAAA;IAEzC,MAAM,YAAY,GAAG,CAAC,IAAa,EAAW,EAAE;QAC9C,IAAI,YAAY,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QACzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAA;QAC7C,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;YACvC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YAC9D,CAAC,CAAC,OAAO,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACjE,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAA;IACrD,CAAC,CAAA;IAED,OAAO;QACL,UAAU,EAAE,CAAC,IAAI,EAAE,EAAE,CACnB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC;QACrF,sEAAsE;QACtE,uEAAuE;QACvE,0BAA0B;QAC1B,eAAe,EAAE,oBAAoB;YACnC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC;YACrD,CAAC,CAAC,sBAAsB;KAC3B,CAAA;AACH,CAAC;AAUD;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAa,EAAE,UAAqC,EAAE;IACvF,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;IACtE,OAAO,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,SAAS,EAAE,eAAe,CAAC;SAC1E,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACvE,CAAC;AAED,SAAS,WAAW,CAAC,QAAmC,EAAE,UAA4B;IACpF,OAAO,QAAQ,CAAC,IAAI,CAClB,CAAC,KAAK,EAAE,EAAE,CACR,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC;QACpD,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CACrE,CAAA;AACH,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAa,EACb,UAA4B,EAC5B,KAAa,EACb,kBAAoD,EACpD,eAA6C;IAE7C,kFAAkF;IAClF,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAChC,OAAO,EAAE,CAAA;IACX,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,CAAC,IAAI,kBAAkB,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtD,OAAO,EAAE,CAAA;IACX,CAAC;IAED,2EAA2E;IAC3E,4EAA4E;IAC5E,6EAA6E;IAC7E,0EAA0E;IAC1E,4EAA4E;IAC5E,MAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACtC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAC9D,CAAA;IACD,MAAM,gBAAgB,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CACzC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CACzE,CAAA;IAED,6EAA6E;IAC7E,gFAAgF;IAChF,IACE,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAC,gBAAgB;QACjB,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,EACtD,CAAC;QACD,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAA;IAC7C,CAAC;IAED,MAAM,KAAK,GAAgB,EAAE,CAAA;IAC7B,IAAI,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,gBAAgB,EAAE,CAAC;QACtD,0EAA0E;QAC1E,wEAAwE;QACxE,IAAI,GAAG,GAAqB,EAAE,CAAA;QAC9B,MAAM,QAAQ,GAAG,GAAG,EAAE;YACpB,IAAI,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC;gBAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAA;YAC7F,GAAG,GAAG,EAAE,CAAA;QACV,CAAC,CAAA;QACD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAClE,QAAQ,EAAE,CAAA;gBACV,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,CAAC;oBACzG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACjB,CAAC;QACH,CAAC;QACD,QAAQ,EAAE,CAAA;IACZ,CAAC;SAAM,CAAC;QACN,2EAA2E;QAC3E,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7B,KAAK,MAAM,CAAC,IAAI,qBAAqB,CAAC,KAAK,EAAE,UAAU,EAAE,KAAK,GAAG,CAAC,EAAE,kBAAkB,EAAE,eAAe,CAAC,EAAE,CAAC;oBACzG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,0EAA0E;AAC1E,gFAAgF;AAChF,oEAAoE;AACpE,SAAS,eAAe,CACtB,SAAkB,EAClB,QAAmC,EACnC,UAA4B,EAC5B,OAA2B;IAE3B,MAAM,CAAC,GAAG,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IAC3C,IAAI,CAAC,CAAC,SAAS;QAAE,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IAC5C,KAAK,MAAM,KAAK,IAAI,QAAQ;QAAE,YAAY,CAAC,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACvD,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC,CAAC,YAAY,EAAE,CAAA;AACzD,CAAC;AAED,SAAS,eAAe,CAAC,IAAa,EAAE,GAAiB,EAAE,QAAgB,CAAC;IAC1E,kFAAkF;IAClF,IAAI,KAAK,GAAG,mBAAmB,EAAE,CAAC;QAChC,OAAM;IACR,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;YACd,eAAe,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,CAAC,CAAA;QACxC,CAAC;IACH,CAAC;AACH,CAAC;AAED,MAAM,UAAU,eAAe,CAC7B,UAAkC,EAAE;IAEpC,qBAAqB,CAAC,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,CAAC,CAAA;IAErE,MAAM,EACJ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,oBAAoB,EACpB,GAAG,gBAAgB,EACpB,GAAG,OAAO,CAAA;IAEX,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,GAAG,qBAAqB,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC,CAAA;IAE9G,sEAAsE;IACtE,kEAAkE;IAClE,wCAAwC;IACxC,MAAM,WAAW,GAAuB,cAAc;QACpD,CAAC,CAAC,EAAE,UAAU,EAAE,cAAc,EAAE;QAChC,CAAC,CAAC,EAAE,UAAU,EAAE,CAAA;IAElB,OAAO,CAAC,IAAU,EAAE,EAAE;QACpB,wDAAwD;QACxD,MAAM,WAAW,GAAG,IAAI,GAAG,EAAW,CAAA;QAEtC,YAAY,CAAC,IAAI,EAAE,SAAS,EAAE,CAAC,IAAI,EAAE,EAAE;YACrC,sCAAsC;YACtC,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,OAAO,IAAI,CAAA;YACb,CAAC;YAED,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACrB,OAAO,IAAI,CAAA;YACb,CAAC;YAED,0DAA0D;YAC1D,MAAM,KAAK,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,EAAE,WAAW,EAAE,eAAe,CAAC,CAAA;YACtF,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;oBAC5B,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBACnC,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,EAAE,CAAC;4BAC3D,aAAa,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;wBACvC,CAAC;wBACD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;wBAC7B,kEAAkE;wBAClE,eAAe,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,CAAA;oBAC5C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,UAAU,EAAE,WAAW,CAAC,CAAA;oBACvG,KAAK,MAAM,KAAK,IAAI,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,EAAE,CAAC;wBACxD,aAAa,CAAC,cAAc,CAAC,KAAK,CAAC,EAAE,gBAAgB,CAAC,CAAA;oBACxD,CAAC;oBACD,mEAAmE;oBACnE,uDAAuD;oBACvD,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;oBAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;wBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;4BAC7B,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAA;4BACtB,eAAe,CAAC,KAAK,EAAE,WAAW,CAAC,CAAA;wBACrC,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAED,eAAe,eAAe,CAAA"}
|
|
1
|
+
{"version":3,"file":"rehype.js","sourceRoot":"","sources":["../src/rehype.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/quote-classifier.ts
CHANGED
|
@@ -949,6 +949,49 @@ function applyRelocations(order: Item[], moves: Relocation[]): Item[] {
|
|
|
949
949
|
return result
|
|
950
950
|
}
|
|
951
951
|
|
|
952
|
+
const OPEN_BRACKETS = new Set<string>(["(", "[", "{"])
|
|
953
|
+
const CLOSE_BRACKETS = new Set<string>([")", "]", "}"])
|
|
954
|
+
|
|
955
|
+
/**
|
|
956
|
+
* Unmatched open brackets (`(`, `[`, `{`) strictly before each item — a
|
|
957
|
+
* position is inside a bracket pair when its entry is > 0. Brackets never move
|
|
958
|
+
* during placement, so the depths hold across the fixpoint's rounds. Boundary
|
|
959
|
+
* items are transparent; a closer with no opener above it floors the depth at 0.
|
|
960
|
+
*/
|
|
961
|
+
function bracketDepths(order: Item[]): number[] {
|
|
962
|
+
const depths: number[] = []
|
|
963
|
+
let depth = 0
|
|
964
|
+
for (const item of order) {
|
|
965
|
+
depths.push(depth)
|
|
966
|
+
if (item.boundary) continue
|
|
967
|
+
if (OPEN_BRACKETS.has(item.ch)) depth++
|
|
968
|
+
else if (CLOSE_BRACKETS.has(item.ch) && depth > 0) depth--
|
|
969
|
+
}
|
|
970
|
+
return depths
|
|
971
|
+
}
|
|
972
|
+
|
|
973
|
+
/**
|
|
974
|
+
* True iff the comma at `punctIndex` delimits two quoted items inside a bracket
|
|
975
|
+
* pair (`["a", "b"]`, `("a", "b")`, `{"a", "b"}`). Such a comma is a list
|
|
976
|
+
* separator, not sentence punctuation, so American placement must leave it
|
|
977
|
+
* outside the closer — pulling it in would corrupt the quoted item's exact text
|
|
978
|
+
* (`"a,"`). Detected when the run sits inside a bracket (depth > 0; a stray
|
|
979
|
+
* closer floors the count at 0, so an unbalanced `depth <= 0` reads as outside)
|
|
980
|
+
* and the next item after the comma opens the following quoted item. Bare
|
|
981
|
+
* `"a", "b"` in running prose (depth 0) is left to the American rule, where a
|
|
982
|
+
* comma between quoted words correctly moves inside.
|
|
983
|
+
*/
|
|
984
|
+
function isBracketedListSeparator(order: Item[], runStart: number, punctIndex: number, depths: number[]): boolean {
|
|
985
|
+
if (order[punctIndex].ch !== "," || depths[runStart] <= 0) return false
|
|
986
|
+
// The next quoted item always opens after the separator's single space
|
|
987
|
+
// (`, "b"`): a comma-adjacent quote never satisfies an opener rule, so the
|
|
988
|
+
// space is invariant.
|
|
989
|
+
const space = nextIndex(order, punctIndex, 1)
|
|
990
|
+
if (!isCharItem(order, space, " ")) return false
|
|
991
|
+
const opener = order[nextIndex(order, space, 1)]
|
|
992
|
+
return opener?.ch === LEFT_DOUBLE_QUOTE || opener?.ch === LEFT_SINGLE_QUOTE
|
|
993
|
+
}
|
|
994
|
+
|
|
952
995
|
/**
|
|
953
996
|
* American style: a period or comma directly after a closing-quote run moves
|
|
954
997
|
* to just before the run, unless the character before the run is terminal
|
|
@@ -969,6 +1012,7 @@ function movePunctuationInside(order: Item[], isMovable: (items: Item[], index:
|
|
|
969
1012
|
}
|
|
970
1013
|
}
|
|
971
1014
|
const movedFrom = new Set<number>()
|
|
1015
|
+
const depths = bracketDepths(order)
|
|
972
1016
|
let position = 0
|
|
973
1017
|
while (position < order.length) {
|
|
974
1018
|
const runStart = order[position].boundary ? position + 1 : position
|
|
@@ -1019,6 +1063,12 @@ function movePunctuationInside(order: Item[], isMovable: (items: Item[], index:
|
|
|
1019
1063
|
position++
|
|
1020
1064
|
continue
|
|
1021
1065
|
}
|
|
1066
|
+
// A comma between two quoted items inside brackets delimits a list; keep it
|
|
1067
|
+
// outside the closer instead of corrupting the item's text (`"a,"`).
|
|
1068
|
+
if (isBracketedListSeparator(order, runStart, punctIndex, depths)) {
|
|
1069
|
+
position++
|
|
1070
|
+
continue
|
|
1071
|
+
}
|
|
1022
1072
|
// Moving the punctuation inside strips the run of its ending context: an
|
|
1023
1073
|
// unresolved straight single quote earlier in the text whose closer-ahead
|
|
1024
1074
|
// scan reads a single closer in this run would stop seeing it as a closer
|