@redocly/recheck 0.1.0 → 0.3.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 +1023 -56
- package/dist/cli.js +40 -7
- package/dist/cli.js.map +1 -1
- package/dist/commands/markdoc-schema.d.ts +17 -0
- package/dist/commands/markdoc-schema.d.ts.map +1 -0
- package/dist/commands/markdoc-schema.js +127 -0
- package/dist/commands/markdoc-schema.js.map +1 -0
- package/dist/commands/run.d.ts +2 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +87 -10
- package/dist/commands/run.js.map +1 -1
- package/dist/config/load.d.ts +11 -0
- package/dist/config/load.d.ts.map +1 -1
- package/dist/config/load.js +12 -2
- package/dist/config/load.js.map +1 -1
- package/dist/config/presets/google.d.ts +3 -0
- package/dist/config/presets/google.d.ts.map +1 -0
- package/dist/config/presets/google.js +1671 -0
- package/dist/config/presets/google.js.map +1 -0
- package/dist/config/presets/inclusive-language.d.ts +3 -0
- package/dist/config/presets/inclusive-language.d.ts.map +1 -0
- package/dist/config/presets/inclusive-language.js +321 -0
- package/dist/config/presets/inclusive-language.js.map +1 -0
- package/dist/config/presets/index.d.ts +67 -0
- package/dist/config/presets/index.d.ts.map +1 -0
- package/dist/config/presets/index.js +137 -0
- package/dist/config/presets/index.js.map +1 -0
- package/dist/config/presets/markdoc.d.ts +21 -0
- package/dist/config/presets/markdoc.d.ts.map +1 -0
- package/dist/config/presets/markdoc.js +101 -0
- package/dist/config/presets/markdoc.js.map +1 -0
- package/dist/config/presets/markdown-relaxed.d.ts +3 -0
- package/dist/config/presets/markdown-relaxed.d.ts.map +1 -0
- package/dist/config/presets/markdown-relaxed.js +98 -0
- package/dist/config/presets/markdown-relaxed.js.map +1 -0
- package/dist/config/presets/markdown.d.ts +43 -0
- package/dist/config/presets/markdown.d.ts.map +1 -0
- package/dist/config/presets/markdown.js +132 -0
- package/dist/config/presets/markdown.js.map +1 -0
- package/dist/config/presets/microsoft.d.ts +3 -0
- package/dist/config/presets/microsoft.d.ts.map +1 -0
- package/dist/config/presets/microsoft.js +2268 -0
- package/dist/config/presets/microsoft.js.map +1 -0
- package/dist/config/presets/minimal.d.ts +3 -0
- package/dist/config/presets/minimal.d.ts.map +1 -0
- package/dist/config/presets/minimal.js +21 -0
- package/dist/config/presets/minimal.js.map +1 -0
- package/dist/config/presets/plain-language.d.ts +3 -0
- package/dist/config/presets/plain-language.d.ts.map +1 -0
- package/dist/config/presets/plain-language.js +351 -0
- package/dist/config/presets/plain-language.js.map +1 -0
- package/dist/config/presets/prose.d.ts +52 -0
- package/dist/config/presets/prose.d.ts.map +1 -0
- package/dist/config/presets/prose.js +138 -0
- package/dist/config/presets/prose.js.map +1 -0
- package/dist/config/schema.d.ts +128 -22
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +105 -21
- package/dist/config/schema.js.map +1 -1
- package/dist/config/validate.d.ts +12 -2
- package/dist/config/validate.d.ts.map +1 -1
- package/dist/config/validate.js +1200 -44
- package/dist/config/validate.js.map +1 -1
- package/dist/core/auto-fix.d.ts +8 -13
- package/dist/core/auto-fix.d.ts.map +1 -1
- package/dist/core/auto-fix.js +94 -75
- package/dist/core/auto-fix.js.map +1 -1
- package/dist/core/case-preserve.d.ts +46 -0
- package/dist/core/case-preserve.d.ts.map +1 -0
- package/dist/core/case-preserve.js +57 -0
- package/dist/core/case-preserve.js.map +1 -0
- package/dist/core/directives.d.ts +9 -0
- package/dist/core/directives.d.ts.map +1 -0
- package/dist/core/directives.js +73 -0
- package/dist/core/directives.js.map +1 -0
- package/dist/core/files.d.ts +63 -0
- package/dist/core/files.d.ts.map +1 -1
- package/dist/core/files.js +185 -0
- package/dist/core/files.js.map +1 -1
- package/dist/core/inline-code.d.ts +87 -0
- package/dist/core/inline-code.d.ts.map +1 -0
- package/dist/core/inline-code.js +104 -0
- package/dist/core/inline-code.js.map +1 -0
- package/dist/core/line-endings.d.ts +32 -0
- package/dist/core/line-endings.d.ts.map +1 -0
- package/dist/core/line-endings.js +65 -0
- package/dist/core/line-endings.js.map +1 -0
- package/dist/core/markdoc-tags.d.ts +79 -0
- package/dist/core/markdoc-tags.d.ts.map +1 -0
- package/dist/core/markdoc-tags.js +131 -0
- package/dist/core/markdoc-tags.js.map +1 -0
- 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 +92 -3
- package/dist/core/runner.d.ts.map +1 -1
- package/dist/core/runner.js +348 -110
- package/dist/core/runner.js.map +1 -1
- package/dist/core/timing.d.ts.map +1 -1
- package/dist/data/markdoc-realm-schema.d.ts +3 -0
- package/dist/data/markdoc-realm-schema.d.ts.map +1 -0
- package/dist/data/markdoc-realm-schema.js +760 -0
- package/dist/data/markdoc-realm-schema.js.map +1 -0
- package/dist/data/proper-nouns.d.ts +2 -0
- package/dist/data/proper-nouns.d.ts.map +1 -0
- package/dist/data/proper-nouns.js +47 -0
- package/dist/data/proper-nouns.js.map +1 -0
- package/dist/index.d.ts +90 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +152 -0
- package/dist/index.js.map +1 -0
- package/dist/metrics/formulas.d.ts +17 -0
- package/dist/metrics/formulas.d.ts.map +1 -0
- package/dist/metrics/formulas.js +70 -0
- package/dist/metrics/formulas.js.map +1 -0
- package/dist/metrics/index.d.ts +5 -0
- package/dist/metrics/index.d.ts.map +1 -0
- package/dist/metrics/index.js +3 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/statistics.d.ts +27 -0
- package/dist/metrics/statistics.d.ts.map +1 -0
- package/dist/metrics/statistics.js +56 -0
- package/dist/metrics/statistics.js.map +1 -0
- package/dist/parser/index.d.ts +18 -0
- package/dist/parser/index.d.ts.map +1 -0
- package/dist/parser/index.js +168 -0
- package/dist/parser/index.js.map +1 -0
- package/dist/parser/markdoc/extract-statics.d.ts +45 -0
- package/dist/parser/markdoc/extract-statics.d.ts.map +1 -0
- package/dist/parser/markdoc/extract-statics.js +139 -0
- package/dist/parser/markdoc/extract-statics.js.map +1 -0
- package/dist/parser/markdoc/pairing.d.ts +63 -0
- package/dist/parser/markdoc/pairing.d.ts.map +1 -0
- package/dist/parser/markdoc/pairing.js +94 -0
- package/dist/parser/markdoc/pairing.js.map +1 -0
- package/dist/parser/markdoc/schema.d.ts +85 -0
- package/dist/parser/markdoc/schema.d.ts.map +1 -0
- package/dist/parser/markdoc/schema.js +86 -0
- package/dist/parser/markdoc/schema.js.map +1 -0
- package/dist/parser/markdoc/span.d.ts +64 -0
- package/dist/parser/markdoc/span.d.ts.map +1 -0
- package/dist/parser/markdoc/span.js +729 -0
- package/dist/parser/markdoc/span.js.map +1 -0
- package/dist/parser/markdoc/structure.d.ts +28 -0
- package/dist/parser/markdoc/structure.d.ts.map +1 -0
- package/dist/parser/markdoc/structure.js +153 -0
- package/dist/parser/markdoc/structure.js.map +1 -0
- package/dist/parser/markdoc/syntax.d.ts +44 -0
- package/dist/parser/markdoc/syntax.d.ts.map +1 -0
- package/dist/parser/markdoc/syntax.js +317 -0
- package/dist/parser/markdoc/syntax.js.map +1 -0
- package/dist/parser/types.d.ts +18 -0
- package/dist/parser/types.d.ts.map +1 -0
- package/dist/parser/types.js.map +1 -0
- package/dist/reporter/fixes.d.ts.map +1 -1
- package/dist/reporter/fixes.js +22 -1
- package/dist/reporter/fixes.js.map +1 -1
- package/dist/reporter/statistics.d.ts +1 -8
- package/dist/reporter/statistics.d.ts.map +1 -1
- package/dist/reporter/statistics.js.map +1 -1
- package/dist/rules/registry.d.ts +15 -0
- package/dist/rules/registry.d.ts.map +1 -0
- package/dist/rules/registry.js +81 -0
- package/dist/rules/registry.js.map +1 -0
- package/dist/rules/scope/capitalization.d.ts +3 -0
- package/dist/rules/scope/capitalization.d.ts.map +1 -0
- package/dist/rules/scope/capitalization.js +163 -0
- package/dist/rules/scope/capitalization.js.map +1 -0
- package/dist/rules/scope/conditional.d.ts +3 -0
- package/dist/rules/scope/conditional.d.ts.map +1 -0
- package/dist/rules/scope/conditional.js +112 -0
- package/dist/rules/scope/conditional.js.map +1 -0
- package/dist/rules/scope/consistency.d.ts +3 -0
- package/dist/rules/scope/consistency.d.ts.map +1 -0
- package/dist/rules/scope/consistency.js +178 -0
- package/dist/rules/scope/consistency.js.map +1 -0
- package/dist/rules/scope/length.d.ts +3 -0
- package/dist/rules/scope/length.d.ts.map +1 -0
- package/dist/rules/scope/length.js +69 -0
- package/dist/rules/scope/length.js.map +1 -0
- package/dist/rules/scope/max-image-size.d.ts +3 -0
- package/dist/rules/scope/max-image-size.d.ts.map +1 -0
- package/dist/rules/scope/max-image-size.js +65 -0
- package/dist/rules/scope/max-image-size.js.map +1 -0
- package/dist/rules/scope/metric.d.ts +17 -0
- package/dist/rules/scope/metric.d.ts.map +1 -0
- package/dist/rules/scope/metric.js +216 -0
- package/dist/rules/scope/metric.js.map +1 -0
- package/dist/rules/scope/occurrence.d.ts +3 -0
- package/dist/rules/scope/occurrence.d.ts.map +1 -0
- package/dist/rules/scope/occurrence.js +48 -0
- package/dist/rules/scope/occurrence.js.map +1 -0
- package/dist/rules/scope/pattern.d.ts +3 -0
- package/dist/rules/scope/pattern.d.ts.map +1 -0
- package/dist/rules/scope/pattern.js +75 -0
- package/dist/rules/scope/pattern.js.map +1 -0
- package/dist/rules/scope/repetition.d.ts +3 -0
- package/dist/rules/scope/repetition.d.ts.map +1 -0
- package/dist/rules/scope/repetition.js +139 -0
- package/dist/rules/scope/repetition.js.map +1 -0
- package/dist/rules/scope/semantic-line-breaks.d.ts +3 -0
- package/dist/rules/scope/semantic-line-breaks.d.ts.map +1 -0
- package/dist/rules/scope/semantic-line-breaks.js +213 -0
- package/dist/rules/scope/semantic-line-breaks.js.map +1 -0
- package/dist/rules/scope/spelling.d.ts +27 -0
- package/dist/rules/scope/spelling.d.ts.map +1 -0
- package/dist/rules/scope/spelling.js +227 -0
- package/dist/rules/scope/spelling.js.map +1 -0
- package/dist/rules/scope/swap.d.ts +3 -0
- package/dist/rules/scope/swap.d.ts.map +1 -0
- package/dist/rules/scope/swap.js +149 -0
- package/dist/rules/scope/swap.js.map +1 -0
- package/dist/rules/scope/title-case.d.ts +46 -0
- package/dist/rules/scope/title-case.d.ts.map +1 -0
- package/dist/rules/scope/title-case.js +301 -0
- package/dist/rules/scope/title-case.js.map +1 -0
- package/dist/rules/token/blanks-around-fences.d.ts +3 -0
- package/dist/rules/token/blanks-around-fences.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-fences.js +44 -0
- package/dist/rules/token/blanks-around-fences.js.map +1 -0
- package/dist/rules/token/blanks-around-headings.d.ts +3 -0
- package/dist/rules/token/blanks-around-headings.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-headings.js +108 -0
- package/dist/rules/token/blanks-around-headings.js.map +1 -0
- package/dist/rules/token/blanks-around-lists.d.ts +3 -0
- package/dist/rules/token/blanks-around-lists.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-lists.js +56 -0
- package/dist/rules/token/blanks-around-lists.js.map +1 -0
- package/dist/rules/token/blanks-around-tables.d.ts +3 -0
- package/dist/rules/token/blanks-around-tables.d.ts.map +1 -0
- package/dist/rules/token/blanks-around-tables.js +42 -0
- package/dist/rules/token/blanks-around-tables.js.map +1 -0
- package/dist/rules/token/code-block-style.d.ts +3 -0
- package/dist/rules/token/code-block-style.d.ts.map +1 -0
- package/dist/rules/token/code-block-style.js +30 -0
- package/dist/rules/token/code-block-style.js.map +1 -0
- package/dist/rules/token/code-fence-style.d.ts +3 -0
- package/dist/rules/token/code-fence-style.d.ts.map +1 -0
- package/dist/rules/token/code-fence-style.js +35 -0
- package/dist/rules/token/code-fence-style.js.map +1 -0
- package/dist/rules/token/commands-show-output.d.ts +3 -0
- package/dist/rules/token/commands-show-output.d.ts.map +1 -0
- package/dist/rules/token/commands-show-output.js +38 -0
- package/dist/rules/token/commands-show-output.js.map +1 -0
- package/dist/rules/token/descriptive-link-text.d.ts +3 -0
- package/dist/rules/token/descriptive-link-text.d.ts.map +1 -0
- package/dist/rules/token/descriptive-link-text.js +53 -0
- package/dist/rules/token/descriptive-link-text.js.map +1 -0
- package/dist/rules/token/emphasis-style.d.ts +3 -0
- package/dist/rules/token/emphasis-style.d.ts.map +1 -0
- package/dist/rules/token/emphasis-style.js +51 -0
- package/dist/rules/token/emphasis-style.js.map +1 -0
- package/dist/rules/token/fenced-code-language.d.ts +3 -0
- package/dist/rules/token/fenced-code-language.d.ts.map +1 -0
- package/dist/rules/token/fenced-code-language.js +35 -0
- package/dist/rules/token/fenced-code-language.js.map +1 -0
- package/dist/rules/token/first-line-h1.d.ts +3 -0
- package/dist/rules/token/first-line-h1.d.ts.map +1 -0
- package/dist/rules/token/first-line-h1.js +107 -0
- package/dist/rules/token/first-line-h1.js.map +1 -0
- package/dist/rules/token/heading-increment.d.ts +3 -0
- package/dist/rules/token/heading-increment.d.ts.map +1 -0
- package/dist/rules/token/heading-increment.js +27 -0
- package/dist/rules/token/heading-increment.js.map +1 -0
- package/dist/rules/token/heading-start-left.d.ts +3 -0
- package/dist/rules/token/heading-start-left.d.ts.map +1 -0
- package/dist/rules/token/heading-start-left.js +31 -0
- package/dist/rules/token/heading-start-left.js.map +1 -0
- package/dist/rules/token/heading-style.d.ts +3 -0
- package/dist/rules/token/heading-style.d.ts.map +1 -0
- package/dist/rules/token/heading-style.js +41 -0
- package/dist/rules/token/heading-style.js.map +1 -0
- package/dist/rules/token/helpers.d.ts +313 -0
- package/dist/rules/token/helpers.d.ts.map +1 -0
- package/dist/rules/token/helpers.js +746 -0
- package/dist/rules/token/helpers.js.map +1 -0
- package/dist/rules/token/hr-style.d.ts +3 -0
- package/dist/rules/token/hr-style.d.ts.map +1 -0
- package/dist/rules/token/hr-style.js +28 -0
- package/dist/rules/token/hr-style.js.map +1 -0
- package/dist/rules/token/index.d.ts +75 -0
- package/dist/rules/token/index.d.ts.map +1 -0
- package/dist/rules/token/index.js +226 -0
- package/dist/rules/token/index.js.map +1 -0
- package/dist/rules/token/line-length.d.ts +3 -0
- package/dist/rules/token/line-length.d.ts.map +1 -0
- package/dist/rules/token/line-length.js +120 -0
- package/dist/rules/token/line-length.js.map +1 -0
- package/dist/rules/token/link-fragments.d.ts +3 -0
- package/dist/rules/token/link-fragments.d.ts.map +1 -0
- package/dist/rules/token/link-fragments.js +145 -0
- package/dist/rules/token/link-fragments.js.map +1 -0
- package/dist/rules/token/link-image-reference-definitions.d.ts +3 -0
- package/dist/rules/token/link-image-reference-definitions.d.ts.map +1 -0
- package/dist/rules/token/link-image-reference-definitions.js +50 -0
- package/dist/rules/token/link-image-reference-definitions.js.map +1 -0
- package/dist/rules/token/link-image-style.d.ts +3 -0
- package/dist/rules/token/link-image-style.d.ts.map +1 -0
- package/dist/rules/token/link-image-style.js +131 -0
- package/dist/rules/token/link-image-style.js.map +1 -0
- package/dist/rules/token/list-indent.d.ts +3 -0
- package/dist/rules/token/list-indent.d.ts.map +1 -0
- package/dist/rules/token/list-indent.js +60 -0
- package/dist/rules/token/list-indent.js.map +1 -0
- package/dist/rules/token/list-length.d.ts +3 -0
- package/dist/rules/token/list-length.d.ts.map +1 -0
- package/dist/rules/token/list-length.js +55 -0
- package/dist/rules/token/list-length.js.map +1 -0
- package/dist/rules/token/list-marker-space.d.ts +3 -0
- package/dist/rules/token/list-marker-space.d.ts.map +1 -0
- package/dist/rules/token/list-marker-space.js +52 -0
- package/dist/rules/token/list-marker-space.js.map +1 -0
- package/dist/rules/token/markdoc-attributes.d.ts +3 -0
- package/dist/rules/token/markdoc-attributes.d.ts.map +1 -0
- package/dist/rules/token/markdoc-attributes.js +269 -0
- package/dist/rules/token/markdoc-attributes.js.map +1 -0
- package/dist/rules/token/markdoc-pairing.d.ts +3 -0
- package/dist/rules/token/markdoc-pairing.d.ts.map +1 -0
- package/dist/rules/token/markdoc-pairing.js +73 -0
- package/dist/rules/token/markdoc-pairing.js.map +1 -0
- package/dist/rules/token/markdoc-syntax.d.ts +3 -0
- package/dist/rules/token/markdoc-syntax.d.ts.map +1 -0
- package/dist/rules/token/markdoc-syntax.js +119 -0
- package/dist/rules/token/markdoc-syntax.js.map +1 -0
- package/dist/rules/token/markdoc-unknown-tag.d.ts +3 -0
- package/dist/rules/token/markdoc-unknown-tag.d.ts.map +1 -0
- package/dist/rules/token/markdoc-unknown-tag.js +64 -0
- package/dist/rules/token/markdoc-unknown-tag.js.map +1 -0
- package/dist/rules/token/messages.d.ts +4 -0
- package/dist/rules/token/messages.d.ts.map +1 -0
- package/dist/rules/token/messages.js +20 -0
- package/dist/rules/token/messages.js.map +1 -0
- package/dist/rules/token/no-alt-text.d.ts +3 -0
- package/dist/rules/token/no-alt-text.d.ts.map +1 -0
- package/dist/rules/token/no-alt-text.js +47 -0
- package/dist/rules/token/no-alt-text.js.map +1 -0
- package/dist/rules/token/no-bare-urls.d.ts +3 -0
- package/dist/rules/token/no-bare-urls.d.ts.map +1 -0
- package/dist/rules/token/no-bare-urls.js +88 -0
- package/dist/rules/token/no-bare-urls.js.map +1 -0
- package/dist/rules/token/no-blanks-blockquote.d.ts +3 -0
- package/dist/rules/token/no-blanks-blockquote.d.ts.map +1 -0
- package/dist/rules/token/no-blanks-blockquote.js +39 -0
- package/dist/rules/token/no-blanks-blockquote.js.map +1 -0
- package/dist/rules/token/no-duplicate-heading.d.ts +3 -0
- package/dist/rules/token/no-duplicate-heading.d.ts.map +1 -0
- package/dist/rules/token/no-duplicate-heading.js +101 -0
- package/dist/rules/token/no-duplicate-heading.js.map +1 -0
- package/dist/rules/token/no-duplicate-link-destinations.d.ts +3 -0
- package/dist/rules/token/no-duplicate-link-destinations.d.ts.map +1 -0
- package/dist/rules/token/no-duplicate-link-destinations.js +65 -0
- package/dist/rules/token/no-duplicate-link-destinations.js.map +1 -0
- package/dist/rules/token/no-emphasis-as-heading.d.ts +3 -0
- package/dist/rules/token/no-emphasis-as-heading.d.ts.map +1 -0
- package/dist/rules/token/no-emphasis-as-heading.js +44 -0
- package/dist/rules/token/no-emphasis-as-heading.js.map +1 -0
- package/dist/rules/token/no-empty-headings.d.ts +3 -0
- package/dist/rules/token/no-empty-headings.d.ts.map +1 -0
- package/dist/rules/token/no-empty-headings.js +28 -0
- package/dist/rules/token/no-empty-headings.js.map +1 -0
- package/dist/rules/token/no-empty-links.d.ts +3 -0
- package/dist/rules/token/no-empty-links.d.ts.map +1 -0
- package/dist/rules/token/no-empty-links.js +67 -0
- package/dist/rules/token/no-empty-links.js.map +1 -0
- package/dist/rules/token/no-hard-tabs.d.ts +3 -0
- package/dist/rules/token/no-hard-tabs.d.ts.map +1 -0
- package/dist/rules/token/no-hard-tabs.js +76 -0
- package/dist/rules/token/no-hard-tabs.js.map +1 -0
- package/dist/rules/token/no-inline-html.d.ts +3 -0
- package/dist/rules/token/no-inline-html.d.ts.map +1 -0
- package/dist/rules/token/no-inline-html.js +45 -0
- package/dist/rules/token/no-inline-html.js.map +1 -0
- package/dist/rules/token/no-missing-space-atx.d.ts +3 -0
- package/dist/rules/token/no-missing-space-atx.d.ts.map +1 -0
- package/dist/rules/token/no-missing-space-atx.js +36 -0
- package/dist/rules/token/no-missing-space-atx.js.map +1 -0
- package/dist/rules/token/no-missing-space-closed-atx.d.ts +3 -0
- package/dist/rules/token/no-missing-space-closed-atx.d.ts.map +1 -0
- package/dist/rules/token/no-missing-space-closed-atx.js +45 -0
- package/dist/rules/token/no-missing-space-closed-atx.js.map +1 -0
- package/dist/rules/token/no-multiple-blanks.d.ts +3 -0
- package/dist/rules/token/no-multiple-blanks.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-blanks.js +35 -0
- package/dist/rules/token/no-multiple-blanks.js.map +1 -0
- package/dist/rules/token/no-multiple-space-atx.d.ts +13 -0
- package/dist/rules/token/no-multiple-space-atx.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-space-atx.js +50 -0
- package/dist/rules/token/no-multiple-space-atx.js.map +1 -0
- package/dist/rules/token/no-multiple-space-blockquote.d.ts +3 -0
- package/dist/rules/token/no-multiple-space-blockquote.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-space-blockquote.js +43 -0
- package/dist/rules/token/no-multiple-space-blockquote.js.map +1 -0
- package/dist/rules/token/no-multiple-space-closed-atx.d.ts +3 -0
- package/dist/rules/token/no-multiple-space-closed-atx.d.ts.map +1 -0
- package/dist/rules/token/no-multiple-space-closed-atx.js +19 -0
- package/dist/rules/token/no-multiple-space-closed-atx.js.map +1 -0
- package/dist/rules/token/no-reversed-links.d.ts +3 -0
- package/dist/rules/token/no-reversed-links.d.ts.map +1 -0
- package/dist/rules/token/no-reversed-links.js +52 -0
- package/dist/rules/token/no-reversed-links.js.map +1 -0
- package/dist/rules/token/no-space-in-code.d.ts +3 -0
- package/dist/rules/token/no-space-in-code.d.ts.map +1 -0
- package/dist/rules/token/no-space-in-code.js +75 -0
- package/dist/rules/token/no-space-in-code.js.map +1 -0
- package/dist/rules/token/no-space-in-emphasis.d.ts +3 -0
- package/dist/rules/token/no-space-in-emphasis.d.ts.map +1 -0
- package/dist/rules/token/no-space-in-emphasis.js +79 -0
- package/dist/rules/token/no-space-in-emphasis.js.map +1 -0
- package/dist/rules/token/no-space-in-links.d.ts +3 -0
- package/dist/rules/token/no-space-in-links.d.ts.map +1 -0
- package/dist/rules/token/no-space-in-links.js +48 -0
- package/dist/rules/token/no-space-in-links.js.map +1 -0
- package/dist/rules/token/no-trailing-punctuation.d.ts +3 -0
- package/dist/rules/token/no-trailing-punctuation.d.ts.map +1 -0
- package/dist/rules/token/no-trailing-punctuation.js +38 -0
- package/dist/rules/token/no-trailing-punctuation.js.map +1 -0
- package/dist/rules/token/no-trailing-spaces.d.ts +3 -0
- package/dist/rules/token/no-trailing-spaces.d.ts.map +1 -0
- package/dist/rules/token/no-trailing-spaces.js +89 -0
- package/dist/rules/token/no-trailing-spaces.js.map +1 -0
- package/dist/rules/token/ol-prefix.d.ts +3 -0
- package/dist/rules/token/ol-prefix.d.ts.map +1 -0
- package/dist/rules/token/ol-prefix.js +70 -0
- package/dist/rules/token/ol-prefix.js.map +1 -0
- package/dist/rules/token/proper-names.d.ts +3 -0
- package/dist/rules/token/proper-names.d.ts.map +1 -0
- package/dist/rules/token/proper-names.js +93 -0
- package/dist/rules/token/proper-names.js.map +1 -0
- package/dist/rules/token/reference-links-images.d.ts +3 -0
- package/dist/rules/token/reference-links-images.d.ts.map +1 -0
- package/dist/rules/token/reference-links-images.js +36 -0
- package/dist/rules/token/reference-links-images.js.map +1 -0
- package/dist/rules/token/required-headings.d.ts +3 -0
- package/dist/rules/token/required-headings.d.ts.map +1 -0
- package/dist/rules/token/required-headings.js +83 -0
- package/dist/rules/token/required-headings.js.map +1 -0
- package/dist/rules/token/single-h1.d.ts +3 -0
- package/dist/rules/token/single-h1.d.ts.map +1 -0
- package/dist/rules/token/single-h1.js +56 -0
- package/dist/rules/token/single-h1.js.map +1 -0
- package/dist/rules/token/single-trailing-newline.d.ts +3 -0
- package/dist/rules/token/single-trailing-newline.d.ts.map +1 -0
- package/dist/rules/token/single-trailing-newline.js +25 -0
- package/dist/rules/token/single-trailing-newline.js.map +1 -0
- package/dist/rules/token/strong-style.d.ts +3 -0
- package/dist/rules/token/strong-style.d.ts.map +1 -0
- package/dist/rules/token/strong-style.js +51 -0
- package/dist/rules/token/strong-style.js.map +1 -0
- package/dist/rules/token/table-column-count.d.ts +3 -0
- package/dist/rules/token/table-column-count.d.ts.map +1 -0
- package/dist/rules/token/table-column-count.js +44 -0
- package/dist/rules/token/table-column-count.js.map +1 -0
- package/dist/rules/token/table-column-style.d.ts +3 -0
- package/dist/rules/token/table-column-style.d.ts.map +1 -0
- package/dist/rules/token/table-column-style.js +179 -0
- package/dist/rules/token/table-column-style.js.map +1 -0
- package/dist/rules/token/table-pipe-style.d.ts +3 -0
- package/dist/rules/token/table-pipe-style.d.ts.map +1 -0
- package/dist/rules/token/table-pipe-style.js +54 -0
- package/dist/rules/token/table-pipe-style.js.map +1 -0
- package/dist/rules/token/ul-indent.d.ts +3 -0
- package/dist/rules/token/ul-indent.d.ts.map +1 -0
- package/dist/rules/token/ul-indent.js +72 -0
- package/dist/rules/token/ul-indent.js.map +1 -0
- package/dist/rules/token/ul-style.d.ts +3 -0
- package/dist/rules/token/ul-style.d.ts.map +1 -0
- package/dist/rules/token/ul-style.js +80 -0
- package/dist/rules/token/ul-style.js.map +1 -0
- package/dist/rules/types.d.ts +81 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +2 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/rules/utils.d.ts +29 -0
- package/dist/rules/utils.d.ts.map +1 -0
- package/dist/{assertions → rules}/utils.js +27 -0
- package/dist/rules/utils.js.map +1 -0
- package/dist/scopes/extractor.d.ts +7 -0
- package/dist/scopes/extractor.d.ts.map +1 -0
- package/dist/scopes/extractor.js +475 -0
- package/dist/scopes/extractor.js.map +1 -0
- package/dist/scopes/selector.d.ts +51 -0
- package/dist/scopes/selector.d.ts.map +1 -0
- package/dist/scopes/selector.js +121 -0
- package/dist/scopes/selector.js.map +1 -0
- package/dist/scopes/sentences.d.ts +15 -0
- package/dist/scopes/sentences.d.ts.map +1 -0
- package/dist/scopes/sentences.js +124 -0
- package/dist/scopes/sentences.js.map +1 -0
- package/dist/scopes/types.d.ts +44 -0
- package/dist/scopes/types.d.ts.map +1 -0
- package/dist/scopes/types.js +2 -0
- package/dist/scopes/types.js.map +1 -0
- package/dist/scopes/vocabulary.d.ts +16 -0
- package/dist/scopes/vocabulary.d.ts.map +1 -0
- package/dist/scopes/vocabulary.js +70 -0
- package/dist/scopes/vocabulary.js.map +1 -0
- package/dist/types/assertions.d.ts +95 -32
- package/dist/types/assertions.d.ts.map +1 -1
- package/dist/types/problems.d.ts +4 -5
- package/dist/types/problems.d.ts.map +1 -1
- package/dist/types/rules.d.ts +4 -6
- package/dist/types/rules.d.ts.map +1 -1
- package/examples/appendices/google.appendix.yaml +91 -0
- package/examples/appendices/inclusive-language.appendix.yaml +61 -0
- package/examples/appendices/microsoft.appendix.yaml +99 -0
- package/examples/appendices/plain-language.appendix.yaml +88 -0
- package/examples/google.yaml +1525 -0
- package/examples/inclusive-language.yaml +304 -0
- package/examples/microsoft.yaml +1542 -0
- package/examples/plain-language.yaml +325 -0
- package/package.json +49 -16
- package/presets/google/PROVENANCE.md +1022 -0
- package/presets/google/sources.json +192 -0
- package/presets/inclusive-language/PROVENANCE.md +174 -0
- package/presets/inclusive-language/sources.json +107 -0
- package/presets/microsoft/PROVENANCE.md +1555 -0
- package/presets/microsoft/sources.json +494 -0
- package/presets/plain-language/PROVENANCE.md +364 -0
- package/presets/plain-language/sources.json +108 -0
- package/dist/assertions/bullet-style.d.ts +0 -3
- package/dist/assertions/bullet-style.d.ts.map +0 -1
- package/dist/assertions/bullet-style.js +0 -60
- package/dist/assertions/bullet-style.js.map +0 -1
- package/dist/assertions/index.d.ts +0 -21
- package/dist/assertions/index.d.ts.map +0 -1
- package/dist/assertions/index.js +0 -30
- package/dist/assertions/index.js.map +0 -1
- package/dist/assertions/max-image-size.d.ts +0 -3
- package/dist/assertions/max-image-size.d.ts.map +0 -1
- package/dist/assertions/max-image-size.js +0 -73
- package/dist/assertions/max-image-size.js.map +0 -1
- package/dist/assertions/max-line-length.d.ts +0 -3
- package/dist/assertions/max-line-length.d.ts.map +0 -1
- package/dist/assertions/max-line-length.js +0 -68
- package/dist/assertions/max-line-length.js.map +0 -1
- package/dist/assertions/no-broken-fragment-links.d.ts +0 -3
- package/dist/assertions/no-broken-fragment-links.d.ts.map +0 -1
- package/dist/assertions/no-broken-fragment-links.js +0 -79
- package/dist/assertions/no-broken-fragment-links.js.map +0 -1
- package/dist/assertions/no-duplicate-headings.d.ts +0 -3
- package/dist/assertions/no-duplicate-headings.d.ts.map +0 -1
- package/dist/assertions/no-duplicate-headings.js +0 -66
- package/dist/assertions/no-duplicate-headings.js.map +0 -1
- package/dist/assertions/no-hard-tabs.d.ts +0 -3
- package/dist/assertions/no-hard-tabs.d.ts.map +0 -1
- package/dist/assertions/no-hard-tabs.js +0 -63
- package/dist/assertions/no-hard-tabs.js.map +0 -1
- package/dist/assertions/no-trailing-spaces.d.ts +0 -3
- package/dist/assertions/no-trailing-spaces.d.ts.map +0 -1
- package/dist/assertions/no-trailing-spaces.js +0 -72
- package/dist/assertions/no-trailing-spaces.js.map +0 -1
- package/dist/assertions/pattern.d.ts +0 -3
- package/dist/assertions/pattern.d.ts.map +0 -1
- package/dist/assertions/pattern.js +0 -39
- package/dist/assertions/pattern.js.map +0 -1
- package/dist/assertions/semantic-line-breaks.d.ts +0 -3
- package/dist/assertions/semantic-line-breaks.d.ts.map +0 -1
- package/dist/assertions/semantic-line-breaks.js +0 -152
- package/dist/assertions/semantic-line-breaks.js.map +0 -1
- package/dist/assertions/swap.d.ts +0 -3
- package/dist/assertions/swap.d.ts.map +0 -1
- package/dist/assertions/swap.js +0 -39
- package/dist/assertions/swap.js.map +0 -1
- package/dist/assertions/utils.d.ts +0 -8
- package/dist/assertions/utils.d.ts.map +0 -1
- package/dist/assertions/utils.js.map +0 -1
- package/dist/core/scope-parser.d.ts +0 -26
- package/dist/core/scope-parser.d.ts.map +0 -1
- package/dist/core/scope-parser.js +0 -110
- package/dist/core/scope-parser.js.map +0 -1
- package/dist/files.d.ts +0 -2
- package/dist/files.d.ts.map +0 -1
- package/dist/files.js +0 -39
- package/dist/files.js.map +0 -1
- package/dist/load-config.d.ts +0 -25
- package/dist/load-config.d.ts.map +0 -1
- package/dist/load-config.js +0 -104
- package/dist/load-config.js.map +0 -1
- package/dist/load.d.ts +0 -25
- package/dist/load.d.ts.map +0 -1
- package/dist/load.js +0 -112
- package/dist/load.js.map +0 -1
- package/dist/scope.d.ts +0 -26
- package/dist/scope.d.ts.map +0 -1
- package/dist/scope.js +0 -110
- package/dist/scope.js.map +0 -1
- package/dist/types.d.ts +0 -109
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js.map +0 -1
- package/dist/validate.d.ts +0 -31
- package/dist/validate.d.ts.map +0 -1
- package/dist/validate.js +0 -154
- package/dist/validate.js.map +0 -1
- /package/dist/{types.js → parser/types.js} +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { validateScopeSelector } from './vocabulary.js';
|
|
2
|
+
const ALIASES = { default: 'summary' };
|
|
3
|
+
/**
|
|
4
|
+
* Splits a selector entry into its `&`-joined clauses. This is THE selector
|
|
5
|
+
* tokenizer: compilation (compileSelector below) and config validation
|
|
6
|
+
* (scopes/vocabulary.ts validateScopeSelector, config/validate.ts) must all
|
|
7
|
+
* parse selector entries through here, so the two sides can never drift
|
|
8
|
+
* apart on what counts as a term.
|
|
9
|
+
*/
|
|
10
|
+
export function tokenizeSelector(raw) {
|
|
11
|
+
return raw.split('&').map((part) => {
|
|
12
|
+
const clause = part.trim();
|
|
13
|
+
const negated = clause.startsWith('~');
|
|
14
|
+
const term = (negated ? clause.slice(1) : clause).trim();
|
|
15
|
+
return { clause, negated, term };
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Order-preserving removal of duplicate messages within a single selector's
|
|
20
|
+
* problem list. A selector that repeats the same mistake per clause
|
|
21
|
+
* (`all & all`, `bogus & bogus`) produces the identical message once per
|
|
22
|
+
* clause — reporting it twice adds noise, not information. Applied inside
|
|
23
|
+
* the problem-producing helpers (wholeDocumentKeywordProblems here,
|
|
24
|
+
* validateScopeSelector in vocabulary.ts) so every consumer — config
|
|
25
|
+
* validation's error list and compileSelector's throw alike — gets the
|
|
26
|
+
* deduplicated form.
|
|
27
|
+
*/
|
|
28
|
+
export function dedupeProblems(problems) {
|
|
29
|
+
return [...new Set(problems)];
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Problems with `all`/`raw` used as selector TERMS inside a compound or
|
|
33
|
+
* negated expression. Both are whole-document keywords, not segment names —
|
|
34
|
+
* extractScopes never emits segments with those scopes — so:
|
|
35
|
+
* - as a conjunction term (`heading & all`) the keyword clause can never
|
|
36
|
+
* match a segment, and the whole rule silently reports nothing;
|
|
37
|
+
* - negated (`~all`, `~raw`) the clause matches EVERY segment, silently
|
|
38
|
+
* meaning "everything" when the set-theoretic reading of `~all` is
|
|
39
|
+
* "nothing".
|
|
40
|
+
* Bare `all`/`raw` as an entire single entry is NOT a problem — that's the
|
|
41
|
+
* valid whole-document form compileSelector normalizes to `null`. Config
|
|
42
|
+
* validation (config/validate.ts validateScope) surfaces these as
|
|
43
|
+
* validation errors; compileSelector throws on them so direct runRules
|
|
44
|
+
* callers that skip validation fail loudly instead of silently.
|
|
45
|
+
*/
|
|
46
|
+
export function wholeDocumentKeywordProblems(entry) {
|
|
47
|
+
const clauses = tokenizeSelector(entry);
|
|
48
|
+
const problems = [];
|
|
49
|
+
for (const { negated, term } of clauses) {
|
|
50
|
+
if (term !== 'all' && term !== 'raw')
|
|
51
|
+
continue;
|
|
52
|
+
if (negated) {
|
|
53
|
+
problems.push(`negating "${term}" in scope selector "${entry}" is not meaningful — ` +
|
|
54
|
+
`"${term}" is a whole-document keyword, not a segment name, so "~${term}" would ` +
|
|
55
|
+
`silently match every segment; use named scopes (e.g. \`~code & ~heading\`) ` +
|
|
56
|
+
`or \`scope: ${term}\``);
|
|
57
|
+
}
|
|
58
|
+
else if (clauses.length > 1) {
|
|
59
|
+
problems.push(`scope "${term}" covers the whole document and cannot be combined with other scopes ` +
|
|
60
|
+
`in selector "${entry}" — use \`scope: ${term}\` alone`);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return dedupeProblems(problems);
|
|
64
|
+
}
|
|
65
|
+
function termMatches(term, segmentScope) {
|
|
66
|
+
const resolved = ALIASES[term] ?? term;
|
|
67
|
+
return segmentScope === resolved || segmentScope.startsWith(`${resolved}.`);
|
|
68
|
+
}
|
|
69
|
+
function compileTerm(raw) {
|
|
70
|
+
const clauses = tokenizeSelector(raw);
|
|
71
|
+
return (segment) => clauses.every(({ negated, term }) => {
|
|
72
|
+
const matched = termMatches(term, segment.scope);
|
|
73
|
+
return negated ? !matched : matched;
|
|
74
|
+
});
|
|
75
|
+
}
|
|
76
|
+
export function compileSelector(scope) {
|
|
77
|
+
if (scope === undefined)
|
|
78
|
+
return null;
|
|
79
|
+
const entries = Array.isArray(scope) ? scope : [scope];
|
|
80
|
+
if (entries.length === 0)
|
|
81
|
+
return null;
|
|
82
|
+
// Every term must pass the vocabulary/keyword checks before anything
|
|
83
|
+
// compiles — a term that fails them can only compile to a silently-wrong
|
|
84
|
+
// predicate:
|
|
85
|
+
// - unknown terms ('heading & ALL' case typo; '~~code' double negation,
|
|
86
|
+
// whose post-~-strip term is '~code', unknown) compile to an
|
|
87
|
+
// always-false conjunct (rule lints nothing) or an always-true negation
|
|
88
|
+
// (rule fires on everything);
|
|
89
|
+
// - 'all'/'raw' as compound or negated TERMS are never-matching for
|
|
90
|
+
// `heading & all`, always-matching for `~all` — see
|
|
91
|
+
// wholeDocumentKeywordProblems.
|
|
92
|
+
// Both checks are the very helpers config validation runs
|
|
93
|
+
// (config/validate.ts validateScope → validateScopeSelector +
|
|
94
|
+
// wholeDocumentKeywordProblems), so validation and compilation can never
|
|
95
|
+
// disagree on which terms exist; config-driven entry points reject these
|
|
96
|
+
// shapes at validation first, and the throw here is for direct runRules
|
|
97
|
+
// callers that skip validation — loud beats a rule that silently reports
|
|
98
|
+
// nothing (or fires on everything).
|
|
99
|
+
for (const entry of entries) {
|
|
100
|
+
const problems = [...validateScopeSelector(entry), ...wholeDocumentKeywordProblems(entry)];
|
|
101
|
+
if (problems.length > 0) {
|
|
102
|
+
throw new Error(`Invalid scope selector: ${problems.join('; ')}`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// 'all'/'raw' are whole-document keywords, not segment names — extractScopes
|
|
106
|
+
// never emits segments with those scopes, so they bypass filtering entirely
|
|
107
|
+
// (null = "run against the whole file"). The single-element array form must
|
|
108
|
+
// mean exactly what the bare string means (scope: ['all'] ≡ scope: all);
|
|
109
|
+
// compiling these keywords into ordinary name predicates would silently
|
|
110
|
+
// match nothing. Arrays MIXING 'all'/'raw' with other entries are rejected
|
|
111
|
+
// at config validation (src/config/validate.ts validateScope) — they can't
|
|
112
|
+
// reach here through any config-driven entry point.
|
|
113
|
+
if (entries.length === 1) {
|
|
114
|
+
const term = entries[0].trim();
|
|
115
|
+
if (term === 'all' || term === 'raw')
|
|
116
|
+
return null;
|
|
117
|
+
}
|
|
118
|
+
const predicates = entries.map(compileTerm);
|
|
119
|
+
return (segment) => predicates.some((predicate) => predicate(segment));
|
|
120
|
+
}
|
|
121
|
+
//# sourceMappingURL=selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selector.js","sourceRoot":"","sources":["../../src/scopes/selector.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export interface SentenceSpan {
|
|
2
|
+
text: string;
|
|
3
|
+
start: number;
|
|
4
|
+
end: number;
|
|
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;
|
|
14
|
+
export declare function splitSentences(text: string): SentenceSpan[];
|
|
15
|
+
//# sourceMappingURL=sentences.d.ts.map
|
|
@@ -0,0 +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;AAKD,eAAO,MAAM,aAAa,aAwBxB,CAAC;AAEH;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAIlE;AA8BD,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,EAAE,CA2C3D"}
|
|
@@ -0,0 +1,124 @@
|
|
|
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([
|
|
5
|
+
'e.g',
|
|
6
|
+
'i.e',
|
|
7
|
+
'etc',
|
|
8
|
+
'vs',
|
|
9
|
+
'cf',
|
|
10
|
+
'ca',
|
|
11
|
+
'al',
|
|
12
|
+
'approx',
|
|
13
|
+
'dr',
|
|
14
|
+
'mr',
|
|
15
|
+
'mrs',
|
|
16
|
+
'ms',
|
|
17
|
+
'prof',
|
|
18
|
+
'st',
|
|
19
|
+
'no',
|
|
20
|
+
'fig',
|
|
21
|
+
'sec',
|
|
22
|
+
'min',
|
|
23
|
+
'max',
|
|
24
|
+
'dept',
|
|
25
|
+
'est',
|
|
26
|
+
'inc',
|
|
27
|
+
'ltd',
|
|
28
|
+
]);
|
|
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) {
|
|
36
|
+
const slice = text.slice(0, index);
|
|
37
|
+
const match = /([\w.]+)$/.exec(slice);
|
|
38
|
+
return (match ? match[1] : '').toLowerCase().replace(/\.$/, '');
|
|
39
|
+
}
|
|
40
|
+
// An ordinal enumerator like `1. Title` or `**1. Title**` is a label, not a
|
|
41
|
+
// sentence end. A digit-only token before the '.' sits in enumerator position
|
|
42
|
+
// when it is (i) at the start of the content being split (line start, after
|
|
43
|
+
// leading whitespace only), or (ii) right after an emphasis/strong opener
|
|
44
|
+
// (`*`, `**`, `_`, `__`) — including mid-line, e.g. `Intro: **2. Title**`.
|
|
45
|
+
// A plain mid-sentence digit-period ("The answer is 42. Next.") is NOT
|
|
46
|
+
// enumerator position and stays a boundary.
|
|
47
|
+
function isOrdinalEnumerator(text, dotIndex) {
|
|
48
|
+
let j = dotIndex - 1;
|
|
49
|
+
if (j < 0 || !/\d/.test(text[j]))
|
|
50
|
+
return false;
|
|
51
|
+
while (j >= 0 && /\d/.test(text[j]))
|
|
52
|
+
j--;
|
|
53
|
+
// The token core must be ONLY digits: a letter or '.' attached in front
|
|
54
|
+
// makes it "v1", "1.2", etc. — never an enumerator.
|
|
55
|
+
if (j >= 0 && /[A-Za-z.]/.test(text[j]))
|
|
56
|
+
return false;
|
|
57
|
+
const beforeDigits = j;
|
|
58
|
+
while (j >= 0 && (text[j] === '*' || text[j] === '_'))
|
|
59
|
+
j--;
|
|
60
|
+
if (j < beforeDigits) {
|
|
61
|
+
// Emphasis markers directly before the digits mark an enumerator, but
|
|
62
|
+
// only when they are a real opener: at content start or after a
|
|
63
|
+
// non-word character (an intraword `_` as in `x_1` is not an opener).
|
|
64
|
+
return j < 0 || !/[A-Za-z0-9]/.test(text[j]);
|
|
65
|
+
}
|
|
66
|
+
// Bare digits: enumerator position only at line start, allowing leading
|
|
67
|
+
// indentation.
|
|
68
|
+
while (j >= 0 && (text[j] === ' ' || text[j] === '\t'))
|
|
69
|
+
j--;
|
|
70
|
+
return j < 0 || text[j] === '\n' || text[j] === '\r';
|
|
71
|
+
}
|
|
72
|
+
export function splitSentences(text) {
|
|
73
|
+
const spans = [];
|
|
74
|
+
let start = 0;
|
|
75
|
+
let inCode = false;
|
|
76
|
+
for (let i = 0; i < text.length; i++) {
|
|
77
|
+
const char = text[i];
|
|
78
|
+
if (char === '`') {
|
|
79
|
+
inCode = !inCode;
|
|
80
|
+
continue;
|
|
81
|
+
}
|
|
82
|
+
if (inCode || !'.!?'.includes(char))
|
|
83
|
+
continue;
|
|
84
|
+
// Consume runs of terminators ("?!", "...").
|
|
85
|
+
while (i + 1 < text.length && '.!?'.includes(text[i + 1]))
|
|
86
|
+
i++;
|
|
87
|
+
const next = text[i + 1];
|
|
88
|
+
// Boundary requires whitespace then an uppercase letter, quote, or bracket.
|
|
89
|
+
if (next === undefined)
|
|
90
|
+
break; // end of text handled after loop
|
|
91
|
+
if (next !== ' ' && next !== '\n' && next !== '\t' && next !== '\r')
|
|
92
|
+
continue;
|
|
93
|
+
// '\r\n' is one line ending, so the CRLF pair counts as a single
|
|
94
|
+
// whitespace unit — otherwise a '.\r\nNext' boundary would test the
|
|
95
|
+
// '\n' for uppercase and never split (unlike its '.\nNext' LF twin).
|
|
96
|
+
const after = next === '\r' && text[i + 2] === '\n' ? text[i + 3] : text[i + 2];
|
|
97
|
+
if (after === undefined || !/[A-Z"'([`]/.test(after))
|
|
98
|
+
continue;
|
|
99
|
+
if (char === '.') {
|
|
100
|
+
const word = lastWordBefore(text, i);
|
|
101
|
+
if (ABBREVIATIONS.has(word))
|
|
102
|
+
continue;
|
|
103
|
+
if (/\d$/.test(text[i - 1] ?? '') && /\d/.test(after))
|
|
104
|
+
continue; // decimals
|
|
105
|
+
if (isOrdinalEnumerator(text, i))
|
|
106
|
+
continue;
|
|
107
|
+
}
|
|
108
|
+
const end = i + 1;
|
|
109
|
+
const raw = text.slice(start, end);
|
|
110
|
+
if (raw.trim())
|
|
111
|
+
spans.push({ text: raw.trim(), start: start + (raw.length - raw.trimStart().length), end });
|
|
112
|
+
start = end;
|
|
113
|
+
}
|
|
114
|
+
const tail = text.slice(start);
|
|
115
|
+
if (tail.trim()) {
|
|
116
|
+
spans.push({
|
|
117
|
+
text: tail.trim(),
|
|
118
|
+
start: start + (tail.length - tail.trimStart().length),
|
|
119
|
+
end: text.length,
|
|
120
|
+
});
|
|
121
|
+
}
|
|
122
|
+
return spans;
|
|
123
|
+
}
|
|
124
|
+
//# sourceMappingURL=sentences.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sentences.js","sourceRoot":"","sources":["../../src/scopes/sentences.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { Token } from '../parser/types.js';
|
|
2
|
+
/** Half-open `[start, end)` character offsets into a segment's `content`. */
|
|
3
|
+
export interface TextRange {
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
}
|
|
7
|
+
export interface ScopedSegment {
|
|
8
|
+
scope: string;
|
|
9
|
+
content: string;
|
|
10
|
+
startLine: number;
|
|
11
|
+
startColumn: number;
|
|
12
|
+
endLine: number;
|
|
13
|
+
endColumn: number;
|
|
14
|
+
tokens: Token[];
|
|
15
|
+
/**
|
|
16
|
+
* The verbatim source slice this segment covers, set only when `content` is
|
|
17
|
+
* not that slice — that is, when a prose scope had markdoc tag spans blanked
|
|
18
|
+
* out of it by `maskProse` in scopes/extractor.ts. Always the same length as
|
|
19
|
+
* `content`, so an offset means the same thing in both.
|
|
20
|
+
*
|
|
21
|
+
* `content` is the prose view: what a rule should scan, split into words, or
|
|
22
|
+
* measure. `sourceText ?? content` is the source view: what a rule should
|
|
23
|
+
* quote in `Problem.text`, `Problem.match`, or a message. Quoting the masked
|
|
24
|
+
* view instead shows the user a run of blanks where their tag is.
|
|
25
|
+
*/
|
|
26
|
+
sourceText?: string;
|
|
27
|
+
/**
|
|
28
|
+
* The spans of `content` that masking blanked, when it did. Rules that
|
|
29
|
+
* reject a match rather than rewrite text need these: a user-supplied regex
|
|
30
|
+
* runs against `content`, and no mask character can stop an arbitrary
|
|
31
|
+
* pattern (a negated class like `[^,]+`, or `\s+` against a blank mask) from
|
|
32
|
+
* matching straight through a masked run and merging the text on either side
|
|
33
|
+
* of a tag into one bogus match. Such a match has to be discarded after the
|
|
34
|
+
* fact, by overlap — the same treatment inline code spans get, for the same
|
|
35
|
+
* reason. `nonProseRanges` in rules/utils.ts bundles both sets.
|
|
36
|
+
*/
|
|
37
|
+
maskedRanges?: TextRange[];
|
|
38
|
+
metadata?: {
|
|
39
|
+
headingLevel?: number;
|
|
40
|
+
codeLanguage?: string;
|
|
41
|
+
listDepth?: number;
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scopes/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAEhD,6EAA6E;AAC7E,MAAM,WAAW,SAAS;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB;;;;;;;;;;OAUG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;OASG;IACH,YAAY,CAAC,EAAE,SAAS,EAAE,CAAC;IAC3B,QAAQ,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/scopes/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export declare const BASE_SCOPES: readonly ['all', 'raw', 'default', 'summary', 'sentence', 'paragraph', 'heading', 'code', 'list-item', 'blockquote', 'table.header', 'table.cell', 'markdoc.tag', 'frontmatter', 'html', 'comment', 'alt', 'link'];
|
|
2
|
+
/**
|
|
3
|
+
* True when `term` (already stripped of any leading `~` negation and
|
|
4
|
+
* surrounding whitespace) is a recognized scope name — either an exact
|
|
5
|
+
* base-vocabulary match or a `heading.h1`-`heading.h6` level selector.
|
|
6
|
+
*/
|
|
7
|
+
export declare function isKnownScopeTerm(term: string): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Validates a single scope string, which may be a bare scope name or a
|
|
10
|
+
* selector clause of `&`-joined (optionally `~`-negated) terms, e.g.
|
|
11
|
+
* `'~blockquote & ~heading'`. Returns a list of problems found (empty when
|
|
12
|
+
* valid) — each problem names the offending term/clause for a helpful error
|
|
13
|
+
* message.
|
|
14
|
+
*/
|
|
15
|
+
export declare function validateScopeSelector(raw: string): string[];
|
|
16
|
+
//# sourceMappingURL=vocabulary.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vocabulary.d.ts","sourceRoot":"","sources":["../../src/scopes/vocabulary.ts"],"names":[],"mappings":"AAYA,eAAO,MAAM,WAAW,YACtB,KAAK,EACL,KAAK,EACL,SAAS,EACT,SAAS,EACT,UAAU,EACV,WAAW,EACX,SAAS,EACT,MAAM,EACN,WAAW,EACX,YAAY,EACZ,cAAc,EACd,YAAY,EACZ,aAAa,EACb,aAAa,EACb,MAAM,EACN,SAAS,EACT,KAAK,EACL,MAAM,CACE,CAAC;AAIX;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE,CAqB3D"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { dedupeProblems, tokenizeSelector } from './selector.js';
|
|
2
|
+
// Canonical list of scope names recognized by the extractor/selector. Schema
|
|
3
|
+
// validation (src/config/schema.ts) and semantic validation
|
|
4
|
+
// (src/config/validate.ts) both derive from this list so they can't drift
|
|
5
|
+
// from what extractScopes()/compileSelector() actually support.
|
|
6
|
+
//
|
|
7
|
+
// 'all' and 'raw' are special-cased selector keywords (they bypass
|
|
8
|
+
// filtering entirely — see compileSelector) rather than segment scopes, but
|
|
9
|
+
// they're valid values for the `scope` config field, so they're included
|
|
10
|
+
// here too. 'default' is a permanent alias for 'summary' (see
|
|
11
|
+
// scopes/selector.ts ALIASES).
|
|
12
|
+
export const BASE_SCOPES = [
|
|
13
|
+
'all',
|
|
14
|
+
'raw',
|
|
15
|
+
'default',
|
|
16
|
+
'summary',
|
|
17
|
+
'sentence',
|
|
18
|
+
'paragraph',
|
|
19
|
+
'heading',
|
|
20
|
+
'code',
|
|
21
|
+
'list-item',
|
|
22
|
+
'blockquote',
|
|
23
|
+
'table.header',
|
|
24
|
+
'table.cell',
|
|
25
|
+
'markdoc.tag',
|
|
26
|
+
'frontmatter',
|
|
27
|
+
'html',
|
|
28
|
+
'comment',
|
|
29
|
+
'alt',
|
|
30
|
+
'link',
|
|
31
|
+
];
|
|
32
|
+
const HEADING_LEVEL_PATTERN = /^heading\.h[1-6]$/;
|
|
33
|
+
/**
|
|
34
|
+
* True when `term` (already stripped of any leading `~` negation and
|
|
35
|
+
* surrounding whitespace) is a recognized scope name — either an exact
|
|
36
|
+
* base-vocabulary match or a `heading.h1`-`heading.h6` level selector.
|
|
37
|
+
*/
|
|
38
|
+
export function isKnownScopeTerm(term) {
|
|
39
|
+
return BASE_SCOPES.includes(term) || HEADING_LEVEL_PATTERN.test(term);
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Validates a single scope string, which may be a bare scope name or a
|
|
43
|
+
* selector clause of `&`-joined (optionally `~`-negated) terms, e.g.
|
|
44
|
+
* `'~blockquote & ~heading'`. Returns a list of problems found (empty when
|
|
45
|
+
* valid) — each problem names the offending term/clause for a helpful error
|
|
46
|
+
* message.
|
|
47
|
+
*/
|
|
48
|
+
export function validateScopeSelector(raw) {
|
|
49
|
+
const problems = [];
|
|
50
|
+
// Parses via the selector module's own tokenizer (the one compileSelector
|
|
51
|
+
// compiles with) so validation and compilation can never disagree about
|
|
52
|
+
// where a term starts or ends.
|
|
53
|
+
for (const { clause, term } of tokenizeSelector(raw)) {
|
|
54
|
+
if (clause === '') {
|
|
55
|
+
problems.push(`empty clause in scope selector "${raw}"`);
|
|
56
|
+
continue;
|
|
57
|
+
}
|
|
58
|
+
if (term === '') {
|
|
59
|
+
problems.push(`missing scope name after "~" in scope selector "${raw}"`);
|
|
60
|
+
continue;
|
|
61
|
+
}
|
|
62
|
+
if (!isKnownScopeTerm(term)) {
|
|
63
|
+
problems.push(`unknown scope "${term}" in scope selector "${raw}"`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
// Order-preserving: a selector repeating the same bad clause ('bogus &
|
|
67
|
+
// bogus') yields the identical message once per clause — report it once.
|
|
68
|
+
return dedupeProblems(problems);
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=vocabulary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vocabulary.js","sourceRoot":"","sources":["../../src/scopes/vocabulary.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjE,6EAA6E;AAC7E,4DAA4D;AAC5D,0EAA0E;AAC1E,gEAAgE;AAChE,EAAE;AACF,mEAAmE;AACnE,4EAA4E;AAC5E,yEAAyE;AACzE,8DAA8D;AAC9D,+BAA+B;AAC/B,MAAM,CAAC,MAAM,WAAW,GAAG;IACzB,KAAK;IACL,KAAK;IACL,SAAS;IACT,SAAS;IACT,UAAU;IACV,WAAW;IACX,SAAS;IACT,MAAM;IACN,WAAW;IACX,YAAY;IACZ,cAAc;IACd,YAAY;IACZ,aAAa;IACb,aAAa;IACb,MAAM;IACN,SAAS;IACT,KAAK;IACL,MAAM;CACE,CAAC;AAEX,MAAM,qBAAqB,GAAG,mBAAmB,CAAC;AAElD;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAQ,WAAiC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/F,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,GAAW;IAC/C,MAAM,QAAQ,GAAa,EAAE,CAAC;IAC9B,0EAA0E;IAC1E,wEAAwE;IACxE,+BAA+B;IAC/B,KAAK,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;YAClB,QAAQ,CAAC,IAAI,CAAC,mCAAmC,GAAG,GAAG,CAAC,CAAC;YACzD,SAAS;QACX,CAAC;QACD,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;YAChB,QAAQ,CAAC,IAAI,CAAC,mDAAmD,GAAG,GAAG,CAAC,CAAC;YACzE,SAAS;QACX,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,QAAQ,CAAC,IAAI,CAAC,kBAAkB,IAAI,wBAAwB,GAAG,GAAG,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IACD,uEAAuE;IACvE,yEAAyE;IACzE,OAAO,cAAc,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC"}
|
|
@@ -1,30 +1,30 @@
|
|
|
1
|
+
import type { ReadabilityFormula } from '../metrics/index.js';
|
|
1
2
|
export interface SwapAssertion {
|
|
2
3
|
ignoreCase?: boolean;
|
|
3
4
|
wordBoundary?: boolean;
|
|
4
5
|
keysAreRegex?: boolean;
|
|
5
6
|
pairs: Record<string, string>;
|
|
7
|
+
/**
|
|
8
|
+
* Whether inline code spans (`` `like this` ``) are scanned for matches.
|
|
9
|
+
* Default `false`: a match inside inline code is skipped (by range, not
|
|
10
|
+
* by masking the text -- see core/inline-code.ts), so a swap pair like
|
|
11
|
+
* `master -> primary` doesn't fire inside `` `git checkout master` ``.
|
|
12
|
+
* Set `true` to scan code spans too.
|
|
13
|
+
*/
|
|
14
|
+
includeCode?: boolean;
|
|
6
15
|
}
|
|
7
16
|
export interface PatternAssertion {
|
|
8
17
|
tokens: string[];
|
|
9
18
|
ignoreCase?: boolean;
|
|
10
19
|
nonword?: boolean;
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
ignoreMarkdownLinkUrls?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface NoTrailingSpacesAssertion {
|
|
22
|
-
skipCodeBlocks?: boolean;
|
|
23
|
-
skipBlankLines?: boolean;
|
|
24
|
-
}
|
|
25
|
-
export interface BulletStyleAssertion {
|
|
26
|
-
style: '-' | '*';
|
|
27
|
-
normalizeNested?: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Whether inline code spans (`` `like this` ``) are scanned for matches.
|
|
22
|
+
* Default `false`: a match inside inline code is skipped (by range, not
|
|
23
|
+
* by masking the text -- see core/inline-code.ts), so a token like
|
|
24
|
+
* `master` doesn't fire inside `` `git checkout master` ``. Set `true`
|
|
25
|
+
* to scan code spans too.
|
|
26
|
+
*/
|
|
27
|
+
includeCode?: boolean;
|
|
28
28
|
}
|
|
29
29
|
export interface SemanticLineBreaksAssertion {
|
|
30
30
|
mode: 'sentence' | 'phrase';
|
|
@@ -32,25 +32,88 @@ export interface SemanticLineBreaksAssertion {
|
|
|
32
32
|
ignoreCodeBlocks?: boolean;
|
|
33
33
|
ignoreTables?: boolean;
|
|
34
34
|
}
|
|
35
|
-
export interface NoHardTabsAssertion {
|
|
36
|
-
skipCodeBlocks?: boolean;
|
|
37
|
-
/** Number of spaces to replace a hard tab with. Default: 2 */
|
|
38
|
-
spacesPerTab?: number;
|
|
39
|
-
}
|
|
40
|
-
export interface NoDuplicateHeadingsAssertion {
|
|
41
|
-
caseSensitive?: boolean;
|
|
42
|
-
ignoreCommonHeadings?: boolean;
|
|
43
|
-
respectSections?: boolean;
|
|
44
|
-
}
|
|
45
|
-
export interface NoBrokenFragmentLinksAssertion {
|
|
46
|
-
/** Whether to check fragments in external files. Default: true */
|
|
47
|
-
checkExternalFiles?: boolean;
|
|
48
|
-
}
|
|
49
35
|
export interface MaxImageSizeAssertion {
|
|
50
36
|
/** Maximum image size in KB. Default: 100 */
|
|
51
37
|
maxSizeKB?: number;
|
|
52
38
|
/** File extensions to check. Default: ['jpg', 'jpeg', 'png', 'gif', 'webp', 'svg'] */
|
|
53
39
|
extensions?: string[];
|
|
54
40
|
}
|
|
55
|
-
export
|
|
41
|
+
export interface OccurrenceAssertion {
|
|
42
|
+
pattern: string;
|
|
43
|
+
min?: number;
|
|
44
|
+
max?: number;
|
|
45
|
+
ignoreCase?: boolean;
|
|
46
|
+
}
|
|
47
|
+
export interface RepetitionAssertion {
|
|
48
|
+
pattern?: string;
|
|
49
|
+
ignoreCase?: boolean;
|
|
50
|
+
}
|
|
51
|
+
export interface ConsistencyAssertion {
|
|
52
|
+
either: Record<string, string>;
|
|
53
|
+
ignoreCase?: boolean;
|
|
54
|
+
}
|
|
55
|
+
export interface ConditionalAssertion {
|
|
56
|
+
first: string;
|
|
57
|
+
second: string;
|
|
58
|
+
ignoreCase?: boolean;
|
|
59
|
+
}
|
|
60
|
+
export interface CapitalizationAssertion {
|
|
61
|
+
match: string;
|
|
62
|
+
exceptions?: string[];
|
|
63
|
+
style?: 'ap' | 'chicago';
|
|
64
|
+
builtinVocabulary?: boolean;
|
|
65
|
+
}
|
|
66
|
+
export interface MetricAssertion {
|
|
67
|
+
formula: ReadabilityFormula;
|
|
68
|
+
min?: number;
|
|
69
|
+
max?: number;
|
|
70
|
+
}
|
|
71
|
+
export interface SpellingAssertion {
|
|
72
|
+
/**
|
|
73
|
+
* Base path (WITHOUT the `.aff`/`.dic` extension) to a custom Hunspell
|
|
74
|
+
* dictionary pair, resolved relative to `process.cwd()` unless absolute.
|
|
75
|
+
* Omit to use the default English dictionary (`dictionary-en`).
|
|
76
|
+
*/
|
|
77
|
+
dictionary?: string;
|
|
78
|
+
/** Extra known-good words, matched case-insensitively; never flagged. */
|
|
79
|
+
vocab?: string[];
|
|
80
|
+
/**
|
|
81
|
+
* Regex patterns; a token matching any of them is never flagged. An
|
|
82
|
+
* invalid pattern is silently ignored.
|
|
83
|
+
*/
|
|
84
|
+
ignore?: string[];
|
|
85
|
+
/**
|
|
86
|
+
* Default `true`: whether `../data/proper-nouns.ts`'s
|
|
87
|
+
* `TECHNICAL_PROPER_NOUNS` is unioned into the accepted-word set alongside
|
|
88
|
+
* `vocab` -- see spelling.ts's `execute`. Multi-token entries are split on
|
|
89
|
+
* whitespace/dots and each part accepted individually (correct for a
|
|
90
|
+
* per-word spell check, unlike `capitalization`'s whole-phrase matching --
|
|
91
|
+
* see spelling.ts's doc comment for that asymmetry). Set `false` to
|
|
92
|
+
* restore strict pre-built-in behavior.
|
|
93
|
+
*/
|
|
94
|
+
builtinVocabulary?: boolean;
|
|
95
|
+
}
|
|
96
|
+
export interface LengthAssertion {
|
|
97
|
+
unit: 'characters' | 'words' | 'sentences';
|
|
98
|
+
min?: number;
|
|
99
|
+
max?: number;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Escape-hatch options shape for the 53 markdownlint-parity token rules
|
|
103
|
+
* (`line-length`, `ul-style`, `no-duplicate-heading`, `heading-style`, and
|
|
104
|
+
* so on — see `rules/token/index.ts`'s `allTokenRules`). Each token rule
|
|
105
|
+
* declares its own option names and defaults on its `TokenRule.defaults`
|
|
106
|
+
* object (see e.g. `rules/token/line-length.ts`) rather than a dedicated
|
|
107
|
+
* named interface here — there are too many (and they change too often
|
|
108
|
+
* across rule ports) to keep in lockstep with hand-written interfaces
|
|
109
|
+
* without one inevitably drifting. This permissive index signature is what
|
|
110
|
+
* lets a typed `RecheckConfig` literal set e.g.
|
|
111
|
+
* `assertions: { 'line-length': { lineLength: 120 } }` without TS2353;
|
|
112
|
+
* runtime shape checking for token-rule options happens in each rule's own
|
|
113
|
+
* `check()`, not at the type level.
|
|
114
|
+
*/
|
|
115
|
+
export interface TokenRuleOptions {
|
|
116
|
+
[option: string]: unknown;
|
|
117
|
+
}
|
|
118
|
+
export type AssertionConfig = SwapAssertion | PatternAssertion | SemanticLineBreaksAssertion | MaxImageSizeAssertion | OccurrenceAssertion | RepetitionAssertion | ConsistencyAssertion | ConditionalAssertion | CapitalizationAssertion | MetricAssertion | SpellingAssertion | LengthAssertion | TokenRuleOptions;
|
|
56
119
|
//# sourceMappingURL=assertions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../src/types/assertions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"assertions.d.ts","sourceRoot":"","sources":["../../src/types/assertions.ts"],"names":[],"mappings":"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"}
|
package/dist/types/problems.d.ts
CHANGED
|
@@ -11,11 +11,10 @@ export interface Problem {
|
|
|
11
11
|
}
|
|
12
12
|
export interface Fix {
|
|
13
13
|
file: string;
|
|
14
|
-
line: number;
|
|
15
|
-
column: number;
|
|
16
|
-
oldText: string;
|
|
17
|
-
newText: string;
|
|
18
14
|
ruleName: string;
|
|
19
|
-
|
|
15
|
+
lineNumber: number;
|
|
16
|
+
editColumn?: number;
|
|
17
|
+
deleteCount?: number;
|
|
18
|
+
insertText?: string;
|
|
20
19
|
}
|
|
21
20
|
//# sourceMappingURL=problems.d.ts.map
|
|
@@ -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;CACjB;AAED,MAAM,WAAW,GAAG;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,
|
|
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;CACjB;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"}
|