Skip to content

chore(deps): update dependency cspell to v10 - #35

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-cspell-monorepo
Open

renovate[bot] wants to merge 1 commit into
mainfrom
renovate/major-cspell-monorepo

Conversation

@renovate

@renovate renovate Bot commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
cspell (source) 9.0.210.3.1 age confidence

Release Notes

streetsidesoftware/cspell (cspell)

v10.3.1

Compare Source

Fixes
fix: CSpell-Tools support replacements (#​9205)
fix: CSpell-Tools support replacements (#​9205)

Support replacing word fragments before adding the word to the dictionary.

v10.3.0

Compare Source

Features
feat: Add an option to set the kind of dictionary file (#​9178)
feat: Add an option to set the kind of dictionary file (#​9178)

This pull request introduces support for the new kind property in dictionary definitions, enabling explicit specification of dictionary types such as words, flag-words, and ignore-words.

{
  "version": "0.2",
  "language": "en-US",
  "caseSensitive": false,
  "dictionaryDefinitions": [
    {
      "name": "forbidden-spelling",
      "path": "./forbidden-spelling.txt",
      "kind": "flag-words"
    }
  ],
  "dictionaries": ["forbidden-spelling"]
}

forbidden-spelling.txt


# Add forbidden words below.
# Words starting with `!` are exceptions.

# cspell:disable
english:English # Do not allow `english` and suggest `English`
!English # needed to allow `English`
!ENGLISH # needed to allow `ENGLISH`

forbidden_word # All variants of `forbidden_word` are not allowed.

# Mixed case words:
cSpell # only `cSpell` is flagged. `cspell` will not be.

It updates the JSON schema, dictionary loading logic, and adds new APIs and tests to handle these kinds, including support for loading forbidden (flag) words from trie files.

Schema and API Enhancements:

  • Added a kind property to dictionary definitions in the cspell.schema.json schema, allowing configuration of dictionary type as words, flag-words, or ignore-words [1] [2] [3] [4] [5].
  • Updated the internal dictionary settings and loader logic to recognize and handle the new kind property, ensuring correct dictionary instantiation based on its value [1] [2] [3] [4].

Flag Words Dictionary Support:

  • Introduced createFlagWordsDictionaryFromTrieFile to allow creating forbidden words dictionaries directly from trie files, and exposed this function in the public API [1] [2] [3] [4] [5].
  • Added comprehensive tests for the new kind behaviors and for loading flag words from trie files, ensuring correct forbidden word detection and suggestion handling [1] [2].

Sample and Fixture Updates:

  • Added a new sample file flag-words.txt to demonstrate and test the flag words functionality.

These changes collectively provide more flexible and explicit dictionary configuration, improve forbidden word handling, and ensure robust support for new and existing dictionary formats.


Fixes
fix: Only hide code-like partial words (#​9163)
fix: Only hide code-like partial words (#​9163)

Documentation
feat: Add an option to set the kind of dictionary file (#​9178)
feat: Add an option to set the kind of dictionary file (#​9178)

This pull request introduces support for the new kind property in dictionary definitions, enabling explicit specification of dictionary types such as words, flag-words, and ignore-words.

{
  "version": "0.2",
  "language": "en-US",
  "caseSensitive": false,
  "dictionaryDefinitions": [
    {
      "name": "forbidden-spelling",
      "path": "./forbidden-spelling.txt",
      "kind": "flag-words"
    }
  ],
  "dictionaries": ["forbidden-spelling"]
}

forbidden-spelling.txt


# Add forbidden words below.
# Words starting with `!` are exceptions.

# cspell:disable
english:English # Do not allow `english` and suggest `English`
!English # needed to allow `English`
!ENGLISH # needed to allow `ENGLISH`

forbidden_word # All variants of `forbidden_word` are not allowed.

# Mixed case words:
cSpell # only `cSpell` is flagged. `cspell` will not be.

It updates the JSON schema, dictionary loading logic, and adds new APIs and tests to handle these kinds, including support for loading forbidden (flag) words from trie files.

Schema and API Enhancements:

  • Added a kind property to dictionary definitions in the cspell.schema.json schema, allowing configuration of dictionary type as words, flag-words, or ignore-words [1] [2] [3] [4] [5].
  • Updated the internal dictionary settings and loader logic to recognize and handle the new kind property, ensuring correct dictionary instantiation based on its value [1] [2] [3] [4].

Flag Words Dictionary Support:

  • Introduced createFlagWordsDictionaryFromTrieFile to allow creating forbidden words dictionaries directly from trie files, and exposed this function in the public API [1] [2] [3] [4] [5].
  • Added comprehensive tests for the new kind behaviors and for loading flag words from trie files, ensuring correct forbidden word detection and suggestion handling [1] [2].

Sample and Fixture Updates:

  • Added a new sample file flag-words.txt to demonstrate and test the flag words functionality.

These changes collectively provide more flexible and explicit dictionary configuration, improve forbidden word handling, and ensure robust support for new and existing dictionary formats.


v10.2.2

Compare Source

Fixes
fix: Workaround for #​9164 (#​9168)
fix: Workaround for #​9164 (#​9168)

This pull request updates the word splitter to improve its handling of long or complex words and adds new test cases to ensure correct behavior. The main changes include increasing the allowed number of skipped breaks and attempts for word splitting, updating test cases to cover additional scenarios, and adjusting ignored words in the dictionary tests.

Word splitting improvements:

  • Increased the maximum number of skipped breaks (maxSkippedBreaks) from 8 to 16 and set a new maximum number of attempts (maxAttempts) to 64,000 in wordSplitter.ts to better handle complex word splitting cases.
  • Removed the local maxAttempts limit in the splitIntoWords function, relying instead on the new global constant.

Test enhancements:

  • Updated the ignored words in the dictionary test to include a new Base64 string (QmFzZTY0IHN0cmluZyBvZiB0ZXh0IGhlcmU) and used cspell:disable/cspell:enable comments for clarity.
  • Added a new test case to validate splitting of the string 'QmFzZTY0IHN0cmluZyBvZiB0ZXh0IGhlcmU.access' in the word splitter tests.

v10.2.1

Compare Source

Fixes
fix: support soft hyphens in the word splitter (#​9144)
fix: support soft hyphens in the word splitter (#​9144)

This pull request introduces several improvements and fixes to the word segmentation and word splitting logic, especially for Thai language support and symbol handling. The main changes include updating the Thai segmentation to use soft hyphens, enhancing the word splitting logic to handle more cases (including camelCase, symbols, and soft hyphens), and refactoring the code for better modularity and test coverage.

Word segmentation and Thai language improvements:

  • Updated Thai (th-TH) segmentation to use soft hyphens (\u00AD) instead of spaces, improving the accuracy of word breaks and ensuring better compatibility with spell checking and downstream processing. [1] [2] [3]
  • Added the @cspell/dict-th-th package to dependencies, enabling Thai dictionary support.
  • Adjusted tests and expectations for Thai segmentation to reflect the use of soft hyphens and to ensure no false positives in validation.

Word splitting and symbol handling enhancements:

  • Introduced a new generateWordBreaks utility that generates all possible word breaks in a string, including camelCase, symbols, numbers, and soft hyphens. Includes comprehensive tests and snapshot coverage for various edge cases. [1] [2] [3] [4]
  • Improved regular expressions for word splitting to support soft hyphens and better handle punctuation and symbols.

Refactoring and code organization:

  • Refactored imports to use the new wordSplitter/index.js entry point, improving modularity and future maintainability. [1] [2]
  • Added explicit exports for split, SplitOptions, and SplitResult in wordSplitter/index.ts to clarify and centralize the public API.

Other enhancements:

  • Exposed the softHyphen constant for consistent use throughout the codebase. [1] [2]

Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​9143)
fix: Workflow Bot -- Update Dictionaries (main) (#​9143)

v10.2.0

Compare Source

Features
feat: Add `--force-check` cli option (#​9080)
feat: Add --force-check cli option (#​9080)

This pull request introduces a new --force-check option to the CLI, allowing users to force specific files to be checked even if they would normally be excluded. It also standardizes dependency configuration naming, improves error handling and reporting for the CLI, and updates TypeScript target versions in config files. The most important changes are grouped below.

New CLI Feature: Force Check

  • Added a --force-check option to the lint command, allowing files specified with --file, --files, or --file-list to be checked even if they would normally be excluded. This includes updates to the CLI interface, validation logic, and documentation/help output. [1] [2] [3] [4] [5]
  • Implemented logic in the file determination and processing flow to honor the forceCheck flag, ensuring excluded files can be checked when requested, and updated reporting of skipped files. [1] [2] [3] [4] [5] [6]

CLI Error Handling and Testing

  • Improved error handling for invalid combinations of CLI options (e.g., using --force-check without specifying files, or mixing globs and --file), with corresponding error messages and test cases. [1] [2]
  • Enhanced test coverage for the new --force-check option, including snapshot updates for help and error outputs. [1] [2] [3] [4] [5] [6] [7]

Dependency Configuration Standardization

  • Renamed the dependency configuration property from onlyAllowBundle to onlyBundle across all relevant config files and documentation for consistency. [1] [2] [3] [4]

Other Improvements

  • Updated TypeScript target version in default config from Node20 to Node22.
  • Improved CLI process exit code handling for error scenarios.
  • Minor improvement to CLI reporter logic to avoid emitting empty results.
  • Cleaned up and simplified the coverage collection script in package.json.

Fixes
fix: Updated package.json exports (#​8965)
fix: Updated package.json exports (#​8965)

This fixes a few package exports that were wrong or inconsistent (e.g. exports["."] not the same path as main).

The pnpm test script was failing locally due to my ~/.npmrc having ignore-scripts=true, which prevented the preinstall script from running. I updated test:prep to call the preinstall script, which should be fast if you already have yarn installed.


Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​9067)
fix: Workflow Bot -- Update Dictionaries (main) (#​9067)

v10.1.1

Compare Source

Fixes
fix: Do not load .pnp.js files when untrusted (#​9064)
fix: Do not load .pnp.js files when untrusted (#​9064)

Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​9055)
fix: Workflow Bot -- Update Dictionaries (main) (#​9055)

v10.1.0

Compare Source

Features
feat(cspell-junit-reporter): add JUnit XML reporter package (#​8945)
feat(cspell-junit-reporter): add JUnit XML reporter package (#​8945)

Closes #​4570.

Adds @cspell/cspell-junit-reporter, a new workspace package modeled on packages/cspell-json-reporter, that emits a JUnit-compatible XML report of a cspell run.

The issue asked for a minimal mapping along the lines of:

<testsuite tests="3">
  <testcase classname="File1" name"/>
  <testcase classname="File2" name="AnotherSuccessfulTest"/>
  <testcase classname="foo3" name="AFailingTest">
    <failure type="prohibited word"> zzz </failure>
  </testcase>
</testsuite>

This PR follows that shape but wraps it in a <testsuites> root and groups by file (one <testsuite> per file, suite name = file path), since that is the convention used by other widely-consumed JUnit reporters (for example ESLint's JUnit formatter) and is what most CI JUnit parsers expect. The package README documents the full mapping.

  • package.json, tsconfig.json, test framework, and files/exports/publishConfig shape are copied from cspell-json-reporter. Version pinned to 10.0.1 to match the monorepo's locked versioning.
  • No third-party XML library was added. The repo has no existing XML dependency, so a small escaping helper (src/utils/escapeXml.ts) and a pure XML-string builder (src/utils/buildJUnitXml.ts) were written in-repo, consistent with the monorepo's small-utility-file convention.
  • Unit tests (32) cover: no files, a clean file (single passing testcase), a file with issues, escaping of special characters in paths/words/messages, a skipped file, and non-issue processing errors (error emitter routed to a dedicated cspell-errors testsuite using <error>).

Assumptions the issue thread left ambiguous, called out for review:

  1. One <testsuite> per file rather than one flat suite for the whole run. Matches common JUnit reporter convention and keeps per-file counts meaningful in CI UIs.
  2. A clean file gets one synthetic passing <testcase name="no issues found"> so a suite is never reported with tests="0", which some JUnit consumers treat as suspicious.
  3. Settings are intentionally slimmer than cspell-json-reporter's (outFile, suiteName only). JUnit XML has no natural place for arbitrary debug/progress log dumps.
  4. cspell processing errors are reported as <error> elements, distinct from spelling <failure> elements, per the JUnit failure-vs-error distinction.

Verified locally: tsc -b clean, vitest 32/32, eslint and prettier clean, and the full monorepo build:prod succeeds with the package in the workspace. One environment note: the package's CLI smoke-test script wasn't runnable locally (repo requires Node >=22.18.0, local was 22.17.0 — the sibling json-reporter fails identically there), so CI is the first place it will run.


Fixes
fix: allow substitutions across ignored ranges (#​9017)
fix: allow substitutions across ignored ranges (#​9017)

v10.0.1

Compare Source

Fixes
fix(cli): ignore closed readline after stdin (#​8862)
fix(cli): ignore closed readline after stdin (#​8862)

v10.0.0

Compare Source

Features
fix: upgrade import-fresh from v3 to v4 (#​8786)
fix: upgrade import-fresh from v3 to v4 (#​8786)

v9.8.0

Compare Source

Features
feat: make flatpack diff friendly (#​8680)
feat: make flatpack diff friendly (#​8680)

v9.7.0

Compare Source

Features
feat: Substitution Part 4 - enable substitutions during document check (#​8630)
feat: Substitution Part 4 - enable substitutions during document check (#​8630)

v9.6.4

Compare Source

Fixes
fix: add --no-dictionary option to lint command (#​8514)
fix: add --no-dictionary option to lint command (#​8514)

v9.6.3

Compare Source

Fixes
fix: Add `engines` setting (#​8491)
fix: Add engines setting (#​8491)

v9.6.2

Compare Source

Fixes
fix: Conditionally compress and build bTrie (#​8437)
fix: Conditionally compress and build bTrie (#​8437)

v9.6.1

Compare Source

Fixes
fix: Move performance monitoring into its own package (#​8431)
fix: Move performance monitoring into its own package (#​8431)

v9.6.0

Compare Source

Features
feat: ESLint-plugin -- Distinguish between Forbidden, Misspelled, and Unknown words. (#​8337)
feat: ESLint-plugin -- Distinguish between Forbidden, Misspelled, and Unknown words. (#​8337)

v9.4.0

Compare Source

Features
feat: Add option to skip large files (#​8040)
feat: Add option to skip large files (#​8040)

New command line option: --max-file-size <value>
The value can be <number>[units], number with optional units.
Supported units:

  • K, KB - value * 1024
  • M, MB - value * 2^20
  • G, GB - value * 2^30

There is also a new setting called maxFileSize. At the moment, it only takes numbers in bytes.

This allows for setting a global value and overrides based upon glob settings.

Note: the command line value will override any value found in the configuration files.


Fixes
fix: turn off gpg when publishing for now (#​8104)
fix: turn off gpg when publishing for now (#​8104)

fix: Turnoff signing for now (#​8102)
fix: Turnoff signing for now (#​8102)

fix: Sign tags and commits when publishing (#​8096)
fix: Sign tags and commits when publishing (#​8096)

fix: Clean up verbose output (#​8053)
fix: Clean up verbose output (#​8053)

fix: allow string based maxFileSize (#​8047)
fix: allow string based maxFileSize (#​8047)
  • Support allowing string based maxFileSize in config files.
  • Report the number of skipped files.

Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​8091)
fix: Workflow Bot -- Update Dictionaries (main) (#​8091)

v9.3.2

Compare Source

Fixes
fix: Add Zig programming language dictionary (#​7998)
fix: Add Zig programming language dictionary (#​7998)

fix: Search for TypeScript config files. (#​7997)
fix: Search for TypeScript config files. (#​7997)

TypeScript files were allowed, but would not be automatically found.


Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​8004)
fix: Workflow Bot -- Update Dictionaries (main) (#​8004)

v9.3.1

Compare Source

Fixes
fix: Support Deno (#​7966)
fix: Support Deno (#​7966)

v9.3.0

Compare Source

Features
feat: Support loading `.ts` and `.mts` config files. (#​7961)
feat: Support loading .ts and .mts config files. (#​7961)

This PR add support to read TypeScript cspell config files.

Note: TypeScript config files will fail to load when NodeJS version is less than v22.18.0.

See: Node.js — Running TypeScript Natively


Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7950)
fix: Workflow Bot -- Update Dictionaries (main) (#​7950)

v9.2.2

Compare Source

Fixes
fix: Wait for the cache to save (#​7926)
fix: Wait for the cache to save (#​7926)

This fixes a flaky cache situation caused by not waiting for the cache to save before moving on.


Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7915)
fix: Workflow Bot -- Update Dictionaries (main) (#​7915)

v9.2.1

Compare Source

Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7795)
fix: Workflow Bot -- Update Dictionaries (main) (#​7795)

v9.2.0

Compare Source

refactor: Support url based cache entries (#​7639)
refactor: Support url based cache entries (#​7639)

Features
fix: Support remote dependencies in cache (#​7642)
fix: Support remote dependencies in cache (#​7642)

Fixes
fix: Remove `flat-cache` dependency (#​7636)
fix: Remove flat-cache dependency (#​7636)

flat-cache v6 is not compatible with the cspell cache. Since flat-cache was mostly a pass through to flatted, it was better to just replace it.


refactor: move towards caching URLs (#​7634)
refactor: move towards caching URLs (#​7634)

fix: Support async cache (#​7631)
fix: Support async cache (#​7631)

fix: Replace file-entry-cache (#​6579)
fix: Replace file-entry-cache (#​6579)

Deprecating the use of file-entry-cache.

v10 of file-entry-cache breaks the spell checker and bloats the cache size.

This PR is the first step in reducing the dependency upon file-entry-cache and its dependencies.


fix: Clean cspell-lib type exports (#​7615)
fix: Clean cspell-lib type exports (#​7615)

Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7618)
fix: Workflow Bot -- Update Dictionaries (main) (#​7618)

v9.1.5

Compare Source

Fixes
fix: Compile before publish (#​7610)
fix: Compile before publish (#​7610)

v9.1.3

Compare Source

Fixes
fix: Add toml config reader/writer (#​7565)
fix: Add toml config reader/writer (#​7565)

fixes #​7563


Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7569)
fix: Workflow Bot -- Update Dictionaries (main) (#​7569)

v9.1.2

Compare Source

Fixes
fix: Do not double encode stdin urls (#​7536)
fix: Do not double encode stdin urls (#​7536)

fixes #​7517


fix: cspell trace output (#​7528)
fix: cspell trace output (#​7528)

It was incorrectly trimming ansi strings.


Dictionary Updates
fix: Workflow Bot -- Update Dictionaries (main) (#​7526)
fix: Workflow Bot -- Update Dictionaries (main) (#​7526)

v9.1.1

Compare Source

Changes
Fixes
fix: Use the native JSON parser if possible (#​7502)
fix: Use the native JSON parser if possible (#​7502)

Some of the cspell settings have grow large. The fix is to use the native JSON parser instead of one that accepts comments.


v9.1.0

Compare Source

Changes
Features
feat: Add command `dictionaries` (#​7445)
feat: Add command dictionaries (#​7445)

Add new dictionaries command to the cli

Usage: cspell dictionaries [options]

List dictionaries

Options:
  -c, --config <cspell.json>  Configuration file to use.  By default cspell
                              looks for cspell.json in the current directory.
  --path-format <format>      Configure how to display the dictionary path.
                              (choices: "hide", "short", "long", "full",
                              default: Display most of the path.)
  --color                     Force color.
  --no-color                  Turn off color.
  --no-default-configuration  Do not load the default configuration and
                              dictionaries.
  -h, --help                  display help for command

feat: Add lint option `--dictionary` (#​7441)
feat: Add lint option --dictionary (#​7441)

Add lint options:

  • --dictionary - enable a dictionary by name
  • --disable-dictionary - disable a dictionary by name

feat: Add init command to command-line. (#​7414)
feat: Add init command to command-line. (#​7414)

New command:

Usage: cspell init [options]

Initialize a CSpell configuration file.

Options:
  -o, --output <path>        Define where to write file.
  --format <format>          Define the format of the file. (choices: "yaml",
                             "yml", "json", "jsonc", default: "yaml")
  --import <path|package>    Import a configuration file or dictionary package.
  --locale <locale>          Define the locale to use when spell checking (e.g.,
                             en, en-US, de).
  --dictionary <dictionary>  Enable a dictionary.
  --no-comments              Do not add comments to the config file.
  --no-schema                Do not add the schema reference to the config file.
  -h, --help                 display help for command

feat: Add command line option to set reporting level (#​7380)
feat: Add command line option to set reporting level (#​7380)

Configuration

📅 Schedule: (in timezone America/Los_Angeles)

  • Branch creation
    • "every weekend"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate
renovate Bot force-pushed the renovate/major-cspell-monorepo branch from 4c113eb to 051ab54 Compare July 18, 2026 08:26
@renovate
renovate Bot force-pushed the renovate/major-cspell-monorepo branch 2 times, most recently from 1fc2f28 to a9d6aff Compare August 1, 2026 09:14
@renovate
renovate Bot force-pushed the renovate/major-cspell-monorepo branch from a9d6aff to 1359f3b Compare August 15, 2026 09:45
@renovate
renovate Bot force-pushed the renovate/major-cspell-monorepo branch 2 times, most recently from 3e87cd2 to 9e16fbc Compare August 29, 2026 09:05
@renovate
renovate Bot force-pushed the renovate/major-cspell-monorepo branch 2 times, most recently from e6f1584 to 7868ce2 Compare September 12, 2026 09:25
@renovate
renovate Bot force-pushed the renovate/major-cspell-monorepo branch from 7868ce2 to df420ef Compare September 13, 2026 17:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants