@redocly/recheck 0.1.0 → 0.2.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 +1006 -56
- package/dist/cli.js +27 -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 +0 -1
- package/dist/commands/run.d.ts.map +1 -1
- package/dist/commands/run.js +68 -5
- 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/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 +208 -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 +161 -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 +42 -0
- package/dist/rules/scope/title-case.d.ts.map +1 -0
- package/dist/rules/scope/title-case.js +264 -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 +7 -0
- package/dist/scopes/sentences.d.ts.map +1 -0
- package/dist/scopes/sentences.js +115 -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 @@
|
|
|
1
|
+
{"version":3,"file":"markdoc-realm-schema.js","sourceRoot":"","sources":["../../src/data/markdoc-realm-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proper-nouns.d.ts","sourceRoot":"","sources":["../../src/data/proper-nouns.ts"],"names":[],"mappings":"AA+KA,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EA+BnD,CAAC"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
// Built-in technical/product proper-noun vocabulary (Phase 4 spec §5.5,
|
|
2
|
+
// deliverable F). Every config that turns on sentence-case headings or
|
|
3
|
+
// spelling immediately needs the same list of mixed-case technology names,
|
|
4
|
+
// and hand-maintaining it per config is a losing game -- the evidence is
|
|
5
|
+
// Redocly's own orphaned `accept.txt` (150 entries inherited from an
|
|
6
|
+
// unrelated project, missing every current Redocly product name). Recheck
|
|
7
|
+
// ships the common set instead, consumed by default (unless
|
|
8
|
+
// `builtinVocabulary: false`) by both `capitalization` (unioned with the
|
|
9
|
+
// rule's own `exceptions`, see rules/scope/capitalization.ts) and `spelling`
|
|
10
|
+
// (unioned with `vocab`, see rules/scope/spelling.ts).
|
|
11
|
+
//
|
|
12
|
+
// -- Inclusion bar (Task 8 fix wave -- see task-8-report.md's "Fix wave"
|
|
13
|
+
// section for the full regression writeup) ---------------------------------
|
|
14
|
+
//
|
|
15
|
+
// The FIRST version of this list (Task 8's initial landing) required
|
|
16
|
+
// "exotic" casing to qualify -- an internal capital, a dot, or forced
|
|
17
|
+
// lowercase -- reasoning that ordinary Title-Case brand names carry no
|
|
18
|
+
// casing fact ordinary English capitalization doesn't already supply. That
|
|
19
|
+
// reasoning was wrong: `capitalization`'s `$sentence` style lowercases
|
|
20
|
+
// EVERY non-first word that isn't ALL-CAPS or an exception, regardless of
|
|
21
|
+
// how "ordinary" its casing looks -- so a plain Title-Case brand name like
|
|
22
|
+
// `Redocly` or `Docker` needs protection exactly as much as `Node.js` does.
|
|
23
|
+
// The bar's real intent, per spec §5.5's prose, is narrower than "exotic
|
|
24
|
+
// casing only": exclude an entry only when listing it would WEAKEN
|
|
25
|
+
// capitalization checks. Two exclusion classes, and only these two:
|
|
26
|
+
//
|
|
27
|
+
// 1. Pure ALL-CAPS acronyms (`JWT`, `YAML`) -- `isAllCapsWord`
|
|
28
|
+
// (title-case.ts) already leaves these untouched structurally in both
|
|
29
|
+
// `capitalization` and `spelling`, so listing them adds maintenance
|
|
30
|
+
// for no behavior change. Note this is narrower than "all-caps-ISH":
|
|
31
|
+
// `OAuth` and `AsyncAPI` are mixed-case, not pure ALL-CAPS, and DO
|
|
32
|
+
// qualify.
|
|
33
|
+
// 2. Words with legitimate lowercase prose usage -- listing them would
|
|
34
|
+
// force-capitalize ordinary English. `cloud` and `apps` are the
|
|
35
|
+
// generic-English examples; `node` (common technical noun, "each node
|
|
36
|
+
// in the graph" -- superseded by the `Node.js` phrase entry for the
|
|
37
|
+
// platform specifically) and `realm`/`replay`/`respect` (Redocly
|
|
38
|
+
// product names that are ALSO ordinary English words -- as
|
|
39
|
+
// exceptions they would rewrite ordinary usage like "we respect your
|
|
40
|
+
// privacy" into "we Respect your privacy") are the project-specific
|
|
41
|
+
// ones. Of the Redocly-name group, only `Redoc` is included: it is a
|
|
42
|
+
// coined word with no ordinary English sense. `Realm`, `Replay`,
|
|
43
|
+
// `Respect` and `Reunite` are all excluded, because forcing their
|
|
44
|
+
// casing for every user of this library would rewrite ordinary prose
|
|
45
|
+
// ("the teams will reunite next quarter"). `Redocly` itself is included
|
|
46
|
+
// on the same basis as `Redoc` -- not an English word.
|
|
47
|
+
//
|
|
48
|
+
// Redocly's own product names belong in Redocly's own configuration,
|
|
49
|
+
// not in a vocabulary shipped to everyone. Note for whoever writes that
|
|
50
|
+
// rule: lowercase `reunite` is legitimate in Redocly's docs as an
|
|
51
|
+
// identifier prefix -- ClickHouse tables (`reunite.api_access_logs`),
|
|
52
|
+
// package names (`reunite-ui`), and URL path segments -- so it must be
|
|
53
|
+
// prose-scoped with code spans excluded, which is the default.
|
|
54
|
+
//
|
|
55
|
+
// Everything else that is a real technology/product/company name qualifies
|
|
56
|
+
// now, including ordinary Title-Case brand names -- this list is no longer
|
|
57
|
+
// scoped to "casing is the protected fact", it is the general technical-
|
|
58
|
+
// vocabulary list spec §5.5 actually describes.
|
|
59
|
+
//
|
|
60
|
+
// Two automated guards enforce this (src/data/__tests__/proper-nouns.test.ts):
|
|
61
|
+
// 1. A bar guard, MECHANIZED (final-review fix wave): no entry may be pure
|
|
62
|
+
// ALL-CAPS (already covered structurally by isAllCapsWord), and no
|
|
63
|
+
// single-token entry's plain lowercase form may be a real English word
|
|
64
|
+
// as judged by the ACTUAL spelling dictionary (`dictionary-en`/`nspell`,
|
|
65
|
+
// the exact pair `spelling` loads at runtime -- see
|
|
66
|
+
// rules/scope/spelling.ts), unless it is named in an explicit
|
|
67
|
+
// accepted-risk allowlist alongside its reason. This replaced a
|
|
68
|
+
// hand-written six-word denylist (`cloud`, `apps`, `node`, `realm`,
|
|
69
|
+
// `replay`, `respect`) that only ever caught re-additions of words its
|
|
70
|
+
// author had already thought of -- and so passed cleanly while
|
|
71
|
+
// `Chrome`/`Markdown`/`Postman`/`Prettier`/`Safari`/`Swagger`/`Windows`
|
|
72
|
+
// shipped as entries despite each failing this exact bar (see the
|
|
73
|
+
// "Task 8 fix-wave audit" section below). A guard narrower than the
|
|
74
|
+
// rule it claims to enforce is worse than none: it produces false
|
|
75
|
+
// confidence. Deriving the check from the real dictionary instead of a
|
|
76
|
+
// hand list means a FUTURE entry that happens to double as an ordinary
|
|
77
|
+
// word is caught automatically, without requiring a test author to have
|
|
78
|
+
// already thought of that specific word.
|
|
79
|
+
// 2. A round-trip (dead-entry) guard -- the direct lesson of the
|
|
80
|
+
// `Node.js`/`VS Code` finding (Task 7 of this phase): every entry is
|
|
81
|
+
// driven through the REAL `capitalization` rule inside a heading and
|
|
82
|
+
// must survive unmodified, and through `spelling` and must not be
|
|
83
|
+
// flagged. An entry that cannot actually be protected fails the suite
|
|
84
|
+
// instead of sitting in the list looking effective.
|
|
85
|
+
//
|
|
86
|
+
// -- Multi-token entries -----------------------------------------------------
|
|
87
|
+
//
|
|
88
|
+
// Before Task 7 of this phase, the exception tokenizer split on dots and
|
|
89
|
+
// whitespace, so a phrase like `Node.js` or `VS Code` could never match as
|
|
90
|
+
// written and was dead config -- see title-case.ts's buildExceptionPlan/
|
|
91
|
+
// recaseWords for the phrase-aware matching that now makes these
|
|
92
|
+
// real entries instead of the single-token approximations (`Node`, `VS`) the
|
|
93
|
+
// Phase 3 preset list had to settle for.
|
|
94
|
+
//
|
|
95
|
+
// -- Seed and what stays excluded --------------------------------------------
|
|
96
|
+
//
|
|
97
|
+
// Seeded from the Phase 3 `recheck/prose` preset's 38-entry starter list
|
|
98
|
+
// (see git history / config/presets/prose.ts) plus the six multi-token names
|
|
99
|
+
// Task 7 makes possible (`Node.js`, `VS Code`, `Visual Studio Code`,
|
|
100
|
+
// `GitHub Actions`, `Google Cloud`, `Azure DevOps`), filtered through the bar
|
|
101
|
+
// above. Under the widened bar, only three classes are excluded, each for a
|
|
102
|
+
// stated reason so nobody re-adds them:
|
|
103
|
+
//
|
|
104
|
+
// | Entry | Why excluded |
|
|
105
|
+
// |------------------------------|-----------------------------------------|
|
|
106
|
+
// | `JWT`, `YAML` | pure ALL-CAPS; isAllCapsWord handles |
|
|
107
|
+
// | | them structurally |
|
|
108
|
+
// | `Realm`, `Replay`, `Respect`,| Redocly product names that are also |
|
|
109
|
+
// | `Reunite` | common English words -- as exceptions |
|
|
110
|
+
// | | they would rewrite ordinary usage ("we |
|
|
111
|
+
// | | respect your privacy" -> "we Respect |
|
|
112
|
+
// | | your privacy"; "the teams will reunite" |
|
|
113
|
+
// | | -> "will Reunite"). Only `Redoc` and |
|
|
114
|
+
// | | `Redocly` are included from the Redocly |
|
|
115
|
+
// | | group -- neither is an English word. |
|
|
116
|
+
// | | Enforcing the rest belongs in Redocly's |
|
|
117
|
+
// | | own config, not a shipped vocabulary. |
|
|
118
|
+
// | `Node` | common technical noun ("each node in |
|
|
119
|
+
// | | the graph"); `Node.js` now works as a |
|
|
120
|
+
// | | phrase entry, which covers the platform |
|
|
121
|
+
//
|
|
122
|
+
// None of these are silently lost: a project that relies on one of these for
|
|
123
|
+
// its own brand or prose adds it back via its OWN rule's `exceptions`/
|
|
124
|
+
// `vocab`, which compose with this built-in list rather than replacing it.
|
|
125
|
+
//
|
|
126
|
+
// -- Task 8 fix-wave audit (final-review fix wave) ---------------------------
|
|
127
|
+
//
|
|
128
|
+
// The widened bar above was correct in principle but was never actually RUN
|
|
129
|
+
// against every entry it admitted. Four ordinary English words --
|
|
130
|
+
// `Postman`, `Prettier`, `Safari`, `Windows` -- shipped as
|
|
131
|
+
// forced-capitalization exceptions despite failing class 2 outright: with
|
|
132
|
+
// `extends: [recheck/prose]`, a heading like "Close all windows before you
|
|
133
|
+
// continue" or "A prettier interface for reviewers" was force-capitalized to
|
|
134
|
+
// "Windows"/"Prettier" the moment the word appeared, lowercase, in ordinary
|
|
135
|
+
// prose. A follow-up audit applied the bar's own stated test -- "would the
|
|
136
|
+
// lowercase form appear as ordinary English in technical prose?" -- to EVERY
|
|
137
|
+
// entry, mechanically, via the real spelling dictionary (guard 1 above).
|
|
138
|
+
// Seven entries failed and were removed:
|
|
139
|
+
//
|
|
140
|
+
// | Entry | Why removed (real, attested lowercase English usage) |
|
|
141
|
+
// |------------|------------------------------------------------------------|
|
|
142
|
+
// | `Chrome` | "chrome plating", "a chrome bumper" -- the metal/finish |
|
|
143
|
+
// | `Markdown` | "a markdown of thirty percent" -- the retail/finance |
|
|
144
|
+
// | | term; `google/brand-capitalization` documents this exact |
|
|
145
|
+
// | | homograph for the same word (see config/presets/google.ts)|
|
|
146
|
+
// | `Postman` | "ask the postman for a receipt" -- the mail carrier |
|
|
147
|
+
// | `Prettier` | "a prettier interface" -- the ordinary comparative |
|
|
148
|
+
// | | adjective |
|
|
149
|
+
// | `Safari` | "plan a safari with the team" -- the trip |
|
|
150
|
+
// | `Swagger` | "he spoke with swagger" -- ordinary confidence/ |
|
|
151
|
+
// | | boastfulness |
|
|
152
|
+
// | `Windows` | "close all windows before you continue" -- plural of the |
|
|
153
|
+
// | | ordinary noun |
|
|
154
|
+
//
|
|
155
|
+
// Three more entries ALSO have a real, dictionary-attested lowercase English
|
|
156
|
+
// sense -- `Android` ("android" = a humanoid robot), `Docker` ("docker" = a
|
|
157
|
+
// dockworker, chiefly British/historical usage), `TypeScript` ("typescript"
|
|
158
|
+
// = a typed manuscript, an archaic sense) -- but were kept rather than
|
|
159
|
+
// removed after adjudication: unlike the seven above, the call here is
|
|
160
|
+
// genuinely debatable, not clear-cut. The ordinary sense of each is rare in
|
|
161
|
+
// practice (dockworker and typed-manuscript both read as dated; the robot
|
|
162
|
+
// sense is mostly genre fiction) and the proper-noun sense dominates current
|
|
163
|
+
// usage -- especially `TypeScript`, central to this very codebase. This is a
|
|
164
|
+
// deliberate, documented risk-acceptance, not an oversight: see the
|
|
165
|
+
// `ACCEPTED_RISK_ENTRIES` allowlist in proper-nouns.test.ts, which the
|
|
166
|
+
// mechanized dictionary guard consults so these three don't fail the suite.
|
|
167
|
+
// `Reunite` (below) has the same real-word tension ("reunite" is an ordinary
|
|
168
|
+
// verb) but predates this audit as an explicit, already-adjudicated
|
|
169
|
+
// project-owner decision (see the exclusion table above) and is left as is.
|
|
170
|
+
//
|
|
171
|
+
// None of the seven removed entries are silently lost either: a project that
|
|
172
|
+
// relies on one for its own brand or prose adds it back via its OWN rule's
|
|
173
|
+
// `exceptions`/`vocab`, exactly as with the three-class exclusions above.
|
|
174
|
+
//
|
|
175
|
+
// Final count: 31 entries. Alphabetized case-insensitively, duplicate-free.
|
|
176
|
+
export const TECHNICAL_PROPER_NOUNS = [
|
|
177
|
+
'Android',
|
|
178
|
+
'AsyncAPI',
|
|
179
|
+
'Azure DevOps',
|
|
180
|
+
'Bitbucket',
|
|
181
|
+
'Docker',
|
|
182
|
+
'ESLint',
|
|
183
|
+
'Firefox',
|
|
184
|
+
'GitHub',
|
|
185
|
+
'GitHub Actions',
|
|
186
|
+
'GitLab',
|
|
187
|
+
'Google Cloud',
|
|
188
|
+
'GraphiQL',
|
|
189
|
+
'GraphQL',
|
|
190
|
+
'iOS',
|
|
191
|
+
'JavaScript',
|
|
192
|
+
'Kubernetes',
|
|
193
|
+
'Linux',
|
|
194
|
+
'macOS',
|
|
195
|
+
'Markdoc',
|
|
196
|
+
'Node.js',
|
|
197
|
+
'npm',
|
|
198
|
+
'OAuth',
|
|
199
|
+
'OpenAPI',
|
|
200
|
+
'pnpm',
|
|
201
|
+
'Redoc',
|
|
202
|
+
'Redocly',
|
|
203
|
+
'TypeScript',
|
|
204
|
+
'Visual Studio Code',
|
|
205
|
+
'VS Code',
|
|
206
|
+
'Webpack',
|
|
207
|
+
];
|
|
208
|
+
//# sourceMappingURL=proper-nouns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proper-nouns.js","sourceRoot":"","sources":["../../src/data/proper-nouns.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import type { Problem, RecheckConfig, NormalizedRule, Fix } from './types/index.js';
|
|
2
|
+
import type { FileInput } from './core/runner.js';
|
|
3
|
+
export { parseMarkdown, filterByTypes } from './parser/index.js';
|
|
4
|
+
export type { ParseOptions } from './parser/index.js';
|
|
5
|
+
export type { Token, TokenTree } from './parser/types.js';
|
|
6
|
+
export { extractScopes } from './scopes/extractor.js';
|
|
7
|
+
export type { ScopedSegment } from './scopes/types.js';
|
|
8
|
+
export { applyFixesToContent } from './core/auto-fix.js';
|
|
9
|
+
export type { ApplyFixesResult } from './core/auto-fix.js';
|
|
10
|
+
export { loadConfig } from './config/load.js';
|
|
11
|
+
export type { LoadResult } from './config/load.js';
|
|
12
|
+
export type { Problem, Fix } from './types/problems.js';
|
|
13
|
+
export type { NormalizedRule, RecheckConfig } from './types/rules.js';
|
|
14
|
+
export type { RuleSeverity } from './types/rules.js';
|
|
15
|
+
export type { ValidationError } from './types/validation.js';
|
|
16
|
+
export { needsImageMetadata, loadImageMetadata, MAX_IMAGE_REFS_PER_FILE } from './core/files.js';
|
|
17
|
+
export { runRules, runRulesUntilStable } from './core/runner.js';
|
|
18
|
+
export type { FileInput, RunResult, RunnerOptions } from './core/runner.js';
|
|
19
|
+
export { computeTextStatistics, computeReadability } from './metrics/index.js';
|
|
20
|
+
export type { TextStatistics, ReadabilityFormula } from './metrics/index.js';
|
|
21
|
+
export { TECHNICAL_PROPER_NOUNS } from './data/proper-nouns.js';
|
|
22
|
+
/**
|
|
23
|
+
* Lints a single in-memory markdown string against a config, with no file I/O.
|
|
24
|
+
*
|
|
25
|
+
* Because there's no disk access here, rules that depend on on-disk facts
|
|
26
|
+
* (e.g. `max-image-size`, which needs image byte size) can't resolve that
|
|
27
|
+
* data themselves. Callers who need those rules to fire must supply the
|
|
28
|
+
* relevant `metadata` up front; `lintFiles` does this automatically since it
|
|
29
|
+
* reads from disk.
|
|
30
|
+
*/
|
|
31
|
+
export declare function lintContent(content: string, config: RecheckConfig, opts?: {
|
|
32
|
+
filePath?: string;
|
|
33
|
+
metadata?: FileInput['metadata'];
|
|
34
|
+
configDir?: string;
|
|
35
|
+
}): Promise<Problem[]>;
|
|
36
|
+
/** A file `lintFiles` could not read and therefore did not lint. */
|
|
37
|
+
export interface SkippedFile {
|
|
38
|
+
path: string;
|
|
39
|
+
/** Why the read failed (the underlying error's message, e.g. EACCES/ENOENT). */
|
|
40
|
+
reason: string;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Lints markdown files from disk, optionally writing auto-fixes back.
|
|
44
|
+
*
|
|
45
|
+
* `config` accepts either a raw `RecheckConfig` (validated and normalized
|
|
46
|
+
* here via `validate()`) or an already-normalized `NormalizedRule[]` — e.g.
|
|
47
|
+
* from `loadConfig()` — for callers that have their own config-loading step
|
|
48
|
+
* and just want to run the engine against a file list. Passing an array
|
|
49
|
+
* skips validation, since the rules are assumed already validated.
|
|
50
|
+
*
|
|
51
|
+
* Unreadable files are warned about and skipped rather than failing the
|
|
52
|
+
* whole call — one bad path (permissions, race with a delete, etc.)
|
|
53
|
+
* shouldn't take down linting for the rest of the batch. Every skipped
|
|
54
|
+
* file is also reported in the returned `skippedFiles` (path + reason), so
|
|
55
|
+
* callers that must know their coverage was incomplete — a security review
|
|
56
|
+
* consuming lint results, say — get a programmatic signal, not just a
|
|
57
|
+
* console warning. Reads (and any image-metadata loading) run with bounded
|
|
58
|
+
* concurrency via `mapLimit`.
|
|
59
|
+
*
|
|
60
|
+
* `opts.root` is the lint root that image-metadata loading is confined to
|
|
61
|
+
* (see `loadImageMetadata`): image refs resolving outside it — lexically or
|
|
62
|
+
* physically, via a symlink planted inside the root — are treated as
|
|
63
|
+
* missing without leaking the target's existence or size. Defaults to
|
|
64
|
+
* `process.cwd()`; pass it explicitly when the linted files live elsewhere
|
|
65
|
+
* (e.g. a checked-out repo under a temp dir).
|
|
66
|
+
*
|
|
67
|
+
* `opts.maxProblems` caps how many problems the run may collect (see
|
|
68
|
+
* `RunnerOptions.maxProblems`): once a file's lint reaches the cap, later
|
|
69
|
+
* files aren't linted at all and the returned `truncated` flag is true, so
|
|
70
|
+
* memory stays bounded on pathological inputs.
|
|
71
|
+
*/
|
|
72
|
+
export declare function lintFiles(paths: string[], config: RecheckConfig | NormalizedRule[], opts?: {
|
|
73
|
+
fix?: boolean;
|
|
74
|
+
root?: string;
|
|
75
|
+
maxProblems?: number;
|
|
76
|
+
configDir?: string;
|
|
77
|
+
}): Promise<{
|
|
78
|
+
problems: Problem[];
|
|
79
|
+
fixedFiles: Map<string, string>;
|
|
80
|
+
skippedFiles: SkippedFile[];
|
|
81
|
+
truncated: boolean;
|
|
82
|
+
/**
|
|
83
|
+
* Proposed fixes that never landed: overlapping edits, plus fixes withheld to
|
|
84
|
+
* avoid rewriting a Markdoc tag. Already present at runtime via
|
|
85
|
+
* `{ ...result, skippedFiles }` below; declared here so typed callers can see
|
|
86
|
+
* it.
|
|
87
|
+
*/
|
|
88
|
+
skippedFixes: Fix[];
|
|
89
|
+
}>;
|
|
90
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AACpF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAalD,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACjE,YAAY,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,YAAY,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnD,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,qBAAqB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACtE,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAI7D,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAIjG,OAAO,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC/E,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAO7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAwBhE;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAC/B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,aAAa,EACrB,IAAI,CAAC,EAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GACjF,OAAO,CAAC,OAAO,EAAE,CAAC,CAWpB;AAED,oEAAoE;AACpE,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,gFAAgF;IAChF,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,EAAE,aAAa,GAAG,cAAc,EAAE,EACxC,IAAI,CAAC,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAChF,OAAO,CAAC;IACT,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,UAAU,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,SAAS,EAAE,OAAO,CAAC;IACnB;;;;;OAKG;IACH,YAAY,EAAE,GAAG,EAAE,CAAC;CACrB,CAAC,CA4DD"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import * as fs from 'fs/promises';
|
|
2
|
+
import { validate } from './config/validate.js';
|
|
3
|
+
import { runRules, runRulesUntilStable } from './core/runner.js';
|
|
4
|
+
import { needsImageMetadata, loadImageMetadata, mapLimit } from './core/files.js';
|
|
5
|
+
import { filterEnabledRules } from './core/rule-filters.js';
|
|
6
|
+
// Bound how many files lintFiles reads (and loads image metadata for)
|
|
7
|
+
// concurrently. High enough to saturate disk I/O on typical repos, low
|
|
8
|
+
// enough to avoid EMFILE on large ones.
|
|
9
|
+
const READ_CONCURRENCY = 16;
|
|
10
|
+
export { parseMarkdown, filterByTypes } from './parser/index.js';
|
|
11
|
+
export { extractScopes } from './scopes/extractor.js';
|
|
12
|
+
export { applyFixesToContent } from './core/auto-fix.js';
|
|
13
|
+
export { loadConfig } from './config/load.js';
|
|
14
|
+
// Exposed so callers building their own FileInput[] (e.g. the ai-worker
|
|
15
|
+
// recheck tool) can populate metadata the same way lintFiles does, without
|
|
16
|
+
// reimplementing image-metadata loading.
|
|
17
|
+
export { needsImageMetadata, loadImageMetadata, MAX_IMAGE_REFS_PER_FILE } from './core/files.js';
|
|
18
|
+
// Lower-level engine entry point for callers that already have NormalizedRule[]
|
|
19
|
+
// (e.g. from `loadConfig`) and want to run against an explicit file list without
|
|
20
|
+
// lintFiles' own config validation/loading.
|
|
21
|
+
export { runRules, runRulesUntilStable } from './core/runner.js';
|
|
22
|
+
// Text statistics + readability formulas (consumed by the `metric` assertion).
|
|
23
|
+
export { computeTextStatistics, computeReadability } from './metrics/index.js';
|
|
24
|
+
// Built-in technical/product proper-noun vocabulary (see its own doc comment
|
|
25
|
+
// for the inclusion bar): consumed by default by `capitalization` and
|
|
26
|
+
// `spelling` (the `builtinVocabulary` option on each), and re-exported here
|
|
27
|
+
// so callers can read or extend it directly -- e.g. to build their own
|
|
28
|
+
// tooling around the same list, or to diff their project's `vocab`/
|
|
29
|
+
// `exceptions` against what's already covered for free.
|
|
30
|
+
export { TECHNICAL_PROPER_NOUNS } from './data/proper-nouns.js';
|
|
31
|
+
async function normalizeConfig(config, configDir) {
|
|
32
|
+
const result = await validate(config, { configDir });
|
|
33
|
+
if (!result.isValid) {
|
|
34
|
+
const messages = result.errors.map((error) => error.message).join('; ');
|
|
35
|
+
throw new Error(`Invalid recheck configuration: ${messages}`);
|
|
36
|
+
}
|
|
37
|
+
// Mirror the CLI (see commands/run.ts's applyFilters): rules with
|
|
38
|
+
// `severity: off` must not run at all — not produce problems, and not
|
|
39
|
+
// (under fix: true) apply fixes. The pre-filter name set still goes to
|
|
40
|
+
// the runner — see RunnerOptions.knownRuleNames.
|
|
41
|
+
const { enabled } = filterEnabledRules(result.rules);
|
|
42
|
+
return {
|
|
43
|
+
rules: enabled,
|
|
44
|
+
knownRuleNames: new Set(result.rules.map((rule) => rule.name)),
|
|
45
|
+
markdoc: result.markdoc.enabled,
|
|
46
|
+
// Threaded alongside the boolean flag so the runner can derive
|
|
47
|
+
// `ctx.markdoc.pairing`'s self-closing set. `null` when no schema is
|
|
48
|
+
// configured, same as `result.markdoc.schema` itself.
|
|
49
|
+
markdocSchema: result.markdoc.schema,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Lints a single in-memory markdown string against a config, with no file I/O.
|
|
54
|
+
*
|
|
55
|
+
* Because there's no disk access here, rules that depend on on-disk facts
|
|
56
|
+
* (e.g. `max-image-size`, which needs image byte size) can't resolve that
|
|
57
|
+
* data themselves. Callers who need those rules to fire must supply the
|
|
58
|
+
* relevant `metadata` up front; `lintFiles` does this automatically since it
|
|
59
|
+
* reads from disk.
|
|
60
|
+
*/
|
|
61
|
+
export async function lintContent(content, config, opts) {
|
|
62
|
+
const { rules, knownRuleNames, markdoc, markdocSchema } = await normalizeConfig(config, opts?.configDir);
|
|
63
|
+
const { problems } = await runRules([{ path: opts?.filePath ?? 'content.md', content, metadata: opts?.metadata }], rules, { knownRuleNames, markdoc, markdocSchema });
|
|
64
|
+
return problems;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Lints markdown files from disk, optionally writing auto-fixes back.
|
|
68
|
+
*
|
|
69
|
+
* `config` accepts either a raw `RecheckConfig` (validated and normalized
|
|
70
|
+
* here via `validate()`) or an already-normalized `NormalizedRule[]` — e.g.
|
|
71
|
+
* from `loadConfig()` — for callers that have their own config-loading step
|
|
72
|
+
* and just want to run the engine against a file list. Passing an array
|
|
73
|
+
* skips validation, since the rules are assumed already validated.
|
|
74
|
+
*
|
|
75
|
+
* Unreadable files are warned about and skipped rather than failing the
|
|
76
|
+
* whole call — one bad path (permissions, race with a delete, etc.)
|
|
77
|
+
* shouldn't take down linting for the rest of the batch. Every skipped
|
|
78
|
+
* file is also reported in the returned `skippedFiles` (path + reason), so
|
|
79
|
+
* callers that must know their coverage was incomplete — a security review
|
|
80
|
+
* consuming lint results, say — get a programmatic signal, not just a
|
|
81
|
+
* console warning. Reads (and any image-metadata loading) run with bounded
|
|
82
|
+
* concurrency via `mapLimit`.
|
|
83
|
+
*
|
|
84
|
+
* `opts.root` is the lint root that image-metadata loading is confined to
|
|
85
|
+
* (see `loadImageMetadata`): image refs resolving outside it — lexically or
|
|
86
|
+
* physically, via a symlink planted inside the root — are treated as
|
|
87
|
+
* missing without leaking the target's existence or size. Defaults to
|
|
88
|
+
* `process.cwd()`; pass it explicitly when the linted files live elsewhere
|
|
89
|
+
* (e.g. a checked-out repo under a temp dir).
|
|
90
|
+
*
|
|
91
|
+
* `opts.maxProblems` caps how many problems the run may collect (see
|
|
92
|
+
* `RunnerOptions.maxProblems`): once a file's lint reaches the cap, later
|
|
93
|
+
* files aren't linted at all and the returned `truncated` flag is true, so
|
|
94
|
+
* memory stays bounded on pathological inputs.
|
|
95
|
+
*/
|
|
96
|
+
export async function lintFiles(paths, config, opts) {
|
|
97
|
+
// A `NormalizedRule[]` caller has already gone through validate() upstream,
|
|
98
|
+
// so there is no config here to read a `markdoc` flag from and it stays
|
|
99
|
+
// disabled for this overload. That is by construction, not an omission: a
|
|
100
|
+
// bare `NormalizedRule[]` has nowhere to carry a `markdoc`/`markdocSchema`
|
|
101
|
+
// pair. A caller that wants Markdoc rules and fix protection should call
|
|
102
|
+
// `loadConfig()`/`findAndLoadConfig()` and thread the resulting `LoadResult`
|
|
103
|
+
// through directly, as the CLI's `runCommand` does.
|
|
104
|
+
const { rules, knownRuleNames, markdoc, markdocSchema } = Array.isArray(config)
|
|
105
|
+
? {
|
|
106
|
+
rules: filterEnabledRules(config).enabled,
|
|
107
|
+
knownRuleNames: new Set(config.map((rule) => rule.name)),
|
|
108
|
+
markdoc: false,
|
|
109
|
+
markdocSchema: null,
|
|
110
|
+
}
|
|
111
|
+
: await normalizeConfig(config, opts?.configDir);
|
|
112
|
+
const loadImageMeta = needsImageMetadata(rules);
|
|
113
|
+
const fileResults = await mapLimit(paths, READ_CONCURRENCY, async (filePath) => {
|
|
114
|
+
let content;
|
|
115
|
+
try {
|
|
116
|
+
content = await fs.readFile(filePath, 'utf8');
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
const reason = error instanceof Error ? error.message : String(error);
|
|
120
|
+
console.warn(`recheck: could not read ${filePath}, skipping (${reason})`);
|
|
121
|
+
return { skipped: { path: filePath, reason } };
|
|
122
|
+
}
|
|
123
|
+
const metadata = loadImageMeta
|
|
124
|
+
? await loadImageMetadata(filePath, content, opts?.root)
|
|
125
|
+
: undefined;
|
|
126
|
+
return { file: { path: filePath, content, metadata } };
|
|
127
|
+
});
|
|
128
|
+
const files = [];
|
|
129
|
+
const skippedFiles = [];
|
|
130
|
+
for (const result of fileResults) {
|
|
131
|
+
if ('file' in result)
|
|
132
|
+
files.push(result.file);
|
|
133
|
+
else
|
|
134
|
+
skippedFiles.push(result.skipped);
|
|
135
|
+
}
|
|
136
|
+
// Under fix:true, loop lint → apply fixes → re-lint until a pass produces
|
|
137
|
+
// zero fixes (capped) so callers get a fully-converged file from a single
|
|
138
|
+
// lintFiles() call — see runRulesUntilStable for why a single
|
|
139
|
+
// runRules() pass isn't always enough (e.g. a whole-line fix from one
|
|
140
|
+
// rule can leave behind an issue another rule already fixed this pass).
|
|
141
|
+
const runnerOptions = { maxProblems: opts?.maxProblems, knownRuleNames, markdoc, markdocSchema };
|
|
142
|
+
const result = opts?.fix
|
|
143
|
+
? await runRulesUntilStable(files, rules, runnerOptions)
|
|
144
|
+
: await runRules(files, rules, runnerOptions);
|
|
145
|
+
if (opts?.fix) {
|
|
146
|
+
for (const [filePath, fixedContent] of result.fixedFiles) {
|
|
147
|
+
await fs.writeFile(filePath, fixedContent, 'utf8');
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
return { ...result, skippedFiles };
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { TextStatistics } from './statistics.js';
|
|
2
|
+
/** The six supported readability formulas, all computed from a `TextStatistics`. */
|
|
3
|
+
export type ReadabilityFormula = 'flesch-reading-ease' | 'flesch-kincaid-grade' | 'gunning-fog' | 'smog' | 'coleman-liau' | 'automated-readability';
|
|
4
|
+
/**
|
|
5
|
+
* Computes a readability score from pre-computed `TextStatistics` using the
|
|
6
|
+
* standard published definition for `formula` (cited per-case below),
|
|
7
|
+
* rounded to 2 decimals.
|
|
8
|
+
*
|
|
9
|
+
* Contract: every one of these formulas divides by `words` and/or
|
|
10
|
+
* `sentences`, so a stats object with 0 words or 0 sentences (e.g. an empty
|
|
11
|
+
* or non-prose input) would otherwise produce NaN/Infinity. Rather than
|
|
12
|
+
* propagate that, `computeReadability` returns `0` for every formula in
|
|
13
|
+
* that case -- callers (e.g. the `metric` assertion) should treat that 0 as
|
|
14
|
+
* "not enough text to score", not as a genuine "perfectly readable" result.
|
|
15
|
+
*/
|
|
16
|
+
export declare function computeReadability(formula: ReadabilityFormula, stats: TextStatistics): number;
|
|
17
|
+
//# sourceMappingURL=formulas.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formulas.d.ts","sourceRoot":"","sources":["../../src/metrics/formulas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEtD,oFAAoF;AACpF,MAAM,MAAM,kBAAkB,GAC1B,qBAAqB,GACrB,sBAAsB,GACtB,aAAa,GACb,MAAM,GACN,cAAc,GACd,uBAAuB,CAAC;AAM5B;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,kBAAkB,EAAE,KAAK,EAAE,cAAc,GAAG,MAAM,CAsD7F"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
function round2(value) {
|
|
2
|
+
return Math.round((value + Number.EPSILON) * 100) / 100;
|
|
3
|
+
}
|
|
4
|
+
/**
|
|
5
|
+
* Computes a readability score from pre-computed `TextStatistics` using the
|
|
6
|
+
* standard published definition for `formula` (cited per-case below),
|
|
7
|
+
* rounded to 2 decimals.
|
|
8
|
+
*
|
|
9
|
+
* Contract: every one of these formulas divides by `words` and/or
|
|
10
|
+
* `sentences`, so a stats object with 0 words or 0 sentences (e.g. an empty
|
|
11
|
+
* or non-prose input) would otherwise produce NaN/Infinity. Rather than
|
|
12
|
+
* propagate that, `computeReadability` returns `0` for every formula in
|
|
13
|
+
* that case -- callers (e.g. the `metric` assertion) should treat that 0 as
|
|
14
|
+
* "not enough text to score", not as a genuine "perfectly readable" result.
|
|
15
|
+
*/
|
|
16
|
+
export function computeReadability(formula, stats) {
|
|
17
|
+
const { words, sentences, syllables, characters, complexWords } = stats;
|
|
18
|
+
if (words === 0 || sentences === 0)
|
|
19
|
+
return 0;
|
|
20
|
+
const wordsPerSentence = words / sentences;
|
|
21
|
+
switch (formula) {
|
|
22
|
+
case 'flesch-reading-ease': {
|
|
23
|
+
// Flesch, R. (1948). "A New Readability Yardstick." Journal of
|
|
24
|
+
// Applied Psychology, 32(3), 221-233.
|
|
25
|
+
const syllablesPerWord = syllables / words;
|
|
26
|
+
return round2(206.835 - 1.015 * wordsPerSentence - 84.6 * syllablesPerWord);
|
|
27
|
+
}
|
|
28
|
+
case 'flesch-kincaid-grade': {
|
|
29
|
+
// Kincaid, J.P., Fishburne, R.P., Rogers, R.L., & Chissom, B.S.
|
|
30
|
+
// (1975). "Derivation of New Readability Formulas for Navy Enlisted
|
|
31
|
+
// Personnel." Research Branch Report 8-75, Naval Air Station Memphis.
|
|
32
|
+
const syllablesPerWord = syllables / words;
|
|
33
|
+
return round2(0.39 * wordsPerSentence + 11.8 * syllablesPerWord - 15.59);
|
|
34
|
+
}
|
|
35
|
+
case 'gunning-fog': {
|
|
36
|
+
// Gunning, R. (1952). The Technique of Clear Writing. McGraw-Hill.
|
|
37
|
+
const percentComplex = 100 * (complexWords / words);
|
|
38
|
+
return round2(0.4 * (wordsPerSentence + percentComplex));
|
|
39
|
+
}
|
|
40
|
+
case 'smog': {
|
|
41
|
+
// McLaughlin, G.H. (1969). "SMOG Grading -- a New Readability
|
|
42
|
+
// Formula." Journal of Reading, 12(8), 639-646. Canonically requires
|
|
43
|
+
// sampling 30 sentences (10 each from the start/middle/end of a
|
|
44
|
+
// document) for validity; like most software implementations (e.g.
|
|
45
|
+
// the widely-used `textstat`/`text-readability` ports), this applies
|
|
46
|
+
// the same formula directly to whatever sentence count is available
|
|
47
|
+
// rather than refusing to score shorter text.
|
|
48
|
+
return round2(1.043 * Math.sqrt(complexWords * (30 / sentences)) + 3.1291);
|
|
49
|
+
}
|
|
50
|
+
case 'coleman-liau': {
|
|
51
|
+
// Coleman, M., & Liau, T.L. (1975). "A computer readability formula
|
|
52
|
+
// designed for machine scoring." Journal of Applied Psychology,
|
|
53
|
+
// 60(2), 283-284.
|
|
54
|
+
const lettersPer100Words = (characters / words) * 100;
|
|
55
|
+
const sentencesPer100Words = (sentences / words) * 100;
|
|
56
|
+
return round2(0.0588 * lettersPer100Words - 0.296 * sentencesPer100Words - 15.8);
|
|
57
|
+
}
|
|
58
|
+
case 'automated-readability': {
|
|
59
|
+
// Senter, R.J., & Smith, E.A. (1967). "Automated Readability Index."
|
|
60
|
+
// AMRL-TR-6620, Aerospace Medical Research Laboratories.
|
|
61
|
+
const charactersPerWord = characters / words;
|
|
62
|
+
return round2(4.71 * charactersPerWord + 0.5 * wordsPerSentence - 21.43);
|
|
63
|
+
}
|
|
64
|
+
default: {
|
|
65
|
+
const exhaustive = formula;
|
|
66
|
+
throw new Error(`Unknown readability formula: ${String(exhaustive)}`);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=formulas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formulas.js","sourceRoot":"","sources":["../../src/metrics/formulas.ts"],"names":[],"mappings":"AAWA,SAAS,MAAM,CAAC,KAAa;IAC3B,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;AAC1D,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,kBAAkB,CAAC,OAA2B,EAAE,KAAqB;IACnF,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;IACxE,IAAI,KAAK,KAAK,CAAC,IAAI,SAAS,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAE7C,MAAM,gBAAgB,GAAG,KAAK,GAAG,SAAS,CAAC;IAE3C,QAAQ,OAAO,EAAE,CAAC;QAChB,KAAK,qBAAqB,EAAE,CAAC;YAC3B,+DAA+D;YAC/D,sCAAsC;YACtC,MAAM,gBAAgB,GAAG,SAAS,GAAG,KAAK,CAAC;YAC3C,OAAO,MAAM,CAAC,OAAO,GAAG,KAAK,GAAG,gBAAgB,GAAG,IAAI,GAAG,gBAAgB,CAAC,CAAC;QAC9E,CAAC;QACD,KAAK,sBAAsB,EAAE,CAAC;YAC5B,gEAAgE;YAChE,oEAAoE;YACpE,sEAAsE;YACtE,MAAM,gBAAgB,GAAG,SAAS,GAAG,KAAK,CAAC;YAC3C,OAAO,MAAM,CAAC,IAAI,GAAG,gBAAgB,GAAG,IAAI,GAAG,gBAAgB,GAAG,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,KAAK,aAAa,EAAE,CAAC;YACnB,mEAAmE;YACnE,MAAM,cAAc,GAAG,GAAG,GAAG,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC;YACpD,OAAO,MAAM,CAAC,GAAG,GAAG,CAAC,gBAAgB,GAAG,cAAc,CAAC,CAAC,CAAC;QAC3D,CAAC;QACD,KAAK,MAAM,EAAE,CAAC;YACZ,8DAA8D;YAC9D,qEAAqE;YACrE,gEAAgE;YAChE,mEAAmE;YACnE,qEAAqE;YACrE,oEAAoE;YACpE,8CAA8C;YAC9C,OAAO,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC;QAC7E,CAAC;QACD,KAAK,cAAc,EAAE,CAAC;YACpB,oEAAoE;YACpE,gEAAgE;YAChE,kBAAkB;YAClB,MAAM,kBAAkB,GAAG,CAAC,UAAU,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YACtD,MAAM,oBAAoB,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;YACvD,OAAO,MAAM,CAAC,MAAM,GAAG,kBAAkB,GAAG,KAAK,GAAG,oBAAoB,GAAG,IAAI,CAAC,CAAC;QACnF,CAAC;QACD,KAAK,uBAAuB,EAAE,CAAC;YAC7B,qEAAqE;YACrE,yDAAyD;YACzD,MAAM,iBAAiB,GAAG,UAAU,GAAG,KAAK,CAAC;YAC7C,OAAO,MAAM,CAAC,IAAI,GAAG,iBAAiB,GAAG,GAAG,GAAG,gBAAgB,GAAG,KAAK,CAAC,CAAC;QAC3E,CAAC;QACD,SAAS,CAAC;YACR,MAAM,UAAU,GAAU,OAAO,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,gCAAgC,MAAM,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACxE,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,YAAY,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC"}
|