punctilio 3.13.2 → 4.0.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/.pre-commit-hooks.yaml +1 -1
- package/README.md +30 -11
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +190 -60
- package/dist/cli.js.map +1 -1
- package/dist/html.d.ts +5 -0
- package/dist/html.d.ts.map +1 -1
- package/dist/html.js +8 -2
- package/dist/html.js.map +1 -1
- package/dist/index.d.ts +7 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -2
- package/dist/index.js.map +1 -1
- package/dist/markdown.d.ts +9 -0
- package/dist/markdown.d.ts.map +1 -1
- package/dist/markdown.js +7 -1
- package/dist/markdown.js.map +1 -1
- package/dist/prettier-plugin.d.ts.map +1 -1
- package/dist/prettier-plugin.js +13 -1
- package/dist/prettier-plugin.js.map +1 -1
- package/dist/rehype.d.ts +4 -0
- package/dist/rehype.d.ts.map +1 -1
- package/dist/rehype.js +17 -7
- package/dist/rehype.js.map +1 -1
- package/dist/remark.d.ts +5 -0
- package/dist/remark.d.ts.map +1 -1
- package/dist/remark.js +7 -6
- package/dist/remark.js.map +1 -1
- package/dist/symbols.d.ts.map +1 -1
- package/dist/symbols.js +2 -3
- package/dist/symbols.js.map +1 -1
- package/dist/utils.d.ts +18 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +40 -3
- package/dist/utils.js.map +1 -1
- package/package.json +2 -3
- package/src/cli.ts +200 -59
- package/src/html.ts +11 -2
- package/src/index.ts +15 -4
- package/src/markdown.ts +15 -1
- package/src/prettier-plugin.ts +13 -1
- package/src/rehype.ts +21 -7
- package/src/remark.ts +13 -6
- package/src/symbols.ts +2 -3
- package/src/utils.ts +48 -3
package/.pre-commit-hooks.yaml
CHANGED
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
[](https://github.com/alexander-turner/punctilio/actions/workflows/test.yml)
|
|
4
4
|
[](https://github.com/alexander-turner/punctilio/actions/workflows/lint.yml)
|
|
5
|
-
[](https://github.com/alexander-turner/punctilio/actions/workflows/coverage-badge.yml)
|
|
6
6
|
|
|
7
7
|
Pretty good at making your text pretty. The most feature-complete and reliable English typography package. `punctilio` transforms plain ASCII into typographically correct Unicode, even across HTML element boundaries. Try it live at [`turntrout.com/punctilio`](https://turntrout.com/punctilio).
|
|
8
8
|
|
|
@@ -35,7 +35,7 @@ I tested `punctilio` against [`smartypants`](https://www.npmjs.com/package/smart
|
|
|
35
35
|
| :------------------------------------: | :----------------------------------------: | :---------: |
|
|
36
36
|
| <span class="no-formatting">5x5</span> | <span class="no-formatting">5x5</span> (✗) | 5×5 (✓) |
|
|
37
37
|
|
|
38
|
-
My [`benchmark.mjs`](https://github.com/alexander-turner/punctilio/blob/main/benchmark.mjs) measures how well libraries handle a [wide range of scenarios](https://github.com/alexander-turner/punctilio/blob/main/benchmark_cases.json). The benchmark normalizes stylistic differences (e.g. non-breaking vs regular space, British vs American dash spacing) for fair comparison.
|
|
38
|
+
My [`benchmark.mjs`](https://github.com/alexander-turner/punctilio/blob/main/benchmark.mjs) measures how well libraries handle a [wide range of scenarios](https://github.com/alexander-turner/punctilio/blob/main/benchmark_cases.json). The benchmark normalizes stylistic differences (e.g. non-breaking vs regular space, British vs American dash spacing) for fair comparison.
|
|
39
39
|
|
|
40
40
|
| Package | Passed (of 151) |
|
|
41
41
|
| -------------------: | :-------------- |
|
|
@@ -46,6 +46,8 @@ My [`benchmark.mjs`](https://github.com/alexander-turner/punctilio/blob/main/ben
|
|
|
46
46
|
| `retext-smartypants` | 69 (46%) |
|
|
47
47
|
| `typograf` | 64 (42%) |
|
|
48
48
|
|
|
49
|
+
_Note on benchmark construction: I assembled the initial cases myself. I then sought out cases where `punctilio` failed and competitors succeeded, and improved `punctilio` to succeed there as well. The benchmark may nonetheless remain biased towards `punctilio`._
|
|
50
|
+
|
|
49
51
|
| Feature | Example | `punctilio` | `smartypants` | `tipograph` | `smartquotes` | `typograf` |
|
|
50
52
|
| -------------------: | :---------------------------------------------------: | :---------: | :-----------: | :---------: | :-----------: | :--------: |
|
|
51
53
|
| Smart quotes | <span class="no-formatting">"hello" → “hello”</span> | ✓ | ✓ | ✓ | ✓ | ✓ |
|
|
@@ -69,13 +71,21 @@ My [`benchmark.mjs`](https://github.com/alexander-turner/punctilio/blob/main/ben
|
|
|
69
71
|
|
|
70
72
|
### Known limitations of `punctilio`
|
|
71
73
|
|
|
72
|
-
|
|
|
73
|
-
|
|
|
74
|
-
| `'99 but 5' clearance` | `5'`
|
|
74
|
+
| Input | Behavior | Why |
|
|
75
|
+
| :--- | :--- | :--- |
|
|
76
|
+
| `'99 but 5' clearance` | `5'` stays straight | A leading apostrophe and an opening quote are indistinguishable without semantics |
|
|
77
|
+
| Single-quoted passage over 1,000 chars | Opener becomes an apostrophe | The opener-vs-apostrophe test scans only 1,000 characters ahead for the closing quote |
|
|
78
|
+
| `"?"` with a distant closer | Quote stays straight | Quoted-punctuation detection looks only 50 characters ahead for the closing quote |
|
|
79
|
+
| `word’”’”’.` (5+ nested closers) | 5th-level punctuation not moved | Punctuation placement handles at most 4 consecutive closing quotes |
|
|
80
|
+
| `1-850` | Hyphen kept, not en-dashed | Ranges of the form `1-8XX` are assumed to be US toll-free numbers |
|
|
81
|
+
| `(c) MegaCorp` | `(c)` stays literal | `(c) → ©` requires a nearby year or the word “copyright” |
|
|
82
|
+
| `<textarea>`, other non-allowlisted tags | Left untouched | The rehype plugin transforms only an allowlist of elements (plus custom elements) |
|
|
83
|
+
|
|
84
|
+
Several of these bounds (the 1,000- and 50-character lookaheads, the 4-quote nesting cap) exist to keep the quote regexes provably linear-time; they could be lifted by a single-pass quote scanner.
|
|
75
85
|
|
|
76
86
|
## Test suite
|
|
77
87
|
|
|
78
|
-
Setting aside the benchmark, `punctilio`’s test suite runs at 100% branch coverage with well over a thousand tests, including edge cases derived from competitor libraries ([`smartquotes`](https://github.com/kellym/smartquotes.js), [`retext-smartypants`](https://github.com/retextjs/retext-smartypants), [`typograf`](https://github.com/typograf/typograf)) and the [Standard Ebooks typography manual](https://standardebooks.org/manual/). I also verify that all transformations are stable when applied multiple times. Uses [`recheck`](https://makenowjust-labs.github.io/recheck/) to statically verify the absence of inefficient RegEx patterns.
|
|
88
|
+
Setting aside the benchmark, `punctilio`’s test suite runs at 100% branch coverage with well over a thousand tests, including edge cases derived from competitor libraries ([`smartquotes`](https://github.com/kellym/smartquotes.js), [`retext-smartypants`](https://github.com/retextjs/retext-smartypants), [`typograf`](https://github.com/typograf/typograf)) and the [Standard Ebooks typography manual](https://standardebooks.org/manual/). The 100% figure isn’t hand-maintained: Jest’s `coverageThreshold` requires 100% branches, functions, lines, and statements, CI fails below that, and the coverage badge above is regenerated from the actual coverage report on every push to `main`. I also verify that all transformations are stable when applied multiple times. Uses [`recheck`](https://makenowjust-labs.github.io/recheck/) to statically verify the absence of inefficient RegEx patterns.
|
|
79
89
|
|
|
80
90
|
## Works with HTML DOMs via separation boundaries
|
|
81
91
|
|
|
@@ -133,10 +143,12 @@ transform(text, {
|
|
|
133
143
|
superscript: false, // 1st → 1ˢᵗ
|
|
134
144
|
ligatures: false, // ??? → ⁇, ?! → ⁈, !? → ⁉, !!! → !
|
|
135
145
|
nbsp: true, // non-breaking spaces (after honorifics, between numbers and units, etc.)
|
|
136
|
-
checkIdempotency:
|
|
146
|
+
checkIdempotency: false, // verify transform(transform(x)) === transform(x); doubles the work
|
|
137
147
|
});
|
|
138
148
|
```
|
|
139
149
|
|
|
150
|
+
Markdown sinks (`remarkPunctilio`, `transformMarkdown`, the Prettier plugin, and the CLI for Markdown files) default `nbsp` to `false` instead, because invisible U+00A0 characters in Markdown source files break `grep` and Ctrl+F. Pass `nbsp: true` (or the `--nbsp` CLI flag) to opt in.
|
|
151
|
+
|
|
140
152
|
The `rehype` plugin accepts additional options. Elements matching any `skipTags` tag name or carrying any `skipClasses` class are left untransformed (values shown are the defaults for `skipTags`):
|
|
141
153
|
|
|
142
154
|
```typescript
|
|
@@ -192,12 +204,15 @@ Code spans, fenced code blocks, and inline HTML are left untouched. The plugin c
|
|
|
192
204
|
### CLI
|
|
193
205
|
|
|
194
206
|
```bash
|
|
195
|
-
punctilio README.md
|
|
196
|
-
punctilio --
|
|
207
|
+
punctilio README.md # print formatted output to stdout
|
|
208
|
+
punctilio --write README.md 'docs/**/*.md' # format in place; globs expand internally
|
|
209
|
+
punctilio --check README.md # exit 1 if it would change anything
|
|
197
210
|
echo '"Hi" -- there' | punctilio - --type md
|
|
198
211
|
```
|
|
199
212
|
|
|
200
|
-
|
|
213
|
+
Two caveats before pointing the CLI (or the [pre-commit hook](#pre-commit) below) at an existing repo. First, the Markdown path re-serializes the whole document through `remark-stringify`, so the first run may produce formatting diffs beyond typography—escaping, list markers, and link syntax get normalized. Like Prettier, the output then stays stable on subsequent runs. If you already use Prettier, the [Prettier plugin](#prettier-plugin) avoids this double-formatting entirely, since Prettier keeps owning the printing.
|
|
214
|
+
|
|
215
|
+
Second, non-breaking spaces (U+00A0) are invisible in source files: they render fine, but they aren’t regular spaces, so Ctrl+F and `grep` matches against the source can miss. Markdown files therefore default to `nbsp` off; pass `--nbsp` (or set `nbsp: true` in config) to opt in. HTML files keep the default of `nbsp` on; pass `--no-nbsp` to keep them ASCII-spaced.
|
|
201
216
|
|
|
202
217
|
### pre-commit
|
|
203
218
|
|
|
@@ -229,5 +244,9 @@ repos:
|
|
|
229
244
|
- Single quotes remain as curly quotes
|
|
230
245
|
- Punctuation outside quotes
|
|
231
246
|
- Setting either style to `none` skips the entire transform category: `punctuationStyle: 'none'` preserves straight quotes, apostrophes, and prime marks; `dashStyle: 'none'` preserves all hyphens, number ranges, date ranges, and minus signs.
|
|
232
|
-
- `punctilio` is idempotent by design: `transform(transform(text))` always equals `transform(text)`.
|
|
247
|
+
- `punctilio` is idempotent by design: `transform(transform(text))` always equals `transform(text)`. Set `checkIdempotency: true` to verify this on every call (off by default, since the check doubles the work); `punctilio`’s own test suite runs with it enabled.
|
|
233
248
|
- Use `classifyApostrophes(text)` to distinguish apostrophes from closing single quotes. It returns text with apostrophes as U+02BC (MODIFIER LETTER APOSTROPHE) and closing quotes as U+2019 (RIGHT SINGLE QUOTATION MARK). Per the [Unicode Standard](https://www.unicode.org/versions/Unicode16.0.0/core-spec/chapter-6/#G30602), `transform()` and `niceQuotes()` use U+2019 for both in their output.
|
|
249
|
+
|
|
250
|
+
## Changelog
|
|
251
|
+
|
|
252
|
+
See [CHANGELOG.md](CHANGELOG.md) for release history.
|
package/dist/cli.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAsBA,UAAU,KAAK;IACb,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;IACrC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAA;CAC9B;
|
|
1
|
+
{"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAsBA,UAAU,KAAK;IACb,KAAK,EAAE,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,CAAA;IACrC,MAAM,EAAE,MAAM,CAAC,cAAc,CAAA;IAC7B,MAAM,EAAE,MAAM,CAAC,cAAc,CAAA;CAC9B;AAkXD,4EAA4E;AAC5E,wBAAsB,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,CAqBvE"}
|
package/dist/cli.js
CHANGED
|
@@ -4,15 +4,15 @@ import { existsSync, mkdirSync, readFileSync, writeFileSync } from "node:fs";
|
|
|
4
4
|
import { readFile, writeFile } from "node:fs/promises";
|
|
5
5
|
import { dirname, extname, isAbsolute, join, relative, resolve } from "node:path";
|
|
6
6
|
import { fileURLToPath } from "node:url";
|
|
7
|
-
import {
|
|
7
|
+
import { parseArgs } from "node:util";
|
|
8
8
|
import { cosmiconfig } from "cosmiconfig";
|
|
9
9
|
import ignore from "ignore";
|
|
10
10
|
import { glob } from "tinyglobby";
|
|
11
|
-
import { transformMarkdown } from "./markdown.js";
|
|
12
|
-
import { transformHtml } from "./html.js";
|
|
11
|
+
import { MARKDOWN_ONLY_OPTION_KEYS, MARKDOWN_OPTION_KEYS, transformMarkdown } from "./markdown.js";
|
|
12
|
+
import { HTML_ONLY_OPTION_KEYS, HTML_OPTION_KEYS, transformHtml } from "./html.js";
|
|
13
13
|
import { PUNCTUATION_STYLES } from "./quotes.js";
|
|
14
14
|
import { DASH_STYLES } from "./dashes.js";
|
|
15
|
-
import { stableStringify } from "./utils.js";
|
|
15
|
+
import { assertKnownOptionKeys, omitKeys, stableStringify } from "./utils.js";
|
|
16
16
|
class UsageError extends Error {
|
|
17
17
|
}
|
|
18
18
|
const FILE_TYPES = ["md", "html"];
|
|
@@ -21,42 +21,148 @@ const BULLET_MARKERS = ["-", "*", "+"];
|
|
|
21
21
|
const RULE_MARKERS = ["-", "*", "_"];
|
|
22
22
|
const MARKDOWN_EXTENSIONS = new Set([".md", ".markdown"]);
|
|
23
23
|
const HTML_EXTENSIONS = new Set([".html", ".htm"]);
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
24
|
+
const PARSE_ARGS_OPTIONS = {
|
|
25
|
+
"bullet-marker": { type: "string" },
|
|
26
|
+
"cache-location": { type: "string" },
|
|
27
|
+
check: { type: "boolean" },
|
|
28
|
+
config: { type: "string" },
|
|
29
|
+
"dash-style": { type: "string" },
|
|
30
|
+
degrees: { type: "boolean" },
|
|
31
|
+
"emphasis-marker": { type: "string" },
|
|
32
|
+
fractions: { type: "boolean" },
|
|
33
|
+
help: { short: "h", type: "boolean" },
|
|
34
|
+
"ignore-path": { type: "string" },
|
|
35
|
+
ligatures: { type: "boolean" },
|
|
36
|
+
nbsp: { type: "boolean" },
|
|
37
|
+
"no-arrows": { type: "boolean" },
|
|
38
|
+
"no-cache": { type: "boolean" },
|
|
39
|
+
"no-collapse-spaces": { type: "boolean" },
|
|
40
|
+
"no-config": { type: "boolean" },
|
|
41
|
+
"no-fragment": { type: "boolean" },
|
|
42
|
+
"no-nbsp": { type: "boolean" },
|
|
43
|
+
"no-symbols": { type: "boolean" },
|
|
44
|
+
"punctuation-style": { type: "string" },
|
|
45
|
+
"rule-marker": { type: "string" },
|
|
46
|
+
"skip-class": { multiple: true, type: "string" },
|
|
47
|
+
"skip-tag": { multiple: true, type: "string" },
|
|
48
|
+
"stdin-filepath": { type: "string" },
|
|
49
|
+
"strong-marker": { type: "string" },
|
|
50
|
+
superscript: { type: "boolean" },
|
|
51
|
+
type: { type: "string" },
|
|
52
|
+
version: { short: "V", type: "boolean" },
|
|
53
|
+
write: { type: "boolean" },
|
|
54
|
+
};
|
|
55
|
+
const HELP_TEXT = `Usage: punctilio [options] [files...]
|
|
56
|
+
|
|
57
|
+
Apply typographic improvements to Markdown and HTML files.
|
|
58
|
+
|
|
59
|
+
Arguments:
|
|
60
|
+
files files to format (pass '-' to read from stdin)
|
|
61
|
+
|
|
62
|
+
Options:
|
|
63
|
+
-V, --version show version
|
|
64
|
+
--write rewrite files in place (default prints formatted output to stdout)
|
|
65
|
+
--check exit 1 if any file would change; write nothing
|
|
66
|
+
--config <path> path to a punctilio config file (otherwise auto-discovered)
|
|
67
|
+
--no-config ignore any auto-discovered config file
|
|
68
|
+
--ignore-path <path> path to an ignore file (otherwise .punctilioignore in cwd)
|
|
69
|
+
--no-cache disable the incremental cache (default location node_modules/.cache/punctilio/cache.json)
|
|
70
|
+
--cache-location <path> override the cache file location
|
|
71
|
+
--stdin-filepath <path> treat stdin as if it were this filename (infers type from extension)
|
|
72
|
+
--type <type> force file type (otherwise inferred from extension) (choices: ${FILE_TYPES.join(", ")})
|
|
73
|
+
--punctuation-style <style> quote and punctuation style (choices: ${PUNCTUATION_STYLES.join(", ")})
|
|
74
|
+
--dash-style <style> dash style (choices: ${DASH_STYLES.join(", ")})
|
|
75
|
+
--no-symbols disable symbol transforms (ellipsis, ×, ©, etc.)
|
|
76
|
+
--nbsp enable non-breaking space insertion (default: on for HTML, off for Markdown)
|
|
77
|
+
--no-nbsp disable non-breaking space insertion
|
|
78
|
+
--no-collapse-spaces preserve runs of consecutive spaces
|
|
79
|
+
--no-arrows disable -> → arrow transforms
|
|
80
|
+
--fractions enable 1/2 → ½
|
|
81
|
+
--degrees enable 20 C → 20 °C
|
|
82
|
+
--superscript enable 1st → 1ˢᵗ
|
|
83
|
+
--ligatures enable !? → ⁉
|
|
84
|
+
--emphasis-marker <char> markdown emphasis character (choices: ${EMPHASIS_MARKERS.join(", ")})
|
|
85
|
+
--strong-marker <char> markdown strong emphasis character (choices: ${EMPHASIS_MARKERS.join(", ")})
|
|
86
|
+
--bullet-marker <char> markdown list bullet character (choices: ${BULLET_MARKERS.join(", ")})
|
|
87
|
+
--rule-marker <char> markdown thematic break character (choices: ${RULE_MARKERS.join(", ")})
|
|
88
|
+
--skip-tag <tag> HTML tag whose contents are left alone (repeatable)
|
|
89
|
+
--skip-class <class> HTML class name whose elements are skipped (repeatable)
|
|
90
|
+
--no-fragment parse input as a full HTML document
|
|
91
|
+
-h, --help display help for command
|
|
92
|
+
`;
|
|
93
|
+
function parseRawArgs(args) {
|
|
94
|
+
try {
|
|
95
|
+
return parseArgs({
|
|
96
|
+
args,
|
|
97
|
+
allowPositionals: true,
|
|
98
|
+
options: PARSE_ARGS_OPTIONS,
|
|
99
|
+
strict: true,
|
|
100
|
+
tokens: true,
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
// parseArgs throws on unknown options and missing option values.
|
|
105
|
+
throw new UsageError(err.message);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
function parseChoice(flag, value, choices) {
|
|
109
|
+
if (value === undefined)
|
|
110
|
+
return undefined;
|
|
111
|
+
if (!choices.includes(value)) {
|
|
112
|
+
throw new UsageError(`option '${flag}' argument '${value}' is invalid. Allowed choices are ${choices.join(", ")}.`);
|
|
113
|
+
}
|
|
114
|
+
return value;
|
|
115
|
+
}
|
|
116
|
+
/** Maps a `--no-x` boolean to the library's `x: false`, or undefined when unset. */
|
|
117
|
+
function negated(noFlag) {
|
|
118
|
+
return noFlag ? false : undefined;
|
|
119
|
+
}
|
|
120
|
+
/** Returns the name of whichever of `names` appears last on the command line. */
|
|
121
|
+
function lastFlagToken(tokens, names) {
|
|
122
|
+
let lastName;
|
|
123
|
+
for (const token of tokens) {
|
|
124
|
+
if (token.kind === "option" && names.includes(token.name))
|
|
125
|
+
lastName = token.name;
|
|
126
|
+
}
|
|
127
|
+
return lastName;
|
|
128
|
+
}
|
|
129
|
+
function buildFlags(values, tokens) {
|
|
130
|
+
const flags = {
|
|
131
|
+
write: values.write,
|
|
132
|
+
check: values.check,
|
|
133
|
+
cache: negated(values["no-cache"]),
|
|
134
|
+
cacheLocation: values["cache-location"],
|
|
135
|
+
ignorePath: values["ignore-path"],
|
|
136
|
+
stdinFilepath: values["stdin-filepath"],
|
|
137
|
+
type: parseChoice("--type", values.type, FILE_TYPES),
|
|
138
|
+
punctuationStyle: parseChoice("--punctuation-style", values["punctuation-style"], PUNCTUATION_STYLES),
|
|
139
|
+
dashStyle: parseChoice("--dash-style", values["dash-style"], DASH_STYLES),
|
|
140
|
+
symbols: negated(values["no-symbols"]),
|
|
141
|
+
collapseSpaces: negated(values["no-collapse-spaces"]),
|
|
142
|
+
arrows: negated(values["no-arrows"]),
|
|
143
|
+
fractions: values.fractions,
|
|
144
|
+
degrees: values.degrees,
|
|
145
|
+
superscript: values.superscript,
|
|
146
|
+
ligatures: values.ligatures,
|
|
147
|
+
emphasisMarker: parseChoice("--emphasis-marker", values["emphasis-marker"], EMPHASIS_MARKERS),
|
|
148
|
+
strongMarker: parseChoice("--strong-marker", values["strong-marker"], EMPHASIS_MARKERS),
|
|
149
|
+
bulletMarker: parseChoice("--bullet-marker", values["bullet-marker"], BULLET_MARKERS),
|
|
150
|
+
ruleMarker: parseChoice("--rule-marker", values["rule-marker"], RULE_MARKERS),
|
|
151
|
+
skipTag: values["skip-tag"],
|
|
152
|
+
skipClass: values["skip-class"],
|
|
153
|
+
fragment: negated(values["no-fragment"]),
|
|
154
|
+
};
|
|
155
|
+
// nbsp is tri-state: --nbsp / --no-nbsp / unset stays undefined so the
|
|
156
|
+
// per-sink default applies (on for HTML, off for Markdown). When both
|
|
157
|
+
// appear, the last one on the command line wins.
|
|
158
|
+
const nbspToken = lastFlagToken(tokens, ["nbsp", "no-nbsp"]);
|
|
159
|
+
if (nbspToken !== undefined)
|
|
160
|
+
flags.nbsp = nbspToken === "nbsp";
|
|
161
|
+
// config is likewise last-one-wins between --config <path> and --no-config.
|
|
162
|
+
const configToken = lastFlagToken(tokens, ["config", "no-config"]);
|
|
163
|
+
if (configToken !== undefined)
|
|
164
|
+
flags.config = configToken === "config" ? values.config : false;
|
|
165
|
+
return flags;
|
|
60
166
|
}
|
|
61
167
|
function inferFileType(path, override) {
|
|
62
168
|
if (override !== undefined)
|
|
@@ -68,6 +174,11 @@ function inferFileType(path, override) {
|
|
|
68
174
|
return "html";
|
|
69
175
|
throw new UsageError(`Cannot infer file type from extension "${ext}" for ${path}. Pass --type md|html.`);
|
|
70
176
|
}
|
|
177
|
+
// A config file may legitimately mix markdown-only and HTML-only keys for use
|
|
178
|
+
// across file types; transformContent strips the keys the sink doesn't accept.
|
|
179
|
+
const CLI_CONFIG_KEYS = [
|
|
180
|
+
...new Set([...MARKDOWN_OPTION_KEYS, ...HTML_OPTION_KEYS]),
|
|
181
|
+
];
|
|
71
182
|
// Config keys must match library option names (punctuationStyle, skipTags, …),
|
|
72
183
|
// not the kebab-cased CLI flag names.
|
|
73
184
|
async function loadConfig(cwd, configPath, disabled) {
|
|
@@ -77,6 +188,12 @@ async function loadConfig(cwd, configPath, disabled) {
|
|
|
77
188
|
const result = configPath ? await explorer.load(configPath) : await explorer.search(cwd);
|
|
78
189
|
if (!result || result.isEmpty)
|
|
79
190
|
return {};
|
|
191
|
+
try {
|
|
192
|
+
assertKnownOptionKeys(result.config, CLI_CONFIG_KEYS, `config file ${result.filepath}`);
|
|
193
|
+
}
|
|
194
|
+
catch (err) {
|
|
195
|
+
throw new UsageError(err.message);
|
|
196
|
+
}
|
|
80
197
|
return result.config;
|
|
81
198
|
}
|
|
82
199
|
function loadIgnore(cwd, ignorePath) {
|
|
@@ -149,8 +266,8 @@ function buildOptions(flags) {
|
|
|
149
266
|
opts.dashStyle = flags.dashStyle;
|
|
150
267
|
if (flags.symbols === false)
|
|
151
268
|
opts.symbols = false;
|
|
152
|
-
if (flags.nbsp
|
|
153
|
-
opts.nbsp =
|
|
269
|
+
if (flags.nbsp !== undefined)
|
|
270
|
+
opts.nbsp = flags.nbsp;
|
|
154
271
|
if (flags.collapseSpaces === false)
|
|
155
272
|
opts.collapseSpaces = false;
|
|
156
273
|
if (flags.arrows === false)
|
|
@@ -179,8 +296,13 @@ function buildOptions(flags) {
|
|
|
179
296
|
opts.fragment = false;
|
|
180
297
|
return opts;
|
|
181
298
|
}
|
|
299
|
+
// The merged options may carry keys for the other sink (e.g. emphasisMarker
|
|
300
|
+
// alongside skipTags from one shared config); strip the inapplicable ones so
|
|
301
|
+
// each sink's strict key validation only sees keys it understands.
|
|
182
302
|
async function transformContent(input, type, opts) {
|
|
183
|
-
return type === "md"
|
|
303
|
+
return type === "md"
|
|
304
|
+
? transformMarkdown(input, omitKeys(opts, HTML_ONLY_OPTION_KEYS))
|
|
305
|
+
: transformHtml(input, omitKeys(opts, MARKDOWN_ONLY_OPTION_KEYS));
|
|
184
306
|
}
|
|
185
307
|
// Unified pipelines unconditionally append a trailing newline; undo if original lacked one.
|
|
186
308
|
function matchTrailingNewline(original, formatted) {
|
|
@@ -213,22 +335,17 @@ async function readPackageVersion() {
|
|
|
213
335
|
/** Returns exit code: 0 success, 1 `--check` saw changes, 2 usage error. */
|
|
214
336
|
export async function runCli(args, io) {
|
|
215
337
|
const version = await readPackageVersion();
|
|
216
|
-
const program = buildProgram(version, io);
|
|
217
338
|
try {
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
/* istanbul ignore if -- commander only throws CommanderError from parse */
|
|
222
|
-
if (!(err instanceof CommanderError))
|
|
223
|
-
throw err;
|
|
224
|
-
if (err.code === "commander.helpDisplayed" || err.code === "commander.version")
|
|
339
|
+
const { positionals, tokens, values } = parseRawArgs(args);
|
|
340
|
+
if (values.help) {
|
|
341
|
+
io.stdout.write(HELP_TEXT);
|
|
225
342
|
return 0;
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
return await runValidated(
|
|
343
|
+
}
|
|
344
|
+
if (values.version) {
|
|
345
|
+
io.stdout.write(`${version}\n`);
|
|
346
|
+
return 0;
|
|
347
|
+
}
|
|
348
|
+
return await runValidated(buildFlags(values, tokens), positionals, io, version);
|
|
232
349
|
}
|
|
233
350
|
catch (err) {
|
|
234
351
|
if (err instanceof UsageError) {
|
|
@@ -243,12 +360,19 @@ function readsStdin(positionals, flags) {
|
|
|
243
360
|
return true;
|
|
244
361
|
return flags.stdinFilepath !== undefined && positionals.length === 0;
|
|
245
362
|
}
|
|
246
|
-
async function runValidated(flags, positionals, io,
|
|
363
|
+
async function runValidated(flags, positionals, io, version) {
|
|
247
364
|
const cwd = process.cwd();
|
|
248
365
|
const config = await loadConfig(cwd, typeof flags.config === "string" ? flags.config : undefined, flags.config === false);
|
|
249
366
|
const opts = { ...config, ...buildOptions(flags) };
|
|
250
367
|
const check = flags.check ?? false;
|
|
368
|
+
const write = flags.write ?? false;
|
|
369
|
+
if (check && write) {
|
|
370
|
+
throw new UsageError("--write and --check are mutually exclusive.");
|
|
371
|
+
}
|
|
251
372
|
if (readsStdin(positionals, flags)) {
|
|
373
|
+
if (write) {
|
|
374
|
+
throw new UsageError("--write cannot be used when reading from stdin.");
|
|
375
|
+
}
|
|
252
376
|
const fileArgs = positionals.filter((p) => p !== "-");
|
|
253
377
|
if (fileArgs.length > 0) {
|
|
254
378
|
throw new UsageError("'-' cannot be combined with file arguments.");
|
|
@@ -265,12 +389,14 @@ async function runValidated(flags, positionals, io, program, version) {
|
|
|
265
389
|
return 0;
|
|
266
390
|
}
|
|
267
391
|
if (positionals.length === 0) {
|
|
268
|
-
io.stderr.write(
|
|
392
|
+
io.stderr.write(HELP_TEXT);
|
|
269
393
|
return 2;
|
|
270
394
|
}
|
|
271
395
|
const ig = loadIgnore(cwd, flags.ignorePath);
|
|
272
396
|
const files = await discoverFiles(positionals, cwd, ig);
|
|
273
|
-
|
|
397
|
+
// In stdout mode every file's content must be produced, so a cache hit
|
|
398
|
+
// could never skip work; only --write and --check use the cache.
|
|
399
|
+
const cacheLocation = flags.cache === false || (!write && !check)
|
|
274
400
|
? undefined
|
|
275
401
|
: resolve(cwd, flags.cacheLocation ?? DEFAULT_CACHE_LOCATION);
|
|
276
402
|
const cache = cacheLocation ? loadCache(cacheLocation, io.stderr) : undefined;
|
|
@@ -289,6 +415,10 @@ async function runValidated(flags, positionals, io, program, version) {
|
|
|
289
415
|
continue;
|
|
290
416
|
}
|
|
291
417
|
const formatted = matchTrailingNewline(original, await transformContent(original, type, opts));
|
|
418
|
+
if (!write && !check) {
|
|
419
|
+
io.stdout.write(formatted);
|
|
420
|
+
continue;
|
|
421
|
+
}
|
|
292
422
|
const unchanged = original === formatted;
|
|
293
423
|
if (!unchanged) {
|
|
294
424
|
anyChanged = true;
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/html.d.ts
CHANGED
|
@@ -7,6 +7,11 @@ export interface HtmlOptions extends RehypePunctilioOptions {
|
|
|
7
7
|
*/
|
|
8
8
|
fragment?: boolean;
|
|
9
9
|
}
|
|
10
|
+
/** Option keys handled by the HTML pipeline (parser plus rehype plugin)
|
|
11
|
+
* rather than `transform()`. */
|
|
12
|
+
export declare const HTML_ONLY_OPTION_KEYS: readonly string[];
|
|
13
|
+
/** Runtime list of valid `transformHtml` option keys. */
|
|
14
|
+
export declare const HTML_OPTION_KEYS: readonly string[];
|
|
10
15
|
/** @internal */
|
|
11
16
|
export declare function clearProcessorCache(): void;
|
|
12
17
|
export declare function transformHtml(input: string, options?: HtmlOptions): Promise<string>;
|
package/dist/html.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAKA,OAAO,
|
|
1
|
+
{"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgE,KAAK,sBAAsB,EAAE,MAAM,aAAa,CAAA;AAGvH,MAAM,WAAW,WAAY,SAAQ,sBAAsB;IACzD;;;;OAIG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAED;gCACgC;AAChC,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAA6C,CAAA;AAEhG,yDAAyD;AACzD,eAAO,MAAM,gBAAgB,EAAE,SAAS,MAAM,EAAwC,CAAA;AAgBtF,gBAAgB;AAChB,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C;AAED,wBAAsB,aAAa,CACjC,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,WAAgB,GACxB,OAAO,CAAC,MAAM,CAAC,CAqBjB"}
|
package/dist/html.js
CHANGED
|
@@ -2,8 +2,13 @@ import { unified } from "unified";
|
|
|
2
2
|
import rehypeParse from "rehype-parse";
|
|
3
3
|
import rehypeStringify from "rehype-stringify";
|
|
4
4
|
import QuickLRU from "quick-lru";
|
|
5
|
-
import { rehypePunctilio } from "./rehype.js";
|
|
6
|
-
import { stableStringify } from "./utils.js";
|
|
5
|
+
import { REHYPE_ONLY_OPTION_KEYS, REHYPE_OPTION_KEYS, rehypePunctilio } from "./rehype.js";
|
|
6
|
+
import { assertKnownOptionKeys, stableStringify } from "./utils.js";
|
|
7
|
+
/** Option keys handled by the HTML pipeline (parser plus rehype plugin)
|
|
8
|
+
* rather than `transform()`. */
|
|
9
|
+
export const HTML_ONLY_OPTION_KEYS = ["fragment", ...REHYPE_ONLY_OPTION_KEYS];
|
|
10
|
+
/** Runtime list of valid `transformHtml` option keys. */
|
|
11
|
+
export const HTML_OPTION_KEYS = [...REHYPE_OPTION_KEYS, "fragment"];
|
|
7
12
|
function createProcessor(options) {
|
|
8
13
|
const { fragment, ...punctilioOptions } = options;
|
|
9
14
|
return unified()
|
|
@@ -20,6 +25,7 @@ export function clearProcessorCache() {
|
|
|
20
25
|
processorCache.clear();
|
|
21
26
|
}
|
|
22
27
|
export async function transformHtml(input, options = {}) {
|
|
28
|
+
assertKnownOptionKeys(options, HTML_OPTION_KEYS, "transformHtml");
|
|
23
29
|
// Function-valued options aren't JSON-serializable, so the cache key
|
|
24
30
|
// can't distinguish them. Bypass the cache to avoid returning a
|
|
25
31
|
// processor wired to a different shouldSkipText.
|
package/dist/html.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"html.js","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,eAAe,MAAM,kBAAkB,CAAA;AAC9C,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,eAAe,EAA+B,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"html.js","sourceRoot":"","sources":["../src/html.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACjC,OAAO,WAAW,MAAM,cAAc,CAAA;AACtC,OAAO,eAAe,MAAM,kBAAkB,CAAA;AAC9C,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,uBAAuB,EAAE,kBAAkB,EAAE,eAAe,EAA+B,MAAM,aAAa,CAAA;AACvH,OAAO,EAAE,qBAAqB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAWnE;gCACgC;AAChC,MAAM,CAAC,MAAM,qBAAqB,GAAsB,CAAC,UAAU,EAAE,GAAG,uBAAuB,CAAC,CAAA;AAEhG,yDAAyD;AACzD,MAAM,CAAC,MAAM,gBAAgB,GAAsB,CAAC,GAAG,kBAAkB,EAAE,UAAU,CAAC,CAAA;AAEtF,SAAS,eAAe,CAAC,OAAoB;IAC3C,MAAM,EAAE,QAAQ,EAAE,GAAG,gBAAgB,EAAE,GAAG,OAAO,CAAA;IACjD,OAAO,OAAO,EAAE;SACb,GAAG,CAAC,WAAW,EAAE,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,CAAC;SAChD,GAAG,CAAC,eAAe,EAAE,gBAAgB,CAAC;SACtC,GAAG,CAAC,eAAe,CAAC,CAAA;AACzB,CAAC;AAED,MAAM,wBAAwB,GAAG,CAAC,CAAA;AAElC,MAAM,cAAc,GAAG,IAAI,QAAQ,CAA6C;IAC9E,OAAO,EAAE,wBAAwB;CAClC,CAAC,CAAA;AAEF,gBAAgB;AAChB,MAAM,UAAU,mBAAmB;IACjC,cAAc,CAAC,KAAK,EAAE,CAAA;AACxB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,KAAa,EACb,UAAuB,EAAE;IAEzB,qBAAqB,CAAC,OAAO,EAAE,gBAAgB,EAAE,eAAe,CAAC,CAAA;IAEjE,qEAAqE;IACrE,gEAAgE;IAChE,iDAAiD;IACjD,IAAI,OAAO,OAAO,CAAC,cAAc,KAAK,UAAU,EAAE,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,eAAe,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;QAC5D,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;IACvB,CAAC;IAED,MAAM,UAAU,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IAE3C,IAAI,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,UAAU,CAAC,CAAA;IAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,SAAS,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;QACpC,cAAc,CAAC,GAAG,CAAC,UAAU,EAAE,SAAS,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;IAC7C,OAAO,MAAM,CAAC,MAAM,CAAC,CAAA;AACvB,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -103,14 +103,19 @@ export interface TransformOptions {
|
|
|
103
103
|
/**
|
|
104
104
|
* Whether to verify that the transformation is idempotent (running twice
|
|
105
105
|
* produces the same result). When enabled, throws an error if the second
|
|
106
|
-
* pass produces a different result than the first.
|
|
106
|
+
* pass produces a different result than the first. The check doubles the
|
|
107
|
+
* cost of every transform and only detects punctilio's own bugs, so it is
|
|
108
|
+
* off by default; enable it in test suites or when debugging.
|
|
107
109
|
*
|
|
108
|
-
* Default:
|
|
110
|
+
* Default: false
|
|
109
111
|
*/
|
|
110
112
|
checkIdempotency?: boolean;
|
|
111
113
|
}
|
|
112
114
|
export { arrows, collapseSpaces, degrees, ellipsis, fractions, legalSymbols, mathSymbols, multiplication, primeMarks, punctuationLigatures, superscriptOrdinal, type SymbolOptions, symbolTransform, } from "./symbols.js";
|
|
113
115
|
export { assertSeparatorAbsent, assertSeparatorCountPreserved, countSeparators, transformTextNodes } from "./utils.js";
|
|
114
116
|
export declare const MODIFIER_LETTER_APOSTROPHE: "ʼ";
|
|
117
|
+
/** Runtime list of valid `transform()` option keys, derived from the option
|
|
118
|
+
* defaults so it cannot drift from {@link TransformOptions}. */
|
|
119
|
+
export declare const TRANSFORM_OPTION_KEYS: readonly string[];
|
|
115
120
|
export declare function transform(text: string, options?: TransformOptions): string;
|
|
116
121
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,6BAA6B,GAC9B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EACnB,+BAA+B,EAC/B,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,WAAW,EAChB,aAAa,EACb,uBAAuB,EACvB,KAAK,GACN,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAE3H,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,aAAa,CAAA;AACzD,OAAO,EAAsB,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAA;AACvE,OAAO,EACL,WAAW,EACX,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,YAAY,EACZ,6BAA6B,GAC9B,MAAM,aAAa,CAAA;AACpB,OAAO,EACL,UAAU,EACV,yBAAyB,EACzB,mBAAmB,EACnB,+BAA+B,EAC/B,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,EAClB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,WAAW,EAChB,aAAa,EACb,uBAAuB,EACvB,KAAK,GACN,MAAM,WAAW,CAAA;AAClB,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,kBAAkB,EAAE,KAAK,gBAAgB,EAAE,KAAK,YAAY,EAAE,MAAM,aAAa,CAAA;AAE3H,MAAM,WAAW,gBAAgB;IAC/B;;;;;;;OAOG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAE,OAAO,CAAA;IAExB;;;;;;;;;;;;;;;;;OAiBG;IACH,gBAAgB,CAAC,EAAE,gBAAgB,CAAA;IAEnC;;;;;;;;;;;;;OAaG;IACH,SAAS,CAAC,EAAE,SAAS,CAAA;IAErB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAA;IAEjB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAA;IAErB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAA;IAEnB;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAA;IAEvB;;;;;OAKG;IACH,IAAI,CAAC,EAAE,OAAO,CAAA;IAEd;;;;;;;;OAQG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAA;CAE3B;AASD,OAAO,EACL,MAAM,EACN,cAAc,EACd,OAAO,EACP,QAAQ,EACR,SAAS,EACT,YAAY,EACZ,WAAW,EACX,cAAc,EACd,UAAU,EACV,oBAAoB,EACpB,kBAAkB,EAClB,KAAK,aAAa,EAClB,eAAe,GAChB,MAAM,cAAc,CAAA;AACrB,OAAO,EAAE,qBAAqB,EAAE,6BAA6B,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AACtH,eAAO,MAAM,0BAA0B,KAA6C,CAAA;AAgBpF;gEACgE;AAChE,eAAO,MAAM,qBAAqB,EAAE,SAAS,MAAM,EAGlD,CAAA;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,gBAAqB,GAAG,MAAM,CAyF9E"}
|