@redocly/recheck 0.2.0 → 0.4.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/README.md +38 -12
- package/dist/cli.js +13 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/run.d.ts +2 -0
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +19 -5
- package/dist/commands/run.js.map +1 -1
- package/dist/config/schema.d.ts +7 -0
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +6 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +11 -2
- package/dist/config/validate.js.map +1 -1
- package/dist/core/rule-filters.d.ts +17 -0
- package/dist/core/rule-filters.d.ts.map +1 -1
- package/dist/core/rule-filters.js +64 -0
- package/dist/core/rule-filters.js.map +1 -1
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +12 -1
- package/dist/core/runner.js.map +1 -1
- package/dist/data/proper-nouns.d.ts.map +1 -1
- package/dist/data/proper-nouns.js +14 -175
- package/dist/data/proper-nouns.js.map +1 -1
- package/dist/reporter/formats/table.d.ts.map +1 -1
- package/dist/reporter/formats/table.js +6 -1
- package/dist/reporter/formats/table.js.map +1 -1
- package/dist/rules/scope/capitalization.d.ts.map +1 -1
- package/dist/rules/scope/capitalization.js +8 -5
- package/dist/rules/scope/capitalization.js.map +1 -1
- package/dist/rules/scope/consistency.d.ts.map +1 -1
- package/dist/rules/scope/consistency.js +1 -0
- package/dist/rules/scope/consistency.js.map +1 -1
- package/dist/rules/scope/title-case.d.ts +15 -11
- package/dist/rules/scope/title-case.d.ts.map +1 -1
- package/dist/rules/scope/title-case.js +65 -28
- package/dist/rules/scope/title-case.js.map +1 -1
- package/dist/scopes/sentences.d.ts +8 -0
- package/dist/scopes/sentences.d.ts.map +1 -1
- package/dist/scopes/sentences.js +30 -2
- package/dist/scopes/sentences.js.map +1 -1
- package/dist/types/problems.d.ts +1 -0
- package/dist/types/problems.d.ts.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title-case.d.ts","sourceRoot":"","sources":["../../../src/rules/scope/title-case.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"title-case.d.ts","sourceRoot":"","sources":["../../../src/rules/scope/title-case.ts"],"names":[],"mappings":"AA4EA;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAGnD;AAED;uDACuD;AACvD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED;sCACsC;AACtC,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5D;AAED;kEACkE;AAClE,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEpD;AAuBD,MAAM,WAAW,aAAa;IAG5B,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAI7B,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,aAAa,CAStE;AAmJD;;;;;;;;;;GAUG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EAAE,EACjB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,KAAK,MAAM,GACxF,MAAM,CAcR;AAuED;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO,GAAG,MAAM,CAE3E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,GAAE,MAAM,EAAO,GAAG,MAAM,CAEhF"}
|
|
@@ -2,7 +2,9 @@
|
|
|
2
2
|
// `capitalization` assertion's `$title` match (see ./capitalization.ts).
|
|
3
3
|
// Deliberately no markdown/Vale awareness here -- these functions operate
|
|
4
4
|
// on plain text only. Scope/segment handling, backtick-span freezing, and
|
|
5
|
-
// the problem/fix wiring all live in capitalization.ts.
|
|
5
|
+
// the problem/fix wiring all live in capitalization.ts. The one import below
|
|
6
|
+
// is the mask CHARACTER, not any markdown handling: masking happens in
|
|
7
|
+
// capitalization.ts, and the tokenizer here only has to recognize the result.
|
|
6
8
|
//
|
|
7
9
|
// Shared casing rules (both styles):
|
|
8
10
|
// - The FIRST and LAST word are ALWAYS capitalized, regardless of any
|
|
@@ -26,6 +28,8 @@
|
|
|
26
28
|
// - Chicago: articles, coordinating conjunctions, and EVERY preposition
|
|
27
29
|
// regardless of length -- via the fixed list below (JS has no built-in
|
|
28
30
|
// dictionary of "all English prepositions" to draw on).
|
|
31
|
+
import { INLINE_CODE_MASK_CHAR } from '../../core/inline-code.js';
|
|
32
|
+
import { ABBREVIATIONS, lastWordBefore } from '../../scopes/sentences.js';
|
|
29
33
|
const ARTICLES = ['a', 'an', 'the'];
|
|
30
34
|
const COORDINATING_CONJUNCTIONS = ['and', 'but', 'or', 'nor', 'for', 'so', 'yet'];
|
|
31
35
|
// Every entry here is <= 3 letters -- both AP and Chicago lowercase these.
|
|
@@ -63,17 +67,9 @@ const CHICAGO_STOPWORDS = new Set([
|
|
|
63
67
|
...LONG_PREPOSITIONS,
|
|
64
68
|
]);
|
|
65
69
|
// One "word" is a run of letters/digits, optionally joined by internal
|
|
66
|
-
// hyphens ('well-known') or apostrophes ("don't")
|
|
67
|
-
//
|
|
68
|
-
//
|
|
69
|
-
// invisible to this tokenizer: never capitalized, never counted toward
|
|
70
|
-
// first/last-word position.
|
|
71
|
-
//
|
|
72
|
-
// A PHRASE exception is deliberately never reached by this regex: phrase
|
|
73
|
-
// spans are carved out of the text before it runs, so a phrase is one token
|
|
74
|
-
// instead of the several this regex would split it into (it splits on exactly
|
|
75
|
-
// the whitespace and dots those entries contain). See tokenizeCasingWords.
|
|
76
|
-
const WORD_RE = /[A-Za-z0-9]+(?:['’-][A-Za-z0-9]+)*/g;
|
|
70
|
+
// hyphens ('well-known') or apostrophes ("don't"); anything else is a
|
|
71
|
+
// separator copied through verbatim. Phrase exceptions never reach the
|
|
72
|
+
// tokenizer -- tokenizeCasingWords carves them out first.
|
|
77
73
|
/**
|
|
78
74
|
* True for a word that's already an ALL-CAPS acronym (2+ letters, e.g.
|
|
79
75
|
* 'API', 'HTML5') -- both styles leave these exactly as written rather
|
|
@@ -84,6 +80,21 @@ export function isAllCapsWord(word) {
|
|
|
84
80
|
const letters = word.replace(/[^A-Za-z]/g, '');
|
|
85
81
|
return letters.length >= 2 && letters === letters.toUpperCase();
|
|
86
82
|
}
|
|
83
|
+
/** The `v2` of `v2.0`, or `v3`. The `v` must be the whole alphabetic part,
|
|
84
|
+
* so an ordinary word like `vector3` is untouched. */
|
|
85
|
+
export function isVersionToken(word) {
|
|
86
|
+
return /^v\d+$/i.test(word);
|
|
87
|
+
}
|
|
88
|
+
/** `x-metadata`, `x-codeSamples`. Case-sensitive: matching `X-` too would
|
|
89
|
+
* freeze `X-ray` and AWS `X-Ray`. */
|
|
90
|
+
export function isVendorExtensionToken(word) {
|
|
91
|
+
return /^x-./.test(word);
|
|
92
|
+
}
|
|
93
|
+
/** Tokens whose own casing is already correct. Must be checked before
|
|
94
|
+
* hyphen splitting -- an extension's `-` is part of its name. */
|
|
95
|
+
export function keepsOwnCasing(word) {
|
|
96
|
+
return isAllCapsWord(word) || isVersionToken(word) || isVendorExtensionToken(word);
|
|
97
|
+
}
|
|
87
98
|
function capitalizeWord(word) {
|
|
88
99
|
return word.charAt(0).toUpperCase() + word.slice(1).toLowerCase();
|
|
89
100
|
}
|
|
@@ -127,12 +138,24 @@ function findPhraseMatches(text, phrases) {
|
|
|
127
138
|
}
|
|
128
139
|
return matches.sort((a, b) => a.start - b.start);
|
|
129
140
|
}
|
|
141
|
+
// A mask run is one inline code span (core/inline-code.ts). It gets its own
|
|
142
|
+
// token so it OCCUPIES a position, like a phrase exception (#25610) -- a
|
|
143
|
+
// heading opening with a code span must not hand position 0 to the next word.
|
|
144
|
+
// `exception` is the run itself so it survives byte for byte; restoreInlineCode
|
|
145
|
+
// splices by offset.
|
|
146
|
+
const WORD_OR_MASK_RE = new RegExp(`${INLINE_CODE_MASK_CHAR}+|[A-Za-z0-9]+(?:['’-][A-Za-z0-9]+)*`, 'g');
|
|
130
147
|
function pushWordTokens(text, from, to, tokens) {
|
|
131
148
|
if (from >= to)
|
|
132
149
|
return;
|
|
133
|
-
for (const match of text.slice(from, to).matchAll(
|
|
150
|
+
for (const match of text.slice(from, to).matchAll(WORD_OR_MASK_RE)) {
|
|
134
151
|
const start = from + (match.index ?? 0);
|
|
135
|
-
|
|
152
|
+
const isMask = match[0].startsWith(INLINE_CODE_MASK_CHAR);
|
|
153
|
+
tokens.push({
|
|
154
|
+
text: match[0],
|
|
155
|
+
start,
|
|
156
|
+
end: start + match[0].length,
|
|
157
|
+
...(isMask ? { exception: match[0] } : {}),
|
|
158
|
+
});
|
|
136
159
|
}
|
|
137
160
|
}
|
|
138
161
|
/**
|
|
@@ -156,20 +179,30 @@ function tokenizeCasingWords(text, phrases) {
|
|
|
156
179
|
pushWordTokens(text, cursor, text.length, tokens);
|
|
157
180
|
return tokens;
|
|
158
181
|
}
|
|
182
|
+
// Trailing whitespace is required: a bare dot is usually a dotted identifier
|
|
183
|
+
// or version (`element.focus()`, `v2.0`), not a sentence end. No ':' -- both
|
|
184
|
+
// style guides lowercase after a colon unless a full sentence follows, which
|
|
185
|
+
// nothing here can detect.
|
|
186
|
+
const SENTENCE_BREAK_RE = /[.?!]["'’”)\]]*\s/;
|
|
187
|
+
// ABBREVIATIONS is the sentence splitter's own list, reused so the two cannot
|
|
188
|
+
// disagree about what ends a sentence (`Cost vs. value` is one sentence).
|
|
189
|
+
function gapEndsSentence(text, gapStart, gap) {
|
|
190
|
+
const match = SENTENCE_BREAK_RE.exec(gap);
|
|
191
|
+
if (!match)
|
|
192
|
+
return false;
|
|
193
|
+
if (match[0][0] !== '.')
|
|
194
|
+
return true; // '?' and '!' never abbreviate
|
|
195
|
+
return !ABBREVIATIONS.has(lastWordBefore(text, gapStart + (match.index ?? 0)));
|
|
196
|
+
}
|
|
159
197
|
/**
|
|
160
198
|
* Rebuilds `text` with every word re-cased by `caseWord`, which receives the
|
|
161
|
-
* word
|
|
162
|
-
*
|
|
163
|
-
* the real last one. Separators between tokens are copied through verbatim.
|
|
199
|
+
* word, its `index`, the sequence `total`, and whether it opens a sentence.
|
|
200
|
+
* Separators are copied through verbatim.
|
|
164
201
|
*
|
|
165
|
-
*
|
|
166
|
-
*
|
|
167
|
-
* or trailing phrase no longer hands its first/last position to a neighbour
|
|
168
|
-
* (#25610).
|
|
202
|
+
* Phrase-exception and mask tokens are emitted as-written but still OCCUPY an
|
|
203
|
+
* index, so a leading one cannot hand position 0 to a neighbour (#25610).
|
|
169
204
|
*
|
|
170
|
-
* Shared by
|
|
171
|
-
* capitalization.ts's sentenceCase, so all three `$`-styles agree on
|
|
172
|
-
* tokenization and phrase protection, not merely on the exception plan.
|
|
205
|
+
* Shared by apTitleCase/chicagoTitleCase and capitalization.ts's sentenceCase.
|
|
173
206
|
* Length-preserving whenever `caseWord` is.
|
|
174
207
|
*/
|
|
175
208
|
export function recaseWords(text, phrases, caseWord) {
|
|
@@ -179,8 +212,10 @@ export function recaseWords(text, phrases, caseWord) {
|
|
|
179
212
|
let result = '';
|
|
180
213
|
let cursor = 0;
|
|
181
214
|
tokens.forEach((token, index) => {
|
|
182
|
-
|
|
183
|
-
|
|
215
|
+
const separator = text.slice(cursor, token.start);
|
|
216
|
+
const startsSentence = index === 0 || gapEndsSentence(text, cursor, separator);
|
|
217
|
+
result += separator;
|
|
218
|
+
result += token.exception ?? caseWord(token.text, index, tokens.length, startsSentence);
|
|
184
219
|
cursor = token.end;
|
|
185
220
|
});
|
|
186
221
|
return result + text.slice(cursor);
|
|
@@ -221,6 +256,10 @@ function transformWord(word, isFirstWord, isLastWord, stopwords, exceptionMap) {
|
|
|
221
256
|
const exceptionHit = exceptionMap.get(word.toLowerCase());
|
|
222
257
|
if (exceptionHit !== undefined)
|
|
223
258
|
return exceptionHit;
|
|
259
|
+
// Before the hyphen split: `x-codeSamples` split into parts became
|
|
260
|
+
// `X-codesamples`. An exceptions entry still wins, above.
|
|
261
|
+
if (keepsOwnCasing(word))
|
|
262
|
+
return word;
|
|
224
263
|
// Hyphenation check: with no whole-compound exception match, a hyphenated
|
|
225
264
|
// compound is stopword-tested part by part instead (the stopword lists
|
|
226
265
|
// only contain single words, so a whole-string lookup against them would
|
|
@@ -229,8 +268,6 @@ function transformWord(word, isFirstWord, isLastWord, stopwords, exceptionMap) {
|
|
|
229
268
|
if (word.includes('-')) {
|
|
230
269
|
return capitalizeHyphenated(word, isFirstWord, isLastWord, stopwords, exceptionMap);
|
|
231
270
|
}
|
|
232
|
-
if (isAllCapsWord(word))
|
|
233
|
-
return word;
|
|
234
271
|
if (isFirstWord || isLastWord)
|
|
235
272
|
return capitalizeWord(word);
|
|
236
273
|
if (stopwords.has(word.toLowerCase()))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title-case.js","sourceRoot":"","sources":["../../../src/rules/scope/title-case.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,yEAAyE;AACzE,0EAA0E;AAC1E,0EAA0E;AAC1E,
|
|
1
|
+
{"version":3,"file":"title-case.js","sourceRoot":"","sources":["../../../src/rules/scope/title-case.ts"],"names":[],"mappings":"AAAA,gEAAgE;AAChE,yEAAyE;AACzE,0EAA0E;AAC1E,0EAA0E;AAC1E,6EAA6E;AAC7E,uEAAuE;AACvE,8EAA8E;AAC9E,EAAE;AACF,qCAAqC;AACrC,sEAAsE;AACtE,yBAAyB;AACzB,kEAAkE;AAClE,yEAAyE;AACzE,wEAAwE;AACxE,qCAAqC;AACrC,2EAA2E;AAC3E,0EAA0E;AAC1E,wEAAwE;AACxE,2EAA2E;AAC3E,8BAA8B;AAC9B,wEAAwE;AACxE,yEAAyE;AACzE,oDAAoD;AACpD,EAAE;AACF,6DAA6D;AAC7D,uEAAuE;AACvE,sBAAsB;AACtB,wEAAwE;AACxE,yEAAyE;AACzE,0DAA0D;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE1E,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AACpC,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAClF,2EAA2E;AAC3E,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;AAC3F,2EAA2E;AAC3E,wEAAwE;AACxE,eAAe;AACf,MAAM,iBAAiB,GAAG;IACxB,OAAO;IACP,OAAO;IACP,QAAQ;IACR,OAAO;IACP,SAAS;IACT,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,OAAO;IACP,SAAS;IACT,QAAQ;IACR,SAAS;IACT,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,QAAQ;IACR,SAAS;CACV,CAAC;AAEF,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,CAAC,GAAG,QAAQ,EAAE,GAAG,yBAAyB,EAAE,GAAG,kBAAkB,CAAC,CAAC,CAAC;AACjG,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAC;IAChC,GAAG,QAAQ;IACX,GAAG,yBAAyB;IAC5B,GAAG,kBAAkB;IACrB,GAAG,iBAAiB;CACrB,CAAC,CAAC;AAEH,uEAAuE;AACvE,sEAAsE;AACtE,uEAAuE;AACvE,0DAA0D;AAE1D;;;;;GAKG;AACH,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC/C,OAAO,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,OAAO,KAAK,OAAO,CAAC,WAAW,EAAE,CAAC;AAClE,CAAC;AAED;uDACuD;AACvD,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED;sCACsC;AACtC,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED;kEACkE;AAClE,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,OAAO,aAAa,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACrF,CAAC;AAED,SAAS,cAAc,CAAC,IAAY;IAClC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AACpE,CAAC;AA6BD,MAAM,UAAU,kBAAkB,CAAC,UAAoB;IACrD,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9F,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;IAC1C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC;YAAE,SAAS,CAAC,wCAAwC;QAChF,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAC9B,CAAC;AAED,SAAS,YAAY,CAAC,IAAY;IAChC,OAAO,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AACrD,CAAC;AAQD,0EAA0E;AAC1E,6EAA6E;AAC7E,wEAAwE;AACxE,4EAA4E;AAC5E,wEAAwE;AACxE,4EAA4E;AAC5E,kEAAkE;AAClE,0BAA0B;AAC1B,sEAAsE;AACtE,uEAAuE;AACvE,qDAAqD;AACrD,SAAS,iBAAiB,CAAC,IAAY,EAAE,OAAiB;IACxD,MAAM,OAAO,GAAkB,EAAE,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;QAC7B,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;QACvD,IAAI,KAA6B,CAAC;QAClC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;YAC1B,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;YACpC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,KAAK,GAAG,GAAG,CAAC,EAAE,CAAC;gBAC3E,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;YAClD,CAAC;QACH,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;AACnD,CAAC;AAiDD,4EAA4E;AAC5E,yEAAyE;AACzE,8EAA8E;AAC9E,gFAAgF;AAChF,qBAAqB;AACrB,MAAM,eAAe,GAAG,IAAI,MAAM,CAChC,GAAG,qBAAqB,sCAAsC,EAC9D,GAAG,CACJ,CAAC;AAEF,SAAS,cAAc,CAAC,IAAY,EAAE,IAAY,EAAE,EAAU,EAAE,MAAqB;IACnF,IAAI,IAAI,IAAI,EAAE;QAAE,OAAO;IACvB,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,CAAC;QACnE,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC;QAC1D,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;YACd,KAAK;YACL,GAAG,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM;YAC5B,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC3C,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB,CAAC,IAAY,EAAE,OAAiB;IAC1D,MAAM,MAAM,GAAkB,EAAE,CAAC;IACjC,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,KAAK,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,IAAI,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,EAAE,CAAC;QACzE,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,CAAC,CAAC;QACrE,MAAM,GAAG,GAAG,CAAC;IACf,CAAC;IACD,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,6EAA6E;AAC7E,6EAA6E;AAC7E,6EAA6E;AAC7E,2BAA2B;AAC3B,MAAM,iBAAiB,GAAG,mBAAmB,CAAC;AAE9C,8EAA8E;AAC9E,0EAA0E;AAC1E,SAAS,eAAe,CAAC,IAAY,EAAE,QAAgB,EAAE,GAAW;IAClE,MAAM,KAAK,GAAG,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1C,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG;QAAE,OAAO,IAAI,CAAC,CAAC,+BAA+B;IACrE,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACjF,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,WAAW,CACzB,IAAY,EACZ,OAAiB,EACjB,QAAyF;IAEzF,MAAM,MAAM,GAAG,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAErC,IAAI,MAAM,GAAG,EAAE,CAAC;IAChB,IAAI,MAAM,GAAG,CAAC,CAAC;IACf,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,KAAK,KAAK,CAAC,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QAC/E,MAAM,IAAI,SAAS,CAAC;QACpB,MAAM,IAAI,KAAK,CAAC,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;QACxF,MAAM,GAAG,KAAK,CAAC,GAAG,CAAC;IACrB,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC;AAED,yEAAyE;AACzE,0EAA0E;AAC1E,uEAAuE;AACvE,mEAAmE;AACnE,SAAS,oBAAoB,CAC3B,IAAY,EACZ,WAAoB,EACpB,UAAmB,EACnB,SAAsB,EACtB,YAAiC;IAEjC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,MAAM,aAAa,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC;IACvC,OAAO,KAAK;SACT,GAAG,CAAC,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE;QACvB,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,2DAA2D;QAC/F,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1D,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,YAAY,CAAC;QACpD,IAAI,aAAa,CAAC,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC;QACrC,IAAI,SAAS,KAAK,CAAC,IAAI,WAAW;YAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAChE,IAAI,SAAS,KAAK,aAAa,IAAI,UAAU;YAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3E,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QACjE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC,CAAC;SACD,IAAI,CAAC,GAAG,CAAC,CAAC;AACf,CAAC;AAED,SAAS,aAAa,CACpB,IAAY,EACZ,WAAoB,EACpB,UAAmB,EACnB,SAAsB,EACtB,YAAiC;IAEjC,wEAAwE;IACxE,qEAAqE;IACrE,wEAAwE;IACxE,uEAAuE;IACvE,sEAAsE;IACtE,qEAAqE;IACrE,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC1D,IAAI,YAAY,KAAK,SAAS;QAAE,OAAO,YAAY,CAAC;IACpD,mEAAmE;IACnE,0DAA0D;IAC1D,IAAI,cAAc,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACtC,0EAA0E;IAC1E,uEAAuE;IACvE,yEAAyE;IACzE,+DAA+D;IAC/D,kEAAkE;IAClE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QACvB,OAAO,oBAAoB,CAAC,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;IACtF,CAAC;IACD,IAAI,WAAW,IAAI,UAAU;QAAE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;QAAE,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;IACjE,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC;AAC9B,CAAC;AAED,SAAS,SAAS,CAAC,IAAY,EAAE,SAAsB,EAAE,UAAoB;IAC3E,wEAAwE;IACxE,uEAAuE;IACvE,2EAA2E;IAC3E,qEAAqE;IACrE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,UAAU,CAAC,CAAC;IAC5D,OAAO,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CACvD,aAAa,CAAC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,GAAG,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAC1E,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,UAAU,GAAa,EAAE;IACjE,OAAO,SAAS,CAAC,IAAI,EAAE,YAAY,EAAE,UAAU,CAAC,CAAC;AACnD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY,EAAE,UAAU,GAAa,EAAE;IACtE,OAAO,SAAS,CAAC,IAAI,EAAE,iBAAiB,EAAE,UAAU,CAAC,CAAC;AACxD,CAAC"}
|
|
@@ -3,5 +3,13 @@ export interface SentenceSpan {
|
|
|
3
3
|
start: number;
|
|
4
4
|
end: number;
|
|
5
5
|
}
|
|
6
|
+
export declare const ABBREVIATIONS: Set<string>;
|
|
7
|
+
/**
|
|
8
|
+
* The word immediately before `index`, lowercased, with a trailing dot
|
|
9
|
+
* removed -- so a dotted abbreviation like `e.g.` yields `e.g`, which is the
|
|
10
|
+
* form ABBREVIATIONS stores. Exported for title-case.ts, which asks the same
|
|
11
|
+
* question at the same kind of boundary.
|
|
12
|
+
*/
|
|
13
|
+
export declare function lastWordBefore(text: string, index: number): string;
|
|
6
14
|
export declare function splitSentences(text: string): SentenceSpan[];
|
|
7
15
|
//# sourceMappingURL=sentences.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentences.d.ts","sourceRoot":"","sources":["../../src/scopes/sentences.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;
|
|
1
|
+
{"version":3,"file":"sentences.d.ts","sourceRoot":"","sources":["../../src/scopes/sentences.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAKD,eAAO,MAAM,aAAa,aAwBxB,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE;AA+CD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CA6C3D"}
|
package/dist/scopes/sentences.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
|
-
|
|
1
|
+
// Shared with title-case.ts's sentence-break test, so the casing styles and
|
|
2
|
+
// the sentence splitter agree on what ends a sentence. One list, not two:
|
|
3
|
+
// `Cost vs. value` is a single sentence to both.
|
|
4
|
+
export const ABBREVIATIONS = new Set([
|
|
2
5
|
'e.g',
|
|
3
6
|
'i.e',
|
|
4
7
|
'etc',
|
|
@@ -23,7 +26,13 @@ const ABBREVIATIONS = new Set([
|
|
|
23
26
|
'inc',
|
|
24
27
|
'ltd',
|
|
25
28
|
]);
|
|
26
|
-
|
|
29
|
+
/**
|
|
30
|
+
* The word immediately before `index`, lowercased, with a trailing dot
|
|
31
|
+
* removed -- so a dotted abbreviation like `e.g.` yields `e.g`, which is the
|
|
32
|
+
* form ABBREVIATIONS stores. Exported for title-case.ts, which asks the same
|
|
33
|
+
* question at the same kind of boundary.
|
|
34
|
+
*/
|
|
35
|
+
export function lastWordBefore(text, index) {
|
|
27
36
|
const slice = text.slice(0, index);
|
|
28
37
|
const match = /([\w.]+)$/.exec(slice);
|
|
29
38
|
return (match ? match[1] : '').toLowerCase().replace(/\.$/, '');
|
|
@@ -60,8 +69,25 @@ function isOrdinalEnumerator(text, dotIndex) {
|
|
|
60
69
|
j--;
|
|
61
70
|
return j < 0 || text[j] === '\n' || text[j] === '\r';
|
|
62
71
|
}
|
|
72
|
+
// An inline or reference link/image, including its text and its destination.
|
|
73
|
+
// A period inside one is punctuation in a label or a URL, never a sentence
|
|
74
|
+
// end: `[Step 1. Configure](#step-1)` is one inline unit. The destination
|
|
75
|
+
// admits one level of balanced parens (`/wiki/Foo_(bar)`), matching what
|
|
76
|
+
// CommonMark allows unescaped.
|
|
77
|
+
const LINK_RE = /!?\[(?:[^[\]\\]|\\.)*\](?:\((?:[^()\\]|\\.|\([^()]*\))*\)|\[(?:[^[\]\\]|\\.)*\])/g;
|
|
78
|
+
function linkRanges(text) {
|
|
79
|
+
if (!text.includes('['))
|
|
80
|
+
return [];
|
|
81
|
+
const ranges = [];
|
|
82
|
+
for (const match of text.matchAll(LINK_RE)) {
|
|
83
|
+
const start = match.index ?? 0;
|
|
84
|
+
ranges.push([start, start + match[0].length]);
|
|
85
|
+
}
|
|
86
|
+
return ranges;
|
|
87
|
+
}
|
|
63
88
|
export function splitSentences(text) {
|
|
64
89
|
const spans = [];
|
|
90
|
+
const links = linkRanges(text);
|
|
65
91
|
let start = 0;
|
|
66
92
|
let inCode = false;
|
|
67
93
|
for (let i = 0; i < text.length; i++) {
|
|
@@ -72,6 +98,8 @@ export function splitSentences(text) {
|
|
|
72
98
|
}
|
|
73
99
|
if (inCode || !'.!?'.includes(char))
|
|
74
100
|
continue;
|
|
101
|
+
if (links.some(([from, to]) => i >= from && i < to))
|
|
102
|
+
continue;
|
|
75
103
|
// Consume runs of terminators ("?!", "...").
|
|
76
104
|
while (i + 1 < text.length && '.!?'.includes(text[i + 1]))
|
|
77
105
|
i++;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sentences.js","sourceRoot":"","sources":["../../src/scopes/sentences.ts"],"names":[],"mappings":"AAMA,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"sentences.js","sourceRoot":"","sources":["../../src/scopes/sentences.ts"],"names":[],"mappings":"AAMA,4EAA4E;AAC5E,0EAA0E;AAC1E,iDAAiD;AACjD,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC;IACnC,KAAK;IACL,KAAK;IACL,KAAK;IACL,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,IAAI;IACJ,QAAQ;IACR,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAM;IACN,IAAI;IACJ,IAAI;IACJ,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,MAAM;IACN,KAAK;IACL,KAAK;IACL,KAAK;CACN,CAAC,CAAC;AAEH;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,KAAa;IACxD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACtC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AAClE,CAAC;AAED,4EAA4E;AAC5E,8EAA8E;AAC9E,4EAA4E;AAC5E,0EAA0E;AAC1E,2EAA2E;AAC3E,uEAAuE;AACvE,4CAA4C;AAC5C,SAAS,mBAAmB,CAAC,IAAY,EAAE,QAAgB;IACzD,IAAI,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC;IACrB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,CAAC,EAAE,CAAC;IACzC,wEAAwE;IACxE,oDAAoD;IACpD,IAAI,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACtD,MAAM,YAAY,GAAG,CAAC,CAAC;IACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC;QAAE,CAAC,EAAE,CAAC;IAC3D,IAAI,CAAC,GAAG,YAAY,EAAE,CAAC;QACrB,sEAAsE;QACtE,gEAAgE;QAChE,sEAAsE;QACtE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,wEAAwE;IACxE,eAAe;IACf,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;QAAE,CAAC,EAAE,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AACvD,CAAC;AAED,6EAA6E;AAC7E,2EAA2E;AAC3E,0EAA0E;AAC1E,yEAAyE;AACzE,+BAA+B;AAC/B,MAAM,OAAO,GAAG,mFAAmF,CAAC;AAEpG,SAAS,UAAU,CAAC,IAAY;IAC9B,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,EAAE,CAAC;IACnC,MAAM,MAAM,GAA4B,EAAE,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC;QAC/B,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,IAAY;IACzC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,KAAK,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACrB,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,GAAG,CAAC,MAAM,CAAC;YACjB,SAAS;QACX,CAAC;QACD,IAAI,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,SAAS;QAC9C,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE,CAAC;YAAE,SAAS;QAC9D,6CAA6C;QAC7C,OAAO,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAAE,CAAC,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QACzB,4EAA4E;QAC5E,IAAI,IAAI,KAAK,SAAS;YAAE,MAAM,CAAC,iCAAiC;QAChE,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,IAAI;YAAE,SAAS;QAC9E,iEAAiE;QACjE,oEAAoE;QACpE,qEAAqE;QACrE,MAAM,KAAK,GAAG,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAChF,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,SAAS;QAC/D,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,IAAI,GAAG,cAAc,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACrC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;gBAAE,SAAS;YACtC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;gBAAE,SAAS,CAAC,WAAW;YAC5E,IAAI,mBAAmB,CAAC,IAAI,EAAE,CAAC,CAAC;gBAAE,SAAS;QAC7C,CAAC;QACD,MAAM,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;QACnC,IAAI,GAAG,CAAC,IAAI,EAAE;YACZ,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC;QAC9F,KAAK,GAAG,GAAG,CAAC;IACd,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,EAAE,KAAK,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC,MAAM,CAAC;YACtD,GAAG,EAAE,IAAI,CAAC,MAAM;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
package/dist/types/problems.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"problems.d.ts","sourceRoot":"","sources":["../../src/types/problems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"problems.d.ts","sourceRoot":"","sources":["../../src/types/problems.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,YAAY,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@redocly/recheck",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Content linting (configurable + built-in rules)",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
"@redocly/ajv": "8.18.0",
|
|
20
20
|
"ajv-formats": "^3.0.1",
|
|
21
21
|
"colorette": "2.0.20",
|
|
22
|
-
"js-yaml": "4.3.
|
|
22
|
+
"js-yaml": "4.3.1",
|
|
23
23
|
"micromark": "4.0.2",
|
|
24
24
|
"micromark-extension-directive": "4.0.0",
|
|
25
25
|
"micromark-extension-frontmatter": "2.0.0",
|
|
@@ -59,7 +59,7 @@
|
|
|
59
59
|
"typescript": "6.0.3",
|
|
60
60
|
"vitest": "4.1.10",
|
|
61
61
|
"@redocly/portal": "0.68.3",
|
|
62
|
-
"@redocly/theme": "0.68.0
|
|
62
|
+
"@redocly/theme": "0.68.0"
|
|
63
63
|
},
|
|
64
64
|
"scripts": {
|
|
65
65
|
"build": "tsgo && tsgo --noEmit -p tsconfig.typecheck.json",
|